Aktuelles

Donnerstag, 29. September 2011

Service Portale als Integrationslayer

In vielen Betrieben steht heute eine Vielfalt von Applikationen im Einsatz, die jede einen Teil der geschäftlichen Prozesse abdeckt. Der Endkunde, sollte diese Stückelung jedoch nicht wahrnehmen, sondern alle Funktionen in einer für ihn logischen Gruppierung vorfinden. Um diese Brücke zu schlagen, muss ein Element geschaffen werden, das die verschiedenen Applikationen integriert und in einer übergreifenden Oberfläche verfügbar macht.


>> Newsletter Bericht als PDF runterladen


1. Die Herausforderung

In vielen Betrieben steht heute eine Vielfalt von Applikationen im Einsatz, die jede einen Teil der geschäftlichen Prozesse abdeckt. Diese Applikationen sind untereinander in der Regel über Batch-Jobs und Schnittstellen verbunden, bilden aber eine relativ lose Landschaft, in der die Grenzen zwischen den Applikationen häufig mehr durch die Geschichte als durch funktionale Logik bestimmt werden. Der Endkunde, der das Service Portal nutzt, sollte diese Stückelung jedoch nicht wahrnehmen, sondern alle Funktionen in einer für ihn logischen Gruppierung vorfinden. Um diese Brücke zu schlagen, muss ein Element geschaffen werden, das die verschiedenen Applikationen integriert und in einer übergreifenden Oberfläche verfügbar macht.


2. Lösungsansätze 

2.1. Service Orientierte Architektur 

Der in den letzten Jahren stark verfolgte SOA-Ansatz sieht vor, dass jede Applikation ihre Funktionen in der Form von Services, d.h. technischen Schnittstellen für andere Applikationen, anbietet. 


Eine neu zu erstellende Frontend-Applikation nutzt dann diese Services und stellt alle diese Funktionen dem Benutzer zur Verfügung. Diese Frontend-Applikation übernimmt auch alle übergreifenden Aufgaben wie Benutzerauthentifizierung, Navigation etc. 


Dieser Ansatz erlaubt eine klare Trennung der Verantwortlichkeiten und eliminiert die technologie-bezogenen Abhängigkeiten zwischen den Applikationen und dem Frontend, da die in der Regel verwendete Webservice-Technologie hier als allgegenwärtige Brücke fungiert. 


In der Praxis ist dieser Ansatz jedoch aufwändig, weil für jede Erweiterung oder Anpassung mehrere Teile angepasst werden müssen: die eigentliche Applikation anhand der neuen fachlichen Anforderungen; die Schnittstellendefinition (Vertrag zwischen den Systemen), sowie die Implementationen der Schnittstellen in Applikation und Frontend, um die Funktionalität für das Frontend verfügbar zu machen; schliesslich das Frontend selber, um eine Benutzerschnittstelle für die Funktion anzubieten. Einerseits ist der Aufwand recht hoch, weil viele Teile anzupassen sind, andererseits entstehen so auch planerische Abhängigkeiten, welche hinderlich sein können. 


Hinzu kommt, dass in diesem Ansatz das Frontend Abläufe und Funktionen aus allen Applikationen und Bereichen vereint und daher die Entwicklung des Frontends sehr viel Fachwissen aus allen betroffenen Bereichen und viel fachliche Koordinationen mit den Applikationen erfordert. Dies schränkt die Autonomie der Systeme effektiv ein. 



2.2.  Portal mit Reverse Proxy 

Im Unterschied zum SOA-Ansatz bieten die Applikationen in diesem Modell keine technische Schnittstelle für Umsysteme, sondern direkt eine Benutzerschnittstelle für Endbenutzer an. Somit ist die gesamte fachliche Verantwortung bei der Applikation, was bezüglich Knowhow-Verteilung und Flexibilität in der Weiterentwicklung eine Erleicherung darstellt. 


