Difference between revisions of "Coconode"

From air
Jump to navigation Jump to search
Line 18: Line 18:
   
 
Le travail à réaliser peut être présenté en trois modules :
 
Le travail à réaliser peut être présenté en trois modules :
* Partie configuration : Saisir des paramètres voulus pour la simulation, le nombre de simulations voulues pour pouvoir faire des statistiques associées, construction de fichier de configuration .xml (scénario). Cette partie pourra aussi afficher la configuration/répartition des capteurs dans la salle/du bâtiment : une carte de la salle affiche leur position.
+
*Partie configuration : Saisir des paramètres voulus pour la simulation, le nombre de simulations voulues pour pouvoir faire des statistiques associées, construction de fichier de configuration .xml (scénario). Cette partie pourra aussi afficher la configuration/répartition des capteurs dans la salle/du bâtiment : une carte de la salle affiche leur position.
* Partie suivi de la simulation (qui peut durer très longtemps, des semaines) : donne le statut de la simulation. Par exemple : Simulation avec COOJA à partir du scénario (répéter plusieurs fois pour augmenter la confiance)
+
*Partie suivi de la simulation (qui peut durer très longtemps, des semaines) : donne le statut de la simulation. Par exemple : Simulation avec COOJA à partir du scénario (répéter plusieurs fois pour augmenter la confiance)
* Partie résultat : elle peut être décomposée en 2 sous parties :
+
*Partie résultat : elle peut être décomposée en 2 sous parties :
** Choisir les données que l'on veut afficher (choix des différents graphes avec différents paramètres, choix de l'échelle, observation d'une simulation particulière ou application d'une fonction statistique aux données particulière)
+
**Choisir les données que l'on veut afficher (choix des différents graphes avec différents paramètres, choix de l'échelle, observation d'une simulation particulière ou application d'une fonction statistique aux données particulière)
** Afficher les graphes et les données de sortie. Résultat + script pour analyser le résultat.
+
**Afficher les graphes et les données de sortie. Résultat + script pour analyser le résultat.
   
 
L'outil actuel se fait en plusieurs étapes séparées par des lignes de commande tapées manuellement. Ceci n'est pas automatisé et est destiné principalement à l'utilisateur expérimenté. 
 
L'outil actuel se fait en plusieurs étapes séparées par des lignes de commande tapées manuellement. Ceci n'est pas automatisé et est destiné principalement à l'utilisateur expérimenté. 

Revision as of 10:35, 21 March 2013

Contexte

Ce projet se place dans la continuité du travail de Malisa VUCINIC - thésard à l'équipe DRAKKA (LIG). Durant son projet de fin d'études, il a écrit un programme permettant de simuler le comportement de capteurs disposés dans une salle/un bâtiment. Le comportement étant basé sur deux protocoles de routage de données (RPL ou LOADng). Cependant, ce programme ne permet pas d'automatiser l'exécution d'un grand nombre de simulation, ce qui est nécessaire pour faire des statistiques. De plus, les données obtenues ne sont pas interprétées mais seulement regroupées de manière cohérente par un parseur. L’utilisateur est obligé de traiter lui-même ces données via un logiciel tiers d’analyse.

Motivations

