Projekt bei einem Versicherungsunternehmen
Mai 2007 – Oktober 2008
Aufgabenbeschreibung meiner durchgeführten Tätigkeiten
Der Auftraggeber, eines der weltweit führenden Kreditversicherungsunternehmen bietet seinen Lieferanten- wie auch Dienstleisterkunden einen Versicherungsschutz an, welches diese gegnüber dem Risiko einer unbezahlt bleibenden Forderung absichert. Herzstück aller Unternehmensaktivitäten, wie Kreditprüfung, Bonitätsbewertung oder Schadensforderung bildet dabei ein zentrales, als Content Management System (CMS) bezeichnetes Register, welches alle geschäfts-relevanten Informationen speichert und verwaltet. Als international tätiges Unternehmen sah sich der Auftraggeber mit dem Problem konfrontiert, dass der Zugriff auf das CMS sowie das Einspeisen neuer Informationen in das CMS nicht umfassend koordiniert und vereinheitlicht ist. Abhilfe schaffen sollte eine neu zu entwickelnde Web-basierten Software, die unter Verwendung einer serviceorientierten Architektur (SOA) einen einheitlichen und generischen Web-basierten Zugriff auf das CMS gewährleistet.
Der Begriff SOA bezeichnet ein abstraktes Konzept einer Software-Architektur, welche die Bereitstellung, die Suche und die Nutzbarkeit von Services über ein Netzwerk als zentrale Prämissen definiert. Die im WWW gängigerweise verwendete Technologie zur Umsetzung dieses abstrakten Konzeptes stellen Web Services dar. Die Abstraktion der den Web Services zugrunde liegenden Geschäftslogik erfolgt über festgelegte Schnittstellen, die auf standardisierten Metadaten-Formaten (XML-Artekfakte) basieren. Auf Basis dieses Formats sind Web Services somit selbstbschreibend, d.h. Nutzbarkeit, Anbindung und Leistungsprofil ist ein integraler Bestandteil der Web Service-Schnittstellen. Im praktischen Einsatz unterstützt ein Web Service die direkte Kommunikation mit anderen Softwares (sog. Service-Konsumenten) unter Verwendung XML-basierter Nachrichten durch den Austausch über internetbasierte systemtechnische Protokolle.
Meine Aufgaben innerhalb des Projekts definierten sich nun wie folgt:
| 1.) | Systementwurf der Web Service-Schnittstellen; | 2.) | Planung und Design eines Datenmodells und deren Überführung in ein Web Service-kompatibles XML Metadaten Schema; | 3.) | Metadaten-Beschreibung der Web Services auf Basis der Web Service Description Language nach dem Contract-First-Ansatz; | 4.) | Generierung und Implementierung von Web Service-Konsumenten auf Basis der Metadaten-Beschreibungen; | 5.) | Planung, Design und Entwicklung einer Web-basierten Software für den Zugriff auf das CMS unter Verwendung der in 4. realisierten Web Service-Konsumenten; |
1.) Systementwurf der Web Service-Schnittstellen
Zu meinen Aufgaben gehörte zunächst der Entwurf eines Systemkonzeptes. Unter Verwendung von standardisierten Entwurfsmethoden wie „Schnittstellenorientierung“ und „Modularität und Autonomie“ zerlegte ich die den abzubildenden Geschäftsprozessen zugrunde liegenden Zustände und Funktionen zum Zugriff auf das CMS in selbstständige Teilfunktionalitäten. Unter Verwendung des Hilfs- und Dienstprogammes Poseidon und der ihr zugrunde liegenden Unified Modelling Language (UML) modellierte ich die Teilfunktionalitäten in Form standardisierter Geschäftsvorfall (UseCase)-Diagramme.
2.) Planung sowie Datenmodell-Design und deren Überführung in
XML-Schema
Unter Verwendung des Hilfs- und Dienstprogramms Poseidon-UML modellierte ich zunächst eine konzeptionelle Sicht der beteiligten Geschäftsvorfall-Partner (Entitäten). Unter Verwendung von Entwurfsmustern wie Vererbung, abstrakte Klassen und dem Composite-Pattern beschrieb ich die Entitäten und die diesen zugrunde liegenden Beziehungen in Form von Klassen- bzw. Aktivitätsdiagrammen. Da die Datenübertragung zwischen Web Service und deren Konsumenten über XML-Dateiformate erfolgen sollte, überführte ich das konzeptionelle Datenmodell mittels der XML Schema Definition Language (XSD), einer standardisierten Strukturbeschreibungssprache für XML-Dokumente, in XML-Schemata. Aufgrund der Komplexität von XML-Schema und der Tatsache, dass die Deklaration von XML durch XML schnell unübersichtlich wirkt, setzte ich für die Erstellung der XML-Schema ein Hilfs- und Dienstprogramm ein (XML-Spy, Altova). Zur Überprüfung des Syntax und der Struktur dieser XML-Schema in Konformität mit den entsprechenden W3C-Empfehlungen verwendete ich ein Hilfs- und Dienstprogramm (Validome) zur Schema-Validierung.
3.) Web Services-Beschreibung nach dem Contract-First-Ansatz
Zur Beschreibung der vom Web Service angebotenen Funktionen, Daten, Datentypen und Austauschprotokolls zum Austausch von Nachrichten auf Basis von XML verwendete ich die standardisierte, plattform-, programmiersprachen- und protokollunabhängige Beschreibungssprache Web Service Description Language (WSDL). Unter Verwendung des graphischen Hilfs- und Dienstprogramms XML-Spy, Altova, spezifizierte ich die in 1. modellierten Operationen und Nachrichten, integrierte ich die in 2. erstellten XML-Schema und beschrieb die systemtechnischen Schnittstelleninformationen in Form der Netzwerkadressem, des Nachrichtenformats sowie der Binding-Informationen. Unter Verwendung des Hilfs-und Dienstprogramms Apache Ant erstellte ich schliesslich eine Scriptsoftware, mit deren Hilfe sich der Java-basierte, serverseitige Skeleton- und Databinding Programmcode im automatisierten Verfahren nach dem Contract-First-Ansatz aus den WSDL-Dateien generieren liess.
4.) Generierung und Implementierung von Web Service-Konsumenten
Auf Grundlage der in 3. erstellten Web Service Metadatenbeschreibungen und unter Verwendung des in 3. konzipierten Ant-Scripts generierte ich den für den Web Service-Konsumenten benötigten Stub- und Locator- Programmcode sowie eine Verzeichnisstruktur, gemäß dem in der WSDL-Datei eingestellten Namensraum. Zur eigentlichen Nutzung der durch die Web Services angebotenen Dienste erfolgte im weiteren Schritt die Implementierung des Web Service-Konsumenten. Um die Qualität der Interaktionen der Web Service-Konsumenten mit den Web Service zu überprüfen, erstellte ich automatisierte Testfälle, welche in Form parametrisierter Aufrufe die in 1. erarbeiteten CMS-Zugriffs-relevanten Geschäftsvorfälle logisch abbildeten. Für die Erstellung der automatisierten Teste setzte ich das Hilfs- und Dienstprogramms JUnit ein. Um eine adäquate und Schnittstellen-spezifische Service-Response-Struktur zu gewährleisten, erfolgte auf Serverseite eine Implementierung der Service-Schnittstellen in Form Beispieldaten-basierter, sog. Mock-Objekte.
5.) Planung, Design und Entwicklung einer Web-basierten Software
unter Verwendung der in 4. realisierten Web Service-Konsumenten
Meine Aufgabe umfasste das Design einer Benutzerschnittstelle für den zentralen Zugriff/Import von Dokumenten im CMS , einer eigenschaftsorientierten Suchfunktion für die das Dokument beschreibenden Metadaten, sowie der schliesslichen Implementierung in Form einer Web-basierten Software unter Einbindung der in 1.-4 realisierten Web Services und derer Konsumenten (im folgenden als Web Client bezeichnet).
Als Basis für das Design der Softwarearchitektur für den Web Client diente ein im Hause entwickelter Prototyp (Blueprint), welche einige grundlegende Architektur-Paradigmen wie Objekt- und Serviceorientierung sowie Modell-Basierung in abstrakter Form vordefinierte. Meine Aufgabe bestand nun darin, weitere Architektur-Paradigmen wie leichte Wartbarkeit, Erweiterungsfähigkeit und Wiederwerwendbarkeit in das Grunddesign hinzuzufügen. Zu diesem Zweck modellierte ich einen unter dem Architektur-Paradigma „Generischer Client“ bekannte Softwarestruktur in Form UML-basierter Aktivitäts- und Sequenzdiagramme (Die Erstellung der Diagramme erfolgte unter Zuhilfenahme des Hilfs- und Dienstprogramms Poseidon-UML). Basierend auf diesem Modell erfolgte schliesslich die Realisierung einer in sich autarken, generischen Softwarelösung, welche ihre Informationen ausschliesslich aus der über die Web Service-Schnittstellen zur Verfügung gestellte Geschäftslogik bezog. Die Implementierung des intrinsischen, ereignisbasierten Webflows sowie der graphischen Benutzeroberflächen erfolgte mit Hilfe des standardisierten Entwicklungs-Rahmenwerks Java Server Faces (JSF). Zur Gewährleistung der Konformität der graphischen Benutzerobfläche mit dem Architektur-Paradigma „Generischer Client“ bestand eine wesentliche Aufgabe meinerseits ausserdem in dem Design und der Neuentwicklung customisierter, JSF-basierter Software.
Zur Istaufnahme der fertiggestellten generischen WebClient-Software und zum Zwecke der Optimierung setzte ich das Hilfs- und Dienstprogramm openSTA ein, mit dessen Hilfe sich automatisierte Tests für die Messung von Zugriffs- und Antwortzeiten HTTP-basierter Webanwendungen modellieren lassen. Weiterhin dienten diese Tests der Analyse und Optimierung von nebenläufigen Prozessen und Threads. Im Zuge dieser automatisierten Testläufe wurden aufkommende Fehler priorisiert und kategorisiert und in einem Hilfs- und Dienstprogramm für Problem-Melde-Wesen (Bugzilla) erfasst. Nach erfolgter Korrektur wurden von mir Nach-Tests durchgeführt, bis schliesslich keine Fehler der Kategorie „Abnahmeverhindernd“ mehr vorhanden waren und somit meine Tätigkeit abgeschlossen werden konnte.