Moissonnage

La découverte des données devient plus intéressante une fois que plusieurs catalogues et services partagent leurs ressources.

Le moissonnage est le processus consistant à ingérer des métadonnées à partir de sources distantes et à les stocker localement dans le catalogue pour une recherche rapide. Il s’agit d’une tâche régulièrement planifiée afin que la copie locale et les métadonnées distantes restent synchronisées.

Les sources suivantes peuvent être moissonnées :

Présentation du mécanisme

Le mécanisme de moissonnage repose sur le concept d’un « identifiant universel unique (UUID) ». Il s’agit d’un identifiant spécial car il n’est pas seulement unique localement sur le serveur qui l’a généré, mais il est surtout unique au niveau mondial. Il est constitué d’une combinaison de :

  • l’adresse MAC de l’interface réseau,

  • la date/heure actuelle

  • et d’un nombre aléatoire.

Pour chaque nouvel enregistrement, un UUID est généré et lui est attribué.

Un autre concept important derrière le moissonnage est la « date du dernier changement ». Chaque fois que vous modifiez un enregistrement de métadonnées, la date de la dernière modification est mise à jour. Le simple stockage de ce paramètre et sa comparaison avec un nouveau permettent à tout système de savoir si l’enregistrement de cette métadonnée a été modifié depuis la dernière mise à jour.

Ces deux concepts permettent aux catalogues de récupérer des métadonnées distantes, de vérifier si elles ont été mises à jour et de les supprimer localement si elles ont été supprimées à distance. Les UUID permettent également un moissonnage croisé dans le cas où B moissonne C et A moissonne B.

Cycle de vie du moissonnage

Lorsqu’un moissonnage est créé, il n’y a pas de métadonnées moissonnées. Lors de la première exécution, toutes les métadonnées distantes sont récupérées et stockées localement. Pour certains moissonneurs, après la première exécution, seules les métadonnées qui ont changé seront récupérées.

Les métadonnées moissonnées ne sont (par défaut) pas modifiables pour les raisons suivantes :

  1. Le moissonnage est exécuté périodiquement, donc toute modification locale des métadonnées moissonnées sera perdue lors de la prochaine exécution.

  2. La date de modification peut être utilisée pour suivre les modifications, donc si les métadonnées sont modifiées, le mécanisme de moissonnage peut ne plus fonctionner.

Les propriétés des métadonnées (telles que les catégories, les privilèges, etc.) sur les enregistrements de métadonnées moissonnées peuvent être mises à jour mais seront écrasées lors de la prochaine synchronisation.

Note

si vous voulez vraiment modifier les enregistrements de métadonnées moissonnées et que vous n’êtes pas préoccupé par les problèmes décrits ci-dessus, il existe désormais un paramètre de configuration qui le permettra. Voir Moissonnage pour plus de détails.

Une autre option serait d’affecter les enregistrements moissonnés au catalogue local, puis de les modifier. Pour l’instant, aucune interface ne permet de modifier le catalogue source de l’enregistrement.

Le processus de moissonnage se poursuit jusqu’à ce que l’une des situations suivantes se présente :

  1. Un administrateur arrête (désactive) le moissonnage.

  2. Une exception se présente. Dans ce cas, le moissonnage est automatiquement arrêtée.

Lorsqu’un moissonnage est supprimé, tous les enregistrements de métadonnées associés à ce moissonnage sont supprimés.

Moissonnages multiples et hiérarchie

Les catalogues qui utilisent des UUID pour identifier les enregistrements de métadonnées (par exemple, GeoNetwork) peuvent être récoltés plusieurs fois sans avoir à se soucier de la redondance des métadonnées.

À titre d’exemple, considérons le type de moissonnage GeoNetwork qui permet à un serveur GeoNetwork de récolter des enregistrements de métadonnées à partir d’un autre serveur GeoNetwork et le scénario suivant :

  1. Le serveur (A) a créé des métadonnées (a)

  2. Le serveur (B) moissonne les métadonnées (a) à partir du serveur (A)

  3. Le serveur (C) moissonne (a) à partir du serveur (B)

  4. Le serveur (D) moissonne à la fois les serveurs (A), (B) et (C)

Dans ce scénario, le serveur (D) obtiendra les mêmes métadonnées (a) des 3 serveurs (A), (B), (C). Les métadonnées iront vers (D) en suivant 3 chemins différents mais grâce à leurs UUID une seule copie sera stockée. Lorsque (a) est modifié en (A), une nouvelle version affluera vers (D) mais, grâce à la date de modification, la copie en (D) sera mise à jour avec la version la plus récente.

