Evolution im Portlet-Bereich
Die letzten Monate in der Portalwelt waren Zeiten voller Innovationen. Und mit Recht ist "Innovation" das geeignete Wort hierfür. Anfang des Jahres 2008 erschien die finale Version einer logischen Fortführung der Portlet-Spezifikation. JSR-286 ermöglichte endlich eine standardisierte Vorgehensweise beim Austausch von Informationen zwischen Portlets – kurz die IPC (Stichwort: Inter-Portlet-Communication) – sowie die Verwaltung von Ressourcen innerhalb des Portlet-Raums. Nahezu ein Jahr später schickte sich eine neue Spezifikation an, das Portfolio an Standardisierungen innerhalb der Portalwelt zu erweitern. Die essenzielle Bedeutung der JSR-301 (Portlet-Bridge) legt nahe, dass der Trend zu einer inhaltsaggregierenden und -getriebenen Welt immer mehr an Fahrt gewinnt. Diese Spezifikation definiert jene Schnittstellen, welche die Integration anderer Technologien in Portlets ermöglichten. Das Paradebeispiel JSR-127 (JSF) zeigt hier eindrucksvoll die Möglichkeiten auf, die in diesem Artikel beispielhaft anhand der JSF-Bibliothek RichFaces in der Version 3.3.1-RC2 vorgestellt werden.
Die Zukunft spricht AJAX – auch mit Portlets
RichFaces gibt dem Entwickler ein mächtiges Werkzeug an die Hand, das – einmal richtig eingesetzt – die Entwicklung von Benutzerschnittstellen stark vereinfachen kann. Hierbei sei vor allem die seit Jahren gehypte Thematik AJAX genannt, die nun endlich ohne großen programmiertechnischen Overhead genutzt werden kann. Hierbei ist nicht die Rede von JSON-Objekten, die als Input für einen ResponseWriter dienen, sondern davon, dass diese Abstraktion komplett durch RichFaces, respektive den früheren Ajax4JSF abgedeckt wird.
Wir können weiterhin in gewohnter Weise Managed-Bean-Klassen einsetzen und über einen deklarativen Ansatz mit JSF-Tags Frontend-Seiten definieren. RichFaces ist bis Mitte April 2009 nicht für Liferay nutzbar gewesen – es existierte bis zu diesem Zeitpunkt keine funktionierende Schnittstelle für eine Integration. Mit dem "General Availability 2", der Implementierung von JBoss der Portlet Bridge nach JSR301, hält dieses mächtige Framework ebenfalls Einzug in diese Welt – leider mit einigen Problemen, die aktuell durch kurzfristige Workarounds zu beseitigen sind. RichFaces zeichnet sich weiterhin durch die hohe Anzahl an verwendbaren Komponenten aus, die recht einfach in vorhandene Projekte eingebunden werden können.
Starkes ECM, eingebunden in einem Portal
Nun ist es tatsächlich so, dass (IT-basierte) Unternehmen mehr und mehr gewillt sind, ihre Schnittstellen zu öffnen. Die Gründe hierfür sind vielschichtig: Zum einen drängt der Markt an Open-Source-Produkten diese Unternehmen zu mehr Offenheit. Das andere Argument stellt die Ablösung von monolithischen Systemen zur Vernetzung unterschiedlichster Softwarekomponenten dar. Wie eine geeignete Kombination dieser beteiligten Systeme dann aussehen muss, gilt es im Rahmen des vorhandenen Umfelds und des "Big-Pictures" klarzustellen. Eine relativ einfache Möglichkeit stellt die Anbindung von Systemen mithilfe eines Portalservers dar.
Im Folgenden wird ein solches Beispiel für den soeben genannten Trend praktisch vorgestellt. Die Anbindung von Alfresco 3.1 und Liferay (Version 5.2.2) mithilfe der von JBoss/Exadel entwickelten Komponentenbibliothek RichFaces wird in den kommenden zwei Artikeln näher praktisch erläutert. Die Nutzung eines ECM-Systems zur Verwaltung und Steuerung des Unternehmens schickt sich als Beispiel an, da das Spektrum der Verwendung eines solchen Systems unternehmensweit gestreut ist. Bestimmte Funktionalitäten, wie die zentrale Dokumentenablage eines Unternehmens, werden dann schneller abrufbar und können als Ausgangspunkt weiterer Interaktionen mit anderen "offenen" Softwarekomponenten dienen. Ein mögliches Beispiel könnte eine Workflow-Engine darstellen, die auf Basis der Dokumente im Repository von Alfresco über ein Portal verwaltet wird. Alfresco als führendes Open-Source-Enterprise-Content-Management-System auf dem Markt bietet hierfür eine einheitliche Sicht auf Inhalte durch die Implementierung des Industriestandards JSR-170 und JSR-283 – dem Content Repository (siehe Glasnost im Enterprise Content Management, Thomas Seibert, JavaMagazin, 6/2008). Anhand des Web-Service-API von Alfresco wird beschrieben, wie es einem Unternehmen möglich ist, Metadaten und sogar Dokumente für externen Zugriff durch Benutzer zur Verfügung zu stellen.
Portalserver, Portlets, JSR301, …
Doch nicht immer muss eine direkte Interaktion des Endbenutzers mit einem ECM-System vorliegen. Der Mehrwert durch die Anbindung des ECM in einem zentralen Portal im Unternehmen liegt auf der Hand: Das Zusammenspiel von unterschiedlichen Komponenten auf einer Seite löst ein monolithisch aufgebautes System von heute ab. Natürlich sind verschiedene Schnittstellen zwischen diesen Komponenten zu programmieren. Einmal eingerichtet, steht der Interaktion zwischen den verschiedenen, lose gekoppelten Systemen nichts mehr im Wege. So muss Flexibilität aussehen. Die Steuerung und Kontrolle obliegt dem zentral angelegten Portal.
Für das Beispiel in diesem Artikel kommt der Portalserver Liferay zum Einsatz, welcher die Spezifikationen JSR-168 und JSR-286 implementiert. Verschiedene Systeme, beziehungsweise die Ausprägung der gewünschten Funktionalitäten dieser Systeme, werden über den Portalserver als Portlets abgebildet.




