SOAP (Simple Object Access Protocol) Universität zu Köln Institut für...

Preview:

Citation preview

SOAP (Simple Object Access Protocol)

Universität zu KölnInstitut für Historisch-Kulturwissenschaftliche

Informationsverarbeitung WS 09/10

M.A. Susanne KurzHKI-Proseminar (Teil 1) Texte als Information

Referat von Feyza Fevziye ImrenDatum: 29.01.2010

Gliederung:

• Was ist SOAP?• Entwicklung• Funktionsweise von SOAP

Was ist SOAP?

• Netzwerkprotokoll• Ermöglicht Kommunikation zwischen

verteilten Netzwerksystemen• Remote Procedure Calls • Ziel: Unterstützung des

plattformunabhängigen Nachrichtenaustausch

• Stützt sich an XML und (z.B.) HTTP

Anwendungsbereiche

• Abwicklung von Suchanfragen durch SOAP (request-reponse; RPC)

• Wechselseitige, dialogorientierter Austausch von XML-Dokumenten

• Z.B. Authentifizierungen bei Bestellungen (Online-Shops), oder Elemente bei Suchanfragen in Suchmachinen

Entwicklung

• 1998: Dave Winer und Microsoft entwickeln den Vorgänger XML-RPC

• 1999: SOAP-Version 0.9, später 1.0• 2000: Unterstützung von IBM, Lotus & Sun• 2001: SOAP 1.1 Software bei W3C als ein

Standart• 2003: SOAP 1.2 wird anerkannt• Seit dem KEIN Akronym mehr

Funktionsweise von SOAP

Beispiel einer SOAP-Nachricht

Grundstruktur

„Envelope-Element“: Referenz durch Namensraum-Attribut auf: http://www.w3.org/2003/05/soap-envelope/

SOAP Header: optionaler Erweiterungsmechanismus (z.B. für Authentifikation oder Transaktionsverarbeitung)

SOAP Body: Pflichtelement (enthält eigentliche Dateninformationen)

SOAP Bespiel<?xml version='1.0' ?><env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header>….<env:Header><env:Body><wetter xmlns="http://www.soapwetter.de/wetter"><plz>57068</plz></wetter></env:Body></env:Envelope>

Die Übermittlung

Der Header (optional)

- hier: Authentifizierung anhand eines Benutzernamens und eines Passworts

-Wenn der Empfänger den Header nicht verarbeiten kann, wird er ignoriert. Es sei denn, das Attribut „mustUnderstand“ ist gesetzt.

Fluganfrage

Reservierung mit Header-Blöcken und einem Body

<?xml version='1.0' ?><env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header>

<m:reservationxmlns:m="http://travelcompany.example.org/reservation"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference><m:dateAndTime>2001-11-29T13:20:00.000-05:00</m:dateAndTime></m:reservation><n:passengerxmlns:n="http://mycompany.example.com/employees"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><n:name>Åke Jógvan Øyvind</n:name></n:passenger>

</env:Header><env:Body><p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel"><p:departure><p:departing>New York</p:departing><p:arriving>Los Angeles</p:arriving><p:departureDate>2001-12-14</p:departureDate><p:departureTime>late afternoon</p:departureTime><p:seatPreference>aisle</p:seatPreference></p:departure><p:return><p:departing>Los Angeles</p:departing><p:arriving>New York</p:arriving><p:departureDate>2001-12-20</p:departureDate><p:departureTime>mid-morning</p:departureTime><p:seatPreference/></p:return></p:itinerary><q:lodgingxmlns:q="http://travelcompany.example.org/reservation/hotels"><q:preference>none</q:preference></q:lodging></env:Body>

</env:Envelope>

Antwort auf Fluganfrage

• wechselseitige (back-and forth) Konversation

• Dialogorietierter Austausch von XML-Dokumenten

<?xml version='1.0' ?><env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><m:reservationxmlns:m="http://travelcompany.example.org/reservation"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference><m:dateAndTime>2001-11-29T13:35:00.000-05:00</m:dateAndTime></m:reservation><n:passengerxmlns:n="http://mycompany.example.com/employees"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><n:name>Åke Jógvan Øyvind</n:name></n:passenger></env:Header><env:Body><p:itineraryClarificationxmlns:p="http://travelcompany.example.org/reservation/travel"><p:departure><p:departing><p:airportChoices>JFK LGA EWR</p:airportChoices></p:departing></p:departure><p:return><p:arriving><p:airportChoices>JFK LGA EWR</p:airportChoices></p:arriving></p:return></p:itineraryClarification></env:Body></env:Envelope>

Diese Antwort führt den Nachrichtenaustausch fort<?xml version='1.0' ?>

<env:Envelopexmlns:env="http://www.w3.org/2003/05/soap-envelope"><env:Header><m:reservationxmlns:m="http://travelcompany.example.org/reservation"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference><m:dateAndTime>2001-11-29T13:36:50.000-05:00</m:dateAndTime></m:reservation><n:passengerxmlns:n="http://mycompany.example.com/employees"env:role="http://www.w3.org/2003/05/soap-envelope/role/next"env:mustUnderstand="true"><n:name>Åke Jógvan Øyvind</n:name></n:passenger></env:Header><env:Body><p:itineraryxmlns:p="http://travelcompany.example.org/reservation/travel"><p:departure><p:departing>LGA</p:departing></p:departure><p:return><p:arriving>EWR</p:arriving></p:return></p:itinerary></env:Body></env:Envelope>

Entfernte Prozeduraufrufe (RPC)

• Entfernte Methoden des Servers werden per Web Services aufgerufen

