Ein Webservice ist ein Dienst, der mit Hilfe von XML auf der Basis von Internet-Netzwerkprotokollen erbracht wird.
Web Services sind nicht für menschliche Benutzer gedacht, sondern für Softwaresysteme, die automatisiert Daten austauschen und/oder Funktionen auf entfernten Rechnern aufrufen.
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 Webservices für Rechner das sind, was Webseiten für den Menschen sind. Auch wenn das nur ein Teil der Möglichkeiten der Webservices beschreibt, ist diese Aussage durchaus treffend.
So gibt es zum Beispiel seit kurzem vom Betreiber der Suchmaschine Google einen Webservice, der die gleichen Möglichkeiten der Webseite 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.
Erreichbar sind Webservices über eine eindeutige URI. Webservices bilden die drei wichtigsten Teile der Zusammenarbeit zwischen Client und Server ab: Das Zusammenfinden, Binden und den Datenaustausch.
Grundlagen
Die Grundlage bilden vier Standards, die alle auf XML basieren:
- SOAP oder XML-RPC zur Kommunikation / Datenaustausch,
- WSDL zur Beschreibung und
- UDDI als Verzeichnisdienst zur Registrierung von Web Services.
Dank der Verwendung des HTTP-Protokolls zur Datenübertragung treten nur selten Probleme mit Firewalls auf, im Gegensatz zu vergleichbaren Technologien wie CORBA, DCOM oder auch Java RMI.
Vorteile
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.
Nachteile
- Performanz (XML Parsen, Dateigröße)
- Mehr Know How erforderlich als z.B. mit Remote Procedure Call
- Programmiersprachen mit denen man WebServices einbinden will, brauchen spezielle Libraries (z.B DOM)
- Schnittstellen müssen genau definiert werden - das ist viel Arbeit
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.
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.
Siehe auch
- Enterprise Application Integration (vergleichbare Aufgabe (unternehmensintern))
Weblinks
- Seiten des W3C über Webservices
- Deutsche Übersetzungen der W3C Spezifikationen: edition-W3C
- Web-Services im GI-Lexikon
- XML protocol activity (englisch)
- Zusammenstellung verschiedenster Herstellerdefinitionen zum Begriff Web Service
- Arkanoid3D.NET - Webservices zum Austausch von Highscores und Levels einer verteilten Anwendung
- Web Services and Service-Oriented Architectures. Definitionen und Erklärungen (englisch)
- Deutschsprachige Anleitungen: Amazon Web Services und Google Web APIs