Moissonner des fragments de métadonnées pour permettre leur réutilisation

Tous les moissonneurs, à l’exception des moissonneurs THREDDS et OGC WFS GetFeature, créent un enregistrement de métadonnées complet qui est inséré ou remplace un enregistrement existant dans le catalogue. Cependant, il arrive souvent que :

  • les métadonnées moissonnées à partir d’une source externe ne sont en réalité qu’un ou plusieurs fragments des métadonnées nécessaires pour décrire une ressource de type « dataset »

  • vous souhaiterez peut-être combiner des fragments de métadonnées moissonnées avec des métadonnées saisies manuellement ou statiques dans un enregistrement unique

  • un fragment de métadonnées moissonnées à partir d’une source externe peut être requis dans plus d’un enregistrement de métadonnées

Par exemple, vous pouvez uniquement être intéressé par le moissonnage de l’emprise géographique et/ou des informations de contact à partir d’une source externe et par la saisie manuelle du reste du contenu dans l’enregistrement de métadonnées. Vous pouvez également souhaiter réutiliser les coordonnées d’une personne ou d’une organisation dans plusieurs enregistrements.

Pour prendre en charge cette capacité, le moissonneur WFS GetFeature et le moissonneur THREDDS permettent de moissonner et lier ou de copier des fragments de métadonnées dans un enregistrement de modèle pour créer des enregistrements de métadonnées. Les fragments enregistrés dans la base de données GeoNetwork sont appelés sous-modèles et peuvent être utilisés dans plusieurs enregistrements de métadonnées.

Comme indiqué ci-dessus, un exemple de fragment de métadonnées est l’élément gmd:contactInfo d’un document iso-19139. Cet élément contient les coordonnées d’une organisation (ou d’une personne). Si un fragment est stocké dans la base de données GeoNetwork en tant que sous-modèle pour une personne ou une organisation donnée, alors ce fragment peut être référencé dans les enregistrements de métadonnées où cette organisation (ou cette personne) est spécifiée à l’aide d’un mécanisme de liaison XML appelé XLink.

Prise en charge HTTPS

Le moissonnage entre les serveurs GeoNetwork peut nécessiter le protocole HTTPS. En cas de moissonnage à partir d’une URL GeoNetwork de type https, le serveur devra disposer d’un certificat de confiance disponible dans le « keystore » JVM du serveur GeoNetwork exécutant le moissonnage.

Si vous n »avez pas de certificat de confiance dans le keystore de la JVM utilisé par GeoNetwork, le moissonneur peut émettre une exception comme celle-ci lorsque vous essayez de moissonner depuis une adresse https GeoNetwork :

javax.net.ssl.SSLHandshakeException:
   sun.security.validator.ValidatorException: PKIX path building failed:
   sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

Caused by: sun.security.validator.ValidatorException:
   PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
   unable to find valid certification path to requested target

The server certificate for the GeoNetwork server being harvested needs to be added to the JVM keystore with keytool in order to be trusted.

Une autre façon d’ajouter le certificat consiste à utiliser un script tel que :

## JAVA SSL Certificate import script
## Based on original MacOs script by LouiSe@louise.hu : http://louise.hu
##
## Usage: ./ssl_key_import.sh <sitename> <port>
##
## Example: ./ssl_key_import.sh mail.google.com 443 (to read certificate from https://mail.google.com)

## Compile and start
javac InstallCert.java
java InstallCert $1:$2

## Copy new cert into local JAVA keystore
echo "Please, enter admnistrator password:"
sudo cp jssecacerts $JAVA_HOME/jre/lib/security/jssecacerts
# Comment previous line and uncomment next one for MacOs
#sudo cp jssecacerts /Library/Java/Home/lib/security/

Pour utiliser le script, le compilateur Java doit être installé et le fichier InstallCert.java, doit être téléchargé et placé dans le même répertoire que le script.

Le script ajoutera le certificat au keystore de la JVM, en l’exécutant ainsi

$ ./ssl_key_import.sh https_server_name 443

Note

Utilisez ce script à vos risques et périls ! Avant d’installer un certificat dans le keystore de la JVM, assurez-vous de comprendre les implications en matière de sécurité.

Note

Après avoir ajouté le certificat, vous devrez redémarrer GeoNetwork.

La page principale

Pour accéder à la page principale du moissonnage, vous devez être connecté en tant qu’administrateur. Depuis la page d’administration, sélectionnez le raccourci de moissonnage. La page principale de moissonnage sera alors affichée.

