Diese Arbeit beschäftigt sich mit der Erstellung einer Referenzimplementierung für den JBoss Application-Server. In diesem Zusammenhang wird in die Grundlagen für die Erstellung von komponentenbasierten Systemen auf J2EE-Basis eingeführt, einige „best practises“ in Form von Entwurfsmustern (Pattern) vorgestellt und Quellcodebeispiele zur Veranschaulichung angeführt.
Die Arbeit liefert alle Grundlagen für die Erstellung von J2EE-Anwendungen auf Basis der EJB2.0 Spezifikation.
Der zweite Schwerpunkt dieser Arbeit befasst sich mit Application-Servern, speziell mit dem JBoss. Dabei wird der Dieser Server in Version 3.2 genau untersucht und seine Konfiguration erläutert. Um den JBoss Application Server im Markt einordnen zu können, wird ein kurzer Vergleich mit den Konkurenzprodukten durchgeführt. Es soll gezeigt werden, welche Kriterien für den Einsatz eines Application-Server sprechen und was beim Einsatz zu beachten ist.
Die Beispielanwendung ist über die Webseite des Autors auf http://rambow.it/ erhältlich.
Inhaltsverzeichnis
1. Einleitung
1.1. Thematik und Aufbau der Arbeit
1.2. Motivation
1.3. Aufgabenstellung
2. Theoretische Grundlagen
2.1. Einführung in plattformunabhängige Programmierung
2.1.1. Die Java-Plattform
2.1.2. XML als plattformunabhängiges Datenformat
2.1.3. SQL, die Standard-Datenbank-Anfragesprache
2.2. Verteilte Anwendungen
2.2.1. Komponenten
2.2.2. Komponentenmodelle in Java
2.2.3. Alternative Komponentenmodelle
2.2.4. Vergleich der Komponentenmodelle
2.3. Softwareentwicklung für komponentenbasierte Systeme
2.3.1. Komponenten-Engineering
2.3.2. UML als Standard zur Modellierung des Entwicklungsprozesses
3. Enterprise JavaBeans
3.1. Rollenmodell bei J2EE
3.1.1. Enterprise Bean-Provider
3.1.2. Application Assembler
3.1.3. Deployer
3.1.4. EJB-Server-Provider
3.1.5. EJB-Container-Provider
3.1.6. System-Administrator
3.2. Architektur der Enterprise JavaBeans
3.2.1. J2EE-Server
3.2.2. EJB-Container
3.2.3. Programmierrestriktionen bei EJB
3.3. Enity Beans
3.3.1. Aufbau einer Entity Bean
3.3.2. Bean Managed Persistence
3.3.3. Container Managed Persistence
3.3.4. Container Managed Relations
3.3.5. Client-Sicht
3.3.6. Alternativen für persistente Objekte
3.4. Session Beans
3.4.1. Stateless Session Beans
3.4.2. Stateful Session Beans
3.4.3. Client-Sicht
3.5. Message-Driven Beans
3.6. Transaktionen
4. JBoss Application Server
4.1. Architektur des JBoss
4.1.1. Java Management Extension
4.1.2. Aufbau des JBoss-Kerns
4.1.3. JBoss Interceptor-Architektur
4.2. Deployment
4.2.1. JBoss Classloading
4.2.2. JBoss Deployment-Komponenten
4.2.3. Hot-Deployment
4.2.4. Vorgang des Deployments
4.2.5. Clustering
4.2.6. Cluster-Architektur des JBoss
4.3. EJB-Container
4.4. Webserver
4.5. JBoss-Konfiguration
4.5.1. JBoss-Standard-Konfigurationen
4.5.2. JBoss-spezifische Deployment-Deskriptoren
4.5.3. Konfiguration für HTTPS-Verbindungen
4.6. JBoss Version 4.0
4.6.1. AOP
4.7. Werkzeuge für den JBoss Application Server
4.7.1. Ant
4.7.2. XDoclet
4.7.3. Entwickler-Werkzeuge für die JBoss-Plattform
4.7.4. Integrierte Entwicklungsumgebungen
4.8. Vergleich zwischen J2EE-Application-Servern
4.8.1. JOnAS
4.8.2. Oracle 10g und Orion Application Server
4.8.3. BEA WebLogic 8.1
4.8.4. IBM WebSphere
4.9. Fazit
5. Referenz-Anwendung
5.1. Zielsetzung
5.2. Anwendungsfälle - UML
5.3. Aufbau, Architektur und Entwurfsmuster
5.3.1. Multitier-Anwendung
5.3.2. Entwurfsmuster: MVC 2 - Web
5.3.3. Entwurfsmuster: Session-Fassade
5.3.4. Entwurfsmuster: DTO Data Transfer Object
5.3.5. Entwurfsmuster: UUID
5.4. Backend der Anwendung
5.4.1. Datenmodell
5.5. Web-Anwendung
5.5.1. Aufbau und Architektur der Anwendung
5.5.2. Web-Benutzer-Interface
5.5.3. Konfiguration der Anwendung
5.6. Administrator-Anwendung
5.6.1. Architektur der Administrator-Anwendung
5.6.2. Verbindung mit JBoss
5.7. WAP-Frontend
6. Zusammenfassung und Ausblick
6.1. Zukunftsprognose
6.2. Einsatzmöglichkeiten der entwickelten Anwendung
6.2.1. Notwendige Erweiterungen für einen produktiven Einsatz
6.2.2. Die Anwendung als Beispiel zur Erstellung von J2EE Applikationen
6.3. Fazit
A. Anhang
A.1. Servlet und JavaServer Pages
A.1.1. Servlets
A.1.2. JavaServer Pages
A.2. Deployment
A.3. JBoss Management Konsole
A.4. Datenmodell der Referenzanwendung
A.5. Konfiguration der Web-Anwendung
A.6. Inhalt der CD
Zielsetzung & Themen
Die Arbeit befasst sich mit der Entwicklung einer Referenzimplementierung auf Basis des JBoss Application Servers unter Verwendung der Java 2 Enterprise Edition (J2EE). Das Ziel ist es, dem Leser ein grundlegendes Verständnis für die Erstellung von J2EE-Anwendungen zu vermitteln, etablierte Entwurfsmuster für komponentenbasierte Systeme vorzustellen und den JBoss Application Server einer detaillierten sowie kritischen Untersuchung zu unterziehen, einschließlich seiner Konfiguration und Markteinordnung.
- Grundlagen der J2EE-Architektur und komponentenbasierter Softwareentwicklung.
- Detaillierte Analyse des JBoss Application Servers und seiner internen Architektur.
- Anwendung von Entwurfsmustern (z.B. Session-Fassade, DTO, MVC 2) in der Praxis.
- Erstellung einer Referenzanwendung zur Veranschaulichung der JBoss-Deployment-Mechanismen.
- Vergleich des JBoss mit kommerziellen J2EE-Applikationsservern.
Auszug aus dem Buch
3.3.1. Aufbau einer Entity Bean
Eine Entity Bean besteht aus zwei oder vier Interfaces (je zwei Local- und/oder Remote-Interfaces) und einer Bean-Klasse. Die Bean-Klasse definiert alle Attribute, Methoden und Beziehungen (vgl. Kapitel 3.3.4) einer Entität.
Dabei wird ein Attribut oder eine Reihe von Attributen als Primärschlüssel benutzt. Über diesen Primärschlüssel werden die Geschäfts-Entitäten einer Anwendung eindeutig unterscheidbar, weshalb er auch zum Auffinden der Entitäten benutzt wird (vgl. 3.3). Der Primärschlüssel muss ein Objekt einer serialisierbaren Klasse sein, um den Anforderungen von RMI-IIOP zu entsprechen. Bei nicht zusammengesetzten Primärschlüsseln bieten sich daher Klassen wie String oder Integer an.
Die Methoden der Bean-Klasse bieten Zugriff auf deren Daten und ermöglichen einfache Manipulationen. Die Beziehungen definieren die Abhängigkeiten zwischen verschiedenen Entity Beans.
Jede Entity Bean-Klasse implementiert die Callback-Methoden des Interface javax.ejb.EntityBean. Diese werden vom EJB-Container benutzt um die Instanz der EB zu überwachen und zu steuern. Die Callbackmethoden werden immer ausgeführt, wenn der Container in den Lebenszyklus der Bean eingreift. Das gibt dem Programmierer die Möglichkeit bestimmte Aktionen vor einem Zustandswechsel auszuführen. Sinnvoll ist es z.B. in manchen Umgebungen, das Löschen oder Erzeugen von Entitäten zu protokollieren. Bei BMP-Entity Beans werden die Callbackmethoden mit der Funktionalität für die Persistenz der Komponenten ausimplementiert.
Zusammenfassung der Kapitel
1. Einleitung: Diese Einleitung führt in das Thema der Vernetzung von Unternehmensanwendungen ein und definiert das Ziel der Arbeit, eine Evaluation des JBoss Application Servers durchzuführen und eine Referenzanwendung auf J2EE-Basis zu erstellen.
2. Theoretische Grundlagen: Dieses Kapitel erläutert die Basis-Technologien wie Java, XML und SQL sowie die Konzepte verteilter Anwendungen und die Softwareentwicklung für komponentenbasierte Systeme unter Verwendung der UML.
3. Enterprise JavaBeans: Hier wird das EJB-Komponentenmodell detailliert beschrieben, einschließlich des Rollenmodells, der Architektur, der verschiedenen Beantypen (Entity, Session, Message-Driven Beans) und Transaktionsmechanismen.
4. JBoss Application Server: Dieses Kapitel untersucht die Architektur des JBoss, insbesondere den Micro-Kernel-Ansatz, das Deployment-Konzept, Clustering-Möglichkeiten und Vergleichsstudien zu anderen J2EE-Servern.
5. Referenz-Anwendung: Dieser Abschnitt beschreibt die praktische Implementierung des Projektmanagement-Prototyps, erläutert die Anwendung von Entwurfsmustern (MVC 2, Session-Fassade, DTO, UUID) und die Konfiguration der Anwendung im JBoss.
6. Zusammenfassung und Ausblick: Hier werden die Ergebnisse evaluiert, eine Zukunftsprognose für J2EE-Server gegeben und die Einsatzmöglichkeiten der entwickelten Anwendung für produktive Szenarien diskutiert.
Schlüsselwörter
JBoss Application Server, J2EE, Enterprise JavaBeans, EJB, Java, XML, Deployment, Clustering, MVC, Session-Fassade, Data Transfer Object, DTO, Transaktionsverwaltung, SQL, Softwareentwicklung.
Häufig gestellte Fragen
Worum geht es in dieser Arbeit?
Die Arbeit beschäftigt sich mit der Implementierung einer Referenzanwendung für den JBoss Application Server auf Basis der Java 2 Enterprise Edition.
Welche zentralen Themenfelder werden behandelt?
Die Arbeit umfasst theoretische Grundlagen verteilter Systeme, die Enterprise JavaBeans-Technologie, die Architektur des JBoss Application Servers sowie die praktische Anwendung von Entwurfsmustern.
Was ist das primäre Ziel der Forschungsarbeit?
Das Ziel ist die Evaluation des JBoss Application Servers und die Vermittlung eines Verständnisses für das Erstellen von Anwendungssoftware auf J2EE-Basis durch eine Referenzimplementierung.
Welche wissenschaftlichen Methoden werden verwendet?
Die Arbeit nutzt die Literaturrecherche zur theoretischen Fundierung sowie die Methoden der objektorientierten Softwareentwicklung und Modellierung mittels UML für die Erstellung der Referenzanwendung.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in eine detaillierte Erläuterung der Enterprise JavaBeans-Architektur und eine tiefgehende Analyse des JBoss Application Servers, inklusive Deployment, Clustering und Konfiguration.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zu den prägenden Begriffen gehören JBoss, J2EE, Enterprise JavaBeans, Deployment, Clustering, MVC und Entwurfsmuster.
Warum wurde JBoss für diese Evaluation ausgewählt?
JBoss wurde gewählt, da es sich um einen Open-Source-Server handelt, der durch seine große Entwicklergemeinde eine schnelle Weiterentwicklung erfährt und sowohl für kleine als auch für große Unternehmen eine interessante, kosteneffiziente Alternative zu kommerziellen Servern darstellt.
Welche Rolle spielen Entwurfsmuster bei der Referenzanwendung?
Entwurfsmuster wie MVC 2, die Session-Fassade und DTOs werden eingesetzt, um die Software modularer, skalierbarer und wartbarer zu gestalten sowie die Performance durch reduzierte Netzwerkzugriffe zu verbessern.
- Citation du texte
- Dipl. Inform. Mark Rambow (Auteur), 2004, Implementierung einer Referenzanwendung für den JBoss Application Server unter Verwendung der Java 2 Enterprise Edition, Munich, GRIN Verlag, https://www.grin.com/document/80153