46
Franck Borel - UB-Freiburg SOAP-Kurs Einführung und praktische Beispiele

SOAP-Kurs Einführung und praktische Beispiele

Embed Size (px)

DESCRIPTION

SOAP-Kurs Einführung und praktische Beispiele. Ziele des SOAP-Kurses. Grundbegriffe verstehen: Web-Services, SOA, WDSL, UDDI, usw. Zusammenhang zwischen SOAP und Web-Services verstehen Architektur der Web-Services kennen SOAP: Konzept, Übermittlung, Aufbau, Inhalt - PowerPoint PPT Presentation

Citation preview

Page 1: SOAP-Kurs Einführung und praktische Beispiele

Franck Borel - UB-Freiburg

SOAP-Kurs

Einführung und praktische Beispiele

Page 2: SOAP-Kurs Einführung und praktische Beispiele

2Franck Borel - UB-Freiburg

Ziele des SOAP-Kurses

• Grundbegriffe verstehen: Web-Services, SOA, WDSL, UDDI, usw.

• Zusammenhang zwischen SOAP und Web-Services verstehen

• Architektur der Web-Services kennen

• SOAP: Konzept, Übermittlung, Aufbau, Inhalt

• Die wichtigsten SOAP-Implementierung für PHP nutzen können: PHP-SOAP, PEAR::SOAP

Page 3: SOAP-Kurs Einführung und praktische Beispiele

3Franck Borel - UB-Freiburg

Übersicht

• SOAP in der Theorie (heute)– Web-Services– SOAP– WSDL– UDDI

• SOAP in der Praxis (morgen)– SOAP-Implementierungen für PHP– SOAP mit PHP-SOAP– SOAP mit PEAR::SOAP– WSDL mit PEAR::SOAP

Page 4: SOAP-Kurs Einführung und praktische Beispiele

4Franck Borel - UB-Freiburg

Am Anfang war der Web-Service

• SOAP ist das Kernstück der Web-Services

• In manchen Veröffentlichungen erscheint SOAP als Synonym für Web-Services– Nicht korrekt, aber verdeutlicht dessen Bedeutung für

den Web-Service

• Wie hängen SOAP und Web-Services zusammen?

• Was ist den überhaupt ein Web-Service und wofür braucht man diesen?

Page 5: SOAP-Kurs Einführung und praktische Beispiele

5Franck Borel - UB-Freiburg

Was ist ein Web-Service?

• Ein Web-Service ist ein Stück Logik, das sich irgendwo auf einem Server im Internet befindet und über Standard-Internet-Protokolle wie HTTP oder SMTP ansprechen lässt.

• Kommunikationspartner sind hier Maschinen; Maschine-zu-Maschine-Kommunikation

• Kein Benutzer notwendig!• Maschinen sprechen unterschiedliche Sprachen

– Einheitliche Standards für den Daten -und Funktionalitätsaustausch notwendig

Page 6: SOAP-Kurs Einführung und praktische Beispiele

6Franck Borel - UB-Freiburg

Web-Services: Die Idee

Anwendungs-programm Web-Service Web-Service-

Nutzer

Plattform- und sprachspezifische Kommunikation

Plattform- und sprachunabhängige Kommunikation

Page 7: SOAP-Kurs Einführung und praktische Beispiele

7Franck Borel - UB-Freiburg

Was ist ein Web-Service?

Anwendungs-programm Service-Proxy Service-Listener

Web-Anwendungsserver

Page 8: SOAP-Kurs Einführung und praktische Beispiele

8Franck Borel - UB-Freiburg

Was ist ein Web-Service?

• Paradebeispiele– Google: Google-Suche auf der eigenen Seite, z. B.

sjaensch.org– Amazon: Shop-Suche als Partnerprogramm, z. B.

http://www.php9.com/amazon.php– Dell: Warenwirtschaftssystem– vascoda :-)

