Por qué DIME es mejor que MIME y XML sin procesar

El formato de Direct Internet Message Encapsulation (DIME) proporciona un mecanismo estándar y sencillo para combinar múltiples registros de datos de texto o binarios en un único flujo binario. Los registros se almacenan de forma independiente del formato de codificación, lo que facilita el análisis eficiente y su implementación. Puedes encontrar la especificación completa de DIME aquí.

Índice de Contenido
  1. DIME es superior a MIME y XML en muchos aspectos
    1. MIME: El principal competidor
    2. XML en bruto
  2. Beneficios del uso de DIME
  3. Por qué DIME puede ser una buena opción para muchas aplicaciones

DIME es superior a MIME y XML en muchos aspectos

Mientras que otros sistemas permiten la creación de mensajes que incorporan varias partes de texto y binarias, cada uno está optimizado para un espacio de problemas específico, lo que los hace menos ideales para la comunicación no relacionada con el correo electrónico o la comunicación interna de aplicaciones.

MIME: El principal competidor

La alternativa más obvia es el estándar Multipurpose Internet Mail Extensions (MIME), definido en los RFCs 2045 al 2049. MIME es el estándar de correo electrónico para adjuntos de archivos, que son simplemente mensajes con partes de texto y binarias. Sin embargo, su origen en el correo electrónico hace que sea menos adecuado en casos generales. El correo electrónico fue diseñado para pasar por sistemas que solo manejan texto, por lo que MIME convierte tanto las partes de texto como las binarias en una única parte de todo texto delimitada internamente. Esta conversión a texto introduce problemas de codificación y conjunto de caracteres entre plataformas, además de aumentar el tamaño de los componentes binarios en una fracción significativa.

XML en bruto

Otra opción es el uso de XML en bruto, que permite representar información binaria entre texto mediante bloques de tipo CDATA. Sin embargo, los bloques CDATA no son analizados por los analizadores de XML y, por lo tanto, no cumplen con los requisitos de "buen formato" de un documento XML. Convertir datos binarios en codificaciones base64 o similares y incluirlos en secciones CDATA permite enviar XML defectuosamente formado.

Beneficios del uso de DIME

A diferencia de MIME y las secciones CDATA en documentos XML, DIME convierte tanto las partes de texto como las binarias en un único mensaje binario. Al almacenar la parte binaria en su forma binaria original, el analizador de DIME se ahorra la sobrecarga y complejidad de revertir la codificación de texto a binario, como se requiere en MIME y CDATA/XML. De hecho, la naturaleza sencilla de longitud delimitada de las partes de DIME, llamadas registros, permite al analizador de DIME dividir los registros sin necesidad de analizar el contenido, más allá de una cabecera binaria inicial.

Listado A: muestra un código simple para crear un mensaje DIME utilizando una implementación de Java DIME gratuita. Las primeras líneas crean un nuevo objeto DimeGenerator que se construye con un FileOutputStream como fuente de salida. Los bloques de código siguientes añaden cada uno un registro DIME creado a partir de un archivo de texto en disco. Observa el uso de los tipos MIME "text/plain" e "image/gif" y la MEDIA_TYPE TypeNameFormat para indicar los formatos de los contenidos de los registros DIME. El tipo MIME es una forma útil de proporcionar información sobre los datos contenidos en un registro DIME, tal como se describe en la especificación de DIME.

Cómo desplegar código Java en un servidor utilizando archivos WAR

El último bloque de código en el Listado A finaliza el mensaje DIME y cierra el archivo al que fue escrito. La clase DimeGenerator utiliza flujo en todas las operaciones de entrada/salida, lo que elimina la necesidad de utilizar grandes cantidades de memoria para almacenar los registros DIME durante la construcción del mensaje. Además, observa el parámetro booleano final de las llamadas a los métodos addRecord en el ejemplo. Un valor true indica que el registro que se está añadiendo es el último registro. Añadir registros adicionales provocará una IllegalStateException.

Listado B: muestra un código que puede utilizarse para analizar el archivo .dime creado por el Listado A. El Listado A muestra la clase DimeParser, que proporciona una interfaz similar a java.util.Iterator que se utiliza para extraer objetos DimeRecord. Además de proporcionar métodos que exponen los metadatos del tipo MIME almacenados en el registro DIME, el método getPayload proporciona un InputStream que produce los datos almacenados en los registros DIME. Al igual que ocurre con DimeGenerator, los datos del contenido nunca se almacenan en memoria, en su lugar, se utilizan flujos en todas partes, lo que permite el uso de grandes contenidos con un consumo de memoria reducido.

Por qué DIME puede ser una buena opción para muchas aplicaciones

DIME es una excelente opción para aplicaciones que necesitan enviar datos binarios y de texto a través del mismo flujo. Esto suele ser necesario cuando los mensajes XML hacen referencia a archivos adjuntos. Microsoft ha creado una especificación para utilizar DIME y mensajes SOAP para reemplazar los estándares SOAP con adjuntos. Al usar SOAP y DIME, puedes proporcionar información textual sobre la invocación de métodos y sus resultados utilizando XML SOAP estándar, mientras que utilizas un registro binario DIME para cualquier información no textual contenida en los parámetros de llamada o en los resultados de retorno. Como tanto los estándares SOAP como DIME están disponibles como bibliotecas de Java, puedes interactuar con servicios web SOAP+DIME de Windows en su propio lenguaje y desde cualquier plataforma.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Por qué DIME es mejor que MIME y XML sin procesar , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.