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



Ähnliche Dokumente
XML-RPC, SOAP und Web Services. Jörn Clausen

WebServices: Kommunikation

FuE-Bereich IuK-Systeme im Gesundheitswesen

Architektur von SOAP basierten Web Services

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

SOAP Simple Object Access Protocol

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Aufbau von SOAP- Nachrichten

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Webservices Ein Vortrag von:

Implementierung von Web Services: Teil I: Einleitung / SOAP

Grundlagen der Web-Entwicklung INF3172

XML und SOAP Einführung und Grundlagen

XML-Webservices & SOAP

Verteilte Systeme: Übung 4

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

epayment Leistungen des Bundes einfach, schnell und sicher bezahlen mit Payment Eine Idee mit Zukunft

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

Literatur. VA SS Teil 13/Web-Services I

XML-RPC zur Backend- Kommunikation in einem mobilen SBB-Projekt

Workflow, Business Process Management, 4.Teil

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

SOA mit.net: Vom Geschäftsprozess zur Lösung

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am

Wiederholung: Beginn

XML Grundlagen. Andreas Rottmann,Sebastian Riedl. 27. August Quit Full Screen Previous Page Next Page GoTo Page Go Forward Go Back

Thema: Web Services. Was ist ein Web Service?

Software Reuse Sommer 2004

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Einführung in SOAP. Seminar E-Services. von Christoph Kurek

Web Services Soap. Vladyslav Kutsenko Seminar Web services Vortrag zum Thema Soap

Securing SOAP e-services

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

Man liest sich: POP3/IMAP

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Web Services. Standards und Realisierung in Java

Kapitel 5 Web-Services

Web Service Entwicklung mit Java. Sven Lindow

VVA Webservice Online Lieferbarkeits-Abfrage

SOAP. SOAP: Envelope

Theorie und Praxis einer JSON-RPC-basierten Web-API

Java und XML 2. Java und XML

Vergleich SOAP und REST

SOAP - Ein Überblick

SAP NetWeaver Gateway. 2013

Zustandsgebundene Webservices

Web-Konzepte für das Internet der Dinge Ein Überblick

Web Services: Einführung Web-basierte Anwendungen. Erinnerung: Wer "redet" mit wem? Web Services: XML-RPC und SOAP

Web Services - Zusammenfassung. Autor: Roman Bühler

Entwurf zum Web-Service Rechnung

Auszug aus JAX-WS Folien

Entwicklung eines interoperablen, multimedialen Teaching-File-Service: Web-Service unterstützter Wissenstransfer in der Radiologie

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

Java Web Services mit

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

AKWi: SOA SOA-Technologiebenchmark Java RMI vs. Microsoft WCF

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand

Seminararbeit. XML-RPC vs. SOAP

WebServices Zwischen Buzzword und Nutzen

XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS XML Vorlesung ETHZ SS

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

pr[sms] MMS-MM7/SOAP Schnittstelle Version: 1.1 Stand: Autor: Gollob Florian

Motivation. Web Services in der Bioinformatik. Web Services. Motivation (2) Definition

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis

Termin 4: Web Services Computing

Web Services: Inhalt

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Technische Anforderungen. zum Empfang. von XML-Nachrichten

Was ist SASL? Simple Authentication and Security Layer

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Verteilte Systeme: Übung 4

Anwendungsprotokolle: HTTP, POP, SMTP

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Der shopinfo.xml-standard

VS11 Slide 1. Verteilte Systeme. Vorlesung 11 Sebastian Iwanowski FH Wedel

9.7 Web-Dienste. Web Server für beliebig programmierte Dienste einsetzen, d.h. Web als Middleware

Beispiel einer Web-Service gestützten Systematischen Suche in den Beständen des Stadtgeschichtlichen Museums Leipzig

DV-Praktikum. Probleme mit der Hausaufgabe?

Inhalt. ! Einführung. ! Model/Architektur und Protokoll-Stack. ! Begriffe XML-RPC, SOAP, WSDL und UDDI. ! Web Services Ablauf (Anhand eines Beispiels)

Seminar Internet Dienste. Webservices

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock

Web Services Einsatzmöglichkeiten für das Information Retrieval im WWW

Internet Protokolle für Multimedia - Anwendungen

Microsoft.NET und SunONE

.NET-Networking 2 Windows Communication Foundation

Java Web Services. Seminarunterlage. Version 4.02 vom

Vergleich von SOAP, XML-RPC und REST

Enterprise Application Integration Erfahrungen aus der Praxis

Zur Definition von Web-Services

