Grin logo
de en es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Theory

Klassifizierung und Bewertung von Persistenz-Management Technologien in J2EE Architekturen unter besonderer Betrachtung von Skalierbarkeit und Ausfallsicherheit

Title: Klassifizierung und Bewertung von  Persistenz-Management Technologien in  J2EE Architekturen  unter besonderer Betrachtung von  Skalierbarkeit und Ausfallsicherheit

Diploma Thesis , 2003 , 123 Pages , Grade: 1.0

Autor:in: Thomas Hertz (Author)

Computer Science - Theory
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

Die Nutzung von Applikationsservern im Rahmen geschäftlicher Anwendungsarchitekturen
ist heutzutage nahezu zwingend. Durch sie wird eine Reihe von Technologien wie z.B.
Webserver, Transaktionsmonitor oder Messaging-System zu einem gut harmonierenden
und in sich schlüssigen Framework zusammengefügt. Neben der Bereitstellung einer
Umgebung für die Ausführung von Business-Logik realisieren sie auch die so wichtige
Verbindung zu Datenbanksystemen. Ziel der Applikationsserver ist es, die Entwicklung
eines modularen, ausfallsicheren und hochskalierbaren Systems zu ermöglichen.
Im Java-Umfeld setzt sich J2EE (Java 2 Enterprise Edition) [Sun01a] einschließlich der
Komponententechnologie EJB (Enterprise JavaBeans) [Sun01c] für Applikationsserver
immer mehr durch. EJB bietet einen Rahmen für die Entwicklung von Business-
Funktionalität und nimmt dem Entwickler immer wiederkehrende Aufgaben wie Security-
Management, Transaktionssicherung oder Datenspeicherung ab.
Wie bereits angedeutet ist eine der Hauptaufgaben eines Applikationsservers die Anbindung
aller Arten von Datenbanksystemen. Die J2EE-Spezifikation bietet auch hier einige
Hilfen für den Entwickler, ist aber leider in diesem Bereich teilweise nur sehr vage
formuliert oder adressiert wichtige Punkte gar nicht. Für die Speicherung der Business-
Objekte in einem relationalen Datenbanksystem stehen nur vergleichsweise einfache
Abbildungs- und Abfragemöglichkeiten zur Verfügung.
Die Integration bestehender Datenbanksysteme mit moderner Komponententechnik kann
somit von den heutigen Applikationsservern oft nicht ohne weitere Hilfsmittel geleistet
werden. Vor diesem Hintergrund sind Mechanismen notwendig, die eine flexible
Abbildung von Operationen und Anfragen der EJB-Objekte auf relationale Datenbanken
ermöglichen. Diese Aufgabenstellung wird üblicherweise durch Persistenz-Frameworks
erfüllt.
Die EJB-Spezifikation bietet zwei grundsätzliche Varianten für die Objekt-Persistenz an:
CMP (Container-Managed Persistence) [Sun01d, S. 125ff] und BMP (Bean-Managed
Persistence) [Sun01d, S. 243ff]. Doch muss für die Integration eines Persistenz-Frameworks
in den Applikationsserver eine detailliertere Betrachtung erfolgen, da zum einen keine
standardisierten Schnittstellen zwischen Applikationsserver und Persistenz-Framework
spezifiziert sind und zum anderen der Einsatz der so genannten Entity-Beans nicht bei
jedem Applikationsserver eine performante, ausfallsichere und hochskalierbare Architektur
gewährleistet. [...]

Excerpt


Inhaltsverzeichnis

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

Zielsetzung und Themen

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.

  • Architektur von J2EE-basierten Client/Server-Anwendungen
  • Persistenz-Management durch EJB (CMP und BMP)
  • Objekt-Relationale Mapping-Strategien und Entwurfsmuster
  • Verteilte transaktionssichere Caching-Systeme

Auszug aus dem Buch

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.

Zusammenfassung der Kapitel

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.

Schlüsselwörter

J2EE, EJB, Persistenz-Management, Skalierbarkeit, Ausfallsicherheit, O/R-Mapping, Caching, Transaktionen, ACID, CMP, BMP, Client/Server, Datenbanksysteme, Middleware, Performance

Häufig gestellte Fragen

Worum geht es in dieser Arbeit primär?

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.

Welche Themenfelder stehen im Zentrum?

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.

Was ist das Hauptziel oder die Forschungsfrage?

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.

Welche wissenschaftliche Methode wird verwendet?

Die Arbeit kombiniert eine theoretische Analyse von Architektur- und Entwurfsmustern mit der praktischen Entwicklung und Lasttest-basierten Evaluierung eines eigenen Prototyps (CCMP).

Was wird im Hauptteil der Arbeit behandelt?

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.

Welche Begriffe charakterisieren diese Arbeit besonders?

Die Arbeit wird durch Begriffe wie J2EE, EJB, Caching, O/R-Mapping, Transaktionssicherheit (ACID) und verteilte Systeme charakterisiert.

Was genau ist "CCMP"?

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.

Warum ist die Arbeit für Entwickler von verteilten Systemen relevant?

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.

Excerpt out of 123 pages  - scroll top

Details

Title
Klassifizierung und Bewertung von Persistenz-Management Technologien in J2EE Architekturen unter besonderer Betrachtung von Skalierbarkeit und Ausfallsicherheit
College
Technical University of Munich  (Fakultät für Informatik)
Grade
1.0
Author
Thomas Hertz (Author)
Publication Year
2003
Pages
123
Catalog Number
V17143
ISBN (eBook)
9783638217835
Language
German
Tags
Klassifizierung Bewertung Persistenz-Management Technologien J2EE Architekturen Betrachtung Skalierbarkeit Ausfallsicherheit
Product Safety
GRIN Publishing GmbH
Quote paper
Thomas Hertz (Author), 2003, Klassifizierung und Bewertung von Persistenz-Management Technologien in J2EE Architekturen unter besonderer Betrachtung von Skalierbarkeit und Ausfallsicherheit, Munich, GRIN Verlag, https://www.grin.com/document/17143
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  123  pages
Grin logo
  • Grin.com
  • Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint