...
- cas d'utilisation : moisson d'un entrepôt OAI (mise à jour)
- rôle : supprimer l'entrée dans l'index correspondant à une fiche "deleted"
- utilisateurs : ORI-OAI-harvester
- paramètres : ** recordID : identifiant de l'enregistrement contenant les métadonnées indexées.
Choix techniques
Langages et environnement
Le module devra s'exécuter dans un environnement multiplate-forme J2EE, dans un machine virtuelle compatible Java 1.5. Outre l'aspect multi-plate-forme de cet environnement, l'importante collection d'API et de frameworks disponibles en Open Source renforce la détermination de ce choix.
Persistence des données
Le stockage des moissons se fera dans une base XML dont le choix s'est arrêté sur eXist, qui offre différentes modalités d'utilisation (XML-RPC, SOAP, WEBDAV...), et utilise des standards XML comme XPath, XQuery, XInclude.
Framework, API
OAIHarvester2
Cette application est basée sur le projet OAIHarvester2 d'OCLC Online Computer Library Center, qui fournit les fonctions de requêtes OAI-PMH.
Notes :
- limites et adaptation de l'API OAICat :
- org.oclc.oai.server.verb.ListRecords : Les champs from et until sont validés pour une longueur entre 0 et 10, ce qui force à utiliser une granularité YYYY-MM-DD.
Spring
Le framework Spring sera utilisé partout où il est pertinent de l'utiliser, et plus généralement, l'utilisations de POJOS sera le choix par défaut pour définir les couches d'accès aux données, ainsi que les autres éléments de configuration.
Spring XML Database Framework
Ce framework établira la liaison entre les classes métiers du moissonneur, et la couche persistence dans la base de donnée XML
Quartz scheduler
La gestion des tâches programmées est réalisée grâce au projet open source Quartz d'OpenSymphony.
XFire
Pour l'interaction entre les modules, des Web Services sont mis en oeuvre à l'aide du framework Codehaus XFire.
Modèle de donnée
Un modèle de donnée s'appuyant sur une base relationnelle repose sur un modèle entité-relation, qui se concrétise par des tables avec des clés primaires et secondaires, ou encore des tables d'association. Pour une base XML, les entités sont concrétisées par des structures XML(documents ou noeuds), et les relations entre ces entités seront définies à travers des attributs servant de clés. Dans ce contexte, les requêtes XQuery remplacent les requêtes SQL.
...