Das vorgelagerte Portal übernimmt die nicht applikations-spezifischen Aufgaben wie z.B. die Authentifizierung des Benutzers sowie applikations-übergreifende Aufgaben wie das Session-Handling, die Verwaltung der Navigation und das Layout. 


In diesem Fall werden die Anfragen vom Benutzer/Browser zunächst durch das Portal entgegengenommen und analysiert und anschliessend an die zuständige Applikation weitergeleitet. Die gesamte fachliche Verarbeitung erfolgt in der Applikation, welche dann auch die Antwort (in Form einer gewöhnlichen HTML-Seite) aufbereitet. Diese Antwort wird dann wiederum vom Portal analysiert und bei Bedarf ergänzt oder angepasst und anschliessend an den Browser zurückgegeben. 



Dieser Ansatz vereint den für die Weiterentwicklung wichtigen Aspekt der Autonomie der Systeme mit einer integrierten, flexiblen Benutzerführung für den Endkunden und einer sehr klaren Aufteilung der Verantwortlichkeiten zwischen den Systemen. 


3. Referenz-Implementation: TaxMe-Portal der Steuerverwaltung des Kantons Bern

Die oben skizzierte Portal-Architektur wurde im TaxMe-Portal der Steuerverwaltung des Kantons Bern implementiert und hat in den letzten Jahren die erwarteten Vorteile vollumfänglich zur Geltung gebracht. Die folgenden echten Szenarien zeigen, wie sich dies in der Praxis geäussert hat. 


3.1.  Neue Applikationen und Funktionen 

In den letzten 3 Jahren wurden mehrere neue Applikationen und zahlreiche neue Funktionen in bestehenden Applikationen in das Portal eingeführt. Dazu war in keinem Fall eine Codeanpassung am Portal notwendig. Vielmehr konnten die Applikationen anhand ihrer jeweiligen Release-Pläne realisiert oder weiterentwickelt werden; die Einbindung der neuen Funktionen in das Portal war dann lediglich eine Konfigurationsanpassung, welche die Systemverantwortlichen selber vornehmen konnten. 


Gegenüber dem früher praktizierten SOA-Ansatz konnte die Durchlaufzeit für solche Anpassungen deutlich reduziert werden, da jeweils nur noch eine Applikation ohne Abhängigkeiten zu berücksichtigen und zu planen war. 


3.2.  Neuer Anmeldemechanismus axsionics Internet Passport 

Als Alternative zur klassischen Codeliste kann für die Anmeldung am TaxMe-Portal seit einiger Zeit auch das axsionics Internet Passwort verwendet werden. Die entsprechenden Erweiterungen wurden am Portal und dem zuständigen Backend-Login-Service vorgenommen; keine der Applikationen musste für diese neue Möglichkeit angepasst werden. 


3.3.  Aufschaltung von Erklärungen zu einer Funktion 

Nach der Produktivschaltung einer neuen Funktion zeigt sich eine Häufung von Supportanfragen, weil eine Formular für viele Endkunden nicht verständlich ist. Durch die (wiederum rein konfigurative) Anpassung der Navigation im Portal wird auf die betroffene Funktionsseite ein Hinweisblock (aus dem CMS) eingebunden, welcher die Unklarheit erwähnt und auf weitere Erläuterungen (immer noch im CMS) verweist. Die CMS-Seite mit den Erläuterungen wiederum wird mit der eigentlichen Funktion verlinkt. 


Durch die Möglichkeit, die Benutzerführung so ohne Anpassungen in der Fachapplikation und damit ohne Abhängigkeit von einem Release flexibel anzupassen, kann das Volumen von Supportanfragen (und damit auch die entsprechenden Kosten) kurzfristig reduziert werden. Auf den nächsten ordentlichen Release hin kann die Applikation selbstverständlich optimiert werden, so dass die hinzugefügten Hinweise wieder entfernt werden können. 


4. Architektur 

4.1. Authentifizierung im Portal 

