Die folgende Situation ist sowohl Kunden als auch Entwicklern nur allzu bekannt: Über Jahre haben sich in der kundeneigenen IT-Landschaft "Insellösungen" gebildet, mal wurde hier schnell eine Webapplikation entwickelt und mal dort ein Excel-Sheet für die Zeiterfassung gestrickt usw. Mit steigendem Umfang der Insellösungen steigt in der Regel auch das Verlangen nach Homogenität, Gedanken à la "wäre es nicht schön, nur noch eine zentrale Applikation warten (und bezahlen!) zu müssen?" werden wach, und spätestens wenn das Budget der IT-Abteilung mal wieder höher ausfällt, steht fest:
Ein Portal muss her!
Portale versprechen ein hohes Maß an Integration, einmal eingeloggt kann der Benutzer auf sämtliche Applikationen innerhalb des Portals, die sog. Portlets, zugreifen. Die Portlets bilden inhaltlich die zuvor eingesetzten Insellösungen ab, somit sind alle Applikationen unter einem Dach und der Kunde ist glücklich – ein schöner Seifenblasentraum. In den vergangenen Jahren musste festgestellt werden, dass Portaltechnologien in vielen Bereichen mit Vorteilen glänzen, allerdings auch gewisse Nachteile mit sich bringen. So ist das oben dargestellte Kundenszenario zwar in der Theorie mittels Portaltechnolgie realisierbar, in der Praxis wird jedoch schnell deutlich, dass der Integrationsaspekt bei Portalen für existente Applikationen sehr gering sein kann und es im Einzelfall schneller ist, die zu integrierende Applikation im Portalkontext neu zu erstellen. Zwei Ursachen sind für den Mangel an Integrationsmöglichkeiten zu benennen:
- Applikationen, die als "Insellösung" erstellt wurden, bieten oftmals keine saubere MVC-Trennung, sondern repräsentieren einen "Brei", bei dem sich die Businesslogik schwer bis gar nicht extrahieren lässt.
- Portal-Frameworks sind starr, sprich: Wird ein Pageflow oder Ähnliches in einem Portal erstellt und mit Portalkomponenten gefüllt – prima! Soll der Pageflow allerdings mit externen bereits existierenden Komponenten gefüllt werden, kann sich dies als äußerst schwierig entpuppen.
AJAX als Hilfe!?
An dieser Stelle wollen wir einen Blick auf AJAX werfen und Parallelen zu Portalen identifizieren, um die Frage zu beantworten: Bietet AJAX uns auch in diesem Bereich interessante Lösungsmöglichkeiten? Prinzipiell basiert der AJAX-Ansatz darauf, jederzeit Daten asynchron zum Server zu übertragen - welche Daten übertragen werden (z.B. lediglich der Inhalt eines Textfeldes), wird vom Entwickler bestimmt. Wird das HTML-Layout einer Webseite so entwickelt, dass diese unterschiedliche Bereiche enthält (zu vergleichen mit den Portlets), so können die einzelnen Bereiche mittels AJAX als autarke Einheiten programmiert werden. Gibt der User in einem Bereich der Webseite den Namen ein und betätigt einen Button innerhalb des Bereichs, so wird lediglich die Information "Name = Meyer" mittels XMLHttpRequest zum Server übertragen. Die Antwort des Webservers, die XMLHttpResponse, beeinflusst dann ebenfalls nur den entsprechenden Bereich der Webseite, der Rest der Seite bleibt stabil im Browser stehen - fertig ist das AJAX-Portal! Natürlich ist es äußerst mühsam und zeitaufwendig, ein komplexes Webportal so von Hand zu erstellen, ganz zu schweigen davon dass Single-Sign-On etc. an dieser Stelle noch gar nicht berücksichtigt wurde.
Hilfe durch Frameworks
Größte Stärke eines AJAX-Portals ist somit die Integration bestehender Applikationen. Verfügt die zu integrierende Applikation über eine entsprechende Schnittstelle zur GUI-Anbindung, so kann die Applikation relativ schnell und einfach integriert werden - und innerhalb des GUI werden natürlich peppige und performante AJAX-Bausteine verwendet, die das Herz eines jeden Entwicklers und Kunden höher schlagen lassen. Bei der Portalentwicklung mit AJAX-Frameworks sind nahezu alle Frameworks "GUI-driven" und bieten meist (noch!) keine Unterstützung für Pageflows sowie Single Sign-on, diese müssen vom Entwickler selbst implementiert werden. Bietet das eingesetzte AJAX-Framework allerdings eine einfach zu implementierende Java-Schnittstelle, so wird man schnell feststellen, dass es kein Hexenwerk ist Single-Sign-on sowie die Pageflow-Logik auf Java-Ebene selbstständig zu entwickeln - den meisten Java Entwicklern macht das sogar Spaß ;-)!
Also?
Zusammenfassend kann gesagt werden: AJAX bietet uns auch im Bereich der Portalentwicklung interessante Lösungsmöglichkeiten und unabhängig davon, ob eine Portalneuentwicklung oder ein Portalintegrationsprojekt ansteht, sollte in jedem Falle auch der AJAX-Ansatz in die Überlegungen einbezogen werden; früher oder später werden Kunden nicht mehr nach AJAX-Applikationen fragen - sie werden es ganz einfach erwarten! - Florian Müller (Cambridge Technology Partners)
Florian Müller arbeitet als Consultant für die Firma Cambridge Technology Partners, Schweiz. Sowohl beruflich als auch privat gilt sein Hauptinteresse der Entwicklung von Webapplikationen basierend auf dem AJAX-Ansatz.

























Kommentare