Download - Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

Transcript
Page 1: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

Volker Weinhandl 1

Web Services

Einleitung Web Services XML-RPC SOAP REST

Seminar Internet Technologien

Page 2: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

2

Web Services

Basis Browser, manuelle Interaktion

♦ Kunde benutzt verschiedene Dienstleistungen, zum Kauf von Produkten.

♦ Kunden interpretiert Ergebnisse und schlussfolgert nächsten Schritt.

♦ Anbieter sind unabhängig von einander.

Seminar Internet Technologien

Quelle: www.uni-kassel.de

Page 3: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

3

Web Services

Dienstleistung als ein Block

♦ Kunde benutzt Dienstleistung, die mit anderen Dienstleistungen spricht.

♦ Kunde muss nicht alle Schritte selbst erledigen.

♦ Anbieter arbeiten zusammen.

Seminar Internet Technologien

Quelle: www.uni-kassel.de

Page 4: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

4

Web Services

Warum HTTP ?Hypertext Transfer Protokoll

Weitverbreitteste Protokoll im Internet. Plattform unabhängig. Einfach strukturiert. Kompatibel mit Firewalls.

Seminar Internet Technologien

Page 5: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

5

Web Services

Warum XML ?Extensible Markup Language

Einfach und flexibel. Plattform unabhängig. Text basiert.

Seminar Internet Technologien

Page 6: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

6

XML-RPC Remote Procedure Calls (RPC)

Entwicklung Anfang 1998 von Dave Winer. Idee aus dem Ansatz, XML und HTTP zu

verbinden, um XML Nachrichtenübermittlung über das Internet zu schaffen.

Erste Version April 1998. Microsoft übernahm Teile von XML-RPC und

formte daraus SOAP.

Seminar Internet Technologien

Page 7: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

7

XML-RPC Verbindung

Seminar Internet Technologien

Page 8: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

8

XML-RPC HTTP-Header

• HTTP Anfrage (Aufruf über POST)

POST /xmlrpc HTTP/1.0 User-Agent: ClientHost: 192.168.0.0Content-Type: text/xmlContent-length: 167

Seminar Internet Technologien

Page 9: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

9

XML-RPC Methodenaufruf

<?xml version="1.0" encoding="UTF-8"?><methodCall> <methodName>ausgabe</methodName> <params> <param> <value> <string>Technologie</string> </value> </param> </params></methodCall>

Seminar Internet Technologien

Page 10: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

10

XML-RPC HTTP-Header

• HTTP Antwort

HTTP/1.1 200 OK Date: Mon. 07 Jan 2008 14:30:27 GMTServer: Server (Betriebssystem)Connection: closeContent-Type: text/xmlContent-length: 154

Seminar Internet Technologien

Page 11: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

11

XML-RPC Rückgabewerte

<?xml version="1.0" encoding="UTF-8"?><methodResponse> <params> <param> <value> <string>Internet Technologie</string> </value> </param> </params></methodResponse>

Seminar Internet Technologien

Page 12: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

12

XML-RPC Datentypen

Einfache Datentypen integer, double, String, boolean, dateTime, Base64

Komplexe Datentypen Array, Struktur

Seminar Internet Technologien

Page 13: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

13

XML-RPC

Beispiel: XML-RPC Client in Javaimport java.util.*; import org.apache.xml.rpc.*;

public class XMLRPCTestClient { public static void main(String [] args) { try { // Name der aufzurufenden Prozedur String MethodName = „System.listMethods"; // Initialisierung XML-RPC Clients

XmlRpcClient xmlrpc = new XmlRpcClient (“http://www.oreillynet.com/meerkat/...);

Seminar Internet Technologien

Page 14: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

14

XML-RPC

//Aufruf der entfernten Methode Vector result = (Vector) xmlrpc.execute(MethodName, params);

//Ausgabe der Ergebnisse for(int i=0; i<result.size(); i++){ System.out.println(result.elementAt(i));

} } catch (Exception e) { System.err.println(e.toString()); } } }

Seminar Internet Technologien

Page 15: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

15

XML-RPC

Beispiel: XML-RPC Client in Java

meerkat.getChannelsmeerkat.getCategoriesmeerkat.getCategoriesBySubstring meerkat.getCategoriesByCategorymeerkat.getChannelsBySubstringmeerkat.getItemssystem.listMethodssystem.methodHelpsystem.methodSignature

Seminar Internet Technologien

Page 16: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

16

XML-RPC

TCP-Monitorvon Axis

Seminar Internet Technologien

Quelle: www.teialehrbuch.de

Page 17: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

17

SOAP

SOAP wurde von XML-RPC abgeleitet. Entwickelt von Microsoft, IBM und anderen

Firmen. Erste Version SOAP 1.1 im April 2000 beim W3C

eingereicht. Zweite Version SOAP 1.2 wurde im Juni 2003

vom W3C zur Empfehlung. SOAP ist ab Version 1.2 kein Akronym mehr,

sondern steht einfach für sich selbst.

Seminar Internet Technologien

Page 18: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

18

SOAP Nachrichten Arten

Sender

Sender

Sender

Empfänger

Empfänger

Empfänger 1

Empfänger 2

Anfrage

Antwort

Nachricht

Nachricht

Seminar Internet Technologien

Page 19: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

19

SOAP Übermittlung

Intermediäre werden anhand ihrer URI identifiziert. Sie leiten die SOAP Nachricht über mehrere HTTP Verbindungen weiter.

Seminar Internet Technologien

Quelle: www.uni-kassel.de

Page 20: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

20

SOAP Nachrichten Aufbau

Transportprotokoll (HTTP etc.)

SOAP-Envelope

SOAP-Header

SOAP-Body

Seminar Internet Technologien

Page 21: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

21

SOAP HTTP Header

