Wie funktioniert MTOM?
MTOM ist der W3C-Message Transmission Optimization Mechanism, eine Methode, die effiziente übertragung von binären Daten auf und von web-services.
Wie funktioniert es im Allgemeinen?
InformationsquelleAutor der Frage Brian R. Bondy | 2008-10-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Wireshark (oder aktiviert System.Net Protokollierung) auf die nicht-MTOM-enabled service, Sie sollten die SOAP-Anfragen mit dem binäre Daten BASE64-codiert. Versand als BASE64-erhöht die Größe der binären Daten, sondern (nehme ich an) macht es mehr kompatibel.
Mit MTOM, SOAP-Nachrichten gesendet werden, die als MIME-Nachrichten mit BASE64-Codierung wird durch einen Platzhalter ersetzt. Die binären Daten werden dann zwischen Trennzeichen (das passiert für jedes Stück von binären Daten), und dann am Ende der SOAP-Anforderung. Die binären Daten werden dann unverschlüsselt gesendet. Wenn ich mich Recht erinnere, MTOM bestimmt auch, ob Versand als MIME-Nachricht erhöht die Größe der SOAP-Aufruf, und wenn nicht, eine Rettung, es wird senden Sie es als eine normale SOAP-Nachricht.
Diese bietet ein Beispiel dafür, was die Nachricht über den Draht geschickt aussieht.
InformationsquelleAutor der Antwort Richard Nienaber
Alles beginnt mit der Tatsache, dass SOAP XML. Und wenn Sie Sie senden, etwas anderes als text, zum Beispiel ein Bild - es muß sich um Umwandlung in einen Datentyp, der ein XML-Prozessor verstehen kann.
Ohne MTOM, Ihr Bild wird konvertiert base64Binary und platziert genau in der Mitte des SOAP-envelope. Diese Konvertierung stellt die Daten Fett.
Hier ist ein einfaches Beispiel:
Mit MTOM, wird das Bild übertragen werden außerhalb den Umschlag wie eine MIME-attachment - kurz, es ist geschickt, je nach Ihrer ursprünglichen Datentyp: jpg, png, oder gif. Natürlich ist es immer noch übertragen werden als binäre Daten, aber dieses mal, es gibt keine XML-Konvertierung, die Vermeidung der rechnerische Aufwand. XOP kommt ins Bild, wie es die eine, die die Lage der externalisiert Bild.
InformationsquelleAutor der Antwort Jops
Gibt es ein paar Faktoren, die anderen Antworten gar nicht erwähnen. Man könnte denken, warum MTOM ist nicht als Standard verwendet, da es "schneller" als Text-message-Codierung (Base64). Es ist, weil MTOM ist nicht immer schneller. MTOM sollte nur verwendet werden, auf große Nachricht überträgt, weil es kommt mit einem overhead. Für die geringe Größe der Nachrichten, MTOM, wird die Leistung schlechter sein als SMS-Kodierung (Base64).
Wenn MTOM verwendet wird, für große Nachrichten, es ist schneller als Base64-da verwendet er rohe binäre Daten übertragen werden. Um das zu verstehen, sollte man verstehen, wie Base64 funktioniert.
Base64 verwendet 6 bits (log2(64)) zu vertreten 1 Zeichen was bedeutet, dass base64 verwendet 4 Zeichen zu vertreten, 24 bit (3 bytes). Also, wenn die Größe der Nachricht ist n bytesbase64 verwenden 4*(n/3) bytes zur Darstellung Ihrer Daten, das heißt, es wird langsamer 1/3 als MTOM.
InformationsquelleAutor der Antwort sotn