ibm software group 1 ids cheetah – an agile choice for application development september 20 th...
TRANSCRIPT
IBM Software Group
1
IDS Cheetah – An Agile Choice for Application Development
September 20th 2007
Information Management
IBM Software Group
2
Do you Web 2.0? Find out more about how you can
take advantage of a Services Oriented Architecture to easily deliver location based information to your applications. IDS extensibility and the
new Web Feature Services in Cheetah(v11) make this possible. The new Basic Text Search that is included in IDS Cheetah will also be covered.
3
Web 2.0
4
Web 1.0 Web 2.0
Mapquest: Static view of a map, with zoom
Google Maps: Uses Ajax to provide the user with a smoother, faster experience; no waiting for server roundtrips
Ofoto: Users can upload their digital photos and get printouts
Flickr: allows users to securely manage and share their photos in an online space
Britannica Online: published encyclopedic information on the web
Wikipedia: allows users to read, write, update and delete encyclopedia entries on the web
personal websites: individually created and maintained web sites with unique URLs
MySpace: a common place to go where everybody is (or can be) your friend; allows you to post your photos, videos, music, blogs
directories (taxonomy): the web site creator decided how the information was organized
tagging ("folksonomy"): the users of the web site decide how they think the information fits into their worldview
Stickiness: focus on driving users to the site and keeping them there
Syndication: focus on disseminating content from the site out to the interested parties
5
•User-driven adoption
•Value on demand•Low cost of entry•Public /Private
infrastructure•Tight feedback
loop between providers and consumers
EconomicService, not software
Social•Recommendation
s•Social networking
features•Tagging•User comments•Community rights
management
Users add value
These three patterns are driving Web 2.0 in the Constituent space and into any Organization
Technology
•Responsive UIs (AJAX)•Feeds (Atom, RSS)•Simple extensions•Mashups (REST APIs)
Easy to use, easy to remix
Web 2.0
e.g. SaaSe.g. SaaS CommunityCommunity
User Interface, MashupsUser Interface, Mashups
SWG Technical Interlock 2007
© 2007 IBM Corporation6
Service Oriented Architectures Reduce Complexity
Outsourced
SupplierSupplier
Shared ServicesShared Services
Division (s)
CustomerCustomer
Case Study: Procurement to Cash
To compete effectively, customers need this type of business flexibility. A Tranformation and Integration Roadmap customized to their needs is key.
SWG Technical Interlock 2007
© 2007 IBM Corporation7
Service Oriented Architectures Reduce Complexity
Outsourced
SupplierSupplier
Shared ServicesShared Services
Division (s)
CustomerCustomer
Case Study: Procurement to Cash
To compete effectively, customers need this type of business flexibility. A Tranformation and Integration Roadmap customized to their needs is key.
Feed
Atom Publish?
SWG Technical Interlock 2007
© 2007 IBM Corporation8
what is the long term relationship between SOA and WOA?
9
Web 2.0 applications – Tim O’Reilly• Web is the platform
• Harness collective intelligence
• Data is the next intel inside
• No more traditional release cycle – constat updates, eternal beta– You’re updating the Service, no package to distribute and
install (Saas)
• Programming models– Think assembly
• Seamless integration with devices
• Rich user experiences
10
IDS for web 2.0• Need for speed
– After all these years, performance is still the king
• Solid SQL and application dev support– Support for open source APIs
• Low TCO is desirable for all apps, including web 2.0
• Support for XML for integration (Cheetah and further)
• Data Growth -- Ability to handle large data set with large number of connections
• Reliability
IBM Software Group | IBM Informix Data Management Software
IBM Confidential | © 2004 IBM Corporation11
IDS and DRDA
Common JCC Driver
IBMPHP/.NET/etc
Providers
Informix JDBC
Application
InformixODBC
Application
DRDA
SQLI
DRDA
Informix Dynamic Server
DB2 UDB
IBM Software Group
12
PHP Applications
InformixIBM
Dat
a S
erve
r D
river
for
CLI
pdo_
ibm
pdo_InformixODBC
PH
P
Inte
rpre
ter
IBM Data Servers
Zen
d F
ram
e-w
ork
adap
ter
IBM PHP Convergence Model
DRDA
IBM API Strategy for Data Servers
Java/PHP/RUBY/PYTHON/<insert_next_hot_technology> all follow the exact same model
DB2
IBM Software Group
13
Database Application Development Technologies
• Key Database Technologies– SQL / SQL Procedures– XML– SOA / Web Services
• Developer communities– C/C++ – Java (JDBC / SQLJ)– .NET (C#, VB .NET)– EGL– Open Source
• PHP/Zend FW• Ruby/Rails• Perl• Python/Django
IDS
Ruby
JDBCJLINQ
IBM Software Group
14
IDS and PHP - Double punch!
Deploy - scalable and supported– Scalable data servers
• Common PHP driver (PDO_IBM) supported by IBM for Cheetah
– Zend Core for IBM • Has Apache webserver, PHP drivers, Zend FW, third party
libraries, samples, etc.,• One stop shop for PHP installation, rapid PHP application
development, deployment and production support– Enhanced scalability
• Zend Platform (object caching, and more) +development partnership
Quick to Develop– 100% designed for the web and Free!!!– Scripting language part of LAIP stack (Similar to LAMP)– Tools make light work
• Eclipse - PHP Development Environment (PDE)• Zend Studio v5.2 - integrated support for DB2 and IDS
– Strong Community PECL/PEAR/etc.,– Framework availability
– Zend framework, CakePHP, etc.,– Zend Core for IBM.
http://www.zend.com/products/zend_core/zend_core_for_ibm
IBM Software Group
15
IDS and Perl
• Script Language• Excellent at string handling• Strong Community - CPAN• Community Supported Drivers
– DBD::Informix • version 2007.0226, with a version 2007.06xx in the works
– DBD::ODBC• IBM Supported Drivers
– DBD::DB2 • Based on CLI
– Common Driver• Plans underway
IBM Software Group
16
IDS and Python
• Dynamic Object Oriented Programming language
• Community already has InformixDB driver for IDS– Version 2.3 – 1st October 2006 – DB-API 2.0 compliant– Requires Python 2.2 or better– Requires Informix ClientSDK
• IBM is currently engaged in its own adaptor/driver development– Expect Python/Django details in early 2008
IBM Software Group
17
IDS and JAVA
• Single JDBC driver for ALL IBM data servers • Development has primed the Java Common Client (JCC) driver
3.5 for IDS CHEETAH release• Support for Informix connection URLs, environment variables,
data source• Support for Informix basic data types• Support for all database modes• Connection using DRDA protocol• JDBC 4.0 Specification Support will be available soon• Goal is to keep existing application impacts to a bare minimum
for applications that have adhered to JDBC standards• Common Web Admin
– IBM Data Server Administrator Standard Edition– Based on JCC– Support for IDS by 2008
IBM Software Group
18
What’s with Ruby and why on Rails?
• Ruby: an object-oriented open source programming language– Inspired by Smalltalk, sharing features with Python, Lisp, Dylan
and CLU– Reflective and single-pass interpreted language (scripting)
• Rails (a.k.a RoR): a full stack Web framework written in Ruby– Web development made easy through “Convention over
configuration” and “Don’t Repeat Yourself” principles– Development, deployment and maintenance made easy through
patterns, structure and built-in plumbing: MVC, ORM, Migrations, Testing, AJAX, etc…
IBM Software Group
19
IBM’s offering for RoR development
• IBM_DB-0.8.0 gem enables full support for Informix Dynamic Server (IDS) 11.10 and beyond through IBM_DB Rails adapter and ibm_db Ruby driver
• Connects to IDS 11.10+ via DRDA protocol• http://rubyforge.org/projects/rubyibm/
• See also the open source ruby-informix driver developed by Gerardo Santana which supports all recent IDS versions via the SQLI protocol
– http://rubyforge.org/projects/ruby-informix/
IBM Software Group | DB2 Information Management Software
Datablades in IDS
DA
TA
BLA
DE A
PI
SpatialSpatial
MQSeriesMQSeries
TimeSeriesTimeSeries
NAGNAG
WEBWEB
New BladeNew Blade
GeodeticGeodetic
SQL ParserSQL Parser
OptimizerOptimizer
Parallel Query Manager
Parallel Query Manager
Fragment ManagerFragment Manager
SQL ParserSQL Parser
Access MethodsAccess Methods
Data Access InterfaceData Access Interface
Transaction ServicesTransaction Services
Informix Dynamic ServerInformix Dynamic Server
IBM Software Group | DB2 Information Management Software
Spatial Datablade• R-Tree based Spatial Indexing
• Works with ESRI’s ARC-SDE
• Completely accessible via SQL
• Statistics Collection and Optimization
• FREE
• R-Tree based Spatial Indexing
• Works with ESRI’s ARC-SDE
• Completely accessible via SQL
• Statistics Collection and Optimization
• FREE
IBM Software Group | DB2 Information Management Software
Geodetic Datablade• Shortest distance between two points is NOT a straight line!
•Treats Earth as a globe – not a plane
• R-Tree based spatial Indexing
• Supports Nearest Neighbor Search
• Supports enterprise Replication
• Statistics Collection and Optimization
• Shortest distance between two points is NOT a straight line!
•Treats Earth as a globe – not a plane
• R-Tree based spatial Indexing
• Supports Nearest Neighbor Search
• Supports enterprise Replication
• Statistics Collection and Optimization
Slide 23
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
Introduction
► The Web Feature Service (WFS) allows a client to retrieve and update geospatial data from multiple Web Feature Service instances.
► A WFS allows uniform access to features stored on a server:■ query a dataset and retrieve the features
■ find the feature definition (feature's property names and types)
■ add features to dataset
■ delete feature from a dataset
■ update feature in a dataset
■ lock features to prevent modification (optional – not in this implementation)
Slide 24
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
Why Use A WFS?
► Provides a generic way to access raw geographic data over the web.
► While a Web Mapping Service (WMS) returns map images a client, a WFS returns features related to a location. Eg.■ Which lakes are within a particular district?
■ Which rare species sightings occur outside of protected areas?
■ Which hospitals are located in Tokyo and are less than 97% full?
■ Which intersection/street is closest to my GPS location?
► Greater transparency and openness in mapping applications.
► Interoperability with WFS from different vendors.
Slide 25
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
IBM Web Feature Service (WFS) Datablade Module
► Supports web-based geographical programs using data stored in IDS using the Spatial or Geodetic Datablade modules
► Encodes geographical features in Geographical Markup Language (GML) 3.1.1 or 2.1.2 specification
► Based on the Transactional WFS 1.1 (WFS-T) specification from the Open Geospatial Consortium (OGC)
► Uses HTTP GET or POST methods encoded as key-value-pairs (KVP) or XML for requests and responses.
► Requires Spatial or Geodetic Datablade modules to be installed and registered in the same database as WFS Datablade module
Slide 26
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
IBM Web Feature Service (WFS) Datablade Module
► Supports web-based geographical programs using data stored in IDS using the Spatial or Geodetic Datablade modules
► Encodes geographical features in Geographical Markup Language (GML) 3.1.1 or 2.1.2 specification
► Based on the Transactional WFS 1.1 (WFS-T) specification from the Open Geospatial Consortium (OGC)
► Uses HTTP GET or POST methods encoded as key-value-pairs (KVP) or XML for requests and responses.
► Requires Spatial or Geodetic Datablade modules to be installed and registered in the same database as WFS Datablade module
Slide 27
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
Feature Identifiers
► All features must be uniquely identified.
► Features usually take the form Feature.ObjectID where Feature is a feature class or table, and ObjectID is a unique identifier (usually a primary key) for that class or table.
► Eg. Customer number 101 in the customer table is referenced with the feature ID of customer.101.
► This must be a single column primary key. Composite keys are not supported.
Slide 28
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
WFSDriver CGI Program
Web Server
wfs.cnf
WFSDriver CGI
wfsexplodeUDR
Database
WebBrowser
Slide 29
IBM Informix Dynamic Server
Cheetah Feature Training | Confidential © 2007 IBM Corporation
WFSDriver CGI Program
wfs_qrysend()
wfs_getpostkvp()
wfs_postxml()
WebBrowser
wfsexplode()
POST(KVP)
POST(XML)
GET
XML Response Document
30
30
Basic Text Search Index
Invocation of LUCENE for text index operations
IDS Client
IDS Client
BTS: Basic Text Search Index Interface
Informix Dynamic Server
C-LUCENE text search index
analyze
and
arts
behavior
cut
…
with
your
0, 8, 12, 15
1, 9, 15, 22, 44, 23,
1, 8, 10
1
2, 22
…
…
…
Index Access method
Query processing and Optimizer
31
31
Basic Text Search Indexmkdir /work/myapp/bts_expspace_directory
-- Create an external space to hold the indexonspaces -c -x bts_extspace -l /work/myappbts_expspace_directory
onmode –p +1 bts
--Create a table with a BTS indexCREATE TABLE article_tab(id integer, title lvarchar(512));
-- Load the data below
id title
0 Understanding locking behavior and analyze lock conflicts in IDS
1 Informix and Open source: database defense against the dark political arts
32
32
Basic Text Search IndexCREATE INDEX title_index ON article_tab(title bts_lvarchar_ops) USING bts IN bts_extspace;
SELECT id FROM article_tab WHERE bts_contains(title, 'informix');
-- with the AND Boolean operator (&& and + are allowed as well)SELECT id FROM article_tab WHERE bts_contains (title, 'informix AND dynamic');
SELECT id FROM article_tab WHERE bts_contains (title, 'inf*rmix');
SELECT id FROM article_tab WHERE bts_contains (title,'"java"~10');
33
33
Developer WorkBench
34
34
A complete Eclipse based platform for developing database applications– Database Explorer
– Web Services Explorer
– Entity Relationship diagrams
– SQL Builder
– JLINQ - common query API that lets you access relational databases and in-memory Java collections with a single interface: standard SQL
Developer Solutions for IBM DB2 and Informix Dynamic Server (IDS) forum:http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=1086&cat=19
Developer WorkBench
35
35
How to get hold of these tools?
IBM Data Server Driver package– Java: IBM® Data Server Driver for JDBC and SQLJ, Version 3.50
.NET: IBM® Data Server Provider for .NET for Informix Dynamic Server, version 9.5 PHP: PDO_IBM, Version 1.21Ruby: Version IBM_DB-0.8.0
Check new forums:– Unleash the new Java, .NET, PHP and Ruby client and Developer solutions for IDS
11http://www.ibm.com/developerworks/forums/dw_thread.jsp?forum=1137&thread=170325&cat=19
– IDS Developer and User Forum– http://www.ibm.com/developerworks/forums/dw_forum.jsp?forum=548&cat=19
Zend Download Site, Rational RDB Site Community Websites:
– http://pecl.php.net/package/PDO_IBM/– http://rubyforge.org/projects/rubyibm/
IBM Software Group
36
Additional Resources
• IDS Redbook on PHP, IDS 11• Developer Works Articles• IDS Experts Blog
• Java Language Integrated Query: JLINQ– JLINQ: IBM's new paradigm for writing Java database applications– http://www.ibm.com/developerworks/db2/library/techarticle/dm-0708ahadian/
IBM Software Group
37
Thank You