• Nutzt SOAP-RPC für die Metasuche• Jeder Dienstanbieter bietet die Funktion "query"• SOAP-Anfrage enthält Suchkriterien• SOAP-Antwort enthät Datensätze

Page 9: SOAP-Kurs Einführung und praktische Beispiele

9Franck Borel - UB-Freiburg

Web-Services: Eigenschaften

• Modular, einfach und dezentral• Technologien müssen XML-basiert sein• Adressierbar sein• Plattformunabhängig• Erweiterbar• Sicher und verlässlich• Administrierbar• RPC-Unterstützung (RPC = Remote Procedure Calls)• Dokumentenaustausch

Page 10: SOAP-Kurs Einführung und praktische Beispiele

10Franck Borel - UB-Freiburg

Web-Services: Konzept

Web-Service Protokollstapel (siehe auch W3C)

Ebene Protokolle

Entdeckung

Beschreibung

Verpackung

Transport

Netzwerk

UDDI, DISCO, WSIL, ebXML

WSDL, RDF, ebXML

SOAP, XML-RPC

HTTP, SMTP, FTP, BEEP…

TCP/IPVerpackt die

Nutzdaten

Verpackt die Nutzdaten

Beschreibung der verpackten Nutzdaten

Beschreibung der verpackten Nutzdaten

Namensdienst für Web-Services: Auffinden

von WSDL zu interessierenden Web-

Services

Namensdienst für Web-Services: Auffinden

von WSDL zu interessierenden Web-

Services

Page 11: SOAP-Kurs Einführung und praktische Beispiele

11Franck Borel - UB-Freiburg

Web-Services: Interaktionsmodell

• Interaktionsmodell basiert auf SOA (Service Oriented Architecture)

Interaktion

Finden

Web-Service-Verzeichnis

Publizieren

Bietet Dienst nach außen hin

an

Bietet Dienst nach außen hin

an

WSD

Dienst wird in einem WSD-

Dokument beschrieben und beim Service-Verzeichnis registriert

Dienst wird in einem WSD-

Dokument beschrieben und beim Service-Verzeichnis registriert

Web-Service-Anbieter

Web-Service- Nutzer

Muss WSD kennen, damit er korrekt auf

den Dienst zugreifen

kann

Muss WSD kennen, damit er korrekt auf

den Dienst zugreifen

kann

Verfügbare Dienste

Verfügbare Dienste

WSD

Web Service Description

Web Service Description

SOAP

NutzdatenNutzdaten

Page 12: SOAP-Kurs Einführung und praktische Beispiele

12Franck Borel - UB-Freiburg

Web-Services: Interaktionsmodell

• Möglichkeiten der Ausgestaltung des Interaktionsmodells:– Web-Service-Konsument und -Anbieter kennen sich vor der

Interaktion. Syntax und Semantik ihrer Interaktionen muss beiden Partnern klar sein.

– Web-Service-Konsument und -Anbieter kennen sich vorher, die WSD wird dynamisch geladen. Semantik muss klar sein.

– Es gibt mehrere Web-Service-Anbieter, die Auswahl des Dienstes erfolgt manuell und die WSD wird dynamisch geladen.

– Es gibt mehrere Web-Service-Anbieter, die Auswahl des Dienstes erfolgt manuell und die Web-Service-Beschreibung kommt vom Web-Service-Anbieter.

– Es gibt mehrere Web-Service-Anbieter, die Auswahl erfolgt automatisch.

Page 13: SOAP-Kurs Einführung und praktische Beispiele

13Franck Borel - UB-Freiburg

Web-Services ausprobieren

• Kleines Beispiel zum Ausprobieren:<?php$client = new SoapClient('http://www.xmethods.net/sd/2001/BabelFishService.wsdl');$result = $client->BabelFish('de_en', 'Hallo Welt');echo $result;?>

Page 14: SOAP-Kurs Einführung und praktische Beispiele