Die Authentifizierung der Benutzer (d.h. die Abklärung, wer einen Aufruf ausführt) wird vom Portal gesteuert. 


Dazu nutzt das Portal sogenannte Security Token Services (STS), welche jeweils für einen bestimmten Anmeldemechanismus die angegebenen Daten prüfen und ein signiertes Token ausstellen, das die erfolgreiche Anmeldung bestätigt. Die Benutzerschnittstelle (Web-Interface) kann entweder direkt im STS oder aber im Portal realisiert werden (im letzteren Fall erfolgt die Anbindung des STS gemäss SOA über Webservices). 


Durch die modulare Architektur kann ein einziges Portal verschiedene Arten von Benutzern und Anmeldeverfahren unterstützen. Insbesondere interessant ist dies z.B. im Zusammenhang mit Anmeldemechanismen wie der SuisseID oder axsionics Internet Passport, da die entsprechende Komplexität ausschliesslich im Portal bzw. den relevanten STS berücksichtigt werden muss und nicht in den Fachapplikationen. 


Das Portal initialisiert dann mit dem Token, das sich aus dem Anmeldevorgang ergibt, die neue Benutzersitzung. 


4.2. Session-Handling inklusive Navigation 

Das Portal führt für jeden angemeldeten Benutzer eine Sitzung mit allen relevanten Daten. Am Anfang der Sitzung werden die Applikationen angefragt, welche Funktionen sie für diesen Benutzer anbieten. So können die Applikationen für verschiedene Arten von Benutzern verschiedene Funktionen anbieten; welche Kriterien sie dafür verwenden, steht ihnen völlig frei. 


Das Portal stellt dann anhand der verfügbaren Funktionen und der konfigurierten Sitemap für den Benutzer eine persönliche Navigation zusammen. Diese Navigation dient dann zum Aufbau von Menüs, Krümelnavigation etc., aber auch für die Verlinkung zwischen Applikationen. 


Die so zusammengestellte persönliche Navigation enthält typischerweise eine Mischung aus statischen Seiten mit Erklärungen (jeweils aus dem CMS stammend) und von Funktions-Seiten aus Applikationen. Der Aufbau der Sitemap und damit die Anordnung der verschiedenen Arten von Seiten in der Navigation ist reine Konfiguration im Portal und somit von den Applikationen unabhängig. Dies schafft eine hohe Flexibilität bei Anpassungen. 


Die Zusammenstellung der Seiten in der Navigation erfolgt aus Prozess-Sicht und fachlichen Überlegungen; sie soll den für den Kunden logischen Ablauf abbilden und nicht, welche Fachapplikation eine bestimmte Funktion anbietet. Entsprechend oft sind benachbarte Navigationspunkte Funktionen verschiedener Applikationen und gleichzeitig die Funktionen einer einzelnen Applikation in verschiedenen Bereichen der Sitemap verstreut. 




4.3.  Reverse Proxy mit Anreicherung 

Jeder Applikation wird ein Pfad in der Url zugewiesen, z.B. www.portal.ch/app1/xxxx geht an app1. Alle HTTP-Requests auf eine solche Url werden dann an die Applikation weitergeleitet, wobei das Portal die Daten aus der Benutzersitzung, insbesondere das Anmelde-Token, sofern der Benutzer angemeldet ist, als HTTP-Header hinzufügt. So kann die Applikation diese Informationen nutzen. 


Zudem verwaltet das Portal Cookies, so dass die Applikation alle Möglichkeiten, die sie mit einem normalen Browser ohne das zwischengelagerte Portal hätte, auch nutzen kann. Cookies der Applikationen können sitzungsbezogen sein oder im Benutzerprofil persistiert werden. Jede Applikation sieht nur ihre eigenen Cookies, so dass hier keine Konflikte entstehen können. 


