Evaluation von Java Data Objects
- Art: Studienarbeit
- Autor: Martin Uhlig
- Abgabedatum: Januar 2002
- Umfang: 68 Seiten
- Dateigröße: 6,5 MB
- Note: 1,3
- Institution / Hochschule: Technische Universität Dresden Deutschland
- ISBN (eBook): 978-3-8324-5035-9
-
ISBN (Paperback) :
978-3-8324-5035-9 P - ISBN (CD) :978-3-8324-5035-9 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Uhlig, Martin Januar 2002: Evaluation von Java Data Objects, Hamburg: Diplomica Verlag
- Schlagworte: Persistenz, Enterprise, Java Beans
In den Warenkorb
48,00 €
Studienarbeit von Martin Uhlig
Einleitung:
Enterprise JavaBeans haben sich in jüngster Zeit zu einer Standardtechnologie für Enterprise-Anwendungen insbesondere im eBusiness-Bereich entwickelt. Dies liegt nicht zuletzt an der umfangreichen Unterstützung automatischer Persistenz durch Container-Managed Persistence. An vielen Spezifikationsänderungen zwischen den einzelnen EJB-Versionen wird aber auch ersichtlich, dass dieses Persistenzframework noch nicht vollständig ausgereift ist. Vor allem komplexe Abhängigkeiten zwischen Entity Beans verursachen häufig gravierende Probleme.
Eine faszinierende und vielversprechende Alternative zu Enterprise JavaBeans (insb. Entity Beans) scheint sich durch die Java Data Objects zu bieten. Insbesondere das Problem eines effizienten Persistenzframeworks mit vielen komplexen Beziehungen zwischen den „Entity“-Objekten wird hier adressiert.
Die vorliegende Arbeit bietet eine Einführung in Java Data Objects, gefolgt von einem Kapitel zu praktischen Erfahrungen beim Einsatz von Java Data Objects und Enterprise JavaBeans in einem Projekt, und schließt mit einem Vergleich zwischen Java Data Objects, Enterprise JavaBeans und CocoBase.
Die persistente Speicherung von Daten in Datenbanken, Dateisystemen, Hostumgebungen (allgemein Datenspeicher oder Enterprise Information System) ist Bestandteil fast jedes Softwaresystems.
Werden diese Anwendungen mit der Programmiersprache Java entwickelt, so repräsentieren Objekte im Hauptspeicher des Computers die Daten zur Lauf- zeit. Für die dauerhafte Speicherung dieser Daten gibt es verschiedene Ansätze, die jeweils spezifische Vor- und Nachteile aufweisen. Diese betreffen sowohl die technische Umsetzung als auch die Anwendbarkeit durch den Programmierer. Die derzeit primär eingesetzten Verfahren sind Serialisierung, Zugriff auf eine relationale Datenbank mittels SQL über JDBC (Java Database Connectivity), Enterprise JavaBeans (häufig ebenfalls im Zusammenspiel mit einer relationalen Datenbank und über SQL) und verschiedene, zueinander inkompatible Persistenzframeworks.
Obwohl sich beispielsweise die Serialisierung aus Anwendersicht relativ leicht benutzen lässt, leidet sie bei der Speicherung von komplexen Objektgraphen unter ihrer Inflexibilität.
Die Java Database Connectivity erfordert vom Programmierer das Erlernen einer deklarativen Anfragesprache (SQL), welche ein gänzlich anderes als das objekt-orientierte Programmierparadigma darstellt. Außerdem muss sich der Programmierer mit Datenbankspezifika (Tabellen, Relationen etc.) auskennen.
Enterprise JavaBeans (EJB) umfassen weit mehr als nur die Persistenz von Daten in Form der Entity Beans. So enthalten beispielsweise Session Beans die Geschäftslogik einer Anwendung, und es lassen sich auf einfache Art und Weise Transaktionen und Sicherheitsmechanismen benutzen. Allerdings erfordern die Enterprise JavaBeans vom Programmierer das Erlernen eines in einigen Punkten sehr komplexen Komponentenmodells.
Für diesen Beleg ist ausschließlich die Persistenzunterstützung durch Entity Beans von Interesse. Entity Beans nehmen dem Programmierer viel Arbeit bei der Persistenzverwaltung ab, erwiesen sich in der Vergangenheit aber als infle- xibel, wenn es um Beziehungen zwischen Objekten ging. Die Version 2.0 der EJB-Spezifikation verspricht einige Verbesserungen für diesen Kritikpunkt, was im Rahmen dieser Arbeit auch untersucht wurde.
Persistenzframeworks gestatten es einem Programmierer im Allgemeinen, mit gewöhnlichen Klassen und Objekten zu arbeiten, und sie kümmern sich weitgehend automatisch um die Umsetzung von Objekten nach (relationalen) Datenbanken. Es ist dabei nicht unbedingt nötig, dass der Programmierer über die mögliche Persistenz eines Objektes Bescheid weiß.
Allerdings gibt es mittlerweile eine Reihe konkurrierender Anbieter, deren Produkte untereinander inkompatibel sind. Damit ist es dem Benutzer solch eines Persistenzframeworks nicht möglich, bei geänderten Anforderungen auf ein anderes Framework umzusteigen, wie es zum Beispiel mit Produkten für Enterprise JavaBeans möglich ist.
Die Java Data Objects - Spezifikation hat nun zum Ziel, eine einheitliche API (Application Programming Interface) für Persistenzframeworks zur Verfügung zu stellen. Damit wäre es möglich, die besten Ansätze aus verschiedenen Welten (einfache Benutzbarkeit, austauschbare Implementierungen) zusammenzuführen [1, Kapitel 1.1].
Inhaltsverzeichnis:
| 1. | Einführung | 1 |
| 1.1 | Kurzüberblick Java Data Objects | 2 |
| 1.2 | Kapitelübersicht | 2 |
| 1.3 | Konventionen | 2 |
| 2. | Java Data Objects | 3 |
| 2.1 | Klassen, Interfaces und Packages | 3 |
| 2.2 | Vorbereitungen | 3 |
| 2.3 | Persistente Klassen | 4 |
| 2.3.1 | Der PersistenceManager | 5 |
| 2.3.2 | Transaktionen | 5 |
| 2.3.3 | Suche | 6 |
| 2.4 | Objektlebenszyklus | 8 |
| 2.4.1 | Erst- und Zweitklassige Objekte | 10 |
| 2.5 | Entwicklungszyklus | 10 |
| 2.6 | JDO und EJB | 11 |
| 2.7 | JDO-Implementierungen | 12 |
| 2.7.1 | JDO Reference Implementation | 12 |
| 2.7.2 | Kodo (Enterprise Beta 2.2.1) | 13 |
| 2.7.3 | OpenFusion (Version 1.0) | 13 |
| 2.7.4 | Castor JDO (Version 0.9.3) | 13 |
| 2.7.6 | Orient ODBMS | 14 |
| 2.7.7 | LiDO | 14 |
| 2.7.8 | Rexip | 14 |
| 3. | Eine Anwendung mit Java Data Objects | 15 |
| 3.1 | Zielsetzung | 15 |
| 3.2 | Umsetzung | 15 |
| 3.2.1 | JDO-Implementierung | 15 |
| 3.2.2 | Datenbank | 15 |
| 3.2.3 | Web-Anwendung | 16 |
| 3.2.4 | Application Server | 16 |
| 3.2.5 | Querschnitt durch die gesamte Anwendung | 18 |
| 3.2.6 | Datenmodell | 22 |
| 3.2.7 | Querschnitt an einem konkreten Beispiel | 23 |
| 3.3 | Erfahrungen und Probleme | 27 |
| 3.3.1 | Schnittstellen und deren Implementierung | 27 |
| 3.3.2 | Entity Beans, Relationen und Schnittstellen | 30 |
| 3.3.3 | Vererbung | 33 |
| 3.3.4 | Vererbung und Relationen | 33 |
| 3.3.5 | Kleinere Probleme | 35 |
| 3.3.6 | Zusammenfassung | 36 |
| 4. | Vergleichende Untersuchung | 37 |
| 4.1 | Weiteres Persistenzframework | 37 |
| 4.2 | Vergleichskriterien | 37 |
| 4.3 | Integration objekt-orientierter Paradigmen | 38 |
| 4.3.1 | Vererbung | 38 |
| 4.3.2 | Assoziationen | 38 |
| 4.3.3 | Komposition | 39 |
| 4.3.4 | Navigation | 40 |
| 4.4 | Benutzbarkeit | 40 |
| 4.4.1 | Entwicklungsaufwand der Klassen | 40 |
| 4.4.2 | Zusätzliche Dokumente | 41 |
| 4.4.3 | Werkzeugunterstützung | 42 |
| 4.4.4 | Datentypen | 43 |
| 4.5 | Datenbanken | 43 |
| 4.5.1 | Unterstützte Datenbanken | 44 |
| 4.5.2 | Abbildung auf die Datenbank | 44 |
| 4.5.3 | Integration bestehender Datenbankschemata | 45 |
| 4.6 | Anfragesprache | 46 |
| 4.7 | Transaktionen | 47 |
| 4.8 | Speichernutzung | 48 |
| 4.9 | Threading | 49 |
| 4.10 | Identitätsmanagement | 50 |
| 4.11 | Herstellerunterstützung | 50 |
| 4.12 | Performance und Skalierbarkeit | 51 |
| 4.12.1 | Komplexere Objektgraphen | 51 |
| 4.12.2 | Lazy- und Eager-Loading | 52 |
| 4.12.3 | Skalierbarkeit | 52 |
| 4.12.4 | Sonstiges zu Enterprise JavaBeans | 53 |
| 4.12.5 | Messungen | 53 |
| 4.13 | Zusammenfassung | 54 |
| 5. | Abschließende Betrachtung | 56 |
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832450359
Arbeit zitieren:
Uhlig, Martin Januar 2002: Evaluation von Java Data Objects, Hamburg: Diplomica Verlag
Schlagworte:
Persistenz, Enterprise, Java Beans



