Page History

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Ce document présente le rôle du module moissoneur moissonneur au sein du système ORI, ses interactions avec les autres modules, et un ensemble de documents de modélisation comportant les cas d'utilisations, une description des solutions techniques envisagés, un modèle de donnée, les diagrammes de classes et de séquences principaux.

...

A partir d'un entrepôt OAI, qui peut exposer plusieurs formats et comporter plusieurs ensembles OAI, la granularité d'une moisson telle que définie par ce module doit s'entendre comme une séléction sélection de fiches, basée sur un ensemble de paramètres : format, ensembles, dates.

Le module permet donc de gérer un *ensemble de
moissons*, en offrant la possibilité d'en programmer l'exécution de manière répétée, et d'adopter une stratégie de mise à jour entre chaque occurence occurrence d'une même moisson, visant à maintenir l'intégrité de l'ensemble de fiches issues de la moisson (fiches détruites, modifiées).

...


Dans un premier temps, le moissonneur accède aux entrepôts selon les caractéristiques définies pour la moisson, et récupère un ensemble d'enregistrements, qui sont stockées dans une base de données. Le stockage inclut une relation constante entre les fiches et les caractéristiques de la moisson, à fins de gestion des mises à jour et d'exposition sélectives des fiches moissonnées.unmigrated-wiki-markup

Le module *modifie* , soit au niveau stockage, soit au niveau accès, le nom (setSpec) des *ensembles natifs* associés aux enregistrements OAI, en leur ajoutant un préfixe "ori-import:\[", ceci afin de distinguer ces ensembles natifs des ensembles gérés par le module de distinguer ces ensembles natifs des ensembles gérés par le module ORI-OAI-Repository, lors de la ré-exposition des métadonnées.

Elements de l'enregistrement stockés

...

  • 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

...

  • .

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.

...