Jürgen Zimmermann sd&m (Germany)

Er ist als Seniorberater für den Geschäftsbereich IT Consulting der Firma sd&m AG tätig. Zuvor hat er als Consulting Manager das Consulting für das ODBMS ObjectStore bei der deutschen Niederlassung von Object Design aufgebaut.

Auf der ObjectWorld 1999 hat er den Vortrag "Coupling Java with Databases: Object Persistence Options" gehalten. Ein gleichnamiger Workshop findet im Vorfeld der OOPSLA 1999 im November in Denver statt, bei dem Jürgen Zimmermann zusammen mit Dr. Akmal Chaudhri von Computer Associates Co-Chair ist. Bei Addison-Wesley wird Anfang 2000, voraussichtlich im Rahmen der OOP, das Buch "Verteilte Komponenten und Datenbankanbindung Mehrstufige Architekturen mit SQLJ und Enterprise JavaBeans" erscheinen. Die Autoren sind Jürgen Zimmermann und Gerd Beneken.

 

Tutorial: Java Datenbanken und Integration mit Enterprise JavaBeans (EJB)

Gliederung

1. Einleitung und Motivation

2. Die Java-Schnittstelle des ODMG-Standards

3. Mapping von Java auf relationale Datenbanken

4. SQLJ und JDBC

5. Enterprise JavaBeans (EJB) und Datenbankanbindung

6. Zusammenfassung

Inhalt

Java wird mittlerweile von allen großen Firmen der Software- Branche unterstützt. Eine derart breite Basis hatten weder Smalltalk noch C++ zu verzeichnen; das schlägt sich auch in der Menge der zu Verfügung stehenden Literatur nieder. Allerdings werden zwei Aspekte nur unzureichend beleuchtet und stehen im Mittelpunkt des Tutoriums:

a) Datenbankzugriff mit Java als Programmiersprache und

b) Persistenzoptionen bei verteilten Komponenten mit Enterprise JavaBeans.

Ohne Datenbank-ANbindung kommt heutzutage kaum noch eine Anwendung aus. Deshalb wird vorgestellt, wie mit Java auf relationale, objekt-relationale und auf objektorientierte Datenbanken zuge- griffen werden kann. Anhand eines durchgängigen Beispiels werden die verschiedenen Zugriffstechniken vorgestellt und einander gegenübergestellt.

Zunächst wird anhand des ODMG-Standards erläutert, welche Vorteile sich aus der nahtlosen Integration von Java als Programmiersprache und objektorientierten Datenbanken ergeben. Dabei werden implizit die Unterschiede zu relationalen Datenbanken herausgearbeitet. Ein wichtiger Aspekt dabei ist, wie sich die "Garbage Collection" von Java auf die Datenbank auswirkt und mit dem Prinzip "Persistence by Reachability" zusammenspielt. Dieser Abschnitt wird abgerundet durch Aspekte des Datenbank-Tunings. Dabei wird deutlich, daß der Anwendungsprogrammierer, sich stets der zugrundeliegenden Architektur (Seitenserver oder Objektserver) bewußt sein muß, um eine leistungsfähige Anwendung zu erstellen.

Anschließend werden Mapping-Technologien vorgestellt, bei denen Geflechte von Java-Objekten auf relationale Tabellen abgebildet werden. Beispielhaft werden hier die zwei Produkte TopLink und Persistence PowerTier herausgegriffen. Im Mittelpunkt stehen dabei die vielfältigen Optionen, um Objektgeflechte unter Berücksichtigung der Vererbungshierarchie auf flache Tabellen abzubilden.

Als letzten Aspekt des Datenbankzugriffs werden die beiden Schnittstellen SQLJ und JDBC vorgestellt. JDBC wurde von Sun propagiert und ist bislang die einzige Schnittstelle, um von Java aus direkt (und umständlich) auf relationale Tabellen zuzugreifen. SQLJ dagegen ist ein neuer ANSI-Standard, der von den Firmen Compaq/Tandem, IBM, Informix, Oracle, Sun/Javasoft und Oracle vorangetrieben und entwickelt wurde. Durch den ebenfalls standardisierten Präprozessor "SQLJ Translator", ist es möglich Java-Programme mit eingebettetem, statischem SQLJ zu entwickeln. Das hat zwei wesentliche Vorteile. Zum einen ist SQLJ wesentlich kompakter und damit verständlicher als JDBC, und zum anderen können damit auf relativ einfache Weise neue Java-Programme entwickelt werden, die dann auf relationale Datenbanken zugreifen können. Damit können neue Java-Anwendungen neben alten COBOL- oder C- Anwendungen koexistieren, ohne daß die Datenbank-Plattform in einem zeit- und kostenintensiven Prozeß ausgetauscht werden muß.

Im letzten Teil des Tutoriums wird erläutert, wie man 3-stufige Architekturen mit Java entwickelt. Im Blickpunkt steht dabei insbesondere die Schnittstelle zwischen den Komponenten-basierten Applikationsservern mit Enterprise JavaBeans (EJB) und den Datenbanken als Backend. Betrachtet werden die zwei prinzipiellen Komponentenarten von EJB: Session Beans und Entity Beans. Die Session Beans wurden bereits bei der Spezifikation 1.0 zwingend gefordert, während die Entity Beans damals noch optional waren, jetzt aber in der Spezifikation 1.1 ebenfalls gefordert werden. Bei den Session Beans, die kein "persistentes Gedächntnis" haben, wird darauf eingegangen, wie und wann man mit zustandslosen und mit zustandsbehafteten Session Beans arbeitet. Bei den Entity Beans wird vertieft, wie man mit der Persistenz umgeht, wenn sogenannte "Bean-managed Persistence" oder "Container-managed Persistence" eingesetzt wird. Dieser Teil des Tutorials wird mit praktischen Beispielen von WebLogic und Oracle 8i illustriert.

Level: Intermediate

Zielgruppe: Designer, IT-Berater, Projektleiter, Java-Entwickler

Sprache: Deutsch (Englisch ist auch möglich)

Dauer: 4 Stunden