Définition d'une architecture logicielle modulaire

De Metabolisme territorial
Aller à : navigation, rechercher

Le modèle de données défini précédemment permet de structurer l'information relative au métabolisme des territoires. Nous faisons l'hypothèse que ce modèle est suffisamment générique et complet pour être utilisé dans la plupart des études de métabolisme, nous testons cette hypothèse à l'aide des exemples d'applications (Chapitre 5).

En revanche, si un modèle de données peut être défini de façon générique, il n'en est pas de même pour les traitements. D'une part, le chargement des données dans la BDD nécessite que chaque source soit au préalable nettoyée d'une manière spécifique (Shahrokni et al. 2015) et qu'un tableau d'association soit défini (voir partie précédente). D'autre part, la sélection, la manipulation et l'exportation des données sont également spécifiques à chaque type d'étude.

Malgré cette diversité des traitements possibles, nous identifions certaines redondances. Ainsi, bien que l'opération de nettoyage soit spécifique à chaque sources de données, une source peut être mobilisée dans plusieurs études (Davis 2012). Il devient ainsi intéressant de pouvoir capitaliser le travail de nettoyage pour ne pas avoir à le refaire pour chaque étude. Également, lorsque qu'une méthode de traitement est développée pour une étude spécifique, il doit être possible de réutiliser cette méthodes dans différents contextes (spatiaux, temporels), c'est-à-dire avec d'autres données sources, sans avoir à réécrire les algorithmes.

  • Implémenter dans le SINAMET des fonctionnalités génériques


Aussi, il parait essentiel de rendre le SINAMET modulaire, chaque module visant à enrichir les données disponibles et/ou permettre un traitement spécifique de données stockées dans la base de données. Cette modularité vise à capitaliser facilement le travail de traitement réalisé par d'autres personnes. Nous distinguons trois types de modules :

  • Les modules d'importation, qui visent à intégrer des données extérieures au sein de la base de données
  • Les modules d'exportation, qui visent à sélectionner et traiter des données particulières pour en exporter le résultat final
  • Les modules de modélisation, qui vont créer et intégrer de nouvelles données à partir de celles existantes dans la base

Pour rendre fonctionnelle cette approche modulaire, il nous paraît essentiel de faciliter le travail de création de module :

  • Des fonctionnalités génériques qui peuvent être mobilisées pour traiter les données
  • L'usage de technique de programmation qui permettent de réduire au maximum


Le cheminement des données

Nous avons vu qu'il est fréquent que des données soient utilisées à d'autres fins que celles initialement prévues. Nous souhaitons favoriser cette démarche à travers le SINAMET.

La phase de collecte est un challenge en soit (voir : A la quête des sources de données). Elle comprend l'identification des sources, leur obtention (par téléchargement dans les cas les plus simple, ou sur demande spécifié dans d'autres cas) et leur standardisation. La phase d'analyse comprend quant à elle la sélection des données, leur croisement, leur synthèse et leur représentation. Pour faire la jonction entre les deux phases, nous avons recours à une base de données (BDD) dont le modèle conceptuel repose sur l'ontologie du métabolisme territorial.

[FIGURE X : cheminement des données]

Afin de maximiser la réutilisation du travail d'autres personnes dans chacune des phases, nous optons pour une approche modulaire. Chaque module vise à apporter une contribution au travail général : Importation de certaines données au sein de la BDD, utilisation de modèles, extraction/traitement/synthèse des données et représentation. Le SINAMET tient sa valeur ajoutée essentiellement par son noyau qui va chercher à apporter les outils et fonctionnalités pour un développement rapide de nouveaux modules.

Dans la conception du SINAMET, nous gardons à l'esprit que nous ne connaissons pas a priori les données qui vont être manipulées. Nous en connaissons juste la typologie grâce à l'analyse ontologique. Mais en pratique, le SINAMET peut faciliter la manipulation d'une grande variété de données, les quelques exemple à la fin l'illustrent bien. Il faut donc laisser la possibilité aux utilisateurs de développer leurs propres modules complémentaires, et ne pas vouloir se restreindre à des traitements prédéfinis qui seront forcément limités à un moment donné. Les modules complémentaire vont permettre d'enrichir les possibilités (importation d'une nouvelle source de données, méthodes d'extraction particulières, modèles, ...).

