Developpez.com

Le Club des Développeurs et IT Pro

Le W3C publie le standard EXI

Une nouvelle norme qui étend la portée du XML aux applications et terminaux mobiles

Le 2011-03-11 11:32:12, par Hinault Romaric, Responsable .NET
Le W3C (World Wide Consortium) vient de publier une nouvelle norme compacte du XML (eXtensible Markup Language) qui sera utilisée sur les terminaux mobiles et autres appareils ayant des contraintes de mémoire et/ou de bande passante.

Le nouveau standard EXI (Efficient XML Interchange) a pour but d'optimiser nettement la performance, l'efficacité réseau et la consommation d'énergie des applications utilisant XML.

Le standard XML est largement utilisé en tant que format d'échange de données entre différents systèmes, services Web et appareils. Mais il n'est pas adopté sur certaines plates-formes notamment à cause des contraintes liées à la taille des documents et à la consommation en énergie ou à la bande passante utilisée qu'elle engendre.

Le EXI veut résoudre ces problèmes. Le standard est déjà adopté dans plusieurs appareils intelligents, notamment les véhicules : « Nous proposons des produits EXI depuis plusieurs années et nous sommes étonnée des réalisations » explique John Shneider, rédacteur de la spécification EXI « [Les utilisateurs de EXI] ont multiplié leurs performances par 100 et étendu leurs réseaux de données aux applications à grande vitesse pour les avions, les automobiles, les terminaux mobiles et les réseaux de capteurs ».

Le standard EXI peut-être utilisé à partir du JavaScript dans les navigateurs Web pour offrir à l'utilisateur une plus grande rapidité. Un support est également prévu pour les plates-formes logicielles telles que Java et .NET.

Le détail des spécifications liées au standard EXI sont consultables sur cette page

Et vous ?

Que pensez-vous de cette nouvelle norme?
  Discussion forum
13 commentaires
  • thelvin
    Modérateur
    Envoyé par Paul TOTH
    j'avoue ne pas avoir bien compris en quoi c'est un mieux...je n'aime pas vraiment XML et je ne comprend pas ce qu'apporte EXI..
    Avantages :
    - Compressé (qu'on le veuille ou non)
    - Plus simple à interpréter pour la machine
    - Peut représenter les mêmes ensembles de données presque en 1:1

    Inconvénients :
    - Pas de lisibilité humaine sans une transformation préalable en XML, qui sont pour l'instant assez peu intégrées.
    - Pas d'édition directe au notepad++. (Et bon courage avec un éditeur hexa.) Ni d'ailleurs avec un éditeur XML, pour l'instant.
  • ezmac
    Nouveau membre du Club
    va pour l'universel, mais trop de dialectes .... on se trouve devant le même problème qu'avec les distros. trop de versions nuisent avoir quelque chose rock solid !!!.

    je me trouve pour l'interchange de documents entre entreprises (Espagne) avec 10 modèles différents... sans compter les 26 autres modèles présents dans UE.

    mes fichiers en xml explosent en taille, des fois jusqu'à 20 fois celle d'un bon vieux fichier tab+return.

    comme quelqu'un l'a mentioné, à quoi bon que les étiquettes soient lisiblies para une personne, le but est d'automatiser la saisie et l'interchange d'information.
  • alain.couthures
    Membre éprouvé
    La recommandation EXI n'est pas particulièrement facile à lire...

    Les chaines de caractères y sont préfixées de leur longueur. Cette longueur devrait pouvoir elle-même être de longueur variable même si la recommandation dit qu'il faut au moins supporter jusqu'à 2147483648 caractères. Les chaines de caractères sont de plus compressées.

    Je n'y ai pas encore vu de checksum pour s'assurer de l'intégrité des données.

    Les fichiers EXI sont assurément standalone lorsque la grammaire intégrée est utilisée. Si une autre grammaire est définie pour réduire encore la taille, je ne suis pas sûr qu'elle soit véhiculée dans le fichier EXI. Un autre élément de compression est de faire référence à un schéma de manière à ce que les valeurs ne soient pas que des chaines de caractères.

    Je continue mon évaluation, j'en saurai plus prochainement !

    -Alain
  • vintz72
    Membre averti
    J'ai jamais compris pourquoi un tel format n'existait pas plus tôt. J'avais imaginé un XML "compressé" il y a 10 ans, mais je m'étais dit qu'une norme officielle ne tarderait pas à sortir... comme quoi, je ne suis pas toujours très visionnaire ! ;-)
  • abriotde
    Membre chevronné
    C'est une bonne nouvelle. XML est très lourd à tout les niveaux (sensible aux erreurs, gourmand en puissance de calcul pour la lecture, gourmand en espace mémoire) et cependant utilisé à toutes les sauces. Json prends de la place mais sinon on se retrouve avec du csv très peu souple. Il ne va pas résoudre tout les problème mais s'il peut déjà les améliorer cela ouvrera une porte (et un standard parce que dans les "pseudo standard" XML binaire, c'est la jungle autrement).

    Dans le domaine du binaire à mon humble avis ce qui se fait de mieux c'est tout de même le "Protocol Buffer" de Google (libre). Mais bon on va pas en demander de trop.
  • alain.couthures
    Membre éprouvé
    Je suis en train d'évaluer l'intégration d'EXI comme format d'échange pour XForms.

    Pour l'ajouter à mon implémentation (XSLTForms), il me faut écrire un décodeur (exi2xml) et un encodeur (xml2exi) en Javascript !

    -Alain
  • Traroth2
    Membre émérite
    Prometteur, et pour bien plus que les appareils mobiles !

    Pour ceux que ça intéresse, il y a déjà des bibliothèques disponibles pour C et Java :

    http://exificient.sourceforge.net/ (Java)

    http://exip.sourceforge.net/ (C)
  • onjanirina
    Membre habitué
    Bonjour,

    Je suis également, et globalement, ravi d'apprendre cette avancée. Mais je me pose quelques questions, dont je suis sûr certains d'entre vous pourront me répondre :

    - Les données XML compressées présentent-elles des contraintes (en terme de volume de données réelles par exemple, hors éléments de syntaxe) ou des risques (impossibilité ou difficultés dans la reconstitution ou le parsing) pour ne pas être applicables à l'ensemble des échanges XML ?

    - Les EXI Processors, c-à-d les applications chargés des encodage/décodage EXI/XML exigent-ils des pré-requis, par exemple, la disponibilité en local d'un catalogue d'espace de noms, etc. ou les fichiers EXI sont entièrement Standalone ?

    Merci pour vos réponses,
  • onjanirina
    Membre habitué
    Envoyé par alain.couthures

    Je continue mon évaluation, j'en saurai plus prochainement !
    Merci pour ces premiers éléments ! Bon courage pour le reste !
  • atha2
    Membre éprouvé
    Envoyé par Hinault Romaric

    Le standard EXI peut-être utilisé à partir du JavaScript dans les navigateurs Web pour offrir à l'utilisateur une plus grande rapidité.
    C'est à dire ? Il existe une api javascript pour parser du EXI ? Ou est-elle disponible ?
    J'avoue avoir cherché sur google et les seules pages qui mentionnent EXI, reprennent juste l'annonce du W3C. Rien d'autre...