soap simple object access protocol leitung: dr. ingrid wetzel / universität hamburg referenten:...

35
SOAP SOAP Simple Object Access Simple Object Access Protocol Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin Kottrasch, 9955823 Projektstudium E-Business & E-Service, WS 2001/2002 Institut f. WIN, Abteilung Software- Engineering, Universität Linz

Upload: karlene-schnaufer

Post on 05-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

SOAPSOAPSimple Object Access Simple Object Access

ProtocolProtocolLeitung:

Dr. Ingrid Wetzel / Universität Hamburg

Referenten: Nicole Brandstätter, 9955780Christian Haim, 9955433Martin Kottrasch, 9955823

Projektstudium E-Business & E-Service, WS 2001/2002Institut f. WIN, Abteilung Software-Engineering,Universität Linz

Page 2: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 2

GliederungGliederung

EinführungAufbau von SOAP-NachrichtenSOAP-DatentypenSOAP und RPCsZusammenfassung

Page 3: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 3

Einführung (1)Einführung (1) neue Technologie, wird seit 1998 von

DevelopMentor, IBM, Lotus, Microsoft und Userland Software entwickelt

einfach, erweiterbar, plattformübergreifend, basierend auf Web-Standards (HTTP, XML)

rein XML-basiert Mechanismus zum Beschreiben der

spezifische Semantik einer Anwendung Einsatz bei RPCs (Remote Procedure Calls) Netzwerkprotokoll

Page 4: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 4

prinzipieller Ablauf (Request):

Einführung (2)Einführung (2)

SOAP

Nachricht

SOAP

DFÜ

Nachricht

SOAP-Anwendung

... DFÜ

Page 5: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 5

Einführung(3)Einführung(3) SOAP spezifiziert:

– Aussehen der Serialisierung (unter Verwendung spezieller XML-Tags u. -Semantik)

– Übertragungsart der XML-Informationen (gegenwärtig via HTTP)

SOAP ist als Protokoll für ferne Methodenaufrufe gedacht.

SOAP bedient sich dem HTTP um die XML-kodierten, serialisierten Methodenargumentdaten von System zu System zu transportieren.

Page 6: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 6

Funktionale Funktionale Vorteile von Vorteile von SOAPSOAP

ProgrammiersprachenunabhängigBetriebssystemunabhängigPlattformunabhängigKeine Beeinträchtigung durch

FirewallsBreite Unterstützung, weil viele

große Firmen an der Entwicklung mitarbeiten.

Page 7: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 7

Technische Vorteile von Technische Vorteile von SOAPSOAP

Einfache TechnologieErweiterbar Benutzt industrieweite Standards:

XML, HTTP, SMTP, FTPStellt die Trennung von Inhalt und

Struktur sicher

Page 8: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 8

Nachteile Nachteile von von SOAPSOAP

SOAP ist äußerst unsicher Noch immer keine vollständige

Interoperabilität Große Nachrichten, weil nur Werte

gespeichert werden und keine Referenzen Geringere Performance als andere RPC

SOAP ist (nur) ein Netzwerkprotokoll undkeine komplette verteilte Objektarchitektur.

Page 9: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 9

GliederungGliederung

EinführungAufbau von SOAP-NachrichtenSOAP-DatentypenSOAP und RPCsZusammenfassung

Page 10: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 10

Aufbau eines SOAP-PaketsAufbau eines SOAP-Pakets

Scribner, K.; Stiver, M.:SOAP developer‘s guide S. 37

HTTP-Header

SOAPAction

CR/LF

SOAP-ENV:Envelope

SOAP-ENV:Header

SOAP-ENV:Body

Header-Element 1

Header-Element n

...

Methoden-aufrufelement

Page 11: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 11

Elemente einer SOAP-Elemente einer SOAP-NachrichtNachricht

SOAP-Envelope SOAP-HeaderSOAP-Body

Header-Element(optional)

Body-Element

Envelope-Element

Page 12: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 12

Exkurs: Exkurs: XML-Namensräume (1)XML-Namensräume (1)

wird von einer URI-Referenz identifiziert

erweitert die Bezeichnung von Element- und Attributnamen