14Franck Borel - UB-Freiburg

Web-Services: Alternativen

• CORBA (Common Object Request Broker Architecture)

• REST (Representional State Transfer)

• Remoting: .NET Remoting, Java RMI

• EDI (Electronic Data Interchange)

Page 15: SOAP-Kurs Einführung und praktische Beispiele

15Franck Borel - UB-Freiburg

SOAP: Geschichte

• ~1998 Dave Winer veröffentlicht "RPC over HTTP via XML"

• Dave Winer entwickelt XML-RPC (unterstützt von Microsoft)

• Microsoft leitete von XML-RPC SOAP ab• Am 18. April 2000 reichte Microsoft mit Unterstützung

von Ariba, HP, IBM, IOAN Technologies , SAP AG usw. SOAP 1.1 beim W3C ein

• Die aktuelle Version von SOAP ist 1.2 und liegt seit Juni 2003 als Empfehlung beim W3C vor

Page 16: SOAP-Kurs Einführung und praktische Beispiele

16Franck Borel - UB-Freiburg

SOAP: Definition

• SOAP ehemals Simple Object Access Protocol– Von "simple" kann bei dem Standard keine Rede sein– Mit "Object Access" (Objektzugriff) hat das Protokoll

wenig zu tun– Seit Version 1.2 ist SOAP kein Akronym mehr!

• Definition: SOAP ist ein leichtgewichtiges Protokoll (Thin-Client-Protokoll) zum Austausch struturierter Informationen in einer dezentralisierten verteilten Umgebung.

Page 17: SOAP-Kurs Einführung und praktische Beispiele

17Franck Borel - UB-Freiburg

SOAP: Eigenschaften und Spezifikation

• Einfaches und erweiterbares Protokoll• Grundausstattung ohne Sicherheit, Verlässlichkeit und

Transaktionen• Spezifikation ist sehr offen, aber umfangreich • Zur Zeit in der Version 1.2:

– XML Protocol Working Group

– SOAP Version 1.2 Part0: Primer → Allgemeine Einführung

– SOAP Version 1.2 Part1: Messaging Framework →Aufbau und Funktionsweise einer SOAP-Nachricht

– SOAP Version 1.2 Part2: Adjuncts →Zusätzliche Definitionen

Page 18: SOAP-Kurs Einführung und praktische Beispiele

18Franck Borel - UB-Freiburg

SOAP: Nachrichtenformat

Transportprotokoll (HTTP)

SOAP-Envelope

SOAP-HeaderHeaderblock

Headerblock

SOAP-Body

Nachricht

Dient zur Angabe von Informationen, die nicht direkt als Anwendungsdaten zu klassifieren sind (z. B. Transaktions-

nummer) .Der Header ist optional!

Wurzelelement und Namensraum.

Obligatorisch

Anwendungs-spezifischer Teil

Transportiert die Anwendungsdaten.

Obligatorisch

Page 19: SOAP-Kurs Einführung und praktische Beispiele

19Franck Borel - UB-Freiburg

SOAP: Nachrichtenformat

• Beispiel:<?xml version=„1.0“ encoding=„utf-8“?><env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"xmlns:xsi="http://www.w3.org/2001/XML-Schema-instance"Xmlns:xsd="http://www.w3.org/2001/XMLSchema"><env:Header>...</env:Header><env:Body><r:reservierung xmlns:r="http://www.airborel.de/Reserierung"><r:hinflug> <r:abflugort>Freiburg</r:abflugort> <r:ankunftsort>Los Angeles</r:ankunftsort></r:hinflug><r:rueckflug>...</r:rueckflug></env:Body></soap:Envelope>

Header (optional)

SOAP-Nachricht

Namensraum für den anwendung-spezifschen Teil

SOAP-Nachrichten verwenden einen eigenen Namensraum für alle Tags, die zum

Envelope gehören (hier env)

