Umsetzung des Portal-Konzeptes
Zur Umsetzung des Portal-Konzeptes wurden verschiedene
Komponenten benötigt. Diese Softwarebausteine implementieren
die einzelnen vom PublicationPORTAL benötigten Funktionen und
realisieren in ihrem Zusammenspiel das Gesamtkonzept.
Zur Erreichung der Ziele des PublicationPORTALs benötigte Komponenten
sind im groben eine Portal-Plattform, eine Typemanager- und
Trader-Komponente, eine Datenbank-Komponente und verschiedene
Portal-Komponenten zur Generierung der Inhalte auf den
Portalseiten.
 |
| Die Komponenten des PublicationPORTALs |
Die Architektur
Die Architektur der Portalplattform folgt einem drei Schichten Modell.
Die drei Schichten sind dabei innerhalb eines verteilten Systems auf verschiedenen
Rechnern verteilt und beinhalten jeweils die Darstellung, die Portallogik
und die persistente Datensicherung.
Die Darstellungsschicht befindet sich auf dem Rechner des Benutzers und wird
im Normalfall durch einen standardisierten HTML-Webbrowser realisiert,
wobei über andere Markup-Sprachen, wie z.B. WML, auch andere Endgeräte
unterstützt werden können. Wird die Generierung von WML unterstützt, so
können die Benutzer auch mit WAP-Endgeräten das Portal nutzen.
Die Logik für die Generierung der HTML/WML-Seiten, die Benutzerverwaltung
(Portal-Plattform) und die Typemanager- bzw. Trader-Komponenten befinden sich
in der Logikschicht. Diese Komponenten laufen auf einem oder mehreren
Rechnern beim Betreiber des Portals. Die Anforderung an die Rechner der
Benutzer beschränkt sich somit auf die Installation eines üblichen Webbrowser.
Die Schnittstelle zur Darstellungsschicht (Browser)
wird durch einem Webserver realisert, an den HTTP-Anfragen gestellt werden.
Als Webserver wird der frei verfügbare
Apache-Webserver verwendet, wobei
zusätzlich zur Einbindung von Java-Programmen der Java-Webcontainer
Apache Tomcat
eingesetzt wird. Durch den Einsatz von Tomcat wird der Apache-Webserver um einen
Webcontainer zur Unterstützung von Java Servlets- und Java Server Pages (JSP)
erweitert. Dies ermöglicht die Einbindung von Java-Komponenten zur
dynamischen Generierung der Portalseiten.
Als Grundlage zur Realisierung der Funktionen der Portal-Plattform
wird das Jetspeed-Portal-Frameworks
verwendet. Dieses Application-Framework bietet grundlegende Portal-Funktionalität und erleichterte so
die Realisierung der Portalplattform. Mit dem Jetspeed-Framework erstellte Portalanwendungen können
als
J2EE Webapplikation erstellt werden. Diese Webapplikationen können dann in Webservern mit
J2EE Unterstützung installiert werden. (Hier Apache + Tomcat)
Die persistente Speicherung der Daten (Benutzer-, Dienste-, Konfigurationsdaten)
erfolgt in der Datensicherungsschicht. Diese wird durch den Einsatz einer Relationalen
Datenbank realisiert, welche auf einem eigenen Datenbankserver abläuft
und auf die vom Webserver aus zugegriffen wird. Als Datenbanksoftware wird
die Open Source Software MySQL von
MySQL AB. verwendet.
 |