Industrie, sécurité, transport, santé... Les capteurs sont de plus en plus utilisés dans notre quotidien. Organisé en réseau, ces capteurs permettent de récolter une multitude de données de toutes sortes. La majorité des applications impliquent le déploiement d'un grand nombre de nœuds (capteurs) dans une zone donnée. Cela implique un minimum de traitement pour communiquer entre eux et/ou avec une entité capable de les traiter. Cependant, une grande partie de ces équipements ne seront pas reliés à un réseau électrique ni à un réseau informatique à cause du coût d’installation et de raccordement. C’est pourquoi ils seront alimentés grâce à une batterie et devront communiquer via des transmissions radio. Le coût faible du déploiement et la durée de vie très longue des capteurs impliquent des contraintes matérielles liées à la mémoire, aux traitements et à la consommation d’énergie. La communication en est impactée car il faut consommer le moins possible tout en communiquant avec les autres. Il faut donc utiliser des protocoles de communications optimisés pour lui permettre d’être autonome tout en restant joignable via Internet. En effet, IPv6 est performant pour délivrer les données et router celle-ci, quel que soit le réseau, d’un émetteur vers un récepteur. De plus, au vu du nombre de capteurs déployés, il est nécessaire d’avoir une grande plage d’adresses disponible. Cependant, IP a été conçu pour des réseaux très puissants et possède, par exemple, des entêtes de tailles trop grandes pour un capteur. C’est pourquoi l’IETF a créé un standard nommé 6LowPAN qui définit des mécanismes d’encapsulation et de compression d’en-têtes permettant d’envoyer des paquets IPv6. Afin de pouvoir tester et expérimenter de tels protocoles, plusieurs méthodes sont possibles : théorie, simulation, modélisation. La théorie permet d’avoir un résultat rapidement par rapport aux autres méthodes. La modélisation est la meilleure solution par rapport à la précision des résultats. Cependant, la première n’est pas assez représentative par rapport à des événements censés être aléatoires sur les nœuds et la deuxième coûte cher et ne supporte pas les changements. La simulation est un bon compromis car il est possible de modifier les paramètres facilement tout en contrôlant les dépenses liées au coût de développement. C’est pourquoi, l’équipe Drakkar utilise un simulateur nommé Cooja pour simuler le comportement d’un réseau de capteurs par rapport aux algorithmes de routages des paquets, de la disposition des capteurs dans le réseau, les propriétés de l’environnement…

Utilisateurs cibles

Les utilisateurs cibles sont principalement des chercheurs, stagiaires utilisant le simulateur Cooja. Ensuite, les autres utilisateurs seront les personnes lambda voulant utiliser ce logiciel car il sera diffusé avec une licence libre.

Description

L'objectif est faire un logiciel permettant de configurer et de répéter une expérience, de suivre les différentes étapes de l'expérience lors de la simulation et d'interpréter les résultats obtenus. Le logiciel doit être « user friendly », avec une interface graphique. De plus, dans la mesure du possible, on essayera de le rendre générique, c'est à dire utilisable pour d'autres protocoles que les deux testés dans le cadre de ce projet. Il sera ainsi susceptible d'être réutilisé pour d'autres études.

Le travail à réaliser peut être présenté en trois modules :

  • Partie configuration : Saisir des paramètres voulus pour la simulation, le nombre de simulations voulues pour pouvoir faire des statistiques associées, construction de fichier de configuration .xml (scénario). Cette partie pourra aussi afficher la configuration/répartition des capteurs dans la salle/du bâtiment : une carte de la salle affiche leur position.
  • Partie suivi de la simulation (qui peut durer très longtemps, des semaines) : donne le statut de la simulation. Par exemple : Simulation avec COOJA à partir du scénario (répéter plusieurs fois pour augmenter la confiance)
  • Partie résultat : elle peut être décomposée en 2 sous parties :
    • Choisir les données que l'on veut afficher (choix des différents graphes avec différents paramètres, choix de l'échelle, observation d'une simulation particulière ou application d'une fonction statistique aux données particulière)
    • Afficher les graphes et les données de sortie. Résultat + script pour analyser le résultat.

L'outil actuel se fait en plusieurs étapes séparées par des lignes de commande tapées manuellement. Ceci n'est pas automatisé et est destiné principalement à l'utilisateur expérimenté.  Le but de notre projet est de développer un outil qui automatise le processus de simulation comprenant la configuration, l'exécution et l'analyse de résultat sous forme d'une interface utilisateur interactive. Il sera important de concevoir une architecture flexible, modulable et facile à étendre pour le développement ultérieur.