1 / 35

SOAP Simple Object Access Protocol

SOAP Simple Object Access 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,

aloha
Download Presentation

SOAP Simple Object Access Protocol

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOAPSimple Object Access 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

  2. Gliederung • Einführung • Aufbau von SOAP-Nachrichten • SOAP-Datentypen • SOAP und RPCs • Zusammenfassung E-Business / E-Service WS 01/02

  3. 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 E-Business / E-Service WS 01/02

  4. Einführung (2) • prinzipieller Ablauf (Request):      Nachricht Nachricht ... DFÜ DFÜ SOAP SOAP-Anwendung SOAP E-Business / E-Service WS 01/02

  5. 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 ferneMethodenaufrufe gedacht. • SOAP bedient sich dem HTTP um die XML-kodierten, serialisierten Methodenargumentdaten von System zu System zu transportieren. E-Business / E-Service WS 01/02

  6. Funktionale Vorteile von SOAP • Programmiersprachenunabhängig • Betriebssystemunabhängig • Plattformunabhängig • Keine Beeinträchtigung durch Firewalls • Breite Unterstützung, weil viele große Firmen an der Entwicklung mitarbeiten. E-Business / E-Service WS 01/02

  7. Technische Vorteile von SOAP • Einfache Technologie • Erweiterbar • Benutzt industrieweite Standards: XML, HTTP, SMTP, FTP • Stellt die Trennung von Inhalt und Struktur sicher E-Business / E-Service WS 01/02

  8. Nachteile von SOAP • 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 und keine komplette verteilte Objektarchitektur. E-Business / E-Service WS 01/02

  9. Gliederung • Einführung • Aufbau von SOAP-Nachrichten • SOAP-Datentypen • SOAP und RPCs • Zusammenfassung E-Business / E-Service WS 01/02

  10. Aufbau eines SOAP-Pakets Scribner, K.; Stiver, M.: SOAP developer‘s guide S. 37 E-Business / E-Service WS 01/02

  11. Elemente einer SOAP-Nachricht • SOAP-Envelope • SOAP-Header • SOAP-Body Envelope-Element Header-Element (optional) Body-Element E-Business / E-Service WS 01/02

  12. Exkurs: XML-Namensräume (1) • wird von einer URI-Referenz identifiziert • erweitert die Bezeichnung von Element- und Attributnamen • verhindert Namenskonflikte und • ermöglich Wiederverwendung von ganzen Wortschätzen E-Business / E-Service WS 01/02

  13. Exkurs: 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> E-Business / E-Service WS 01/02

  14. Exkurs: 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> E-Business / E-Service WS 01/02

  15. SOAP-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 E-Business / E-Service WS 01/02

  16. SOAP-Header(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” E-Business / E-Service WS 01/02

  17. 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> E-Business / E-Service WS 01/02

  18. Header-Element und seine Attribute • 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 E-Business / E-Service WS 01/02

  19. 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 E-Business / E-Service WS 01/02

  20. SOAP-Body (2) • 3 mögliche Inhalte des SOAP-Bodys: • Aufruf -Informationen • Antwort -Informationen • Fehler -Informationen E-Business / E-Service WS 01/02

  21. SOAP-Body beim Aufruf einer Methode 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> E-Business / E-Service WS 01/02

  22. SOAP-Body einer Antwortnachricht HTTP/1.1 200 OK 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> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <PriceAndVolume> <LastTradePrice>34.1</LastTradePrice> <DayVolume>10000</DayVolume> </PriceAndVolume> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> <SOAP-ENV:Envelope> E-Business / E-Service WS 01/02

  23. SOAP-Body einer Fehlernachricht 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> E-Business / E-Service WS 01/02

  24. Gliederung • Einführung • Aufbau von SOAP-Nachrichten • SOAP-Datentypen • SOAP und RPCs • Zusammenfassung E-Business / E-Service WS 01/02

  25. Datentypen bei SOAP • Einfache Datentypen • direkt in XML verankert • Zusammengesetzte Datentypen • Strukturen • Arrays E-Business / E-Service WS 01/02

  26. Einfache Datentypen • Zeichenketten (strings) • Fließkommazahlen (float, double) • Boolsche Werte (boolean) • Festkommazahlen (decimal) • Zeit- und Datumsangaben (TimeDuration) • Binärdaten (binary) • [Aufzählungstypen] E-Business / E-Service WS 01/02

  27. Zusammengesetzte Datentypen (1) Strukturen: <book> <author>Pomberger, G.</author> <title>Methoden des SWE</title> <price>430.00</price> </book> E-Business / E-Service WS 01/02

  28. Zusammengesetzte Datentypen (2) Arrays: <queue SOAP-ENC:arrayType="xsd:int[2]"> <zahl>3</zahl> <zahl>5</zahl> </queue> E-Business / E-Service WS 01/02

  29. Gliederung • Einführung • Aufbau von SOAP-Nachrichten • SOAP-Datentypen • SOAP und RPCs • Zusammenfassung E-Business / E-Service WS 01/02

  30. SOAP 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 E-Business / E-Service WS 01/02

  31. Entfernter Methodenaufruf Objektendpunktkennung POST /creator.pl?objekt=meinobj HTTP/1.1 HOST: www.mcp.com Accept: text/* Content-type: text/xml Content-length: nnnn SOAPAction: 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> Maschinenadresse SOAP-Nutzlast Methodenname Schnittstelle E-Business / E-Service WS 01/02

  32. ORPC – Object Remote Procedure Call • SOAP ist für RPC nur ein weiteres ORPC-Protokoll, welches die gleiche Taktik zur Realisierung ferner Methodenaufrufe erfordert wie DCOM und CORBA. E-Business / E-Service WS 01/02

  33. Gliederung • Einführung • Aufbau von SOAP-Nachrichten • SOAP-Datentypen • SOAP und RPCs • Zusammenfassung E-Business / E-Service WS 01/02

  34. Zusammenfassung (1) • SOAP = Netzwerkprotokoll, keine Architektur • Aufbau: Envelope, [Header], Body • XML-Dokument mit spez. Namespaces • Serialisierung von Datenströmen • Übetragung hauptsächl. über HTTP • für Remote Procedure Calls E-Business / E-Service WS 01/02

  35. Zusammenfassung (2) • Ausblick / Zukunft von SOAP: • Tools von der Programmiersprache zum XML-Schema • XML-Schemata für die Schnittstellendefinition • SOAP-fähige Betriebssysteme E-Business / E-Service WS 01/02

More Related