Überblick. Fernaufrufe Motivation Stubs und Skeletons Marshalling und Unmarshalling Automatisierung XML-RPC. c td VS (SS17) Fernaufrufe 3 1

51. Jahrestagung der. Deutschen Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie (gmds)

Rechnernetze Übung 12

Techniken von Web Services

Client/Server-Systeme

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Inhalt Einführung Was ist SAML Wozu braucht man SAML Wo wird SAML verwendet kleine Demo SAML. Security Assertion Markup Language.

COI-BUSINESSFLOW SOAP-SERVER MODUL INFORMATION

Web Services - Tutorial

Transkript:

XML-RPC & SOAP & Fabio Caprera Systemprogrammierung SS 08

Inhalt XML-RPC Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile SOAP Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile Live-Demo Ausblick

XML-RPC / Überblick Extensible Markup Language Remote Procedure Call Protokoll zur Übertragung von Daten Datentransport über HTTP Darstellung der Daten in XML

XML-RPC / Entstehung Entwicklung von Dave Winer Firma UserLand Software (1992) Web CMS: Frontier XML-RPC (1998) Kontakt mit Microsoft Gemeinschaft entwickelte Implementationen Dave Winer

XML-RPC / Konzept / Übertragung Anfrage Antwort Sender Empfänger

XML-RPC / Konzept / Übertragung Nachrichten-Übermittlung HTTP-POST Request HTTP Response Request Methodenaufruf Parameter Response Rückgabewert Parameter und Rückgabewerte sind Datentypen

XML-RPC / Konzept / Übertragung Request: HTTP + XML POST/xmlrpc HTTP/1.0 User-Agent: Mozilla/5.0 Host: 192.168.1.20 Content-Type: text/xml Content-length: 150

XML-RPC / Konzept / Übertragung Beispiel einer XML-Nachricht Anfrage POST/xmlrpc HTTP/1.0 User-Agent: Mozilla/5.0 Host: 192.168.1.20 Content-Type: text/xml Content-length: 150 <?xml version= 1.0?> <methodcall> <methodname>ausgabe</methodname> <params> <param> <value><string>hallo</string></value> </param> </params> </methodcall>

XML-RPC / Konzept / Übertragung Response: HTTP + XML HTTP/1.0 200 OK Date: Tue, 20 Jun 2008 11:30:10 GMT Server: Apache/1.3.29 Connection: close Content-Type: text/xml Content-length: 150

XML-RPC / Konzept / Übertragung Beispiel einer XML-Nachricht Antwort HTTP/1.0 200 OK Date: Tue, 20 Jun 2008 11:30:10 GMT Server: Apache/1.3.29 Connection: close Content-Type: text/xml Content-length: 150 <?xml version= 1.0?> <methodresponse> <params> <param> <value><string>welt</string></value> </param> </params> </methodresponse>

XML-RPC / Konzept / Inhalt Datentypen Integer <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> Array Struktur

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>

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>

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>

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>

XML-RPC / Fehlerbehandlung Fehlerbeispiele unbekannte Methode ungültige Parameter Fehler als XML Antwort fault-tag

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>

XML-RPC / Vor- und Nachteile Vorteil Leichte Implementierbarkeit Simple Nachteil Feste Datentypen Gebunden am Transportprotokoll (HTTP)

SOAP

SOAP / Überblick Protokoll zur Übertragung von Daten Einfache Nachrichten RPC Prinzip (Request - Response) Client-Server-Modell XML-Nachrichten Entwickelt von Microsoft Abgeleitet von XML-RPC Version 1.2 (W3C Empfehlung von 2003) SOAP = SOAP kein Akronym! (Simple Object Access Protocol)

SOAP / Entstehung Microsofts Eroberung Dave Winer an Bord holen XML-RPC veröffentlichen Im Namen von Dave Winer (ohne MS) XML-RPC SOAP Verbündete suchen IBM SAP AG Lotus SOAP beim W3C einreichen (2000) Standardisiertes Protokoll: SOAP 1.1 Rekommandation: SOAP 1.2 (2003)

SOAP / Konzept Aufbau Übertragung Inhalt

SOAP / Konzept Aufbau Übertragung Inhalt

SOAP / Konzept / Aufbau SOAP Envelope SOAP Header SOAP Body (Transport-Protokoll) Transport-Protokoll Transport-Protokoll (z.b. (z.b. HTTP) HTTP) SOAP Envelope SOAP Envelope SOAP SOAP Header Header SOAP SOAP Body Body

