Zum Inhalt springen

IT intelligenter verwalten

SOA und ESB sind unverzichtbar – Ein Großteil der Zeit und des IT-Budgets muss heute darauf verwendet werden, nicht nur die vorhandene Hard- und Software, sondern auch die zahlreichen Insellösungen miteinander zu vereinigen.

Autor:Redaktion connect-professional • 27.9.2007 • ca. 4:15 Min

SOA, die serviceorientierte Architektur, teilt die einzelnen Funktionen der Geschäftsanwendungen in standardbasierte Services ein, die kombiniert, konfiguriert und schnell wieder verwendet werden können. Unternehmen haben dadurch die Möglichkeit, sich flexibel der dynamischen Geschäftswelt anzupassen.

Ein Weg zu mehr Flexibilität
Das grundlegende Prinzip einer SOA besteht darin, größere IT-Systeme in einzelne Komponenten zu zerlegen – die sogenannten Services. Eindeutig formulierte Regeln legen dabei fest, welche Beziehung diese Software-Teile zueinander haben. Einzelne Code-Bausteine können wiederum zu Paketen geschnürt werden, die eine spezielle Funktionalität für den Endbenutzer oder andere Services zur Verfügung stellen. Das Ziel dieses Ansatzes ist die möglichst effiziente Nutzung der existierenden Anwendungslogiken. Das bedeutet insgesamt möglichst wenig Code bei maximalen Einsatzmöglichkeiten. Die Strukturierung der IT nach Services anstatt nach Anwendungen bringt erhebliche Vorteile. Nicht nur die IT, sondern auch das Gesamtunternehmen kann erheblich produktiver, schneller und flexibler agieren. Dies ist möglich, da sich die IT durch eine SOA leicht an verändernde Geschäftsprozesse anpassen lässt. Die gut aufeinander abgestimmten Services sind in kürzester Zeit produktiv einsetzbar. Aus der servicebasierten Infrastruktur können wiederum komplexe Anwendungen neu zusammengestellt werden, die die spezifischen Anforderungen mit den bereits vorhandenen Funktionalitäten erfüllen. Diese Composite-Applications entstehen durch die Kombination von einzelnen Services verschiedener Anwendungen, von ganzen Funktionspaketen oder sogar von gesamten servicebasierten Programmen. Darüber hinaus ermöglicht es SOA, die in Anwendungen befindlichen Informationen und Prozesse beispielsweise durch eine Portalanwendung für den Nutzer automatisch personalisiert bereitzustellen. Damit profitieren Anwender und Kunden von der optimalen Nutzbarkeit ihrer Systeme.

Standards erwecken SOA zum Leben
Erst das Aufkommen von Schlüsseltechnologien und Standards macht es heute möglich, eine Infrastruktur für die Service-Integration aufzubauen, die den Zielen einer SOA wirklich gerecht wird: Web-Services und grundlegende Standards wie SOAP oder WSDL ermöglichen es, die Geschäftslogik von den Interfaces zu entkoppeln, so dass die Software leichter auf Veränderungen reagieren kann. Eine zentralisierte UDDI-Registry erleichtert das Management verteilter Services. XML trennt Message-Parsing von der Anwendung und erhöht dadurch die Entkopplung der Ausführungsumgebung des Systems.

Verschiedene Weiterentwicklungen der Web-Service-Spezifikation ergänzen die bestehenden Standards um die erforderlichen Merkmale (Quality-of-Service) von Performance-relevanten und geschäftskritischen Anwendungen. So sorgt beispielsweise WS-Policy für einen Abgleich der Qualitätsmerkmale eines Serviceanbieters mit den Anforderungen eines Servicenachfragers. WS-Adressing führt die asynchrone Kommunikation in Web-Service-basierte Architekturen ein und erhöht die Unabhängigkeit des Nachrichtenaustauschs vom genutzten Transportprotokoll durch eine in der Nachricht enthaltene Endpunkte-Referenz.

Um den Ursprung und die Authentizität einer Nachricht zu überprüfen, erlaubt der WS-Security-Standard eine digitale Signatur oder Verschlüsselung der übertragenen Daten. Zudem unterstützt er die Authentifizierung durch Mechanismen wie Username/Passwort, X.509-Zertifikate einer Public-Key-Infrastruktur oder so genannte Security-Assertion-Markup-Language-Tokens (SAML) für Single-Sign-On-Szenarien. Das WS-Reliable-Messaging-Protokoll überwacht den Nachrichtenaustausch zwischen zwei Parteien und verfolgt und kontrolliert die Zuverlässigkeit der Übertragung. Dafür können verschiedene Zustelloptionen wie »At Most Once«, »At Least Once«, »Exactly Once« und »In Order« festgelegt werden. Die Kombination verschiedener Web-Services zu einem komplexen Geschäftsprozess beziehungsweise einer Composite-Application ermöglicht schließlich die Business-Process-Execution-Language (BPEL).

