370 likes | 509 Views
IDS Cheetah – An Agile Choice for Application Development September 20 th 2007. Information Management.
E N D
IDS Cheetah – An Agile Choice for Application Development September 20th 2007 Information Management
Do youWeb 2.0? Find out more about how you can take advantage of aServices Oriented Architectureto easily deliverlocation based informationto yourapplications. IDSextensibilityand the newWeb Feature ServicesinCheetah(v11)make this possible. The newBasic Text Searchthat is included inIDS Cheetahwill also be covered.
Economic Social Service, not software Users add value • Recommendations • Social networking features • Tagging • User comments • Community rights management • User-driven adoption • Value on demand • Low cost of entry • Public /Private infrastructure • Tight feedback loop between providers and consumers Technology Easy to use, easy to remix • Responsive UIs (AJAX) • Feeds (Atom, RSS) • Simple extensions • Mashups (REST APIs) These three patterns are driving Web 2.0 in the Constituent space and into any Organization e.g. SaaS Community Web 2.0 User Interface, Mashups
Case Study: Procurement to Cash Service Oriented Architectures Reduce Complexity Customer Division (s) Shared Services Supplier Outsourced To compete effectively, customers need this type of business flexibility. A Tranformation and Integration Roadmap customized to their needs is key.
Case Study: Procurement to Cash Service Oriented Architectures Reduce Complexity Customer Division (s) Feed Shared Services Atom Publish? Supplier Outsourced To compete effectively, customers need this type of business flexibility. A Tranformation and Integration Roadmap customized to their needs is key.
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
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
Common JCC Driver • IDS and DRDA DB2 UDB Informix Dynamic Server IBM PHP/.NET/etc Providers DRDA DRDA Informix JDBC Application SQLI Informix ODBC Application
IBM API Strategy for Data Servers PHP Applications IBM PHP Convergence Model IBM Data Servers Zend Frame- work adapter PHP Interpreter IBM Data Server Driver for CLI DB2 pdo_ibm DRDA Informix pdo_Informix ODBC Java/PHP/RUBY/PYTHON/<insert_next_hot_technology> all follow the exact same model
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 JDBC JLINQ
+ development partnership IDS and PHP - Double punch! • 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 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)
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
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
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
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’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/
DATABLADE API Spatial Datablades in IDS Informix Dynamic Server SQL Parser Optimizer Geodetic Parallel Query Manager New Blade Fragment Manager MQSeries Transaction Services TimeSeries SQL Parser NAG Access Methods WEB Data Access Interface
Spatial Datablade • R-Tree based Spatial Indexing • Works with ESRI’s ARC-SDE • Completely accessible via SQL • Statistics Collection and Optimization • FREE
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
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)
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.
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
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
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.
WebBrowser WFSDriver CGI Web Server wfs.cnf wfsexplodeUDR Database WFSDriver CGI Program
POST(KVP) wfs_getpostkvp() POST(XML) wfs_postxml() WebBrowser wfs_qrysend() wfsexplode() GET XML Response Document WFSDriver CGI Program
Invocation of LUCENE for text index operations IDS Client C-LUCENE text search index Query processing and Optimizer Index Access method analyze 0, 8, 12, 15 IDS Client and 1, 9, 15, 22, 44, 23, arts 1, 8, 10 BTS: Basic Text Search Index Interface behavior 1 cut 2, 22 … … Informix Dynamic Server with … your … Basic Text Search Index
Basic Text Search Index mkdir /work/myapp/bts_expspace_directory -- Create an external space to hold the index onspaces -c -x bts_extspace -l /work/myappbts_expspace_directory onmode –p +1 bts --Create a table with a BTS index CREATE TABLE article_tab(id integer, title lvarchar(512)); -- Load the data below
Basic Text Search Index CREATE 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');
Developer WorkBench • 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
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/
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/