Die Applikation kann die von ihr bereitgestellte HTTP-Antwort mit einem HTTP-Header kennzeichnen, um das Portal zu veranlassen, die Seiten in das Portal-Layout zu überführen. Dazu entnimmt das Portal dann ein bestimmtes div aus dem HTML-Body und fügt dieses in das Portal-Layout ein, bevor es die finale Antwort an den Browser ausliefert. Ohne entsprechenden Header werden die Antworten 1:1 weitergeleitet, so dass auch AJAX-Szenarien, Binär-Antworten etc. möglich sind. 


4.4. Branding, Navigation, Linking 

Normale Inhaltsseiten, die mit dem entsprechenden HTTP-Header gekennzeichnet sind, werden vom Portal in eine einheitliche Darstellung gebracht: Das Portal liefert Header, Navigation, Footer sowie entsprechende CSS-Stylesheets etc., so dass die Darstellung über die Applikationen hinweg einheitlich ist (dies setzt selbstverständlich voraus, dass alle Applikationen sich an einem einheitlichen Styleguide orientieren und die entsprechenden HTML-Konstrukte und CSS-Klassen verwenden). 


Zudem wird die Navigation dargestellt, wobei der aktive Punkt hervorgehoben wird. Die Applikation muss daher nicht wissen, wo die aktive Funktion in der Navigation untergebracht ist. Benachbarte Navigationspunkte können von verschiedenen Applikationen stammen und/oder für verschiedene Benutzer verschieden sein. 


4.5. Verknüpfung und Zusammenführung von Applikationen 

Da das Portal die HTML-Antwort der Applikation vor der Auslieferung an den Browser verarbeitet, kann es darin enthaltene Platzhalter ersetzen. Typische Anwendungen für diese Möglichkeit sind applikationsübergreifende Links (definiert durch abstrakte Funktions-IDs, welche das Portal durch echte Urls ersetzt) sowie sogenannte Portlets. 


Portlets erlauben es, Inhalte aus verschiedenen Applikationen in einer Seite darzustellen. Dazu setzt die Applikation, welche den Request für die aktuelle Seite verarbeitet hat, Platzhalter mit spezifischen CSS-Klassen und Markierungen ein. Das Portal erzeugt daraus jeweils einen weiteren Request an die darin referenzierte Applikation und ersetzt den Platzhalter durch die von dieser anderen Applikation gelieferte Antwort. Auf einer Seite können durchaus mehrere Portlets vorkommen und diese können Daten aus verschiedenen Applikationen beziehen. 


Insbesondere in Kombination mit der Einbindung des CMS als Applikation schafft diese technische Möglichkeit eine grosse Flexibilität: Applikationen können z.B. Platzhalter für Erläuterungstexte anbieten, die dann im CMS gepflegt werden; umgekehrt können CMS-Seiten statt nur Erläuterungen auch direkt aktuelle Daten aus Applikationen einbinden und so eine flüssigere Benutzerführung ermöglichen. 


5. Zusammenfassung 

Der Einsatz eines Portals mit Reverse Proxy Technologie stellt eine hoch attraktive Kombination von integrierter Benutzerführung und Unabhängigkeit der Applikationen dar. Der ausgeprochen modulare Aufbau einer solchen Lösung schafft sowohl bezüglich Weiterentwicklung als auch bezüglich Deployment maximale Flexibilität und stellt damit eine zukunftsgerichtete, solide Basis dar. 


Selbstverständlich ist nie eine einzelne technische Lösung für jede Aufgabenstellung geeignet – genau deshalb bietet GARAIO eine ganze Palette von Lösungsansätzen und -technologien an, z.B. auch auf der Basis von Microsoft SharePoint. Gerne sprechen wir auch mit Ihnen über Ihre Bedürfnisse im Bereich Service Portale und über mögliche Lösungen.   


Ihre Kontaktperson:
   

Leo von Wyss

Senior Consultant, Partner


<< zurück zum Newsletter




Facebook Twitter E-Mail Print