Datentausch per Webservice

Webservices mit PHP selbst gemacht

21.8.2009 von Redaktion pcmagazin und Timo Haberkern

Webservices haben sich für den Datenaustausch zwischen einzelnen Systemen bewährt. Inzwischen gibt es auch für PHP ausreichend Bibliotheken, um sowohl Clients als auch Server damit zu entwickeln.

ca. 2:25 Min
Ratgeber
  1. Webservices mit PHP selbst gemacht
  2. Teil 2: Webservices mit PHP selbst gemacht
  3. Teil 3: Webservices mit PHP selbst gemacht
  4. Teil 4: Webservices mit PHP selbst gemacht
  5. Teil 5: Webservices mit PHP selbst gemacht
Webservices mit PHP
Webservices mit PHP
© Archiv

Was ist ein Webservice? Die Antwort ist eigentlich ganz einfach: Ein Webservice ist ein Dienst, der von einem System (Server) zur Verfügung gestellt wird und der von einem anderen System (Client) genutzt wird, um bestimmte Aufgaben auf dem Server ausführen zu lassen. Webservices sind in der Regel plattformneutral und interoperabel.

Kommt Ihnen das bekannt vor? Legt man die Definitionsmesslatte nicht allzu hoch an, trifft dies auch auf die Anforderung von Webseiten von einem Webserver zu. Webservices sind im Gegensatz dazu meist auf Einzelfunktionen bezogen, die man auf einem anderen System aufrufen möchte.

Das Ziel ist es, Methoden des Webservices über das Netzwerk hinweg aufzurufen, um von dort Daten geliefert zu bekommen. Dieses Verhalten wird meist Remote Method Invocation (RMI) oder Remote Procedure Call (RPC) genannt. Der Webservice kann so räumlich getrennt vom aufrufenden System sein.

Solche Arten von Dienste sind beileibe nichts Neues. RMI oder RPC wird bereits seit Jahrzehnten eingesetzt. Webservices nutzen im Vergleich zu ihren Vorgängertechnologien allerdings bewährte Web-Übertragungsprotokolle, wie beispielsweise HTTP oder E-Mail, um ihre Daten auszutauschen.

SOAP Envelope

Das bis heute populärste Protokoll zur Umsetzung von Webservices ist SOAP. Dieses Ende der 90er-Jahre entwickelte Kommunikationsprotokoll hat sich über die Jahre hinweg zum beherrschenden Webservice-Standard entwickelt. SOAP basiert komplett auf XML. Die Daten werden in einen sogenannten SOAP-Envelope verpackt, der die eigentliche Nutzlast transportiert.

Die Nutzlast können XML-Daten sein oder andere Informationen in verschiedenen Formaten. Damit sowohl Client als auch Server die gleiche Sprache sprechen und dadurch erst eine sinnvolle Kommunikation möglich wird, bedarf es einer Beschreibung der Webservice-Schnittstelle, die sowohl für den Server als auch für den Client bindend ist.

Der Client weiß anhand dieser Beschreibung, welche Methoden ein Service zur Verfügung stellt, welche Parameter diese Methoden erwarten oder zurückliefern und welche Datentypen dabei notwendig sind. Die gesamte Kette Client-Definition-Server ist beim SOAP-Standard einigermaßen komplex, da hierbei auf größtmögliche Flexibilität und Programmiersprachenunabhängigkeit geachtet wurde.

Da SOAP nicht an ein spezielles Kommunikationsformat gebunden ist, können SOAP-Nachrichten über verschiedene Wege übertragen werden. HTTP ist zwar das Populärste, allerdings sind auch E-Mail, direkte Socket-Übertragung und weitere Internetprotokolle möglich.

WSDL

SOAP-Webservices sind plattformneutral. Das bedeutet, dass Sie verschiedene Technologien mixen können. So ist es beispielsweise möglich, den Server in Java und den Client in PHP zu programmieren oder den Server in PHP und den Client in Flex. Nahezu alle Kombinationen sind denkbar.

Aufgrund der Plattformunabhängigkeit existiert eine ebenfalls plattformunabhängige Beschreibung der vorhandenen Services. Das Beschreibungsformat für SOAP-Webservices ist WSDL (Webservice Definition Language).

Hier wird in standardisierter Form beschrieben, welche Funktionen zur Verfügung stehen, welche Über- und Rückgabewerte diese Funktionen erwarten beziehungsweise liefern und von welchem Typ diese Parameter sind. Anhand dieser Definition können sowohl der Server als auch der Client die entsprechenden Schnittstellen zur Verfügung stellen.

Mit den heutigen Tools erfolgt die Erstellung dieser Beschreibung in der Regel automatisch. Eine Abbildung zu diesem Workshop zeigt ein kleines Beispiel für eine WSDL-Datei, in der eine einzelne Funktion definiert wird. Wie anhand dieses Beispiels bereits zu sehen ist, ist das WSDL relativ geschwätzig.

Automatisch generiert

Bei umfangreicheren Webservices, mit mehreren Funktionen und vielen Übergabeparameter werden WSDL-Dateien schnell mehrere Hundert oder Tausend Zeilen lang. Dies ist auch einer der Gründe, warum man WSDL-Dateien selten von Hand erstellt.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.