verhindert Namenskonflikte undermöglich Wiederverwendung von

ganzen Wortschätzen

Page 13: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 13

Exkurs: Exkurs: XML-Namensräume (2)XML-Namensräume (2)

Gehört keinem Namensraum an:<Produkt>

<Produktname Type="1">Widget</Produktname>

</Produkt>

Deklaration eines Namensraums:xmlns:<Namensraum-Präfix> = <URI>

Voranstellung des Präfixes an lokale Elemente und Attribute:

<pns:Produkt xmlns:pns="http://www.mcp.com/prodns">

<pns:Produktname pns:Type="1">Widget</pns:Produktname>

</pns:Produkt>

Page 14: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 14

Exkurs: Exkurs: XML-Namensräume (3)XML-Namensräume (3)

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schema.xmlsoap.org/soap/envelope/"

SOAP-ENV:encodingStyle="http://schema.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<m:Print xmlns:m="Some-uri">

<norm>din</norm>

<size>a4</size>

</m:Print>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 15: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 15

SOAP-EnvelopeSOAP-Envelope

Name des Elements lautet Envelope Element muß in jeder SOAP Nachricht

enthalten sein Element darf Namensräume enthalten Element darf zusätzliche Attribute

enthalten Element darf weitere Unterelemente

enthalten

Page 16: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 16

SOAP-HeaderSOAP-Header(1)(1)

Header Element ist erstes direktes Kindelement

ist optional besteht aus einem oder mehreren

Header Entries wird identifiziert durch Name und

Namensraum-URI Zusatzattribute “mustUnderstand” und

“actor”

Page 17: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 17

SOAP-Header (2)SOAP-Header (2)

<SOAP-ENV:Header> <ns1:DataGram xmlns:ns1= "http://www.myurl.com/datagram"> <ns1:Datum id="EtwasWichtiges"> <!-- Hier Konstante definieren... --> </ns1:Datum> </ns1:DataGram>

</SOAP-ENV:Header>

<SOAP-ENV:Body> <ns1:Methode1 xmlns:ns1="http://www.myurl.com/datagram"> <ns1:Arg1 href="#EtwasWichtiges">123</ns1:Arg1> </ns1:Methode1>

</SOAP-ENV:Body>

Page 18: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 18

Header-Element und seine Header-Element und seine AttributeAttribute

SOAP-ENV:mustUnderstand

dient dazu, dem SOAP-Prozessor mitzuteilen, eine unbekannte oder unerwartete Information zu verwerfen

SOAP-ENV:actor

Anwendung, die zur Verarbeitung bestimmt ist

Page 19: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 19

SOAP-Body (1)SOAP-Body (1)

Der Body ist ein direktes Kindelement des Envelope-Elements

Der Body besteht aus ein oder mehreren Body-Entries

wird identifiziert durch– Präfix und lokalen Namen sowie Namespace-

Definition– lokaler Name (globale Namespace-Definition wird

verwendet) Der Body kann genau einmal ein Fault-Element

enthalten

Page 20: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 20

SOAP-Body (2)SOAP-Body (2)

3 mögliche Inhalte des SOAP-Bodys:– Aufruf -Informationen– Antwort -Informationen– Fehler -Informationen

Page 21: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 21

SOAP-Body beim SOAP-Body beim AufrufAufruf einer einer MethodeMethode

POST /StockQuote HTTP/1.1

Host: www.stockquotes.com

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

SOAPAction: "Some-URI#GetLastTradePriceDetailed"

<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:GetLastTradePriceDetailed xmlns:m="Some-URI">

<Symbol>USD</Symbol>

<Company>SAP Corp</Company>

<Price>34.1</Price>

</m:GetLastTradePriceDetailed>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 22: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 22

SOAP-Body einer SOAP-Body einer AntwortAntwortnachrichtnachricht

HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn

<SOAP-ENV:Envelopexmlns: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"><PriceAndVolume>

<LastTradePrice>34.1</LastTradePrice><DayVolume>10000</DayVolume>

</PriceAndVolume></m:GetLastTradePriceResponse>

</SOAP-ENV:Body><SOAP-ENV:Envelope>

Page 23: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 23

