Web Service
aus Wikipedia, der freien Enzyklopädie
Ein Web Service bzw. Webdienst ist eine Software-Anwendung, die mit einem Uniform Resource Identifier (URI) eindeutig identifizierbar ist und deren Schnittstellen als XML-Artefakte definiert, beschrieben und gefunden werden können. Ein Web Service unterstützt die direkte Interaktion mit anderen Software-Agenten unter Verwendung XML-basierter Nachrichten durch den Austausch über internetbasierte Protokolle.
Ein Web Service ist nicht:
- Middleware – es fehlt die Vermittlungskomponente und die Gewährleistung von Transaktionssicherheit
- Enterprise Application Integration – jedoch können Web Services bei Enterprise Application Integration Verwendung finden
Inhaltsverzeichnis |
[Bearbeiten] Architektur
Client-Programme senden im Allgemeinen Anfragen an einen Web Service und dieser antwortet mit der gewünschten Information. Es wird daher gelegentlich behauptet, dass Web Services für Rechner das sind, was Webseiten für den Menschen sind. Auch wenn das nur ein Teil der Möglichkeiten der Web Services beschreibt, ist dieser Vergleich durchaus treffend. Web Services sind nicht für menschliche Benutzer gedacht, sondern für Softwaresysteme, die automatisiert Daten austauschen und/oder Funktionen auf entfernten Rechnern aufrufen.
Web Services orientieren sich an der Serviceorientierten Architektur (SOA) und vereinen daher verteilte und objektorientierte Programmierstandards und richten sich auf betriebswirtschaftliche Lösungen im Internet.
Es lassen sich die Instanzen Konsument, Anbieter und Verzeichnis identifizieren.
Der Anbieter veröffentlicht in einem Verzeichnis die Beschreibung seiner Dienste. Der Konsument durchsucht das Verzeichnis und wählt den gewünschten Dienst aus. Nachdem eventuell weitere Protokolldetails ausgetauscht werden, findet die dynamische Anbindung des Konsumenten an den Anbieter statt. Der Konsument greift nun auf Methoden zurück.
Die Grundlage hierbei bilden drei Standards, die jeweils auf XML basieren und in den zugehörigen Artikeln näher beschrieben werden:
- UDDI als Verzeichnisdienst zur Registrierung von Web Services. Es ermöglicht das dynamische Finden des Web Services (z. B. den Dienst FußballErgebnisse) durch den Konsumenten.
- WSDL zur Beschreibung der unterstützten Methoden (z. B. TorschuetzenKoenig) und deren Parametern (z. B. Datum) für den Programmierer.
- SOAP (oder XML-RPC) zur Kommunikation. Hier wird der eigentliche Aufruf gestartet.
Web Services bilden die drei wichtigsten Teile der Zusammenarbeit zwischen Client und Server ab: Das Zusammenfinden, Binden und den Datenaustausch.
Erreichbar sind Web Services über einen eindeutigen URI. Die verwendeten plattformunabhängigen Standards sind in der Lage, entfernte Methodenaufrufe beliebiger Plattformen zu dekodieren und einer Anwendung weiterzuleiten. Auf diese Weise entsteht eine verteilte Architektur. Die Kommunikation mit Web Services erfolgt über Nachrichten, die über mehrere Protokolle transportiert werden können.
[Bearbeiten] Beispiele
Es gibt zum Beispiel seit 2002 vom Betreiber der Suchmaschine Google einen Web Service, der durch seine Funktionalität die gleichen Möglichkeiten der Website anbietet, wie die Benutzerschnittstelle auf der Website selbst. Programme können nun mit einem Ansprechen der Schnittstelle direkt nach Informationen im Internet suchen, erhalten über die Schnittstelle die Ergebnisdaten und können diese für ihre eigenen Aufgaben verwenden. Das Parsen der Google-Webseite ist dazu keine auch nur annähernd gleichwertige Alternative.
Ein weiteres Beispiel ist die Interaktion zwischen Fluggesellschaften und Reisebüros. Die Fluggesellschaften stellen Möglichkeiten zum Nachschlagen bzw. Buchen von Flügen über einen Web Service bereit. Die Reisebüros bieten auf ihrer Webpräsenz Flüge verschiedener Fluggesellschaften an, von denen die Reisebüros zur Laufzeit über UDDI erfahren. Der Kunde kann auf der Webpräsenz des Reisebüros nun zentral Preise und Termine verschiedener Flüge vergleichen und direkt buchen.
[Bearbeiten] Bewertung
[Bearbeiten] Vorteile
- Die verwendeten offenen Standards vermeiden einige Lizenzkosten. Da zu diesen Standards auch die allgegenwärtigen internetbasierten Technologien gehören, lassen sie sich auch vielerorts einsetzen. Auch hier liegt ein Kostenvorteil.
- Durch das üblicherweise verwendete HTTP zur Datenübertragung treten nur selten Probleme mit Firewalls auf, im Gegensatz zu vergleichbaren Technologien wie CORBA, DCOM oder auch Java RMI. Web Services sind jedoch nicht an HTTP gebunden und lassen sich auch mit anderen Protokollen wie SMTP oder FTP übertragen und sind somit offen für verschiedene Anwendungsszenarien.
- Durch die Verwendung von bereits bestehenden und weit verbreiteten Internet-Standards (HTTP, XML etc.) entsteht eine offene und flexible Architektur, die unabhängig von den verwendeten Plattformen, Programmiersprachen und Protokollen ist. So können beispielsweise Windows-C#-Clients hinter einer Firewall mit Java-Servern, die auf Linux implementiert sind, kommunizieren. Die weit verbreiteten Standard-Protokolle ermöglichen eine Interoperabilität über jegliche Heterogenitäten im Internet hinweg.
- Die Barrieren zum Einstieg sind vergleichsweise niedrig.
[Bearbeiten] Nachteile
- Die Hauptschwierigkeiten bei der Umsetzung von Web Services dürften Sicherheitsaspekte betreffen. So ist beim Transport zu beachten, dass wichtige Web Services verschlüsselt werden oder eine Authentifizierung stattfinden kann. Ob hier HTTPS ausreichend ist oder Lösungen wie XML Signature, XML-Encryption oder SAML zu bevorzugen sind, sollte abgewogen werden.
- Ein besonderes Augenmerk liegt auf der Performance. Diese wird durch XML, Parsen und Dateigröße negativ beeinflusst. Der Verwaltungsaufwand nimmt bei stark verteilten Systemen zu. Der Overhead ist teilweise erheblich.
- Es ist mehr Know-How erforderlich als z. B. mit Remote Procedure Call (RPC). Programmiersprachen, mit denen man Web Services einbinden will, brauchen spezielle Bibliotheken (z. B. DOM). Schnittstellen müssen genau definiert werden.
[Bearbeiten] Anwendungsgebiete
Web Services stellen neue Ansätze im Rahmen von Enterprise Application Integration (EAI) und Grid-Computing dar. Das geplante Haupteinsatzgebiet liegt im Business-to-Business-Bereich (B2B). Geschäftsprozesse sollen problemlos über Unternehmensgrenzen hinweg abgewickelt werden. Eine Sprache hierfür ist Business Process Execution Language (BPEL), die es erlaubt zu orchestrieren.
[Bearbeiten] Anwendungsmöglichkeiten
Web Services sind eine Technologie, die unter verschiedenen Aspekten verwendet werden kann. Hier die drei verbreitetsten:
RPC - Entfernter Methoden-Aufruf
WSDL basierend, die lose Kopplung ist nicht unbedingt gewährleistet
SOA - Service-Orientierte Architektur
Eine Art Nachrichtendienst, WSDL als Kommunikationsinterface
REST - Zustandsrepräsentationsübertragung
Der Versuch, das Interface auf eine Menge “definierter” Standard-Operationen (an HTTP angelehnt: GET, PUT, DELETE) zu beschränken. Der Schwerpunkt liegt auf der Interaktion von zustandsbehafteten Ressourcen. Implementierung über WDSL -> SOAP HTTP oder direkt auf SOAP basierend.
[Bearbeiten] Erweiterungen
Mit dem Web Services Composite Application Framework (WS-CAF) wurde eine weiterführende Spezifikation beim W3C und bei OASIS zur Standardisierung eingereicht, die Web Services um für die Koordination von Applikationen nützliche Standards, wie z. B. Transaktionsmanagement, erweitern sollen. Weitere, proprietäre Erweiterungen sind bei verschiedenen Herstellern angedacht. Um Problemen der Sicherheit zu begegnen, werden Konzepte auf der Grundlage der Security Assertion Markup Language (SAML) entwickelt.
Des Weiteren befasst sich das Gebiet der Semantic Web Services mit der Erweiterung von Web Services um Semantik, die das Auffinden (Discovery) , Auswählen (Selection), Ausführen (Invocation) und Komposition mit anderen Web Services nach der Idee des Semantic Web ermöglichen und vereinfachen soll.
[Bearbeiten] Literatur
- Wolfgang Dostal, Mario Jeckle, Ingo Melzer, Barbara Zengler: Service-orientierte Architekturen mit Web Services. Spektrum Akademischer Verlag, September 2005, ISBN 3-8274-1457-1 (Website zum Buch)
- Michael Kuschke, Ludger Wölfel: Web Services kompakt. Spektrum Akadademischer Verlag, Heidelberg Berlin 2002, ISBN 3-8274-1375-3 (Ein prima Einstieg für den Anfänger auf 110 Seiten)
- Gustavo Alonso, F. Casati, H. Kuno: Web Services. Springer, Berlin 2003, ISBN 3-540-44008-9 (englisch)
- Sanjiva Weerawarana, F. Curbera, F. Leymann: Web Services Platform Architecture. Prentice Hall PTR, Upper Saddle River/NJ 2005, ISBN 0-13-148874-0 (englisch)
[Bearbeiten] Siehe auch
- SOAP (Protokoll zum Austausch von Objekten)
- Web Service Choreography Interface (WSCI)
- Web Services Description Language (WSDL)
- Web Service Endpoint Language (WSEL)
- Web Services Flow Language (WSFL)
- Web Services Security (WSS)
- Universal Description, Discovery and Integration (UDDI)
- Business Process Execution Language (BPEL)
- Apache Axis
- Service (Informatik)
[Bearbeiten] Weblinks
- Seiten des W3C über Web Services
- Deutsche Übersetzungen der W3C Spezifikationen: edition-W3C
- Deutsche Übersicht über alle Web Service Spezifikationen: http://www.ws-universe.com
- Web Services mit Java, Axis, XDoclet und Eclipse (Stand von 2003)
- Web-Services im GI-Lexikon
- XML protocol activity (englisch)
- Zusammenstellung verschiedenster Herstellerdefinitionen zum Begriff Web Service
- Web Services and Service-Oriented Architectures. Definitionen und Erklärungen (englisch)
- Deutschsprachige Anleitungen: Amazon Web Services und Google Web APIs
- Einführung in XML-Webdienste
- Eclipseplugin für XFire [1]
Suchmaschinen APIs