Web-Services gekonnt verstricken

Feature | 14. November 2005 von admin 0

Weil das Internet dem Aufbau von “Connected Systems” dienen soll, hat die Softwarebranche in den vergangenen Jahren vorhandene Konzepte und Technologien grundlegend überarbeitet. Dieser Prozess begann im Jahr 1997. Damals wurde die XML-Spezifikation erstellt, die einen technologieneutralen Informationsaustausch über das Web ermöglicht. Mit Simple Object Access Protocol (SOAP), Web Service Definition Language (WSDL) und Universal Description Discovery and Integration (UDDI) folgten kurzfristig drei weitere wichtige Standards. Sie definieren ein technologie- und übertragungsneutrales Protokoll zum Austausch von XML-Dokumenten. Eine Interface Definition Language beschreibt die Schnittstellen zu den verbundenen Software-Agenten, die wiederum mit ihren technischen Möglichkeiten sowie den von ihnen ausgeführten Services in einer Registry aufgezeichnet sind. Die heute verfügbaren Web-Services umfassen Dutzende unterschiedlicher Standards. Sie die Technologiebasis für service-orientierte Architekturen – SOAs.

Was bedeutet Service-Orientierung?

Drei Ebenen der Service-Orientierung

Drei Ebenen der Service-Orientierung

Seit 2003 vermarktet die Branche unter dem Namen “service-orientierte Architekturen” neue Entwicklungs-Grundsätze für modulare Unternehmenssysteme. Solche SOAs basieren auf plattformneutralen, offenen Standards, dem so genannten Web Services Technology Stack. Bei der Service-Orientierung werden Software und Hardware in ein System autonomer Software-Agenten überführt, die sich über den Austausch von Nachrichten gegenseitig beeinflussen. Diese Agenten starten Aktivitäten, indem sie Nachrichten austauschen. Dazu versenden sie Ereignismitteilungen, synchronisieren ihren Status und fordern/übermitteln Informationen. Sie verfügen über Schnittstellen, die über eine Auftrags-Definition spezifiziert werden.
Der Kern dieses Auftrags heißt “Service”. Servicedefinitionen beschreiben alle Aufgaben, die ein Service ausführen kann. Eine Aufgabe stößt den Nachrichtenaustausch an. Service-Schnittstellen umfassen, neben den bei objektorientierten Schnittstellen typischen Inbound-Operationen, auch Outbound-Operationen. Services lassen sich zusammensetzen und in verschiedenen Kontexten wieder verwenden – auch zu Zwecken, die zum Zeitpunkt der Entwicklung noch unbekannt waren. Services können ebenso Erfassungssysteme, Verarbeitungsroutinen oder vom Anwender gesteuerte Aktivitäten beinhalten. Die Granularität ist unterschiedlich: Es kann sich hierbei um einen schlichten Eintrag in eine Datenbank handeln, aber auch über die Rückverfolgung eines Auftrags über die gesamte Lebensdauer eines Produkts.

Paradigmenwechsel

Paradigmenwechsel

SOAs passen sich an veränderte Geschäftsbedingungen an, lösen neue Aufgaben und unterstützen neue Geschäftschancen, indem sie Kunden und Partnern Kombinationsmöglichkeiten aus dem Pool vorhandener Funktionalitäten eröffnen. SAP hat auf Basis serviceorientierter Konzepte und Technologien ein Anwendungsmodell entwickelt, das die Grundlage der Enterprise Services Architecture bildet. Im Composite-Application-Modell werden Informationen, Aktivitäten und Transaktionen zusammengesetzt. Kombiniert mit Web-Services entstehen Composite Applications, deren Funktionen über Technologie- und Unternehmensgrenzen hinausgehen. Um in einem Composite-Application-Modell Interoperabilität und Portabilität sicherzustellen sind allgemein anerkannte Technologiestandards erforderlich. Web-Service-Technologien erfüllen diese Anforderungen. Sie basieren auf Nachrichten, Services und Aktivitäten, die von Software-Agenten ausgeführt werden.

Nachrichtenaustausch

Standard Stack für Nachrichten

Standard Stack für Nachrichten