| Die drei Schichten Architektur der Portalplattform |
Das Jetspeed-Portal-Framework
Das Jetspeed-Portal-Framework bietet Grundfunktionalität zur
Implementierung von Portalen. Jetspeed ist ein im Rahmen des
Jakarta-Projektes von der Apache Foundation angebotenes Open Source
Framework und unterstützt die Portal-Entwicklung durch folgende
Funktionen:
- die Generierung von dynamischen Portalseiten aus einer Seitenbeschreibung
- XML konforme Sprache zur Beschreibung von Portalseiten
- Registrieren und Anmelden von Benutzern
- Komponenten-Schnittstelle zur Integration von Portal-Komponenten
- Servlet-Schnittstelle zur Einbindung in Webserver
Zur Realisierung setzt Jetspeed wiederum verschiedene andere Open Source
Projekte ein. Die eingesetzten Softwarepakete sind:
- Turbine (Benutzer Anmelden,Registrieren,Servlet-Schnittstelle,Sicherheitsmodell)
- ECS (Generierung von HTML/XML-Dokumenten)
- Castor (Persistente Speicherung von Objekten)
- Cocoon (dynamische Generierung von Webinhalten)
- Xerces (XML-Parser)
- Xalan (XSL-Processor)
- Velocity (Template-Sprache zur Inhaltsgenerierung)
Da das Jetspeed-Framework derzeit nur in einer Alpha-Version mit nur grundlegendem
Funktionsumfang angeboten wird, musste das Framework für das PublicationPORTAL an
verschiedenen Stellen erweitert werden. Das PublicationPORTAL verwendet daher eine
eigene erweiterte Version des Frameworks. Für Jetspeed entwickelte Komponenten
können aber weiterhin verwendet werden.
 |
