Blog
Publication de données Open Government Data
INSER a développé l’application nécessaire à la publication des géodonnées OpenData du canton de Zurich.
Introduction
Selon une décision du conseil d’Etat, les géodonnées du canton de Zurich sont accessibles en OpenData à partir du 1er janvier 2018.
La mise à disposition libre et gratuite des données sous la forme de fichiers ou de services (WMS, WFS, WCS) et la définition de conditions de licence adéquates permettent de remplir les conditions de l’OpenData (voir les conditions). Le service cantonal chargé de la géoinformation a toutefois souhaité développer un outil destiné à l’extraction facilitées des données. A l’heure actuelle, le développement d’un tel outil est sans équivalent en Suisse.
Suite à une procédure de type « concours », INSER a été mandaté par le canton de Zurich pour développer le processus d’extraction et livraison avec l’interface REST associé en étroite collaboration avec le service cantonal, sur le 2ème semestre 2017. La direction du projet (approche SCRUM) était assurée par l’entreprise tangly (M. Marcel Baumann).
Architecture du système
L’architecture du système est représentée dans le schéma ci-dessous
Outre la conception de cette architecture, le travail d’INSER a porté sur 3 composants principaux :
- Définition d’une API
- Développement d’un service « Datenshop »
- Mise en place de l’extracteur de données à proprement parler
Définition d’une API
Au niveau technique, le premier défi a consisté à définir la spécification de l’API permettant de déposer les commandes. Grâce à cette API (publiée en anglais à cette adresse), les clients de l’interface peuvent structurer de manière univoque la demande transmise au serveur (au format JSON). Cette interface constitue une base de discussion pour d’autres diffuseurs de données qui ont des besoins identiques. L’interface REST est développée en Python et est intégrée sur le serveur web existant du canton.
Description du service « Datenshop»
Cette application se présente sous la forme d’une interface REST qui assure les fonctions suivantes :
- Identifier les sources des données permettant de répondre à la demande, en consultant la base de métadonnées
- Recevoir, interpréter et valider la demande des utilisateurs (type de données, étendue spatiale, format,…)
- Préparer la commande et établir un bulletin de livraison. Déposer la commande sur le serveur de livraison (WebTransfer) standard du canton de Zurich
- Transmettre à l’utilisateur le lien permettant de télécharger le résultat demandé.
L’application est un composant technique auquel les utilisateurs n’ont pas accès directement. Les commandes sont transmises soit par le Géoportail cantonal (maps.zh.ch) soit par des applications de tiers (au travers d’une requête directe sur l’API). Les applications tierces peuvent par exemple être des portails SIG communaux ou des systèmes d’entreprise faisant appel à des géodonnées (notamment les adresses).
L’image ci-dessous montre l’intégration d’une application de requête dans le géoportail du canton de Zurich. Les jeux de données à disposition de l’extracteur sont mis à jour automatiquement en fonction des couches affichées dans le browser.
Extracteur de données (Datenvorbereitung)
La commande JSON est ensuite traitée par FME Server 2017 et plusieurs workspaces enchaînés. Le processus a été développé de manière extrêmement générique, assurant une grande capacité d’adaptation aux nombreux types de géodonnées, ainsi qu’aux formats correspondants. L’accès aux sources de données est ainsi géré au moyen du système cantonal de gestion des métadonnées. On évite de cette manière les systèmes redondants ce qui limite les coûts et les tâches de maintenance.
Si un service fournisseur de données souhaite proposer à la diffusion une nouvelle couche, il lui suffit de saisir les paramètres concernés (formats, type de données, source des données, etc…) dans le dictionnaire cantonal des métadonnées (GeoLion). Cette information sera automatiquement prise en compte par le système, sans modification de la configuration.
Gestion de la charge
La mise à disposition d’une telle infrastructure répond à une demande réelle, et il est donc important que l’architecture soit capable de gérer de nombreuses demandes simultanées.
FME server prend en charge l’attribution des demandes entre les différentes unités de traitements (FME Engines). Les requêtes sont distribuées entre les différents Engines, et les extractions très gourmandes en temps de traitement suivent un processus propre de manière à éviter de bloquer l’ensemble des utilisateurs.
Un monitoring en continu permet de suivre le volume de chargement, et la capacité de traitement peut être augmentée très simplement, en ajoutant des Engines. Bien que nécessitant une intervention humaine, cette extension est réalisée sans aucun changement dans le code ou dans l’architecture du système.
Bilan
Le système a été mis en production au 3 janvier 2018, et les premiers résultats sont extrêmement prometteurs. Plusieurs centaines de requêtes quotidiennes sont traitées de manière efficace et fiable.
Des développements complémentaires sont d’ores et déjà prévus, afin notamment de simplifier la livraison des données et de réduire le temps de traitement nécessaire.
Lien
Voir également l'article paru dans Géomatique Suisse 1-2/2018
Contact
David Reksten
FME Certified Professional, Desktop and Server