HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

One of the key challenges facing Java developers is that their object-oriented applications use data stored in relational databases. The result: time- and cost-intensive mapping between the two paradigms. InterSystems' Corporation develops and markets a post-relational database management system called Caché that's designed to address this challenge by eliminating the impedance mismatch between objects and tables.

We set out to test the capabilities of this database software from a Java developer's perspective. Working with the latest release of the software, Caché 5, we found the results impressive.

Caché's unique combination of objects and SQL provides a very interesting development framework for object-oriented programmers that goes far beyond what pure relational or pure object-oriented databases provide. Besides eliminating the impedance mismatch between objects and tables, Caché's unified data architecture allows rapid application development (RAD) of complex systems and applications. With Caché 5, InterSystems delivers a powerful, high-performance, massively scalable database system that supports a plethora of standard protocols, programming languages, and middleware technologies.

Ready, Set, Go!
For our evaluation, we used the Windows and Linux versions of Caché. In both cases, we used the single-user license that can be freely downloaded from InterSystems' Web site. The installation process took only a few minutes and not even the Windows system had to be restarted. All other tools and technologies are installed along with the database system, and the Web server (Internet Information Server or Apache) is reconfigured to incorporate Caché's Web gateway.

After the installation, we started the Caché Studio (see Figure 1), the development environment used for editing the classes stored in Caché, and immediately began to create some classes. Using the integrated wizards, you can easily create classes with all the features available in Caché. Programming Caché's internal language, ObjectScript, is very easy, especially if you are used to coding in Java or JavaScript. If Visual Basic is your favorite programming language, you can also use Caché Basic, a close relative to Visual Basic.

Figure 1

What's Behind the Scenes?
The heart of Caché is its multidimensional data engine with a robust storage system that provides outstanding transactional performance and is capable of serving very large data volumes. Equipped with transactional bitmap indices, queries are evaluated in fractions of a second without sacrificing update and insert performance.

In addition, the multidimensional data model of Caché avoids time-consuming mapping operations between objects and relations because data is natively stored in Caché's multidimensional storage. The Unified Data Architecture (UDA) provides access to the stored data and delivers the necessary metadata information to the relational or object-oriented client. In general, there's no difference if the data is accessed in a relational manner or through objects.

Caché and Java
Our primary focus was on testing the Java features provided by Caché. With three different ways of connecting to Java, Caché provides optimal support for Java developers and programmers. Data stored within Caché can be accessed with SQL via JDBC, and Caché classes can be projected either as Java classes or as Enterprise JavaBeans. Java developers directly gain data persistence without a lot of tedious coding.

The JDBC driver is installed along with the database and is fully compliant with the JDBC standard. To access a Caché class in an object-oriented manner, all we needed to do was specify that it should be projected to Java. This ³projection² then automatically generated Java binding classes that could easily be incorporated into Java applications. The great advantage of projections is that the binding classes are automatically generated every time a class is modified and recompiled. So the programmer is relieved of the cumbersome and error-prone process of keeping the database schema and the application bindings up-to-date.

For J2EE application servers, we only had to specify an EJB projection and Caché created entity beans with either bean-managed persistence (BMP) or container-managed persistence (CMP). In contrast to the simple Java projection that creates a single Java class, the EJB projection generates all necessary classes for an EJB entity bean, a deployment descriptor, a deployment command file, and even a little servlet for testing the created bean. We tested Caché's EJB support with a standard installation of JBoss 3.0 and did not experience any difficulties. In addition to JBoss, Caché also directly supports the WebLogic and the Pramati application servers and automatically creates all necessary configuration files for the specific server. Other J2EE-compliant application servers should also work with Caché without any problems.

We were impressed by Caché's performance, features, and ease of use. We were both very satisfied with our test results and plan to take an even closer look at Caché and its technologies. Note that a more detailed review of Caché, including several code examples, may be found on our Web site (www.synerva.com). As with any software product, there are some trade-offs. In this case, the main one is the learning curve that developers who are only familiar with relational database technology must overcome in order to take full advantage of Caché. InterSystems has done everything they can to ease the transition by providing a development environment that has a familiar look-and-feel and surprisingly complete and usable documentation, but the curve still exists. Also, there are application areas such as data warehousing where market gorillas with traditional relational technology will continue to dominate for the foreseeable future. Caché is worth a very close look.

InterSystems Corporation
One Memorial Drive
Cambridge, MA 02142 USA
Web: www.intersystems.com
Phone: 617-621-0600
E-mail: [email protected]

Platforms: Windows 95/98/ME, Windows 2000 Pro/2000 Server/2000 Adv. Server, Windows XP Home/Pro, Mac OS X, Linux, HP/UX, Solaris, IBM AIX, Tru64, OpenVMS
Pricing: $200 in a single-user version and starting at $1,000 for a multi-user configuration

Test Environment
Notebook ASUS L3800 with Mobile Intel Pentium P4 processor, 40GB disk, 1GB RAM
Operating Systems: Windows 2000 Pro with Service Pack 3/SuSE Linux 8.1

Target Audience: Java programmers, database developers
Level: All levels

  • Combines the object-oriented and the relational paradigm, eliminates the need for an OO-relational mapping
  • Easy installation and maintenance, no high-skilled administrator necessary
  • Outstanding performance with a small memory footprint
  • Support for different Java technologies to access the database (JDBC, Caché object binding, EJB)
  • Support for a plethora of technologies and standards
  • Embraces common Java standards (Streams, Collections, JDBC, etc.)


  • No support for polymorphic function signatures
  • EJB-, Object-, and JDBC-binding in one JAR file

    About The Authors
    Mathias Kühn is a Java developer and software architect at SYNERVA, an IT service company for software development, consulting, and training with a special focus on the realization of complex, distributed information systems (www.synerva.com). [email protected]

    Christian Och is an IT consultant at SYNERVA and has over 10 years of experience as a software architect and project leader in the areas of heterogenous database integration, distributed object technologies, and application development. [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.