SOAP, nur ein neuer XML Dialekt

Download Report

Transcript SOAP, nur ein neuer XML Dialekt

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