Zentrales Anliegen bei der Einführung von Standards für den Nachrichtenaustausch im Web Services Stack war die Unabhängigkeit von Übertragungstechnologien wie HTTP, JMS oder RMI. Überdies sollten die Vermittler zumindest Teile der Nachricht verstehen und auf dieser Basis Entscheidungen treffen können. Schon bei seiner Entwicklung wurde SOAP erweiterungsfähig konzipiert, so dass es aufgabenspezifische Protokolle in das eigentliche Protokoll integriert. Auf diese Weise lassen sich Transaktionsprotokolle, sichere Austauschprotokolle, Authentifizierungs- und Signaturelemente als Layer in den SOAP-Header einer Nachricht eingliedern.

Aufträge und Directory

Kontrakt- und Directory-Layer

Kontrakt- und Directory-Layer

Aufträge bilden die zweite Ebene der Web Services-Architektur. Sie definieren die möglichen Interaktionen mit einem Software-Agenten. Der Auftragskern bildet den “Service”. Software-Agenten bieten Services und Service-Schnittstellen an, die mit WDSL definiert werden. Definitionen von Service-Aufträgen beschreiben den Nachrichtenaustausch, den ein Software-Agent im Rahmen eines Jobs durchführen wird. Dieser Nachrichtenaustausch ist in “Operationen” zusammengefasst und führt bestimmte WDSL 2.0- Kommunikationsmuster wie beispielsweise das Request/Response Pattern (auch In-out Pattern genannt) aus. WSDL wurde ergänzt um zusätzliche Spezifizierungen unter den Begriffen “Ereignis”, auch WS-Notification genannt, und “Ressourcen”, die durch Services des WS-Resource Framework verwaltet werden. Die UDDI-Spezifikation stellt die Schnittstellendefinition für eine Service-Registry bereit. Service-Konsumenten finden innerhalb einer Klassifikation und anhand bestimmter Merkmale die benötigten Services anhand der jeweiligen Interface-Beschreibung.

Aktivitäten

Activity Layer

Activity Layer

Der Activity Layer ist für die Service-Orientierung bezeichnend. Bislang waren verteilte Systeme so ausgelegt, dass die Verarbeitungsleistung aus Gründen der Skalierbarkeit und Ausfallsicherheit auf ein Cluster physisch unterschiedlicher, aber logisch äquivalenter Rechner aufgeteilt wurde. Bei SOAs führen spezialisierte Software-Agenten Jobs gemeinsam aus. Anwender lösen neue komplexe Aufgaben, indem sie einzelne Funktionen aus verschiedenen Software-Systemen in neuen Anwendungen zusammensetzen.
Eine Aktivität erfordert häufig einen Kontext, insbesondere wenn sie von einer Reihe autonomer Agenten ausgeführt wird, denn der Kontext liegt unter Umständen nicht bei einem einzigen Agenten. Gleichermaßen kann ein Aktivierungs-Service erforderlich sein, der die Lebensdauer der Aktivitäten verwaltet. Für manche Aktivitäten sind Koordinatoren erforderlich, die die Kommunikation sicherstellen oder technische Services wie beispielsweise Routing oder Transaktionen verwalten. Orchestrierte und choreographierte Aktivitäten sind die beiden Hauptkategorien, die von autonomen Agents übernommen werden.
WS-BPEL wurde als Standard für die Spezifikation von Orchestrierungs-Definitionen festgelegt. Choreographierte Aktivitäten beruhen nicht auf einem speziellen Agenten, der eine Aktivität antreibt. Allein die Interaktionen aller an der Aktivität beteiligten Agents lassen diese Aktivität voranschreiten. Die Web Services Choreography Definition Language (WS-CDL) unterstützt die Definition choreographierter Aktivitäten.

Web-Services-Architektur

Web-Services-Architektur

Web-Services-Architektur

Die Familie der Policy-bezogenen Standards und Technologien des Semantic Web ergänzt Web Services-Beschreibungen um neue Semantiken. Sie können im Zusammenhang mit Sicherheit, Transaktionen, Orchestrierung oder Choreographie zum Einsatz kommen und nehmen eine automatische Zuordnung der Dienste-Ressourcen vor, die an derselben Aktivität beteiligt sind.
Service-orientierte Architekturen haben bereits umfassende Veränderungen hin zur Entwicklung verbundener Software-Lösungen und Composite Applications mit einem dezentralen Modell zur Ressourcenverwaltung bewirkt. Sie werden auch weiterhin Innovationen auf Ebene der Unternehmensprozesse fördern und eine höhere Flexibilität bei geringeren technologischen Einschränkungen bieten.

Jean-Jacques Dubray

Jean-Jacques Dubray

Leave a Reply