Open Source J2EE Business-Frameworks im Blick

Open Business

Von Frank Bensberg und Lofi Dewanto

Mit der Durchsetzung der J2EE-Architektur und den allmählich stabil werdenden J2EE-Spezifikationen stehen nun in vielen Anwendungsbereichen umfangreiche J2EE-Komponenten zur Verfügung. Domänspezifische und -unabhängige Komponenten (Servlet und EJB) können stetig ihre Akzeptanz erhöhen [1]. In der Open Source-Szene floriert die Entwicklung in diesem Bereich weiter – trotz schlechter finanzieller Bedingungen. Dieser Artikel stellt einen Überblick über drei Open Source J2EE-Frameworks dar, die in eigenen Enterprise-Projekten Wiederverwendung finden können.

The Open For Business Project – OfBiz (http://www.ofbiz.org)

Dieses domänspezifische Framework versucht die Funktionalitäten eines umfangreichen E-Commerce-Bereichs mit J2EE-Technologie – in Form einer Architektur – abzupictureen. Durch dieses Framework sollte es möglich sein, E-Commerce-orientierte Anwendungen, wie beispielsweise Online-Shop, schnell und einfach zu implementieren. Für die Einfachheit und Schnelligkeit der Anwendungsentwicklung sind die in diesem Projekt zur Verfügung gestellten Modellierungswerkzeuge zuständig.

Das gesamte OfBiz-Framework basiert auf der in mehreren Schichten eingeteilten J2EE-Architektur (JSP/Servlet und EJB). Grundlage aller Schichten ist eine Basis-Architektur, die die allgemeinen Funktionalitäten, beispielsweise Workflow-, Regel- und Entity-Umgebung, anbietet. Die Workflow- und Regel-Umgebung stellen für die Prozessdarstellung eine Laufzeitumgebung zur Verfügung. Mit der Datenspeicherung beschäftigt sich die Entity-Umgebung (Package core), die derzeit als einzige implementiert vorhanden ist.
Die Entity-Umgebung stellt eine Reihe von Werkzeugen und Entwürfen zur Verfügung, die für die Datendarstellung der E-Commerce-Anwendung genutzt werden können. In diesem Zusammenhang besteht eine Entität aus Eigenschaften und Beziehungen mit anderen Entitäten, sie ähneln dem relationalen Datenbank-Prinzip.

Bereits bekannte Entwurfsmuster aus dem J2EE-Bereich (Business Delegate, Value Object, Composite Entity, Value Object Assembler, Service Locator und Data Access Object [2]) finden eine große Beachtung bei der Implementierung des OfBiz-Frameworks. Für die Modellierung einer Entität wird eine XML-Datei verwendet. In dieser Datei werden sowohl die Eigenschaften als auch die Beziehungen mit anderen Entitäten spezifiziert. Man kann sich nun fragen, warum dies nochmals in einer eigenen XML-Datei beschrieben werden muss, da im XML-Deskriptor eines Entity-Beans ebenfalls die entsprechenden Einstellungen durchgeführt werden müssen. Die Entity-Umgebung von OfBiz ist unabhängig von der EJB-Architektur. Dies bedeutet, dass die Verwendung von Entity-Beans nicht zwingend notwendig ist. Die Entitäten von OfBiz können genauso gut direkt mit dem entsprechenden JDBC-Treiber kommunizieren. Die Entity-Umgebung von OfBiz besitzt eine höhere Abstraktionsebene als Entity-Beans.
Für die Präsentationsschicht existiert die so genannte Controller-Umgebung, die für die Verwaltung der Präsentationsebene und die Zusammenarbeit mit der Entity-Umgebung zuständig ist. Durch die Controller-Umgebung wird die Unabhängigkeit der Präsentationslogik und der eigentlichen -darstellung erreicht.

Welche J2EE-Komponenten werden nun für die Implementierung des OfBiz-Frameworks verwendet?

  • JBoss wird als Referenzimplementierungs-EJB-Server verwendet. Es ist jedoch geplant, dass die auf dem Markt vorhandenen EJB-Server ebenso unterstützt werden sollen. Die Verwendung eines EJB-Servers ist jedoch nicht zwingend, da – wie bereits oben beschrieben ist – die Entity-Umgebung direkt mit JDBC kommuniziert.
  • Catalina (Tomcat 4) wird als Servlet-Server genutzt.
  • MySQL oder HypersonicSQL können als Datenbank-Server in OfBiz eingesetzt werden. HypersonicSQL ist auf jeden Fall beim Test des Systems zu empfehlen, da diese Datenbank sehr einfach zu verwenden ist.

Die Installation von OfBiz-Anwendungen gestaltet sich unkompliziert. Die heruntergeladene Datei kann auf ein bestimmtes Verzeichnis entpackt werden und anschließend muss nur noch eine Konfigurationsdatei namens ../catalina/classes/entityengine.properties verändert werden. In dieser Datei muss das Root-Verzeichnis – je nachdem, wo OfBiz entpackt wurde – angepasst werden. Abb. 1 zeigt die gestarteten Anwendungen von OfBiz.

Abb. 1: Katalog-Manager und die entsprechende E-Commerce-Anwendung

OfBiz stellt eine gute Basis für die Erstellung einer eigenen E-Commerce-Anwendung dar, die die J2EE-Technologie ausnutzen soll. Die Wiederverwendung dieses Frameworks beschränkt sich jedoch auf einen domänabhängigen Bereich. Wir sind auf jeden Fall gespannt, wie die erste Version dieses Frameworks aussehen wird, da dieses Projekt sich derzeit noch im Beta-Stadium befindet.

Abb. 2: OpenSymphony-Architektur und -Komponenten

Die OSCore-Komponente stellt die Basis-Dienste des gesamten Frameworks zur Verfügung. Diese Komponente erreicht die höchste Wiederverwendbarkeit durch die allgemein gehaltenen Funktionalitäten. Verschiedene kleine Hilfsklassen sind bereits implementiert worden. Für die Text- bzw. String-Bearbeitung stehen verschiedene Hilfsmethoden zur Verfügung. Dadurch ist beispielsweise die Formatierung von HTML-Seiten sehr einfach durchzuführen. Eine Eingabe-Überprüfungskomponente steht in dieser Klassensammlung ebenso zur Verfügung, um z.B. eine E-Mail-Adresse auf ihre Gültigkeit zu überprüfen. Für die Erstellung eines eindeutigen Primärschlüssels für die Entity-Beans ist die Klasse com.opensymphony.util.GUID zuständig. Die Sammlung von Klassen im Package com.opensymphony.module.propertyset gehört zu den wichtigsten Features in dieser OSCore-Komponente. Mit diesen Klassen ist es möglich, Metadaten für die EJB-Komponente dynamisch und flexibel zu erweitern.

Die restlichen Komponenten sind aus der Tab. 1 zu entnehmen.

Komponente Funktion
OSCore Diese Komponente stellt die Basis-Dienste des OpenSymphony-Frameworks zur Verfügung.
OSUser OSUser ist eine allgemeine Benutzerverwaltungs-Komponente, die unabhängig von dem jeweiligen Applikations-Server verwendet werden kann. Mit dieser Komponente sollte es möglich sein, dass die Benutzerverwaltung einer J2EE-Anwendung implementierungsunabhängig bleibt.
OSCache Zu der Präsentations-Schicht des Frameworks gehört diese Komponente. Sie dient zum dynamischen Cachen von JSP und Servlet.
OSContent Diese Komponente stellt das umfangreichste Vorhaben des OpenSymphony-Projektes dar. Mit OSContent soll ein Open Source Content Management System aufgebaut werden, das wiederum auf den restlichen Komponenten von OpenSymphony basiert.
SiteMesh Diese Komponente ist eine der bekanntesten Komponenten dieses Projektes. Sie ermöglicht ein exzellentes Site-Layout und einfache Webanwendungs-Integration (Perl, PHP oder ColdFusion) mit aktuellen J2EE-Anwendungen.
Clickstream Clickstream beobachtet und speichert die so genannten Benutzer-Clicks der gesamten Webanwendungen.
OSRewrite Mit der Nutzung von regulären Ausdrücken soll diese Komponente – ähnlich wie das Apache mod_rewrite – URLs in andere URLs transformieren.
FormTags Diese Komponente ist eine Sammlung von JSP-Taglibs.
RichTags Diese Komponente ist ebenfalls eine Sammlung von JSP-Taglibs, die jedoch die GUI-Schnittstellen der Webanwendung als Schwerpunkt hat.
Transformtags Diese Komponente ist für die Transformation verschiedener Formate (XML, HTML) gedacht.
WebCompass Diese Komponente stellt eine Kombination von EJB und JSP-Taglibs dar, um eine Site-Navigation zu erstellen.
OSContact Diese Komponente stellt ein Personal Information Management (PIM) dar, das auf der J2EE-Technologie basiert.
OSAccess OSAccess ist ein generisches Zugriffkontroll-System. Sie ist die Basis der OSUser-Komponente.

OpenSymphony ist ein umfangreiches Open Source J2EE-Framework-Projekt. Der Aufbau der einzelnen Komponenten muss verstanden sein, um sie richtig nutzen zu können. Es muss also zunächst eine gewisse Vorarbeit geleistet werden, die langfristig jedoch zahlreiche Vorteile mit sich führt. Die Verwendung dieses Frameworks ist für jedes J2EE-Projekt empfehlenswert – auch wenn zu Beginn beispielsweise ausschließlich die OSCore-Komponente verwendet wird.

Geschrieben von
Von Frank Bensberg und Lofi Dewanto
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.