SOAP, nur ein neuer XMLDialekt? Dr. Eduard Heindl, Lehrbeauftragter an der FHGeislingen 10. Dezember 2002 Dr. Eduard Heindl Inhalt Schnittstellen zwischen Software SOAP Simple Object Access Protocol Beispieldateien Hintergrund Weitere Komponenten WDSL, UDDI Vor- und Nachteile Trend? 10. Dezember 2002 Dr. Eduard Heindl IT-Kommunikation INTERNET Anwendung Anwendung Anwendung AnwendungCOM RMI Anwendung CORBA Anwendung DCOM UNIX SOAP WIN32 10. Dezember 2002 Dr. Eduard Heindl Probleme bisheriger Lösungen Herstellerabhängig (RMI, COM, DCOM) Geringe Verbreitung (Corba) Binäre Formate Nicht XML-konform Port der Anwendung oft geschlossen, keine feste Portnummer 10. Dezember 2002 Dr. Eduard Heindl SOAP Simple Object Access Protocol Was ist SOAP? SOAP = XML + HTTP + Anwendungen Kommunikationslösung W3C Standard Minimalistische Lösung Teil des Web Service Konzepts Nicht objektorientiert 10. Dezember 2002 Dr. Eduard Heindl Eigenschaften von SOAP Programmiersprachen-Unabhängigkeit Lesbarer Text (human readable) Datentypen (jenseits des Strings) 10. Dezember 2002 Dr. Eduard Heindl Aufbau SOAP Message Format XML Definition durch XML-Schema SOAP Envelope SOAP Header SOAP Body 10. Dezember 2002 Dr. Eduard Heindl SOAP Aufbau Transport-Umschlag (HTTP, SMTP, ...) SOAP- Dokument <SE:Envelope> <SE:Header>(optional) Delivery Information <SE:Body>(required) Nutzdaten (payload) <SE:Fault> (optional) 10. Dezember 2002 Dr. Eduard Heindl Eine kleine Anfrage POST /Sample HTTP/1.1 Host: www.sampleserver.com Content-Type: text/xml; charset="utf-8„ Content-Length: 234 SOAPAction: "GetLastTradePrice" müssen übereinstimmen <SE:Envelope xmlns:SE=http://schemas.xmlsoap.org/soap/envelope/ SE:encodingStyle="http://schemas.xmlsoap.org/soap/ encoding/"/> <SE:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DEF</symbol> </m:GetLastTradePrice> </SE:Body> </SE:Envelope> 10. Dezember 2002 Dr. Eduard Heindl Und die Antwort HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8„ Content-Length: 178 <SOAP-ENV:Envelope xmlns:SOAPENV=http://schemas.xmlsoap.org/soap/envelope/ SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/e ncoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 10. Dezember 2002 Dr. Eduard Heindl Schema für SOAP Der SOAP XML-Dateiaufbau wird durch ein Schema beschrieben Aktuelle Version 1.2 Original: http://www.w3.org/TR/2002/WDsoap12-part2-20020621/ 10. Dezember 2002 Dr. Eduard Heindl Hintergrund: XML-Schema Schema beschreibt die Struktur eines XML-Dokuments Schema löst die bisherige Form DTD ab Schema wird in XML-Syntax geschrieben Schema kennt Datentypen Datenstrukturen 10. Dezember 2002 Dr. Eduard Heindl Hintergrund: Namespace Problem: Weltweiter Funktionsaufruf führt zu Namenskollisionen für Bezeichner: SOAP (Seife), SOAP (Seifenoper), SOAP (Web), ... Ziel: Namen von Bezeichnern weltweit eindeutig Lösung: Dem Bezeichner wird eine URI vorangestellt, deren Abkürzung im Dokument vereinbart wird xmlns:rein=´http://www.lux.de/sauber´ Einsatz im Dokument ... rein:soap ... 10. Dezember 2002 Dr. Eduard Heindl Sicherheitsaspekte SOAP kann sichere Transportprotokolle nutzen Secure HTTP (HTTPS) Secure MIME (S/MIME) Security im <header> vereinbaren Nutzung von LDAP, X.509 für Authentifikation 10. Dezember 2002 Dr. Eduard Heindl Web Services 1. 2. 3. 4. Schnittstelle des Service beschreiben Service zentral hinterlegen Service suchen Service in die Software implementieren 5. Service zur Laufzeit aufrufen 10. Dezember 2002 Dr. Eduard Heindl Ablauf einer Anfrage Discovery Agency 2. suchen stub stub stub SOAP WSDL WSDL UDDI 3. Nutzen Anwendung stub 10. Dezember 2002 stub Service Requestor SOAP Dr. Eduard Heindl 1. publizieren SOAP UDDI stub Anwendung Web Service Provider Universal Description Discovery and Integration - UDDI Globaler Verzeichnisdienst Eintragen der eigenen Web Services Suchen nach Web Services Dynamische Anfrage vor Serviceaufruf Öffentliche UDDI-Server bei HP, IBM, Microsoft, SAP 10. Dezember 2002 Dr. Eduard Heindl Inhalt von UDDI White Pages Firmenname und Adresse Kontaktinformationen, WebSite Yellow Pages Business Type, Ort (Adresse), Produkte Industriezweig • Green Pages Technische Informationen zum Business Pointer zur WSDL Beschreibung (Text) 10. Dezember 2002 Dr. Eduard Heindl Web Service Description Language - WSDL Beschreibungssprache für Web Services Vergleichbar mit IDL (Interface Description Language) bei Corba Spezifiziert einen Web Service C# oder Java Kommunikationsteil kann daraus abgeleitet werden, z.B mit WSDL2JAVA in Apache Axis 10. Dezember 2002 Dr. Eduard Heindl WDSL Inhalte Service Interface Datei Datentypen Message Typen Operationen Port-Typen Bindings Server Implementations Datei Port Service 10. Dezember 2002 Dr. Eduard Heindl WSDL - Beispiel <?xml version="1.0" encoding="utf-8"?> <definitions ….. > <types> <s:schema elementFormDefault="qualified" targetNamespace…./"> <s:element name="Echo"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="echoString" type="s:string"> </s:sequence> </s:complexType> </s:element> <s:element name="EchoResponse"> <s:element name="string" nillable="true" type="s:string" /> 10. Dezember 2002 Dr. Eduard Heindl Web Service Flow Language (WSFL) Ablaufbeschreibung für Web Services Verknüpfung mehrerer Services Model von IBM (vergleichbar XLANG von Microsoft) inzwischen als Vorschlag bei W3C eingereicht 10. Dezember 2002 Dr. Eduard Heindl Implementierungen Java API for XML Messaging – JAXM Unterstützt SOAP und ebXML Java API for XML Processing – JAXP Arbeitet mit DOM, SAX, XSLT Java API for XML Registries - JAXR Zugriff auf UDDI Java API for XML-based RPC – JAX-RPC Export von WSDL möglich 10. Dezember 2002 Dr. Eduard Heindl Vorteile von SOAP Unterstützt durch größte Softwarehersteller Einfachere Kombination verschiedener Dienste Kosten für die Integrations-Middleware sinkt Erste Anwendungen bereits online verfügbar Programmiersprachen-Unabhängigkeit Lesbarer Text (human readable) Datentypen (jenseits des Strings) 10. Dezember 2002 Dr. Eduard Heindl Probleme bei Web Services HTTP bei vielen Firewalls offen Zuverlässigkeit der Services Vielzahl von Serviceschnittstellen Performance bei der Prozessverteilung Haftung für Leistungen 10. Dezember 2002 Dr. Eduard Heindl SOAP – nur ein neuer XML Dialekt? SOAP ist mehr SOAP ist Web Services SOAP ist das für Software, was HTML für den Internetnutzer ist SOAP könnte das „Betriebssystem“ des Internets werden 10. Dezember 2002 Dr. Eduard Heindl Zum Weiterlesen Web Service Architecture http://www.w3.org/TR/2002/WD-ws-arch-20021114/ Attack of the Web Services, Andreas Holubek, Javamagazin 5/2002 Komposition von Web-Services mit WSFL, Thilo Frotscher, JAVASPEKTRUM 1/2002 Fit for Web Services, SOAP in der Praxis, ChiQuang Lam, Javamagazin 2/2002 Web Services: Eine Middleware für das Internet? Andreas Kapp, Roy T. Fielding, netzwoche 15/2002 http://www-106.ibm.com/developerworks/webservices/ 10. Dezember 2002 Dr. Eduard Heindl Zukunft? 10. Dezember 2002 Dr. Eduard Heindl