Im Open Source Bereich
gibt es neben den bekannten Servlet Engines und Application
Servern nun auch
vollständige Frameworks für die Entwicklung von Enterprise Anwendungen.
In Ergänzung
zu dem Struts Framework, der im Rahmen des Jakarta-Projektes entstanden
ist
und sich als Referenzimplementierung
des MVC-Konzeptes etabliert, gibt es jetzt auch eine
interessante Implementierung
mit dem Namen Arch4J für den Business Tier.
Wir möchten nochmal auf unsere kleine Umfrage
hinweisen, und es würde uns freuen wenn
Sie uns Ihre Meinung über jsp-develop.de mitteilen.
Ausserdem haben wir einen neuen Bereich New Features
eingerichtet in dem wir neue
Ideen für jsp-develop.de vorstellen möchten.
Viel Spaß beim aktuellen Newsletter!
Marc & Jörg
Der Open Source Framework
Arch4J
ist
bei SourceForge freigegeben worden. Arch4J ist
ein Framework der
Entwicklern verschiedene Dienste für die Implementierung von J2EE
Anwendungen zur
Verfügung stellt.
Der Framework beinhaltet
die standardisierte Implementierung von Business Services,
Datenbankzugriffen,
Messaging-Funktionen, Logging, Dateimanagement für Property-Dateien,
einen Exception
Framework, Code Generator und noch vieles mehr. Arch4J ist für den
Business
Tier entwickelt
worden und nicht als Konkurenz sondern als Ergänzung zum Struts
Framework
anzusehen.
EJB 2.0 & Web Services Seminar
BEA und TogetherSoft
laden zu einem Seminar ein, indem das Zusammenspiel von BEA
WebLogic Server
6.1 und Together ControlCenter im Bereich J2EE Entwicklung diskutiert
wird. Die Veranstaltung
besteht aus theoretischen Teilen zum Thema EJB 2.0 und WebServices
sowie verschiedenen
Lifedemos, die das Erstellen von J2EE Applikationen (Model-Build-Deploy)
zeigen.
Das Seminar findet an folgenden Orten statt:
Stuttgart
04. Dezember 2001
, 13.00 - 17.00 Uhr
Kultur- & Kongresszentrum
Liederhalle
Berliner Platz 1-3
D-70174 Stuttgart
München
11. Dezember 2001,
13.00 - 17.00 Uhr
Eden-Hotel-Wolff
Europasaal
Arnulfstr. 4
80335 München
Konferenzbericht
JspDevelop war auf
der Hochschul-Industrie-Kooperations-Tagung und der BEA Technologie
Konferenz. Die Veranstaltungen
haben in der Jahrhunderthalle in Frankfurt/Höchst stattgefunden
und waren rundum
ein erfolgreiches Ereignis.
Neben spannenden
J2EE Vorträgen und Praxisberichten, gab es auch eine Partner
Ausstellung mit
interessanten Entwicklungen auf Basis von WebLogic. Die Konferenz
war professionell
organisiert, für das leibliche Wohl hat ein umfangreiches Buffet
mit reichhaltigen
Leckereien gesorgt. Wir müssen an dieser Stelle zugeben, dass
wir uns nur sehr
schwer vom Buffet trennen konnten, um den Vorträgen zu folgen (-:
Überblick über ausgewählte Vorträge:
13. November 2001:
Track 1A: Applikationsentwicklung und -integration auf Basis von BEA WebLogic
Der Vortrag von Prof.
Dr. Appelrath / Dr. Jörg Friebe (Universität Oldenburg) handelte
von einem CRM-Projekt,
dass auf Basis von WebLogic realisiert wurde.
Neben der Definition
der Anforderungen wurden auch Entwurfsentscheidungen
wie eine mögliche
GUI-Integration bestehender Applikationen bzw. die komplette
Neuimplementierung
auf Basis der J2EE besprochen.
Interessant war der
Erfahrunsgbericht, der das Projekt umfasste und Probleme,
die sich bei der
Realisierung der Anwendung mit der noch neuen Technologie und
Integration in das
bestehende Systemumfeld ergeben haben: Serverbasierte
Workflow-Steuerung,
EJB 2.0 Draft 2 unterscheidet sich von Draft 1, Anwendung
von Message-Driven
Beans, etc...
Track 2B: WebServices auf BEA WebLogic aus dem Bereich Mobile
Uwe Spiegel von der
Multimedia Software GmbH Dresden / T-Systems
hat über WebServices
und deren Anwendungsmöglichkeiten referiert.
Neben der Schilderung
konkreter Erfahrungen im T-Motion Projekt wurden
auch folgende Themen
angesprochen: Wie werden WebServices vom
Endbenutzer angenommen,
wo stehen wir heute und was bringt uns die
Zukunft in diesem
Segment.
Die Technologie der
WebServices (Protokolle, UDDI, SOAP, WSDL, etc.) und
deren Anwendungsmöglichkeiten
wurden ebenfalls diskutiert. Der Vortrag von
Uwe Spiegel war
sehr gut strukturiert, professionell vorgetragen und mit
neuen Ansätzen
für B2B- und B2C-Anwendungen verknüpft, die mit WebServices
realisiert werden
können.
Track 3C: Idioms
- Patterns für die Java Enterprise Edition und Erfahrung
am Beispiel von WebLogic Server
Der Vortrag von Adam
Bien (Autor und freier Consultant) handelte von J2EE
Design Patterns
und deren Anwendungsmöglichkeiten. Adam Bien hat neben
den Design Patterns
des Sun Java Centers auch eigene Erweiterungen
vorgestellt, die
in seinem Buch beschrieben sind. Neben den zahlreichen
Tipps und Tricks
wurden auch Source Code Beispiele vorgestellt, die
den abstrakten Hintergrund
untermauert haben.
In der Summe hat
der Vortrag einen guten Überblick über Design Patterns
gegeben und angeregt
tiefer in den Stoff einzutauchen. Übrigens, das neue
Buch von Adam Bien
- J2EE Patterns / Entwurfsmuster für die J2EE - wird
Anfang nächsten
Jahres bei Addison-Wesley erscheinen.
Adam Bien hat bereits
ein Buch über Enterprise Java Frameworks geschrieben,
dass in diesem Jahr
im Addison-Wesley Verlag erschienen ist. Wir lesen das
Buch zur Zeit und
werden in einer der nachfolgenden Ausgaben des Newsletters
darüber berichten.
Neben dem Buch "Core
J2EE Design Patterns", welches in diesem Newsletter
rezensiert wird,
ist der Klassiker von der Gang of Four (GoF) immer noch der
Standard im Bezug
auf Patterns. Schaut mal rein, Patterns sind hilfreich für die
Lösung von
Software-Problemen.
14. November 2001:
Track 1B: BEA WebLogic Portal
Der Referent Colin
D.Harnwell (BEA Systems) hat das neue BEA WebLogic Portal 4.0
vorgestellt. BEA
WebLogic Portal ist eine Zusammenführung der Produkte Personalization
und Commerce Server
sowie dem Campaign Manager.
Wesentliche Neuerung
ist die Gestaltung der Portaloberfläche in Form von Portlets. Jedes
Portlet besteht
aus einer eigenen JSP-Seite, die sich themenbezogen selbst darstellt.
Portlets kommunizieren
untereinander mittels Pipelines. Business Rules können für
jedes Portlet hinterlegt
werden. Die Business Rules triggern das Portlet und entscheiden
anhand definierter
Regeln, welche Informationen dem Benutzer des Portals angezeigt werden
sollen. Das Portal
von BEA macht einen sehr guten Eindruck und man darf gespannt sein,
wann die ersten
grossen Portale auf dieser Plattform laufen.
Für das Portal
gibt es entsprechende Entwicklungswerkzeuge, wie den Portlet Wizzard, einen
Workflow Designer
für WebFlows und eine Integration Suite auf Basis WebLogic für
den Zugriff
auf externe Dienste
wie zum Beispiel einen LDAP-Server für die Zugriffskontrolle zum Portal.
Track 2C: WL Integration 2.0 BEA Lösung für EAI auf J2EE Connector Standard
Dr. Pall Eggerz (BEA
Systems) hat über die J2EE Java Connector Architecture (JCA)
gesprochen. JCA
ist eine neue Spezifikation, die Bestandteil von J2EE 1.3 ist. JDBC ist
der Pate für
JCA (allgemeines JDBC). Im Rahmen der neuen Spezifikation werden
EAI-
Anforderungen umgesetzt,
die einen Zugriff auf Legacy Anwendungen und externe Systeme
über eine standardisierte
Schnittstelle regeln.
BEA hat auf Basis
der JCA Spezifikation das Produkt WebLogic Integration (WLI) implementiert.
WLI bietet neben
Standard-Adaptoren (sind auf der BEA-Homepage wiederzufinden) auch
ein Software Development
Kit für die Entwicklung eigener Adaptoren. WLI bietet darüberhinaus
verschiedene Schlüsseldienste
wie Connection Pooling, Transaction Management und Security
Management für
JCA an.
Insgesamt gesehen,
ist die JCA-Spezifikation und die Implementierung von BEA eine interessante
Technologie die
Connectivity in die heterogene IT-Welt bringt.
Track 3C: EJB 2.0 mit WebLogic Server 6
Der Vortrag von Thomas
Walter (BEA Systems) stellte die Neuerungen des EJB 2.0 Standards
heraus. Der Referent
ist sehr ausführlich auf die Umsetzung des Standards in WebLogic 6.x
eingegangen. EJB
2.0 ist im Hinblick auf effektiveres Entwickeln von J2EE Anwendungen
ein Meilenstein
in der J2EE-Evolution.
Zusammengefasst sind die wesentlichen Erweiterungen der J2EE 1.3 und EJB 2.0 Spezifikation:
Buch Neuerscheinung
Der QUE-Verlag hat
ein neues Buch mit dem Titel Using Enterprise Java Beans 2.0
(ISBN: 0-7897-2567-3)
herausgegeben.
Das Buch ist von den Autoren Chuck
Cavaness und Brain
Keeton geschrieben worden und wendet sich an fortgeschrittene
EJB-Entwickler.
In dem Buch werden
die neuen Features des EJB Standards 2.0 besprochen und
anhand von Beispielen
untermauert. Neben allgemeinen EJB-Themen werden
auch designspezifische
Aspekte wie das Facade-, MVC- und Proxy-Pattern
besprochen. Das
Buch behandelt ausführlich die neuen EJB 2.0 Funktionen
wie Message Driven
Beans, Container Managed Persistent (CMP) sowie
die lokale EJB-to-EJB
Schnittstelle.
Buchbesprechung
Core J2EE Patterns
(Best
Practices and Design Strategies)
Deepak
Alur
John
Crupi
Dan
Malks
ISBN:
0-13-064884-1
Prentice
Hall
Das Buch "Core J2EE
Patterns" ist von drei Enterprise Java Architekten des
Sun Java Centers
geschrieben worden. Der Fokus des Buches liegt auf Design
Patterns für
Enterprise Anwendungen sowie deren Anwendungsmöglichkeiten.
Der Rezension des
Buches vornewegzunehmen, das Werk ist mit vielen Tipps
und Tricks gespickt.
Die vielfältigen Sichten der Autoren im Bezug auf die
Realisierung von
Enterprise Anwendungen lassen es allerdings nicht zu, dass
man das Buch in
einem Zuge durchliest. Das Buch eignet sich deshalb nur für
erfahrene Entwickler
und Architekten, die sich intensiv mit der Entwicklung
von webbasierten
Enterprise Anwendungen beschäftigt haben.
Teil I
Kapitel 1
Das erste Kapitel
diskutiert die Java 2 Enterprise Edition, die Einordnung und
Definition von Patterns,
den im Buch zugrundeliegenden Pattern Katalog und
dessen Gebrauch.
Zusätzlich beinhaltet das erste Kapitel die Vorteile von
Patterns (bewährte
Problemlösungen) und ein paar Worte zu Frameworks.
Kapitel 2
Kapitel zwei beschreibt
den Hype der Java Technologie und Application Server,
sowie die Vorteile
der J2EE. Interessant ist die Erläuterung der J2EE Architektur
aus Sicht der Autoren
und der Vergleich von J2EE mit der Java 2 Standard Edition.
Neben einer Kurzbeschreibung
der J2EE Anwendungskomponenten, werden auch
Standard-Dienste
(JDBC, JavaMail, RMI, etc.) übersichtlich behandelt. Im Abschluss
des Kapitels werden
die verschiedenen Plattformrollen (Produkt Provider, Application
Component Provider,
etc.) besprochen. Das Rollenkonzept, sowie es hier dargestellt
wird, findet man
in der Praxis meist nicht vollständig umgesetzt wieder, sodass ein
Entwickler oft mehrere
Rollen spielt.
Teil II
Kapitel 3
In diesem Kapitel
werden designspezifische Aspekte des Presentation Tiers betrachtet
und gute sowie schlechte
Praktiken herausgearbeitet. Beginnend bei dem Session Management,
werden auch Plausibilitätsprüfungen
auf der client- und serverseite und folgende weiterführende
Themen diskutiert:
Kapitel 4
Kapitel vier handelt
von dem Business Tier und dessen Pitfalls. Beginnend bei grundlegenden
Themen wie Session
Beans (Stateless/Stateful) werden auch Entity Beans behandelt. Der
wichtigere Teil
des Kapitels beschreibt fragwürdige Entwicklungskonstrukte des Business
und
Integration Tiers.
Im einzelnen werden folgende Themen angesprochen:
Kapitel 5
Im Kapitel fünf
werden aufbauend auf den in den vorherigen Kapiteln beschriebenen
Probleme technische
Lösungsmöglichkeiten gezeigt. Neben der Beantwortung
der Frage: Was ist
ein Controller, werden auch Synchronized Tokens, MVC-
spezifische Aspekte
sowie die Übergabe der Daten vom Presentation Tier
an den Business
Tier, das Zusammenführen von Session Beans, Inter-Entity
Bean Kommunikation,
Programmierung der Business Logic in Session Beans,
Verwendung von Connection
Pools und weiterführende Themen behandelt.
Sehr schön an
diesem Kapitel ist es, dass nicht nur auf abstrakte Patterns
eingegangen wird,
sondern konkrete Techniken aufgezeigt werden. Diese
Techniken sind mit
anschaulichen Bildern untermauert. Gleichzeitig wird für
die Anwendung der
Technik jeweils auch eine Motivation gegeben.
Der wichtigste Punkt
des Kapitels ist es, dass die Probleme so wie sie
in den vorherigen
Kapiteln beschrieben wurden, direkt auf den Katalog der
Design Patterns
(nachfolgende Kapitel) projeziert werden.
Teil III
Kapitel 6
Kapitel sechs beantwortet
die Fragen: Was ist ein Pattern und wie identifiziert/
klassifiziert man
Patterns. Bestandteil dieses Kapitels ist das Schichtenmodell
und die damit verbundene
Trennung der Anwendungslogik. Vorbereitend auf
den ausführlichen
Pattern Katalog, wird die zugrundeliegende Terminologie
des Katalogs erläutert
sowie eine Übersicht über den Inhalt des Katalogs
gegeben. Die Patterns
Roadmap unterstützt das Mapping der Problemfälle,
die in den vorherigen
Kapiteln beschrieben worden sind.
Abschliessend werden
die zugrundeliegenden Konzepte der J2EE Patterns
erläutert sowie
kategorisiert. In den nachfolgenden Kapiteln, erfolgt darauffolgend
die ausführliche
Beschreibung der Patterns.
Kapitel 7
Kapitel sieben erläutert
Design Patterns des Presentation Tier. Beginnend bei dem
Pattern Intercepting
Filter wird veranschaulicht, wie die Vorverarbeitung von Benutzer-
anforderungen (Requests)
gelöst werden kann. Filter eignen sich für Standardprüfungen:
Ist der Benutzer
authorisiert, hat der Benutzer eine gültige Session, etc...
Das zweite Design
Pattern ist der Front Controller. Der Front Controller ist das klassische
Beispiel für
die zentrale Verarbeitung und Weiterleitung von Benutzeranforderungen.
Der
Front Controller
ist der initiale Kontaktpunkt einer Web-Anwendung über den Requests
fliessen. Der Controller
leitet Requests zu JavaBeans weiter. In den JavaBeans findet
die Weiterverarbeitung
der Request statt. Der Controller ist deshalb oft nur ein Dispatcher
für eingehende
Requests.
Schon die Gang of
Four (GoF) haben einen Controller mit dem Namen Command Pattern
spezifiziert. Abgeleitete
Technologien wie der Struts Framework, der nach dem
MVC-Konzept implementiert
ist, verwenden diese Technik heute.
Das dritte Pattern
ist das View Helper Pattern. Die View enthält per Definition
den
Formatierungscode
(HTML, etc.), die Verarbeitung (Business Logic) findet in den
View Helpern statt.
View Helper werden als JavaBeans bzw. TagLibs realisiert.
Das Composite
View Pattern zerlegt eine View in einzelne Sichten. Die Composite
View setzt sich
aus Includes und der Erweiterung von Views zusammen. Typische
Composite Views
sind Portalansichten, in denen viele einzelne Views in eine
Oberfläche
integriert sind.
Das Service to
Worker Pattern beschreibt die Zusammenführung des Front Controllers
und den View Helpern
im Kontext einer Dispatcherkomponente. Der Controller arbeitet
mit einem Dispatcher
zusammen, der für das View Management und die Navigation
zuständig ist.
Der Dispatcher kann im Controller vorliegen oder in einer seperaten
Komponente gekapselt
sein. Helper wiederum helfen der View bzw. dem Controller
den Request eines
Benutzers erfolgreich abzuschliessen. Im Rahmen dieses Patterns
kommunizieren Helper
mittels des ValueBeans mit den BusinessServices. In den
BusinessServices
wird auf das Modell (z.B.: EJB's) bzw. direkt auf den EIS-Tier
zugegriffen.
Anmerkung
Die Diskussion der
Design Patterns des Buches beinhaltet folgende allgemeine
Struktur:
Kapitel 8
Kapitel acht widmet
sich ganz den Design Patterns des Business Tier. Das erste
Pattern ist das
Business
Delegate. Dieses Pattern ist als Abstraktion des Presentation
Tiers anzusehen.
Business Delegate verhindert eine enge Bindung zwischen dem
Presentation und
Business Tier. Die Umsetzung des Business Delegates beinhaltet
sehr oft auch eine
Caching-Komponte, in der Ergebnisse von Datenbankabfragen
und Referenzen zu
entfernten Business Services zwischengespeichert werden.
Das Value Object
Pattern eignet sich für den Datenaustausch zwischen dem Application
Client und den Business
Services. Im Value Object werden Daten gekapselt und durch
einen einfachen
Methodenaufruf übertragen. Wenn der Client einen Request stellt, erzeugt
der Business Service
(EJB) das Value Object, füllt es mit Werten einer Abfrage
(DB, LDAP, etc.)
und übergibt das Value Object (by value) an den Client. Der
wesentliche Vorteil
dieser Vorgehensweise ist es, dass sich die Anzahl der Remote
Aufrufe verringert.
Die Session Facade
ist mit das populärste Design Pattern. In der Session Facade
werden die Benutzerinteraktionen
zentral behandelt. Die Session Facade verwaltet
die Business Obkjekte
und stellt zugleich einen Service Layer für Clients dar. Dem
Lesen dieses Abschnittes
im Buch vornewegzunehmen, sollte nicht jeder Use Case
in eine Session
Facade münden. Es ist besser mehrere Use Cases zu konsolidieren
um die Anzahl der
Facaden gering zu halten.
Das Composite
Entity Pattern ist eine Komposition von EJBs. Es macht für viele
Anwendungsfälle
Sinn, fein ganulare EJBs in einem EJB zusammenzufassen,
um die Anzahl der
Remote Aufrufe zu minimieren. Bestandteil dieses Patterns
sind auch Persistenz
Strategien wie das Lazy Loading und Store Optimations.
Der Value Object
Assembler wird eingesetzt um ein Modell bzw. Submodell zu
erzeugen. Der Value
Object Assembler konstruiert ein zusammengesetztes
Value Object, welches
Daten der verschiedenen Geschäftskomponenten
(Business Objects)
enthält. In dem Value Object werden die Daten an den
Client durch einen
einfachen Methodenaufruf übertragen. Der Client nutzt
die übertragenen
Daten für die Anzeige der Ergebnisse eines Requests.
Das Design Pattern
Value
List Handler wird angewendet, wenn komplexe
Daten in Form einer
Liste angezeigt werden sollen. Der Value List Handler
kontrolliert die
Suche der Daten, cached die Ergebnisse und sendet diese
zu dem Client für
die Anzeige in Listenform. Value List Handler beinhalten
in der Regel ausgefeilte
Suchfunktionen, die ein mehrmaliges Ausführen
der EJB-Find Methode
unnötig machen.
Der Service Locator
unterstützt bzw. kapselt das Lookup von EJBs. Jeder
Client der einen
Business Service verwenden möchte, muss zuerst
ein Lookup auf die
Remote Referenz des Services durchführen. Die
Referenzen werden
über einen Naming Kontext verwaltet, der Zugriff
auf den Kontext
wird über JNDI vorgenommen. Lookups kosten wertvolle
Zeit, der Service
Locator kapselt die JNDI-API und vereinfacht den Lookup
auf Services (EJBs).
Der Service Locator ist auch die richtige Stelle um
EJB-Referenzen zu
cachen. Diese Technik findet man in der Praxis sehr
oft wieder.
Kapitel 9
Kapitel neun diskutiert
die Patterns des Integration Tiers. Das bekannteste
Pattern dieser Gattung
ist das Data Access Object (DAO). Diesem Pattern
und dessen Implementierung
läuft man immer wieder über den Weg. Wie der
Name schon ausdrückt
bewegen wir uns sehr nahe am EIS-Tier. Das Data
Access Object kapselt
den Zugriff auf Datenquellen (DB, LDAP, Flat Files, etc.).
Das DAO managed
die Verbindung zur Datenquelle um Daten abzufragen und
zu speichern.
Fazit
Wir haben bei der
Rezension des Buches nur die wesentlichen Patterns
(mit wenigen Worten)
vorgestellt. In dem Buch sind noch andere Patterns
beschrieben, die
den Rahmen des Newsletters gesprengt hätten.
In der Summe ist
das Buch sehr schlüssig und lehrreich, allerdings möchten
wir das Werk nicht
als Sonntagslektüre empfehlen. Es kostet Zeit und Geduld
den Autoren bei
ihrem Flug zu folgen. Endet der Flug, sitzt man allerdings
zufrieden in seinem
Sessel und sagt: Ich habs geschafft ;-)
Eins ist sicher,
jeder der behauptet es wäre einfach Enterprise-Anwendungen
zu entwickeln hat
dieses Buch nicht gelesen, noch nie eine solche Anwendung
entwickelt oder
aber ohne es zu bemerken viele Fehler gemacht.
EJB-Anwendungen sind
und bleiben eine Herausforderung. Das Buch hilft
diese Herausforderung
zu meistern. Nicht umsonst kommen im J2EE-Bereich
in naher Zukunft
weitere Bücher über Design Patterns heraus und nicht umsonst
gibt es Frameworks
wie Struts und Arch4J.
Das Buch ist für
J2EE-Profis ein Must-Read, Einsteiger hingegen sollten
die Finger davon
lassen, oder aber sich die Zähne daran ausbeissen.
Übrigens bei
Amazon.de ist das Buch heruntergesetzt worden, wir hatten
leider Pech und
haben noch zum Ursprungspreis gekauft.
Link des Monats
In dieser Ausgabe
des Newsletters gibt' s einen interessanten Link zu dem
Thema Unified Modeling
Language (UML).
Wir möchten
nicht zu viel über die Seite verraten, schaut selbst und surft zur
ultimativen UML-Seite.
Neue Beiträge bei JSP Develop
JRun goes J2EE
shark
In diesem Beitrag
wird die Servlet Engine JRun
von Macromedia, die sich
mittlerweile zum
Application Server weiterentwickelt hat, beleuchtet.
Newsletter
(c) 2001 by www.jsp-develop.de Alle Rechte vorbehalten.