Object Layer

Forces Driving the Design of the Object Layer

The main force driving the design of the object layer are features versus cost: You can come up with many expensive features like complex queries, nested parallel transactions and so on, but implementing them does not come cheap. Therefore you will find various product classes with very different comfort and also very different price tags.

Examples for free, straight forward solutions: Such solutions will provide you with the basics. You can write an object to a relational database and retrieve it from there. But you will find no comfortable ways for queries, no mapping and administration tools and the like. You can study this class of solutions e.g. in:

for Java see YET by Macario Polo Usaola, Mario Piattini, Velthuis, Francisco Ruiz González (can be downloaded from http://zeus.inf-cr.uclm.es/www/mpolo/yet/); They offer a framework  to generate persistent methods in runtime, using Java's Reflection API. They have a paper on this that has appeared on the EuroPLoP 2001 pages.

for Smalltalk see  Joe Yoder's pages: See his VisualAge implementation of a Persistence Framework for persisting domain objects in a relational database. Joe collaborated with Quince Wilson on the development of this and they wrote a pattern language for PLoP '98 proceedings. 

Examples for comfort products: Such products offer your o-o language an interface that looks almost like the interface of an OODB for that language and they will also offer administration tools for the database. You can study this class of solutions e.g. at:

for Java and comfort see various products, some of which are are also available open source

The collection of patterns to follow is not a complete collection of all possible patterns for the object layers. Instead it is a collection of important ones that have been mined already. What's missing is stuff on queries, handling object relations, iterators for 1:n relations at the language interface level and more. For a standard on how all this should look like for a user of an o/r mapper in maximum comfort, take a look at the actual ODMG standard.

Local Roadmap

or_roadmap_objectlayer.gif (3437 Byte)

Figure 8: Local Roadmap for Designing the Object Layer

Pattern List

The patterns you need to construct the object layer have all been described in other papers.

-> on to the Tuple Layer

-> up to the Contents Page