Frage zu SOAP



  • In der WP steht:

    Durch die Möglichkeit des flexiblen Aufbaus des Dokuments können jedoch komplexe Transaktionen in einer Anfrage atomar zusammengefasst werden, während in stark gekoppelten Systemen hierzu oftmals mehrere Anfragen gestellt werden müssen.

    http://de.wikipedia.org/wiki/SOAP

    Frage:

    Muss das XML Dokument beim Empfänger dann nicht noch validiert werden, damit die Anfrage überhaupt atomar sein kann?
    Denn immerhin muss man ja feststellen ob das XML Dokument vollständig versendet wurde.

    Außerdem sehe ich da noch ein Problem bei der Semantik, Semantik wird von SOAP zwar nicht spezifiziert, aber um Bitfehler zu vermeiden müßte eine Anwendung die Nutzdaten noch zusätzlich mit Einträgen für Prüfsummen vorsehen, damit man von einer echten fehlerfreien atomaren Übertragung sprechen kann.

    Ist das so richtig?



  • Um Bitfehler sollte sich in der Regel schon eine tiefere Schicht kümmern würde ich sagen (z.B. TCP).

    Validieren müsste man eigentlich generell um festzustellen dass der Client einem da nicht einfach Dünnpfiff schickt. Feststellen ob die Nachricht komplett (aber evtl. falsch) ist, wird der XML-Parser schon feststellen können weil z.B. das root-Element nicht geschlossen wurde oder sonstige Syntax-Fehler beim Parsen auftauchen.



  • @SOAP
    Fehlerfrei kann man sowieso nie garantieren. Man kann nur eine Schranke für die Fehlerwahrscheinlichkeit garantieren. Dann kann man sagen: die Wahrscheinlichkeit dass eine Anfrage (unerkannt) falsch übertragen wird ist geringer als 10^-X.

    Und wenn man so eine Schranke garantieren will, muss man auch selbst Prüfsummen mitschicken.

    Was das "atomar" angeht: SOAP bietet dir nur die Möglichkeit relativ einfach beliebig komplexe Anfragen zu formulieren. Ob man davon gebraucht macht oder nicht, und ob der Server eine Anfrage dann auch wirklich atomar ausführt oder nicht sind wieder andere Fragen.

    Man kann auch ohne SOAP komplexe Anfragen senden und atomar am Server verarbeiten. Genau so kann man auch mit SOAP einen Vorgang der eigentlich atomar sein sollte auf mehrere Anfragen verteilen, so dass der Server sie nicht mehr atomar ausführen kann.

    Das als Eigenschaft von SOAP darzustellen ist mMn. falsch.


Anmelden zum Antworten