Service-orientierte Architekturen

ERP fügt sich SOA

15.05.2009
Von Markus Franz

Der Kern von SOA: Web-Services

Zur Modellierung von SOA-Prozessen bietet IBM den Websphere Business Modeler an. Mit seiner Hilfe lassen sich SOA-Anwendungen direkt generieren.
Zur Modellierung von SOA-Prozessen bietet IBM den Websphere Business Modeler an. Mit seiner Hilfe lassen sich SOA-Anwendungen direkt generieren.
Foto: IBM

Für die reale IT-Welt bedeutet dies, dass eine Software die eigenen Funktionen nicht mehr über proprietäre Protokolle anbietet, sondern direkt als Web-Services bereitstellt. Damit halten seit langem bekannte Techniken wie UDDI, WSDL und Soap endlich Einzug in konkrete Lösungen. Die Kapselung von SOA-Modulen ist über Soap vergleichsweise einfach und konform zum SOA-Standard der Oasis. Auf Basis von TCP/IP tauscht man über eine XML-Protokollschicht auf Soap die relevanten Daten aus. Das Ganze ist eigentlich "nur" eine moderne Form der Remote Procedure Calls, die es in der IT seit Jahren gibt. Fast jede moderne Programmiersprache bietet im Rahmen einer Standardbibliothek Tools für den Umgang mit Soap an. Wer an dem relativ komplexen Soap keine Freude findet, kann auch auf das ältere XML-RPC setzen.

Eine zentrale Forderung des SOA-Konzepts ist, dass die Schnittstelle zu einer Funktion über alle Plattformen einheitlich verfügbar sein muss. Dafür sorgt WSDL, die Web Services Description Language. Mit dieser Sprache definiert man die über das Netz angebotene Funktion, deren Argumente sowie Datentypen, Rückgabewerte und Protokolle. Nicht enthalten ist in WSDL leider die Information, ob ein Dienst zum Beispiel nur zeitlich beschränkt verfügbar ist - das muss man über einen einfachen Testzugriff herausfinden. Die Unterstützung von WSDL ist in Java und PHP sowie Ruby sehr gut, andere Sprachen sind diesbezüglich eher eingeschränkt.

In der SOA-Welt ist UDDI als dritte technische Säule am stärksten verbreitet. Der Dienst hat sich als universelles Verzeichnis etabliert, in dem Anwendungen und deren Module nach Features suchen können beziehungsweise die Adresse einer bestimmten Funktion herausfinden.