Webservice

Ein Webservice ist ein Dienst, der heterogen in Websystemen verteilt und in beliebigen Anwendungen benutzbar ist. Dabei wird der Zugriff auf Webservices durch das Middleware-Protokoll Simple Object Access Protocol (SOAP) gesteuert, das auf der Basis von XML ein Protokoll auf der Grundlage eines entfernten Prozeduraufrufs, dem Remote Procedure Call (RPC), realisiert.


XML wird auch als eine deskriptive Sprache bezeichnet - XML dient der Beschreibung sowie dem Austausch von komplexen Datenstrukturen. Über die Schnittstellen des Webservices werden die Dienste gekapselt. Ebenfalls als ein XML-Dokument erfolgt die Definition der Schnittstelle eines Webservices - dabei wird die Gültigkeit des Dokuments durch ein Schema der Web Services Description Language (WSDL) vorgegeben.

Webservices sind damit sich selbstbeschreibende und eigenständig agierende Software-Komponenten, die sich auch untereinander aufrufen können. Möglich gemacht wird dies über Universal Description, Discovery and Integration (UDDI) - einem übergeordneten Verzeichnisdienst zur Veröffentlichung von Webservices. Plattformen zur Realisierung von Webservices sind: .NET, Hypertext Preprocessor (PHP), Java mit JAX-RPC. Es sind aber auch Werkzeuge für die Realisierung diesbezüglicher Entwicklungen für die Programmiersprachen C und C++ verfügbar. Zur Realisierung der integrierten Plattform für Dienste-orientierte Geschäftsmodelle, Service Oriented Architecture (SOA) bilden Webservices neben anderen Verfahren eine der Basismethoden. Webservices können erreicht werden über die ihnen zugeordneten Uniform Resource Identifier (URI). Bekannte Webservices werden beispielsweise durch Google oder Amazon betrieben, wo auf das Internet bezogene Dienstleistungen angeboten werden.

Schichtenmodell des Web-Services

Schichtenmodell des Web-Services

Die Entwicklung der Plattform und der Rahmenarchitektur

Vom Internet zu den Webservices

Vom Internet zu den Webservices

Die Entwicklung einer Dienste-basierten und verteilten Plattform wird ermöglicht durch eine Komponenten-orientierte Rahmenarchitektur. Ganz allgemein definiert sind Dienste - in Begrenzung zu "klassischen" Komponenten - Applikationen, die eigenständig agieren können. Dienste können von einem Programm während der Laufzeit in einem Netzwerk identifiziert und über öffentlich bekannte Schnittstellen verwendet werden. Sogenannte Webservices stellen ein populäres und weit entwickeltes Konzept zur Realisierung von Dienste-basierten Systemen dar. Bei einem Webservice handelt es sich um eine in einem Netzwerk über Standardprotokolle wie HTTP oder das Simple Mail Transfer Protocol (SMTP) erreichbare Applikation. Die Schnittstellen dieser Applikation sind unter Verwendung einer XML-basierten, standardisierten Beschreibungssprache (WSDL) beschrieben und damit unabhängig von der zugrunde liegenden Implementierung.

Kommunikation 
   durch Webservices

Kommunikation durch Webservices

Webservices sind jedoch nicht mit Web-Anwendungen zu verwechseln, da Webservices keine Benutzeroberfläche zur Eingabe und Anzeige von Daten haben. Jedoch können Webservices von Web-Anwendungen genutzt werden. Die Interaktion mit anderen Applikationen stützt sich bei Webservices auf ein ebenfalls Plattform- sowie sprachunabhängiges und standardisiertes XML-Protokoll, Simple Object Access Protocol (SOAP).

Die Charakteristiken der Webservices

