Localisation d’obstacles
+ Etudes

La base de donnée XML native

Mis en ligne le 5/06/2006

Le choix XML

C’est au début des années 90 qu’est apparu le langage XML. Au départ il était principalement destiné à l’échange de fichiers sur le web. Mais aujourd’hui, son utilisation va bien au delà.

La principale raison de notre orientation vers le XML est l’exportation de données simplifiée vers d’autres applications, comme un logiciel de cartographie, par exemple.

Après avoir utilisé les langages de requêtes comme XQuery ou Xpath, ne permettant uniquement que de lire un document, nous nous sommes orientés vers le parseur Xerces.

Nous avons finalement opté pour une solution plus adaptée aux contraintes de notre système : embarqué.

La base de données XML native

Nous avons choisi la base de données XML native : BerkleyDB XML. Sa particularité est d’avoir été conçu pour des applications embarquées. De plus Berkley est déjà une référence dans le domaine des bases de données puisque Berkeley DB est intensivement utilisé par Google pour la gestion des « Google accounts », les sésames d’accès à ses services, du courrier électronique jusqu’à la messagerie instantanée et l’hébergement de fichiers.

Voici le principe de fonctionnement de BerkleyDB XML :

(JPG)

Il est donc possible soit de modifier un document soit de l’interroger. Il est même possible de créer un document de toute pièce avec la méthode : XMLDocument ::createDocument() ; Toutefois, une fois qu’un container a été crée et ouvert toutes les modifications qui peuvent être apportées par le programme ne sont apportées qu’au fichier dbxml et non au document XML. Il faut donc créer une fonction qui génère un fichier XML à partir du fichier dbxml.

C’est ce que nous avons réalisé notamment à travers cet algorithme :

(JPG)

La partie enregistrement de fichier XML est une tâche qui s’exécute lorsque l’utilisateur quitte l’application. Dans l’absolu, si l’on considère que notre application ne s’arrête jamais et que l’on se contente du fichier dbxml, il n’est pas nécessaire de faire une sauvegarde de la base sous forme d’un fichier XML. Cependant par mesure de sécurité, nous avons préféré conserver une sauvegarde de la base, lors de la fermeture de l’application.

La base de donnée est donc crée à l’ouverture de l’application, à partir de la dernière sauvegarde du fichier XML. Nous travaillons ensuite directement sur la base de donnée, c’est à dire sur le fichier dbxml.

A chaque nouvelle obstacle détecté, une balise et ses sous balises associées vient donc s’ajouter selon le modèle suivant :

(JPG)
Copyright : droit d'auteur Marcus. Site conçu avec Spip.