Web Services ● Gliederung – – – – – Einführung XML als grundlegende Technologie Was sind Webservices? Web Services und Java Web Services und .Net Einführung ● ● ● ● Erste Idee 1998 von Dave Winter [RPC over HTTP via XML] Standardisiert durch das W3C Die Transportsprache ist XML Ein Service wird über seine URL aufgerufen XML als grundlegende Technologie I ● ● ● ● ● XML ist Extensible Markup Language XML ist Case Sensitive Attribute werden in spitzen Klammern eingefasst Können über DOM in eine Vielzahl von Objekten umgewandelt werden Plain Text XML als grundlegende Technologie II ● ● ● ● ● Es existiert eine Vielzahl von Parsern XML ist sehr strikt Laufzeitfehler nur durch Fehler im Programm oder in Strukturdefinition Document Type Description beschreibt die Syntax (optional) XML-Schema ist der Beschreibungsstandard der W3C XML als grundlegende Technologie - Beispiel <mail sendedatum='01.01.2001' sendezeit='10:00'> <absender>[email protected]</absender> <empfaenger>[email protected]</empfänger> <Betreff>Testmail</Betreff> <nachricht>Hier könnte dein Text stehen! Oder auch nicht..</nachricht> </mail> Was sind Web Services? ● ● ● ● XML-RPC ist die erste Web Service Implementierung Übertragungsprotokoll ist HTTP Der Aufruf findet über HTTP-Post statt Wird nicht durch Firewalls geblockt Was sind Web Services? Aufruf: <?xml version="1.0"?> <methodCall> <methodName>sayHello</ methodName> <params> <param> <value><string>"Dein Name"</string><value> </param> </params> </methodCall> Rückgabe: <?xml version="1.0"?> <methodResponse> <methodName>sayHello</ methodName> <params> <param> <value><string>Hallo "Dein Name"</string><value> </param> </params> </methodResponse > Was sind Web Services? ● ● ● ● ● XML-RPC wurde durch W3C standardisierung erweitert WSDL beschreibt welche Funktionen wie aufgerufen werden UDDI diehnt zur Veröffentlichung und Findung von Web Services SOAP verallgemeinert den Datenaustausch SOAP kann zur Sicherheit die Nachrichten direkt verschlüsseln Web Services und Java ● Eclipse + Plugins – – – – Tomcat Lomboz Axis XDoclet Web Services und Java Public class WebServiceClient{ private String TARGET_URL=“http://'deine URL'/” +”servlet/WebServiceServlet”; private String URI=”urn:'Dein Webservice'”; public Message sendMessage(){ System.out.println(“Anfrage senden...”); Envelope env = new Envelope(); Body body = new Body(); env.setBody(body); Message msg = new Message(); msg.send(new URL(TARGET_URL),URI,env); return msg; } Web Services und Java public void receiveMessage(Message msg){ System.out.println(“Warten auf Antwort...”); SOAPTransport st = msg.getSOAPTransport(); BufferedReader br = st.receive(); String line = br.readline(); while(line != NULL){ System.out.println(line); line = br.readline(); } } Web Services und .NET <%@ WebService Language=”C#”Class=”MyMath” %> using System.Web.Services; [WebService(Namespace=”http://'Deine URL'.de”, Name=”Small Web Service in C#” , Description=”WebService with basic Math−functions.”)] public class MyMath { [WebMethod(Description=”Adds two ints....” ) ] public int Add(int a ,int b) { return a+b ;} [ WebMethod(Description=”Returns...”)] public int Sub(int a ,int b) { return a−b ;} }