Vertriebsanwendung: Java statt Browser

22.05.2007 von Herrmann Ballé
Die Gothaer Versicherungen benötigten ein Frontend für ihre unabhängigen Agenturen, das auch vorhandene Programme integrieren konnte und offline nutzbar war. Die Systemwahl fiel auf die "Eclipse Rich Client Platform".

Seit einigen Jahren führt ein Paradigmenwechsel von Client-Server-Architekturen hin zu Web- und Thin-Clients. Die Verteilung und Wartung, speziell auch Abhängigkeiten von bereits installierter Software, machen Client-Server-Applikationen auf längere Sicht kostspielig. Daher wurde mit dem Browser häufig einem sehr einfachen Client der Vorzug gegeben, obwohl Abstriche bei Visualisierung und Bedienbarkeit der Benutzeroberfläche in Kauf genommen werden mussten. Dem Anwender gewohnte Aktionen wie Doppelklick oder Drag and Drop von Inhalten sind im Browser zumeist nicht vorgesehen.

Im Rahmen des Open-Source-Projekts "Eclipse" entstand mit der Rich Client Platform (RCP) ein Framework für die Entwicklung benutzerfreundlicher, funktionsreicher Geschäftsanwendungen. Die komponentenbasierende Architektur dieser Plattform behebt viele Probleme von Client-Server-Software, indem sie automatisierte Deployment- und Update-Funktionen zur Verfügung stellt. Die Anwendung läuft auf einer eigenen, schlanken Ablaufumgebung und aktualisiert automatisch ihre Komponenten.

Im Gegensatz zum Browser ermöglicht die Rich Client Platform die Integration von lokal existierenden Anwendungen und Datenbanken. Gleichzeitig ist es möglich, sehr mächtige und zwischen mehreren Betriebssystemen portable Oberflächen zu erstellen, deren Funktionsumfang weit über den eines Browsers hinausgeht.

Offline-Lösung für Außendienstler

Unter dem Namen "Go for you" haben die Gothaer Versicherungen ein Projekt begonnen, um den Agenten im Kundengespräch mit einer umfassenden Beratungssoftware zu unterstützen. Der selbständige Außendienst der Assekuranz ist mit Laptops ausgestattet, auf denen viele der für den Vertrieb von Versicherungsprodukten erforderlichen Anwendungen installiert sind. Andere Funktionen, beispielsweise zur Bestandsauskunft in Echtzeit, finden die Agenturen dagegen im Extranet der Gothaer. Als Alternativen kamen daher sowohl eine Web-basierende Online-Lösung als auch ein reiner Rich-Client-Ansatz in Frage. Gegen die Web-Variante sprach die nicht überall verfügbare und verlässliche Online-Verbindung. Ausschlaggebend für die Entscheidung gegen den Browser war jedoch die Notwendigkeit, lokal installierte Komponenten einzubinden.

Frontend auf Basis der Eclipse Rich Client Platform integriert auch bestehende Altanwendungen.
Foto: Gothaer

Dazu gehörte neben einer Reihe kleiner Anwendungen, beispielsweise zur Gebäudewertermittlung, sowie in C vorliegenden Bibliotheken zur Tarifberechnung vor allem eine in "Visual Foxpro" entwickelte Bestandsverwaltung. Diese sollte angebunden werden, um Kunden- und Vertragsdaten in der Beratung nutzen zu können und die Ergebnisse zu dokumentieren. Mit Eclipse RCP ist es möglich, diese Komponenten recht einfach über standardisierte Schnittstellen wie das Java Native Interface (JNI) oder Java-Com-Bridge (Jacob) anzubinden. Durch das Plug-in-Konzept von Eclipse RCP lassen sich Komponenten leicht kapseln, dadurch einfacher warten und später gegebenenfalls gegen andere austauschen. Obwohl die Gothaer für ihren Außendienst grundsätzlich Online-Anwendungen bevorzugt, entschied sie sich hier für eine Offline-fähige Lösung auf Basis von Eclipse RCP.

Projektablauf

Nach einer kurzen Startphase wurde parallel zur Erstellung der Fachkonzepte innerhalb von sechs Wochen ein technischer Durchstich erreicht, der die generelle Eignung der Plattform bewies. Der Prototyp wurde einer externen technischen Prüfung unterzogen, um die Anwendungsarchitektur zu härten. Im Anschluss wurde mit der Entwicklung des Rahmens begonnen, der die technischen Services zur Verfügung stellt. Mit dem Vorliegen der ersten fachlichen Teilkonzepte konnte die Granularität und Ausgestaltung dieser Services entworfen werden. Die versicherungsfachlichen Komponenten wurden dann parallel über alle Sparten erstellt.