La page affiche une liste des moissonneuses actuellement définies et un ensemble de boutons pour les fonctions de gestion. La signification de chaque colonne de la liste des moissonnages est la suivante :

  1. Sélectionner Case à cocher pour sélectionner une ou plusieurs moissonneurs. Les moissonneurs sélectionnés seront affectés par la première rangée de boutons (activer, désactiver, exécuter, supprimer). Par exemple, si vous sélectionnez trois moissonneurs et appuyez sur le bouton Supprimer, ils seront toutes supprimées.

  2. Nom Il s’agit du nom du moissonneur fourni par l’administrateur.

  3. Type Le type de moissonneur (par ex. GeoNetwork, WebDAV etc…).

  4. Statut Une icône indiquant l’état actuel. Voir Icônes d’état et d’erreur de moissonnage pour les différentes icônes et descriptions de statut.

  5. Erreurs Une icône montrant le résultat du dernier cycle de moissonnage, qui aurait pu réussir ou non. Voir Icônes d’état et d’erreur de moissonnage pour les différentes icônes et descriptions d'erreur. En passant le curseur sur l’icône, des informations détaillées sur le dernier cycle de récolte s’afficheront.

  6. Exécuter à et Chaque : Planification de l’exécution du moissonage. Essentiellement l’heure de la journée + le nombre d’heures entre les répétitions et les jours où la moissonnage fonctionnera.

  7. Dernière exécution La date, au format ISO 8601, du dernier moissonnage.

  8. Opération Une liste de boutons/liens vers des opérations sur le moissonnage.

  • La sélection de Modifier vous permettra de modifier les paramètres d’un moissonnage.

  • La sélection de Clone vous permettra de dupliquer un moissonnage et de modifier la copie ainsi faite.

  • La sélection de Historique vous permettra d’afficher/modifier l’historique d’un moissonnage - voir Historique du moissonnage.

Au bas de la liste des moissonneurs se trouvent deux rangées de boutons. La première rangée contient des boutons qui peuvent fonctionner sur un ensemble sélectionné de moissonneurs. Vous pouvez sélectionner les moissonneurs que vous souhaitez à l’aide de la case à cocher dans la colonne Sélectionner, puis appuyez sur l’un de ces boutons. Lorsque le bouton termine son action, les cases à cocher sont décochées. Voici la signification de chaque bouton :

  1. Activer Lorsqu’un nouveau moissonneur est créé, le statut est inactif. Utilisez ce bouton pour le(s) rendre actif et démarrer le(s) moissonnage(s) selon le calendrier configuré.

  2. Désactiver Arrête le ou les moissonneur(s). Remarque : cela ne signifie pas que le ou les moissonnages en cours seront arrêtées mais que les moissonnages ne seront pas programmées pour s’exécuter à nouveau.

  3. Exécuter Démarrez immédiatement les moissonnages sélectionnées. Ceci est utile pour tester les configurations de moissonnage.

  4. Supprimer Supprimer toutes les moissonneurs actuellement sélectionnées. Une boîte de dialogue demandera à l’utilisateur de confirmer l’action.

La deuxième rangée contient des boutons à usage général. Voici la signification de chaque bouton :

  1. Retour Revient simplement à la page d’administration principale.

  2. Ajouter Ce bouton crée un nouveau moissonneur.

  3. Actualise Actualise la liste actuelle des moissonneuses du serveur. Cela peut être utile pour voir si la liste de moissonnage a été modifiée par quelqu’un d’autre ou pour obtenir le statut de tout moissonnage en cours d’exécution.

  4. Historique Affiche l’historique de récolte de toutes les moissonnages. Voir Historique du moissonnage pour plus de détails.

Icônes d’état et d’erreur de moissonnage

Conseils pour le résultat de moissonnage

