Zum Inhalt springen

Webservice

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. August 2005 um 21:52 Uhr durch Zwobot (Diskussion | Beiträge) (Bot-unterstützte Begriffsklärung: URI). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Web Service 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. Web Services spielen als Middleware im Bereich E-Business eine zunehmend bedeutendere Rolle.

Architektur

Client-Programme senden im Allgemeinen Anfragen an einen Web Service und dieser antwortet mit der gewünschten Information. Von vielen Seiten wird daher 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 diese Aussage 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.

Funktionsweise

Web Services orientieren sich an der Service Oriented Architecture (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 vier 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ützen 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 eine eindeutige 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.

Beispiele

So gibt es zum Beispiel seit kurzem vom Betreiber der Suchmaschine Google einen Web Service, der die gleichen Möglichkeiten der Website anbietet wie die Benutzerschnittstelle. So können nun Programme mit wenigen Aufrufen nach Informationen im Internet suchen und 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 Reisebüros bieten auf ihrer Webpräsenz Flüge verschiedener Fluggesellschaften an, von denen die Reisebüros zur Laufzeit über UDDI erfahren und deren Flüge sie in ihr Angebot übernehmen. Die Fluggesellschaften stellen Möglichkeiten zum Nachschlagen bzw. Buchen von Flügen über den Web Service bereit. Der Kunde kann auf der Webpräsenz des Reisebüros nun zentral Preise und Termine verschiedener Flüge vergleichen und direkt buchen.

Bewertung

Vorteile

  • Die verwendeten offenen Standards vermeiden jegliche 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-Protokoll 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.

Nachteile

  • Die Hauptschwierigkeit 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 Performanz. 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 – das ist viel Arbeit.
  • Zudem muss der mögliche Ausfall eines für ein Unternehmen unerlässlichen Web Services berücksichtigt werden. Eine weitere betriebswirtschaftliche Fragestellung betrifft den Bezahlmodus bei kostenpflichtigen Angeboten.

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 BPEL, die es erlaubt, zu orchestrieren.

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.

Literatur

  • M. Kuschke, L. Wölfel: Web Services kompakt. Heidelberg Berlin 2002. – Ein prima Einstieg für den Anfänger auf 110 Seiten.

Siehe auch

Suchmaschinen APIs