Bereits vier Monate nach Projektstart existierte als Ergebnis der agilen Entwicklung ein funktionsfähiger Prototyp, welcher anschließend in einem wöchentlichen Zyklus sukzessive erweitert wurde. Der volle Funktionsumfang von "Go for you" war Mitte Mai implementiert, woran sich eine sechswöchige Testphase anschloss. Der ursprünglich geplante Termin 1. Juli 2006 wurde exakt eingehalten.

Steckbrief

Projektart: Die Gothaer Versicherungen statten ihren selbständigen Außendienst mit einer neuen Beratungssoftware für die Sparten Sach, Leben und Kranken aus. Auf diese Weise können die Kunden ganzheitlich beraten und damit Cross-Selling-Potenziale eröffnet werden. Gleichzeitig erfüllt die Anwendung durch Dokumentation des Beratungsergebnisses bereits die Anforderungen der neuen EU-Vermittlerrichtlinie.

Branche: Versicherungen

Zeitrahmen: Projektstart am 1. Oktober 2005, Beginn der Entwicklung 1. Dezember 2006, Pilotbetrieb seit dem 1. Juli 2006

Kunde: Der Gothaer Versicherungskonzern in Köln ist ein Versicherungsverein auf Gegenseitigkeit mit 3,5 Millionen Mitgliedern und 6000 Mitarbeitern in ganz Deutschland. Rund 1700 selbständige Agenturen bieten bundes-weit Beratung und Service.

Dienstleister: IDG, der IT-Dienstleister der Gothaer Versicherungen, hat die auf Eclipse RCP basierende Anwendung gemeinsam mit dem Kölner Softwarehaus Timetoact erstellt. Zusätzlich wurden zeitweise externe Teams für die Integration bestehender Anwendungen hinzugezogen, so dass parallel bis zu 20 Entwickler tätig waren.

Aufteilung in Komponenten

Schon zu Beginn des Projekts war klar, dass die Lieferanten von Komponenten ihre Bausteine in den Client integrieren müssen. Hier konnte jedoch kein explizites RCP-Wissen vorausgesetzt werden. Die Architektur wurde daher so gewählt, dass die fachlichen Komponenten in Plug-ins gekapselt waren, technische und grafische Funktionen dagegen in separaten Service-Plug-ins konzentriert wurden. Weiterhin wurden die Schnittstellen als Extension Points spezifiziert und den fachlichen Komponenten zur Verfügung gestellt. Auf diese Weise konnten sich die externen Partner auf die Modifikation und Erweiterung ihrer Fachkomponenten innerhalb ihres Plug-ins beschränken, ohne sich intensiv in die RCP-Entwicklung einarbeiten zu müssen.

Geschwindigkeit der Gesamtanwendung

Die existierende Bestandsverwaltung sollte in Go for you eingebunden werden. Um das Beratungsgespräch nicht durch Wartezeiten zu behindern, musste eines der Nebenziele eine gute Ablaufgeschwindigkeit der Gesamtanwendung sein. Deshalb wurde entschieden, alle Komponenten direkt beim Anwendungsstart zu initialisieren. Aufgrund der guten Erfahrungen mit der Leistungsfähigkeit der Plattform konnte davon jedoch später abgewichen werden. Einzelne Module brauchen seither erst bei Bedarf nachgeladen zu werden ("Lazy Loading").

Eine weitere Entscheidung betraf das in Eclipse häufig genutzte Observer Pattern. Danach können sich beliebig viele Module (Observer) an einem anderen Modul (Observable) anmelden und erhalten im Fall eines Ereignisses eine Benachrichtigung. Dabei kann in einem einfachen Beispiel um einen Button handelt, der bei Mausklick eine Statusänderung miiteilt. Ebenso ist es aber möglich, neben Maus- und Tastatureingaben auch Daten- oder Statusänderungen mit Ereignissen zu versehen, wodurch sich eine Vielzahl von Benachrichtigungen auslösen lässt. Daher wurde das Observer Pattern zunächst möglichst sparsam verwendet. Es zeigte sich jedoch, dass die Verwendung des Entwurfsmusters zum einen für die möglichst lose Kopplung der Module essenziell ist und zum anderen nur marginale Auswirkungen auf die Geschwindigkeit hat.

Gewichtiges Hilfesystem

Um den Agenten optimal im Vertriebsgespräch zu unterstützen, können zu allen Fachthemen so genannte Infopool-Seiten aufgerufen werden, die der Erläuterung von Versicherungsthemen oder zur Sensibilisierung für Risiken dienen. Das Eclipse-eigene Hilfesystem konnte dabei nur teilweise genutzt werden, da für Anzeige und Suche von Inhalten ein eigener Applikations-Server lokal installiert sein muss. Dies kam aufgrund des damit verbundenen Ressourcenverbrauchs und möglicher Konflikte mit lokalen Sicherheitseinstellungen, etwa in Personal Firewalls, nicht in Frage.

