Efficient XML Interchange

Leer en castellano

En aquest post mostrarem una tecnologia per transmetre els fitxers XML d’una manera més ràpida, especialment dissenyat per les tecnologies d’avui en dia, com poden ser els smartphones. Un cop introduida, farem una prova treballant en el camp dels estàndards (concretament amb l’estàndard CDA R2) i veurem l’impacte que crea aquesta tecnologia sobre fitxers CDA XML.

EXI (Efficient XML Interchange) és un format de dades proposat per el Efficient XML Interchange Working Group, i ja es considera estandard W3C. L’objectiu d’aquest format és codificar documents XML en un format binari, per reduir l’espai dels missatges, i permetre una transmissió entre dispositius molt més àgil.

Format

Un document EXI està format per un EXI Header i un EXI Body.

EXI Header

Conté les propietats de codificació necessàries per poder codificar i descodificar l’EXI-stream. La mida mínima de capçalera és de 1 byte, per tant podem considerar que té un overhead molt baix.

EXI Body

El cos d’un document EXI esta composat per events EXI. Els ítems XML es codifiquen en un o més EXI events. Els events s’agrupen seguint una definició de gramàtica, per veure els elements que es repeteixen més o menys, per codificar la informació en funció d’això, i pode r comprimir molt més la cadena, semblant al mètode de compressió dels codis Huffman. La idea és comprimir al màxim l’espai que ocupen els “tags” de l’XML, que solen repetir-se molt.

Primer mostrem un exemple d’XML qualsevol:

<?xml version="1.0" encoding="UTF-8"?>
<notebook date="2007-09-12">
<note category="EXI" date="2007-07-23">
<subject>EXI</subject>
<body>Do not forget it!</body>
</note>
<note date="2007-09-12">
<subject>Shopping List</subject>
<body>milk, honey</body>
</note>
</notebook>

Aquest XML es representa en EXI events de la següent forma:

Un cop tenim els EXI events, s’ordenen per poder fer la compressió dels tags:


Rendiment

Per veure una prova del rendiment d’aquest mètode, farem un parell de proves amb fitxers XML, amb propietats diferents.

Compressió de fitxer d’espirometria propietari

Baix rendiment degut a les poques repeticions de tags, ja que cada tag és diferent, per transmetre cada dada que és única de l’espiròmetre.

Original:               27 KB

EXI:                        8 KB

Ratio:                    1/3

Compressió del document CDA d’espirometria

Alt rendiment degut a la gran quantitat de tags a repetir tant d’estructura de CDA (entries, components, code…) com d’estructura del text html per mostrar l’informe (td, tr, table…).

Original:               680 KB

EXI:                        35 KB

Ratio:                    1/20

Conclusió

Aquest nou mètode és molt important, primer de tot perquè ha sigut aprovat com un estàndard per la W3C, i per tant no és cap format propietari.

El punt fort del mètode és que està concretament orientat a codificar XML, res més, a diferència d’altres sistemes de compressió genèrics.

La compressió es pot veure aplicada en documents CDA i això pot ser molt interessant per integrar documents en format EXI, per ocupar menys espai, i per transmetre en un temps més ràpid.

A més cal dir que aquest estàndard s’ha desenvolupat pensant en dispositius mòbils, per facilitar una transmissió més ràpida i amb menys pes, per tant tenir aquest format crearia un impacte important en aquests dispositius, i en el desenvolupament de noves aplicacions per aquests.

Fragment extret del document “EXI (Efficient XML Interchange) – M. Lizana”

Llegir en català

En esta entrada mostraremos una tecnología para transmitir los ficheros XML de una manera más rápida, especialmente diseñada para las tecnologías de hoy en día, como los smartphones. Una vez introducida, haremos una prueba trabajando en estándares (en concreto con el estándar CDA R2) i veremos el impacto que crea esta tecnología sobre ficheros CDA XML.

EXI (Efficient XML Interchange) es un formato de datos propuesto por el Efficient XML Interchange Working Group, y se considera estándar W3C. El objetivo de éste formato es codificar documentos XML en un formato binario, para reducir el espacio de los mensajes y permitir una transmisión entre dispositivos mucho más ágil.

Formato

Un documento EXI está formado por un EXI Header y un EXI Body.

EXI Header

Contiene las propiedades de codificación necesarias para poder codificar y descodificar el EXI-stream. El tamaño mínimo de cabecera es de 1 byte, por tanto podemos considerar que tiene un overhead muy bajo.

EXI Body

El cuerpo de un documento EXI esta compuesto por eventos EXI. Los ítems XML se codifican en uno o más EXI events. Los eventos se agrupan siguiendo una definición de gramática, para ver los elementos que se repiten más o menos, para codificar la información en función de estos elementos, y poder comprimir mucho más la cadena, parecido al método de compresión de los códigos Huffman. La idea es comprimir al máximo el espacio que ocupan los “tags” del XML, que suelen repetirse mucho.

Primero mostramos un ejemplo de XML cualquiera:

<?xml version="1.0" encoding="UTF-8"?>
<notebook date="2007-09-12">
<note category="EXI" date="2007-07-23">
<subject>EXI</subject>
<body>Do not forget it!</body>
</note>
<note date="2007-09-12">
<subject>Shopping List</subject>
<body>milk, honey</body>
</note>
</notebook>

Éste XML se representa en EXI events de la siguiente forma:

Una vez tenemos los EXI events, se ordenan para poder hacer la compresión de los tags:

Rendimiento

Para ver una prueba del rendimiento de éste método, haremos un par de pruebas con ficheros XML, con propiedades diferentes.

Compresión del fichero de espirometría propietario

Bajo rendimiento debido a las pocas repeticiones de los tags, ya que cada tag es diferente, para transmitir cada dato que es único del espirómetro.

Original:               27 KB

EXI:                        8 KB

Ratio:                    1/3

Compressión del documento CDA de espirometría

Alto rendimento debido a la gran cantidad de tags a repetir tanto de estructura de CDA (entries, components, code…) como de estructura del texto html para mostrar el informe (td, tr, table…).

Original:               680 KB

EXI:                        35 KB

Ratio:                    1/20

Conclusión

Éste nuevo método es muy importante, primero de todo porque ha sido aprobado como un estándar por la W3C, y por lo tanto no es formato propietario.

El punto fuerte del método es que esta concretamente orientado a codificar XML, nada más, a diferencia de otros sistemas de compresión genéricos.

La compresión se puede ver aplicada en documentos CDA i esto puede ser muy interesante para integrar documentos en formato EXI, ocupando menos espacio y transmitiendo en un tiempo más rápido.

Además éste estándar se ha desarrollado pensando en dispositivos móviles, para facilitar la transmisión más rápida y con menos peso. Con éste formato se crearía un impacto importante en estos dispositivos, y en el desarrollo de nuevas aplicaciones para estos.

Fragmento extraído del documento “EXI (Efficient XML Interchange) – M. Lizana”

Matias Lizana

Publicat per Matias Lizana

Enginyer Superior en Informàtica, treballo al CCI a la línia d’entorns d’interoperabilitat. Certificat en CDA R2, especialitzat en treballar amb plataformes d’integració i interessat per les noves tecnologies, que promouen l’eficiència en els sistemes d’informació

Deixa un comentari

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *