An Agile Choice for Application Development
Download
Report
Transcript An Agile Choice for Application Development
IBM Software Group
IDS Cheetah – An Agile Choice for
Application Development
September 20th 2007
Information Management
1
IBM Software Group
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.
Do you
2
Web 2.0
3
Web 1.0
Mapquest: Static view of a
map, with zoom
Ofoto: Users can upload their
digital photos and get printouts
Britannica Online: published
encyclopedic information on
the web
personal websites:
individually created and
maintained web sites with
unique URLs
directories (taxonomy): the
web site creator decided how
the information was organized
Stickiness: focus on driving
users to the site and keeping
them there
Web 2.0
Google Maps: Uses Ajax to provide the user with a
smoother, faster experience; no waiting for server
roundtrips
Flickr: allows users to securely manage and share their
photos in an online space
Wikipedia: allows users to read, write, update and delete
encyclopedia entries on the web
MySpace: a common place to go where everybody is (or
can be) your friend; allows you to post your photos,
videos, music, blogs
tagging ("folksonomy"): the users of the web site
decide how they think the information fits into their
worldview
Syndication: focus on disseminating content from the
site out to the interested parties
4
These three patterns are driving Web 2.0 in the
Constituent space and into any Organization
e.g. SaaS
Service,
not software
• User-driven
adoption
• Value on demand
• Low cost of entry
• Public /Private
infrastructure
• Tight feedback loop
between providers
and consumers
Community
Economic
Web 2.0
Technology
Social
Users add value
• Recommendations
• Social networking
features
• Tagging
• User comments
• Community rights
management
User Interface, Mashups
Easy to use,
easy to remix
• Responsive UIs (AJAX)
• Feeds (Atom, RSS)
• Simple extensions
• Mashups (REST APIs)
5
SWG Technical Interlock 2007
Service Oriented Architectures Reduce Complexity
Case Study: Procurement to Cash
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.
6
© 2007 IBM Corporation
SWG Technical Interlock 2007
Service Oriented Architectures Reduce Complexity
Case Study: Procurement to Cash
Customer
Division (s)
Feed
Shared
Services
Supplier
Atom
Publish?
Outsourced
To compete effectively, customers need this type of business flexibility. A
Tranformation and Integration Roadmap customized to their needs is key.
7
© 2007 IBM Corporation
SWG Technical Interlock 2007
what is the long term relationship between
SOA and WOA?
8
© 2007 IBM Corporation
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
9
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
10
IBM Software Group | IBM Informix Data Management Software
IDS and DRDA
Common JCC
Driver
IBM
PHP/.NET/etc
Providers
Informix Dynamic
Server
DRDA
DB2
UDB
DRDA
Informix
JDBC
Application
SQLI
Informix
ODBC
Application
11
IBM Confidential |
© 2004 IBM Corporation
IBM Software Group
IBM API Strategy for Data Servers
PHP Applications
IBM Data Server
Driver for CLI
pdo_Informix
ODBC
pdo_ibm
Zend Framework adapter
PHP
Interpreter
IBM PHP Convergence Model
IBM Data
Servers
DRDA
DB2
Informix
Java/PHP/RUBY/PYTHON/<insert_next_hot_technology> all follow the exact same model
12
IBM Software Group
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
13
IBM Software Group
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_ib
m
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
14
IBM Software Group
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
15
IBM Software Group
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
16
IBM Software Group
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
17
IBM Software Group
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…
18
IBM Software Group
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/
19
IBM Software Group | DB2 Information Management Software
Datablades in IDS
Informix Dynamic Server
SQL Parser
Spatial
New Blade
MQSeries
TimeSeries
NAG
WEB
DATABLADE API
Geodetic
Optimizer
Parallel Query
Manager
Fragment Manager
Transaction Services
SQL Parser
Access Methods
Data Access Interface
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
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
IBM Informix Dynamic Server
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 23
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
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 24
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
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 25
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
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
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
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 27
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
WFSDriver CGI Program
Web
Browser
WFSDriver CGI
Web Server
wfs.cnf
wfsexplode
UDR
Database
Slide 28
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
IBM Informix Dynamic Server
WFSDriver CGI Program
POST
(KVP)
wfs_getpostkvp()
POST
(XML)
wfs_postxml()
Web
Browser
wfs_qrysend()
wfsexplode()
GET
XML Response
Document
Slide 29
Cheetah Feature Training | Confidential
© 2007 IBM Corporation
Basic Text Search Index
IDS Client
Query
processing
and
Optimizer
Index
Access
method
IDS Client
BTS: Basic Text
Search Index
Interface
Informix Dynamic
Server
Invocation
of
LUCENE
for text
index
operations
C-LUCENE
text search
index
analyze
0, 8, 12, 15
and
1, 9, 15, 22, 44, 23,
arts
1, 8,
10
behavior
1
cut
2, 22
…
…
with
…
your
…
30
30
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
id
title
0
Understanding locking behavior and analyze lock
conflicts in IDS
1
Informix and Open source: database defense against the
dark political arts
31
31
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');
32
32
Developer WorkBench
33
33
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
34
34
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.21
Ruby: Version IBM_DB-0.8.0
Check new forums:
– Unleash the new Java, .NET, PHP and Ruby client and Developer solutions for
IDS 11
http://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/
35
35
IBM Software Group
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/
36
IBM Software Group
Thank You
37