• HTTP Anfrage (Aufruf über POST)

POST /StockQuote HTTP/1.1Host: www.Stockquoteserver.comContent-Type: text/xml; charset=“UTF-8“Content-Length: 394SOAPAction: “www.aktien.de/transaktion#buy“

Seminar Internet Technologien

Page 22: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

22

SOAP SOAP Envelope

<?xml version=“1.0“ encoding=“UTF-8“?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/

soap/envelope/“ SOAP-ENV:encodingStyle= http://schemas.xmlsoap.org/soap/encoding/>

Seminar Internet Technologien

Page 23: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

23

SOAP SOAP Body

<SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m=“Some-URI“> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body></SOAP-ENV:Envelope>

Seminar Internet Technologien

Page 24: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

24

SOAP SOAP Header

Der SOAP Header ist optional.

Er ermöglicht einem Client, die serverseitige Verarbeitung der jeweiligen Nachricht genauer zu steuern.

Drei mögliche Header Attribute werden durch SOAP vorgegeben.

Seminar Internet Technologien

Page 25: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

25

SOAP SOAP Header

actor enthält einen URI, der angibt, für welchen Surver auf dem Nachrichtenpfad der Eintrag bestimmt ist.

encodingStyle definiert die Datentypen, die für diesen Header verwendet werden können.

mustUnderstand spezifiziert ob der Eintrag verarbeitet werden muss.

Ist der Wert 1, dann darf der bestimmte Empfänger nicht ignorieren.

Ist der Wert 0, so ist die Verarbeitung der SOAP Nachricht trotzdem möglich.

Seminar Internet Technologien

Page 26: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

26

SOAP SOAP Header

Bsp: Festlegung eines Zwischenknotens mit actor

<SOAP-ENV:Header> actor=“http://yourServer.com“></SOAP-ENV:Header>

Verfügt keiner der Header Einträge über das Attribut actor, so wird die Nachricht direkt an die Zieladresse gesendet.

Seminar Internet Technologien

Page 27: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

27

SOAP SOAP Header

Bsp: Verwendung von mustUnderstand

<SOAP-ENV:Header> <t:Transaction xmlns:t=“Some-URI“ SOAP-ENV:mustUnderstand=“1“> 5 </t:Transaction></SOAP-ENV:Header>

Seminar Internet Technologien

Page 28: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

28

REST Representational State Transfer

Der Begriff stammt aus der Dissertation von Roy Fielding aus dem Jahr 2000.

Roy Fielding ist einer der Hauptautoren der Spezifikation des Hypertext-Transfer-Protokolls (HTTP).

Ziel von REST ist es, durch eine Rückbesinnung auf grundlegende Web-Technologien die Implementierung verteilter, web-basierter Systeme zu vereinfachen.

Seminar Internet Technologien

Page 29: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

29

REST HTTP Verbindung

Die Kommunikationzwischen Client und Webserver erfolgt durchden Austausch vonHTTP-Nachrichten. Diese Nachrichtenübertragen die Anfragenund Antworten zwischenClient und Server.

Seminar Internet Technologien

Page 30: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

30

REST HTTP Methoden

Mit GET fordert der Client Daten vom Server an.

Mit POST werden neue Daten/Ressourcen auf dem Server abgelegt.

Mit PUT werden vorhandene Daten aktualisiert oder untergeordnete Ressourcen ergänzt.

Seminar Internet Technologien

Page 31: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

31

REST HTTP Methoden

Mit DELETE löscht der Client Daten auf dem Server.

Damit steht ein kleiner aber leistungsfähiger Sprachumfang zur Verfügung.

Seminar Internet Technologien

Page 32: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

32

REST REST Begriffe

Ressourcen Web Seiten, Bilder, Scripte werden über URIs angesprochen

Nachrichten Übertragung sämtlicher Dokumenttypen (gif, html, xml, pdf, .. )

Seminar Internet Technologien

Page 33: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

33

REST REST Begriffe

Bsp:

Abfragen eines Kontostands: GET http://meinebank.de/engagement/1234450

Als Ergebnis eines solchen GETs wird ein Objekt (z.B. eine XML-Darstellung des Hauptkontos) zurückgeliefert.

Seminar Internet Technologien

Page 34: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

34

REST REST Begriffe Mögliche Antwort: XML-Datei<konto> <inhaber>Dagobert Duck</inhaber> <unterkonten> <unterkonto xlink:href=" http://meinebank.de/engagement/1234450/30"> Giro</unterkonto> <unterkonto xlink:href=“ http://meinebank.de/engagement/1234450/40"> Spar</unterkonto> </unterkonten></konto>

Seminar Internet Technologien

Page 35: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

35

REST REST Begriffe

Wählt der Benutzer als nächstes das Girokonto, so werden diese Informationen durch den Aufruf derfolgenden URI geliefert:

GET http://meinebank.de/engagement/1234450/30

Seminar Internet Technologien

Page 36: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

36

REST REST Begriffe

Das Ergebnis des Aufrufs ist die aktuelle Darstellung des spezifischen Kontos

<kontoinfo typ="giro"><saldo>4000 H</saldo><funktion xlink:href="http://meinebank.de/engagement/1234450/30/bewegungen">Bewegungen

</funktion></kontoinfo>

Seminar Internet Technologien

Page 37: Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet Technologien.

37

Ende

Noch Fragen ?

Quellen: www.oio.de/public/xml/, www.drweb.de/programmierung/webservices.shtml, www.microsoft.com/germany/msdn/library/xmlwebservices/, www.akquinet.de/fileadmin/PDF_JASA/newsletter/REST-SOAP.pdf, www.torsten-horn.de/techdocs/soap.htm#WSDL, www.teia.deTobias Hauser: Web Services

Seminar Internet Technologien