52
XML-RPC & SOAP Sven Heß & Fabio Caprera Systemprogrammierung SS 08

XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

  • Upload
    lexuyen

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

XML-RPC & SOAP

Sven Heß & Fabio CapreraSystemprogrammierung SS 08

Page 2: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Inhalt

XML-RPCÜberblickEntstehungKonzeptFehlerbehandlungVor- und Nachteile

SOAPÜberblickEntstehungKonzeptFehlerbehandlungVor- und Nachteile

Live-DemoAusblick

Page 3: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Überblick

Extensible Markup LanguageRemote Procedure CallProtokoll zur Übertragung von DatenDatentransport über HTTPDarstellung der Daten in XML

Page 4: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Entstehung

Entwicklung von Dave WinerFirma UserLand Software (1992)Web CMS: FrontierXML-RPC (1998)

Kontakt mit Microsoft Gemeinschaft entwickelte Implementationen

Dave Winer

Page 5: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Sender Empfänger

Antwort

Anfrage

Page 6: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Nachrichten-ÜbermittlungHTTP-POST RequestHTTP Response

RequestMethodenaufrufParameter

ResponseRückgabewert

Parameter und Rückgabewerte sind Datentypen

Page 7: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Request: HTTP + XMLPOST/xmlrpc HTTP/1.0User-Agent: Mozilla/5.0 Host: 192.168.1.20Content-Type: text/xmlContent-length: 150

Page 8: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Beispiel einer XML-Nachricht – AnfragePOST/xmlrpc HTTP/1.0User-Agent: Mozilla/5.0Host: 192.168.1.20Content-Type: text/xmlContent-length: 150

<?xml version=“1.0“?><methodCall>

<methodName>Ausgabe</methodName><params>

<param><value><string>Hallo</string></value>

</param></params>

</methodCall>

Page 9: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Response: HTTP + XMLHTTP/1.0 200 OKDate: Tue, 20 Jun 2008 11:30:10 GMTServer: Apache/1.3.29Connection: closeContent-Type: text/xmlContent-length: 150

Page 10: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Übertragung

Beispiel einer XML-Nachricht – AntwortHTTP/1.0 200 OKDate: Tue, 20 Jun 2008 11:30:10 GMTServer: Apache/1.3.29Connection: closeContent-Type: text/xmlContent-length: 150

<?xml version=“1.0“?><methodResponse>

<params><param>

<value><string>Welt</string></value></param>

</params></methodResponse>

Page 11: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Inhalt

DatentypenInteger <int>4</int>Double <double>1.5</double>String <string>Hallo</string>Boolean <boolean>1</boolean>Datum <dateTime.iso8601>

20080520T11:30:10</dateTime.iso8601>

Base64 <base64>WE1MLVJQQw==

</base64>ArrayStruktur

Page 12: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Inhalt

Beispiel eines Arrays<value><array>

<data><value><string>Hallo</string></value><value><double>1.5</double></value><value><int>10</int></value><value><boolean>1</boolean></value>

</data></array>

</value>

Page 13: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Inhalt

Mehrdimensionale Arrays<value><array>

<data><value><string>Hallo</string></value><value><double>1.5</double></value><value>

<array><data><value><string>FH Wiesbaden</string></value><value><int>2</int></value>

</data></array>

</value></data>

</array></value>

Page 14: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Inhalt

Struktur: Schlüssel-Wert Paare<value><struct>

<member><name>Vorname</name> <value><string>Max</string></value>

</member><member>

<name>Alter</name><value><int>25</int></value>

</member></struct>

</value>

Page 15: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Konzept / Inhalt

Struktur: Verschachtelung möglich<value><struct>

<member><name>Array</name> <value>

<array><data> <value><string>FH Wiesbaden</string></value><value><double>2.5</double></value>

</data></array>

</value></member>

</struct></value>

Page 16: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Fehlerbehandlung

Fehlerbeispieleunbekannte Methodeungültige Parameter

Fehler als XML Antwortfault-Tag

Page 17: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Fehlerbehandlung

Fehlernachricht<?xml version=“1.0“ ?><methodResponse>

<fault><value>

<struct><member>

<name>faultCode</name><value><int>2</int></value>

</member><member><name>faultString</name><value><string>Too many parameters.</string></value>

</member></struct>

</value></fault>

</methodResponse>

Page 18: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

XML-RPC / Vor- und Nachteile

VorteilLeichte ImplementierbarkeitSimple

NachteilFeste DatentypenGebunden am Transportprotokoll(HTTP)

Page 19: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP

Page 20: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Überblick

