IBM Pervasive Databases:DB2 Everyplace and Cloudscape
Frank KoconisPartner Enablement Consultant / IBM Information Management
Session: M14Thursday, May 26, 200512:30 PM - 1:40 PM
Platform:
2
Contents
• The Problem: Data storage on mobile Devices
• DB2 Everyplace
• Cloudscape
• Server Connectivity: DB2 Everyplace Sync Server
• The Ultimate Question
• Summary
3
The Problem: Data Storage on Mobile Devices
• Mobile devices operate in an embedded (disconnected) or “occasionally-connected” environment
• Example: Asset-tracking system for a construction company• PDA’s are used at job sites to check out tools to workers
• Workers check tools back in when they finish using them
• Tools and worker’s badges are bar-coded
• Once per day, each PDA “syncs” to central server to upload transactions and receive info on new tools and employees
• Very successful: Tools stopped “disappearing”
4
The Problem (continued)
• Mobile applications cannot use traditional RDBMS’s
• Developers often use “flat-file” storage on mobile devices, but this has problems• Requires a lot of coding
• Error-prone
• No transaction processing, indexing, joins, etc.
• A better solution: use a small-footprint database engine, such as IBM’s DB2 Everyplace or Cloudscape
5
DB2 Everyplace
6
What is DB2 Everyplace?
The small-footprint relationaldatabase for mobile computing
7
The DB2 Everyplace Architecture
• Click to add text. First bullet point Times 25 point• Text In bullet form Times 25 point
• Second level Times 21 point• Third level Times 19 point
8
DB2 Everyplace- Key Features• Written in highly portable C
• Runs on most popular devices• Palm OS, Windows CE/Pocket PC, Symbian, QNX Neutrino, Linux,
and WinNT/2000/XP)
• Ideal for embedded & mobile applications• Very small footprint (about 200K)• Zero admin on client• Supports PDA memory expansion cards, including Microdrive
• Support for over a dozen national languages
• Local data encryption
9
DB2 Everyplace- Rich Database Functionality
• Wide range of data types including BLOB’s
• Advanced indexing
• Primary-key and check constraints
• Transaction support
• Identity (auto-increment) columns
• GROUP BY and ORDER BY
• Prepared statements
10
DB2 Everyplace Functionality (continued)
• Read-only media support on WinNT/2000/XP & Linux
• Remote stored procedure calls
• Scrollable cursors
• Supports standard programming interfaces• DB2 CLI (subset of ODBC)• JDBC (subset)• .NET
• Develop using C/C++, Java, C#, Visual Basic or JSP’s
11
DB2 Everyplace Components
Component Name DescriptionDB2 Everyplace Database Database Engine
High performance data store for managing and using data on mobile and embedded devices
DB2 Everyplace Sync Server Synchronization ServerMobile user management and synchronization of enterprise data with mobile and embedded devices
DB2 Everyplace
Software Development Kit
Application Development ToolsRAD tools, development plug-ins, whitepapers and samples enabling developers to create DB2 Everyplace applications quickly
12
RAD Tools in the DB2 Everyplace SDK
• Mobile Application Builder (MAB)
• AppForge plug-in
• WebSphere Studio Device Developer (WSDD) plug-in
13
Mobile Application Developer
• Generates GNU-compatible C code for Palm OS
• Generates Java code for devices supporting the Sun PersonalJava API• WinCE/PocketPC• Symbian OS V6 & V7• Sharp Zaurus• PalmOS 5 (StrongARM or XScale
processor required)
• Rapid prototyping- generates apps without writing any code
14
MAB- Features
• Fully supports relational database operations• Database joins on a single form• Automated BLOB data handling• Databases on expansion cards (Microdrive, CF, SD Card, Memory
stick)• Supports automatic form creation directly from database table
definitions
• Easy to use- visually create and edit forms by selecting controls from a palette
• Sync API support for generation of synchronization code
15
Mobile Application Builder
16
Other RAD tools in the DB2 Everyplace SDK• AppForge
• AppForge MobileVB is an add-in for Microsoft Visual Basic• Provides development environment for Palm, Pocket PC & Symbian• Develop once, deploy anywhere! (platform independence)• IBM provides plug-in for AppForge MobileVB to enable DB2
Everyplace application development
• Websphere Studio Device Developer (WSDD)• Enables developers to extend e-business applications to mobile
devices such as cellular telephones and PDA’s• Extends the WebSphere family to build applications based that
support J2ME™ as well as non- J2ME™ configurations• Lets developers create Java based DB2 Everyplace applications• Supports both relational database and synchronization features
17
Cloudscape
18
What is Cloudscape?
An embeddable, lightweight, relational SQL database engine for Java.
19
Cloudscape History
• Cloudscape, Inc. founded in 1996 by a team of experts from Informix, Illustra, Oracle and Sybase
• Purchased in September of 1999 by Informix Corporation
• Acquired by IBM with Informix purchase in July of 2001
• Released by IBM as open source (“Derby”) in September of 2004
20
Cloudscape- Key Features
• Pure Java (runs on any machine with a JVM!)
• Embeddable• Can be installed as a JAR file (as part of a Java application)• Can be started within an application• Installation, startup and shutdown are invisible to user
• Fully-functional RDBMS
• Adheres to standards• JDBC• SQLJ• ANSI SQL-92
21
Cloudscape- Key Features (continued)
• "Zero" Administration• No need for DBA at customer site• Users may even be unaware that a database engine is present
• Lightweight• Can run in as little as 8MB
• Scales to Moderate Size• No defined limits on table or row sizes• Table size limit of 2GB in some environments (OS limit)• Existing customer databases of about 10 GB working well
22
Cloudscape- Key Features (continued)
• Supports Disk Encryption• Tested with IBM JCE
• Easy for Application Developers to Use• To set up, just copy Cloudscape JAR files and set Java
CLASSPATH• Database engine starts automatically when application attempts to
connect to it
• Cloudscape databases are completely portable• To move a Cloudscape database to another machine, just copy it!
(This works even if the machines have different OS or hardware!)
23
Cloudscape is a Fully-Functional RDBMS
• Indexes
• Views
• Triggers and Stored Procedures
• Constraints (primary-key, foreign-key, unique, check)
• Concurrency Support• Transactions (with crash recovery)• Savepoints• Row-level locking, with escalation• JDBC isolation levels (including dirty-read)
24
Cloudscape Database Functionality (continued)
• Scrollable Cursors (result sets)
• Cascading Delete
• Internationalization/Localization Support
• Supports multi-user access (using Network Server)
• SQL syntax is very similar to DB2 UDB
“Develop on Cloudscape; deploy on DB2”
25
The Cloudscape Network Server• Allows multiple local and/or remote clients to concurrently
access the same Cloudscape databases• Clients may be JDBC, ODBC or .Net*• 100% Java
JVM
DRDA
Application
Server
Cloudscape DB
Cloudscape DB
Cloudscape DB
JDBCClient
JDBC-DRDADriver
JDBCClient
JDBC-DRDADriver
ODBCClient
ODBC-DRDADriver
ODBCClient
ODBC-DRDADriver
.NetClient
.Net-DRDADriver
*- Currently Under Development
26
Cloudscape as a Development Database
• The problem• Developers need a database for unit testing of their code• Usual practice: a development database (DB2 UDB) on a server
• However, this has many disadvantages• Must pay for DB2 UDB license on the server• Requires a DBA to set up and administer the development database• BIGGEST PROBLEM: Whenever one developer “trashes” the
database, work stops for everyone, and the DBA must rush to fix it!
27
Cloudscape as a Development Database (cont.)
• A better solution: A Cloudscape database for each developer• Create a “master” database, then copy it onto developer workstations• If any developer “trashes” it, he/she just re-copies from the master!• No DBA required, and other developers are not affected!
• Later, when modules are integrated, switch to DB2 UDB
“Develop on Cloudscape; deploy on DB2”
28
IBM Products which use Cloudscape• WebSphere (WSAD and WAS)
• Cloudscape used for sample applications• Can handle pooling of Cloudscape connections• Integration plug-in allows easy development in Eclipse environment
• Tivoli Monitor and Tivoli Storage Area Network Manager• Both use embedded Cloudscape
• Lotus LearningSpace• Uses embedded Cloudscape
• IBM Workplace Client• Uses embedded Cloudscape
• Many others deployed and under development
29
Server Connectivity:The DB2 Everyplace Sync Server
For DB2 Everyplace and Cloudscape
30
DB2 Everyplace Sync Server Architecture
31
DB2 Everyplace Sync Server- Key Features
• Efficient 2-way synchronization• Supports most server databases (DB2 UDB, IDS, Lotus Domino,
Oracle, SQL Server, Sybase and Cloudscape) on many platforms• Optimized, secure transmission (56-bit or 128-bit encryption)
• Centralized administration• User and group administration• Data subscription by user or group, with horizontal and/or vertical
data filtering• Customizable conflict resolution (using “user exits”)• Automatic distribution of data, files and applications• Monitor synchronization progress in real-time• Zero administration on mobile device
32
DB2 Everyplace Sync Server Features (cont.)
• Scalable• Supports WAS Server Groups for High Availability and Scalable
configurations• Automatic upgrades of sync client and DB2 Everyplace or
Cloudscape database software without user interventions
• Remote Stored Procedure support• Allows mobile applications to access server data sources in real time
• Now works with Cloudscape• Cloudscape supported as a mobile client and as a server data source
33
Sync Server Administration:Mobile Device Administration Center
34
Cloudscape Synchronization
• New sync client for Cloudscape
• Works with DB2Everyplace Sync Server
• 100% Java
• Synchronize Cloudscape clients to any database supported by DB2 Everyplace Sync Server, including Cloudscape• DB2 UDB on all platforms; also DB2 on zSeries and iSeries• IBM Informix (IDS)• Oracle• MS SQL Server• Sybase• Cloudscape
35
And Now- The Ultimate Question
(to which the answer is not 42)
36
DB2 Everyplace or Cloudscape?DB2 Everyplace Cloudscape
Footprint ~200K 8MB+
Database size Small Small-to-medium
Language C Java
Platform support Many Any (except PDA’s)
DB Access Methods ODBC,OLE, .Net, JDBC JDBC, ODBC, .Net (future)
Concurrent Users One Small group (using the Cloudscape Network Server)
Synchronization DB2 Everyplace Sync Server DB2 Everyplace Sync Server
37
For More Information
• DB2 Everyplace• http://www-306.ibm.com/software/data/db2/everyplace/
• Cloudscape (and the Cloudscape Network Server)• http://www-306.ibm.com/software/data/cloudscape/• http://63.209.20.13/cgi-bin/db2www/cloudscapeforum.d2w/main• http://incubator.apache.org/derby/
• DB2 Everyplace Sync Server• http://www-306.ibm.com/software/data/db2/everyplace/syncserver.html
38
Questions?
39
IBM Pervasive Databases: DB2 Everyplace and CloudscapeSession: M14
Frank KoconisPartner Enablement Consultant / IBM Information Management