Object-Oriented Application Development Using the Caché Postrelational Database
The book, Object Oriented Application Development Using the Caché Postrelational Database, spotlights a database system that runs on Red Hat or TurboLinux with an unusual set of both object-oriented and SQL/relational characteristics.
Indeed, Caché warrants the name post-relational because it possesses many SQL data handling characteristics, yet can model business systems and build applications as a set of logical objects. You must work your way through many pages before this becomes clear. The book starts out slowly-one might say cautiously--with the basics of object-oriented development, as if exposing the reader to the main tenets of the system right off might be too radical an approach. It is, in fact, a book that targets beginning developers, proceeding step by step with the Caché system.
But what a system. It would have been helpful for the book to say upfront that unlike Oracle or IBM's DB2, the Caché postrelational database is not a relational system with object-oriented mechanism bolted on. Nor is it an object-store allowing rudimentary ad hoc queries. Rather, it is an object-store with a new data manipulation layer on top, its Unified Data Architecture (UDA).
UDA seeks to retain the chief characteristics of both relational and object systems. To the extent it is successful in doing so, it will prove to be a system capable of handling data from relational sources at the same time it juggles complex data types. Those are the characteristics of a potentially high performance web site data system. And neither a pure relational nor a standard object system can fill both sides of this bill.
In reading this book, it also strikes me that Caché may be the type of system that an XML implementor is looking for, since XML documents lend themselves to storage as a hierarchy of nested objects. If the system can access separate elements of that hierarchy through SQL or other queries, then XML documents become a much more useful medium of storage. Caché supports three forms of data access: ANSI standard SQL, direct access and object-oriented access through Caché ObjectScript. That means Caché can both support a wide variety of datatypes and retrieve them in a variety of ways.
As an object building system, Caché takes a set of tables representing an object and builds a multidimensional "cube" out of them that can be accessed for various views without executing endless, time-consuming joins as in a relational table system. In the business intelligence world, cubes are X,Y axis tables to which additional dimensions have been added. (Indeed, the Caché toolbar makes use of a cube icon, which starts up the Object Architect.) And it appears to do this at the instant of data acquisition, rather than in laborious background processing, as with business intelligence systems.
What good is that? In the world of online queries and transactions, it proves to be a valuable combination, say the users I checked with at G. Pierce Wood Memorial Hospital in Arcadia, Fla., who have implemented Caché. It allows the quick retrieval of complex data sets, without going through a series of time consuming joins in a large database. And if you need the services of an object module, Caché can retrieve the object intact and put it to work without first reassembling it in the manner of a relational system.
Let's say Caché is being used by a health care provider. In fact, health care is an industry segment where Caché has already established a strong position. Into Caché go all the characteristics of a patient but Caché recognizes that the subject should remain whole and not be drawn and quartered and stored in little boxes. Then, as users need a particular view of the patient, it goes to that patient's "cube" to select a particular view, slicing through the cube as the query requires. By looking at the cube from different angles, many views of related data can be extracted.
The fact that Caché has adopted a "holistic" view of data is key to how it operates and how it is different from relational database. I doubt if Caché can be substituted for the massive relational system employed by a Wal*Mart, where the status of any item in any store can be examined by any ad hoc query. Nevertheless, the book's authors say that it is good for producing relational views of complex data sets, and for executing complex transactions.
You may write reports with SQL statements against Caché the same as using an SQL database, such as Oracle. But users develop applications for Caché following object-oriented principles and making use of Caché's proprietary ObjectScript language. Learning ObjectScript is a one week exercise, provided the student is already familiar with structured language concepts, said Caché user Dan Reed, programmer analyst at G. Pierce Wood.
In testing my impressions of Caché against a user's experience, I asked Reed how he would describe the system. He said Caché is a navigational or traditional object store database, but its UDA sitting atop the physical data store lends Caché its "post-relational" or more-than-relational status. Caché Object Architect builds standard objects and Caché SQL uses relational tables to model various elements of each object class definition. Despite the use of both relational and object models, there is only one data definition and unique data is stored just once, thanks to the UDA. Caché objects support classic object-oriented characteristics such as inheritance, persistence and polymorphism, he said.
Polymorphism is one characteristic that brings Caché somewhat into conflict with the rules that govern Java objects, which forbid polymorphism except in special programmer defined instances. It is not clear to me whether a Caché object can be exported as an Enterprise JavaBean, for use with Java systems. I suspect not, but Caché does include JDBC support for integrating Java objects into its operation.
This book describes in detail the set of tools that make up the system, the Object Architect with which object classes are defined, the ObjectScript language to access those objects, Caché Server Pages for building web pages with Caché objects combined with HTML and XML; and Visual Caché, three Visual Basic tools for extending Caché operations to Active X, for those dealing with a Windows-based site. These tools have a discrete feel to them as described in this text, as if they each have separate boundaries and are not closely integrated into a development system. Indeed, an IDE for Caché is still probably a version or two away.
Nevertheless, one of the overlooked elements of Caché is the fact that the system includes both a data store/object store and an object application server, on which the business logic runs. Data from the multidimensional server can be sent to the application server, even if the application server is at another location, and cached there for use by the application. That strategy reduces network traffic to a remote operation.
Another side of Caché, not immediately evident in the first few chapters of the book, is its object locking capabilities, coordinating updates between a central server and distributed application servers. This is an important network-based transaction processing capability. Nevertheless, Caché is a standard object development system, conforming to the Object Data Management Group's ODMG standard.
A possible use for such a system on a web site is to import data from back end relational systems and use it with an object-oriented application whose components closely model some complex business process. Hence, Caché becomes a Web site's underlying integration system.
All in all, this is a book that takes the reader a giant stride forward, a baby step at a time, and given the unusual nature of the system it is describing, that is probably just as well. By the time you reach Chapter 8, "SQL Access and Tables", the curtain lifts and you see you are dealing with a hybrid system of exceptional, ambidexterous capabilities.
The 362-page, $79.95 hardcover book comes with a glossary, a bibliography and a somewhat skimpy index. It also contains a CD-ROM that contains Caché 4.0 along with Visual Basic 6.0. In addition to Linux, the Caché system runs on Sun Microsystems' Solaris, IBM AIX and H-P's HP-UX, as well as Microsoft Windows 95, 98 and 2000.
Two of the authors, Schulte and Ihringer, are from InterSystems, the Cambridge, Mass., and Darmstadt, Germany, company that produces Caché. Kirsten is a PhD at the Department of Documentation and Information Technology, Center of Medical Informatics, University of Frankfurt. Röhrig is a free-lance journalist and author who is currently working on a book that examines web databases for the Linux platform.
Title: Object-Oriented Application Development Using the Caché Postrelational DatabaseAuthor: Wolfgang Kirsten, Michael Ihringer, Bernhard Röhrig and Peter SchultePublisher: Springer-VerlagISBN: 3-540-67319-9Price: $79.95 USD