Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet...
-
Upload
aldo-stolt -
Category
Documents
-
view
108 -
download
0
Transcript of Volker Weinhandl1 Web Services Einleitung Web Services XML-RPC SOAP REST Seminar Internet...
Volker Weinhandl 1
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
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
4
Web Services
Warum HTTP ?Hypertext Transfer Protokoll
Weitverbreitteste Protokoll im Internet. Plattform unabhängig. Einfach strukturiert. Kompatibel mit Firewalls.
Seminar Internet Technologien
5
Web Services
Warum XML ?Extensible Markup Language
Einfach und flexibel. Plattform unabhängig. Text basiert.
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
7
XML-RPC Verbindung
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
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
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
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
12
XML-RPC Datentypen
Einfache Datentypen integer, double, String, boolean, dateTime, Base64
Komplexe Datentypen Array, Struktur
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
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
15
XML-RPC
Beispiel: XML-RPC Client in Java
meerkat.getChannelsmeerkat.getCategoriesmeerkat.getCategoriesBySubstring meerkat.getCategoriesByCategorymeerkat.getChannelsBySubstringmeerkat.getItemssystem.listMethodssystem.methodHelpsystem.methodSignature
Seminar Internet Technologien
16
XML-RPC
TCP-Monitorvon Axis
Seminar Internet Technologien
Quelle: www.teialehrbuch.de
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
18
SOAP Nachrichten Arten
Sender
Sender
Sender
Empfänger
Empfänger
Empfänger 1
Empfänger 2
Anfrage
Antwort
Nachricht
Nachricht
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
20
SOAP Nachrichten Aufbau
Transportprotokoll (HTTP etc.)
SOAP-Envelope
SOAP-Header
SOAP-Body
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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