WebService-Architekturen W12 Mario Jeckle mario.jeckle jeckle@daimlerchrysler.comcom DaimlerChrysler Forschungszentrum Ulm
Inhaltsübersicht WebService was ist das? Dienstanbieter (Service Provider) Dienstnachfrager (Service Requester) Dienstmakler (Service Broker) W12 Web Service Architekturen 2
WebService was ist das? Charakteristische Merkmale: Immaterialität (keine Produktion physischer Güter) Ephemer (nicht lagerfähig) Standortabhängigkeit (nicht transportfähig) Produktions-Konsumptions Konsumptions- Synchronität (keine Entkopplung zwischen Produzent und Konsument) W12 Web Service Architekturen 3
WebService was ist das? WebService := Per Web erbrachte Dienstleistung property service WSDL SOAP XML UDDI SDL DISCO SCL XML-RPC ASN.1 EDI ADS Web-Service Dienstleistung NASSL RPC naming service IDL ASCII............ W12 Web Service Architekturen 4
WebService was ist das? VB C++ C#... Java...... Common Language Specification Java Bytecode WSDL UDDI WebServices SOAP XML Schema XML 1.0 + Namespaces HTTP, SMTP,... TCP/IP Netzwerk W12 Web Service Architekturen 5
WebService vs. Systemintegration Systemintegration Kopplung technischer Systeme (zumeist) Programmierparadigmenspezifisch Technische Realisierung der Kommunikation sekundär Langfristige Kooperation WebServices Diensterbringung Paradigmenunabhängigkeit Kommunikation von primärem Interesse Ad hoc Kollaboration W12 Web Service Architekturen 6
WebService-Architektur WebServices bilden ein verteiltes System WebServices sind (zumeist) in eine existierende Systemwelt integriert oder zu integrieren WebServices sind kein kommerziell verfügbares Produkt WebServices sind nicht genau eine homogene integrierte Architektur WebServices beruhen auf einer Reihe eigenständiger Standards und Ideen, die in eine Architektur zu integrieren sind W12 Web Service Architekturen 7
WebService-Architektur... zerfällt in (mindestens) drei Rollen: Dienstanbieter (Service Provider) Bietet eine Dienstleistung über Web an Beschreibt und annonciert diesen Dienst Übernimmt Implementierung, Betrieb und Wartung Dienstnachfrager (Service Requestor) Nutzt angebotenen Dienst Sucht angebotene Dienste nach gewissen Kriterien Integriert Service in eigene Dienste und Applikationen Dienstmakler (Service Broker) Bietet Speicherung von Dienstbeschreibungen an Verwaltet kategorisierte Dienstbeschreibungen Ermöglicht automatisiertes Auffinden existierender Dienste W12 Web Service Architekturen 8
WebService-Architektur... zerfällt in (mindestens) drei Rollen: Dienstmakler (Service Broker) publish find Dienstanbieter (Service Provider) bind & Dienstnachfrager (Service Requestor) execute W12 Web Service Architekturen 9
Dienstanbieter Bietet eine Dienstleistung über Web an Zu lösende Teilprobleme: Abwicklung der Kommunikation (Protokoll) Struktur und Darstellung des Kommunikationsinhalts (Nutzdaten) Bekannteste Lösung: SOAP XML W12 Web Service Architekturen 10
Dienstanbieter Bietet eine Dienstleistung über Web an SOAP: Grundidee: Entfernte Methodenaufrufe und Nachrichtenaustausch XML-Darstellung beliebiger Inhalte Trennung zwischen Nutzinformation und Metadaten Ursprüngliche Entwicklung als XML-RPC (HTTP-basiert, asynchron) Weiterentwicklung durch DevelopMentor,, IBM, Microsoft, Lotus und UserLand Software als Simple Object Access Protocol (SOAP) Seit SOAP/1.1 synchron und (Transport-)Protokollunabhängig Als SOAP v1.2 derzeit durch eine W3C-Arbeitsgruppe im Standardisierungsprozeß W12 Web Service Architekturen 11
Dienstanbieter Bietet eine Dienstleistung über Web an POST /soap/servlet/rpcrouter HTTP/1.0 POST /soap/servlet/rpcrouter HTTP/1.0 Host: alice:80 Content-Type: Host: alice:80 text/xml; charset=utf-8 Content-Length: Content-Type: text/xml; 474 charset=utf-8 Content-Length: 474 SOAPAction: "" SOAPAction: "" <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" HTTP-Port xmlns:xsd="http://www.w3.org/1999/xmlschema"> xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema"> <SOAP-ENV:Body> <SOAP-ENV:Body> <ns1:add xmlns:ns1="urn:numberadder" <ns1:add xmlns:ns1="urn:numberadder" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <number1 xsi:type="xsd:int">1</number1> Request <number1 xsi:type="xsd:int">1</number1> <number2 xsi:type="xsd:int">2</number2> </ns1:add> <number2 xsi:type="xsd:int">2</number2> </ns1:add> </SOAP-ENV:Body> </SOAP-ENV:Envelope> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web-Server Web-Server Firewall Firewall W12 Web Service Architekturen 12
Dienstanbieter Bietet eine Dienstleistung über Web an Web-Server HTTP/1.0 200 OK Content-Type: HTTP/1.0 200 text/xml; OK charset=utf-8 Content-Length: Content-Type: text/xml; 529 charset=utf-8 Set-Cookie2: Content-Length: JSESSIONID=tibpjehn11;Version=1;Discard;Path="/soap" 529 Set-Cookie: Set-Cookie2: JSESSIONID=tibpjehn11;Path=/soap JSESSIONID=tibpjehn11;Version=1;Discard;Path="/soap" Servlet-Engine: Set-Cookie: JSESSIONID=tibpjehn11;Path=/soap Tomcat Web Server/3.2.1 (JSP Servlet-Engine: 1.1; 2.2; Tomcat Java 1.3.0; Web Server/3.2.1 Windows 2000 5.0 x86; java.vendor=sun Microsystems Inc.) (JSP 1.1; Servlet 2.2; Java 1.3.0; Windows 2000 5.0 x86; java.vendor=sun Microsystems Inc.) <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope <?xml version='1.0' encoding='utf-8'?> xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" HTTP-Port Response xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema"> xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" <SOAP-ENV:Body> xmlns:xsd="http://www.w3.org/1999/xmlschema"> <ns1:addresponse <SOAP-ENV:Body> xmlns:ns1="urn:numberadder" <ns1:addresponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> xmlns:ns1="urn:numberadder" <return SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> xmlns:ns2="http://xml.apache.org/xml-soap" <return xsi:type="ns2:vector"> xmlns:ns2="http://xml.apache.org/xml-soap" <item xsi:type="ns2:vector"> xsi:type="xsd:int">3</item> </return> <item xsi:type="xsd:int">3</item> </ns1:addresponse> </return> </SOAP-ENV:Body> </ns1:addresponse> </SOAP-ENV:Envelope> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Web-Server Firewall Firewall W12 Web Service Architekturen 13
Dienstanbieter Bietet eine Dienstleistung über Web an SOAP Ausblick auf Version 1.2: Breit getragener Standard (über 30 Arbeitsgruppenmitglieder) Frühe Umsetzung (Teilweise deutlich) präzisere Spezifikation SOAP-Action Action Header Eigener MIME-Type bei HTTP-Binding mustunderstand Status- und Fehlercodes XML-Namensräume... Engere Integration in W3C-XML XML-Standards (z.b. InfoSet) W12 Web Service Architekturen 14
Dienstanbieter Beschreibt und annonciert diesen Dienst Zu lösendes Teilproblem: Codierung von technischer Information über den Dienst abstrakte Dienstbeschreibung Aufrufparameter angebotene Operationen unterstützte Netzwerkprotokolle Bekannteste Lösung: WSDL (WebService Description Language) W12 Web Service Architekturen 15
Dienstanbieter Beschreibt und annonciert diesen Dienst WebService Description Language (WSDL) nutzbar durch binding kommuniziert durch service porttype message nimmt entgegen W12 Web Service Architekturen 16
Dienstanbieter Beschreibt und annonciert diesen Dienst WebService Description Language (WSDL): service: Gruppiert an technische Charakteristika gebundene ports zu einem Dienst binding: Definiert Protokolle und Datenformate eines porttypes porttype: Definiert abstrakte Operationen durch Definition ihrer Ein-/Ausgabenachrichten message: Abstrakte Definition der übertragenen Daten W12 Web Service Architekturen 17
Dienstanbieter Übernimmt Implementierung, Betrieb und Wartung Implementierung Programmiersprachliche Umsetzung der Kontrollogik durch Serverkomponente Abbildung der internen Datenstrukturen auf das verwendete Nachrichtenformat RPC/Nachrichten /Nachrichten-Infrastruktur, z.b. SOAP Betrieb: Beschreibung und Annoncierung des angebotenen Dienstes "klassische" Fragestellungen wie Sicherheitsaspekte, Skalierbarkeit, Lastverteilung, Performance... W12 Web Service Architekturen 18
Dienstanbieter Übernimmt Implementierung, Betrieb und Wartung Implementierung Durch die Nutzung der in XML-Schema Part 2 definierten Datentypen entsteht kein impedance mismatch W12 Web Service Architekturen 19
Dienstnachfrager Nutzt angebotenen Dienst Anhand der durch den Anbieter spezifizierten und publizierten Schnittstellen Unter Verwendung der vorgegebenen Schnittstellen und Datenformate Evtl. client-seitige Bereitstellung und Unterstützung diverser Sicherheitsmechanismen (z.b. Schlüsselverwaltung, SSL) Evtl. Vorhaltung notwendiger Abwicklungs- informationen (z.b. Passwort) W12 Web Service Architekturen 20
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien Anbieter 1 Nachfrager Anbieter 2 Dienst- Dienst- Dienst- Dienst- Anbieter 3 W12 Web Service Architekturen 21
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien Zu lösende Teilprobleme: Wer bietet den gesuchten Dienst an? Wo wird der gesuchte Dienst angeboten? Welche Konditionen gelten? Wie wird der gesuchte Dienst gesucht? Was ist der gesuchte Dienst? Lösungsansatz: UDDI (Universal Description, Discovery and Integration) W12 Web Service Architekturen 22
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien Lösungsansatz: UDDI (Universal Description, Discovery and Integration) Weltweit verteilt organisiertes Verzeichnis mit verschiedenen Diensten Gestattet gezielte Suche und wahlfreies Stöbern Herstellerunabhängige Standardisierungsinitiative (Ariba,, IBM und Microsoft) W12 Web Service Architekturen 23
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien Technische Umsetzung: Tägliche Replizierung zwischen allen UDDI-Standorten UDDI ist selbst ein WebService Kommunikation via SOAP Verwendetes Protokoll: HTTP(S) W12 Web Service Architekturen 24
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien Beispiel: Suche eines Anbieters <?xml version="1.0" encoding="utf-8"?> <find_businesses generic="2.0" xmlns="urn:uddi-org:api_v2"> <findqualifiers> <findqualifier>exactnamematch</findqualifier> </findqualifiers> <name>daimlerchrysler</name> </find_businesses> W12 Web Service Architekturen 25
Dienstnachfrager Sucht angebotene Dienste nach gewissen Kriterien UDDI-Datenstruktur: Datenstruktur: Business Service Business Entity Binding Template tmodel W12 Web Service Architekturen 26
Dienstnachfrager Integration in eigene Dienste und Applikationen Unterstützung des vom genutzten Dienst gewählten Kommunikationsprotokolls Evtl. Umsetzung zusätzlicher technischer Infrastrukturmaßnahmen (z.b. Sicherheit) Sinnvollerweise: Anbindung an ein UDDI-Repository zur Ermittlung eines geeigneten Kommunikationspartners W12 Web Service Architekturen 27
Dienstmakler Bietet Speicherung von Dienstbeschreibungen an UDDI-Repositories Repositories: derzeit betrieben: IBM, Microsoft, SAP Gestatten die kategorisierte Ablage von Dienstbeschreibungen Gleichen Dienstbeschreibungen zwischen den verschiedenen UDDI- Standorten ab W12 Web Service Architekturen 28
Dienstmakler Bietet Speicherung von Dienstbeschreibungen an Struktur eines UDDI UDDI-Repositories: Business Entity: white pages Nach Namen sortiertes Register Business Service: yellow pages Nach Kategorien sortiertes Register Binding Template und tmodel: green pages Detailinformationen Business Entity Business Service tmodel Binding Template W12 Web Service Architekturen 29
Dienstmakler Verwaltet kategorisierte Dienstbeschreibungen Kategorisierung der UDDI-verwalteten WebServices durch Taxonomien NAICS (North American Industry Classification System) UNSPSC (Universal Standard Products and Services Classification) ISO 3166:1999 (Codes for the representation of names of countries and their subdivisions) Beliebige Eigendefinierte W12 Web Service Architekturen 30
Dienstmakler Verwaltet kategorisierte Dienstbeschreibungen Beispiel: Autoreinigungsdienst: 81 Other Services (except Public Administration) 811 Repair and Maintenance 8111 Automotive Repair and Maintenance 81119 Other Automotive Repair and Maintenance 811192 Car Washes W12 Web Service Architekturen 31
Dienstmakler Ermöglicht automatisiertes Auffinden existierender Dienste UDDI-Standard Standard-API-Funktionen: find_x (X:=binding binding, businesses, relatedbusinesses, service, tmodel) Liefert passende UDDI-Elemente get_xdetail (X:=binding binding, business,service service, tmodel) Liefert Details zu einem UDDI- Elemente W12 Web Service Architekturen 32
WebService-Architektur... zerfällt in (mindestens) drei Rollen Dienstmakler (Service Broker) WSDL UDDI Dienstanbieter (Service Provider) SOAP Dienstnachfrager (Service Requestor) W12 Web Service Architekturen 33
Further Information Internet Information Server, SOAP-Toolkit http://www www.microsoft.comcom SOAP http://www www.w3..w3.org/tr/ WSDL http://www www.w3..w3.org/tr/2001/note-wsdl-20010315 UDDI http://www www.uddi.org Dieser Vortrag und weiterführende Information http://www www.jeckle.de W12 Web Service Architekturen 34