SOAP / Konzept / Aufbau SOAP Envelope Wurzelelement Namespaces / Encoding SOAP SOAP Envelope Envelope SOAP Header Beliebige XML-Informationen Authentifizierung, Transaktionen,... SOAP Attribute mustunderstand : boolean relay : boolean role : anyuri SOAP SOAP Header Header

SOAP / Konzept / Aufbau SOAP Body Nutzdaten (Payload) Beliebige XML-Inhalte Fehlernachricht SOAP SOAP Body Body

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>

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>

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>

SOAP / Konzept Aufbau Übertragung Inhalt

SOAP / Konzept / Übertragung Transportprotokoll undefiniert Vorteil: flexibel, unabhängig Verbreitet: HTTP Request / Response enthalten HTTP Codes verwendbar Firewall: Port 80 meist offen Verschlüsselung: HTTPS Alternativen: FTP, SMTP, POP3,...

SOAP / Konzept / Übertragung Einfache Nachricht (EDI) asynchron Sender Empfänger RPC Anfrage / Antwort synchron Sender Vorteil: HTTP (Request / Response) Empfänger

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>

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>

SOAP / Konzept / Übertragung Message Path (1) Direkt Sender Empfänger

SOAP / Konzept / Übertragung Message Path (2) Indirekt Node 1 Node 2 Node n-1 Node n Sender (inital sender) Intermediär 1 Intermediär m Empfänger (ultimate receiver)

SOAP / Konzept / Übertragung Message Path (2) Intermediäre Header-Blöcke verarbeiten Z.B. Authentifizierung Header Attribute Role : anyuri next, none, ultimatereceiver,... Relay : boolean mustunderstand : boolean Intermediär m

SOAP / Konzept / Übertragung Message Path (2) Routing Mechanismus nicht definiert Zusätzl. Protokoll notwendig Microsoft: WebService Routing Protocol

SOAP / Konzept Aufbau Übertragung Inhalt

SOAP / Konzept / Inhalt SOAP Encoding xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:enc="http://www.w3.org/2003/05/soap-encoding" Regeln für Serialisierung der Daten Enthält gängigste Datentypen Individuelles Encoding möglich encodingstyle : anyuri encodingstyle="http://www.anwendung.de/mein_encoding"

SOAP / Konzept / Inhalt Datentypen string int float boolean anyuri array...

SOAP / Konzept / Inhalt Beispiel: int, string <name xsi:type="xsd:string">max Muster</name> <alter xsi:type="xsd:int">35</alter> Beispiel: array <numbers enc:itemtype="xs:int" enc:arraysize="2"> <number>3</number> <number>5</number> </numbers>

SOAP / Fehlerbehandlung Fault-Block Innerhalb SOAP Body Besitzt mehrere Elemente Code Reason (Detail) (Node) (Role) V1.2 ungleich V1.1 SOAP SOAP Body Body SOAP Fault

SOAP / Fehlerbehandlung Code - Fehlercodes Value Sender Receiver DataEncodingUnknown VersionMismatch MustUnderstand Subcode - anwendungsspezifisch Value

SOAP / Fehlerbehandlung Reason - Fehlerbegründung Text Detail - Zusatzinfos der Anwendung Node - SOAP Knoten Role - Funktion des Knotens

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

SOAP / Fehlerbehandlung SOAP Fault V1.1 <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 / Vor- und Nachteile Vorteil Standardisiert Plattformunabhängig Flexibel Breite Unterstützung Nachteil Aufgeblähter Code Hoher Rechenaufwand

Inhalt Motivation XML-RPC Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile SOAP Überblick Entstehung Konzept Fehlerbehandlung Vor- und Nachteile Live-Demo Ausblick

Ausblick XML-RPC Wenige Implementationen Kaum erweitert (Stand 1999) SOAP Geeignet für kleine Projekte Anerkannter Standard Beliebt für WebServices Viele Implementationen / Erweiterungen SOAP Attachments Zukunftssicheres Protokoll

Quellen XML-RPC Home Page www.xmlrpc.com wikipedia.de - Wikipedia, die freie Enzyklopädie http://de.wikipedia.org/wiki/xml-rpc http://de.wikipedia.org/wiki/soap World Wide Web Consortium - Web Standards http://www.w3.org/tr/soap12-part1/ Understanding SOAP (2000) Kennard Scribner, Mark C. Stiver SAMS Web Services: Die Standards (2004) Tobias Hauser, Ulrich M. Löwer Galileo Computing

Vielen Dank für die Aufmerksamkeit Fragen? Kontakt s-hess@freenet.de Fabio Caprera fcapr@gmx.de Projekt-Homepage http://sysprog.fc-home.com