Wahlhilfe für die SOA-Plattform
Artikel erschienen in Swiss IT Magazine 2009/07
Die Idee von Software-Services in einer serviceorientierten Architektur (SOA) ist eng verknüpft mit der Erwartung, man könne sie flexibel in verschiedenen Geschäftsprozessen verwenden. Eine Voraussetzung dafür ist, dass die IT über die entsprechende Plattform zur Modellierung und Implementierung verfügt. Zwei Schlüsseltechnologien werden jedoch häufig übersehen.
Die Wahl der Integrationsplattform ist ein wesentliches Element jedes SOA-Projekts, beeinflusst sie doch wesentliche Punkte wie die spätere System-Performance oder die Frage der Herstellerunabhängigkeit. Der Markt bietet umfassende und architektonisch konsistente Lösungen für die Entwicklung, Integration, Orchestrierung, Inbetriebnahme und das Management der Services. Diese Plattformen bauen auf der vorhandenen IT-Infrastruktur auf und bieten einen vollständigen Enterprise-Service-Bus (ESB), der in der Regel für eine SOA-Implementierung verwendet wird.
Im Idealfall erfüllt diese Plattform allerdings nicht nur solche Grundanforderungen. Sie beherrscht zusätzlich zwei innovative und hilfreiche Technologien, die nicht fehlen sollten: eine umfassende Abstraktionsebene für Anwendungen und Daten sowie ein integriertes Objekt- und Metadaten-Repository. Die Abstraktionstechnologie verbirgt die Art, Vielfalt und Komplexität der zugrundeliegenden Schnittstellen und Daten. Das integrierte Repository und die dadurch gewährleistete Datenpersistenz liefern nicht nur das Wissen über die Funktion einzelner Dienste, sondern auch darüber, wann welche Leistungen von den jeweiligen Services in welchem Kontext erbracht worden sind. Daten über Prozesse, Probleme und Bottlenecks stehen somit als Pool zur Verfügung, aus dem unter anderem Informationen über das Verhalten und die Anforderungen neuer Prozesse abgeleitet werden können.
Diese Flexibilität ist massgeblich für Produktivitätssteigerungen und einen raschen Return on Investment. Die Einführung einer SOA ist zunächst zwangsläufig mit Kosten verbunden. Allein mit Einsparungen durch wiederverwendbare Services und wegfallenden Aufwand bei der Schnittstellenprogrammierung lassen sich diese Kosten nicht egalisieren. Doch selbst ein dauerhaft höheres IT-Budget ist gerechtfertigt, wenn SOA zu effizienteren Prozessen im Gesamtunternehmen beiträgt oder durch gesteigerte Anpassungsfähigkeit einen Vorsprung gegenüber Mitbewerbern schafft.
Zusätzlich zu Grundfunktionen wie Datentransformation, asynchroner und synchroner Verarbeitung sowie verteiltem Betrieb und Management unterstützen die meisten SOA-Plattformen Web-Service-Standards wie XML und SOAP in der Regel zudem den BPEL-Standard (Business Process Execution Language) zur Orchestrierung der Services in Geschäftsprozessen. Durch diese und weitere Standards können Softwareentwickler Servicefunktionalität ausdrücken, Methoden für den Zugriff auf diese Funktionen über ein Netzwerk und den Geschäftsprozess-Workflow formulieren. Dies geschieht in einem abstrakten Format, das von jedem Tool verwendet werden kann, das diese Standards unterstützt.
Diese Abstraktionsebene ist hervorragend für IT-Umgebungen geeignet, die eine SOA von Grund auf mit neuen Services implementieren. Für die meisten Szenarien geht dies aber nicht weit genug. Die IT hat damit nämlich noch keine Möglichkeit, den oft umfangreichen Altbestand an Geschäftsanwendungen, die nicht für Web-Services ausgelegt sind, innerhalb der SOA zur Verfügung zu stellen. Viele zentrale Unternehmensprozesse lassen sich dann nicht über Services abbilden – das SOA-Projekt scheitert als Mittel der Prozesssteuerung und –optimierung.
Idealerweise verwendet die Integrationsplattform das objektorientierte Paradigma und abstrahiert Funktionalität und Daten als konsistente Menge von Objektklassen mit Eigenschaften und Methoden. Liegt eine solche Abstraktionsschicht über den Konnektivitäts- und Speicherschichten, verbirgt sie die Natur, Vielfalt und Komplexität der zugrundeliegenden Schnittstellen und Daten. Nur die Funktionen, die für einen bestimmten Geschäftsprozess von Interesse sind, sind als Objekte für alle Komponenten der Lösung sichtbar. So lassen sich problemlos neue Projekte erstellen, die etwa eine SAP-Suite, eine Mainframe-Anwendung mit IMS-Datenbank, eine Windows-Anwendung, eine J2EE-basierte Anwendung und eine relationale Datenbank mit umfangreichen Stored Procedures unter einen Hut bringen.
Java-basierte Systeme zeichnen sich durch eine starke logische Abstraktion aus, schwächeln aber bei der Datenabstraktion. XML-basierte Systeme weisen eine starke Datenabstraktion, aber eine schwache logische Abstraktion auf. Objekte bieten als höhere Abstraktionsebene die fehlende Dimension, um ausgefeilte Geschäftsprozesse konsistent zu unterstützen.
Bei SOA-Plattformen, die J2EE-spezifisch oder .NET-spezifisch sind, bindet man sich zudem an einen speziellen Anbieter oder eine bestimmte Technologie. Objektbasierte Abstraktion bietet dagegen eine konsistente Darstellung verschiedener Programmiermodelle und Datenformate. Dadurch werden die folgenden Vorteile erreicht:
? Schnelle Entwicklung von Composite Applications und Geschäftsprozessen.
? Einsatz der neuesten Entwicklungstools und -Technologien zum Zugriff auf Altdaten und bestehende Funktionalität als wiederverwendbare Komponenten, Web Services oder XML.
? Unterstützung für verschiedene Technologie-Frameworks, die einfach auch auf zukünftige Objektmodelle und Frameworks erweitert werden kann.
Viele SOA-Plattformen stammen aus der Messaging-Welt und verfügen über keinen persistenten Datenspeicher. Nachrichten werden erstellt, durch das System geleitet und sind weg. Daten, die für die gesamte SOA-Lösung von Bedeutung sind, lagern in verschiedenen Systemen und sind nicht direkt für den orchestrierten Geschäftsprozess verfügbar.
Die Anbindung einer getrennt lizenzierten relationalen Datenbank eines Drittanbieters verursacht neben Zusatzkosten auch einen erheblichen Verarbeitungs-Overhead für Aufrufe der Datenbank und für die Zuordnung der XML- und anderen komplexen Datenstrukturen zu den zweidimensionalen relationalen Tabellen. Die Performance der gesamten Lösung wird beeinträchtigt, Komplexität und Administrationsaufwand steigen.
Benötigt wird hier ein integrierter, zentralisierter und leistungsfähiger Datenspeicher, der sowohl die verteilten SOA-Daten als auch alle Metadaten enthält. Eine SOA ohne diese Komponente verfügt über keinerlei Intelligenz – sie funktioniert nur auf der untersten Ebene. So geht eine Fülle an Daten und Metadaten verloren, mit denen die Entwicklung einer Gesamtlösung vereinfacht werden könnte und die für die Überwachung der Geschäftsaktivitäten (Business Activity Monitoring), Problemverfolgung, für Reporting, Auditing und andere Managementfunktionen verwendet werden könnten.
Die Anforderungen an den SOA-Speicher reichen von anwendungs-übergreifenden Indizes, durch die mehrere Services zusammenarbeiten können, bis hin zu anspruchsvollen, verarbeitungsintensiven Informationen, für die externe Datenbanken nicht die erforderliche Performance bieten können. SOA-Plattformen mit einer eingebetteten Datenbank unterstützen Funktionen wie die Persistenz von Nachrichten, die Integrität von Transaktionen, Ereignisprotokollierung und -verfolgung und den hochperformanten Abruf von Bitmap-indizierten Daten.
Metadaten sind in einer SOA das Schlüsselelement für die Bereitstellung der Services: Es muss bekannt sein, welche Services wo vorhanden sind und wie man sie verwendet. Hier bietet sich an, die eingebettete Datenbank für die Speicherung von Metadaten wie auch für Transaktionsdaten, Nachrichten und andere Objekte zu verwenden. Das gemeinsam genutzte Metadaten-Repository enthält dann Informationen über alle Services und die weiteren Komponenten in der Umgebung. Durch die stets verfügbaren Metadaten kann eine konsistente Menge an Schnittstellen und Informationen über alle Komponenten in der SOA erstellt werden. Dies beschleunigt die Integration und die Entwicklung, vereinfacht die Verwaltung und bietet eine bessere Erweiterbarkeit.
Serviceorientierte Architekturen bestehen grundsätzlich aus lose gekoppelten Services und stellen deshalb im Management eine besondere Herausforderung dar. Asynchrone Geschäftsprozesse und nachrichtenorientierte Services erschweren die Verfolgung von Abläufen und damit auch die Fehlersuche. Auch für dieses Problem bietet eine persistente Speicherung Abhilfe. Für die effiziente Verwaltung einer SOA-Plattform wird eine Fülle von Diagnosedaten und Werkzeugen zur Analyse in Echtzeit benötigt:
? Die Fähigkeit, gespeicherte Nachrichten und andere Informationen zu analysieren und die Nachrichtenpfade zu verfolgen.
? Pflege des Message-Warehouse
? Konfigurationssteuerung
? Überwachung von Warteschlangen und Prozessen
? Detaillierte Event-Logs
? Nutzungshistogramme
Während einige SOA-Suiten im Grunde nur als Zusammenstellung unabhängiger Tools daherkommen und schon deshalb nicht über die benötigte Integrationsfähigkeit verfügen, fehlen anderen Plattformen höhere Abstraktionstechnologien oder integrierte Datenspeicher. Bei der Auswahl sollte man ineffiziente Entwicklungsumgebungen mit eingeschränktem Support für wichtige Anwendungsschnittstellen, Datenformate und Technologien vermeiden. Eine integrierte SOA-Lösung mit innovativer Technologie für Abstraktion und Datenpersistenz bildet dagegen eine zuverlässige Grundlage für Integrationsprojekte beliebiger Komplexität, insbesondere mit folgenden Vorteilen:
? Direkte Ausrichtung auf die Verbesserung der Geschäftsprozesse, anstatt sich lange mit der zu verwendenden Technologie zu beschäftigen.
? Einfachere und schnellere Entwicklung und Inbetriebnahme von IT-Assets als Services.
? Einfachere Integration von Funktionalität aus Altsystemen.
? Einfachere Anpassung von IT-Assets an die sich häufig ändernden Geschäftsanforderungen und Prozesse.
? Unkomplizierter Einsatz mit vorhandenen Frameworks und Methodologien.
? Der Umstieg auf eine serviceorientierte Architektur ist kostengüns-tiger und weniger risikobehaftet.
· Eine SOA kostet zunächst, bringt aber Flexibilität und steigert damit die Produktivität der IT.
· Die ideale SOA-Plattform unterstützt durch Abstraktion den Aufbau von Anwendungen für End-to-End-Geschäftsprozesse.
· Ein integrierter Metadatenspeicher beschleunigt die Entwicklung und vereinfacht die Verwaltung.