Page 20: SOAP-Kurs Einführung und praktische Beispiele

20Franck Borel - UB-Freiburg

SOAP: Übermittlung

• Für die Praxis kann man die Spezifikation auf folgende Punkte vereinfachen:– Nachrichten-Art = Message Exchange Pattern

(MEP): In der Praxis entweder RPC-MEP (RPC/encoded) oder dialog-orientierte MEP (document/literal)

– Pfad der Nachricht: Kommunikation läuft direkt vom Sender zum Empfänger

– Protokollbindung: HTTP ist Wahl der meisten Implementierungen und Anwendungen

Page 21: SOAP-Kurs Einführung und praktische Beispiele

21Franck Borel - UB-Freiburg

SOAP: Übermittlung

• Dialogorientierte MEP– Nachrichten werden in einer

Richtung zwischen den SOAP-Knoten ausgetauscht

– asynchron

• RPC-MEP– Anfrage-Antwort – synchron

NachrichtSender Empfänger

Sender EmpfängerAntwort

Anfrage

Page 22: SOAP-Kurs Einführung und praktische Beispiele

22Franck Borel - UB-Freiburg

SOAP: Übermittlung

• Protokollbindung– HTTP ideal als Transportmodell

• Request-Response-Muster passt hervorragend zum SOAP-RPC-Stil

• URIs identifizieren die Endpunkte

• Bekannte Adressierungsschemata können für SOAP-Knoten übernommen werden

• Auch in HTTP gibt es Zwischenknoten (z. B. Proxies), so dass auch hier die beiden Konzepte sehr gut zusammenpassen

Page 23: SOAP-Kurs Einführung und praktische Beispiele

23Franck Borel - UB-Freiburg

SOAP Encodings

• Web-Service-Anbieter und –Konsument müssen die gleiche Sprache sprechen

• SOAP-Encoding: Erlaubt die Angabe von Datentypen für ein XML-Element – SOAP-Spezifikation 1.1: http://schemas.xmlsoap.org/soap/encoding– SOAP-Spezifikation 1.2: http://www.w3.org/2003/05/soap-encoding

• Seit Version 1.2 sind diese Kodierungsregeln optional• XML-Schemadefinition statt SOAP-Encoding• SOAP-Implementierungen übernehmen das Encoding für uns. Uff

!• Vorsicht! Manche Implementierungen sind sich nicht einig, welche

Encoding-Variante angewandt werden soll:– Am verbreitesten RPC/encoded– Mickeysoft setzt alles auf document/literal

Page 24: SOAP-Kurs Einführung und praktische Beispiele

24Franck Borel - UB-Freiburg

SOAP-Encodings

• Datentypen– An die Datentypen des XML-Schema-Standards

angelehnt: http://www.w3.org/TR/xmlschema-2/– Aufteilung in einfache (primitive) und komplexe

Datentypen• Primitive Datentypen: String, boolean, int, byte…

• Komplexe Datentypen: Array

Page 25: SOAP-Kurs Einführung und praktische Beispiele

25Franck Borel - UB-Freiburg

SOAP Fehlermanagement

• Fehlermanagement– SOAP-Fault: Besonderer Nachrichtentyp, der über

Fehler informiert– Fehler werden von SOAP-Spezifikationen 1.1 und 1.2

unterschiedlich behandelt• Fehlermanagement ist der beiden SOAP-Versionen ist

inkompatibel • neue Fehlercodes (z. B. DataEncodingUnknown)• Andere Namen (z. B. Client wurde durch Sender ersetzt)• Es gibt Regeln, wie eine Implementierung sich verhalten

muss, damit sie mit beiden Spezifikationen zurecht kommt!

Page 26: SOAP-Kurs Einführung und praktische Beispiele

26Franck Borel - UB-Freiburg

SOAP: Aufbau

Funktionalität Version 1.1 Version 1.2

Spezifikation 1 Teil 3 Teile