Versicherungsanwendung "Go for you".

Stattdessen konnte die Pflege der Inhalte an den Fachbereich delegiert werden, der mit Hilfe des im Konzern eingesetzten Web-Content-Management-Systems HTML-Seiten erzeugt. Diese werden täglich vom System in die Entwicklungsumgebung übertragen und in den automatischen Build-Prozess übernommen. Die Anzeige in Go for you erfolgt über den in einer eigenen Perspektive eingebundenen Browser, so dass auch Medien wie Grafiken, Dateianhänge und Flash-Filme angeboten darstellbar sind. Über eine einfache Referenztabelle, mit der ein technischer Schlüssel auf eine URL abgebildet wird, stehen kontextsensitiv Informationen zur Verfügung. Sie lassen sich wahlweise über Info-Buttons oder auch mit Hilfe von Tastaturbefehlen aufrufen.

Visualisierung von Versicherungsdaten

Die in der Beratung gewonnenen Ergebnisse werden mit Go for you grafisch und textlich aufgearbeitet und können dem Kunden als PDF präsentiert werden. Hierzu wurden mit Hilfe des Eclipse Graphical Editing Framework (GEF) grafische und teilweise auch interaktive Elemente integriert, um beispielsweise Versorgungslücken zu visualisieren. Dazu erstellt es alle Grafiken als skalierbare Vektorgrafiken (SVG), die bei geringer Dateigröße auch im Druck eine sehr gute Qualität bieten. Der Export nach PDF bewerkstelligt eine eigene, auf drei Klassenbibliotheken beruhende Lösung.

Rich Server gefragt

Auch wenn das Projekt seine Ziele erreicht hat, bleibt für die Zukunft noch einiges zu tun. So ist neben dem fachlichen Thema Vermögensaufbau geplant, die Anwendung auch für weitere Vertriebskanäle nutzbar zu machen. Um Komponenten jedoch auch in einem reinen Online-Szenario nutzen zu können, muss die gegenwärtige Entwicklung unter dem Schlagwort Rich Server Platform genau beobachtet werden. Durch die im Rahmen von Equinox geplante Bereitstellung eines OSGI-Containers auf dem Application-Server soll ermöglicht werden, Plugins auch auf dem Server einzusetzen und so Funktionen sowohl in Offline- als auch in Online-Szenarien zu verwenden. Die bisherigen Erfahrungen mit Eclipse lassen hier ebenfalls einiges erwarten. (ws)

Eclipse Rich Client Platform

Eclipse wurde ursprünglich von IBM als Programmierumgebung entwickelt und im Jahr 2001 an das gleichnamige Open-Source-Projekt übergeben. Über 120 Softwarehersteller unterstützen Eclipse als kommerzielle Sponsoren, darunter Branchengrößen wie SAP, Oracle, Bea, Macromedia und natürlich IBM. Sie nutzen die Plattform in ihren eigenen Produkten und tragen zu ihrer Weiterentwicklung bei. Im Rahmen der Community arbeiten aktuell neun Top-Level-Projekte, neben dem Kernprodukt beispielsweise auch "Web Tools" oder "Business Intelligence and Reporting Tools" (Birt).

Bis Version 2.1 war das Designziel von Eclipse ausschließlich, eine performante und leicht erweiterbare Entwicklungsumgebung auf Basis von Java zu schaffen. Diese Anforderungen führten zu einem strikt komponentenorientierten Programmiermodell, welches vorsieht, dass eine schlanke Laufzeitumgebung als erweiterbarer Anwendungskern fungiert. Alle Funktionalitäten setzen in Form von in sich abgeschlossenen Komponenten – so genannten Plug-ins - auf diesem Kern auf.

Seit Erscheinen der Version 2.1 war die Entwicklergemeinde bestrebt, das Komponentenmodell von Eclipse auch für eigene Applikationen zu nutzen. So kam es mit Version 3 durch ein umfangreiches Redesign zur Grundlage dessen, was heute als Eclipse Rich Client Platform (RCP) bezeichnet wird. Seitdem verfügt Eclipse über Programmierschnittstellen, die es ermöglichen, die Laufzeitumgebung nach eigenem Bedarf zu nutzen und zu erweitern. Neben dem als Equinox bezeichneten Kern, einer Implementierung der OSGi R4 Specification, beinhaltet RCP Komponenten für Suche, Hilfe und Update.

Die Oberfläche von RCP-Anwendungen wird mit dem Standard Widget Toolkit (SWT) und JFace geschrieben. Dabei werden User-Interface-Elemente und Controls des Betriebssystems verwendet. Dies hat neben einer im Vergleich zu Swing besseren Performance auch den Vorteil, dass sich die Anwendung an das Aussehen des jeweiligen Betriebssystems anpasst.