Ein Web-Service ist eine unabhängige, modulare und selbstbeschreibende Anwendungsfunktion oder ein eigenständiger Anwendungsservice. Diese Anwendungsfunktion kann – basierend auf XML-Standards – beschrieben, bereitgestellt, gesucht, transformiert oder über Standard-Internetprotokolle aufgerufen werden.
Jeder Web-Service kapselt daher eine Funktion, die z.B. verwendet wird, um eine Preisanfrage an einen Anbieter weiterzuleiten, die Verfügbarkeit einer Position in einem Retail-System zu prüfen, eine Telefonnummer zu lokalisieren oder Kreditkartenprüfungen durchzuführen, Währungen umzurechnen oder Abrechnungsfunktionen auszuführen.
Web-Service-Paradigma
Der Anbieter eines Service wird als Service Provider bezeichnet. Wenn es sich bei einem Service um einen Web-Service handelt, hat der Service-Provider eine entsprechende XML-basierte Beschreibung, bei der es sich um ein WSDL-Dokument (Web Services Description Language) handelt. Für die Implementierung des Web-Service kann im Prinzip jede Programmiersprache verwendet werden. Der Service Provider kann im Sinne einer Client/Server-Beziehung als Server gelten.
Beim Publizieren eines Service überträgt der Service-Provider Informationen über sich selbst und eine Beschreibung des Services, den er anbietet, an die Service-Registrierung. Eine Service Registry ist eine Art von gelben Seiten für Web-Services. Sie stellt unter anderem Informationen über den Aufruf des Web-Service zur Verfügung. Die Service Registry liefert daher nur eine Beschreibung des Web-Services. Diese Beschreibung bildet eine Abstraktionsschicht und ist unabhängig von der jeweiligen Implementierung. Der Web-Service als Dienst wird stets vom Service Provider gehostet.
Der Nutzer eines Web-Service wird als Serviceanforderer bezeichnet. Ein Serviceanforderer kann z.B. jemand sein, der einen Web-Service über einen Web-Browser findet und dann den Service verwendet. Meist jedoch stellt der Serviceanforderer eine Anwendung dar, die auf den Web-Service zugreift. Die Anwendung kann den Dienst bei Bedarf auch dynamisch binden, d.h. die Anwendung kann dynamisch zur Laufzeit einen sogenannten Web-Service-Client-Proxy generieren, über den der Zugriff auf den Web-Service erfolgt. Die hierzu benötigten Informationen erhält die Anwendung aus der Servicebeschreibung.
Diese Informationen werden dann in der Service Registry gespeichert. Wenn die Anwendung jedoch den Provider und die Aufrufdetails kennt, kann sie den Web-Service verwenden, ohne auf die Service-Registry zugreifen zu müssen. In einer Client/Server-Beziehung stellt der Serviceanforderer den Client der Anwendung dar.
Standards für Web-Services
Web-Services können in beliebigen Implementierungen vorliegen. Sollen Web-Services von beliebigen Anwendungen aufgerufen werden, dann benötigt man für diese eine standardisierte Beschreibung. Diese Anforderung wird von der WSDL am besten erfüllt. Eine Beschreibung von Web-Services in WSDL allein reicht allerdings nicht aus. Um den passenden Geschäftspartner und dessen Serviceangebot zu finden, bedarf es eines Firmenverzeichnisses, mit dessen Hilfe die benötigten Services gefunden werden können.
Aber auch der Anbieter von Web-Services muss in der Lage sein, sein Angebot möglichst einfach öffentlich zur Verfügung zu stellen. Hierfür bietet die Universal Description, Discovery and Integration (UDDI) eine Lösung. Weitere Informationen finden Sie unter http://uddi.xml.org.
Die folgende Liste erläutert einige Standards, die mit Web-Services verwendet werden:
UDDI (Universal Description, Discovery and Integration) Registry: Mit der UDDI-Registry und der UDDI-Spezifikation stellt UDDI die notwendigen Werkzeuge zur Verfügung, um Dienste öffentlich zu machen. Die Spezifikation beschreibt dabei detailliert, wie die Suche und Registrierung von Services erfolgen soll. Die UDDI-Registry enthält eine Liste der registrierten Web-Services im WSDL-Format. Die UDDI-Registry speichert keine Dokumente oder Spezifikationen, sondern verweist nur auf diese.
SOAP (ursprünglich Simple Object Access Protocol): Für den Aufruf von Web-Services, die auf Internet-Technologien basieren, ist eine geeignete Protokolldefinition erforderlich. SOAP hat einen einfachen Standard geschaffen, der den Zugriff auf Web-Services in dezentralen, verteilten Landschaften ermöglicht. SOAP spezifiziert ein Paket von XML-Dokumenten für den Transport über Internet-Protokolle wie HTTP(S), SMTP oder FTP. SOAP definiert einen sogenannten Envelope. In diesem Umschlag finden Sie die tatsächliche XML-basierte Nachricht mit Header und Body sowie weitere Informationen über die weitere Verarbeitung der Nachricht.
WSDL (Web Service Description Language): WSDL ist eine XML-basierte Beschreibungssprache für Web-Services. Die WSDL-Service-Definition beinhaltet die Beschreibung verteilter Systeme und bietet Anleitungen zur Automatisierung des Datenaustauschs zwischen Anwendungen. Die Web Service Description Language wird verwendet, um Web-Services oder elektronische Services im XML-Format zu beschreiben. Ein Service ist definiert als eine Sammlung von Endpunkten (Ports) und den Nachrichten, mit denen sie arbeiten. Mithilfe von WSDL kann ein Service-Provider die Anforderungen und Funktionen seines Web-Service beschreiben, sodass ein potenzieller Kunde sie versteht und ordnungsgemäß mit dem Service interagiert.
