EclipseLink

EclipseLink ist die Abkürzung für das Eclipse Persistence Services Project und charakterisiert konkret ein Persistenz- Framework für Java-Applikationen. Das Framework steht als Open Source unter dem u.g. Link zur Verfügung und unterstützt unterschiedliche Möglichkeiten bei der Realisierung einer Java-Persistenz- Schicht. EclipseLink wird auch als ORM-Framework (Object Relational Mapping) bezeichnet - Objekte werden dabei auf relationalen Datenbanken abgebildet. Jedoch beschreibt das nur einen Teil der Möglichkeiten von EclipseLink. Vielmehr ist es das Ziel neben den relationalen Datenbanken auch die Systeme als Datenspeicher zu nutzen, die über XML oder Java EE Connector Architecture (JCA) angebunden werden können. Dazu stützt sich EclipseLink auf Standards wie die Java Persistence API ( JPA), die Java Architecture for XML Binding ( JAXB), Service Data Objects ( SDO) und Open Services Gateway Initiative ( OSGi).

Die Historie von EclipseLink

EclipseLink ist die Referenzimplementierung für die JPA. Das Projekt wurde von der Eclipse Foundation gestartet, nachdem Oracle im Jahr 2007 den Quellcode seines erfolgreichen Persistenz- Frameworks TopLink an die Eclipse Community spendete. So konnten die Erfahrungen von TopLink genutzt werden, das bereits 1996 als kommerzielles Produkt für Java-Anwendungen vorgestellt wurde. Eine erste Version von EclipseLink wurde im Juni 2008 veröffentlicht, seit Dezember 2009 liegt die Version 2.0 vor. Oracle verbindet natürlich auch kommerzielle Interessen mit dem Projekt. So basiert die Version 11g von TopLink bereits auf EclipseLink und steht als Evaluierungsversion zur freien Verfügung. Bei produktivem Einsatz ist dann für TopLink eine entsprechende Lizensierung erforderlich. Ebenfalls bietet das Framework Spring Support für EclipseLink.

EclipseLink in einer Übersicht

EclipseLink in einer Übersicht

Die Abbildung fasst die Komponenten und Schnittstellen von EclipseLink in einer Übersicht zusammen.

Die Funktionsweise von EclipseLink unterscheidet grundlegend Mapping- Metadaten und das eigentliche Runtime Environment. Durch die Metadaten können Java-Objekte und eine Reihe von spezifischen Persistenz-Strukturen aufeinander abgebildet werden. Mögliche Persistenz-Strukturen sind: Relationale und objektrelationale Datenbanken, XML-Systeme sowie Enterprise-Informations-Systeme. Die Metadaten basieren zum Zeitpunkt der Entwicklung auf nativen XML-Formaten, die mit der bereits aus Eclipse bekannten sogenannten Workbench erzeugt wurden. Hier ist diese auf die Belange von EclipseLink angepasst und begleitet den gesamten Entwicklungsprozess. Dabei sind Möglichkeiten zur Wahl der Persistenz-Struktur, der Wahl der dazu passenden Java-Klassen oder der separaten Definition der Mapping-Struktur, sofern Klassen und Daten bereits vorliegen, gegeben.

Einsatz von EclipseLink in JPA-Implementierungen

Den Einsatz von EclipseLink als sogenannter JPA-Provider - das ist die Festlegung der konkreten JPA- Implementierung - ist möglich durch jeden Java-EE-5-kompatiblen Application Server. Durch das Eclipse-Link-Projekt werden aber auch detailliert die spezifischen Integrationen für Oracle WebLogic, IBM WebSphere Application Server, Sun Application Server und JBoss unterstützt. Der Application Server GlashFish steht bereits seit der Version 2.1 mit EclipseLink als JPA-Provider zur Verfügung.

Mit der Integration von EclipseLink stehen eine Reihe von Erweiterungen der Java Persistence API zur Verfügung. Diese werden entweder durch die Wahl von Persistence Unit Properties oder direkt durch ergänzende Mapping- Annotationen angesprochen. Hierzu zählen insbesondere die erweiterte Möglichkeiten des Mappings, optimistisches und pessimistisches Sperren, Query Hints, Caching auf Objektebene inklusive verteilter Caches sowie deren Koordination, Möglichkeiten zur Steigerung der Performance und die erweiterte Unterstützung von Oracle Datenbanken.

Für die Details steht unter dem u.g. Link ein Eclipse-Link- Wiki zur Einsicht bereit.

Im Vergleich mit anderen ORM-Frameworks bietet EclipseLink die folgenden Besonderheiten:

  • Es wird ein Level-2-Cache verwendet, der Transaktions-übergreifend ist. Dabei werden benutzte Objekte zwischengespeichert, so dass Objekte nicht wiederholt erzeugt werden müssen.
  • Einen Shared-Pool von Read Connections zur Datenbank. Es werden exklusive Commits nur für den Commit einer Transaktion angefordert. Die Folge ist eine hohe Skalierung beim Zugriff auf die Datenbank.
Informationen zum Artikel
Deutsch: EclipseLink
Englisch:
Veröffentlicht: 29.10.2013
Wörter: 590
Tags: Java
Links: Eclipse, Persistenz, Framework, Java, Link
Übersetzung: EN
Sharing: