I've looked at clouds from both sides now
From up and down, and still somehow
It's cloud illusions I recall
I really don't know clouds at all
--Joni Mitchell, " Both Sides Now"
In 1999, Informix bought a small company called Cloudscape with an exchange of stock reportedly worth $85 million. Cloudscape was a small, two-year-old startup company that specialized in developing a mobile relational database written entirely in Java. The purpose of Cloudscape was to allow mobile users or branch-office employees to connect to headquarters, download the latest data, work offline, and dial in again to update and sync up with the corporate database. From such simple beginnings, often major initiatives can germinate.
Origins of Cloudscape's Distributed Technology
Cloudscape had some significant obstacles to overcome in order to reach its goal of being a distributed RDMS. To enable the kind of database synchronization that Cloudscape designers envisioned, the code running Cloudscape had to be self-contained and exceptionally small--small enough to download the database structure and access path modalities with the data itself. This kind of distributed database architecture was somewhat new: Previously, each standalone application needed to handle data internally using its own data areas, or it needed to connect to a massive external database, sending code strings through an API.
Cloudscape was designed to be highly optimized Java code that could be embedded into the application itself. This code would exist in a JAR file that was downloaded with the application across the Internet.
Informix's Role with Cloudscape
Informix, which had fallen behind with its own relational database technology, needed a distributed database strategy, and Cloudscape was the perfect candidate. However, Informix was hampered by a lot of marketing problems. First, Sybase already owned 55% of the market, and Oracle owned 22%. Second, Informix was just emerging from lawsuits in which customers sued the company for broken promises regarding its database products. In that climate of distrust, many analysts saw Informix's purchase of Cloudscape as too little too late. In 2001, IBM finally bought all of Informix Software's database assets, including Cloudscape, with a cash transaction estimated to be $1 billion.
Cloudscape Goes Open Source
The big question on everyone's mind was "What will IBM do with Cloudscape?" The database technology was too advanced to discard, yet IBM was not about to confuse its customers by creating a branding conflict with its own DB2 database brand. In addition, IBM wanted to use Cloudscape for its IBM Workplace products to enable fast and easy synchronization to a central server, similar to what Lotus provides with its Notes replication functions. The advantages of using Cloudscape were that it was even smaller than the Notes document database, it was a relational database (not a "containment" document database), and it was written in pure 100% Pure Java. The answer to the dilemma, from IBM's perspective, was to give Cloudscape a new life as an open source project.
In the summer of 2004, IBM turned over to the Apache Software Foundation (ASF) about 500,000 lines of source code for Derby, the source code name given to Cloudscape. IBM released the Derby code to encourage the Java development community to begin writing applications using the code. IBM promised to bring out its own commercial version later and to provide support for the open source project.
Why did IBM open source a database at the low end of the market?
IBM says that it did so because there is an emerging market opportunity in small distributed database technology. Unlike some other products in that market, Cloudscape applications have an advantage in that the Cloudscape RDMS can be distributed with applications at no cost. At the same time, Cloudscape performance is more than "good enough."
An open source Cloudscape had other advantages as well. For example, Cloudscape would now be a major IBM initiative, backed and supported commercially by IBM. That means developers, ISVs, and Business Partners could deploy and sell Cloudscape-based solutions with confidence.
IBM's Cloudscape V10.0
In September of 2004, IBM finally released its commercial version of Cloudscape, called Cloudscape V10.0, based upon the Derby open source code. Today, the Cloudscape V10.0 database is a 100% Pure Java RDMS that runs in 4 MB of space on the J2SE or J2EE platforms, V1.3.1 or later.
Despite its small core, Cloudscape V10.0 has tremendous capability. The table size and the number of rows per table are limited only by available disk space, and there is no built-in limit on the number of tables per instance: If you have the disk space, Cloudscape will store the data. There is a maximum of 1,012 columns per table and no more than 32,767 indexes per table--both well beyond the needs of even the most pathological database.
Features of Cloudscape V10.0
IBM Cloudscape can be deployed in unsupervised environments and does not require database administration or resource management. This eliminates the need for a database administrator at each client installation site. An application enabled with IBM Cloudscape is transparent to nontechnical end users.
Multiple Platform Compatibility
Full-Featured Database in Compact Design
- Read-committed, read-uncommitted, serializable, and repeatable-read isolation levels
- Row-level locking
- Optimal transaction performance
- Low memory overhead for connections
- Fast access time and space reclamation for long rows
- Cost-based optimizer that supports hash joins, sort avoidance, and row- or table-level locking based on percent of data selected
- Fast query compilation
- Bulk load
- Multiple user support
- Built-in performance diagnostics: query statistics, locks, and space usage
Advanced Security Features
- Signed Java Archive (JAR) files
- LDAP or application-defined secure user authentication
- Configurable disk encryption, supporting both diverse encryption algorithms and encryption providers other than the default Java Cryptography Extension (JCE) provider
Internationalization and Localization Support
- Unicode support
- Per-database locale for character string collation
- Localized installers, tools, user interfaces, error messages, and documents for Spanish, Japanese, German, Italian, Chinese (simplified and traditional), French, Korean, and Brazilian Portuguese
- SQL-92E compliance and support for key features for SQL-99 standards
- Foreign key and check constraints
- Multicolumn B-Tree indexes
- Transaction commit and rollback
- Transactional isolation
- Crash recovery
- Multithreaded connections
- Online backup
- Cost-based query optimization
- Data import/export
- Support for complex SQL transactions and JDBC to speed migration to UDB
- JDBC driver certified for use with Java-compatible, J2EE-branded products
- Java stored procedures and functions
- Storage of jar files in the database, including signed jars
- Type 4 JDBC 3.0 driver integrated with the WebSphere solutions, including WebSphere Application Server
Cloudscape V10.0 Is Cheap!
Considering the full-function footprint of Cloudscape V10.0, you would think that IBM would charge an appropriately full-function price. However, IBM is selling Cloudscape V10.0 with a $0 license fee and an option to purchase maintenance starting at $499 per machine. Why?
IBM's wants to make this Java-based RDMS that is maintained by IBM and the open source community so cost-effective that it can rapidly become a standard. Then, as IBM continues pressing on with its on demand strategy, issues of database compatibility between computing systems and architectures will be standards-based and won't default to the Microsoft .NET or Oracle proprietary database structures. In other words, by making Cloudscape an open source project and keeping the licensing fee at $0, IBM hopes to develop the market in a standards-based mode, allowing it to further its on demand strategies.
If IBM's strategy for Cloudscape is successful, the open source Java developer community will continue to download Derby source code and proceed with the advancement of the small RDMS. In addition, IBM Business Partners will use the Cloudscape V10.0 database in their standalone applications. IBM, for its part, has promised to continue the development of Cloudscape through the ASF, providing support with new products as Derby evolves.
What started out as a small company called Cloudscape has now become a fully supported IBM open source project managed by the ASF. At the same time, developers now have an excellent means of standardizing application data access methodologies around a highly advanced and sophisticated RDMS for a cost that is next to nothing.
For more information about Cloudscape, click here!
For more information about the Apache Software Foundation's Derby project, click here!
Thomas M. Stockwell is Editor in Chief of MC Press Online, LP.