IMA5 2018/2019 P06
Présentation générale
Conception et développement d'un système de gestion d'un réseau de capteurs
Description
Notre projet s'inscrit dans le cadre d'un projet de recherche à l'IRCICA sur un réseaux de capteurs à large échelle (100 noeuds). Face à un réseau de cette ampleur, il est intéressant de développer une solution de maintenance automatique (ou manuel) de ce réseau. Il sera bien plus aisé aux chercheurs de tester leurs hypothèses en déployant rapidement leurs logicielles sur tout ou partie des noeuds disponibles grâce à des fonctionnalités tel que la sélection d'une partie du réseau ou encore la mise à jour d'un ensemble de capteurs de même type.
Objectifs
L'objectif de notre travail consiste pour cela à développer simultanément le front-office et le back-office. La partie front sera réalisée en utilisant les technologies web classiques. La partie back-end sera constitué d'un ensemble de webservices en différents langages permettant la communication réseau et la gestion d'une base de donnée de noeuds et capteurs. Il faudra y développer des services classiques comme la gestion des utilisateurs et des services spécifiques (compilation du code source, téléchargement à distance du logiciel sur les noeuds). La partie front-end aura vocation à être utilisé par des utilisateurs externes au projet et devra donc être ergonomique et facile de compréhension. Il devra également être fonctionnel et modifiable facilement.
Préparation du projet
Cahier des charges
Choix techniques : matériel et logiciel
Matériel
- Un Serveur dédié contenant l'ensemble des services
- Un réseau de capteurs orchestré par des Raspberry Pi
Logiciel
- Ansible pour faciliter le déploiement des binaires sur les noeuds
- La plateforme Java EE pour la partie back-end couplé au framework Spring
- Une base de données PostgreSQL dans un premier temps pour assurer la persistance des données
- Une partie front-end moderne basée sur le framework Vue.js et sur un framework CSS tel que Bootsrap, Semantic UI ou Fondation pour ne citer que les plus connus
Liste des tâches à effectuer
- Comparaison et documentation sur les frameworks web de création d'interface (Angular, React, Vue ...)
- Documentation sur Spring et Java EE en général
- Configuration des routes du projet Spring (racine, connexion dans un premier temps)
- Création d'une interface utilisateur (front-end)
- Page de connexion pour commencer
- Implémentation d'un gestionnaire d'utilisateurs
- Création d'une base de données pour gérer les noeuds
- Implémentation du service d’envoi des fichiers de mise à jour