Frage

MTOM ist das W3C Message Transmission Optimization Mechanism, ein Verfahren zum effizienten binären Daten zu und von Web-Service zu senden.

Wie funktioniert es im Allgemeinen arbeiten?

War es hilfreich?

Lösung

Wenn Sie setzen Wireshark (oder aktiviert Dieses liefert ein Beispiel dessen, was die Nachricht über den Draht geschickt aussieht.

Andere Tipps

Alles beginnt mit der Tatsache, dass SOAP ist XML . Und wenn Sie etwas anderes als Text, zum Beispiel senden, ein Bild -. Es hat sich zu einem Datentyp umgewandelt werden, die ein XML-Prozessor verstehen

Ohne MTOM, wird Ihr Bild konvertiert werden base64Binary und genau in der Mitte des SOAP-Umschlags. Dieser Umwandlungsprozess macht die Daten Fett.

  

Eine sehr looooooooooooooooooooooong base64Binary Zeichenfolge

Hier ist ein einfaches Beispiel:

eingeben Bild Beschreibung hier

Mit MTOM, wird das Bild übertragen werden außerhalb die Hülle als MIME-Anhang - kurz gesagt, es wird gesendet nach seinem ursprünglichen Datentyp: jpg, png, oder gif. Natürlich ist es immer noch als binäre Daten übertragen, aber diesmal gibt es keine XML-Konvertierung, den Rechenaufwand zu vermeiden. XOP kommt ins Bild, wie es ist derjenige, der die Position des externalisierte Bild gibt.

<soap:Envelope>
    <soap:Body>
        <tns:data>
            <xop:include href="SomeUniqueID-ThatLeadsToTheImage"/>
        </tns:data>
    </soap:Body>
</soap:Envelope>
  

Content-ID: "SomeUniqueID"
  Content-Type: image / jpeg

     

Bild Binärdaten hier

Es gibt einige Faktoren, die anderen Antworten nicht erwähnen. Man könnte denken, warum MTOM nicht als Standard verwendet wird, da es „schneller“ als SMS-Codierung (Base64). Es ist, weil MTOM nicht schneller immer. MTOM sollte nur auf große Nachrichtenübertragungen verwendet werden, da es mit einem Overhead kommt. Für kleine Größe der Nachrichten wird MTOM die Leistung schlechter sein als Textnachrichtencodierung (Base64).

Wenn MTOM für große Nachrichten verwendet wird, ist es schneller als Base64, da es Raw-Binary für die Datenübertragung verwendet. Um zu verstehen, dass, sollte man verstehen, wie Base64 funktioniert.

Base64 verwendet 6 Bit (log2 (64)) darstellen 1 Zeichen was bedeutet, dass Base64 verwendet 4 Zeichen 24 Bits darzustellen ( 3 Bytes ). Also, wenn die Nachrichtengröße ist n Bytes , base64 verwenden 4 * (n / 3) Bytes Ihre Daten darzustellen, was bedeutet, es wird langsamer um 1 / 3 als MTOM.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top