Enterprise-Service-Bus – das Rückrat einer SOA
Eine SOA erfordert jedoch zunächst eine Anpassung der IT-Infrastruktur für die Service-Bereitstellung. Um die Mehrfachverwendung und das Routing der Services zu vereinfachen, wird eine Abstraktions- und Integrationsebene eingeführt, die die bereits entstandene Komplexität der IT-Infrastruktur ausblendet. Dies ermöglicht die Weiterentwicklung von Services ohne kostspielige Bruchstellen wie sie bei bisherigen Implementierungen entstehen. Diese Integrationsebene ist derzeit als Enterprise-Service-Bus, kurz ESB, bekannt.

Die ESB-Zwischenschicht läuft unbemerkt von den Services im Hintergrund. Sie löst bisherige Punkt-zu-Punkt-Verbindungen auf und erzeugt daraus wiederverwendbare Anwendungen. Damit stellt der ESB ein gemeinsames Backbone für den Informationsaustausch zwischen den Systemen dar. Er erlaubt den vorab definierten Geschäftsbereichen Zugang zu genau den Services, die sie für ihre Arbeit benötigen. Ein ESB muss so ausgelegt sein, dass er die Komplexität heterogener Umgebungen bewältigen kann. Die Schlüsselfunktion für die dynamische Interaktion zwischen Services besteht in der Veröffentlichung und im Wiederfinden von Diensten mit Hilfe der Registry. Um die Services aus unterschiedlichen Anwendungswelten zu verbinden, nutzt der ESB standardisierte Schnittstellen, Formate und Protokolle wie XML, Web-Services und JMS. Darüber hinaus ermöglicht der ESB eine Service-Versionsverwaltung, Message-Brokering sowie ein dynamisches Routing und Transformation der Services.

Der ESB unterstützt eine große Anzahl von Servicequalitäten unterschiedlicher Protokollebenen wie Request/Reply, Publish/Subscribe, zuverlässiges Messaging und rollenbasierte Lieferung ohne eine eigene Logik im Bus. Außerdem sorgt der ESB für Sicherheit bei den Nachrichten und deren Übertragung. Daneben zählen auch Monitoring, Load-Balancing, Tracking und Fehleranalyse zu den Kernfunktionalitäten eines ESBs.

Vorteile eines ESBs
Diese dynamisch verwaltbare Integration zwischen lose verbundenen Services vermindert die Komplexität der Anwendungsinfrastruktur und vermeidet, dass die Services zu stark ausufern. Ein ESB enthält in der Regel elementare Managementfunktionen und kann so alle registrierten Services verwalten. Die Integrationslogik ist dabei unabhängig von der Geschäftslogik und ermöglicht auf diese Weise eine unternehmensweite Wiederverwendbarkeit der Services und ihre zentrale Verwaltbarkeit.

Im Vergleich zu anderen Infrastruktur-Integrationslayern wie Web-Services, Application-Platform-Suites oder traditionellen EAI-Produkten bietet ein ESB umfassendere Funktionen für Reliability-, Security- und Prozess-Management, einfachere Integration heterogener Systeme, breitere Unterstützung von Standards und eine agilere Infrastruktur.

Der weitere Trend
Die Implementierung einer SOA mit Hilfe einer Service-Infrastrukturschicht ist bereits heute technologische Realität. Langfristig werden die Service-Infrastruktur-Lösungen erfolgreich sein, deren Funktionalitäten nicht nur die Entwickler, sondern auch das Management bei ihrer Arbeit aktiv unterstützen. Gleichzeitig müssen diese Lösungen offen und mit etablierten Standards, Protokollen und Schnittstellen erweiterbar sein. Der Kern dieser Implementierungen wird ein vereinheitlichtes Metadata-Repository sein, das alle Fähigkeiten der Infrastruktur untermauert.

SOA ermöglicht es, Geschäftsprozesse und Anwenderbedürfnisse nach vorne zu stellen. Letztlich wird damit eine alte Forderung erfüllt: IT im Dienst des Business, nicht umgekehrt. Dies bedeutet, dass die Anwendung in den Hintergrund tritt und nur noch die Funktionen relevant sind. Im Extremfall heißt das: Es ist möglich, eine virtuelle Composite-Application zu erstellen, die nach der Nutzung wieder in ihre Bestandteile zerfällt. Dies ermöglichen Services, die nach Bedarf quasi automatisch die gewünschte Anwendung erstellen und durch eine Business-Process-Plattform gesteuert werden.

Wolfgang Weigend, Principal System Engineer, BEA Systems