Rational software Presentation Template


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • As of October, 2005, there were about 70 projects within IBM actively using Cloudscape
  • Intended for a “handful” of concurrent connections, although tested successfully with hundreds
  • J2ME is the overriding technology name for the low-end Java platform, aimed at devices. Within J2ME the first layer is a configuration, configurations define the functionality of the Java Virtual Machine and some core Java libraries, e.g. java.lang.*. J2ME supports two configurations currently: CDC and CLDC (Connected Limited Device Configuration). E.g. CLDC does not support doubles. On-top of a single configuration profiles are added. Profiles describe sub-sets of J2SE or J2ME specific sets of Java libraries. Foundation and Personal are profiles for CDC, MIDP is a profile for CLDC. Foundation is a sub-set of the core java libraries (e.g. java.math, java.util, java.lang, etc.) and produces an environment much like JDK 1.1, except no UI is provided. Thus it works for “headless” devices. Personal profile adds UI (AWT) to Foundation. Thus Cloudscape requires a minimum of CDC/Foundation to run, if a different profile is a super-set of this then Cloudscape will run there, e.g. CDC/Personal.
  • J2ME provides limited debugging capabilities, so many developers do their development on J2SE and then compile, test and deploy on J2ME. They just need to be aware of the limitations. If you try to use an unsupported feature in J2ME (for example, trying to start the Network Server), you are likely to get Class not found exceptions.
  • Cloudscape can also be used to fulfill a common need in a development shop: how to provide all application programmers with a database for code development and unit testing. The traditional solution is to create a database on a server somewhere and let all of the developers connect to it. This requires that a DBA be assigned to the project to set up the database and populate it with test data (since the server will be running a high-end database system such as DB2 UDB or Oracle). The DBA must also remain “on-call” for the duration of the project, because every so often, one of the developers will accidentally “trash” the database. For example, if someone’s code submits an SQL “DELETE” statement, but omits the “WHERE” clause, then every row in a table goes away, instead of just the desired one. When something like this happens, development work is halted for the entire team, and the DBA must rush to restore the test data so everyone can get back to work. The logical way to minimize the impact of this kind of coding error is to give each developer his/her own copy of the test data, using a smaller database engine running on the developer’s workstation. All of the major database vendors offer “lite” versions of their products which can be used for this purpose (for example, there is IBM DB2 Express and Oracle Database Lite). However, these still often require a DBA to properly install, set up and administer. Although there may be less administration work for these “lite” database engines, the DBA must do it on every developer’s workstation (and run around fixing them, when the developers “trash” them!).
  • A better solution is a zero-administration database, such as Cloudscape. No DBA is required to install or set up Cloudscape: the developers simply copy the Cloudscape JAR files onto their workstations, then edit their Java CLASSPATH’s to point to them. Also, since Cloudscape’s data is completely portable, the test data can be loaded once into a “master” database (which is then write-protected), and the developers can copy this onto their workstations. Whenever developers accidentally damage their copies of the test data, they just copy from the master database again. No DBA is involved, and database damage caused by one developer never causes a delay for anyone else. Cloudscape would be used for application coding and unit testing, and in later phases of a large project (integration, performance testing and deployment), a high-end database system would be used. This is why IBM has coined the phrase “Build on Cloudscape, Deploy on DB2”, and IBM has taken steps to make Cloudscape compatible with DB2 UDB. For example, minor data-type and SQL syntax differences have been removed, and certain DB2 features have been added to Cloudscape, such as cascading DELETE.
  • IMPORTANT: “Informix” support, above, means IDS only (not On-line or older Informix engines)
  • All administrative tasks are handled on the server side. This includes data source definition, data subscription setup, user/group management, access control and synchronization monitoring. The administrator uses the DB2 Everyplace Mobile Device Administration Center (described in the next section) to perform these tasks. The synchronization client devices are completely zero-admin.
  • Rational software Presentation Template

    1. 1. Cloudscape – Past and Present Frank Koconis Advisory Software Engineer/IBM Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia December 8-9, 2005
    2. 2. Outline <ul><li>History </li></ul><ul><li>Key Features </li></ul><ul><li>Deployment Options: single- or multi-user </li></ul><ul><li>Running on Small Devices (J2ME) </li></ul><ul><li>Development environments for Cloudscape </li></ul><ul><li>Cloudscape as a Development Database </li></ul><ul><li>Synchronization with Enterprise Databases </li></ul><ul><li>Derby is Cloudscape </li></ul><ul><li>Summary </li></ul>
    3. 3. What is Cloudscape? <ul><li>An embeddable, lightweight, relational SQL database engine for Java. </li></ul>
    4. 4. History <ul><li>Cloudscape, Inc. founded in 1996 by a team of experts from Informix, Illustra, Oracle and Sybase </li></ul><ul><li>Purchased in September of 1999 by Informix Corporation </li></ul><ul><li>Acquired by IBM with Informix purchase in July of 2001 </li></ul><ul><li>Released by IBM as open source (“Derby”) in September of 2004 </li></ul>
    5. 5. Cloudscape- Key Features
    6. 6. Cloudscape- Key Features <ul><li>100% Pure Java </li></ul><ul><ul><li>Completely portable to any hardware, any OS </li></ul></ul><ul><ul><li>Only requires JVM (J2SE 1.3 or higher) </li></ul></ul><ul><li>Embeddable </li></ul><ul><ul><li>Can be installed as a JAR file (as part of a Java application) </li></ul></ul><ul><ul><li>Can be started within an application </li></ul></ul><ul><ul><li>Installation, startup and shutdown are invisible to user </li></ul></ul><ul><li>Fully-functional RDBMS </li></ul><ul><li>Adheres to standards </li></ul><ul><ul><li>JDBC </li></ul></ul><ul><ul><li>SQLJ </li></ul></ul><ul><ul><li>ANSI SQL-92 </li></ul></ul>
    7. 7. Key Features (continued) <ul><li>&quot;Zero&quot; Administration </li></ul><ul><ul><li>No need for DBA at customer site </li></ul></ul><ul><ul><li>Users may even be unaware that a database engine is present </li></ul></ul><ul><li>Lightweight </li></ul><ul><ul><li>Approx. 2MB “footprint” </li></ul></ul><ul><ul><li>Can run on many “palm”-size devices ( new feature! ) </li></ul></ul><ul><li>Scales to Moderate Size </li></ul><ul><ul><li>No defined limits on table sizes </li></ul></ul><ul><ul><li>Table size limit of 2GB in some environments (OS limit) </li></ul></ul><ul><ul><li>Existing customer databases of >10 GB working well </li></ul></ul><ul><li>Supports Disk Encryption </li></ul><ul><ul><li>Tested with IBM JCE </li></ul></ul>
    8. 8. Key Features (continued) <ul><li>Easy for Application Developers to Use </li></ul><ul><ul><li>To set up, just copy Cloudscape JAR files and set Java CLASSPATH </li></ul></ul><ul><ul><li>Database engine starts automatically when application attempts to connect to it </li></ul></ul><ul><li>Cloudscape databases are completely portable </li></ul><ul><ul><li>To move a Cloudscape database to another machine, just copy it! (This works even if the machines have different OS or hardware!) </li></ul></ul><ul><li>Distributed transaction support (new!) </li></ul><ul><ul><li>Participates in XA transactions with other database systems </li></ul></ul>
    9. 9. Cloudscape is a Fully-Functional RDBMS <ul><li>Indexes </li></ul><ul><li>Views </li></ul><ul><li>Triggers and Stored Procedures </li></ul><ul><li>Constraints (primary-key, foreign-key, unique, check) </li></ul><ul><li>Concurrency Support </li></ul><ul><ul><li>Transactions (with crash recovery) </li></ul></ul><ul><ul><li>Savepoints </li></ul></ul><ul><ul><li>Row-level locking, with escalation </li></ul></ul><ul><ul><li>JDBC isolation levels ( including dirty-read ) </li></ul></ul><ul><li>Scrollable Cursors (result sets) </li></ul><ul><li>Cascading Delete </li></ul><ul><li>Internationalization/Localization Support </li></ul>
    10. 10. IBM Products Using Cloudscape <ul><li>WebSphere (WSAD and WAS) </li></ul><ul><ul><li>Cloudscape used for sample applications </li></ul></ul><ul><ul><li>Can handle pooling of Cloudscape connections </li></ul></ul><ul><li>Tivoli Monitor and Tivoli Storage Area Network Manager </li></ul><ul><ul><li>Both use embedded Cloudscape </li></ul></ul><ul><li>Lotus LearningSpace </li></ul><ul><ul><li>Uses embedded Cloudscape </li></ul></ul><ul><li>IBM Workplace Client </li></ul><ul><ul><li>Uses embedded Cloudscape </li></ul></ul><ul><li>Many others deployed and under development </li></ul>
    11. 11. Deployment Options: single- or multi-user
    12. 12. Apache Derby Architecture <ul><li>Two Deployment Options </li></ul><ul><ul><li>Embedded </li></ul></ul><ul><ul><ul><li>Derby disappears into the application </li></ul></ul></ul><ul><ul><ul><li>Zero Admin </li></ul></ul></ul><ul><ul><li>Network Server </li></ul></ul><ul><ul><ul><li>Familiar client-server architecture </li></ul></ul></ul><ul><ul><ul><li>Low Admin </li></ul></ul></ul><ul><li>Additional Option for Development </li></ul><ul><ul><li>Embedded Network Server </li></ul></ul>
    13. 13. Cloudscape Architecture: Embedded Java Virtual Machine (JVM) Derby engine Database(s) on disk Application JDBC <ul><li>Database only accessible from single JVM </li></ul><ul><li>Java/JDBC only </li></ul><ul><li>No network connectivity </li></ul><ul><li>Any number of concurrent connections </li></ul><ul><li>from any number of threads in this JVM </li></ul><ul><li>Typically a single application (but could be multiple) </li></ul>
    14. 14. Cloudscape Architecture: Network Server Java Virtual Machine (JVM) Derby engine Derby Network Server DB2 Universal JDBC Driver (JCC) CCC (CLI/ODBC) <ul><li>Multiple Client applications -Remote or local </li></ul>PHP / Perl on top of ODBC Client Applications via Derby Network Client Database(s) on disk
    15. 15. Running on Small Devices (J2ME)
    16. 16. J2ME/CDC/Foundation <ul><li>J2ME – Java 2 Micro Edition </li></ul><ul><li>CDC – Connected Device Configuration </li></ul><ul><li>Foundation Profile 1.0 </li></ul><ul><ul><li>Set of java core libraries supported </li></ul></ul><ul><ul><li>Sub-set of J2SE 1.3 </li></ul></ul><ul><li>Set-top boxes, embedded servers, cash registers </li></ul><ul><ul><li>PDA’s starting to use J2ME/CDC/FP </li></ul></ul><ul><ul><li>Not cell-phones , that’s J2ME/CLDC/MIDP </li></ul></ul><ul><li>Uses subset of JDBC 3.0 (JSR-169) </li></ul><ul><li>Look for the abbreviation: J2ME/CDC/FP </li></ul>
    17. 17. Cloudscape on J2ME <ul><li>Same Jar file – derby.jar </li></ul><ul><ul><li>10.1 supports J2SE 1.3, 1.4, J2SE 5.0, J2ME/CDC/FP </li></ul></ul><ul><ul><li>J2ME/CDC/FP is new for 10.1 </li></ul></ul><ul><li>Only Cloudscape embedded supported </li></ul><ul><li>Application development expected to be on J2SE </li></ul><ul><li>Network Server, Client, JCC not supported in J2ME </li></ul><ul><li>On-disk database format remains unchanged </li></ul><ul><ul><li>Can copy unencrypted databases between J2ME, J2SE and J2EE </li></ul></ul>
    18. 18. How do you tell that it’s J2ME? <ul><li>Sysinfo will report J2ME info </li></ul><ul><li>------------------ Java Information ------------------ </li></ul><ul><li>Java Version: J2ME Foundation Specification v1.0 </li></ul><ul><li>Java Vendor: IBM Corporation </li></ul><ul><li>Java home: c:workp4djdt1wctme5.7ive </li></ul><ul><li>Java classpath: c:/_work/svn_clean/trunk/classes;c:/_work/svn_clean/trunk/tools/java/jakarta-oro-2.0.8.jar </li></ul><ul><li>OS name: Windows XP </li></ul><ul><li>OS architecture: x86 </li></ul><ul><li>OS version: 5.1 build 2600 Service Pack 1 </li></ul><ul><li>Java user name: djd </li></ul><ul><li>Java user home: C:Documents and SettingsAdministrator </li></ul><ul><li>Java user dir: C:worksvn_clean runksystestout </li></ul><ul><li>java.specification.name: J2ME Foundation Specification </li></ul><ul><li>java.specification.version: 1.0 </li></ul><ul><li>--------- Derby Information -------- </li></ul><ul><li>JRE - JDBC: J2ME - JDBC for CDC/FP 1.0 </li></ul><ul><li>[C:worksvn_clean runkclasses] alpha - (220112M) </li></ul><ul><li>------------------------------------------------------ </li></ul><ul><ul><li>----------------- Locale Information ----------------- </li></ul></ul><ul><ul><li>… </li></ul></ul>
    19. 19. Development Environments for Cloudscape
    20. 20. Derby Eclipse Plug-In <ul><li>Integrates with Eclipse </li></ul><ul><li>Manage network server </li></ul><ul><li>Run ij </li></ul><ul><li>Execute sql scripts </li></ul><ul><li>Run sysinfo </li></ul><ul><li>Create and run database applications </li></ul>
    21. 21. Cloudscape Workbench <ul><li>Eclipse Rich Client Platform (RCP) </li></ul><ul><ul><li>stand alone </li></ul></ul><ul><ul><li>only ~25 meg </li></ul></ul><ul><li>Browse database </li></ul><ul><li>Create objects </li></ul><ul><li>Insert/update/delete </li></ul><ul><li>Extract/load tables </li></ul><ul><li>Generate DDL </li></ul><ul><li>Migrate Derby to DB2 </li></ul>
    22. 22. Gluecode SE <ul><li>Lightweight Java App Server </li></ul><ul><li>Apache Geronimo </li></ul><ul><ul><li>J2EE 1.4 </li></ul></ul><ul><li>Apache Derby </li></ul><ul><li>Messaging Services (ActiveMQ) </li></ul><ul><li>Management Console </li></ul>
    23. 23. Other Development Options <ul><li>C/C++ </li></ul><ul><li>PHP </li></ul><ul><ul><li>Zend core: http://www-306.ibm.com/software/data/info/zendcore/ </li></ul></ul><ul><li>Perl </li></ul><ul><li>Python </li></ul><ul><li>Other languages (ODBC through Network Server) </li></ul>
    24. 24. Cloudscape as a Development Database
    25. 25. Cloudscape as a Development Database <ul><li>The problem </li></ul><ul><ul><li>Developers on large projects need a database for unit testing </li></ul></ul><ul><ul><li>Usual practice: a development database (such as IDS) on a server </li></ul></ul><ul><li>However, this has many disadvantages </li></ul><ul><ul><li>Must pay for database license (IDS or DB2 UDB) on server </li></ul></ul><ul><ul><li>Requires a DBA to set up and administer the development database </li></ul></ul><ul><ul><li>BIGGEST PROBLEM: Whenever one developer “trashes” the database, work stops for everyone, and the DBA must rush to fix it! </li></ul></ul>
    26. 26. Cloudscape as a Development Database (cont.) <ul><li>A better solution: A Cloudscape database for each developer </li></ul><ul><ul><li>Create a “master” database, then copy onto developer workstations </li></ul></ul><ul><ul><li>If any developer “trashes” it, he/she just re-copies from the master! </li></ul></ul><ul><ul><li>No DBA required, and other developers are not affected! </li></ul></ul><ul><li>Later, when modules are integrated, switch to “enterprise” database (IDS, DB2 UDB, Oracle, etc.) </li></ul>
    27. 27. Synchronization with Enterprise Databases
    28. 28. Synchronization with Enterprise Databases <ul><li>Java sync client for Cloudscape </li></ul><ul><li>Works with DB2Everyplace Sync Server </li></ul><ul><li>100% Java </li></ul><ul><li>Synchronize Cloudscape clients to any database supported by DB2E Sync Server, including Cloudscape </li></ul><ul><ul><li>DB2 UDB V7 and V8; also DB2 on zSeries and iSeries </li></ul></ul><ul><ul><li>IBM Informix (IDS) </li></ul></ul><ul><ul><li>Oracle </li></ul></ul><ul><ul><li>MS SQL Server </li></ul></ul><ul><ul><li>Sybase </li></ul></ul><ul><ul><li>IBM Cloudscape </li></ul></ul>
    29. 29. DB2 Everyplace Sync Server Architecture
    30. 30. DB2 Everyplace Sync Server- Key Features <ul><li>Efficient 2-way synchronization </li></ul><ul><ul><li>Supports most server databases (DB2 UDB, IDS, Lotus Domino, Oracle, SQL Server, Sybase and Cloudscape) on many platforms </li></ul></ul><ul><ul><li>Optimized, secure transmission (56-bit or 128-bit encryption) </li></ul></ul><ul><li>Centralized administration </li></ul><ul><ul><li>Data subscription by user or group, with data filtering </li></ul></ul><ul><ul><li>Customizable conflict resolution (using “user exits”) </li></ul></ul><ul><ul><li>Automatic distribution of data, files and applications </li></ul></ul><ul><ul><li>Monitor synchronization progress in real-time </li></ul></ul><ul><ul><li>Zero administration on mobile device </li></ul></ul><ul><li>Scalable </li></ul><ul><ul><li>Supports WAS Server Groups for high availability and scalability </li></ul></ul><ul><ul><li>Automatic upgrades of client database software </li></ul></ul>
    31. 31. Derby is Cloudscape
    32. 32. IBM Cloudscape based on Open-source Apache Derby <ul><li>IBM contributed Cloudscape relational database technology to Apache Software Foundation </li></ul><ul><ul><li>Derby </li></ul></ul><ul><ul><li>Accepted as Apache Incubator Project in August ’04 </li></ul></ul><ul><li>No “viral” open source licensing issues with either Apache Derby or IBM Cloudscape </li></ul><ul><li>No fee required by Apache or IBM </li></ul>Derby
    33. 33. IBM Cloudscape based on Open Source Apache Derby <ul><li>Apache Derby milestones </li></ul><ul><ul><li>Sun Microsystems Engineers join Derby project Q2’05 </li></ul></ul><ul><ul><li>Graduates from Apache Incubator in July 2005 </li></ul></ul><ul><ul><li>Apache Derby 10.1 available in July 2005 </li></ul></ul><ul><li>IBM ships Cloudscape 10.1 in August 2005 </li></ul><ul><li>Sun announces plans to ship Derby with </li></ul><ul><ul><li>NetBeans development tool </li></ul></ul><ul><ul><li>Java Enterprise System application and portal servers </li></ul></ul><ul><li>Still no “viral” open source licensing issues with either Apache Derby 10.1 or IBM Cloudscape 10.1 </li></ul>Derby
    34. 34. Apache Derby? IBM Cloudscape? <ul><li>Apache Derby </li></ul><ul><li>Complete relational database </li></ul><ul><li>Standards-based </li></ul><ul><li>Small footprint </li></ul><ul><li>Zero admin </li></ul><ul><li>Secure </li></ul><ul><li>Open Source </li></ul><ul><li>Apache 2.0 License </li></ul><ul><li>IBM Cloudscape </li></ul><ul><li>Installers </li></ul><ul><li>IBM Java Runtime (JRE) </li></ul><ul><li>Examples and scripts </li></ul><ul><li>DB2 Universal JDBC Driver </li></ul><ul><li>Support for ODBC & PHP </li></ul><ul><li>Eclipse plug-ins </li></ul><ul><ul><li>Database browsing </li></ul></ul><ul><ul><li>DB2 migration </li></ul></ul><ul><li>Translated error messages and manuals (9 languages) </li></ul><ul><li>Technical Support </li></ul>
    35. 35. Distribution Strategies <ul><li>Apache Derby </li></ul><ul><ul><li>Available at Apache from the Apache DB Project </li></ul></ul><ul><ul><li>Bundled in Sun, Eclipse, Linux, and other distributions </li></ul></ul><ul><li>IBM Cloudscape: Based on Apache Derby </li></ul><ul><ul><li>No-charge download of IBM Cloudscape binary from www.ibm.com/developerworks/cloudscape </li></ul></ul><ul><ul><ul><li>Application developer support via IBM developerWorks </li></ul></ul></ul><ul><ul><ul><ul><ul><li>Manuals, How-To Articles, Forums, … </li></ul></ul></ul></ul></ul><ul><ul><li>Fully Supported Product Version </li></ul></ul><ul><ul><ul><ul><li>Full IBM 24x7 IBM Support Available </li></ul></ul></ul></ul>Downloadable from IBM Fully Supported IBM Product Derby Open Source Via Derby
    36. 36. Cloudscape- Summary <ul><li>100% Java </li></ul><ul><li>Full RDMS functionality with a small footprint </li></ul><ul><li>Embeddable </li></ul><ul><li>Zero-admin </li></ul><ul><li>Standards-compliant </li></ul><ul><li>Low-cost development </li></ul><ul><li>Open-source </li></ul>
    37. 37. For More Information <ul><li>Apache Derby web site </li></ul><ul><ul><li>http://db.apache.org/derby </li></ul></ul><ul><li>Apache Derby mail lists </li></ul><ul><ul><li>http://db.apache.org/derby/derby_mail.html </li></ul></ul><ul><li>developerWorks Cloudscape Zone </li></ul><ul><ul><li>http://www.ibm.com/developerworks/cloudscape/ </li></ul></ul><ul><li>Documentation </li></ul><ul><ul><li>http://publib.boulder.ibm.com/infocenter/cldscp10/index.jsp </li></ul></ul>
    38. 38. For More Information (continued) <ul><li>Samples: </li></ul><ul><ul><li>https://w3.opensource.ibm.com/horde/chora/cvs.php/db2drv/php/php/tests </li></ul></ul><ul><li>PHP Driver & Zend Core Information </li></ul><ul><ul><li>http://www-306.ibm.com/software/data/info/zendcore/ </li></ul></ul><ul><ul><li>http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0507hutchison/ </li></ul></ul><ul><ul><li>http://livedocs.phpdoc.info/index.php?l=en&q=ref.ibm-db2 </li></ul></ul><ul><ul><li>http://cvs.php.net/co.php/pecl/ibm_db2 </li></ul></ul><ul><ul><li>http://cvs.php.net/pecl/ibm_db2 </li></ul></ul>
    39. 39. Coming Soon- <ul><li>New Book (Due in November): Apache Derby -- Off to the Races </li></ul><ul><ul><li>Includes Details of IBM Cloudscape (Hardcover) </li></ul></ul><ul><ul><li>By Paul C. Zikopolous, George Baklarz, Dan Scott </li></ul></ul><ul><ul><li>ISBN 0131855255 </li></ul></ul><ul><ul><li>http://www.devx.com/IBMDB2/Link/29722 </li></ul></ul>
    40. 40. Cloudscape – Past and Present Frank Koconis [email_address] Informix User Forum 2005 Moving Forward With Informix Atlanta, Georgia December 8-9, 2005