XQUERY : Intégration de eXist à CodeSquale

1 view
Skip to first unread message

Damien Willier

unread,
May 4, 2007, 8:30:09 AM5/4/07
to CodeSquale Devel, freder...@ajilon.fr
Bonjour à tous,

Comme vous le savez, nous utilisons la technologie XQuery pour
procéder au calcul des compteurs et des métriques.

Pourquoi XQuery ?
Nous avions besoin d'une technologie centrée sur les besoins
fonctionnels de l'application et nous permettant de nous détacher
l'implémentation technique de celle ci.
XQuery s'intégre parfaitement dans cette logique : l'équipe CodeSquad
peut se concentrer sur l'écriture du code procédant à l'extraction des
compteurs et des métriques sans se préoccuper du système qui exécute
ces requêtes.

Dans un email précédent, nous avions fait le choix de l'implémentation
XQuery du projet SAXON B. http://www.saxonica.com/products.html
Bien que fonctionnel, cette implémentation nous a laissé septique sur
les points suivants :
- la difficulté d'utilisation du moteur SAXON B avec java (peu
d'information de debug, fonctions deprecated, documentation légère,
etc...)
- la politique Open source du projet Saxon laisse à désirer : en
effet, SAXON B est une version légère de la version commerciale de
SAXON A et ne propose que des fonctionnalités basiques. Nous craignons
d'être bloqué au fur et à mesure du développement de CodeSquale.

Nous avons mis en attente le développement sur la partie XQuery de
CodeSquale pour tester le projet open source eXist.

eXist est une base de donnée native en XML.
Plus d'infos sur : http://exist-db.org/

Après une "dure" journée de test des fonctionnalités d'eXist et du
déploiement de la base, nous avons été convaincu et décidons de baser
l'implémentation de la technologie XQuery dans CodeSquale sur ce
projet.

En voici les raisons :

- eXist est avant tout une base de données XML ce qui va s'avérer
très pratique dans le développement et l'évolutivité de CodeSquale.
--> Les mécanismes de base de données proposés comme l'indexation, la
création de collection vont pouvoir assurer une certaine robustesse de
CodeSquale notamment lors de montée en charge.

- eXist est publié sous licence LGPL
--> Nous pouvons sans aucun problème intégrer eXist à CodeSquale sans
rencontrer de problème de licence.

- eXist peut fonctionner en mode stand alone mais peut être aussi
embarqué dans une application (application embedded)
--> CodeSquale va embarquer son propre moteur de base de données eXist
et le déployer facilement.

- eXist possède son propre moteur XQuery
--> Le "Query engine" de eXist tire profits des mécanismes de base de
données et semble plus abouti et fonctionnel que celui de SAXONB.

- enfin l'utilisation de eXist dans java se fait grâce à l'api
standard xmldb et peut être automatisé avec ANT.

Pour toutes ces raisons, nous allons intégrer eXist à CodeSquale.
Cependant, l'objectif est de créer l'abstraction nécéssaire afin de
pouvoir utiliser indifféremment le moteur de SAXONB ou celui d'eXist.
Cela nous permettrait d'être totalement indépendant de
l'implémentation technique de XQuery et la rendre interchangeable.

Un message sera consacré sur le comment de l'intégration de eXist à
CodeSquale.

Cordialement.

Damien Willier.

Pour la CodeSquad.

Reply all
Reply to author
Forward
0 new messages