• ein struct wird modelliert, der den Namen der Prozedur oder Methode beinhaltet

• env:encodingStyle Attribut mit dem Wert http://www.w3.org/2003/05/soap-encoding (Um zu verdeutlichen, dass der Inhalt der Struktur gemäß den SOAP-Kodierungsregeln serialisiert worden ist)

Fehlerszenarien

• Das SOAP-Fault-Element ist ein Unterelement des Bodys

• Besteht aus Subelementen Code, Reason und den optionalen Elementen Node, Role und Detail

Quellen:• http://poseidon.home.tlink.de/w3c/REC-soap12-part0-

20030624-de_DE/#L1149• http://www.w3.org/TR/2003/REC-soap12-part1-

20030624/• http://www.w3.org/TR/2003/REC-soap12-part2-

20030624/• http://www.wi-ler.net/html/img/pool/papers/

php_soap.pdf?sid=6002d4db63ab7590f96e6d66978cf02c

• http://www.schoenberg-solutions.de/dl/SOAP_SEC_060810.pdf

SMIL

(Synchronized Multimedia Integration Language)

Was ist SMIL?

• XML basierend• Von W3C entwickelter Standard• Markup - Sprache für zeitsynchronisierte,

audiovisuelle und multimediale Inhalte• Als Dateierweiterung wird .smi oder .smil

verwendet• Aktuellste Version: SMIL 3.0

Ziele• Einheitliche 'Sprache' für interaktive Multimedia-• Präsentationen vor allem im Internet• Anzeigen von mehrere Dateien zur gleichen Zeit• Verfügt über Definition von Sequenz und Dauer

der einzelnen Elemente• Verfügt über Definition von Position und

Sichtbarkeit der Elemente• Anwendungsmöglichkeit mit SVG• Multimediaobjekte, die auf räumlich verteilten

Servern liegen, können zu einer einheitlichen Präsentation zusammengefasst werden

Eigenschaften

• Spezifikation des Layouts und Synchronisation• Ermöglicht die integrierte Darstellung und

Verlinkung unterschiedlicher Medien zu einer linearen oder interaktiven Multimedia-Präsentation – online wie offline.

• Anpassung an die Übertragungsbandbreite; Bildschirmauflösung und Farbtiefe

• Auswahl an Sprachversionen• Unterstützung von Hyperlinks

Grundstruktur<smil> <head> <meta name="copyright" content="Inhalt" /> <layout> <!—Layout-Elemente --> </layout> </head> <body> <!—Media- und Synchronisations-Elemente --></body> </smil>

Beispiel<smil><head><layout><root-layout id=“video” width="300" height="200"/><region id=“comment" left="25" top="50" width=“35" height=“29" /><region id=“bild" left=“135" top=“60" width=“43" height=“75" /><region id=“titel" left=“37" top=“115" width=“215" height="15" /></layout></head><body><seq><img src="bild.jpg" alt="Testbild" region= “video" dur=“5s”/><img src=“date.gif" region="video" begin="1.0s" end="3.0s"/> </seq></body></smil>

Eigenschaften• Unterstützt alle gängige standardisierten

Medienformate für Text, Grafik, Video, Sound:• img: JPEG, GIF, PNG, etc.• video: MPEG, AVI, MOV, etc.• audio: MP3, WAV, AU, etc.• animation: z.B SVG• text: TXT, ASCII, etc.• Ab 2.0 können die SMIL-Anweisungen in• andere Datei-Formate wie XHTML oder SVG• eingebettet werden

In welchen Player/Browserumgebungen können die SMIL-Applikationen abgespielt

werden?

• Ambulant 1.8 Open Source Player- als eigene Applikation- als FireFox PlugIn• RealPlayer – der beste Player für SMIL• Internet Explorer 6 (7 noch nicht, daran wird beiSMIL 3.0 gearbeitet)• QuickTime, jedoch nur SMIL 1.0!

Zeitliche Steuerung• Parallel• Sequentiell• Ereignisbasiert• In Abhängigkeit von…• Variable Zeit• Beispiel:

<body><img src="bild.jpg" alt="Bild" region= " video" dur="3s" begin="2s" /></body>…..

Synchronisationselemente

• - <seq>-Element – Sequenz für Nacheinanderabspielen• - <excl>-Element – einzelne Objekte ohne Reihenfolge• - <par>-Element – paralleles Abspielen der

Medienobjekte• Kombinationen von <par>, <seq> und <excl>• Wiederholungen

Ereignisbasierte Synchronisation mit Zeit als Ereignis

Ereignisbasierte Synchronisationmit Interaktions – Ereignissen

• - Nutzung des <excl>-Elements für zeitunabhängige• Präsentationen• - Als Ereignis kann z.B. ein Klick auf ein Objekt definiert

werden<body><excl><img src="bild1.jpg" id="bild1" region="bild" begin="0s;bild2.activateEvent" dur="indefinite" /><img src="bild2.jpg" id="bild2" region="bild"begin="bild1.activateEvent" dur="indefinite" /></excl></body>

Logische SynchronisationBeispiel: Wahl geeigneter Streams in Abh. von Bandbreite<par><text .../><switch><par system-bitrate="40000">...</par><par system-bitrate="24000">...</par><par system-bitrate="10000">........</par></switch></par>

Quellen

• http://www.w3.org/2000/xp/Group/ • http://www.xml.com/pub/a/2002/05/29/smil

.html• http://poseidon.home.tlink.de/w3c/REC-

soap12-part0-20030624-de_DE/#L1149• http://www.w3.org/TR/2003/REC-soap12-

part1-20030624/

Recommended