Namensraum http://schemas.xmlsoap.org/soap/envelope

http://www.w3.org/2003/05/soap-envelope

Encoding Frei wählbar. Spezifikation:

http://schemas.xmlsoap.org/soap/encoding

Frei wählbar. Spezifikation aktualisiert: http://www.w3.org/2003/05/soap-encoding

Intermediäre und Nachrichten-verteilung

Actor-Attribut Intermediäre sind SOAP-Knoten, die Rollen annehmen. SOAP 1.2 reguliert die Nachrichten-Weiterleitung exakter

Fehler-Management

Fehler enthält vier Elemente. Der Fehlercode gibt die Art des Fehlers aus.

Vollständig überarbeitet. Neue Fehlercode!

Elemente nach dem SOAP-Body

SOAP 1.1 erlaubt Elemente nach dem SOAP-Body

SOAP 1.2 untersagt Elemente nach dem SOAP-Body

Binding Beschreibung der Bindung an HTTP Allgemeine Spezifikation zur Bindung an andere Protokolle

Page 27: SOAP-Kurs Einführung und praktische Beispiele

27Franck Borel - UB-Freiburg

Web-Service: Beispiel

• Im Browser bitte folgende URL eingeben:– http://www.xmethods.net

Page 28: SOAP-Kurs Einführung und praktische Beispiele

28Franck Borel - UB-Freiburg

WSDL: Wofür WSDL?

• Zur reinen Kommunikation reicht SOAP aus

• Wie soll man aber wissen, welche Methoden ein Web-Service bietet?

• Wir brauchen daher eine Beschreibung des Dienstes und eine Beschreibungssprache!

Page 29: SOAP-Kurs Einführung und praktische Beispiele

29Franck Borel - UB-Freiburg

Konzept der WSDL

• Beschreibt einen Web-Service, genauer:– Beschreibt die anwendungsspezifischen Teil, der innerhalb einer

SOAP-Nachricht verschickt wird• Die Implementierung des Kommunikationssystem soll

automatisch erstellt werden (Maschine redet mit Maschine)

• XML-Dokument mit einem – abstrakten Teil:

• Name des Dienstes• Beschreibung der ausgehenden und eingehenden Nachrichten

– Konkreten Teil:• Beschreibung der Protokollbindung• Adresse des Dienstes

Page 30: SOAP-Kurs Einführung und praktische Beispiele

30Franck Borel - UB-Freiburg

Wo wird die WSDL eingesetzt?

• Interaktionsmodell

Web-Service-Anbieter

Web-Service-Verzeichnis

Web-Service-Nutzer

Interaktion

Finden Publizieren

WSD

WSD

SOAP

Page 31: SOAP-Kurs Einführung und praktische Beispiele

31Franck Borel - UB-Freiburg

WSDL: Aufbau

definitions

types

message

portType

binding

service

•Grundstruktur der WSDL-Datei:

Datentypen-Definitionen

Name des Dienstes, Namensräume,

verwendete Standards

Nachrichten-formate (In-Out)

Schnittstellen-beschreibung mit

Hilfe von definierten

Mustern Beschreibt die Bindung:

Operationen einer definierten

Schnittstelle (interface)

Endpunkte und Beschreibung des Dienstanbieters

Page 32: SOAP-Kurs Einführung und praktische Beispiele

32Franck Borel - UB-Freiburg

WSDL: Aufbau

• Beispiele:– Google : http://api.google.com/GoogleSearch.wsdl– Amazon:

http://soap.amazon.com/schemas2/AmazonWebServices.wsdl

– Vascoda: http://vifphys.tib.uni-hannover.de/WebServices/VASCODA/vascoda.wsdl

Page 33: SOAP-Kurs Einführung und praktische Beispiele

33Franck Borel - UB-Freiburg

UDDI

• UDDI = Universal Description, Discovery and Integration• UDDI ist ein Verzeichnisdienst und dient dazu Web-