| Architektur des Jetspeed-Frameworks |
Das Portlet-Konzept
Als Portlets werden im Rahmen des Jetspeed-Frameworks die einzelnen Portal-Komponenten
bezeichnet, welche die Inhalte für die Portalseiten liefern. Technisch gesehen ist das
Portlet-Konzept eine Möglichkeit verschiedene Informationsquellen und Anwendungen über
eine einheitliche Schnittstelle in das Portal zu integrieren. Für jede zu integrierende
Informationsquelle, Anwendung oder jeden Dienst muss daher ein Portlet implementiert werden.
So könnte ein Portlet z.B. die aktuellen Wettervorhersagen, Börsenkurse oder Nachrichten anzeigen.
Dem Benutzer stellt sich ein Portlet ähnlich einer Anwendung auf einer grafischen
Benutzerschnittstelle (Windows/X11) als kleine abgeschlossene Anwendung oder Informationsquelle
auf seiner Portalseite dar.
Ein angemeldeter Benutzer des Portals kann sich aus den vom Portal angebotenen Portlets einige mit für
ihn interessanten Informationen oder Anwendungen aussuchen und auf seiner Portalseite zusammenstellen.
Beim nächsten Anmelden beim Portal bekommt er dann seine persönliche Seite mit für ihn
interessanten Inhalten präsentiert. Anwender mit unterschiedlichen Interessen können
sich auf diese Weise ihre Seiten an ihre Anforderungen anpassen.
Ähnliche Portlet-Konzepte werden auch von anderen Anbietern von Portal-Plattformen
(Oracle,
Bea Systems,
IBM,
Silverstream)
unterstützt. Die Komponenten heissen dort meist auch Portlets, sind aber von der
Programmierschnittstelle her nicht kompatibel mit der Jetspeed-Portlet-Schnittstelle
und können somit im PublicationPORTAL nicht eingesetzt werden. Eine einheitliche
Portlet-Schnittstelle existiert derzeit nicht.
Entwickelte Komponenten
Der Einsatz der verschiedenen Open Source Softwarekomponenten und Frameworks erleichtert
durch Wiederverwendung zwar die Implementierung der Portal-Plattform, doch musste zur Umsetzung
der Ziele des PublicationPORTAL-Konzeptes noch umfangreiche eigene Implementationsarbeit
geleistet werden. Neben der Anpassung des Jetspeed-Frameworks an die Bedürfnisse des
PublicationPORTALs mussten weiterhin einige Komponenten zur Portalpersonalisierung, zur Dienstintegration
und zum Auffinden von Diensten der Publikationsdomäne realisiert werden. Weiterhin wurden
einige Komponenten zur beispielhaften Integration von Diensten zur Suche von Literaturquellen
implementiert.
Komponenten für die Portalpersonalisierung
Ein wichtiger Bestandteil eines Portals ist die Möglichkeit zur Anpassung der Portalseiten an
die Bedürfnisse der einzelnen Benutzer. Dazu müssen sich die Benutzer zunächst
beim Portal Registrieren oder Anmelden können. Diese Vorgänge werden zwar bereits durch
das Jetspeed-Framework unterstützt, mussten jedoch erst an das PublicationPORTAL und die
Rechnerumgebung angepasst werden.
Hat sich ein Benutzer angemeldet, so kann er seine eigene Portalseite Personalisieren.
Hierbei kann zwischen inhaltlicher Personalisierung und der Personalisierung des Aussehens,
also des Layouts der Seite unterschieden werden. Eine inhaltliche Anpassung der Seiten erfolgt
im PublicationPORTAL über die Auswahl von Portlets, welche unterschiedliche
Informationen und Anwendungen in die Portalseiten integrieren. Da das Jetspeed-Framework kein dynamisches
Hinzufügen von Portlets zur Laufzeit ermöglicht, wurden hierfür verschiedene
Portlets zum Auffinden von Diensten erstellt, welche auch ein dynamisches Hinzufügen der
Dienste zu den Portalseiten ermöglichen.
Da das Auswählen von mehreren Portlets schnell zu recht grossen Seiten führen kann und der
Benutzer innerhalb der ausgewälten Inhalte weitere Präferenzen haben kann, wurde für
das PublicationPORTAL eine Layout-Komponente entwickelt. Diese Ermöglicht es das Layout der Seite
anzupassen und die Portlets innerhalb dieses Layouts zu positionieren.
Das Layout der Seiten folgt dabei grundsätzlich einem (Mehr-)Spalten-Layout, wobei der Benutzer die Anzahl der
Spalten z.B. je nach seiner eigenen Bildschirmgrösse ändern kann. Das Positionieren der
Portlets innerhalb der Seite erfolgt durch Verschieben von einer Spalte in die Andere und das Verändern
der Position innerhalb der Spalte.
Neben diesen in das Framewok integrieren Funktionen zur Personaliserung wurde weiterhin ein
Bookmark-Portlet implementiert, welches es dem Benutzer ermöglicht einzelne Dienste in sein
persönliches Bookmark-Verzeichnis zu verschieben und von dort direkt aufzurufen.
Typemanager- und Trader-Komponente
Eines der Ziele des PublicationPORTALs ist es dem Benutzer das Auffinden von benötigten
Diensten zu vereinfachen. Hierzu werden im Rahmen der Realisierung des Portals die Dienste einer
selbst entwickelten Typemanager- und Trader-Komponente genutzt. Die Typemanager-Komponente ermöglicht
das Registrieren von verschieden Diensttypen. Innerhalb dieser registrierten Typen können nun
über die Eigenschaften der Typen Beziehungen zwischen diesen ermittelt werden. So kann ein Benutzer
z.B. zu einem ausgewählten Typ einen anderen ähnlichen Typ mit den gleichen oder zumindest
ähnlichen Eingenschaften finden. Der Benutzer wird so auch auf Arten von Dienste hingewiesen, die
ihm bisher u.U. noch nicht bekannt waren. Weiterhin ermöglicht der Typemanager das zusammenstellen
von DIensten zu neuen Mehrwertdiensten.
Die Trader-Komponente dient der gezielten Suche nach Diensten eines Typs. Hat der Benutzer einen
Diensttyp ausgewählt, so kann er die Menge der zu diesem Typ registrierten Dienste über
die Trader-Komponente durch Angabe von Attributen einschränken.
Komponenten zur Dienstintegration
Die Zusammenfassung von verteilten Informationen oder Anwendungen auf einer zentral
zugänglichen Seite im Netz ist eines der Ziele eines Portals. Um dies zu Realisieren
definiert die Portalplattform eine einheitliche Schnittstelle (Portlet) über welche
die Quellen in die Portalseite eines Benutzers eingebunden werden können. Im Falle des
PublicationPORTALs müssen über diese Schnittstelle die verschiedenen beim Portal
registrierten Dienste des Publikationswesens eingebunden werden. Zu diesem Zweck wurden
verschiedene Portlets implementiert. Die Integration von Diensten kann nun im Rahmen des PublicationPORTALs
über vier Arten erfolgen.
-
Integration des Dienstes über einen Adapter für diesen Dienst. Bei dieser Möglichkeit
muss der Dienstanbieter einen einfachen Adapter für seinen Dienst implementieren. Hierzu muss
der Adapter eine Adapterschnittstelle realisieren, ueber die der Adapter über Business-Events
mit dem Portlet zur Integration komunizieren kann. Das Adapter-Portlet generiert dabei aus
einer Liste der im aktuellen Zustand des Dienstadapters akzeptierten Business-Events eine
Benutzer-Schnittstelle zur Auswahl eines Business-Events und nach Auswahl ein Formular zur Angabe der
Business-Event-Parameter. Dieses Event wir dem Adapter zugesendet, welcher die Umsetzung auf die Schnittstellen
des Dienstes realsiert und ggf. ein Antwort-Business-Event generiert. Die Ergebnisse des
Antwort-Business-Events werden dann wieder durch das Adpater-Portlet in die Portalseite integriert.
Da die Business-Events vom Portal vorgegeben werden und somit für alle Dienste gleich sind,
kann die Bedienung und die Darstellung der Ergebnisse der verschiedenen Dienste immer
gleich erfolgen. Der Portalbenutzer erhät so eine einheitliche Benutzerschnittstelle
für verschiedene Dienste.
-
Integration des Dienstes über Dienst-Benutzerschnittstelle. Bei dieser Möglichkeit implementiert
der Dienstanbieter zusätzlich zum Dienstadapter mit Business-Events eine eigene Benutzerschnittstelle
für seinen Dienst. Hierdurch ist auch eine Unterstützung von speziellen Dienstfunktionen möglich,
welche nicht über vom Portal angebotenen Business-Events realisert werden können. Eine einheitliche
Benutzerschnittstelle für ähnliche Dienste kann so jedoch nicht erreicht werden. Die gleichzeitige
Implementierung eines Dienst-Adapters ermöglicht jedoch auch die Einbindung der auf Business-Events
abbildbaren Funktionen des Dienstes über eine einheitliche Benutzerschnittstelle.
-
Integration des Dienstes als Portlet. Hierbei muss für den Dienst ein eigenes Portlet implementiert werden,
welches beim Portal registriert wird. Hiervon ist jedoch abzuraten, da eine einheitliche Darstellung ähnlicher
Dienste nicht gegeben ist und durch das Fehlen des einheitlichen Dienstadapters eine Berücksichtigung
eines solchen Dienstes bei einer Dienstkomposition nicht möglich ist.
-
Integration des Dienstes über die Einbindung von Webseiten des Dienstanbieters. Hierbei wird durch
ein HTML-Filter-Portlet eine Webseite des Dienstes in die Portalseite des Benutzers eingebunden und kann
von dieser Seite aus benutzte werden. Der Vorteil dieser Methode ist die Integration in das Portal ohne weiteren
Implementationsaufwand. Ein grosser Nachteil ist jedoch die fehlende Möglichkeit die Darstellung
der Seite zu kontrollieren. Eine einheitliche Darstellung der Dienste und die Berücksichtigung dieses Dienstes
bei einer Dienstkomposition ist hierbei ebenfalls nicht möglich.
Komponenten für Beispieldienste
Im Rahmen des Prototyps des PublicationPORTALs wurden Komponenten für folgende Dienste
zur Suche von Literaturquellen implementiert. Die Dienste dienen der Demonstration der Funktionsfähigkeit
des PublicationPORTAL-Konzeptes.
-
Z39.50
Dient der Integration und Abfrage von verschiedenen Bibliotheks-Katalogen mit Z39.50-Schnittstelle.
-
Hermes Alertingdienst
Dient der Integration des Hermes Alerting Dienstes. Der Hermes Alerting Dienst benachrichtigt Benutzer per EMail
über Neuveröffentlichung zu angegebenen Themen.
-
Lehmanns Onlinebuchshop
Dient der Integration und Abfrage des Online-Katalogs der Lehmanns-Buchhandlung.
|