JDO (Java data objects)

Java Data Objects (JDO) definiert eine transparente Schnittstelle zur persistenten Speicherung von Objekten in der Programmiersprache Java. JDO ist ein Industriestandard und geht zurück auf eine Spezifikation verschiedener Unternehmen wie Sun, Apple und IBM. Bereits im Jahr 2001 wurde die Spezifikation von Sun sowie eine entsprechende Referenzimplementierung JPOX zur Verfügung gestellt. Mit Übergabe der Arbeiten an das Apache Project wurde von Apache nicht nur die generelle Verantwortung für die weitere Entwicklung von JDO übernommen sondern auch DataNucleus zur Referenzimplementierung bestimmt. Die entsprechenden Informationen sind unter dem u.g. Link verfügbar.


Neben JPOX gibt es mit JDORI, OJB, SORM und TJDO diverse Implementierungen. TDJO ist beispielsweise eine solche Open Source Implementierung des JDO-Standards. Die Abfragesprache JDOQL wird dabei ebenfalls vollständig unterstützt. JDO ist ein Framework, das unabhängig von einem Hersteller oder einer bestimmten Plattform ist. Dabei wird eine einfache und einheitliche Nutzung beliebiger Datenbank- und Speichertechnologien unterstützt.

Man spricht auch von transparenter Persistenz - wie die Abbildung zeigt, muss sich der Entwickler nicht um Persistenz kümmern.

Transparente Persistence

Transparente Persistence

JDO war die erste standardisierte Spezifikation, die unabhängig von einem Datenspeicher war und gleichzeitig speziell für die Persistenz von Java-Objekten entworfen wurde. Davor gab es bereits viele weitere Ansätze wie JDBC, Entity Beans, Objekt-Datenbanken oder Object Relational Mapping Tools. Diesen fehlten zentrale Features, die einfache Handhabung sowie die Standardisierung. So gab es in verhältnismäßig kurzer Zeit eine große Akzeptanz für JDO. JDO wurde entworfen, um in jedem Kontext einer verteilten Software eingesetzt werden zu können. Im Wesentlichen ist JDO auf lokale Objekt-Modelle, die nicht an eine bestimmte Programmierschnittstelle (API) gebunden sind, zugeschnitten. JDO bietet jedoch keine verteilten Objekte, verteilte Transaktionen oder insbesondere Sicherheitsdienste.

Konzeptionell unterstützt JDO die folgenden Aspekte:

  • Die Unabhängigkeit von der Implementierung. Das Protokoll wird zur Laufzeit exakt spezifiziert und Java-Applikationen können mit jeglichen JDO-Implementierungen zusammenwirken.
  • Unabhängigkeit vom Datenspeicher. Der dahinter liegende Datenspeicher ist aus Sicht der Applikation nicht erkennbar. Das Datenmodell kann dabei relationale oder objektorientierte Strukturen haben.
  • Transparente und transitive Persistenz. Der Umgang mit persistenten und transienten Klassen ist identisch. Datenobjekte können aus Sicht der Applikation ohne Kenntnis (transparent) der Speichermechanismen verarbeitet werden.
  • XML-Metadaten. Persistente Klasse müssen in einer XML-Datei beschrieben werden.
  • Die JDO-Abfragesprache JDOQL. Deren Syntax ist an Java angelehnt, allerdings ist JDOQL nicht so mächtig wie SQL und dient primär der Grobselektion von Objekten.
  • Die Integration in J2EE-Architekturen ist möglich aufgrund der Kompatibilität zu existierenden J2EE-Frameworks.
http://www.java.sun.com/jdo/index.jsp

http://www.datanucleus.org

http://db.apache.org/jdo/

Informationen zum Artikel
Deutsch:
Englisch: Java data objects - JDO
Veröffentlicht: 02.11.2013
Wörter: 432
Tags: #Java
Links: Apache, API (application programming interface), Apple, Aspekt, Daten