Bachelor + Master Publishing
811 Bachelorarbeiten, 533 Masterarbeiten, 10.103 Diplomarbeiten

Objektorientierte Persistenzmechanismen in Enterprise JavaBeans

Objektorientierte Persistenzmechanismen in Enterprise JavaBeans
Über dieses Buch
  • Art: Diplomarbeit
  • Autor: Sven Buchholz
  • Abgabedatum: März 2000
  • Umfang: 141 Seiten
  • Dateigröße: 1,1 MB
  • Note: 1,2
  • Institution / Hochschule: Technische Universität Dresden Deutschland
  • ISBN (eBook): 978-3-8324-2477-0
  • ISBN (Paperback) :
    978-3-8324-2477-0 P
  • ISBN (CD) :978-3-8324-2477-0 CD
  • Sprache: Deutsch
  • Prämierung:
  • Arbeit zitieren: Buchholz, Sven März 2000: Objektorientierte Persistenzmechanismen in Enterprise JavaBeans, Hamburg: Diplomica Verlag
  • Schlagworte: Middleware, objektorientierte Datenbanken, EJB, e-Business, Datenmodelle

Diplomarbeit von Sven Buchholz

Einleitung:

In der vorliegenden Arbeit werden Möglichkeiten zum Einsatz objektorientierter Persistenzmechanismen in Enterprise JavaBeans (EJB 1.1) untersucht und Vorgehensweisen sowie Probleme näher herausgearbeitet. Dabei steht sowohl die Abbildung der verschiedenen Datenmodelle, als auch die Unabhängigkeit vom konkreten zugrundeliegenden Datenbankmanagementsystem im Vordergrund. Darüber hinaus werden Performance- und Skalierbarkeitsaspekte berücksichtigt.

Gang der Untersuchung:

Nach einer Einführung und Motivation für die Problematik werden Aspekte der Abbildung von Beans auf die Klassenstruktur einer objektorientierten Datenbank und die damit verbundenen Konvertierungen ausführlich betrachtet. Dies umfaßt neben der Abbildung des Datenmodells auch die Integration der verschiedenen Transaktionsmanagementkonzepte. Im folgenden werden Teilkomponenten des Persistenzmanagements von EJB identifiziert sowie deren Aufgaben und Abhängigkeiten herausgearbeitet. Dabei wird der Bedarf an einer einheitlichen Schnittstelle zwischen dem EJB-Container und dem Ressourcenadapter des Datenbankmanagementsystems deutlich. Diese soll die Integration eines beliebigen Persistenzmechanismus - insbesondere auch eines objektorientierten - in EJB ermöglichen.

Ausgehend von den Erkenntnissen aus den vorangestellten Betrachtungen wird im Hauptteil dieser Arbeit eine Ressourcenadapterschnittstelle, die EJBDBC-Schnittstelle, zum Einsatz bei container-managed Persistenz in EJB definiert. Die EJBDBC-Schnittstelle ist eine Call-Level-Schnittstelle, der als Datenmodell das Entity-Bean-Modell zugrunde liegt. Auf diese Weise wird ein Impedance Mismatch an der Datenbankschnittstelle vermieden. Die Abbildung des Entity-Bean-Schemas der EJB-Anwendung auf das Datenschema der zugrundeliegenden Datenbank ist innerhalb des Ressourcenadapters gekapselt. Somit wird Orthogonalität zwischen der Containerimplementierung und dem DBMS erreicht.

Eine prototypische Implementierung der vorgestellten Schnittstelle auf Grundlage eines objektorientierten Datenbankmanagementsystems war ebenfalls Teil dieser Arbeit. Anhand derer werden Messungen durchgeführt, die die Performance der verschiedenen Varianten der Abbildung des Datenmodells gegenüberstellen und den Einfluß von Prefetching zur Performanceoptimierung verdeutlichen. Dabei kommt jedoch kein realer EJB-Container zum Einsatz, sondern ein Testprogramm, welches die verschiedenen Varianten vergleichbar macht.

Inhaltsverzeichnis:

