Dashboard > JUGM > ... > JUGM Termine > ?Divide et impera - modulare Webapplikation mit JSF und OSGi
?Divide et impera - modulare Webapplikation mit JSF und OSGi
Added by Andreas Haug, last edited by Andreas Haug on Apr 16, 2009
Labels: 
(None)


Divide et impera - modulare
Webapplikation mit JSF und OSGi

Autor
Tobias Bosch ist Java-Entwickler und Berater für den Bereich Application Engineering bei der OPITZ
CONSULTING GmbH. Er beschäftigt sich seit mehreren Jahren mit Architektur und Implementierung
von Enterprise-Architekturen auf Basis von Java.

Abstract
Modularisierung dient der Reduktion der Komplexität. Die Lösung der Gesamtaufgabe soll in
überschaubare Teile zerlegt werden. Was die Basis der objektorientierten Programmierung ist, ist in
der Programmierung von Web-Oberflächen jedoch problematisch: Aktuelle Web-Anwendungen sind
spätestens zum Deploy-Zeitpunkt monolithisch in einer WAR oder EAR-Datei zusammengeschweißt.
Für einen Bugfix muss die gesamte Anwendung gestoppt, aktualisiert und wieder gestartet werden;
und das kann bei größeren Anwendungen mehrere Minuten dauern, nicht akzeptabel für kritische
Systeme!
Die Hauptursache für diese Monolithen ist die JEE-Spezifikation. Auf Service-Ebene ist
Modularisierung durch EJB3-JARs noch möglich. Auf UI-Ebene sind die elementaren Einheiten die
WAR-Dateien. Diese sind jedoch voneinander isoliert und eine Kommunikation ist nur mit
entsprechendem Overhead (z.B. JMS, WebServices, Servlet-Endpoints) möglich. Für eine gewöhnliche
Web-Anwendung mit nur einem JVM-Server-Prozess ist das zu aufwendig und zu langsam.
Ein weiteres Problem für die Modularisierung von Web-Anwendungen stellen die Web-Frameworks
dar. Diese sind nicht dafür ausgelegt, die Quellen einer Anwendung auf mehrere WAR-Archive zu
verteilen.
OSGi auf dem Server ist schon seit geraumer Zeit bekannt. Neu ist jedoch, ein Framework auf Basis
von OSGi und JSF zu entwickeln, das die Definition von Modulen bis hin zum Deployment erlaubt,
diese dynamisch zur Laufzeit aus einer externen Quelle aktualisieren kann, und die Module in einem
gemeinsamen Anwendungsrahmen (Menü, Toolbar, ...) integriert. In diesem Artikel Vortrag wird die
Entwicklung eines solchen Frameworks beschrieben.


Site running on a free Atlassian Confluence Community License granted to JUG München (JUGM). Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.2 Build:#807 May 20, 2007) - Bug/feature request - Contact Administrators