Projet 2010 - Système d'information autour d'un réseau de capteurs

Les réseaux de capteurs connaissent actuellement un développement important. Ces capteurs sont souvent distribués et connectés à un réseau. La normalisation de la représentation des capteurs (emplacements, capacités, …) et de leurs mesures pour permettre à des application d’échanger ce type d’information est un enjeu important.

Dans ce contexte, l’Open Geospatial Consortium propose un ensemble de standards dans ce domaine (http://www.opengeospatial.org/ogc/markets-technologies/swe) en s’appuyant sur les technologies du Web (XML, services Web, …). L’objectif de ce projet est d’étudier ces propositions (en particulier les modèle de données pour “Observations & Measurements (O&M)” et “Sensor Model Language (SensorML)”) et de mettre en place un prototype pour les illustrer en utilisant les concepts étudiées en cours.

Le résultat sera un ensemble de composants permettant de lire et d’écrire le format XML standard (via JAXB) et de proposer de la persistance dans une base de données relationnelles et l’interrogation par SQL (via JPA) et pour une partie dans un entrepôt OWL (via Jena) et l’interrogation via SparQL. Un petite application cliente (éventuellement sans IHM) devra démontrer la possibilité d’importer ou d’exporter des données via sérialisation Java ou en XML et l’exécution de requêtes distantes.

ATTENTION, le sujet est large, l’objectif n’est évidement pas d’obtenir un prototype complet mais de démontrer votre capacité à intégrer dans un même projets les concepts, technologies et méthodes étudiés en cours. Il faudra donc veiller à aborder tous les points avec une couverture pertinente, choisissez donc soigneusement ce que vous allez implanter.

La première étape consiste à comprendre le modèle et le format proposé et à mettre en place en utilisant JAXB le composant permettant (1) la production d’instances java à partir de documents XML conformes au modèle standard et (2) la sérialisation des instances Java. Pour cela, l’utilisation de JAXB sera étudiées lors du TP du 17/12.

Le second composant devra permettre de rendre persistants les composants Java précédents dans une base de données relationnelles via JPA. Le composant devra permettre d’exécuter des requêtes SQL quelconques et quelques requêtes classiques.

Le troisième composant devra permettre de représenter une partie des données que vous jugerez pertinente dans l’entrepôt Jena pour permettre son interrogation via SparQL.

L’étape suivante consiste à permettre l’utilisation distante des composants précédents cela devra être possible via RMI et via un serveur J2EE simple (bean de session dans glassfish) étudiés en cours en janvier.

L’étape finale comprendra la mise en place d’une interface Web pour au moins l’un des composants via des JSP. Cette partie sera présentée et réalisée en partie en cours en Janvier.

Une partie des composants peuvent et doivent être commencés immédiatement. Les cours de Janvier n’auront d’intérêt que si vous disposez déjà des briques de bases nécessaires.

L’évaluation sera double :

  • classiquement par une présentation du résultat à l’issue de votre semaine d’examen
  • au fur et à mesure de votre travail en utilisant Trac et SVN (les enseignements y sont connectés en permanence). Votre capacité a vous organiser composant une part importante de l’évaluation.

La notation sera individuelle, chaque membre d’un groupe devra pouvoir justifier d’une quantité de travail comparable aux autres en s’appuyant sur trac