Webdienst

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Ein Webservice (dt. Webdienst, Netzwerkdienst) ist eine Software-Anwendung, die mit einem URI eindeutig identifizierbar ist und deren Schnittstellen als XML-Artefakte definiert, beschrieben und gefunden werden können. Ein Webservice unterstützt die direkte Interaktion mit anderen Software-Agenten unter Verwendung XML-basierter Nachrichten durch den Austausch über internetbasierte Protokolle.

Webservices laufen als Anwendungen auf Webrechnern und sind über eine standardisierte Schnittstelle (öffentlich) verfügbar. Zwischen Client und Server kann sich eine umfassende Kommunikation abspielen, die über den Aufruf dynamischer Webseiten weit hinausgeht. Als Protokoll dient HTTP, was die Nutzung in vielen Umgebungen erleichtert.

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

Vorlage:Weblinks1