Webdienst

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Ein Webdienst (engl. webservice; auch: Netzwerkdienst) ist eine Software-Anwendung, welche eine Schnittstelle für die Maschine-zu-Maschine- oder Anwendungs-Kommunikation über Rechnernetze wie das Internet zur Verfügung stellt. Dabei werden Daten ausgetauscht und auf entfernten Rechnern bzw. den darauf laufenden Servern Funktionen aufgerufen. Jeder Webdienst besitzt einen Uniform Resource Identifier, über den er eindeutig identifizierbar ist. Ausserdem enthält er je nach Implementierung eine Schnittstellenbeschreibung in maschinenlesbarem Format, welche festlegt, wie mit dem Webdienst zu interagieren ist, z. B. WSDL im XML-Format. Die Kommunikation kann über Protokolle aus dem Internetkontext (z. B. HTTP oder HTTPS) erfolgen. Über diese Protokolle können Daten beispielsweise in den Formaten XML oder JSON übertragen werden. Ein Webdienst ist plattformunabhängig und steht in der Regel mehreren Programmen zum Aufrufen bereit.

Einführung

Übertragen werden besondere XML-Daten, die nach SOAP kodiert sind. Letztlich stecken SOAP-Nachrichten im Körper einer HTTP-Nachricht - es gehört aber mehr dazu, als einen URL aufzurufen. Der Client muss SOAP-Nachrichten erzeugen und die Antworten verarbeiten können. SOAP dient hauptsächlich der Server-Server-Kommunikation, wobei einer der Server die Kommunikation als Client beginnt. Das erschwert anfänglich das Verständnis und die Suche nach Einsatzgebieten, denn das heutige WWW ist fast ausschliesslich Webbrowser-zentriert.

Die folgende Auflistung zeigt, wie diese Kommunikation praktisch aussieht. Zu sehen ist der Körper der SOAP-Nachricht, der sogenannte "SOAP-Envelope". Die Antwort ist ähnlich strukturiert. Da SOAP auf XML basiert, ist die Auswertung mit XML-Werkzeugen recht einfach.

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
                    xmlns:si="http://soapinterop.org/xsd"
                    xmlns:ns6="urn:GoogleSearch"
                    SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ns6:doGoogleSearch>
      <key        xsi:type="xsd:string">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</key>
      <q          xsi:type="xsd:string">site:php.comzept.de XML</q>
      <start      xsi:type="xsd:int">0</start>
      <maxresults xsi:type="xsd:int">5</maxresults>
      <filter     xsi:type="xsd:boolean">false</filter>
      <restrict   xsi:type="xsd:string"></restrict>
      <safeSearch xsi:type="xsd:boolean">false</safeSearch>
      <lr         xsi:type="xsd:string"></lr>
      <ie         xsi:type="xsd:string"></ie>
      <oe         xsi:type="xsd:string"></oe>
    </ns6:doGoogleSearch>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Die Kommunikation zwischen dem Webservice-Anbieter und dem Client (auch: Consumer) findet auf Serverebene statt. Es geht also nicht darum, Benutzern einen Webservice zur Verfügung zu stellen, sondern bestenfalls darum, diesen die Leistungen über eine Weboberfläche zugänglich zu machen. Aber auch das ist die Ausnahme.

Die Kommunikation wird durch die zugrunde liegenden Technologien (XML, SOAP, HTTP, WSDL usw.) so billig und einfach, dass sie in der Breite zur Anwendung kommen können. Früher gab es zwar auch schon Serverkommunikation, beschränkte sich aber auf wenige Anwendungen. Denkbar sind vor allem Partnernetzwerke, von der Bannerschaltung über einen gemeinsamen Ad-Server bis hin zu den beliebten Webringen. Gleichgültig, ob Artikel verkauft oder Subunternehmer gesucht oder als Sammelshop auf mehrere Lieferanten zugegriffen werden sollen, Webservices sind die ideale Kommunikationslösung.

Websites können ausserdem einen Aktualisierungsdienst anbieten, der auf Anfrage (eines anderen Servers) alle geänderten, gelöschten oder hinzugefügten Links zu einem vereinbarten Thema liefert. Eine intelligente Linkliste reorganisiert sich dann selbständig. Auf demselben Wege lassen sich auch Nachrichten des Tages oder Sportergebnisse liefern.

Mit XML, SOAP, HTTP und WSDL stehen gleich mehrere Protokolle, Normen und Verfahren bereit, um Entwicklern und Anwendern den Weg zu Webservices zu erleichtern - intern betrachtet sind dabei hauptsächlich XML und HTTP wichtig. SOAP und WSDL sind XML, und dass als Transportprotokoll meist HTTP zum Einsatz kommt, erleichert die Programmierung ungemein. SOAP ist nicht zwingend mit HTTP verknüpft, stattdessen können auch HTTPS und SMTP auftreten. Grundsätzlich schreibt der Standard überhaupt kein Protokoll vor - es muss nur in der Lage sein, XML-Daten zu übertragen.

Ausführung PHP-Programm
Funktionsaufruf SOAP
Transport HTTP, HTTPS, SMTP

Die Verwendung eines Webservice, allgemein als "konsumieren" bezeichnet, setzt die Kenntnis einer URL voraus, unter welcher der Dienst erreicht werden kann bzw. unter der weitere Informationen darüber zu finden sind.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wikipedia ger Webservicewbm Enzyklopädischer Artikel