Protokoll zur Übertragung von DatenEinfache NachrichtenRPC Prinzip (Request - Response)

Client-Server-ModellXML-NachrichtenEntwickelt von MicrosoftAbgeleitet von XML-RPCVersion 1.2 (W3C Empfehlung von 2003)SOAP = SOAP kein Akronym!(Simple Object Access Protocol)

Page 21: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Entstehung

Microsofts EroberungDave Winer an Bord holenXML-RPC veröffentlichen

Im Namen von Dave Winer (ohne MS)XML-RPC SOAPVerbündete suchen

IBMSAP AGLotus…

SOAP beim W3C einreichen (2000)

Standardisiertes Protokoll: SOAP 1.1Rekommandation: SOAP 1.2 (2003)

Page 22: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept

AufbauÜbertragungInhalt

Page 23: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept

AufbauÜbertragungInhalt

Page 24: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Transport-Protokoll (z.B. HTTP)Transport-Protokoll (z.B. HTTP)

SOAP Envelope

SOAP / Konzept / Aufbau

SOAP EnvelopeSOAP HeaderSOAP Body(Transport-Protokoll)

SOAP Envelope

SOAP HeaderSOAP Header

SOAP BodySOAP Body

Page 25: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Aufbau

SOAP EnvelopeWurzelelementNamespaces / Encoding

SOAP HeaderBeliebige XML-Informationen

Authentifizierung, Transaktionen, ...SOAP Attribute

mustUnderstand : booleanrelay : booleanrole : anyURI

SOAP EnvelopeSOAP Envelope

SOAP HeaderSOAP Header

Page 26: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Aufbau

SOAP BodyNutzdaten (Payload)Beliebige XML-InhalteFehlernachricht

SOAP BodySOAP Body

Page 27: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Aufbau<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<!- SOAP Header --><env:Header>

<login:Security xmlns:login=”http://beispielserver.de/login”env:mustUnderstand=”1”>

<login:username>Max Mustermann</login:username><login:password>ster08mu</login:password>

</login:Security></env:Header>

<!- SOAP Body --> <env:Body><text>Hallo Welt</text>

</env:Body>

</env:Envelope>

Page 28: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Aufbau<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<!- SOAP Header --><env:Header><login:Security xmlns:login=”http://beispielserver.de/login”

env:mustUnderstand="1"><login:username>Max Mustermann</login:username><login:password>ster08mu</login:password>

</login:Security></env:Header>

<!- SOAP Body --> <env:Body><text>Hallo Welt</text>

</env:Body>

</env:Envelope>

Page 29: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Aufbau<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">

<!- SOAP Header --><env:Header><login:Security xmlns:login="http://beispielserver.de/login"

env:mustUnderstand="1"><login:username>Max Mustermann</login:username><login:password>ster08mu</login:password>

</login:Security></env:Header>

<!- SOAP Body --> <env:Body><text>Hallo Welt</text>

</env:Body></env:Envelope>

Page 30: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept

AufbauÜbertragungInhalt

Page 31: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

Transportprotokoll undefiniertVorteil: flexibel, unabhängig

Verbreitet: HTTPRequest / Response enthaltenHTTP Codes verwendbarFirewall: Port 80 meist offenVerschlüsselung: HTTPS

Alternativen: FTP, SMTP, POP3, ...

Page 32: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

EinfacheNachricht (EDI)

asynchron

RPCAnfrage /AntwortsynchronVorteil:HTTP (Request / Response)

Sender Empfänger

Sender Empfänger

Page 33: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

RPC - Anfrage (Request)<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:ns1="http://localhost/websites/sysprog/soap-php/"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!- SOAP Header --><!- SOAP Body -->

<env:Body><ns1:translateFromGerman>

<param0 xsi:type="xsd:string">hund</param0></ns1:translateFromGerman>

</env:Body></env:Envelope>

Page 34: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

RPC - Antwort (Response)<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:ns1="http://localhost/websites/sysprog/soap-php/"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<!- SOAP Header --><!- SOAP Body -->

<env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:translateFromGermanResponse>

<rpc:result>return</rpc:result><return xsi:type="xsd:string">dog</return>

</ns1:translateFromGermanResponse></env:Body>

</env:Envelope>

Page 35: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

Message Path (1)Direkt

Sender Empfänger

Page 36: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

Message Path (2)Indirekt

Sender(inital sender)

Empfänger(ultimate receiver)

Intermediär 1 Intermediär m

Node 1 Node 2 Node n-1 Node n

Page 37: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

Message Path (2)Intermediäre

Header-Blöcke verarbeitenZ.B. Authentifizierung