Lorsqu’un moissonneur s’exécute et se termine, une infobulle affichant des informations détaillées sur le processus de récolte s’affiche dans la colonne Erreurs de la moissonneuse. Si le moissonnage a réussi, passer le curseur sur l’info-bulle affichera un tableau, avec quelques lignes étiquetées comme suit :

  • Total - Il s’agit du nombre total de métadonnées trouvées à distance. Les métadonnées avec le même identifiant sont considérées comme une seule.

  • Ajouté - Nombre de métadonnées ajoutées au système car elles n’étaient pas présentes localement.

  • Supprimé - Nombre de métadonnées qui ont été supprimées localement car elles ne sont plus présentes sur le serveur distant.

  • Mise à jour - Nombre de métadonnées présentes localement mais qui devaient être mises à jour car leur date de dernière modification était différente de celle à distance.

  • Inchangé - Les métadonnées locales sont restées inchangées. Leur date de dernière modification à distance n’a pas changé.

  • Schéma inconnu - Nombre de métadonnées ignorées car leur format n’a pas été reconnu par GeoNetwork.

  • Non récupérable - Nombre de métadonnées prêtes à être récupérées du serveur distant mais pour une raison quelconque, il y a eu une exception pendant le processus de transfert de données.

  • Mauvais format - Nombre de métadonnées ignorées car elles n’avaient pas un format XML valide.

  • Ne valide pas - Nombre de métadonnées qui n’ont pas été validées par rapport à leur schéma. Ces métadonnées ont été récoltées avec succès mais ignorées en raison du processus de validation. Habituellement, il existe une option pour forcer la validation : si vous souhaitez quand même récolter ces métadonnées, désactivez/laissez-la simplement.

  • Vignettes/Échec des miniatures - Nombre d’images miniatures de métadonnées ajoutées/qui n’ont pas pu être ajoutées en raison d’un échec.

  • Attribut d’URL de métadonnées utilisé - Nombre de couches/types d’entités/couvertures ayant une URL de métadonnées pouvant être utilisée pour établir un lien vers un enregistrement de métadonnées (Moissonnage de Service OGC uniquement).

  • Services ajoutés - Nombre d’enregistrements de services ISO19119 créés et ajoutés au catalogue (pour le moissonage du catalogue THREDDS uniquement).

  • Collections ajoutées - Nombre d’enregistrements de type dataset ajoutés au catalogue (pour le moissonnage du catalogue THREDDS uniquement).

  • Atomics ajouté - Nombre d’enregistrements de type dataset de données atomiques ajoutés au catalogue (pour le moissonnage du catalogue THREDDS uniquement).

  • Sous-modèles ajoutés - Nombre de sous-modèles (= fragment visible dans le catalogue) ajoutés au catalogue de métadonnées.

  • Sous-modèles supprimés - Nombre de sous-modèles (= fragment visible dans le catalogue) supprimés du catalogue de métadonnées.

  • Fragments avec schéma inconnu : nombre de fragments dont le schéma de métadonnées est inconnu.

  • Fragments retournés - Nombre de fragments retournés par le moissonneur.

  • Fragments appariés - Nombre de fragments qui avaient des identifiants dans le modèle utilisé par le moissonneur.

  • Ensembles de données existants - Nombre d’enregistrements de métadonnées de type dataset qui existaient lorsque le moissonneur THREDDS a été exécuté.

  • Enregistrements créés - Nombre d’enregistrements créés par le moissonneur à partir du modèle et des fragments.

  • Impossible d’insérer - Nombre d’enregistrements que le moissonneur n’a pas pu insérer dans le catalogue (généralement parce que l’enregistrement était déjà présent, par exemple dans le moissonneur Z3950, cela peut se produire si le même enregistrement est collecté à partir de différents serveurs).

Ajout de nouveaux moissonneurs

Le bouton Ajouter de la page principale vous permet d’ajouter de nouveaux moissonneurs. Une liste déroulante s’affiche alors avec tous les protocoles de moissonneurs disponibles.

Vous pouvez choisir le type de moissonnage que vous souhaitez effectuer et appuyer sur Ajouter pour commencer le processus d’ajout du moissonneur. Les moissonneurs pris en charge et les détails de ce qu’il faut faire ensuite se trouvent dans les sections suivantes :

Historique du moissonnage

Chaque fois qu’un moissonneur est exécuté, il génère un rapport d’état de ce qui a été récolté et/ou de ce qui s’est mal passé (par exemple, un rapport d’exception). Ces rapports sont stockés dans une table dans la base de données utilisée par GeoNetwork. L’historique complet de l’ensemble des moissonneurs peut être consulté à l’aide du bouton Historique de la page Gestion des moissonnage. L’historique de moissonnage pour un moissonneur individuel peut également être consulté en utilisant le lien Historique dans les opérations pour ce moissonneur.

Une fois l’historique des moissonnages affiché, il est possible de :

  • développer le détail de toutes les exceptions

  • trier l’historique par date de moissonnage (ou dans le cas de l’historique de tous les moissonneurs, par nom du moissonneur)

  • supprimer un des historique ou l’ensemble des historiques