SOAP, nur ein neuer XML- Dialekt? Dr. Eduard Heindl, Lehrbeauftragter an der FH-Geislingen 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
SOAP IT-Kommunikation COM DCOM INTERNET RMI CORBA WIN32 Anwendung UNIX RMI WIN32 Anwendung COM Anwendung DCOM SOAP 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 müssen übereinstimmen POST /Sample HTTP/1.1 Host: www.sampleserver.com Content-Type: text/xml; charset="utf-8„ Content-Length: 234 SOAPAction: "GetLastTradePrice" <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> müssen übereinstimmen 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:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <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/WD-soap12-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 Schnittstelle des Service beschreiben Service zentral hinterlegen Service suchen Service in die Software implementieren Service zur Laufzeit aufrufen 10. Dezember 2002 Dr. Eduard Heindl
SOAP WSDL SOAP UDDI SOAP Ablauf einer Anfrage Discovery Agency WSDL 2. suchen 1. publizieren stub stub SOAP WSDL SOAP UDDI stub stub 3. Nutzen Service Requestor Web Service Provider Anwendung Anwendung SOAP stub stub 10. Dezember 2002 Dr. Eduard Heindl
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 Yellow Pages • Green 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 Server Implementations 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, Chi-Quang 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