Ces modules pourront être ensuite partagés avec des utilisateurs plus novices qui ne maîtrisent pas forcément les techniques de traitement de données, mais qui pourront ré-exécuter les algorithmes développés (par exemple sur d'autres jeux de données), sans avoir à entrer dans le code du module. L'architecture logicielle qui en résulte est présentée un peu plus loin.

Présentation générale

Chaque module correspond à une typologie des fonctionnalités requise :

  1. Stocker et manipuler conceptuellement les données
  2. Manipuler opérationnellement les données
  3. Importer des données
  4. Extraire des données
  5. Représenter des données

Le SINAMET est construit autour d'un noyau logiciel, relié à une base de données (BDD) via un mapping objet-relationnel (ORM). Autour ce noyau viennent s'ajouter des fonctions d'importations, de traitement et d'exportation/visualisation (Voir Figure 2). Le SINAMET est conçu pour que puissent venir se greffer des modules complémentaires pour diversifier les sources, traitements et visualisations possibles. Une structure simple, mais apportant les fonctionnalités nécessaires, et la possibilité d'étendre les fonctionnalités par des contributions externes nous paraissent être des approches pertinentes pour la diffusion d'un tel outil. C'est dans cette optique qu'une partie de la structure logicielle est organisée en modules. Les fonctionnalités ressources du noyau ont pour objectif de permettre à des utilisateurs avancés de développer plus facilement des modules supplémentaires et enrichir ainsi les possibilités offertes par le SINAMET. Une fois développés, ces modules peuvent être utilisés par d'autres utilisateurs moins familiers du processus de traitement de données mais qui souhaitent obtenir des informations sur le métabolisme de leur territoire.

Modules d'importation

"While integrating data streams may be perceived as a trivial task, substantial resources have been spent on developing a common communication framework for data integration, and there are still new challenges for each new data source" (Shahrokni et al. 2015)

Les modules d'importation ont pour objectif d'importer des données externes vers la BDD du SINAMET. Ces modules implémentent l'une des stratégies d'importation identifiées : manuelle (via un formulaire), parcours d'un tableur ou requêtes directes sur bases de données, requêtes web (via des API ou des terminaux SPARQL pour le web de données).

L'objectif des algorithmes d'importation va être de produire un dictionnaire au sens la programmation en Python, c'est-à-dire un ensemble de valeur associés à des clefs. Les valeurs peuvent être des objets (MTObject ou RObjects) ou des valeurs (numériques, chaînes de caractères, date).

Modules d'exportation

Selon les typologies d'analyse que l'on souhaite réaliser sur le métabolisme d'un territoire, nous n'avons pas besoin des mêmes informations.

L'objectif des modules d'exportation est de sélectionner et synthétiser les données présentes dans la BDD pour en extraire une information particulière à travers des données finales (qui seront ensuite représentées). Par exemple : les consommations année par année d'un bâtiment, la localisation des producteurs d'un certains produits, les aires d'approvisionnement d'un territoire, ...

Chaque typologie d'exportation des données correspond à des finalités propres, nous présentons plusieurs exemples dans un chapitre dédié. Le SINAMET, à l'aide de ses fonctionnalités embarquées, vient faciliter l'implémentation d'algorithmes d'extraction.

Par exemple, nous souhaitons construire un graphe qui représente le tonnage des marchandises échangées entre les différents départements de la Région Grand-Est. Le code permettant cela :

... Exemple code ...

Si nous souhaitons reproduire cet exercice pour d'autres années, pour d'autre régions, ou pour avoir le graphe des échanges entre les régions en France, il nous suffit de modifier les lignes correspondantes (1 ou 2 ou 3) et ce graphe peut être immédiatement reproduit.

Le résultat obtenu avec l'aide d'un module d'exportation est au libre choix du développeur. Il s'agit en général d'un tableau Excel, mais il peut également s'agir d'un dictionnaire, d'une liste ou de toute autre structure de données.

Ainsi, le SINAMET est conçu pour pouvoir s'enrichir de modules d'exportation et de visualisation. Ces modules vont permettre d'extraire les données pertinentes, puis de les mettre en forme, soit dans un tableur (exportation), soit sous la forme d'une représentation graphique (visualisation), avec pour objectif dans les deux cas d'accéder facilement à l'information utile.

Visualisation des données

Le nombre et la complexité des informations rend illusoire la perspective d'un graphique unique permettant la visualisation du métabolisme d'un territoire. A la place, nous envisageons la multiplication des vues, qui apporteront différentes informations complémentaires. Cette multiplicité des vues permet également de s'adapter à la diversité des usagers qui ont différentes visions du territoire et donc différents besoins en termes de visualisation (Flichy 2013). Chaque usager doit pouvoir consulter les données qui l’intéressent sous l'angle qui lui correspond. Cette approche de complémentarité entre les vues est aussi bénéfique dans le processus de vérification des données, mettant à disposition plusieurs filtres pour détecter les incohérences (Davis 2012).



Références

• Davis, C., 2012, Making Sense of Open Data: From Raw Data to Actionable Insight.. [En ligne] URL : https://repository.tudelft.nl/islandora/object/uuid:88c3c6f9-d6a2-4a82-9353-884a3b77b6ed. Consulté le 19 avril 2018.
• Flichy, P., 2013, Rendre visible l'information, Réseaux, pp. 55-89. [En ligne] URL : http://www.cairn.info/revue-reseaux-2013-2-page-55.htm. Consulté le 19 avril 2018.
• Shahrokni, H., Lazarevic, D., Brandt, N., 2015, Smart Urban Metabolism: Towards a Real-Time Understanding of the Energy and Material Flows of a City and Its Citizens, Journal of Urban Technology, 22, pp. 65-86. Routledge. DOI : 10.1080/10630732.2014.954899


Notes diverses

Décomposer le processus d'analyse à travers le SINAMET

  1. Importer vers la BDD
  2. Utiliser des modèles
  3. Extraire et synthétiser les données
  4. Représenter / Exporter les données

Proposer un système d'information dédié à un nombre limité de traitement semble ainsi futile, tout autant qu'éphémère. Le SINAMET doit pouvoir s'enrichir de contribution variées