Services zu finden• Konzept: Web-Services sollen vom Service-Anbieter im

Verzeichnis publiziert und vom Service-Konsumenten im Verzeichnis gefunden werden

• Ähnlich wie LDAP aber auf Web-Services zugeschnitten (es gibt Bemühungen, LDAP mit UDDI zusammenzubringen)

• Gründer: Ariba, IBM und Kleinstweich• Beispiel: http://uddi.microsoft.com

Page 34: SOAP-Kurs Einführung und praktische Beispiele

34Franck Borel - UB-Freiburg

UDDI: Aufbau

Service-AnbieterUniversal Business Registry

Registrar

UDDI-Operator 1

Möglichkeit 1: Meldet direkt an

Möglichkeit 2: Meldet an

UDDI-Operator 2Trägt ein

Datenabgleich über GUIDs

Privates UDDI-Verzeichnis

Möglichkeit 3: Meldet beim privatem Verzeichnis

Firmen bieten öffentliche UDDI-Operatoren an z.B. IBM, SAP

Firmen bieten öffentliche UDDI-Operatoren an z.B. IBM, SAP

UDDI Operator Council regelt, wer zum UBR

gehören darf

UDDI Operator Council regelt, wer zum UBR

gehören darf

Page 35: SOAP-Kurs Einführung und praktische Beispiele

35Franck Borel - UB-Freiburg

Abschließende Worte

• Muss ich SOAP und WSDL jemals selbst anfassen?– Man kann Web-Services implementieren, ohne jemals einen

Blick auf die WSDL-Beschreibung oder auf SOAP-Datenpakete geworfen zu haben

– Es gibt eine Reihe von Werkzeugen, die uns die Arbeit abnehmen

– Aber: • Für das Konzipieren von Web-Services ist es wichtig die

dahinterliegenden Mechanismen zu kennen (auch die Frage, ob ich überhaupt meine Anwendung als Web-Serice konzipieren möchte)

• Debuggen wird leichter• Für die Entwicklung von Web-Service-Konsumenten muss man die

WSDL-Beschreibung zumindest lesen können, um besser zu verstehen, wie die Software-APIs verwendet werden müssen

Page 36: SOAP-Kurs Einführung und praktische Beispiele

36Franck Borel - UB-Freiburg

SOAP Quiz

• SOAP ist ein Akronym für?• SOAP braucht man für?• Wo finde ich die SOAP-Spezifikationen?• Bestandteile einer SOAP-Nachricht?• Welche Protokoll-Standards kann ich verwenden um eine SOAP-

Nachricht zu transportieren?• Welche Übermittlungsarten werden von SOAP unterstützt?• Wofür brauche ich Encoding?• Wer war der Erfinder von XML-RPC?• Bestandteile des Webservices?• Wo liegen die WSDs?

Page 37: SOAP-Kurs Einführung und praktische Beispiele

37Franck Borel - UB-Freiburg

SOAP in der Praxis

• SOAP wurde für den Nachrichtenaustausch für Web-Services entwickelt!– Austausch von Nachrichten zwischen Dienstnutzer und

Dienstanbieter– Die Nachrichten sollen auch in einem heterogenen

Umfeld ausgetauscht werden können– Das Nachrichtenformat ist XML– Es soll "transportabel" sein, d.h. Transportprotokolle

wie HTTP, SMTP, TCP, POP3, Jabber müssen in der Lage sein, die Nachrichten transportieren zu können.

Page 38: SOAP-Kurs Einführung und praktische Beispiele

38Franck Borel - UB-Freiburg

SOAP in der Praxis

• Der Weg zum eigenen Web-Service mit SOAP

Page 39: SOAP-Kurs Einführung und praktische Beispiele

39Franck Borel - UB-Freiburg

SOAP mit PHP

