El empaquetado optimizado binario XML (XOP) es un mecanismo definido para la serialización de conjuntos de información XML ( infosets ) que contienen datos binarios , así como para la deserialización de vuelta al conjunto de información XML.
Beneficios
XOP permite serializar los datos binarios de un conjunto de información XML sin pasar por el serializador XML. La serialización XML de un conjunto de información XML se basa en texto, por lo que cualquier dato binario deberá codificarse en base64 . El uso de XOP evita esto extrayendo los datos binarios del conjunto de información XML, de modo que este no contenga datos binarios y estos puedan serializarse de forma diferente.
Por lo tanto, XOP puede reducir el tamaño de la serialización (ya que la codificación base64 supone una sobrecarga de tamaño de aproximadamente el 33 %) y (dependiendo de su implementación) podría permitir una mayor eficiencia en el procesamiento. Este aumento de tamaño conlleva la necesidad de recursos adicionales para transmitir o almacenar los datos.
Costos
XOP introduce un nivel adicional de procesamiento. Por lo tanto, introduce complejidad y sobrecarga de procesamiento adicionales.
La representación de los paquetes XOP introduce cierta sobrecarga. Esta es insignificante cuando los datos binarios son grandes, pero podría ser significativa si los datos binarios son pequeños.
Operación
XOP funciona con un único conjunto de información XML.
Se extraen las partes binarias del conjunto de información XML original, lo que da como resultado un "Conjunto de Información XOP" (que es esencialmente el Conjunto de Información XML original con las partes binarias reemplazadas por referencias externas). Las referencias en el Conjunto de Información XOP se representan mediante el elemento "xop:Include". El Conjunto de Información XOP, junto con el contenido extraído, se puede serializar en una representación denominada "Paquete XOP". El Paquete XOP se puede enviar o almacenar.
Para reconstruir el conjunto de información XML, el paquete XOP se deserializa en el conjunto de información XOP más el contenido extraído, y luego el contenido extraído se vuelve a insertar en el conjunto de información XML.
Paquetes XOP
XOP se puede utilizar con varios mecanismos de empaquetado diferentes. Un mecanismo de empaquetado define cómo se representan el conjunto de información XOP y los bloques binarios.
La especificación XOP define cómo se puede usar MIME como mecanismo de empaquetado. Al usarse con MIME, el conjunto de información XOP se representa como XML en la parte raíz de MIME, y los fragmentos binarios se representan en las demás partes de MIME. Estas últimas partes de MIME se pueden serializar como datos binarios, evitando así la necesidad de codificarlas en base64 si se dejaran dentro del conjunto de información XML.
XOP no exige el uso del mecanismo de empaquetado MIME, por lo que se pueden utilizar otros mecanismos de empaquetado.
Uso en servicios web SOAP
El mecanismo de empaquetado MIME es el más utilizado, ya que XOP se suele utilizar para representar mensajes SOAP con MTOM .
Por ejemplo:
...Versión MIME: 1.0 Tipo de contenido: Multipart/Related ; boundary = MIME_boundary ; ... --MIME_boundary Tipo de contenido: application / xop +xml ;...<soap:Envelope> ... <soap:Body> ... <m:photo xmlmime:contentType= "image/png" > <xop:Include xmlns:xop= "http://www.w3.org/2004/08/xop/include" href= "cid:http://example.org/me.png" /></m:photo>// octetos binarios para png--MIME_boundary Content-Type: image / png Content-Transfer-Encoding: binary Content-ID: <http:// example.org / me.png >
Véase también
- MTOM (Mecanismo de Optimización de la Transmisión de Mensajes)
Referencias
- Butov, Andrey (24 de octubre de 2005). "Empaquetado optimizado para XML-Binario" . Portal del Dr. Dobb . Archivado del original el 18 de julio de 2006.
- Gudgin, M.; Mendelsohn, N.; Nottingham, M.; Ruellan, H. (25 de enero de 2005). "Empaquetado optimizado binario XML" (Recomendación del W3C) . W3C .
- Mahan, Michael (8 de junio de 2004). "Mecanismo de inclusión XOP: preguntas frecuentes" (Nota del grupo de trabajo del W3C) .
- Estándares basados en XML