Comment MTOM travail?
MTOM est le W3C de Transmission d'un Message Mécanisme d'Optimisation, une méthode efficace de l'envoi de données binaires et de services web.
Comment ça fonctionne en général?
Vous devez vous connecter pour publier un commentaire.
Si vous mettez Wireshark (ou activé System.Net La Journalisation) sur la non-MTOM service activé, vous devriez voir les requêtes SOAP avec les données binaires codées en BASE64. De l'envoyer en BASE64 augmente la taille des données binaires, mais (je suppose) le rend plus interopérables.
Avec MTOM, les messages SOAP sont envoyés en tant que MIME des messages avec l'encodage BASE64 être remplacé par un espace réservé. Les données binaires sont ensuite placés entre les délimiteurs (ce qui arrive pour chaque morceau de données binaires), puis placé à la fin de la requête SOAP. Les données binaires sont ensuite envoyés clair. IIRC, MTOM détermine également si envoyer un message MIME d'augmenter la taille de l'appel SOAP et si ne fournissent pas une sauvegarde, il va l'envoyer comme un message SOAP.
Cette fournit un exemple de ce que le message envoyé par câble ressemble.
Tout commence avec le fait que le SAVON est XML. Et quand vous envoyer quoi que ce soit d'autre que du texte, par exemple, une image doit être convertie en un type de données qu'un processeur XML peut comprendre.
Sans MTOM, votre image sera convertie à base64Binary et placé en plein milieu de votre enveloppe SOAP. Ce processus de conversion qui rend les données de la graisse.
Voici une illustration simple:
Avec MTOM, l'image sera transmise à l'extérieur l'enveloppe comme un jointes MIME - en bref, il est envoyé en fonction de son origine type de données: format jpg, png ou gif. Bien sûr, il est toujours transmis sous forme de données binaires, mais cette fois, il n'y a pas de XML liés à la conversion, en évitant le calcul des frais généraux. XOP entre dans l'image, comme il est le seul qui donne l'emplacement de la extériorisés de l'image.
Il ya quelques facteurs que d'autres réponses ne la mentionnent pas. On pourrait penser pourquoi MTOM n'est pas utilisé en tant que par défaut puisque c'est "plus vite" que le Texte de codage de message (Base64). C'est parce que MTOM est pas plus rapide, toujours. MTOM doit être utilisé uniquement sur les gros transferts de messages, car il est livré avec un rétroprojecteur. Pour la petite taille des messages, MTOM sera pire que le Texte de codage de message (Base64).
Si MTOM est utilisé pour les messages, c'est plus rapide que Base64, car il utilise le binaire brut pour le transfert de données. Pour comprendre cela, il faut comprendre comment Base64 œuvres.
Base64 utilise 6 bits (log2(64)) pour représenter 1 caractère ce qui signifie que base64 utilise 4 caractères pour représenter 24 bits (3 octets). Donc, si la taille du message est n octets, base64 utilisera 4*(n/3) octets pour représenter vos données, ce qui signifie qu'il sera plus lent par 1/3 que MTOM.