- 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
How the Apache Derby Platform Can Help Your Business
There are many reasons why an Apache Derby platform decision can benefit your company, project, or infrastructure. In this section, we will give you some examples of how Apache Derby can be used in today’s marketplace.
From a market perspective, not all client/server or Web applications require the muscle of an enterprise-class infrastructure database. In fact, 20–30% of applications might only need basic relational database capabilities, and their hosting environments might not have the system requirements to grab IT allocations (or attention for that matter) for these full-fledged data engines. However, they still require the scalability and robustness for data integrity that are associated with such databases, and Apache Derby gives them a way to do that.
In addition, as the amount of data being collected literally grows logarithmically and developers learn to leverage the benefits of a relational storage model, there are more and more demands for relational engines to be easy to use, easy to deploy, and embeddable. Developers will use databases, but they have overwhelmingly communicated that they are not interested in becoming DBAs.
Java has become a mainstay of the IT community; it is the write once, run anywhere imperative that helps to encourage platform independence and drives down the cost of computing. In fact, over 40% of all developers have Java-based skills. Coupled with other open source movements like Linux, the market screams for a true Java-oriented database from implementation through to the API. (Apache Derby can also support other programming languages and interfaces like .NET and ODBC, too, so it isn’t just for Java developers.)
Finally, more than ever, the open source community is literally changing the landscape of information technology. Open source communities drive timely innovation into operating systems; Web servers can deliver this innovation in a rapidly adoptable model at minimal costs. As other proprietary software companies deliver an infrastructure under predatory pricing schemes, the market is turning to the open source community to "break the chains that bind."
The Apache Derby database delivers the true database technology that the market has been asking for on many fronts. Apache Derby is a Java-based embeddable database. Because it is written in Java, it can be embedded within your Java applications and deployed anywhere. This means that moving your application from a mainframe to a Linux- or Windows-based server is as simple as deploying a JAR file: "just drop-and-go." Further adding to its portability, Apache Derby uses an SQL92 and SQL99 entry level compliant SQL API (in fact, its SQL API is 100% compliant with the DB2 family).
There are no DBA requirements for managing Apache Derby. It could truly be hosted on those irritating late-night infomercials that claim to take the hassle out of various day-to-day chores. What little management there is (or that you can take advantage of for more granular tuning) can be controlled programmatically from the application itself. For example, a database backup can be executed through a native API call.
Finally, heavy investments in tooling create a feature-rich open source Eclipse environment for Apache Derby application development. This allows Java developers to remain productive in a comfortable open source environment, yet still leverage the benefits of a database.
Specifically, Apache Derby can be used for workloads such as:
Small business client database applications: Many small businesses do not require a database that can support thousands of simultaneous users. For these businesses, Apache Derby may be a perfect fit, especially because it does not require a DBA—a luxury many small businesses cannot afford.
Embedded applications: Because the database is only about 2 MB in size and is implemented as a Java .JAR file, it simply becomes a part of the application that is running it.
Client database applications: Many client applications need the power and reliability of a fully transactional (ACID compliant) SQL database, without the unwanted overhead of a DBA. Java applications built on the Apache Derby platform will pretty much run on any platform that supports a JVM.
Local registries and repositories: Application Servers use Apache Derby to store dynamic registries such as UDDI or meta-data stores. Because these databases are fully transactional engines, developers do not have to worry about data corruption and system crashes destroying their critical configuration data.
Small business client/server and Web-based applications: Small businesses need Web sites that are low on maintenance and high on reliability, with plenty of head room for seasonal business spikes. Apache Derby delivers a robust performance engine suitable for many small business needs; for example, Web shopping carts, recommendation engines, and so on.
Java development databases: Apache Derby makes it easy to put a relational database on every developer’s desktop. Apache Derby is just 2 MB, requires no DBA, and the support for JDBC allows for an easy switch to an open standards enterprise database during the later stages of development and testing. This means that you can leverage this database for development at no cost and write applications to be deployed on more industrial-strength databases such as DB2, Informix, and so on. In the past, many shops addressed the development database requirement with a client/server database. However, this introduced the need for a DBA and opened up the possibility of one developer’s "bad code" compromising the entire development team’s productivity by accidentally erasing test databases or corrupting the database. It also forced system administrators to develop software deployment strategies and to obtain the bandwidth to support them. With Apache Derby, developers can simply copy the Apache Derby .JAR file to a local directory, set their CLASSPATH environment variable so that it points to the .JAR file, and they are ready for development. Even moving data around is a snap.
Demonstration or proof-of-concept applications: Apache Derby is an ideal database to use for demonstrations of your software (when a database is required) and proofs of concept. Because of its small size, Apache Derby adds very little to the download size of your demo, and it can be invisibly embedded into your application. Your potential customers and evaluators can run your application just as they would against an enterprise database without having to download, configure, and run one. Think of all those applications that run on a multitude of databases but require a significant investment for a simple proof-of-concept or demonstration. Apache Derby can solve these problems.