Webservices bilden ein Netz von Software-Diensten und sind identifizierbar an folgenden Charakteristika:

  • Durch den Aufbau auf XML werden die für Webservices spezifischen Daten immer in der Form von sogenannten wohldefinierten XML-Fragmenten dargestellt. Um die Plattformunabhängigkeit von Webservices nicht einzuschränken, wird dabei kein eigenes (Binär-)Format verwendet.
  • Durch die geringe Kopplung zwischen Client und Webservice können beide Komponenten unabhängig voneinander weiterentwickelt werden. Zudem sind dadurch die Möglichkeiten zu deren Wiederverwendung und Wartbarkeit verbessert.
  • Da Webservices ihren anfragenden Klienten eine Schnittstelle zur Verfügung stellen, die von den spezifischen Details der Implementierung abstrahiert, spricht man auch davon, dass Webservices eine Fassade - ein spezielles Design-Pattern - für die Geschäftslogik realisieren, auf denen sie basieren.
  • Mit einem Webservice können die Klienten synchron oder asynchron kommunizieren. Dabei resultiert aus der asynchronen Kommunikation gleichfalls eine geringere Kopplung der beteiligten Komponenten.
  • Da Webservices einen allgemeinen Mechanismus von Remote Procedure Calls (RPC) zur Verfügung stellen, wird der Zugriff auf andere Komponenten wie Enterprise Java Beans (EJB) oder .NET-Komponenten vereinheitlicht.
  • Webservices ermöglichen den Austausch von XML-codierten Dokumenten.
Jedoch sind die von Webservice verfolgten Ansätze sowie deren Funktionalitäten grundlegend nicht neu - vergleichbare Zielsetzungen verfolgen Technologien wie die Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM) oder Java Intelligent Network Infrastructure (JINI), einem Framework für verteilte Anwendungen. Diese wurden jedoch nicht speziell für die Kommunikation über das Web entwickelt, so dass sie der Architektur von Webservices vor allem im Hinblick auf ihre Unabhängigkeit von spezifischen Programmiersprachen und Plattformen unterlegen sind. Dazu trägt auch bei, dass SOAP beliebige in XML-beschreibbare Datenstrukturen unterstützt und kein eigenes verteiltes Objektmodell definiert. Weiterhin sind Webservices nicht an ein bestimmtes Übertragungsprotokoll zum Beispiel HTTP gebunden, es können abhängig von der Datenmenge auch das FTP-Protokoll oder SMTP für die asynchrone Übertragung von Daten eingesetzt werden.

Mit Universal Description, Disovery and Integration (UDDI) wird eine Schnittstelle für einen Verzeichnisdienst zur Veröffentlichung von Webservices definiert. UDDI wird durch die Organization for the Advancement of Structured Information Standards (OASIS) verwaltet. Der Vorgänger von UDDI war die Spezifikation DISCO (Discovery) von Microsoft, die eine Beschreibung des Webservices ergänzt um zusätzliche Informationen in der sogenannten DISCO-Datei zusammenfasst und wiederum auf XML-Strukturen basiert. Die zugrunde liegende DISCO-Spezifikation beschreibt jedoch nicht die Verwaltung von Webservices in einem Verzeichnisdienst, sondern nur die Struktur der DISCO-Datei selbst. Die Erreichbarkeit von Webservice ist durch eindeutig spezifizierte URIs gegeben.

Ein wichtiger Aspekt bei der Realisierung von Webservices ist deren Sicherheit. Hierzu werden wichtige Webservices entweder verschlüsselt oder durch eine eindeutige Authentifizierung unterstützt übertragen. Eine diesbezügliche Lösung wird mit Hypertext Transfer Protocol Secure (HTTPS) neben anderen Möglichkeiten wie Security Assertion Markup Language (SAML), XML Signature oder SML Encryption angeboten. Häufig wird auch im Zusammenhang mit Webservices deren mangelnde Performance genannt. Diesbezügliche Einflussgrößen sind vorwiegend XML bedingt, und werden durch das Parsen der XML-Dateien sowie deren Größe bestimmt.

Anwendung finden Webservices vorwiegend auf betriebswirtschaftlicher Basis im Business-to-Business-Bereich - auch B2B genannt. Dabei sollen Geschäftsprozesse unabhängig von Unternehmensgrenzen abgewickelt werden. Zur Unterstützung dieser Prozesse hat sich mit der Business Process Execution Language (BPEL) eine eigene, XML-basierte Sprache zur Beschreibung dieser Geschäftsprozesse entwickelt.

Informationen zum Artikel
Deutsch: Webservice
Englisch: web service - WS
Veröffentlicht: 03.12.2013
Wörter: 975
Tags: #Webservices
Links: .NET, Amazon, Aspekt, Asynchron, Asynchrone Kommunikation