SOAP-Body einer SOAP-Body einer FehlerFehlernachrichtnachricht

HTTP/1.500 Internal Server Error

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body>

<SOAP-ENV:Fault>

<faultcode>SOAP-ENV:MustUnderstand</faultcode>

<faultstring>SOAP Must Understand Error</faultstring>

</SOAP-ENV:Fault>

</SOAP-ENV:Body>

<SOAP-ENV:Envelope>

Page 24: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 24

GliederungGliederung

EinführungAufbau von SOAP-NachrichtenSOAP-DatentypenSOAP und RPCsZusammenfassung

Page 25: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 25

Datentypen bei SOAPDatentypen bei SOAP

Einfache Datentypen– direkt in XML verankert

Zusammengesetzte Datentypen– Strukturen– Arrays

Page 26: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 26

Einfache DatentypenEinfache Datentypen

Zeichenketten (strings) Fließkommazahlen (float, double) Boolsche Werte (boolean) Festkommazahlen (decimal) Zeit- und Datumsangaben

(TimeDuration) Binärdaten (binary) [Aufzählungstypen]

Page 27: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 27

Zusammengesetzte Zusammengesetzte Datentypen (1)Datentypen (1)

Strukturen:

<book><author>Pomberger, G.</author><title>Methoden des SWE</title><price>430.00</price>

</book>

Page 28: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 28

Zusammengesetzte Zusammengesetzte Datentypen (2)Datentypen (2)

Arrays:

<queue SOAP-ENC:arrayType="xsd:int[2]"><zahl>3</zahl><zahl>5</zahl>

</queue>

Page 29: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 29

GliederungGliederung

EinführungAufbau von SOAP-NachrichtenSOAP-DatentypenSOAP und RPCsZusammenfassung

Page 30: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 30

SOAP und RPCsSOAP und RPCs

SOAP wurde hauptsächlich für RPCs entworfen Aufrufen einer "fernen" Methode RPC = Remote Procedure Call folgt dem Request/Response-Modell des HTTP Probleme wie

– Referenzübergabe oder – Identifikation ferner Endpunkte

bei verteilten Systemen bleiben auch bei SOAP bestehen

Page 31: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 31

Entfernter MethodenaufrufEntfernter Methodenaufruf

POST /creator.pl?objekt=meinobj HTTP/1.1HOST: www.mcp.comAccept: text/*Content-type: text/xmlContent-length: nnnnSOAPAction: Some-uri#Add <SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schema.xmlsoap.org/soap/envelope/"SOAP-ENV:encodingStyle="http://schema.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Body><m:Add xmlns:m="Some-uri">

<a>3</a><b>4</b>

</m:Add></SOAP-ENV:Body></SOAP-ENV:Envelope>

Objektendpunktkennung

Maschinenadresse

Schnittstelle

Methodenname

SOAP-Nutzlast

Page 32: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 32

ORPC – Object Remote ORPC – Object Remote Procedure CallProcedure Call

SOAP ist für RPC nur ein weiteres ORPC-Protokoll, welches die gleiche Taktik zur Realisierung ferner Methodenaufrufe erfordert wie DCOM und CORBA.

Page 33: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 33

GliederungGliederung

EinführungAufbau von SOAP-NachrichtenSOAP-DatentypenSOAP und RPCsZusammenfassung

Page 34: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 34

Zusammenfassung (1)Zusammenfassung (1)

SOAP = Netzwerkprotokoll, keine Architektur

Aufbau: Envelope, [Header], BodyXML-Dokument mit spez.

NamespacesSerialisierung von DatenströmenÜbetragung hauptsächl. über HTTPfür Remote Procedure Calls

Page 35: SOAP Simple Object Access Protocol Leitung: Dr. Ingrid Wetzel / Universität Hamburg Referenten: Nicole Brandstätter, 9955780 Christian Haim, 9955433 Martin

E-Business / E-Service WS 01/02 35

Zusammenfassung (2)Zusammenfassung (2)

Ausblick / Zukunft von SOAP:– Tools von der Programmiersprache

zum XML-Schema– XML-Schemata für die

Schnittstellendefinition– SOAP-fähige Betriebssysteme