280 likes | 393 Views
SOAP, nur ein neuer XML- Dialekt?. Dr. Eduard Heindl, Lehrbeauftragter an der FH-Geislingen. Inhalt. Schnittstellen zwischen Software SOAP Simple Object Access Protocol Beispieldateien Hintergrund Weitere Komponenten WDSL, UDDI Vor- und Nachteile Trend?. INTERNET. COM. Anwendung.
E N D
SOAP, nur ein neuer XML- Dialekt? Dr. Eduard Heindl, Lehrbeauftragter an der FH-Geislingen Dr. Eduard Heindl
Inhalt • Schnittstellen zwischen Software • SOAP Simple Object Access Protocol • Beispieldateien • Hintergrund • Weitere Komponenten WDSL, UDDI • Vor- und Nachteile • Trend? Dr. Eduard Heindl
INTERNET COM Anwendung Anwendung Anwendung Anwendung RMI Anwendung DCOM CORBA SOAP WIN32 UNIX IT-Kommunikation Anwendung 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 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 Dr. Eduard Heindl
Eigenschaften von SOAP • Programmiersprachen-Unabhängigkeit • Lesbarer Text (human readable) • Datentypen (jenseits des Strings) Dr. Eduard Heindl
Aufbau SOAP Message • Format XML • Definition durch XML-Schema • SOAP Envelope • SOAP Header • SOAP Body 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) Dr. Eduard Heindl
müssen übereinstimmen Eine kleine Anfrage • POST /Sample HTTP/1.1Host: www.sampleserver.comContent-Type: text/xml; charset="utf-8„Content-Length: 234SOAPAction: "GetLastTradePrice" • <SE:Envelopexmlns: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> Dr. Eduard Heindl
Und die Antwort HTTP/1.1 200 OKContent-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> 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/ 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 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 ... 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 Dr. Eduard Heindl
Web Services • Schnittstelle des Service beschreiben • Service zentral hinterlegen • Service suchen • Service in die Software implementieren • Service zur Laufzeit aufrufen Dr. Eduard Heindl
Discovery Agency WSDL UDDI SOAP WSDL SOAP UDDI SOAP Web Service Provider Ablauf einer Anfrage 2. suchen 1. publizieren stub stub stub stub 3. Nutzen Service Requestor Anwendung Anwendung stub stub 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 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) 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 Dr. Eduard Heindl
WDSL Inhalte • Service Interface Datei • Datentypen • Message Typen • Operationen • Port-Typen • Bindings • Server Implementations • Datei • Port • Service 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" /> 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 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 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) 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 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 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/ Dr. Eduard Heindl
Zukunft? Dr. Eduard Heindl