Diplomarbeit, 2003
123 Seiten, Note: 1.0
1 Einleitung
1.1 Motivation
1.2 Einordnung und Vorgehensweise
1.3 Gliederung
1.4 Danksagung
2 Aufbau komplexer Client/Server Anwendungen
2.1 Übersicht und Anforderungen
2.2 Die Mehrschichten-Architektur als mögliche Lösung
2.3 Ausfallsicherheit
2.4 Lastverteilung zur Erreichung von Ausfallsicherheit
3 Datenbanksysteme
3.1 Übersicht
3.2 Die wichtigsten Zugriffsschnittstellen
3.2.1 SQL (Structured Query Language)
3.2.2 JDBC (Java Database Connectivity)
3.2.3 SQLj (Embedded SQL for Java)
3.3 Transaktionen
3.4 Praxisbeispiel
4 Java 2 Enterprise Edition
4.1 Übersicht
4.2 Enterprise JavaBeans
4.2.1 Die Architektur
4.3 Die EJB-Persistenz-Schnittstellen
4.3.1 CMP
4.3.2 BMP
4.3.3 EJB QL
4.4 Transaktionen in EJB-Architekturen
4.4.1 CMT
4.4.2 BMT
5 O/R-Mapping
5.1 Übersicht und Gliederung
5.2 Datenhaltung
5.2.1 One Class/One Table Pattern
5.2.2 Serialized LOB Pattern
5.2.3 Single Interitance Table Pattern
5.2.4 Overflow Tables
5.2.5 Denormalisation und Redundanz
5.2.6 Primary Keys
5.3 Datenzugriff
5.3.1 Brute Force Zugriff
5.3.2 DAOs (Data Access Objects)
5.3.3 Persistenzframeworks
5.3.4 Einfache Datenzugriffpatterns
5.3.4.1 CRUD Pattern
5.3.4.2 Generate-SQL Pattern
5.3.4.3 Type-Mapping Pattern
5.4 Caching
5.4.1 Transparenz
5.4.2 Skalierbarkeit
5.4.3 Performanz und Verdrängung
5.4.4 Transaktionssicherheit
5.4.4.1 Cache mit Read-Uncommitted Isolierung
5.4.4.2 Caches mit Read-Committed Isolierung
5.4.4.3 Cache mit Repeatable-Read Isolierung
5.4.5 Automatisches Auffinden von Abhängigkeiten
6 CCMP – Cached CMP
6.1 DCache
6.1.1 Baumstruktur
6.1.2 Cachezugriff
6.1.3 Invalidierung
6.1.4 Transaktionssicherung
6.1.5 Erweiterungs- und Verbesserungsmöglichkeiten
6.2 CMP2BMP
6.2.1 Intention
6.2.2 Reflective CRUD oder Wrapper-Klassen
6.2.3 Einbettung des verteilten Caches
6.2.4 Architektur
6.2.5 Erweiterungen und Verbesserungsmöglichkeiten
6.3 J2EEDemo
6.4 Performance
7 Bewertung und Ausblick
Die Arbeit untersucht Möglichkeiten zur Klassifizierung und Bewertung von Persistenz-Management-Technologien in J2EE-Architekturen, mit dem Ziel, die Entwicklung skalierbarer und ausfallsicherer Systeme zu ermöglichen. Hierbei steht insbesondere die effiziente Integration von Caching-Mechanismen und O/R-Mapping im Vordergrund.
3.3 Transaktionen
Eine Transaktion bezeichnet eine Folge von logisch zusammengehörenden Datenbankanweisungen. Sie dient dazu, einen konsistenten Datenbankzustand in einen anderen konsistenten Datenbankzustand zu überführen [GR93].
Bezüglich der Ausführung von Transaktionen garantiert das Datenbanksystem die Einhaltung von vier grundlegenden Eigenschaften: Atomarität, Konsistenz, Isolation und Dauerhaftigkeit. Man spricht hierbei von den sogenannten ACID-Eigenschaften, abgeleitet von den Anfangsbuchstaben der englischen Begriffe Atomicity, Consistency, Isolation und Durability [HR01]. Diese im Folgenden näher erläuterten Eigenschaften charakterisieren zugleich das Transaktionskonzept.
1. Atomarität (Atomicity, "Alles oder Nichts")
Die Ausführung einer Transaktion soll aus Sicht des Benutzers ununterbrechbar verlaufen, so dass sie entweder vollständig oder gar nicht ausgeführt wird. Dies bezieht sich vor allem auf die im Rahmen der Transaktion auszuführenden Änderungen der Datenbank. Tritt während der Ausführung einer Transaktion ein Fehler auf (Programmfehler, Hardware Fehler, Absturz des Betriebssystems usw.), der die ordnungsgemäße Fortführung verhindert, werden seitens des DBS sämtliche bereits erfolgten Änderungen der Transaktion zurückgesetzt.
2. Konsistenz (Consistency)
Die Transaktion ist die Einheit der Datenbankkonsistenz. Dies bedeutet, dass sie die Datenbank von einem konsistenten in einen wiederum konsistenten (nicht notwendigerweise unterschiedlichen) Zustand überführt. Von besonderer Bedeutung ist dabei die Einhaltung der logischen Konsistenz, so dass die Inhalte der Datenbank einem möglichst korrekten Abbild der modellierten Wirklichkeit entsprechen. Hierzu können beim Datenbankentwurf semantische Integritätsbedingungen (zulässige Wertebereiche, Schlüsseleigenschaften usw.) definiert werden, welche vom DBS automatisch zu überwachen sind.
1 Einleitung: Die Einleitung motiviert die Nutzung von Applikationsservern für verteilte Architekturen und beschreibt die Herausforderungen bei der Integration von Datenbanksystemen und Persistenz-Frameworks.
2 Aufbau komplexer Client/Server Anwendungen: Dieses Kapitel definiert die Anforderungen an Client/Server-Systeme, insbesondere Skalierbarkeit und Ausfallsicherheit, und stellt die Mehrschichten-Architektur als Lösungsansatz vor.
3 Datenbanksysteme: Es werden Grundlagen zu relationalen Datenbanksystemen, Transaktionsverwaltung und den wichtigsten Zugriffsschnittstellen für Java-Programme erörtert.
4 Java 2 Enterprise Edition: Dieses Kapitel bietet eine Einführung in die J2EE-Plattform mit Fokus auf EJB-Komponenten, Persistenzschnittstellen (CMP/BMP) und Transaktionssteuerung.
5 O/R-Mapping: Hier werden Muster und Strategien zur Kommunikation zwischen objektorientierter Geschäftslogik und relationaler Datenschicht sowie Techniken zur Zwischenspeicherung (Caching) analysiert.
6 CCMP – Cached CMP: Das Kapitel beschreibt die Implementierung des im Rahmen der Arbeit entworfenen Prototyps zur automatisierten Generierung einer performanten, verteilten Persistenzschicht.
7 Bewertung und Ausblick: Eine abschließende Einordnung der Ergebnisse sowie ein Ausblick auf zukünftige Entwicklungen im Bereich skalierbarer J2EE-Architekturen.
J2EE, EJB, Persistenz-Management, Skalierbarkeit, Ausfallsicherheit, O/R-Mapping, Caching, Transaktionen, ACID, CMP, BMP, Client/Server, Datenbanksysteme, Middleware, Performance
Die Diplomarbeit befasst sich mit der Klassifizierung und Bewertung von Technologien für das Persistenz-Management innerhalb von J2EE-basierten Architekturen, wobei der Fokus auf Skalierbarkeit und Ausfallsicherheit liegt.
Zentrale Themen sind die Mehrschichten-Architektur, die Verwendung von Enterprise JavaBeans (EJB), Objekt-Relationales Mapping (O/R-Mapping) und die Implementierung transaktionssicherer Caching-Lösungen.
Die Forschungsfrage lautet, wie moderne Datenzugriffs- und Caching-Patterns in J2EE-Umgebungen so integriert werden können, dass eine performante, skalierbare und ausfallsichere Anwendung für den Entwickler transparent und wartbar bleibt.
Die Arbeit kombiniert eine theoretische Analyse von Architektur- und Entwurfsmustern mit der praktischen Entwicklung und Lasttest-basierten Evaluierung eines eigenen Prototyps (CCMP).
Der Hauptteil gliedert sich in Grundlagen zu Client/Server-Systemen und Datenbanken, eine detaillierte Einführung in J2EE und EJB, eine eingehende Untersuchung von O/R-Mapping-Strategien sowie die Architektur und Implementierung des entwickelten Caching-Frameworks CCMP.
Die Arbeit wird durch Begriffe wie J2EE, EJB, Caching, O/R-Mapping, Transaktionssicherheit (ACID) und verteilte Systeme charakterisiert.
CCMP (Cached Container Managed Persistence) ist ein im Rahmen der Diplomarbeit entwickeltes Framework. Es generiert automatisch BMP-Beans aus vorhandenen CMP-Entity-Beans und nutzt ein verteiltes Caching-Framework, um die Persistenzschicht performanter und skalierbarer zu machen.
Sie bietet einen praxisnahen Leitfaden, wie man typische Performance-Engpässe bei der Datenbankanbindung von Java-Anwendungen identifiziert und diese durch gezielte Caching-Strategien und Architekturmuster effektiv löst.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

