- Introduction
- Let Me Get This Straight, Apache Derby Is IBM Cloudscape?
- Development of the Apache Derby Database—Who Can Contribute and How?
- How Can IBM Sell a Product for Profit and Contribute the Same Product to the Open Source Community?
- How an Open Source Database Like Apache Derby Can Help
- Why the Need for a Local Data Store?
- Why Use a Relational Database?
- How the Apache Derby Platform Can Help Your Business
- A High-Level View of the Apache Derby Database
- The Apache Derby Components
- Developing Apache Derby Applications
Let Me Get This Straight, Apache Derby Is IBM Cloudscape?
IBM contributed the IBM Cloudscape database technology to the Apache Software Foundation as Apache Derby while at the same time announcing the IBM Cloudscape Version 10 database (the commercial offering based on the same open source technology).
What does all this mean? As far as the code goes—how you use it, class names, files names, and practically anything else you can think of—you can use the terms Apache Derby and IBM Cloudscape interchangeably (the exception to this is Apache-specific licensing rules that are governed by the Apache Software Foundation). Both Apache Derby and IBM Cloudscape are built from the same open source Apache Derby codebase. For the most part, all packages (class names, command names, stored procedure names, and so on) use the same naming convention under the Apache Derby name.
There are some minor differences between Apache Derby and IBM Cloudscape with respect to surrounding (or add-on) technologies that you should be aware of, and we will cover them later in this chapter.
The Apache Derby database, at the time this book was written, is available from the Incubator page on the Apache Web site (http://incubator.apache.org/projects/index.html) as both source code and compiled binaries. If you download Apache Derby, your usage of Apache Derby is bound by the Apache License Version 2.0. The Apache License is friendly to commercial businesses (which makes this a great product that provides a zero-cost, rich, and robust data runtime). In fact, anyone who binds to it can create his or her own commercial product. You can learn more about the Apache Software Foundation’s licensing terms at: http://www.apache.org/licenses.
As previously mentioned, the Apache Derby database is distributed both in open source code and in compiled binary format on the Apache Web site. To become a full-fledged Apache project, a project (like Apache Derby) must start in the Apache incubator, where it is given the opportunity to demonstrate that it can become part of a viable Apache community composed of individual contributors (you can see a list of the current contributors for Apache Derby at: http://incubator.apache.org/projects/derby.html#Detailed+References%3A) from both within and outside of the contributing company (in this case IBM). To learn more about how Apache incubator projects work, see http://incubator.apache.org/. Apache Derby will not be fully accepted by the Apache Software Foundation until it graduates from the incubator project. Incidentally, during the production phase of this book, Apache Derby graduated from the incubator phase to an official Apache sub-project.
At the time this book was written, the Apache Derby contribution was in a "Podling" stage and therefore requires the accompanying disclaimer (from http://incubator.apache.org/derby):
"Apache Derby is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by IBM. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF."
In contrast, the IBM Cloudscape database is only available in binary format; however, you do not need to pay for this license either. You can freely download and use the IBM Cloudscape database from the IBM developerWorks Web site at: http://www.ibm.com/developerworks/cloudscape.
Whether you’re developing an Apache Derby, IBM Cloudscape, .NET, open source (Python, PHP, or Perl), or Java application, bookmark this site. It is the most comprehensive developer resource for the IBM databases.
This Web site provides resources for developers contributed by Apache Derby community members from inside and outside IBM, such as technical articles, sample code, user forums, documentation, and links to the IBM Cloudscape add-ons.
One difference between Apache Derby and IBM Cloudscape is that you can purchase a support contract for IBM Cloudscape. A support contract delivers a service level agreement (SLA) from IBM that comes from its award winning, 24 _ 7 ‘best-of-breed’ service support team. Most of the personnel on this support team also contribute time and effort to the Apache Derby project by monitoring forums and newsgroups. However, a support contract enables businesses to rely on a paid support structure for critical application deployments in the same way they would receive support for proprietary products—this means defect repudiation, committed response times, severity classifications, and so on.
Other differences between IBM Cloudscape and Apache Derby are that IBM Cloudscape has:
-
A graphical installation wizard that lets you optionally select add-on IBM Cloudscape functional components like the ones detailed in this list. It is very well suited for developer workstation deployments.
-
The DB2 Universal JDBC driver, commonly referred to as the Java Common Client (JCC). This JCC driver is available for download from the IBM Cloudscape Web site. The JCC driver can perform Type 2 and Type 4 JDBC connections, and it shares a common codebase that can be used for JDBC connections across the entire DB2 and IBM Cloudscape family (there are licensing considerations for some of these connections). The benefit is portability if the need ever arises for a more enterprise-class database like DB2 UDB. Because the same code manages the connection and application flow between the hosting application and the database, you can be assured that migration efforts are trivial.
-
The IBM DB2 Plug-In for Eclipse (available as a free download from the IBM developerWorks Web site). This download includes:
-
The base Eclipse software developer's kit (SDK).
-
An Eclipse-based plug-in for Apache Derby, IBM Cloudscape, DB2, or Informix schema and SQL statement development. This tool enriches functions previously delivered by the old Cloudscape Cview utility.
-
An Eclipse-based plug-in for schema and data migration (with validity checking) from Apache Derby to DB2 for Linux, UNIX, and Windows.
-
Additional data access APIs like ODBC, PHP, Perl, and .NET interfaces. These interfaces can all be downloaded from developerWorks (although we've included links to them on the book's Web site [http://www.ibmpressbooks.com/title/0131855255] to make it easier to get going). White papers and other supporting collateral will accompany them as they become available. For example, the ODBC collateral will explain how to interface with Perl, PHP, and .NET applications using the ODBC driver.
-
Preloaded sample databases, including the traditional Cloudscape TOURSDB database and the DB2 SAMPLE database (these are included in the installation package).
-
Scripts to help you get up and running more quickly by setting your CLASSPATH environment variable, or by running some of the data utilities, and so on (these are included in the installation package).
-
Sample programs that test your database server.
-
An installation program that includes an IBM Java Runtime Environment (JRE) which is automatically installed with IBM Cloudscape for Windows and Linux (IBM -Cloudscape also ships a Java-based installer for other platforms, but you have to ensure that a JRE is installed and configured on your server.)
-
Documentation in PDF format, and online access to an information center built on the Eclipse help system framework. For Apache Derby, because you will have access to the documentation source files, you could use Apache Forrest to build and publish the documentation in HTML format to your own Web site or help system.
Keep in mind that because Apache Derby and IBM Cloudscape are the same product, any of the IBM Cloudscape add-ons mentioned in the previous list can be downloaded from IBM for use with Apache Derby.