1. Einleitung 7
2. Persistenzrelevante Aspekte von Enterprise JavaBeans 10
2.1 Modell- und Schemaabbildung 11
2.1.1 Entity-Beans als Datenmodell 11
2.1.2 Abbildung auf das Datenmodell objektorientierter Datenbanken 19
2.1.3 Schemaabbildung 30
2.2 Formen des Zugriffs auf Entity-Beans 31
2.3 Transaktionsmanagement 32
2.3.1 Transaktionsmodell 32
2.3.2 Schnittstellen zum Transaktionsmanagement 33
2.4 Synchronisation konkurrierender Zugriffe auf Entity-Bean-Instanzen 34
2.5 Sicherheitsmanagement 35
2.6 Performance und Skalierbarkeit 38
2.6.1 Passivieren von Bean-Instanzen 38
2.6.2 Pooling von Bean-Instanzen 39
2.6.3 Caching von Bean-Instanzen 41
2.6.4 Prefetching von Bean-Objekten 43
3. Rollen und Schnittstellen 47
3.1 Rollen im Szenario des Persistenzmanagements von Entity-Beans 47
3.2 Aufgaben der einzelnen Rollen 49
3.2.1 Container 49
3.2.2 Entity-Bean-Instanz 50
3.2.3 Transaktionsmanager 51
3.2.4 Ressourcenadapter und Ressourcenmanager 51
3.3 Schnittstellen zwischen den Rollen 52
3.3.1 Container - Entity-Bean-Instanz 52
3.3.2 Container - Transaktionsmanager 53
3.3.3 Container - Ressourcenadapter 53
3.3.4 Transaktionsmanager - Ressourcenadapter 53
3.3.5 Ressourcenadapter - Ressourcenmanager 54
4. Schnittstelle des Ressourcenadapters 55
4.1 Anforderungen an eine Ressourcenadapterschnittstelle 55
4.1.1 Datenmodell 56
4.1.2 Zugriffsformen 57
4.1.3 Assoziation von Zugriffsoperationen mit Transaktionen 58
4.1.4 Sicherheitsmanagement 58
4.1.5 Management von Bean-Instanzen 58
4.1.6 Transparenz der Schnittstelle 59
4.2 Beispiele existierender Schnittstellen 60
4.2.1 Schnittstellen relationaler Datenbanken 60
4.2.2 Schnittstellen objektorientierter Datenbanken 63
4.3 Entwurf der EJBDBC-Schnittstelle 65
4.3.1 Überblick 65
4.3.2 Laden und Speichern von Bean-Objekten 67
4.3.3 Assoziation mit Transaktionen 69
4.3.4 Suche nach Bean-Objekten 69
4.3.5 Erzeugen von Bean-Objekten 70
4.3.6 Löschen von Bean-Objekten 71
4.3.7 Caching 71
4.3.8 Prefetching 73
4.3.9 Vernichten von Helpern 73
4.3.10 Initialisieren des Ressourcenadapters und Lokalisieren von Home-Helpern 74
4.3.11 Fehlerbehandlung 74
4.3.12 Deployment-Informationen 75
4.3.13 Schemaabbildung 75
5. Prototypische Implementierung der EJBDBC-Schnittstelle 76
5.1 Versant ODBMS in der prototypischen Implementierung 76
5.1.1 Datenmodell der Versant Objektdatenbank 76
5.1.2 Transaktionen 77
5.1.3 Zugriffskontrolle 78
5.1.4 Anfragen 78
5.2 Grundlegende Architektur 78
5.3 Abbildung auf das Objektmodell der Datenbank 80
5.3.1 Abbildung der Attributwerte 81
5.3.2 Entity-Beans mit nutzerdefiniertem Primärschlüssel 83
5.3.3 Entity-Beans mit automatisch generiertem Primärschlüssel 83
5.3.4 Garbage-Collection 84
5.4 Abbildung von JTA-Transaktionen bei Datenbankzugriffen 84
6. Auswertung 86
6.1 Design der Schnittstelle 86
6.2 Performancebetrachtungen 87
6.2.1 Abbildung von (nicht-Bean) Objekten 87
6.2.2 Abbildung von Bean- und Home-Referenzen 91
6.3 Detailprobleme 93
6.3.1 Primärschlüsseläquivalenz mit equals() und hashCode() 93
6.3.2 Prefetching 94
7. Zusammenfassung und Ausblick 96
Literaturverzeichnis 98
Anhang A: API-Referenz
Anhang B: EJBDBC-Schemadatei
Anhang C: Interaktionen: Container und Ressourcenadapter

Automatisiert erstellter Textauszug:

Form des Ladens verzögert (beim Zugriff) vollständig prefetched prefetched bis zur Tiefe n • • • • sinnvoll, wenn • nur auf einen Teil oder keines der referenzierten Objekte zugegriffen wird nacheinander auf die meisten der direkt und indirekt referenzierten Objekte zugegriffen wird abzusehen ist, daß nur eine bestimmte Tiefe benötigt wird nur an wenigen Teilbäumen die gesamte Tiefe benötigt wird nacheinander auf die meisten der direkt und indirekt referenzierten Bean-Objekte zugegriffen wird, aber die gesamte transitive Hülle so umfangreich ist, daß das Laden zu lange dauern würde typabhängig prefetched • die Objekte eines bestimmten Typs so umfangreich sind, daß das Laden aller referenzierten Objekte dieses Typs den Ladevorgang zu lange ausdehnen würde • Laden aller Unterkapitel eines Kapitels mit Ausnahme der zugeordneten mutimedialen Inhaltsportionen • • Anwendungsbeispiel (Teleteaching) • Laden eines Kapitels, bei dem nur der Name gelesen werden soll Laden eines Kapitels, dessen Unterkapitel alle sequentiell durchgearbeitet werden sollen Laden aller Unterkapitel eines Kapitels, wobei davon ausgegangen wird, daß nur ein Teil der Unterkapitel durchgearbeitet wird [...]