Header AttributeRole : anyURI

next, none, ultimateReceiver, ...

Relay : booleanmustUnderstand : boolean

Intermediär m

Page 38: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Übertragung

Message Path (2)Routing Mechanismus nicht definiertZusätzl. Protokoll notwendig

Microsoft: WebService Routing Protocol

Page 39: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept

AufbauÜbertragungInhalt

Page 40: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Inhalt

SOAP Encoding

Regeln für Serialisierung der DatenEnthält gängigste DatentypenIndividuelles Encoding möglich

encodingStyle : anyURI

xmlns:env="http://www.w3.org/2003/05/soap-envelope"xmlns:enc="http://www.w3.org/2003/05/soap-encoding"

encodingStyle="http://www.anwendung.de/mein_encoding"

Page 41: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Inhalt

DatentypenstringintfloatbooleananyURIarray...

Page 42: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Konzept / Inhalt

Beispiel: int, string

Beispiel: array

<name xsi:type="xsd:string">Max Muster</name><alter xsi:type="xsd:int">35</alter>

<numbers enc:itemType="xs:int" enc:arraySize="2"><number>3</number><number>5</number>

</numbers>

Page 43: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Fehlerbehandlung

Fault-BlockInnerhalb SOAP BodyBesitzt mehrere Elemente

CodeReason(Detail)(Node)(Role)

V1.2 ungleich V1.1

SOAP BodySOAP Body

SOAP Fault

Page 44: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Fehlerbehandlung

Code - FehlercodesValue

SenderReceiverDataEncodingUnknownVersionMismatchMustUnderstand

Subcode - anwendungsspezifischValue

Page 45: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Fehlerbehandlung

Reason - FehlerbegründungText

Detail - Zusatzinfos der AnwendungNode - SOAP KnotenRole - Funktion des Knotens

Page 46: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Fehlerbehandlung<env:Body><env:Fault>

<env:Code><env:Value>env:Sender</env:Value><env:Subcode><env:Value>rpc:BadArguments</env:Value>

</env:Subcode></env:Code><env:Reason>

<env:Text xml:lang="en-US">Processing error</env:Text><env:Text xml:lang="de-DE">Bearb. Fehler</env:Text>

</env:Reason><env:Detail>

<message>Invalid card number</message></env:Detail>

</env:Fault></env:Body>

Quelle: www.w3.org

Page 47: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Fehlerbehandlung

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>

<soap:Fault><faultcode>soap:Server</faultcode><faultstring>Processing error</faultstring><detail>

<message>Invalid card number</message></detail>

</soap:Fault></soap:Body>

</soap:Envelope>

SOAP Fault V1.1

Page 48: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

SOAP / Vor- und Nachteile

VorteilStandardisiertPlattform-unabhängigFlexibelBreite Unterstützung

NachteilAufgeblähter CodeHoher Rechenaufwand

Page 49: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Inhalt

MotivationXML-RPC

ÜberblickEntstehungKonzeptFehlerbehandlungVor- und Nachteile

SOAPÜberblickEntstehungKonzeptFehlerbehandlungVor- und Nachteile

Live-DemoAusblick

Page 50: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Ausblick

XML-RPCWenige ImplementationenKaum erweitert (Stand 1999)

SOAPAnerkannter StandardBeliebt für WebServicesViele Implementationen / Erweiterungen

SOAP Attachments

Geeignet für kleine Projekte

Zukunftssicheres Protokoll

Page 51: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Quellen

XML-RPC Home Pagewww.xmlrpc.com

wikipedia.de - Wikipedia, die freie Enzyklopädiehttp://de.wikipedia.org/wiki/XML-RPC

http://de.wikipedia.org/wiki/SoapWorld Wide Web Consortium - Web Standards

http://www.w3.org/TR/soap12-part1/Understanding SOAP (2000)

Kennard Scribner, Mark C. Stiver – SAMSWeb Services: Die Standards (2004)

Tobias Hauser, Ulrich M. Löwer – Galileo Computing

Page 52: XML-RPC / SOAP - cs.hs-rm.deweber/sysprog/proj08/XML-RPC_SOAP.pdf · Sven Heß Fabio Caprera Systemprogrammierung SS 08 Inhalt {XML-RPC zÜberblick zEntstehung zKonzept zFehlerbehandlung

Sven HeßFabio Caprera Systemprogrammierung SS 08

Vielen Dank für die Aufmerksamkeit

Fragen?

KontaktSven Heß Fabio [email protected] [email protected]

Projekt-Homepagehttp://sysprog.fc-home.com