SOAP #
Was ist SOAP #
SOAP ist ein auf XML basierendes Protokoll, um Daten zwischen verschiedenen Rechnern auszutauschen und Unterprogramme auf entfernten Rechnern aufzurufen (RPC).
Eine SOAP-Nachricht ist ein XML-Dokument in einer bestimmten Form, die über einen beliebigen Transportweg an einen Server übermittelt wird. Dieser bearbeitet die Anfrage und schickt eine Antowrt (SOAP-Response) zurück. Als Transportweg wird meistens HTTP benutzt.
Das XML-Dokument besteht aus einem Envelope-Tag, in das ein Header-Tag und ein Body-Tag eingebunden sind. Im Body stehen dann die eigentlich zu übermittelten XML-Daten.
Was habe ich damit gemacht #
Ich selber (ThomasBayen) habe SOAP benutzt, um Anfragen eines vorhandenen Clients zu behandeln. Dabe ihabe ich leider bemerkt, dass das Perl-SOAP-Modul nicht mit den fremden Anfragen zurechtkam. IMHO wurde ein anderer XML-Namensraum benutzt, als in einer vom Client des SOAP-Moduls erzeugten Nachricht, was der Server-Teil nicht mitmacht. Aus diesem Grunde habe ich die SOAP-Nachrichten von Hand mit dem Modul XML::DOM bzw. XML::LibDOM decodiert und neu codiert. Insbesondere libdom hat sofort gut funktioniert. Da es sich bei SOAP ja nur um XML mit speziellem Inhalt handelt, war das Ganze recht einfach.
DOM #
DOM ist eine sprachunabhängige Spezifikation einer API, um XML-Dokumente zu bearbeiten. Ein DOM-Parser parst ein XML-Dokument und legt im Speicher eine Struktur an, die dieses Dokument repräsentiert. Man kann nun mit bestimmten, vorgegebenen Befehlen auf die Elemente zugreifen und mit Ihnen arbeiten. Natürlich kann man aus der DOM-Struktur auch wieder ein XML-Dokument ausgeben. Es gibt zwei DOM-Implementationen in Perl, die ich oben ausprobiert habe.
Links #
Hier möchte ich die Links zum Thema notieren, die mir weitergeholfen haben:
- http://www.fh-wedel.de/~si/seminare/ws00/Ausarbeitung/6.soap/soap00.htm - Text der FH Wedel zum Thema
- http://www.perl.com/pub/a/2001/01/soap.html - Artikel auf www.perl.com
- http://www.w3.org/TR/SOAP/ - Spezifikation von SOAP 1.1