zugegriffen, ist Prefetching mit einer besseren Performance verbunden, da alle Attribute in genau einer Datenbankoperation geladen werden können. Die Frage des Zeitpunktes des Ladens wird noch bedeutender, wenn Attribute andere Bean-Objekte referenzieren. Die referenzierten Bean-Objekte können entweder auch im voraus oder aber verzögert geladen werden. Damit ergeben sich für Bean-Instanzen drei Möglichkeiten des Ladens: • verzögert (d.h. Laden erst beim Zugriff) • prefetched bis zur Tiefe n (d.h., alle referenzierten Bean-Objekte bis zu einer Tiefe n werden sofort geladen36, die weiteren erst beim Zugriff) • vollständig prefetched (d.h., alle Bean-Objekte der transitiven Hülle werden sofort geladen) • typabhängig prefetched (d.h., Objekte bestimmter Klassen können vom Prefetching ausgenommen werden) Beim typabhängigen Prefetching kann für einzelne Klassen angegeben werden, daß ihre Instanzen nie im voraus geladen werden. Wird bei der impliziten Verfolgung von Referenzen beim vollständigen Prefetching oder beim Prefetching bis zur Tiefe n ein Objekt erreicht, das als nicht-prefetchinggeeignet deklariert ist, so wird der Ladevorgang in diesem Zweig der Assoziationsstruktur abgebrochen. Auf diese Weise können übermäßige Verzögerungen beim Laden eines Bean-Objektes, das direkt oder indirekt sehr umfangreiche Objekte referenziert, vermieden werden. [...]

Neben dem Caching von bereits geladenen Bean-Objekten kann auch ein vorausschauendes Laden von Bean-Objekten geeignet sein, Verzögerungen zu vermeiden, die durch das Laden von Daten aus der Datenbank beim Zugriff auf ein Bean-Objekt entstehen. Ein solches vorausschauendes Laden wird als Prefetching bezeichnet. Die Attribute eines Bean-Objektes können • alle sofort vor dem ersten Zugriff auf die Bean-Instanz innerhalb einer Transaktion (Prefetching) • einzeln erst beim Zugriff auf das Attribut geladen werden. Während beim Prefetching auch Attribute geladen werden, auf die nicht zugegriffen wird, ermöglicht das verzögerte Laden beim Zugriff, nur solche Attribute zu laden, auf die auch tatsächlich zugegriffen werden soll. Wird jedoch nacheinander auf die Mehrzahl der Attribute [...]

Arbeit zitieren:
Buchholz, Sven März 2000: Objektorientierte Persistenzmechanismen in Enterprise JavaBeans, Hamburg: Diplomica Verlag

Schlagworte:
Middleware, objektorientierte Datenbanken, EJB, e-Business, Datenmodelle

Entdecken Sie mehr zum Thema

diplom.de
Bachelor + Master Publishing

Hermannstal 119 k
22119 Hamburg

Fon: +49 (0) 40 655992-0
Fax: +49 (0) 40 655992-22

Service-Telefon

Rufen Sie uns an:
+49 (0) 40 655992-0

Mo-Fr
09.00-16.00 Uhr

diplom.de in den Medien

Folgen Sie uns bei Twitter & werden Sie diplom.de-Fan bei Facebook!
Schreibtipps unserer Lektoren, Neuigkeiten aus dem Verlagsalltag und das Expertenwissen unserer Autoren als Tweet & Post!
Wir freuen uns auf Sie!

diplom.de BACHELOR + MASTER PUBLISHING

Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Magisterarbeiten, Dissertationen und andere Abschlussarbeiten aus allen Fachbereichen und Hochschulen können Sie bei uns als eBook sofort per Download beziehen oder sich auf CD oder als Buch zusenden lassen. Seit mehr als 15 Jahren ist diplom.de der seriöse, professionelle und erfolgreiche Partner für die Veröffentlichung wissenschaftlicher Abschlussarbeiten.

© Diplomica Verlag GmbH 1996-2011, AG Hamburg HRB 80293 - GF Björn Bedey, USt-IdNr.: DE214910002 - Verkehrsnummer: 12285 - Impressum
Index der Arbeiten - Index der Autoren