• SOAP-Implentierungen für PHP– SOAPx4: Urgroßmutter der PHP-Implementierungen. Bildet die

Basis für andere Implementierungen.

– NuSOAP: Weiterentwicklung von SOAPx4

– PEAR::SOAP: Weiterentwicklung von SOAPx4

– ez SOAP: SOAP-Implementierung für das CMS eZ Publish

– PHP-SOAP: C-basierte PHP-Erweiterung

– SWSAPI: Einfache API für Web-Services auf Basis von SOAPx4

– Krysalis: Framework für Web-Services auf der Basis von XSLT

Page 40: SOAP-Kurs Einführung und praktische Beispiele

40Franck Borel - UB-Freiburg

SOAP mit PHP

• Welche API sollen wir nehmen?– PEAR::SOAP wird zur Zeit am aktivsten entwickelt

und ist das beliebteste SOAP-Paket. • Sämtliche Versionen nur im Beta-Status!

– NuSOAP: Man findet viele Einführungen zu SOAP mit PHP in denen NuSOAP verwendet wird.

• Probleme mit der Fehlerrückgabe!

– PHP-SOAP: Unterstützt SOAP1.1/1.2 und WSDL 1.1– Die restlichen Pakete führen ein Nischendasein

Page 41: SOAP-Kurs Einführung und praktische Beispiele

41Franck Borel - UB-Freiburg

SOAP mit NuSOAP

• Wie nutze ich die API?– NuSOAP besteht aus einer ZIP-Datei, die die Datei nusoap.php

enthält.

– Nicht schön: SOAP-PHP und NuSOAP verwenden den gleichen Klassennamen "soapclient". Um NuSOAP und SOAP-PHP gleichzeitig verwenden zu können, muss man in der Datei nusoap.php alle Einträge mit "soapclient" durch "soapclient<irgendetwas>" austauschen.

– Diese Datei muss nur noch integriert eingebunden werden:• require_once "nusoap.php"

Page 42: SOAP-Kurs Einführung und praktische Beispiele

42Franck Borel - UB-Freiburg

PHP-SOAP

• Wie nutze ich die API? – Um die Erweiterung nutzen zu können, muss PHP mit

der Option -enable-soap konfiguriert werden.– http://de.php.net/manual/de/ref.soap.php

Page 43: SOAP-Kurs Einführung und praktische Beispiele

43Franck Borel - UB-Freiburg

PHP-SOAP

• Beispiele zum ausprobieren:– Einfacher Web-Service-Anbieter + -Konsument– Web-Service-Anbieter Server mit Parametern + Web-

Service-Konsument– Web-Service-Anbieter mit Parameter und

Fehlerrückgabe (fault) + Web-Service-Konsument– Web-Service-Konsument mit Debugging

Page 44: SOAP-Kurs Einführung und praktische Beispiele

44Franck Borel - UB-Freiburg

SOAP mit PEAR::SOAP

• Wie nutze ich die API? – PEAR::SOAP wird mit dem PEAR-Framework installiert, diese

ist ein wenig tricky:PEAR installierenpear install channel-update pear.php.netpear install Net_Socketpear install -f Net_DIMEpear install Net_URLpear install HTTP_Requestpear install Mail_Mimepear install channel://pear.php.net/SOAP-0.10.1

– PEAR::SOAP wird z. B. require_once "SOAP/Server.php" um einen Web-Service zu erstellen

Page 45: SOAP-Kurs Einführung und praktische Beispiele

45Franck Borel - UB-Freiburg

SOAP mit PEAR::SOAP

• Beispiele zum ausprobieren:– Einfacher Web-Service-Anbieter/Konsument– Web-Service-Anbieter/Konsument mit Parametern– Web-Service-Anbieter/Konsument mit komplexen

Datentypen

Page 46: SOAP-Kurs Einführung und praktische Beispiele

46Franck Borel - UB-Freiburg

WSDL

• WSDL mit PEAR::SOAP