SOA Fact-Sheet

Getrieben von ITIL, Service Management und Model Driven Software Engineering bieten wir Ihnen die Umsetzbarkeit von Web- und anderen Services - mehrfach erfolgreich erprobt!

Management Summary

Bereits vor Jahren ist uns bewusst geworden, dass eine Service Orientierte Architektur im Fokus hat, was ITIL seit Jahrzehnten kennt: "Services". Auch wenn das auf den ersten Blick nicht besonders scheint, so ist die Umsetzung davon doch etwas aufwendiger.
Dieses Bewusstsein hat uns dazu bewogen, wesentliche Aspekte dieser Best-Practices aus dem Service Management - gerade in Bezug auf Service Design und Service Governance - in eine moderne und betreibbare SOA zu übernehmen. Zusätzlich kombinieren wir diese hervorragende Symbiose mit unseren Erfahrungen aus dem Model Driven Software Engineering, um so zu erreichen, was wir schon lange suchen: die Möglichkeit, wichtiges Wissen einfach und schnell in verschiedene technologische, organisatorische und geschäftskritische Umfelder zu übertragen. 

Vorteile und Nutzen

 In aller Kürze und nochmals zusammengefasst hier die Vorteile unseres Vorgehens:

  • Während die eigentliche Implementation des Services stattfindet, können die Servicenutzer parallel mit Ihren Anpassungen beginnen.
  • Bereits zur Entwicklungszeit existiert eine gültige Dokumentation.
  • Änderung an der Serviceschnittstelle können schnell und fehlerfrei vollzogen werden.
  • Sollte es erforderlich sein, einmal die Technologie zu wechseln, Fehler zu beseitigen oder nichtfunktionale Aspekte hinzuzufügen, so werden die Generatoren angepasst - der Rest funktioniert nach wie vor einwandfrei.

Technisches Konzept

In einem beliebigen CASE Tool werden die Services designed: Service-Klassen und deren Methoden stehen dabei im Zentrum und, um eine bessere Wartbarkeit zu ermöglichen, werden sämtliche Aufrufparameter als Transfer-Objekt-Hierarchien erstellt, welche sich sehr leicht verändern lassen, und trotzdem eine grosse Stabilität bieten.

Services verstehen wir dabei als "Domäne": einem Bereich basierend auf eigenständigem Geschäftsvokabular, welches mehrere Parteien befähigt, miteinander in einer gemeinsamen Sprache zu kommunizieren. Dieses Glossar isolieren wir zur besseren Wiederverwendung in einer eigenen Bibliothek, welche aber eng an den Service gekoppelt ist.
Sind die Services erst einmal erstellt, werden Sie anschliessend exportiert und von unseren Generatoren in Empfang genommen: es werden die Quellcodes für sämtliche Service-Bausteine erzeugt. Dabei bietet sich Platz nicht nur für java-basierte Implementationen von Web-Services, sondern auch REST oder ähnlichen Alternativen. Zudem werden Proxy-Bibliotheken geschaffen, welche einen typsicheren Zugriff auf die Services erlauben. In diesem Zusammenhang sind weiteren Umsetzungsvarianten keine Grenzen gesetzt, sei es die Erschliessung mobiler Dienste oder alternativer Service-Frameworks.

 

Der Quellcode wird dank der ebenfalls generierten Skripte auch sofort in ausführbaren Java Bytecode übersetzt und automatisch auf einem Entwicklungsserver bereitgestellt.

 

In Tat und Wahrheit sind es dabei nicht nur ein, sondern immer zwei Implementationen der Services, welche wir ausliefern: die eigentliche Umsetzung (welche natürlich noch nichts "kann") und eine Mockup-Variante, welche bereits zur Entwicklungszeit, mittels Excel-Dateien "gefüttert", Testdaten bereitstellen kann. Auf diese Weise ist der parallelen Entwicklung keine Grenze mehr gesetzt. Zudem ist es wesentlich besser, frühzeitig mit Nutzern auf Basis konkreter Schnittstellen diskutieren und deren Integrationsfähigkeit austesten zu können. 

Technik übersetzt

Zuerst wird geredet, "gemalt", diskutiert, gezankt und geeinigt. Eine Stunde später ist ein lauffähiger Service bereitgestellt, dem man lediglich noch mittels Testdaten "Leben einhauchen" muss - und schon können die Folgearbeiten auf einer soliden Basis erfolgen. 

Technologische Basis

Als CASE-Tool nutzen wir derzeit Visual Paradigm. Um eine schnelle und fehlerfreie Erstellung der Services um deren Bestandteile zu ermöglichen, haben wir zusätzlich ein Plugin entwickelt, welches kontextsensitiv Unterstützung leistet.
Mittels openArchitectureWare übersetzen wir den exportierten UML2 Extrakt in compile-, build- und lauffähigen Java Quellcode auf Basis der von uns entwickelten Generatoren. Derzeit unterstützen wir hierdurch folgende Service-Implementationen:

  • JAX-WS, also Web-Services auf der Basis von JBossWS native
  • JAX-RS, als RESTful Services auf der Basis von RESTEasy (JBoss)
  • OSGi basierte Services für Apache Felix

Die bereitgestellten Services werden mittels ebenfalls generierter Maven POMs (Project Object Model) gebildet und automatisch per integrierter ANT Tasks auf den Applikationsservern bereitgestellt. Hier verwenden wir derzeit vor allem JBoss.
Für die Verwaltung der Services in einem Portfolio haben wir uns nach umfangreichen Evaluationen für die Eigenentwicklung des Asset Radars entschlossen, da die meisten kommerziellen Lösungen a) zu teuer in Bezug auf Einstandspreis oder b) Ramp-up-Kosten waren. Zudem fehlte meist die Integration in die Verwaltung der Abhängigkeiten (welche wir bereits vor Jahren in Form des Gependalyzers gebaut haben) oder die Strukturierungsmöglichkeit nach Softwarekomponenten, welche auch für Framework-Bibliotheken von großer Bedeutung sind.
Das Testen der Services machen wir mittels soapUI und Apache JMeter. Testdaten erfassen wir in einer Tabellenkalkulation, welches Daten auf Basis von Microsofts Excel bereitstellt.

SOA und ITIL

Wie bereits Eingangs erwähnt, waren bei der Entwicklung der SOA einige Aspekte von ITIL für uns von großer Bedeutung:

  • Services gehören für uns zunächst nicht in irgendwelche Repistries, Registries, Repositories, oder ähnliches, sondern müssen schlicht und einfach einem aktiven Service Portfolio Management unterstellt werden: Prozesse sind dabei ebenso wichtig, wie die Technologien zur Laufzeit.
  • "Fit for purpose" ist von großer Bedeutung, aber unsere Services müssen auch "Fit for use" sein: Kapazitäts-, Verfügbarkeits-, Sicherheits- und Kontinuitätsaspekte werden von uns bereits frühzeitig in unser Service Design einbezogen und mittels diverser Werkzeuge überprüft.
  • Service Configuration Management ist nicht nur auf der Ebene des Quellcodes für uns von großer Bedeutung. Auch die Verwaltung der Runtime-Abhängigkeiten und die zentrale Ablage aller vorgelagerten Halb- und Fertigwaren in einer Definitive Media Library sind aus unserer Sicht essentiell.

Dies waren nur ein paar "Highlights" der interessanten ITIL Kernfunktionen und Prozesse - Wenn Sie noch mehr über ITIL oder die SOA in Erfahrung bringen wollen, melden Sie sich über unser Kontaktformular.