20.15 Java Data Objects (JDO)
In einer objektorientierten Programmiersprache wie Java liegen alle Informationen in Objekten. Wenn nun relationale Datenbanksysteme im Moment noch in ihrem vollen Saft stehen, dann stellt sich die Frage, wie Java-Objekte in einer relationalen Datenbank untergebracht werden. Die beste Lösung wäre es, eine Zwischenschicht zu besitzen, die Java-Objekte in die Datenbank schreibt. Dabei ist Serialisierung eine Möglichkeit. Das Objekt wird persistent, indem es als serialisierter Bytestrom, als BLOB1 ,in die Datenbank geschrieben wird. Eine andere Möglichkeit ist das objektrelationale Mapping. Die Eigenschaften der Objekte werden auf Relationen und Objektverweise (Referenzen) durch Schlüsselbeziehungen zwischen den Relationen abgebildet.
Eine andere Möglichkeit definiert ein neuer Standard mit dem Namen JDO. Die Abkürzung steht für Java Data Objects, und die Spezifikation beschreibt ein herstellerunabhängiges Framework zur persistenten Speicherung von Java-Objekten in transaktionalen Datenspeichern. Die Spezifikation wurde im Mai 2001 von bekannten Firmen wie Sun, IBM und Apple formuliert. JDO definiert eine einheitliche Schnittstelle für den Zugriff auf persistente Daten, wobei die physikalische Speicherung ziemlich egal ist. Die Objektinformationen können in Dateien, Datenbanken oder sonstigen Systemen abgespeichert werden. Mit Hilfe von JDO kann der Programmierer Datenobjekte ohne Kenntnis der Speichermechanismen bearbeiten. Dies ist für die Entwicklung großer Systeme ein deutlicher Vorteil, denn die Entwickler müssen sich nicht näher mit den Interna von Datenbanken herumärgern, sie können sich auf die reine Applikationslogik konzentrieren. Die einzelnen Hersteller, JDO-Vendor genannt, implementieren eine Speichermöglichkeit für ihr System. Ein Hersteller, der die JDO-Spezifikation schon umgesetzt hat, ist der Datenbankanbieter Poet mit der Fast-Objects-API.
Mittlerweile gibt es auch eine Reihe von Open-Source-Projekten, die sich einer objektrelationalen Umsetzung gewidmet haben. Eines davon ist ObJectRelationalBridge unter http://db.apache.org/ojb/. Das Projekt verspricht eine Unterstützung des gesamten ODMG-3.0-Standards. ODMG ist ein Konsortium, welches einen Standard für die Objekt-Persistenz spezifiziert. Eine JDO-Unterstützung ist in Vorbereitung.
1 Ein BLOB (Binary Large OBject) ist großes Binärobjekt, das eine beliebige Anzahl Daten enthalten kann.
|