Title: SOAP, nur ein neuer XML- Dialekt?
1SOAP, nur ein neuer XML- Dialekt?
- Dr. Eduard Heindl,
- Lehrbeauftragter an der FH-Geislingen
2Inhalt
- Schnittstellen zwischen Software
- SOAP Simple Object Access Protocol
- Beispieldateien
- Hintergrund
- Weitere Komponenten WDSL, UDDI
- Vor- und Nachteile
- Trend?
3IT-Kommunikation
Anwendung
4Probleme 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
5SOAP 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
6Eigenschaften von SOAP
- Programmiersprachen-Unabhängigkeit
- Lesbarer Text (human readable)
- Datentypen (jenseits des Strings)
7Aufbau SOAP Message
- Format XML
- Definition durch XML-Schema
- SOAP Envelope
- SOAP Header
- SOAP Body
8SOAP Aufbau
Transport-Umschlag (HTTP, SMTP, ...)
SOAP- Dokument ltSEEnvelopegt
ltSEHeadergt(optional) Delivery Information
ltSEBodygt(required)
Nutzdaten (payload)
ltSEFaultgt (optional)
9Eine kleine Anfrage
POST /Sample HTTP/1.1Host www.sampleserver.comC
ontent-Type text/xml charset"utf-8Content-Len
gth 234SOAPAction "GetLastTradePrice" ltSEEnvel
opexmlnsSEhttp//schemas.xmlsoap.org/soap/envel
ope/SEencodingStyle"http//schemas.xmlsoap.org/
soap/encoding/"/gt ltSEBodygt ltmGetLastTradePric
e xmlnsm"Some-URI"gt ltsymbolgtDEFlt/symbolgt
lt/mGetLastTradePricegt lt/SEBodygtlt/SEEnvelopegt
10Und die Antwort
HTTP/1.1 200 OKContent-Type text/xml
charset"utf-8Content-Length
178 ltSOAP-ENVEnvelope xmlnsSOAP-ENVhttp//schem
as.xmlsoap.org/soap/envelope/ SOAP-ENVencodingSty
le"http//schemas.xmlsoap.org/soap/encoding/"/gtlt
SOAP-ENVBodygtltmGetLastTradePriceResponse
xmlnsm"Some-URI"gtltPricegt34.5lt/Pricegtlt/mGetLas
tTradePriceResponsegtlt/SOAP-ENVBodygtlt/SOAP-ENVE
nvelopegt
11Schema 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-part
2-20020621/
12Hintergrund 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
13Hintergrund 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 - xmlnsreinhttp//www.lux.de/sauber
- Einsatz im Dokument ... reinsoap ...
14Sicherheitsaspekte
- SOAP kann sichere Transportprotokolle nutzen
- Secure HTTP (HTTPS)
- Secure MIME (S/MIME)
- Security im ltheadergt vereinbaren
- Nutzung von LDAP, X.509 für Authentifikation
15Web Services
- Schnittstelle des Service beschreiben
- Service zentral hinterlegen
- Service suchen
- Service in die Software implementieren
- Service zur Laufzeit aufrufen
16Ablauf einer Anfrage
2. suchen
1. publizieren
stub
stub
stub
stub
3. Nutzen
Service Requestor
Anwendung
Anwendung
stub
stub
17Universal 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
18Inhalt 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)
19Web 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
20WDSL Inhalte
- Service Interface Datei
- Datentypen
- Message Typen
- Operationen
- Port-Typen
- Bindings
- Server Implementations
- Datei
- Port
- Service
21WSDL - Beispiel
lt?xml version"1.0" encoding"utf-8"?gtltdefinition
s .. gtlttypesgtltsschema elementFormDefault"qual
ified" targetNamespace./"gtltselement
name"Echo"gt ltscomplexTypegt ltssequencegt
ltselement minOccurs"0" maxOccurs"1"
name"echoString" type"sstring"gt
lt/ssequencegt lt/scomplexTypegtlt/selementgtltsel
ement name"EchoResponse"gtltselement
name"string" nillable"true" type"sstring" /gt
22Web 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
23Implementierungen
- 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
24Vorteile 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)
25Probleme bei Web Services
- HTTP bei vielen Firewalls offen
- Zuverlässigkeit der Services
- Vielzahl von Serviceschnittstellen
- Performance bei der Prozessverteilung
- Haftung für Leistungen
26SOAP 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
27Zum 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/
28Zukunft?