Webservices Ein Vortrag von: Andreas Münstermann Michael Reiher Markus Buschky
Gliederung Einführung in Webservices Technische Grundlagen SOAP UDDI WSDL Sicherheitskonzepte Blick in die Zukunft
Einführung in Webservices
Was sind Webservices Laut Definition von Sun Microsystems ist ein Web Service ein Dienst mit XML-Schnittstelle, der sich entweder von einem menschlichen Anwender oder einem Programm nutzen lässt Heute: Verschiede Betriebssysteme/ Softwarelösungen die nicht miteinander arbeiten können HTML nicht nur Nutzdaten; Fehlende Metainformationen schlecht weiterverwendbar Abhilfe: Programmierbares Internet; Standardisiertes Datenformat (XML)/ Protokolle (SOAP)
Entwicklung des Internet 1994-1996 1996-2000 2000+ Statische Seiten Dynamische Seiten Mehr als Surfen Email Einfache Informationen E-Commerce Web Services
Wer kann Webservices nutzen Benutzer Entwickler (Funktionen in.net einbinden) Firmen (Lagerverwaltung global)
Einsatzmöglichkeiten Einfacher Dienst Anwendungsintegration Arbeitsflusslösungen
Benutzer & einfacher Dienst XML XML XML Integration von Webservices In einem Webportal
Technische Grundlagen
POST und GET HTTP-GET Methodenname = steht im Pfad Argumente = URL query string Mehrere Parameter möglich http://server/appl/service.asmx/method?param=value HTTP-POST Ähnlich GET Argumente stehen im HTTP Header
Technischer Ablauf
XML Schnittstelle der Webservices Plattformunabhänig Objektorientiert Möglichkeit der Hiraschischen Abbildungen Beinhaltet pure Informationen und deren Beschreibung Keine Ausgabe-Formatierung der Informationen Aber Inhaltliche-Formatierung der Informationen
SOAP
Probleme beim verteilten Rechnen Server und Client müssen sich verstehen Implementierungsdetails beeinträchtigen die Kommunikation Sicherheitseinstellungen und Firewalls verhindern Interoperabilität Nur dieselbe Plattform kann miteinander sprechen Die Formate für Methodenaufrufe sind an das darunterliegende Komponetenmodell gebunden COM+ / EJB / CORBA Die Kommunikationsprotokolle sind untereinander und im Internet inkompatible
Ideen Firewalls blockieren die meisten Dienste, sind aber normalerweise für HTTP-Anfrage offen Benutze HTTP als Standartprotokoll Es muss ein Dateiformat geben, das selbstbeschreibend ist, um wirklich interoperabel zu sein Definiere das Datenformat mit XML
Lösung / Umsetzung Die Lösung: Simple Object Acces Protocol SOAP verlässt sich auf HTTP für die Kommunikation selbstbeschreibendes einfaches XML basiertes Nachrichtenformat arbeitet zusammen mit jedem Betriebssystem jeder Programmiersprache jeder Plattform
Spezifikationen Die Soap 1.0 Spezifikation definiert 2 Hauptziele : Provide a standard object invocation protocol built on Internet standards, using HTTP as the transport and XML for data encoding. Create in extensible protocol and payload format that can evolve. In der Spezifikation zur Version 1.1 steht einfach : A major design goal for SOAP is simplicity and extensibility
SOAP - Nachrichten SOAP - Message Die gesamte SOAP Nachricht Protokoll Header SOAP - Envelope Header des Übertragungsprotokoll umfasst Nachrichteninhalt HTTP(S) SMTP SOAP Header Namespace mustunderstand SOAP Body bestimmt die Verhaltensweise des Empfängers enthält die gekapselten XML - Daten Message Body & Data
Beispiel Die Methode boolean PlaceOrder([in] Title string, [in] Author string, [out] DaysToDelivery integer); wird übertragen als POST /BookServer HTTP/ 1.1 Host: www.qwickbooks.com Content-Type: text/xml Content-Length: nnnn SOAPMethodName: Some-Namespace-URL#PlaceOrder <SOAP:Envelope xmlns:soap="um:schemas-xmlsoap-org:soap.v1"> <SOAP:Body> <m:placeorder xmlns:m="some-namespace-url"> <Title>Heiligs Blechle</Title> <Author>Hans Muff</Author> </m:placeorder> </SOAP:Body> </SOAP:Envelope>
Kommunikation mit SOAP -1- SOAP definiert zwei Arten von Nachrichten: Anfragen und Antworten Anfragen enthalten das angesprochene Ziel sowie In- und In/Out-Parameter Antworten umfassen einen Fehlercode oder das Resultat zusammen mit den Out und In/Out-Parametern SOAP ist grundsätzlich nicht auf HTTP beschränkt, jedes Übertragungsprotokoll (z.b. SMTP) könnte verwendet werden SOAP benutzt bereits definierte Standarts
Kommunikation mit SOAP -2- RPCs lassen sich relativ leicht durch SOAP realisieren, da sie sich in das Request / Response Modell integrieren lassen SOAP kann unterschiedliche Infrastrukturen überbrücken und so Anwendungen miteinander verbinden SOAP ist ein W3C working draft
Anwendung von SOAP Komplexe Datenstrukturen werden durch XML Schemas realisiert SOAP ist auch für Embedded Systems einsetzbar Client HTTP Proxy HTTP WEB-Server DCOM, IIOP, RMI XML Parser XML Parser Application Server
UDDI
UDDI Universal Description Descovery and Integration Anbieter von Dienstleistungen finden Universellen globalen Verzeichnisdienst (eine Art gelbe Seiten) Firmen müssen sich mit Firmenname, Kontaktinfos, Kontaktperson usw. anmelden Klassifizierung nach Branche, Produkte, Services oder geografische Herkunft Kostenfrei Es ist egal, ob man die Datenbanken von Microsoft oder IBM, o.a. nutzt, da sie vernetzt sind.
WDSL
WSDL Web Services Description Language Öffentliche Beschreibung eines WebServices in XML Bei World Wide Web Consortium (W3C) vorgelegt WSDL Vertrag
WSDL Grundelemente von WSDL Services, die mehrere Ports beinhalten Über Ports werden Messages geschickt Jeder Port enthält Adress- und Bindinginfos Binding spezifiziert das Datenformat und Protokolldetails PortTypes definiert die Befehle, die über einen Port geschickt werden können
WSDL Abstrakte Darstellung der WSDL Elemente service_1 port_b port_a port_c port type message message service_2 port_d
WDSL Beispiel WSDL Datei <definitions name="servicename"> <import namespace="http://namespacepath" location="http://path/filename.wsdl"> Name <porttype name="portnametype"> <operation name="opname"> <input message="msgnameinput" /> <output message="msgnameoutput" /> </operation> </porttype> <binding name="bindingname"> <soap:operation soapaction="http://..." /> </binding> <service name="servicename"> <port name="portname" binding="bindingname"> <soap:address location="http://..." /> </port> </service> </definitions> Port / Dienst SOAP / Binding
Sicherheitskonzepte Identifizierung IP-Adresse: 149.201.40.61 Benutzername: FH-Aachen Authentifizierung Passwort Einmalpasswort Karte
Blick in die Zukunft
Blick in die Zukunft Am Anfang schnell verbreitet Grosse Wahrscheinlichkeit der Akzeptanz
Blick in die Zukunft Wie ändert sich das Internet? Schnelle Verbindung vorausgesetzt? Kostenpflichtig? Belastung durch hohes Transferaufkommen