Seminar Internet Technologien Web Services Einleitung Web Services XML-RPC SOAP REST Volker Weinhandl
Seminar Internet Technologien 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. Quelle: www.uni-kassel.de
Seminar Internet Technologien Web Services Dienstleistung als ein Block ♦ Kunde benutzt Dienstleistung, die mit anderen Dienstleistungen spricht. ♦ Kunde muss nicht alle Schritte selbst erledigen. ♦ Anbieter arbeiten zusammen. Quelle: www.uni-kassel.de
Seminar Internet Technologien Web Services Warum HTTP ? Hypertext Transfer Protokoll Weitverbreitteste Protokoll im Internet. Plattform unabhängig. Einfach strukturiert. Kompatibel mit Firewalls.
Seminar Internet Technologien Web Services Warum XML ? Extensible Markup Language Einfach und flexibel. Plattform unabhängig. Text basiert.
XML-RPC Remote Procedure Calls (RPC) Seminar Internet Technologien 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 XML-RPC Verbindung
Seminar Internet Technologien XML-RPC HTTP-Header • HTTP Anfrage (Aufruf über POST) POST /xmlrpc HTTP/1.0 User-Agent: Client Host: 192.168.0.0 Content-Type: text/xml Content-length: 167
XML-RPC Methodenaufruf Seminar Internet Technologien 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 XML-RPC HTTP-Header • HTTP Antwort HTTP/1.1 200 OK Date: Mon. 07 Jan 2008 14:30:27 GMT Server: Server (Betriebssystem) Connection: close Content-Type: text/xml Content-length: 154
XML-RPC Rückgabewerte Seminar Internet Technologien 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 XML-RPC Datentypen Einfache Datentypen integer, double, String, boolean, dateTime, Base64 Komplexe Datentypen Array, Struktur
Seminar Internet Technologien XML-RPC Beispiel: XML-RPC Client in Java import 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 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 XML-RPC Beispiel: XML-RPC Client in Java meerkat.getChannels meerkat.getCategories meerkat.getCategoriesBySubstring meerkat.getCategoriesByCategory meerkat.getChannelsBySubstring meerkat.getItems system.listMethods system.methodHelp system.methodSignature
Seminar Internet Technologien XML-RPC TCP-Monitor von Axis Quelle: www.teialehrbuch.de
Seminar Internet Technologien 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.
SOAP Nachrichten Arten Seminar Internet Technologien SOAP Nachrichten Arten Anfrage Empfänger Sender Antwort Nachricht Sender Empfänger Empfänger 1 Sender Nachricht Empfänger 2
Seminar Internet Technologien SOAP Übermittlung Intermediäre werden anhand ihrer URI identifiziert. Sie leiten die SOAP Nachricht über mehrere HTTP Verbindungen weiter. Quelle: www.uni-kassel.de
SOAP Nachrichten Aufbau Seminar Internet Technologien SOAP Nachrichten Aufbau Transportprotokoll (HTTP etc.) SOAP-Envelope SOAP-Header SOAP-Body
Seminar Internet Technologien SOAP HTTP Header • HTTP Anfrage (Aufruf über POST) POST /StockQuote HTTP/1.1 Host: www.Stockquoteserver.com Content-Type: text/xml; charset=“UTF-8“ Content-Length: 394 SOAPAction: “www.aktien.de/transaktion#buy“
Seminar Internet Technologien 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 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 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 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 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 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>
REST Representational State Transfer Seminar Internet Technologien 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 REST HTTP Verbindung Die Kommunikation zwischen Client und Webserver erfolgt durch den Austausch von HTTP-Nachrichten. Diese Nachrichten übertragen die Anfragen und Antworten zwischen Client und Server.
Seminar Internet Technologien 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 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 REST REST Begriffe Ressourcen Web Seiten, Bilder, Scripte werden über URIs angesprochen Nachrichten Übertragung sämtlicher Dokumenttypen (gif, html, xml, pdf, .. )
Seminar Internet Technologien 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 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 REST REST Begriffe Wählt der Benutzer als nächstes das Girokonto, so werden diese Informationen durch den Aufruf der folgenden URI geliefert: GET http://meinebank.de/engagement/1234450/30
Seminar Internet Technologien 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 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.de Tobias Hauser: Web Services