Programmation avec eXist-DB

  • Le projet eXist-DB

  • Initié par Wolfgang Meier toujours à la tête du projet

    Un noyau stable d'un dizaine (?) de développeurs

  • Depuis 2001

    Passé récemment sur GitHub (anciennement sur source forge avec SVN)

  • Milliers de lignes de code Java (650000 ?)

    Multiplateformes

  • Utilisation de nombreuses librairies open sources

  • L'indispensable mailing list

3 modes d'exécution

  • Comme librairie embarquée dans une application Java

  • Comme application standalone qui embarque son propre serveur Web

    embarque une version allégée de Jetty

  • Comme un ensemble de composants Web dans un conteneur Web

    architecture Servlet

    mode par défaut

Composants Web

  • Servlet XQueryURLRewrite (nous l'appellerons le filtre contrôleur)

    Chef d'orchestre pour interpréter les URLs et les transmettre aux autres servlets

  • Servlet EXist

    Implémente le protocole REST (GET / POST / PUT / DELETE) sur le contenu de la BD

    Si une URL désigne un script XQuery alors exécute le script

  • Servlet XQuery

    Exécute un script XQuery (stocké soit dans le système de fichier, soit dans la BD)

  • Servlet RPC

    Expose une API XMLDB avec le procotole XML-RPC

    Utilisé par le client d'administration Java

  • Servlet WebDAV

    Expose les collections et les documents avec le protocole WebDAV

  • Servlet RestXQ

    Expose les fonctions XQuery sous forme de ressources

  • Etc.

    Plus de détails dans la formation eXist-DB avancé

À suivre....

  • Ce module se poursuit avec les transparents suivants :

  • Traitement des requêtes

  • Préfixes enregistrés par défaut

  • Illustration avec bonjour.xql

  • Synopsis

  • Tour du propriétaire

  • Exercice 3