Home
Architecture logicielle pour capteurs sans-fil en réseau
Contents
1. 60 I Introduction Les avanc es technologiques r centes confortent la pr sence de l informatique et de l lectronique au coeur du monde r el De plus en plus d objets se voient ainsi quiper de processeurs et de moyens de communication mobiles leur permettant de traiter des informations mais galement de les transmettre Cette volution s inscrit dans le cadre de l informatique pervasive plus connue sous le nom d ubiquitous computing We196 Un des objectifs de ce domaine est de combler le foss entre les mondes r el et virtuel en rendant les objets intelligents Pour cela ceux ci doivent tre capables de d tecter un changement dans leur environnement et d y r agir en fonction notamment des besoins de l utilisateur Les r seaux de capteurs sans fil entrent dans ce cadre En effet ceux ci sont constitu s d un ensemble de petits appareils ou capteurs poss dant des ressources particuli rement limit es mais qui leur permettent n anmoins d acqu rir des donn es sur leur environnement imm diat de les traiter et de les communiquer Toute une gamme de nouvelles applications peut d s lors tre envisag e Cependant l int gration de ces capteurs dans le monde physique n est pas une tache ais e En effet de nouveaux probl mes apparaissent engendr s entre autre par la s v rit des contraintes inh rentes aux ressources limit es Citons
2. 11 1I 2 1 Les notions principales 11 2 2 NesC 14 2 3 La compilation 17 II 3 Etat de l art sur la CBSE 17 3 1 Les concepts fondamentaux de la CBSE 17 3 2 mod le initial de Think 19 II 3 3 1 23 3 4 mod le Think Fractal 26 III Vers une architecture logicielle pour les r seaux de capteurs 27 III 1 Les limites de TinyOS 27 2 Vers un syst me d exploitation bas composants 28 IV Etude de la reconfiguration dynamique
3. 21 FIGURE 15 REPRESENTATION D UNE INTERFACE DANS LE CAS GENERAL FSLM02 21 FIGURE 16 SYSTEME A BASE DE COMPOSANTS DE LIAISONS DE DOMAINES FASO 1 22 FIGURE 17 LA CHAINE DE CONSTRUCTION DE THINK LOB 23 FIGURE 18 VUE INTERNE D UN COMPOSANT 24 FIGURE 19 VUE EXTERNE D UN COMPOSANT BRU03 25 FIGURE 20 COMPONENTIZATION D UN CAPTEUR 29 FIGURE 21 LIAISON ENTRE LE SYSTEME D EXPLOITATION ET L APPLICATION 30 FIGURE 22 LES RESSOURCES SUR UN CAPTEUR 31 FIGURE 23 LES ETATS D UN 32 FIGURE 24 MODELISATION DE L UTILISATION D UNE FILE D EVENEMENT 33 FIGURE 25 MODELE DE COMPOSANT BASE 33 FIGURE 26 FONCTIONNEMENT DU SYSTEME 34 FIGURE 27 LIAISON ENTRE LE CONTROLEUR DE RECONFIGURATION ET LE
4. 35 1 Pr sentation de la solution propos e par Juraj Polakovic 35 IV 2 Les am liorations du mod le 37 V Les limites de Think pour impl menter le mod le propos 41 VI Conclusion ce c r re nnn rennen n nnn nennen n nnn TL nnn nn nanan 42 Bibliographie 43 Table des figures e eo nnn nnn nnn n nn nn nnn n TL TMLMMM M 46 47 Annexe Les composants syst mes fournis pour PowerPC dans la biblioth que Kortex 46 Annexe Manuel d installation de Think v2 pour Ubuntu 49 Annexe Manuel d installation de Think v3 pour Ubuntu 32 Annexe D Manuel d installation et d utilisation de l mulateur ARM SkyEye v1 pour Ubuntu 55 Annexe D veloppement d une application de test 56 Annexe F Manuel de PIDL
5. De plus on peut envisager qu un utilisateur traverse le champ de motes afin de collecter des informations ou de reconfigurer le r seau Il convient alors de fournir cet utilisateur des moyens d administrer aussi bien un simple mote que le r seau dans son ensemble C est dans ce cadre que s inscrivent les recherches actuelles sur la possibilit de d finir un middleware pour les WSNs Elles sont pr sent es dans la section suivante 1 6 Les challenges Les besoins L utilisation d un middleware apparait comme un besoin fondamental pour faciliter l volution des r seaux de capteurs En effet la description non exhaustive pr c dente II 1 4 des diff rentes utilisations possibles d un tel r seau d montre la diversit des caract ristiques des applications En effet les applications des WSNs sont fortement d pendantes du domaine et des objectifs envisag s A chaque application correspond une architecture du r seau et une impl mentation Certaines par exemple peuvent n cessiter une transmission des donn es fiables KDMO5 alors que d autres peuvent se permettrent de perdre des donn es en cours de routage mais n cessitent une grande pr cision dans les donn es collect es Or les techniques actuelles n cessitent souvent de red velopper soit dans le meilleur des cas une partie soit dans le pire des cas toute l application Un middleware peut alors apporter une solution ce probl me en s adaptant facilement l h
6. ler r active le Le ReconfEngine met finalement en place la nouvelle configuration a Les nouveaux composants sont charg s en m moire 36 b Et ou les liaisons sont reconfigur es BindingController ContentController c Les tats sont transf r s entre les composants AttributeController d Les composants qui ne sont plus utilis s sont d charg s de la m moire 7 La reconfiguration est ainsi termin e et la nouvelle configuration est sauvegard e Enfin dans Pol04 deux solutions ont t propos es pour d terminer l tat stable d un composant La premi re reproduit un m canisme utilis dans Julia pour effectuer cette t che Il s agit du m canisme d interception Celui ci consiste interposer des proxis entre les interfaces externes et internes d un composant afin de comptabiliser l aide d un compteur les appels entrants et sortants de ce composant Lorsque le compteur est z ro il n y a plus de fonction en cours dans le composant il n y a donc plus d activit Le composant est dans un tat stable Cette approche pose des probl mes de performance En effet chaque proxi occupe de l espace m moire suppl mentaire Il emp che galement l utilisation des techniques de by pass qui permettent d appeler directement une interface d un sous composant gr ce une r f rence vers cette derni re Sans cette optimisation l appel d une m thode d un sous composant requiert l uti
7. 142 jre bin opt apache ant 1 6 5 bin gt source bash_profile 7 Compiler les outils de Think puis les biblioth ques n cessaires cd v3 anttools Si la compilation g n re une erreur de type MalformedInputException il est n cessaire d ex cuter la commande suivante export LANG en_US et puis de relancer la commande ant tools Cette erreur est apparemment li e l installation de JDK d IBM Elle ne semble pas se produire si l on utilise celui de Sun ant DOS Think DCPU arm gt ant DOS Linux DCPU arm gt ant DOS Unix 8 Compiler un des exemples a Pour une cible unix 53 gt v3 example helloworld gt ant unix Si le message d erreur suivant se produit Unix CPU could not be determine deux solutions sont envisageables e soit modifier le fichier STHINKPATH src helper Think java rajoutant else if i386 equals osarch x86 equals osarch CPU new String x86 puis recompiler les outils et les librairies dans le r pertoire STHINKPATH avant de relancer la commande ant unix e soit ajouter la ligne suivante dans le fichier THINKPATH example helloworld build xml lt target name unix gt lt property name OS value unix gt lt property name CPU value x86 gt lt target gt et relancer la commande ant unix c Pour une cible arm gt v3lexample helloworld antarm Si une erreur
8. d taill es pour la station de base 1 R ception d un v nement correspondant une reconfiguration 2 Traitement de l v nement par l ordonnanceuret le ou les gestionnaire s correspondant s a Suspension de la t che en cours par l ordonnanceur b Placement de la t che de reconfiguration en t te de la file de priorit par l ordonnanceur c Placement des l ments de reconfiguration aux endroits ad quats composants dans la m moire r gles de reconfiguration dans le ReconfEngine d R activation de la tache suspendue 3 Ex cution de la reconfiguration a V rification de l nergie disponible et de l espace m moire Si les ressources sont insuffisantes un message d chec est renvoy l initiateur Le composant reste dans sa configuration initiale Le composant ReconfEngine est li aux diff rents contr leurs c Lecomposant ReconfEngine r alise alors les traitements suivants i Chargement des nouveaux composants en m moire permanente ii Reconfiguration des liaisons via le BindingController et le ContentController iil Transfert des tats entre les composants si besoin est via l AttributeController iv Suppression de la m moire permanente des anciens composants i e des composants d sormais inutilis s d Information du succ s de la reconfiguration via l envoi d un message l initiateur Dans cette section nous avons tabli un nouveau m canisme de reconfiguration dynamique adapt aux
9. 6 5 export ANT HOME 2 3 Installer le compilateur crois pour arm Ceci est la partie la plus d licate car il faut trouver un compilateur compatible avec la machine de d veloppement capable de compiler en C et en assembleur et de faire des ditions de liens En cherchant cross 3 2 sur google nous en avons trouv un pour h te linux x86 et pour cible familiar arm Ce manuel d crit la proc dure suivie pour cette installation a D compresser l archive dans le r pertoire usr local gt tar zxvf cross 3 2 tar gz C b Modifier la variable d environnement PATH et ajout de la variable d environnement ad quate dans le bash profile de l utilisateur gt gedit bash profile amp CROSS COMP z usr local arm bin PATH CROSS COMP opt IBMJava2 142 bin opt IBMJava2 142 jre bin opt apache ant 1 6 5 bin gt source bash_profile 3 Compiler les outils de Think puis les biblioth ques n cessaires gt cd v2 gt ant tools Si la compilation g n re une erreur de type MalformedInputException il est n cessaire d ex cuter la commande suivante export LANG en_US et puis de relancer la commande ant tools Cette erreur est apparemment li e l installation de JDK d IBM Elle ne semble pas se produire si l on utilise celui de Sun gt ant DOS Think DCPU arm gt ant DOS Linux DCPU arm gt ant DOS Unix 4 Compiler un des exemples a Pour une cible unix gt cd v2 test helloworld gt ant unix Si le messag
10. NomModuleM provides liste des interfaces fournies ex interface NomInterfaceFourniel uses liste des interfaces requises ex interface NomInterfaceRequisel implementation d clarations des variables ex ime fete p implementations des fonctions decrites par les interfaces fournies 15 Il est noter que tous les composants TinyOS doivent poss der l interface StdControl car celle ci est utilis e pour initialiser d marrer et arr ter les composants Enfin les configurations quant elles permettent de d crire les composants composites c est dire des composants compos s d autres composants c est dire de granularit sup rieure Une configuration permet donc de d crire l architecture Une configuration est donc constitu e de modules et ou d interfaces ainsi que de la description des liaisons entre ces composants configuration NomModule implementation liste des modules et configurations utilises ex components Main Modulel ModuleN Configl ConfigM descriptifs des liaisons Interface fournie lt Interface requise ou Interface requise gt interface fournie ex Main StdControl gt Modulel StdControl D taillons ici quelques caract ristiques concernant les configurations La premi re d entre elles concerne une simplification Lors du descriptif des liaisons il est en effet possible de ne pas pr ciser l inte
11. Rosa Carlos Ferraz 4 Message Oriented Middleware for Sensor Networks In proceedings of the 2nd Workshop on Middleware for Pervasive and Ad hoc Computing Toronto Ontario Canada October 18 22 2004 SH05 S verine Sentilles Natacha Hoang Exploration du mod le de composant Fractal Rapport de projet tutor Pau 2005 Th06 Think Home Page Last modified at 2006 03 31 http think objectweb org TOS04 TinyOS Mission Statement UC Berkeley 2004 http www tinyos net special mission 805 TinyOS nesC Overview In a Smart Dust Training Seminar CD San Jose February 9 10 2005 YB05 E Yoneki and J Bacon A Survey of Wireless Sensor Network Technologies Research Trends and Middleware s Role Technical Report UCAM CL TR646 University of Cambridge 2005 YKP04 Yang Yu Bhaskar Krishnamachari and Viktor K Prasanna ssues in designing middleware for wireless sensor networks In IEEE Network Vol 18 No 1 pp 15 21 2004 Wei96 Mark Weiser Ubiquitous Computing 03 17 96 http www ubig com hypertext weiser UbiHome html Wik06a Wikip dia Atmel AVR 2006 http en wikipedia org wiki Atmel AVR Wik06b Wikip dia ARM architecture 2006 http en wikipedia org wiki ARM architecture 45 Table des figures FIGURE 1 SCHEMATISATION D UN CAPTEUR TRADITIONNEL 4 FIGURE 2 SCHEMA D UN COMPOSANT D UN RESEAU DE CAPTEURS INSPIRE DE KDM
12. SYSTEME A RECONFIGURER P04 36 FIGURE 28 IMPLEMENTATION DES PROXIS D UN COMPOSANT POL04 37 FIGURE 29 LES ETATS DU 5 5 38 46 Annexes ANNEXE LES COMPOSANTS SYSTEMES FOURNIS POUR POWERPC DANS LA BIBLIOTHEQUE KORTEX 48 ANNEXE B MANUEL D INSTALLATION DE THINK V2 POUR UBUNTU sus 49 ANNEXE 52 ANNEXE D MANUEL D INSTALLATION ET D UTILISATION DE L EMULATEUR ARM SKYEYE VI POUR UBUNTU uu 55 ANNEXE E 56 60 47 Annexe A Les composants systemes fournis pour PowerPC dans la biblioth que Kortex MMU Page Allocator Sbrk Space SpaceFactory Trap Scheduler irg Trader Loader Starter PacketFactory ProtocolHigh framebuffer font console M moire mmu buddy dimalloc sbrkmap sbrk space flat pagetable spacefactory Processeur trap roundrobin priority cooperative IRQ Domaine page allocator sbrk spacefactory Scheduler irq loader starter R seau th packet factory ethernet iphigh udphigh tcphigh rpchigh arp tcp Graphique offb 8 16 console Contr leurs firmware uninorth grackle pmac font console openpic pmacpic pmu cuda 48 MMU POWERPC buddy system allocateur sbrk
13. composants de liaisons et de domaines Les paragraphes suivants explicitent ces diff rentes notions 11 3 2 1 1 Les composants Le mod le Think repose sur la notion de composant telle que d finie pr c demment c est dire qu il r alise les t ches pour lesquelles il a t construit et qu il les propose d autres via le biais d interfaces Think vise limiter les contraintes impos es au concepteur de syst me ainsi la granularit des composants n est pas impos e et de m me le mod le Think ne fait pas de supposition concernant le langage utilis pour programmer ces l ments Un langage de bas niveau tel que l assembleur ou le C peut tre employ aussi bien qu un langage de haut niveau comme le C ou Java Il est noter qu l heure actuelle seuls l assembleur et le C sont utilis s et que le C est en cours de d veloppement Enfin dans Think la notion de composant est utilis jusqu au plus bas niveau Autrement dit m me les l ments mat riels sont d finis sous forme de composants Cependant ceux ci ne fournissent que les fonctionnalit s propos es par le hardware afin de rester conforme avec la philosophie de Think qui est de n imposer aucune abstraction syst me Ces composants tant fortement li s au mat riel sous jacent les syst mes les utilisant ne seront donc portables que sur des machines strictement similaires 11 3 2 1 2 Les interfaces Le m canisme utilis pour d finir des interfaces con
14. conserver ce m canisme en l tat sur le capteur car il n cessite de stocker non seulement la description de l architecture mais galement les r gles autorisant la transformation de cette architecture Il est cependant possible de ne stocker que les r gles permettant les transformations En effet grace au mod le Fractal des moyens d introspection du composant ont t introduits via les contr leurs notamment le ContentController le BindingController et le Component Ceux ci permettent d obtenir la structure globale mais ce m canisme augmente l utilisation du processeur Le temps d tablissement de l architecture sera in vitablement fonction de la complexit architecturelle du capteur comme lorsque on est par exemple en pr sence de sous composants Nous pr conisons donc une d localisation de l ensemble du m canisme Un collecteur poss dant des contraintes moins s v res ou une station de base pourraient r aliser cette fonctionnalit Ainsi dans le cadre d une reconfiguration la station de base par exemple fonctionnerait de la mani re suivante 1 Localement elle poss de la description de l architecture du capteur ainsi que les r gles de reconfiguration applicable pour celui ci Ce qui lui permet a premi rement de tester si la reconfiguration est faisable b et deuxi mement d tablir la proc dure suivre pour modifier le capteur 2 Une fois la proc dure de reconfiguration tablie quelle s liaison s modifi
15. contraintes inh rentes aux r seaux de capteurs en nous aidant d une proposition g n rique d j r alis e pour Think et du syst me d exploitation d fini la section III Cependant cette proposition est incompl te il manque en effet une impl mentation ainsi que la mise en place de proc dures de tests La section suivante montre les difficult s li es l utilisation de Think dans la phase d impl mentation 40 V Les limites de Think pour impl menter le mod le propos L absence de composants pour AVR dans la biblioth que Kortex doit tre signal e comme la premi re limite l utilisation de Think dans le domaine des r seaux de capteurs Les microprocesseurs AVR sont en effet ceux utilis s sur la plupart des motes fournis avec TinyOS Or ces composants devant tre en accord avec le mat riel sous jacent il n cessite une impl mentation particuli re certains fichiers devant notamment tre crits en assembleur Cependant ces composants existent d j mais leur utilisation m me des fins de recherche est subordonn e un accord pr alable avec France T l com R amp D que nous n avons pas obtenu Il a n anmoins t possible de tester certaines possibilit s de Think mais uniquement pour les capteurs fournis par Intel c est dire les iMotes En effet ces derniers poss dent un microcontr leur ARM dont une partie des composants est fourni dans la version 3 de Think Malheureusement i s agit l d u
16. correspond l impl mentation de ce composant Enfin une pi ce peut demeurer seule sur le plateau c est l autonomie et tre finalement install par un autre amateur de puzzle composant interface contractuelle Figure 10 Illustration de la notion de composant Enfin un composant ne poss de pas une taille fixe Il peut repr senter un objet classique comme un composant contenant d autres composants contenant eux m mes d autres composants et ainsi de suite On parle alors de granularit arbitraire du composant 1 3 1 2 Les interfaces Afin que deux composants puissent collaborer i e s changer des donn es ou se demander mutuellement l ex cution d une t che il est n cessaire de les relier Pour cela on utilise les points d acc s aux composants les interfaces Une interface se pr sente sous la forme d une collection de d clarations d en t te de fonctions Elles d crivent donc de mani re exhaustive l ensemble des services que le composant est capable de rendre ou l ensemble de ceux qu il requiert pour fonctionner correctement Cette distinction est repr sent e en UML par la notation suivante 18 interface de service fournis interface de service requis Figure 11 Repr sentation UML des 2 types d interfaces existantes La connexion d une interface de service requis d un composant avec une interface de services fournis par un autre composant forme alors un canal de communication entre ces
17. deux composants Mais une telle iaison n est tablie qu condition que l interface de services fournis offre effectivement toutes les op rations pouvant tre appel es par l interface de services requis On peut galement parler de connexion par analogie avec le modele serveur Cela est mod lis en UML de la mani re suivante component O lt component gt 2 Composant client ___ Composant serveur v liaison Figure 12 Sch ma UML 2 0 d une liaison Ces assemblages peuvent tre r alis s au moyen d un ADL cf II 2 1 La section suivante d crit un mod le reprenant les concepts tablis par cette approche 11 3 2 Le mod le initial de Think Le mod le Think a t d velopp par Jean Philippe Fassino au cours de sa th se Fas01 Celle ci soutenue en 2001 propose un mod le permettant de repr senter la diversit des architectures des syst mes flexibles Il est en effet possible gr ce Think de mod liser aussi bien un syst me d exploitation r parti ou non qu un intergiciel Afin de couvrir cet espace de conception Think ne fait pas de choix d impl mentation et laisse aux concepteurs de syst mes le choix des compromis satisfaisants les contraintes des applications cibles Il vise ainsi la mod lisation uniforme des syst mes d exploitation et des infrastructures r parties 01 Ce mod le a t congu pour r pondre aux besoins de maintenance et d volutivit de ces
18. e s quel s composant s a enlever quel s composant s a ajouter etc la station de base v rifie si le ou les composant s ajouter sont d j pr sents sur le capteur a Si c est le cas elle transmet seulement au ReconfEngine la demande de reconfiguration avec la marche suivre b Sinon elle transmet en plus le nouveau composant ou bien si un capteur plus proche le poss de la localisation de celui ci afin d en obtenir une copie Il existe n anmoins deux inconv nients majeurs cette proposition Le premier concerne l augmentation des messages chang s sur le r seau En effet si l initiateur de la reconfiguration est par exemple un capteur la demande de reconfiguration doit tre transmise la station de base pour tre trait e puis la reconfiguration est transmise de la station de base au capteur concern et une fois celle ci r alis e le capteur doit informer la station de base que l op ration s est correctement d roul e Cet exemple met en vidence l augmentation des messages chang s sur le r seau Il faut au minimum trois messages alors que la solution de Polakovic n en n cessite qu un l initialisation de la reconfiguration Le deuxi me inconv nient concerne l aspect centralis du m canisme En effet intuitivement si la station de base tombe en panne il n est plus possible de reconfigurer le syst me Mais il ne s agit pas l de l exemple le plus handicapant Un probl me beaucoup plus g n
19. entre dans ce cadre Une tude KNEKLM04 a d ailleurs mis en vidence les difficult s inh rentes la mise en place de cette propri t sur des motes quip es avec TinyOS M me si une solution a t propos e celle ci s est r v l e lourde cause des m canismes employ s afin de pallier la nature statique du syst me et plus particuli rement l utilisation des composants interm diaires pour g rer les r affectations des liaisons Cette tude propose notamment d utiliser un systeme d exploitation moins contraignant et permettant l allocation dynamique D autre part lors de la g n ration de l image syst me la notion de composant disparait Ainsi si on consid re toujours la propri t de reconfiguration et si on admet sa faisabilit alors cela implique que si l on ne souhaite modifier l impl mentation que d un seul composant le protocole de communication par exemple il est alors impossible de ne remplacer que ce composant C est l image enti re du syst me pr sente sur le capteur qui doit tre r install e Cela met en vidence un autre probl me du mod le En effet dans les r seaux de capteurs les motes servent de n uds relais pour la propagation des donn es Or il est vident qu une image enti re du syst me poss de une taille sup rieure celle d une partie Ainsi si on admet encore l existence d un m canisme de reconfiguration pour un mote fonctionnant sous TinyOS cela implique de d couper cette image
20. gedit bash profile amp PATH opt IBMJava2 142 bin opt IBMJava2 142 jre bin JAVA_HOME opt IBMJava2 142 export JAVA_HOME export PATH 2 5 Installer ant a T l charger l archive apache ant 1 6 5 bin tar gz sur le site d apache b Passer en mode root gt su password c D compresser l archive dans le r pertoire opt tar zxvf apache ant 1 6 5 bin tar gz C opt d Modifier la variable d environnement PATH et ajout de la variable d environnement ad quate dans le bash profile de l utilisateur exit gt gedit bash profile amp PATH opt IBMJava2 142 bin opt IBMJava2 142 jre bin lopt apache ant 1 6 5 bin PATH ANT_HOME opt apache ant 1 6 5 export ANT HOME 2 6 Installer le compilateur crois pour arm Ceci est la partie la plus d licate car il faut trouver un compilateur compatible avec la machine de d veloppement capable de compiler en C et en assembleur et de faire des ditions de liens En cherchant cross 3 2 sur google nous en avons trouv un pour h te linux x86 et pour cible familiar arm Ce manuel d crit la proc dure suivie pour cette installation a D compresser l archive dans le r pertoire usr local gt tar zxvf cross 3 2 tar gz C b Modifier la variable d environnement PATH et ajout de la variable d environnement ad quate dans le bash profile de l utilisateur gt gedit bash profile amp CROSS COMP z usr local arm bin PATH CROSS COMP opt IBMJava2 142 bin opt IBMJava2
21. le monde des syst mes d exploitation Cela est rendu possible gr ce la nature du mod le Fractal qui se veut ouvert et extensible et qui est compos d une hi rarchie de mod le Le premier point qu il convient de mentionner est que tous les autres l ments du mod le initial Think sont conserv s l exception de la notion de domaine et de la mod lisation En effet le domaine disparait au profit du concept de contr leur et la mod lisation adopt e pour les diff rentes notions est celle utilis e dans Fractal En outre tous les contr leurs pr sents dans Fractal i e le LifeCycleController le BindingController le ContentController le Component et AttributeController ont t ins r s dans Think Fractal Les chargeurs dynamiques et de boot sont toutefois conserv s mais sous forme de contr leurs En r sum nous avons dans cette section d voil les caract ristiques des r seaux de capteurs sans fil en insistant notamment sur les contraintes des capteurs ainsi que sur les concepts inh rents TinyOS le syst me d exploitation de r f rence Nous avons galement d taill le mod le bas composant de Think et par cons quent pr sent le domaine de l ing nierie logicielle bas e composant ainsi que le mod le Fractal qui a int gr Think en tant qu impl mentation pour les syst mes embarqu s Cela nous as permis de d gager les concepts fondamentaux sur lesquels reposera l tude formul e dans la section suivan
22. m moire pagin e sbrk m moire plate m moire plate m moire pagin e usine espaces d adressage exceptions POWERPC 109 90 ordon pr emptif circulaire 396 ordon pr emptif a priorit s 415 ordon coop ratif 377 gestionnaire interruption 121 mini courtier chargeur dynamique chargeur application pilote carte mace pilote carte bmac pilote carte gmac pilote carte PCI tulip usine paquets protocole Ethernet protocole IP protocole UDP protocole TCP protocole RPC protocole ARP socket TCP socket UDP protocole NFS pilote carte vid o police de caract res console pilote firmware pilote PCI uninorth pilote PCI grackle pilote PCI bandit amp chaos pilote PIC openpic pilote PIC macio amp GC pilote ADB pmu pilote ADB cuda Annexe B Manuel d installation de Think v2 pour Ubuntu Pr requis N cessite d avoir cvs install Un environnement de d veloppement C avec gcc as ar ld e La librairie libc6 dev permet d avoir le fichier crt1 0 Logiciel a installer e Think v2 e JDK 1 42 e Ant 1 6 5 Uncompilateur crois pour arm Proc dure d installation 1 T l charger les sources Think de la mani re suivante Taper la commande suivante gt cvs z3 d pserver anonymous cvs forge objectweb org cvsroot think CO signifie que la version t l charg e sera install e dans le r pertoire courant 2 Installer l environnement de d veloppement 2 1 Installer le JDK 1
23. mod lisation de ces l ments poss de une convention particuli re Les interfaces clientes sont en effet plac es droite les interfaces serveurs gauche et les interfaces de contr le en haut sur la repr sentation d un composant comme le montre la Figure 19 interfaces de contr le interfaces clientes OU requises mettent des appels droite par corwention interfaces serveur ou fournies re oivent des appels gauche par convention Figure 19 Vue externe d un composant Bru03 Enfin il est noter qu afin de distinguer les diff rentes interfaces et savoir ce qu elles sont capables de faire toutes les interfaces d un composant doivent poss der un nom unique La section suivante r sume les l ments r sultant de l union des deux mod les pr c demment d crits savoir Think et Fractal Afin de lever toutes ambiguit s nous avons choisi de baptiser ce mod le Think Fractal Dans les sections III IV et I les r f rences au modele Think renvoient en r alit au mod le Think Fractal 25 11 3 4 Le mod le Think Fractal Le mod le Think pr sent en 2001 pr c de de quelques mois le lancement par l INRIA et France T l com R amp D du projet Fractal qui d bute lui en janvier 2002 Au d part les deux mod les sont d velopp s en parall le mais rapidement Think est int gr au sein de Fractal afin de fournir ce dernier une branche orient e vers le domaine de l embarqu et vers
24. ne sera pas permis afin de ne pas emp cher l ex cution des autres processus Ce choix est mod lis sur la Figure 21 au travers de l l ment File Quant l l ment Ressources galement pr sent sur cette Figure 21 il permet d all ger le mod le car il repr sente indiff remment plusieurs l ments du mod le de la Figure 20 En effet une ressource est un objet logiciel ou mat riel pouvant tre utilis par un programme Kra85 La Figure 22 sch matise cette d finition dans le cadre des capteurs FIFO abr viation couramment employ e pour First In First Out signifiant en francais Premier Arriv Premier Servi 30 Interface Ressource T Mat rielle Syst me UAL UC Thread Pilote de p riph riques M moire Bus Controleur de p riph rique P riph rique d E S Figure 22 Les ressources sur un capteur Il ne reste maintenant plus qu d terminer le type de noyau du syst me d exploitation s adaptant le mieux notre domaine d tude De facon vidente un noyau monolithique est trop volumineux pour pouvoir tre utilis sur des capteurs Un exonoyau semble bien adapt car ainsi l application aura directement acc s aux composants mat riels dont elle aura besoin Nous avons d crit les diff rents l ments de base constituant notre mod le ainsi que le type de noyau
25. pi ce de deux euros Tous ces facteurs permettent d envisager le d ploiement d un nombre beaucoup plus cons quent de senseurs savoir des centaines voire des milliers Cela permet de cr er un r seau beaucoup plus dense la fiabilit de chaque noeud n est plus primordiale En effet en imaginant un d ploiement al atoire plusieurs noeuds pourraient se retrouver au m me endroit et couvrir la m me r gion Ce qui permettrait un n ud d faillant d tre remplac par un autre La troisi me diff renciation se produit au niveau de la source d nergie En effet dans le cas des motes il s agit d une alimentation embarqu e contrairement aux pr c dents la source d nergie pouvait tre fournie par une source ext rieure Cela repr sente une contrainte importante pour la dur e de vie des capteurs car la capacit des batteries est limit e et que de plus il n est pas toujours possible de les remplacer lorsqu elles sont d charg es Cela se con oit facilement si l on envisage un tr s grand nombre de capteurs et ou un environnement hostile de d ploiement Enfin toute op ration effectu e par les motes consomme de l nergie entrainant ainsi une d charge plus ou moins importante des batteries Parmi les op rations n cessitant norm ment d nergie nous pouvons citer toutes celles impliquant l metteur r cepteur afin d mettre des donn es CES04 Bien qu il existe des batteries rechargeables par nergie solair
26. pose donc un deuxi me probl me comment faire coexister l aspect venementiel avec l aspect fonctionnel des composants appels de fonctions notamment Une premi re approche pourrait tre de g n rer un mod le d ex cution compl tement venementiel c est dire que tous les changes du syst me se feraient d sormais sous forme d v nements et non plus d appel de fonctions Un inconv nient de cette m thode est qu il faut d terminer le chemin suivi par les v nements c est dire qu il faut d terminer quel est le composant qui g n re un v nement et quels sont ceux qui le traitent Par cons quent une modification du syst me peut se r v ler compliqu e 32 Une deuxi me approche pourrait tre d utiliser le concept des MessageDrivenBean existant en EJB et de les appliquer aux v nements Ainsi tous les composants susceptibles de signaler un v nement publient un message dans la file d attente des v nements Le composant g rant l ordonnancement s inscrit comme abonn s de cette file Les messages pr sents dans la file d v nements sont prioritaires sur les t ches pr sentes dans l ordonnanceur Ainsi lorsqu un v nement se produit il est plac dans la file d attente des venements l ordonnanceur en extrait la fonction associ e et la d clenche Tous les appels de fonctions concernant cet v nement seront dans la file d attente de l ordonnanceur lt lt hardware comp onent gt gt Proce
27. pouvant correspondre au domaine des r seaux de capteurs Il ne nous reste plus qu d terminer la mani re dont ces diff rents l ments interagiront entre eux Un mod le bas composant repose classiquement sur le mod le client serveur En effet une interface cliente demande l ex cution d une requ te i e d une fonction sur une interface serveur d un autre composant mais un mod le de communication par message peut galement tre utilis Think n impose rien concernant la nature des communications Or la nature des r seaux de capteurs est fortement bas e v nement du fait premi rement des fortes contraintes existantes et deuxi mement du lien tr s troit entre le capteur et son environnement proche Ce sera en effet souvent le capteur qui sera l origine de la d tection d un ph nom ne et qui en avertira le syst me Ce ph nom ne peut tre mis en vidence en tudiant les diff rents tats que peut prendre un capteur Ceux ci sont au nombre de quatre l tat Init qui lui permet de s initialiser l tat Activit qui se produit lorsqu il r alise une t che l tat Idle qui lui permet d conomiser de l nergie en se mettant en attente d v nement et l tat Sleep qui permet d arr ter tous les composants Dans le diagramme d tats suivants l tat Idle correspond aux tats AttenteEvt AttenteVoisinage et l tat Sleep n est pas repr sent Comme on peut le constater sur le sch ma Figure 23 un v nement
28. sur la machine de cible la fonction printf pour arm ne fonctionne pas correctement e Boot et Static sont les deux contr leurs de la version initiale Cependant la pr sence de Boot est indispensable pour charger l ex cutable e Pour que la compilation s ex cute correctement nous avons r cup r le fichier le fichier hw sa 1ds pr sent dans le r pertoire example helloworld arm Celui ci d finit les sections m moires utilis es lors de l dition de liens Voici comment il se pr sente tn ECTIONS 0xC0008000 erexit sf Let Start cia mkonn cerite i crodata s rodetam gmu limkemee gllue_7 21 716 ata 8 0262 onu linkomes cl of 4096 kernelstackend 4096 trapstackend __ 10955 SErart of doss s f dess _ losis endl ap heapstart nel of 58 Version 2 Modification du composant affichage pour afficher des entiers a l cran Test de l h ritage entre interfaces video api interface Console putc In c char putcs In str string putxycs In x integer In y integer s string scrollup cols integer rows integer api lt lt interface gt gt Monlnterface putint In 1 integer putfloat In f real R alisation Cr ation d
29. un fichier api MonAffichage idl contenant la d claration des fonctions putint et putfloat Modification des fichiers ad quats ClientType Server Type pour d finir MonAffichage comme l interface fournie et requise dans affichage adl e Modification du fichier temperatureGen c pour modifier les liens vers les interfaces notamment modification des en t tes des librairies et du pointeur vers l interface import e e Modification du fichier affichage c pour Modifier l en t te D finir les fonctions rajout es Modifier la structure MonInterface Conclusion e Au niveau des interfaces Bien que la possibilit de pouvoir faire de l h ritage entre interface soit indiqu e dans le tutoriel de think version 3 cette fonctionnalit n est pas encore impl ment e En effet seules les fonctions d clar es dans l interface fille sont connues Pour pallier ce probl me nous avons d red clarer toutes les fonctions contenues dans l interface dans l interface fille e Au niveau de la fonction printf A l heure o nous r digeons ce rapport le f g n re toujours une erreur Nous pensons que ce probl me provient d une mauvaise installation du compilateur crois pour arm En effet les messages obtenus la compilation nous indique un conflit entre l utilisation de r els programm s en hardware et l utilisation de r els programm s en software Il semble tre n cessaire de r aliser l installation en sp cif
30. 4 Pour des raisons de compatibilit s avec un autre logiciel installer sur notre machine de d veloppement nous avons choisi d installer le JDK fournit par IBM et non celui fournit par SUN Normalement la d marche pour installer celui de SUN est similaire a T l charger l archive IBMJava2 SDK 142 tgz sur le site d IBM N cessite la cr ation d un compte b Passer en mode root gt su password c D compresser l archive dans le r pertoire opt gt tar zxvf IBMJava2 SDK 142 tgz C opt d Suppression du java pr xistant install par l Ubuntu par d faut gt mv usr bin java usr bin java initial e Modifier la variable d environnement PATH et ajout des variables d environnement ad quates dans le bash profile de l utilisateur exit gt gedit bash profile amp PATH opt IBMJava2 142 bin opt IBMJava2 142 jre bin JAVA HOME opt IBMJava2 142 export JAVA HOME export PATH 2 2 Installer ant 49 a T l charger l archive apache ant 1 6 5 bin tar gz sur le site d apache b Passer en mode root gt su password c D compresser l archive dans le r pertoire opt gt tar zxvf apache ant 1 6 5 bin tar gz C opt d Modifier la variable d environnement PATH et ajout de la variable d environnement ad quate dans le bash profile de l utilisateur exit gt gedit bash profile amp PATH opt IBMJava2 142 bin opt IBMJava2 142 jre bin lopt apache ant 1 6 5 bin PATH ANT_HOME opt apache ant 1
31. DM05 En outre ces appareils peuvent tre galement appel s capteurs intelligents tel que la norme pr sent e dans IEEE 1451 Expo2001 les d finis En effet celle ci standardise leurs caract ristiques savoir la d finition des interfaces pour qu ils puissent se connecter des r seaux divers les fonctionnalit s additionnelles qu ils doivent poss der en plus de celles n cessaires une repr sentation correcte du ph nom ne quantifi etc Parmi ces fonctions nous pouvons citer la facilit d installation l auto identification l auto diagnostic la fiabilit le temps d veil pour la coordination avec d autres n uds quelques fonctions logicielles le traitement du signal des protocoles de contr les standards et des interfaces r seaux IEEE 1451 Expo2001 De plus les motes tout comme cette norme visent les m mes objectifs savoir rapprocher l intelligence du point de mesure et minimiser leur co t d int gration ou de maintenance dans des r seaux distribu s Lew04 Enfin cette norme d finit galement le terme de capteur virtuel car sa principale caract ristique est d tre ind pendant du r seau dans lequel il se trouve Pour r aliser cette condition le capteur n est en r alit constitu que par l l ment de d tection mesure le conditionneur de signaux le convertiseur analogique num rique et le processeur du signal num rique que l on peut sch matiser comme la Figure 3 qui est une modif
32. LCBO3 L atomicit est impl ment e en d sactivant ou r activant les interruptions Enfin le syst me permet galement au programmeur de signifier qu une situation probable de comp tition ne se produira pas cela est r alis en sp cifiant le code correspondant comme norace 7 en anglais race conditions 16 2 3 La compilation La premi re tape de ce processus consiste compiler les fichiers n cessaires l application et au syst me d exploitation Celle ci est r alis e via le compilateur nesC fourni par TinyOS Son r le est premi rement de transformer les fichiers nesC en fichier C et deuxi mement d y int grer les fichiers du noyau de TinyOS Ce qui permet d obtenir un fichier source C unique Une fois cette tape accomplie il ne reste alors qu utiliser un compilateur C traditionnel qui va utiliser le fichier pr c demment cr afin de g n rer une application ex cutable Celle ci sera donc constitu e par la fusion syst me d exploitation et du code applicatif Ces diff rentes phases peuvent tre synth tis es comme pr sent la Figure 9 TinyOS Ker nel C TinyOS Libs nesC Application nesC Application amp TinyOS Application Executable Figure 9 Les tapes de la compilation d une application TinyOS Mau L int gration du syst me d exploitation TinyOS dont le c ur n occupe que 386 octets dans l application est une premi re optimi
33. O5 6 FIGURE 3 MODELE DE CAPTEUR VIRTUEL INSPIRE DE LEWO4 7 FIGURE 4 SCHEMATISATION D UN RESEAU DE CAPTEURS 5 85 7 FIGURE 5 SCHEMATISATION D UN COMPOSANT TINYOS HS WHCP00B 12 FIGURE 6 GRAPHE COMPOSANTS D UNE APPLICATION VISANT AU ROUTAGE DES RELEVES DES CAPTEURS HS WHCPO0A 13 FIGURE 7 MODELISATION DE L UTILISATION DE LA MEMOIRE D UN MOTE TOS05 13 FIGURE 8 MODELISATION DE L ORDONNANCEUR TINYOS 11005 14 FIGURE 9 LES ETAPES DE LA COMPILATION D UNE APPLICATION TINYOS MAU 17 FIGURE 10 ILLUSTRATION DE LA NOTION DE COMPOSANT 18 FIGURE 11 REPRESENTATION UML DES 2 TYPES D INTERFACES EXISTANTES 19 FIGURE 12 SCHEMA UML 2 0 D UNE LIAISON 19 FIGURE 13 REPRESENTATION D UNE INTERFACE L EXECUTION FSLM02 21 FIGURE 14 REPRESENTATION DE L INTERFACE UNIQUE D UN COMPOSANT FSLM02
34. OS est construit autour des diff rents concepts d crits ci dessous Le premier repose sur l utilisation de composants Ceux ci sont constitu s d une frame de t ches et d interfaces La frame contient l tat interne du composant Il s agit d un espace m moire r serv de taille fixe permettant au composant de stocker les variables globales et les donn es qu il utilise pour r aliser ses fonctionnalit s Il n en existe qu une seule par composant et celle ci est allou e statiquement la compilation Les t ches quant elles contiennent l impl mentation des fonctions m tiers d compos es en deux cat gories les commandes et les v nements Enfin les interfaces repr sentent le descriptif de ces fonctions Un composant TinyOS peut donc tre mod lis tel que sur la Figure 5 les triangles repr sentent les gestionnaires d v nements les triangles invers s le point d acc s des commandes les fl ches pointill es les v nements signal s et les fl ches pleines les commandes transmises 1 Internal State 7 7 N Commands Events Figure 5 Sch matisation d un composant TinyOS HSWHCP00b Ces composants s inscrivent dans le cadre de l utilisation d une architecture bas e composant qui se r v le sp cifique par l impl mentation propos e par nesC Gr ce celle ci il est possible de cr er une application par assemblage des seuls l ments strictement n cessaires t
35. SLM02 Enfin dans tous les autres cas le descripteur devient une table de description dont la deuxi me ligne nomm e data contient un pointeur vers les donn es comme cela est pr sent sur la Figure 15 interface interface interface reference descriptor methods Figure 15 Repr sentation d une interface dans le cas g n ral FSLM02 11 3 2 1 3 Les liaisons Le mod le Think s appuie sur la notion de liaison flexible qui permet de mod liser de facon uniforme l ensemble des interactions entre les diff rents composants du syst me Fas01 Derri re ce concept diff rents types de liaison peuvent ainsi tre envisag s et cr s dynamiquement comme par exemple la s rialisation qui permet l change d objets binaires ou l interposition qui correspond un d tournement de liaison permettant entre autre de comptabiliser les appels mis via cette liaison La cr ation des liaisons est r alis e gr ce un composant usine particulier appel usines liaisons 21 Cependant les liaisons ne relient pas forc ment des composants pr sents physiquement sur une m me machine Ils peuvent en effet tre distants Les appels de services sont alors transmis par des travers un r seau tel que Ethernet par exemple Il s agit ici d un point sur lequel il convient de s attarder En effet une des caract ristiques des r seaux de capteurs sans fil est de ne justement pas poss der de r seaux c bl s Ainsi tous le
36. Universit de Pau et des Pays de l Adour Master Technologies de l Internet UFR Sciences et Techniques 24 ann e D partement informatique DE PAU ET DES PAYS DE L ADOUR Rapport de stage recherche Architecture logicielle pour capteurs sans fil en r seau Par S verine Sentilles Encadrants Nicolas Belloir Janvier juin 2006 CongDuc Pham Table des mati res I 1 II Etat de 3 ILI Les r seaux de capteurS 3 1I 1 1 Les capteurs traditionnels 23s 1 2 Les capteurs dans les Wireless Sensor Networks 1 3 La mise en r seau T 1 4 Les diff rentes utilisations des r seaux WSNs 8 1 5 Les caract ristiques des r seaux de capteurs sans fil 8 1 6 Les challenges Les besoins 10 2 TinyOS et sa distribution
37. a reconfiguration est r alisable ou non ainsi que la succession des tapes suivre pour la substitution d un composant par un autre Ces deux fonctionnalit s sont impl ment es via un outil qui contiendra donc une repr sentation de l architecture ainsi que la marche suivre pour la reconfiguration Il s agit en r alit d un nouveau contr leur appel ReconfEngine qui est reli aux contr leurs Fractal d j existant La Figure 27 pr sente les liens entre le ReconfEngine et les autres contr leurs du syst me Le syst me reconfigurer peut ainsi tre soit un composant primitif soit un composant composite ou soit une application 35 ReconfEngine configuration af l lt u v gt lt gt reconfigurable THINK kerne Figure 27 Liaison entre le contr leur de reconfiguration et le syst me reconfigurer P04 En cons quence pour impl menter ce nouveau contr leur une nouvelle interface a t d finie Celle ci d crit trois m thodes une m thode request permettant l initiateur de la reconfiguration de soumettre une nouvelle description de la configuration du syst me une m thode resume pour viter de rester bloquer lors de l attente d un tat stable et une methode cance1 pour annuler une reconfiguration et revenir dans la configuration initiale Cela implique donc que le contr leur de reconfiguration stocke la configuration courante du systeme On obtient alors la
38. a station de base par exemple En retour celle ci peut demander l ex cution d une tache particuli re un capteur donn Ces r seaux sont utilis s dans des domaines divers n cessitant l acquisition d informations concernant l environnement Le paragraphe suivant d crit les diff rentes utilisations possibles d un WSN II 1 4 Les diff rentes utilisations des r seaux WSNs Comme beaucoup de technologie le d veloppement des WSNs a t suscit par des besoins militaires En effet les arm es souhaitent tre en mesure d espionner discr tement leurs ennemis L absence de c bles entre les noeuds leur faible taille le nombre lev de motes d ployables pour couvrir une zone tendue r pondent ces crit res Ainsi plusieurs applications ont t r alis es dont le SOund SUrveillance System ou le Distributed Sensor Network KDM05 Puis la diminution des co ts fabrication des capteurs ainsi que la r duction de leur taille a entrain une utilisation dans des applications civiles Ils peuvent par exemple tre utilis s des fins de surveillance environnementale En effet des capteurs peuvent tre plac s dans des r gions glaciaires ou tropicales afin de suivre de mani re pr cise les effets du r chauffement de la plan te les changements climatiques ou l augmentation de la pollution KDMO05 Ils peuvent galement tre employ s pour une surveillance de l habitat car leur d ploiement par exemple en montagne
39. ainsi d envisager des m canismes avanc s telle que notamment la reconfiguration dynamique Pour m moire le syst me fonctionne de la mani re telle que mod lis e sur la Figure 29 1 Initialisation du syst me 2 Attente d v nement 3 L arriv e d un v nement provoque une activit Le syst me se maintient n anmoins en attente d v nement 4 Le syst me peut tre arr t par une intervention de l utilisateur et si l utilisateur le r active il reprend dans l tat o il s tait arr t e Init En Marche Attente EvenementRe u FinActivit InterruptionUtilisateur Arr t TS 7 H Activit RepriseUtilisateur Figure 29 Les tats du syst me En nous appuyant sur ce mod le v nementiel on s apergoit rapidement que la recherche d un tat stable est une op ration inutile voire co teuse En effet dans notre syst me un instant donn une seule t che est en cours d ex cution Cela implique que lorsque cette derni re se termine le syst me est stable et apr s soit il ex cute la prochaine t che pr sente dans l ordonnanceur soit il se remet en attente d v nement De plus si on consid re la reconfiguration comme un v nement il est possible de lui attribuer une priorit lev e par rapport aux autres t ches et ainsi permettre que la prochaine t che s lectionn e par l ordonnanceur soit la reconfiguration La suppression de l tat stable est en outre rendue possible par le mode
40. alement possible d utiliser des m moires additionnelles de type Flash ou Eprom par exemple Un autre type de m moire suppl mentaire pourrait bient t tre envisag il s agit de la Magnetoresistive Random Access Memory ou MRAM En effet celle ci est en cours de d veloppement mais ses atouts pour une utilisation dans les r seaux de capteurs pourraient tre multiples car elle est tr s rapide l criture et la lecture non volatile elle consomme peu d nergie peut tre effac e et r crite un nombre de fois illimit ce qui lui donne une esp rance de vie aussi longue que celle de l appareil qu elle quipe son co t de fabrication est faible et elle ne subit pas les influences des radiations Mai06 La Figure 2 pr sente les diff rents changements qui ont t apport s aux capteurs utilis s traditionnellement et que nous venons de d crire Celle ci est mettre en parall le avec la Figure 1 pr c dente Sens de parcours des mesures signaux entre les l ments RR Traitement des donn es Conditionneur Processeur Ed Emetteur de signaux E r cepteur 1 p 1 y EE M moire Alimentation lectrique autonome L gende Alimentation Communication Acquisition Traitement du signal El ment de d tection mesure Alimente El ments obligatoires Figure 2 Sch ma d un composant d un r seau de capteurs inspir K
41. ant apparait si par exemple un message de validation de reconfiguration se perd La station de base peut alors consid rer que la reconfiguration a chou et alors soit elle consid re le capteur comme d truit soit elle consid re qu il est revenu dans sa configuration initiale alors que ce dernier a bien t modifi Ce cas peut effectivement se produire car la fiabilit des changes n est pas une condition impos e dans les r seaux de capteurs Il conviendra donc d valuer cette proposition et le taux de pertes de messages dans les r seaux de capteurs trois moments cl s au d but de la vie du r seau en milieu et en fin de vie De plus le m canisme de test propos par Polakovic n ayant pas vraiment t r alis une impl mentation de ce m canisme devra tre faite afin de premi rement d terminer 39 l espace m moire occup par celui ci deuxi mement valuer l espace m moire et le taux d occupation du processeur si on supprime la description de l architecture locale et troisi mement effectuer une comparaison avec le m canisme d localis Cela permettra ainsi de d terminer s il vaut mieux sacrifier de l espace m moire ou le trafic dans le r seau Pour en terminer avec cette proposition nous pr sentons ici le sc nario d utilisation envisag e lors d une reconfiguration dynamique Nous d taillons ici uniquement les tapes concernant le seul capteur reconfigurer les tapes pour l initiateur ayant t
42. ant au niveau syst me qu au niveau applicatif A cette fin TinyOS fournit une r serve de composants syst mes utilisables au besoin Parmi les plus fr quents nous pouvons citer ceux concernant les entr e sorties les timers les protocoles communications etc Ceux ci couvrent aussi bien les parties hardware que software d un capteur Il ne reste alors au concepteur qu cr er ses propres composants c est dire ceux r pondant aux fonctionnalit s m tiers de l application cible et les lier avec ceux fournis par TinyOS Cet assemblage est r alis ind pendamment de l impl mentation TinyOS utilise pour cela un Langage de Description d Architecture ou ADL afin de d finir quels sont les composants impliqu s dans la cr ation de l application ainsi que la mani re dont ils sont reli s Cette liaison entre composants repose sur la notion d interface Une interface contient le descriptif des t ches que le composant est capable de rendre ou celles dont il a besoin pour fonctionner correctement On parle alors respectivement d interfaces de services fournis et d interfaces de services requis Un ADL permet ainsi de sch matiser une vue globale de l application de la m me mani re qu un plan d architecte mod lise une maison en d crivant les diff rentes pi ces de celle ci et la mani re dont elles sont dispos es et communiquent entre elles portes couloirs etc En continuant l analogie les pi ces repr sentent les composant
43. ations poss dant des interfaces communes e Adaptatif pour reconfigurer sa structure e R flectif pour changer de comportement en fonction de l environnement et des circonstances e L ger De plus des m canismes configurables en fonction des besoins de l application devront tre propos s Il devra galement exister des m canismes autorisant l acc s aux donn es d tect es partir d application ext rieures au r seau ainsi que des communications bas es v nement et centr es sur les donn es Nous avons pr sent ici le contexte g n ral les sp cificit s et les contraintes du domaine dans lequel s inscrit ce travail nous allons dans la section suivante nous int resser aux caract ristiques de TinyOS le syst me d exploitation de r f rence install sur les capteurs 10 2 TinyOS et sa distribution TinyOS TOS04 est un syst me d exploitation open source sp cialement con u pour les applications embarqu es fonctionnant en r seaux et en particulier pour les r seaux de capteurs sans fil Initialement d velopp au sein de l universit de Berkeley en Californie TinyOS est devenu le standard de facto En effet celui ci est install sur tous les motes disponibles actuellement et de nombreux groupes de recherche ainsi que des industriels s en servent afin de d velopper et tester des protocoles diff rents algorithmes des sc narios de d ploiement TOS04 Cette popularit est li e au fait qu
44. bjectWeb Il s agit d une norme d finissant non seulement les divers l ments abstraits constituant le mod le mais galement la mani re dont ils peuvent tre assembl s et interagiront entre eux Il vise notamment la cr ation de syst mes et de middleware en s appuyant sur les concepts de l ing nierie logicielle bas e composant notamment les composants les interfaces les liaisons etc http www objectweb org 22 Ce mod le est aussi fortement orient vers la modularit et l adaptabilit aux besoins sp cifiques qui peuvent apparaitre dans le d veloppement d applications orient es composant En effet il n impose aucun langage de programmation particulier pour cr er d ployer et maintenir des applications Ce mod le peut galement tre facilement tendu et s adapter pour int grer d autres mod les de composant tels qu EJB CCM OSGI De plus le mod le de composant Fractal s appuie sur le principe de la s paration des aspects La s paration des aspects consiste dissocier les diff rentes fonctionnalit s ou aspects d une application en diff rents petits programmes ind pendants les uns des autres En particulier le mod le de composant Fractal utilise trois aspects la s paration de la conception et de l impl mentation la programmation orient e composant l inversion du contr le c est dire que les composants Fractal utilisent une entit externe et s par e afin d assurer la conf
45. c dure d installation 5 T l charger les sources Think de la mani re suivante a b Passer en mode root gt su password Taper la commande suivante gt svn checkout svn svn forge objectweb org svnroot think v3 v3 repr sente le r pertoire dans lequel seront t l charg es les sources Changer les droits d utilisation gt chown nomUtilisateur v3 R Ajouter les variables d environnement THINKOWPATH et THINKPATH dans le bash profile de l utilisateur gt gedit bash profile amp THINKPATH v3 trunk THINKOWPATH v3 trunk export THINKPATH export THINKOWPATH 6 Installer l environnement de d veloppement 2 4 Installer le JDK 1 4 Pour des raisons de compatibilit s avec un autre logiciel a install sur notre machine de d veloppement nous avons choisi d installer le JDK fournit par et non celui fournit par SUN Normalement la d marche pour installer celui de SUN est similaire a T l charger l archive IBMJava2 SDK 142 tgz sur le site d IBM N cessite la cr ation d un compte b Passer en mode root gt su password c D compresser l archive dans le r pertoire opt gt tar zxvf IBMJava2 SDK 142 tgz C opt d Suppression du java pr xistant install par l Ubuntu par d faut gt mv usr bin java usr bin java initial 52 e Modifier la variable d environnement PATH et ajout des variables d environnement ad quates dans le bash profile de l utisateur exit gt
46. ception d un syst me d exploitation reconfigurable dynamiquement pour les r seaux de capteurs ainsi qu un m canisme de reconfiguration pour ce syst me d exploitation La difficult majeure laquelle nous avons t confront s lors de ce travail r side dans l installation et la configuration de Think En effet l installation d un compilateur crois est premi rement une op ration non triviale et deuxi mement la cr ation de la chaine de construction de Think n cessite de modifier diff rents fichiers dont les trois fichiers de configuration et les outils de construction programm s en Java Cette modification est n cessaire afin de rendre cette chaine de construction fonctionnelle sur la machine de d veloppement Une autre difficult majeure a consist devoir travailler sur une version en cours de d veloppement et donc n cessitant de nombreux d buggages afin de pouvoir compiler m me les exemples fournis La gestion des contraintes propres aux capteurs la compr hension du fonctionnement des mod les TinyOS et Think ainsi que le manque de documentation existante sur Think notamment pour ce qui concerne la partie technique ont galement pr sent quelques difficult s Une mod lisation du syst me d exploitation reconfigurable et des m canismes de reconfiguration ayant t propos s une perspective essentielle ce travail serait de r aliser les impl mentations correspondantes Une fois celles ci concr tis es de
47. dans cette cat gorie Chaque type de p riph riques d entr es sorties poss de son propre contr leur appel contr leur de p riph riques Ce dernier est en charge de ces p riph riques et les commande Cela permet de les rendre autonomes Le processeur est inform de la fin d une op ration d entr e sortie par l interruption g n r e par le contr leur Enfin la m moire quant elle permet de stocker les donn es et les instructions n cessaires l ex cution du programme Le processeur tout comme les contr leurs de p riph riques y ont acc s P http www atmel com 29 Dans Think tous les l ments mat riels sont directement r ifi s en composants Ces derniers fournissent exactement les m mes fonctionnalit s que le mat riel sous jacent aucune abstraction suppl mentaire n est envisag e Cela revient remplacer les st r otypes hardware composant de la Figure 20 par software composant Ce diagramme n est donc pas pr sent ici Il faut maintenant d terminer la mani re dont le syst me d exploitation utilise ces composants pour r aliser les fonctionnalit s de l application Ainsi dans un syst me classique les diff rentes fonctionnalit s sont repr sent es par des processus appel s threads qui sont allou s au processeur par un ordonnanceur Ces threads utilisent des ressources Cela peut se mod liser de la mani re suivante lt lt hardware component gt gt Process
48. de fonctionnement des capteurs En effet 1l est pr conis que le capteur ex cute sa t che le plus rapidement possible et se remette en attente afin d conomiser la consommation des ressources Ainsi un capteur doit passer le plus clair de son temps en attente En outre une contrainte de notre mod le est d interdire les fonctions bloquantes On peut donc consid rer que si l v nement reconfiguration survient pendant l ex cution d une t che celle ci mettra un temps relativement court pour se terminer et la reconfiguration pourra avoir lieu Le co t de l attente de fin d activit devra faire l objet d une tude o il devra tre compar au co t de la recherche d un tat stable pour chaque composant Des l ments peuvent n anmoins tre apport s pour prouver l int r t de cette solution Premi rement les techniques de by pass qui constituent une des optimisations utilis es par Think peuvent tre conserv es Deuxi mement il n est plus n cessaire d interposer des proxis pour comptabiliser les appels entrants et sortants d un composant et l extension du LifeCycleController peut galement tre supprim e Cela permet ainsi d conomiser de l espace m moire par rapport la solution envisag e par Polakovic SN La deuxi me modification que nous pouvons envisager concerne les tests d terminant si la reconfiguration peut tre r alis e Compte tenu du faible espace m moire disponible il ne nous parait pas indiqu de
49. description d interface suivante interface Reconfiguration int request string description void resume imi Cancel p En outre le contr leur LifeCycleController de Fractal a t tendu avec deux nouvelles m thodes une premi re m thode suspend dont l objectif est de placer le composant dans un tat stable et si besoin est ses sous composants La deuxi me m thode resume qui consiste annuler la reconfiguration en cours et relancer l activit normale du composant et ventuellement de ses sous composants Ainsi le m canisme propos fonctionne de la mani re suivante Un initiateur demande une reconfiguration en appelant la fonction request du ReconfEngine en passant la nouvelle configuration comme argument Le Recon Engine v rifie ensuite si la reconfiguration peut tre r alis e Dans le cas contraire il la rejette et s arr te A cette tape les composants et les liaisons l 2 devant tre reconfigur s sont connus Le ReconfEngine se lie alors aux interfaces de contr le des composants reconfigurer c est dire le LifeCycleController le Con BindingController tentController Puis pour chaque composant reconfigurer le RequestEngine demande l obtention d un tat stable en appelant la m thode suspend LifeCycleController Quand l tat stable est atteint le LifeCycleControl ReconfEngine en utilisant la fonction resume de l extension
50. du syst me en de nombreux paquets pour la transmettre au capteur cibl Cela engendre premi rement une augmentation du trafic sur le r seau et deuxi mement une utilisation accrue du module de communication de chacun des n uds relais qui vont transmettre l image d un mote l autre jusqu au capteur de destination Par cons quent chacun des n uds impliqu s dans ce processus de transfert consomme davantage d nergie Or il s agit l d une ressource limit e 27 Par ailleurs TinyOS ne fournit aucun m canisme de protection m moire Cela implique que le syst me est particuli rement vuln rable aux crashs et corruptions de la m moire En conclusion le mod le TinyOS tel que propos actuellement ne permet pas de r pondre aux besoins futurs des applications utilisant les r seaux de capteurs En effet les besoins de services avanc s tels que la reconfiguration dynamique ou le d ploiement de nouveaux services sont d sormais reconnus comme un besoin important dans les applications du futur Les nombreux travaux portant sur l autonomic computing KC03 en sont la preuve Nous allons donc tudier la possibilit d utiliser une approche base de composants pour le d veloppement des applications utilisant des r seaux de capteurs La plate forme logicielle Think Fractal propos e par l INRIA et France T l com R amp D servira de base cette tude car premi rement elle a t d velopp e pour r pondre aux contraintes des sys
51. e globale de l application Celle ci est constitu e des composants boot main et printf Le composant boot est impl ment par le composant arm sal100 boot lib boot le composant main par temperatureSensor et printf par log lib putcprint Cela est mis en vidence par le mot cl contains De plus main poss de un sous composant console qui est r impl ment par le composant affichage Cela est mis en vidence par overloads Enfin le contr leur est indiqu par le mot cl controller composite tpkernel implements RootType contains boot arm sall00 boot lib boot contains main temperatureSensor overloads main console affichage overloads main console ipaq h3600 video lib screen this must be remove when printf will be manage well Jogo imc controller org objectweb think controller Boot 56 Voici le fichier d un composant composite temperatureSensor adl Comme peut le constater sur cette description grace aux mots cl s binds et to l interface main requise par ce composant est li e l interface fournie par le composant tp composite temperatureSensor implements RootType contains console ServerTyp contains tp temperatureGen binds this main to tp main binds tp console to console console controller org objectweb think controller Static Enfin voici la description d un composant primitif temperatureGen adl Celui ci fournit e
52. e par vibrations etc et des politiques de gestion de l nergie celles ci ne suffisent pas elles seules permettre une utilisation prolong e des senseurs L conomie d nergie reste par cons quent un des points cruciaux dont il faut tenir compte lorsqu on parle de WSN La derni re diff rence se situe entre la phase d acquisition des donn es et la phase de communication En effet le principal avantage d un mote est de disposer en plus d une unit de traitement permettant non seulement de rapprocher le traitement des donn es de leur lieu de d tection mais galement de les agr ger Cela s int gre dans le cadre des politiques d conomie d nergie essentielles aux WSNs En effet cela permet de diminuer la taille des messages transmettre aux autres l ments du r seau et ainsi de diminuer le temps d utilisation de l metteur r cepteur qui pour rappel est l l ment consommant le plus d nergie dans les motes Pour pouvoir r aliser cette tache le capteur doit donc disposer galement d une unit de stockage n cessaire l implantation et l ex cution d un programme logiciel Celle ci est g n ralement de moins de 10ko de RAM et de moins de En anglais transceiver 5 A Autre terme pour d signer un capteur 100ko de ROM CES04 et est donc de tr s faible capacit par rapport ce que nous pouvons trouver sur les ordinateurs personnels actuels Afin d augmenter la taille de la m moire disponible il est g
53. e E Cependant la cr ation r cente d un espace de documentation pr sage de la volont des concepteurs de Think d am liorer le contenu de leur documentation Enfin la proc dure d installation est galement une limitation l utilisation de Think car il convient en premier lieu de connaitre le processeur cible En effet l installation d un compilateur crois est requis et cela se r v le tre une t che particuli rement ardue En effet un compilateur crois est utilis lorsqu on poss de une machine de d veloppement et que l application d velopp e sur cette machine sera en r alit install e et ex cut e sur une autre qui ne poss de pas forc ment les m mes caract ristiques Ainsi dans notre cas la machine de d veloppement tait une machine 1686 sous Ubuntu Breeze et le processeur cible du capteur un ARM Le premier compilateur crois pour ARM que nous avons install ne permettait pas de g rer les float Or cela est possible condition de trouver la version de gcc compatible non seulement avec la version de Arm supportant les float mais galement avec la bonne version de la librairie libc Nous avons tent diff rentes possibilit s mais sans obtenir de succ s Il est noter que chaque tentative d installation de ce compilateur crois prenait en moyenne trois heures 14 la partie de la documentation concernant les interfaces est fournit en annexe P c est l installation de ce compilateur crois qui est d
54. e TinyOS fournit non seulement des outils de d veloppement et de simulation aux d veloppeurs mais galement une solution permettant de d velopper rapidement des applications r pondant la diversit des caract ristiques existantes d un r seau l autre telles que le besoin de fiabilit dans les informations r colt es la qualit de service du r seau ou encore aux capteurs mis en jeu En outre le domaine de l embarqu impose de s v res contraintes notamment en ce qui concerne l espace de stockage et l espace m moire allou s au syst me d exploitation et aux applications tournant dessus TinyOS r pond ce probl me en g n rant une tr s petite empreinte m moire GLBWBCO3 celle ci correspondant la fusion du syst me d exploitation et de l application ex cut e Enfin en ce qui concerne plus particuli rement le domaine des r seaux de capteurs les capteurs sont souvent l origine de la d tection d un ph nom ne et informe le r seau de son existence TinyOS propose ainsi un mod le de programmation orient v nement Cette section d crit TinyOS en commengant dans un premier temps par la description de son mod le et des principales notions associ es celui ci Ensuite nous d taillerons le langage NesC utilis pour l impl mentation de TinyOS Celui ci est un langage orient composant s inspirant du C classique II 2 1 Les notions principales Afin de fournir les sp cificit s d crites pr c demment Tiny
55. e d erreur suivant se produit Unix CPU could not be determine deux solutions sont envisageables e soit modifier le fichier STHINKPATH tools org objectweb think helper Think java en rajoutant else if i386 equals osarch x86 equals osarch 50 CPU new String x86 puis recompiler les outils et les librairies dans le r pertoire STHINKPATH avant de relancer la commande ant unix soit ajouter la ligne suivante dans le fichier STHINKPATH test helloworld build xml target name unix gt property name OS value unix gt property name CPU value x86 gt lt target gt et relancer la commande ant unix b Pour une cible arm gt v2 example helloworld gt antarm Si une erreur se produit au 14 de type r f rence ind finie vers memcpy_P Il faut copier le fichier THINKPATH src libc powerpc memepy dans THINKPATH src libc et relancer la compilation Il est noter qu l heure nous r digeons ce manuel la version 2 est la derni re release 51 Annexe C Manuel d installation de Think v3 pour Ubuntu Pr requis N cessite d avoir svn install Un environnement de d veloppement C avec gcc as ar ld e La librairie libc6 dev permet d avoir le fichier crt1 0 Logiciel a installer Think v3 e JDK 1 4 2 e Ant 1 6 5 Uncompilateur crois pour arm Pro
56. est toujours l origine de l activit du capteur 31 Init Activit R ception Paquet Entry VerificationEnergieDispo D couverteVoisinage Entry VerificationM emoireDispo Transfert AttenteEvt nbVoisin 0 Traitement D tectionCapteur pas en E Entry VerificationEnergieDispo Pr paration paquet Attente Voisinage demandeTraitement pas en m Envoie paquet Actualisation Voisinage nbVoisin 0 AttenteFin d activit activit H Pas d activit Reconfiguration Entry VerificationEnergieDispo Entry VerificationM emoireDispo 2 lt lt comment gt gt R ception du composant Insertion des composants 2 Tous les tats sauf reconfiguration appatiennent un super tat marche pour pouvoir faire l tat Suppression de l ancien composant Modification des liaisons suspendu Figure 23 Les tats d un capteur Ce diagramme d tats Figure 23 met en vidence la coexistence de deux tats Idle et Activit En effet lors de la r alisation d un traitement comme l agr gation des donn es un v nement peut se produire Par exemple la batterie peut signaler qu elle est trop faible pour continuer alimenter le capteur Il convient donc d avoir un m canisme permettant de r cup rer ces v nements pour pouvoir les traiter Cela implique donc deux threads afin de g rer premi rement les attentes d v nement et deuxi mement les activit s en cours dans le capteur Cela
57. eur I 1 lt lt software component gt gt alloue Ordonnanceur Application 24 Thread CreerProcessus mu EndormirProcessus ES place R veillerProcessus requiert 1 utilise Ressources p dans Figure 21 Liaison entre le syst me d exploitation et l application Or l utilisation de threads pour le domaine des r seaux de capteurs semble tre une solution assez co teuse tant donn que chacun d entre eux doit stocker dans la m moire une copie du contexte d ex cution durant toute la dur e de son existence L emploi d un tel m canisme consomme donc norm ment de ressources m moire et est par cons quent envisager avec parcimonie De plus m me si diff rentes politiques d ordonnancement peuvent tre envisag es afin d allouer un processus au processeur il nous semble raisonnable d envisager un ordonnancement via une file FIFO comme c est le cas dans TinyOS En effet il s agit premi rement d un algorithme simple mettre en ceuvre deuxi mement le temps d activit d un mote devant tre le plus court possible les taches de longue dur e seront consid r es comme marginales et troisiemement comme nous sommes en pr sence d un syst me mono utilisateur si une tache monopolise le processeur il s agit d une situation acceptable De plus l existence de m canismes bloquant tel que l attente de l arriv e d un message
58. faces sp cifient un ensemble de fonctions appel es commandes qui doivent tre impl ment es par le fournisseur de l interface et un ensemble de fonctions appel es v nements qui doivent tre impl ment es par l utilisateur de l interface GLCBO03 Afin de distinguer les fonctions concernant un v nement de celles concernant une commande les en t tes des fonctions sont pr c d s des mots cl s respectifs event ou command Voici un exemple simple d interface Interface Timer command result t start char type uint32 t interval command result t stop event result t fired De plus comme il a t mentionn pr c demment le mod le m moire fix par TinyOS n autorise pas les pointeurs de fonctions Afin de n anmoins proposer un m canisme alternatif nesC utilise des interfaces param tr es Celles ci permettent l utilisateur de cr er un ensemble d interfaces identiques et d en s lectionner une seule appeler gr ce un identifiant interface SendMsg uint8 t id Ainsi une instance d interface param tr e correspond de multiples interfaces vers ce composant une pour chaque tuple distinct de valeurs de param tres L interface SendMsg d clare donc 256 interfaces de type SendMsg GLCB03 Les modules sont eux les l ments de base de la programmation Ils permettent en effet d impl menter les composants et sont stock s dans un fichier poss dant la structure suivante module
59. formes aux concepts propos s par l ing nierie logicielle bas e composant repose sur l utilisation de descripteurs Ceux ci permettent de s parer la description de l impl mentation Ainsi le descripteur d interface nomm meth contient un pointeur vers une table contenant des structures correspondant aux m thodes Le premier l ment de cette structure correspond l en t te de l op ration et le deuxi me un pointeur vers son impl mentation La Figure 13 sch matise donc cette description 20 interface interface interface reference descriptor methods gt meth H implemen tation implemen tation Figure 13 Repr sentation d une interface l ex cution FSLM02 Cependant cette repr sentation correspond une premi re optimisation et n est permise que lorsqu il n existe qu un seul composant poss dant cette interface En effet selon la nature du composant cible des am liorations sont envisag es afin de minimiser par exemple la consommation de m moire et ou les co ts engendr s par l allocation Premi rement lorsqu un composant poss de exactement une seule interface celle ci pouvant servir de points d acc s plusieurs composants alors les donn es sont stock es directement dans le descripteur On obtient alors la Figure 14 suivante interface interface interface reference descriptor methods implemen tation implemen tation Figure 14 Repr sentation de l interface unique d un composant F
60. i me temps nous d taillerons la section III les fondements de la cr ation d un nouveau syst me d exploitation bas composant pour les r seaux de capteurs Puis dans un troisi me temps nous exposerons la section IV un m canisme de reconfiguration dynamique s appuyant sur le syst me d exploitation pr c demment d fini Pour terminer nous tablirons les limitations pratiques de notre travail dans la section IIV II Etat de l art Cette section pr sente les notions fondamentales servant de socle cette tude Ainsi nous d taillerons d abord le domaine des r seaux de capteurs puis TinyOS le syst me d exploitation de r f rence utilis Et nous terminerons par une description de l ing nierie logicielle bas e composant ainsi qu une pr sentation des mod les Think et Fractal II 1 Les r seaux de capteurs Les r seaux de capteurs sans fil plus connus sous le nom de Wireless Sensor Networks WSNs sont une technologie mergente issue des progr s de diff rents domaines Ils ont en effet profit de la miniaturisation des composants lectroniques de l augmentation de leur capacit puissance de calculs nergie etc de la diminution des co ts de fabrication mais galement des avanc es dans les r seaux de communication sans fil travers l essor des t l phones mobiles des PDAs etc Cette section s articule de la mani re suivante Nous pr sentons d abord les capteurs traditionnels autrement dit
61. iant l une l autre ou m me les deux options suivantes msoftfloat without FP Malheureusement cela requiert de trouver les versions de gcc glibc et arm compatibles entre elles ainsi qu avec ces options Nous avons r alis plusieurs tentatives l aide d un script mais nous avons toujours abouti un chec 59 Annexe Manuel de l IDL Think IDL In order to allow Fractal components implemented in potentially distinct programming languages to interoperate some standard protocols for local and remote operation invocations are necessary One way to ensure this 1s to use an Interface Definition Language IDL and mappings from the IDL to existing programming languages The IDL compiler can then generate stubs and skeletons to make the conversion from language specific protocols to standard protocols and vice versa The IDL language used in Think is a modified subset of Java so as to be immediately understandable by Java programmers Grammar There are two forms or identifiers simple identifier and qualified identifiers One limitation here is to not employed C reserved keywords in identifier QualifiedIndentifer Identifier Identifier An interface declaration is a package declaration followed by the interface type declaration The file containing the interface must reside in the directory designate by the package QualifiedIdentifer Declaration package QualifiedIdentifer I
62. ication du sch ma pr sent dans Lew04 El ment de a 5 ge E o J N y d tection mesure L 09 c Capteur virtuel Figure 3 Mod le de capteur virtuel inspir de Lew04 II 1 3 La mise en r seau Les types de capteurs que nous venons de d crire servent de pierre angulaire l dification de r seaux dits de capteurs sans fil D autres l ments viennent compl ter ce r seau Il s agit des stations de base et des collecteurs Les collecteurs sont un autre type de noeud du r seau qui permet de rassembler des donn es provenant de plusieurs motes et qui poss de galement des fonctions de passerelle reliant ainsi les capteurs avec un r seau externe Internet par exemple Ces derniers poss dent beaucoup plus de capacit s que les motes tant au niveau de la m moire que de la vitesse de traitement ou des r serves en nergie La station de base quant elle est l l ment recueillant les donn es et ou les analyses du r seau et servant galement son administration Un r seau de capteurs sans fil peut alors ressembler au sch ma de la Figure 4 Transit Cilent Data Browsing and Processing Basesiation CET 007 77 40 Base Remote Link internet s Data Service Figure 4 Sch matisation d un r seau de capteurs sans fil Ainsi les donn es d tect es vont parcourir le r seau de capteurs en capteurs jusqu a l
63. iguration et le d ploiement des composants BCS04 Dans le mod le de composant Fractal cette fonctionnalit est g r e l aide du contr leur Ceux ci sont expliqu s dans la section 3 3 1 suivante 1 3 3 1 Les composants Fractal Un composant Fractal est d composable en deux parties distinctes une partie non fonctionnelle et une partie fonctionnelle Cela correspond respectivement au contr leur et au contenu BCS04 Ainsi un composant Fractal peut tre mod lis tel que sur la Figure 18 Contenn Figure 18 Vue interne d un composant Le contr leur sert au contr le et l administration des composants Ainsi diff rents types de contr leur sont fournis e Le Component Utiliser pour permettre l introspection d un composant e Le ContentController Servant l ajout respectivement le retrait de sous composants dans un composant Ce dernier est alors nomm composant composite Le BindingController Permettant d tablir ou de supprimer des liaisons entre des interfaces clientes et des interfaces serveurs e L AttributesController Offrant un moyen d obtenir et de modifier les attributs du composant Un attribut est une propri t configurable du composant BCS04 comme le prix d une boisson pour un distributeur de boisson ou la couleur d un bouton pour une interface graphique e LeLifeCycleController Utiliser pour d marrer et arr ter proprement un composant ceci afin d viter par exemple
64. ion The IDL understand these types Where any means that all interface reference types is accepted and ComplexeType specifically designs an interface reference type type sge Primirivetvyes Conplexeryoe 9 ure wjwy ys ComplexeType QualifiedIndentifer any PrimitiveType boolean Menar Wowace Short Tansicned gie Wimet mingaremecl vime long wastcgned lomg UString 61
65. ion lt lt commande gt gt lt lt signale gt gt lt lt software comp onent gt gt Syst me lt lt gt gt i commande lt lt signale gt gt lt lt software comp onent gt gt Repr sentation Mat riel lt lt commande gt gt lt lt signale gt gt lt lt hardware comp onent gt gt Hardware Figure 26 Fonctionnement du syst me L ordonnanceur est en charge du m canisme de la r partition du processeur entre les diff rents l ments Or le processus d ordonnancement choisi pr c demment une file FIFO impose que toutes les t ches soient trait es dans l ordre d arriv e Ainsi l arriv e d un v nement n implique pas forc ment la prise en compte imm diate de celui ci Une solution ce probl me r side dans l utilisation d une file de priorit dans laquelle les v nements auront une priorit sup rieure aux appels de fonctions Dans ce cas lors d une arriv e d un v nement l ordonnanceur placera ce dernier en t te de la file ou s il existe d autres t ches ayant la m me priorit la suite de ces derni res Une fois le traitement en cours termin l v nement sera pris en compte et l ordonnanceur le signalera tous les composants poss dant le gestionnaire d v nement ad quat qui est capable de le traiter Dans cette section nous avons pr sent les limites du mod le TinyOS pour des applications envisageables dans un futur proche Ain
66. l l ment de d tection n est pas toujours capable de mesurer la quantit int ressante mais une quantit reli e Le conditionneur de signaux et le processeur de signal num rique permettent de r soudre ces probl mes respectivement par l utilisation de filtre passe bas de m canisme de compensation d amplificateur op rationnel etc Lew04 et par des m canismes de traitement du signal La Figure 1 ci dessous est une mod lisation de ces diff rents l ments inspir s la fois par Hub00 et la repr sentation des capteurs propos e la Figure 2 Sens de parcours des mesures signaux entre les l ments gt gt 2 Zz z zz z _ _ 33 Acquisition Traitement du signal Communication El ment de d tection mesure Conditionneur de signaux lt un c c n Jd 3 c Alimentation L gende Alimente O e El ments obligatoires Figure 1 Sch matisation d un capteur traditionnel Apr s cette br ve description des capteurs traditionnels nous en arrivons maintenant la pr sentation des motes i e les capteurs utilis s dans les WSNs II 1 2 Les capteurs dans les Wireless Sensor Networks Les capteurs pr sents dans les Wireless Sensor Networks se diff rencient de ceux pr c demment d crits par plusieurs points Le premier l ment de distinction est r v l par le terme sans fil En effet les motes ne
67. l installation et pour comprendre comment configurer skyeye T l charger l archive testsuite2 1 ter bz2 et la d compresser dans un r pertoire tel que ARMEMU Tester les exemples fournis Ouvrir un des fichiers skyeye conf Celui ci contient un d coupage de la m moire en section Au cours de nos tests nous avons utilis le fichier skyeye conf pour 521100 qui correspond un processeur ARM Commande pour utiliser pour lancer l mulateur gt J ARMEMU skyeye v1 binary skyeye e emplacementlmageKernel c emplacementFichierSkyeye conf Il est noter qu avec ce fichier de configuration seuls les exemples Think pour les noyaux ARM 3600 3800 fonctionnent Pour les noyaux 2200 3900 et 5400 une erreur d criture en m moire se produit sa io write byte error 55 Annexe E D veloppement d une application de test But Comprendre comment cr er des composants et des applications Think Application envisag e 1 g n rateur de temp rature al atoire Ce dernier aurait pu en cas de succes du d veloppement de l application permettre de simuler un capteur Version 1 Adaptation de l exemple helloworld fourni Voici la mod lisation de l application envisag e Boot Static main TemperatureSensor lt lt primitif gt gt TemperatureGen lt lt primitif gt gt Affichage Des exemples de fichiers ADL Nous pr sentons d abord le fichier tpkernel adl qui permet de d crire l architectur
68. la perte de donn es ou que l tat de l application ne soit plus valable 10 anglais separation of concerns 24 Le contenu contient l impl mentation et les structures n cessaires la r alisation des requ tes sur les interfaces du composant En r sum il contient les divers l ments qui permettent aux composants d ex cuter les t ches pour lesquelles il a t con u Parmi les l ments constituant le contenu nous pouvons retrouver un ou plusieurs composants appel s sous composants Eux m mes pouvant tre galement compos s de sous composants Le niveau d imbrication des composants n est pas pr cis par le mod le il est arbitraire 1 3 3 2 Les interfaces Fractal Comme nous l avons dit pr c demment une interface est un point d acc s au composant Afin de pouvoir identifier ce point d acc s et ce qu il permet de faire une interface poss de un nom unique un ensemble d op rations pouvant tre r alis es via cette interface et un r le client serveur ou contr le Cependant certains concepts pr sent s dans l ing nierie logicielle bas e composant cf II 3 1 correspondent une appellation diff rente dans le mod le Fractal Ainsi le concept d interface de service requis respectivement fournis est nomm interface cliente resp serveur Quant aux interfaces de contr le celles ci sont utilis es pour d crire les fonctionnalit s propos es par un contr leur Enfin la
69. les anc tres de ceux pr sents dans les WSNs puis les nouveaut s apport es par les motes c est dire les capteurs utilis s dans les r seaux de capteurs sans fil Ensuite nous d crivons l aspect g n ral d un tel r seau en montrant les relations entre les diff rents l ments le constituant avant d enchainer avec les diff rentes utilisations possibles Enfin nous pr sentons les caract ristiques de tels r seaux avant de terminer avec les besoins et les challenges de ce domaine II 1 1 Les capteurs traditionnels Les r seaux de capteurs sans fil visent tendre les domaines d application des capteurs En effet des capteurs sont d j utilis s pour la cr ation de syst mes d acquisition de donn es car ils sont capables de d tecter des ph nom nes dans un environnement proche de les quantifier et de transmettre les donn es ainsi obtenues d autres l ments du syst me en vue de leur traitement Les l ments mesur s sont des grandeurs physiques telles que la pression l humidit les vibrations etc Hub00 Pour r aliser de telles mesures ces capteurs sont constitu s de diff rents l ments hardwares Afin de les mettre en vidence consid rons par exemple un syst me d acquisition de donn es permettant de relever la temp rature ambiante d un milieu Ce syst me est constitu d un thermom tre lectronique lui m me compos d un capteur et d un afficheur digital Une fois la temp rature tab
70. lie la mesure est transform e en signal analogique gr ce l l ment de d tection Pour qu elle puisse tre affich e 1l est n cessaire que ce dernier soit digitalis On utilise pour cela un convertisseur De plus la pr sence du dispositif lectronique pr c demment cit impose une source d nergie qui peut tre soit le secteur soit des batteries etc Enfin si le destinataire des donn es dans notre exemple l afficheur est loign du capteur il faut que ce dernier puisse transmettre la donn e num ris e il peut donc y avoir galement un module de communication comme un r seau c bl par exemple Si l on ne consid re que les l ments impliqu s dans l exemple pr c dent alors le capteur ainsi sch matis serait incomplet En effet deux autres composants peuvent tre int gr s dans un tel instrument il s agit du conditionneur de signaux et d un processeur de signal num rique Le conditionneur de signaux intervient afin d am liorer la qualit des mesures En effet sous certaines conditions notamment environnementales celles ci peuvent tre fauss es c est dire que le signal mis peut pr senter du bruit que son amplitude peut tre trop faible qu il peut tre biais ou d pendre de param tre secondaire Le processeur de signal num rique permet quant lui de traiter le signal c est dire d en extraire des donn es de le modifier ou de l adapter en vue de la transmission ou du stockage De plus
71. lisation de trois indirections table of interface table of interface methods proxy methods interface reference nterface descriptor the actual mplementation of the component controller Figure 28 Impl mentation des proxis d un composant Pol04 La deuxi me solution bas e sur le m canisme K42 ne sera pas d taill e ici car elle n est pas adapt e au contexte des r seaux de capteurs En effet celle ci repose sur l utilisation d un composant de gestion de g n ration de threads et suppose galement que ces threads se terminent toujours dans un temps limit et sont non bloquants Or il s agit l d un m canisme trop gourmand en ressource m moire pour tre utilis dans le cadre de notre tude car chaque thread poss de une copie locale du contexte d ex cution IV 2 Les am liorations du modele Le mod le de m canisme de reconfiguration dynamique propos pour Think Pol04 est trop g n rique pour satisfaire les contraintes inh rentes au domaine des r seaux de capteurs Une modification de cette proposition est donc n cessaire sag Premi rement nous n utilisons pas un mod le classique de syst me d exploitation mais le mod le d ex cution bas v nement que nous avons d crit pr c demment En effet ce mod le reprend non seulement une grande partie des caract ristiques qui ont fait le succ s de TinyOS mais autorise de plus les allocations dynamiques de composants permettant
72. m moire p riph riques etc Le domaine superviseur permet l acc s ces ressources et il peut tre vu comme le noyau d un syst me d exploitation d un syst me classique Enfin les domaines applicatifs correspondent aux composants n acc dant pas directement aux ressources 1 3 2 2 Kortex Pareillement TinyOS Think fournit un ensemble de composants syst mes fr quemment utilis s au travers d une biblioth que nomm e Kortex Ces composants fournissent leurs services ind pendamment de l impl mentation d autres composants Cela permet de substituer un composant par un autre sans avoir se soucier des d pendances la condition sine qua non tant que ce dernier poss de exactement les m mes interfaces Parmi abbreviation en anglais de Remote Procedure Call signifiant appel de proc dure distante 22 les services propos s nous pouvons citer entre autre l ordonnancement la gestion de la m moire plate ou pagin e la gestion r seau ou encore le chargement dynamique de composants Enfin il est noter que Kortex ne dispose actuellement que de composants pour PowerPC Arm ou Unix et qu une liste des composants fournis pour PowerPC est consultable dans l Annexe A 1 3 2 3 La compilation Afin de construire et assembler les diff rents l ments n cessaires au syst me d exploitation et l application tournant dessus Think utilise la chaine de construction pr sent e la Figure 17 Celle ci autorise une s parati
73. ment Lorsque la file est pleine la t che ayant la priorit la plus faible est enlev e pour permettre la nouvelle tache dont la priorit est plus lev e d y entrer Leur tour venu les t ches alors s ex cutent jusqu compl tion sauf si elles sont pr empt es par un v nement Il est noter que les t ches ne peuvent pas se pr empter entre elles et qu elles doivent tre courtes S il s agit d une t che longue celle ci se d roulera sur plusieurs t ches La deuxi me source de concurrence provient des v nements c est dire d un ph nom ne d tect par le capteur d un v nement mat riel comme une interruption par exemple ou de l annonce de la terminaison d une op ration split phase i e une t che de longue dur e Les v nements semblablement aux t ches s ex cutent jusqu compl tion mais peuvent cependant se pr empter entre eux GLBWBCO3 appeler des commandes poster de t ches ou signaler d autres v nements Enfin les commandes sont des op rations similaires aux v nements mais constituent uniquement des points d entr e pour le composant c est dire qu elles ne peuvent seulement appeler que des commandes de plus bas niveau ou poster des t ches Ce qui peut se r sumer comme sur le graphe temporel de la Figure 8 o un v nement est d clench par une interruption provenant d un composant mat riel Preempt Tasks P lt 7 FIFO 2 9 commands commands Time Hardware Fig
74. mp onent gt gt Capteur 1 lt lt hardware comp onent gt gt UAL 1 lt lt hardware comp onent gt gt Horloge Figure 20 Componentization d un capteur Le processeur est le centre du syst me Il s agit d une unit capable d interpr ter la suite des instructions d un programme puis de les ex cuter s quentiellement Pour cela il est constitu d une Unit Arithm tique et Logique UAL pour effectuer des op rations de calcul l mentaire et de comparaison logique lt gt d une Unit de Contr le UC pour utiliser les instructions stock es en m moire d une horloge pour le cadencer et d un bus pour relier ces diff rents composants Les principaux processeurs utilis s dans les capteurs sont actuellement AVR et ARM Les processeurs AVR Wik06a font partie de la famille des microprocesseurs RISC fabriqu s par Atmel et sont galement bas s sur une architecture Harvard qui stocke le programme et les donn es s par ment Les processeurs ARM Wik06b sont galement bas s sur une architecture RISC et sont largement utilis s dans les syst mes embarqu s comme les PDAs En outre les p riph riques d Entr es Sorties P riph riques d E S sont les liens que poss dent le capteur avec l environnement les autres capteurs et ventuellement les utilisateurs L metteur r cepteur r seau la connexion avec la machine de d veloppement interface S rie ou le capteur entrent
75. n et par cons quent celle d un syst me d exploitation bas v nement Mais cela pose de nombreuses questions commencer par la fa on de repr senter un syst me d exploitation sous forme de composants Pour y r pondre nous allons tout d abord pr senter les diff rents l ments mat riels constituant le capteur ainsi que la mani re dont ils interagissent entre eux Comme il a t d crit dans l tat de l art un capteur poss de un microprocesseur des p riph riques r seau capteur Interface s rie et de la m moire Ces diff rents l ments sont reli s entre eux tel que pr sent sur la Figure 20 Think fait dans cette section r f rence Think Fractal mais nous conservons cette appellation afin de correspondre la litt rature actuelle 28 lt lt hardware comp onent gt gt lt lt hardware comp onent gt gt Ram Flash lt lt hardware comp onent gt gt acc de lt lt hardware comp onent gt gt Controleur de p riph riques M moire z contr le acc de communique lt lt hardware comp onent gt gt lt lt hardware component gt gt P riph riques E S Processeur 1 lt lt hardware comp onent gt gt 1 Bus lt lt hardware comp onent gt gt lt lt hardware comp onent gt gt T R seau Interface S rie lt lt hardware comp onent gt gt uc relie lt lt hardware co
76. nde h t rog n it du mat riel disponible Le Tableau 1 r sume les am liorations dont les motes ont b n fici en quelques ann es au niveau de la cadence de leur processeur la vitesse laquelle les op rations peuvent tre effectu es de la m moire Flash disponible pour les applications ou de la m moire utilisable pour les calculs RAM Mote WeC rene dot mica mica2 iMote btNode Date 1999 2000 2001 2002 2003 2003 2003 Processeur MHz 4 7 12 7 Flash code ko 8 8 16 128 128 512 128 RAM ko 0 5 0 5 1 4 64 Tableau 1 Evolution des capacit s mat rielles des motes LMGPSWBC04 En ce qui concerne les r seaux les diff rentes techniques existantes ne peuvent pas tre appliqu es directement Celles ci doivent tre adapt es afin de prendre en compte les fortes contraintes notamment celles concernant l nergie disponible Par exemple pour les communications l utilisation d acquittement doit tre utilis e avec parcimonie YB05 En effet m me si l utilisation d une telle technique permet d augmenter la fiabilit des changes entre les noeuds cela engendre des communications suppl mentaires et par cons quent une surconsommation d nergie De m me le d ploiement d un tel r seau g n re de nouveaux probl mes Il existe en effet plusieurs moyens de d ployer un WSN sur une zone surveiller Cette diss mination des capteurs peut tre r alis e al a
77. ne version en cours de d veloppement La documentation associ e cette version tant tr s incompl te nous avons d nous contenter de tester les exemples fournis afin de d terminer si Think pouvait s adapter aux contraintes des r seaux de capteurs Hormis un exemple o la taille de l image binaire g n r e tait sup rieure la capacit m moire des iMotes tous les autres exemples taient compatibles Cela d montre la possibilit d utiliser un syst me reposant sur Think pour des capteurs condition toutefois de ne pas oublier d optimiser les codes r alis s En outre un mulateur a t install afin de tester l ex cution de ces programmes La proc dure d installation et d utilisation de cet mulateur est d taill e en annexes D une mani re plus g n rale un obstacle fondamental l utilisation de Think est un manque de documentation Le didacticiel Pul en est un exemple flagrant de nombreuses rubriques par exemple ne sont pas renseign es De plus certaines sections contiennent des informations erron es ou non valides Par exemple l h ritage d interfaces est indiqu comme r alisable dans la documentation fournie avec la version 3 Or dans la pratique son utilisation s av re impossible sauf la condition de d crire nouveau dans l interface fille toutes les interfaces pr sentes dans l interface m re Cette non impl mentation a t mise en vidence via l application galement d taill e dans Annex
78. notamment la conservation de l espace m moire ou encore la gestion limit e de l nergie Afin de r pondre ces exigences TinyOS le syst me d exploitation de r f rence occupe tr s peu de m moire gr ce aux nombreuses optimisations labor es partir de l utilisation d une architecture bas e composant D un autre c t l ing nierie logicielle bas e composant SGM02 est une approche maintenant reconnue permettant le d veloppement d applications et de syst mes modulables flexibles et bien architectur s r pondant notamment des besoins de reconfiguration et d administration Or m me si TinyOS pr sente des concepts similaires ceux pr sents dans l ing nierie logicielle bas e composant tous ne sont pas repris En particulier aucun support n est propos pour la gestion des aspects dynamiques dont une application pourrait avoir besoin Par exemple il est impossible de reconfigurer dynamiquement une application Or diff rents travaux notamment sur l autonomic computing KCO3 ont identifi cette fonctionnalit comme primordiale L utilisation de mod les r ellement bas s composant semble donc tre une approche approfondir Dans ce cadre il existe un mod le permettant de cr er n importe quel type de syst me d exploitation Il s agit du mod le Think Th06 une impl mentation de Fractal BCS04 qui cible les syst mes fortement contraints notamment les syst mes embarqu s C est dans ce contexte que s inscri
79. nterfaceDeclaration An interface type declaration identified by Identifier contains two sorts of declarations methods and constant fields The keyword public isn t relevant and is only here for compatibility purpose The fully qualified name of an interface is the package QualifiedIdentifier plus the interface Identifer separate by a point A interface could inherit from one single interface You can declare as many as require interleaved fields and methods in an interface declaration InterfaceDeclaration public interface Identifier extends QualifiedIdentifer MethodDeclaration FieldDeclaration Ug d ss unb A l heure nous r digeons ce rapport l h ritage d interface n est pas impl ment 60 A method declaration grammar looks like this The keyword is here for passing arbitrary parameters number MethodDeclaration ResultType Identifier FormalParameters ResultType Type void FormalParameters LL 02 FormalParameter uu FormalParameter M wow 2 uy FormalParameter const Type Identifier A constant field declaration grammar looks like this The expression must be a valid constant expression and only primitive type can be constant Actually no semantic check on expression was done and the expression was directly injected in generated C code FieldDeclaration PrimitiveType Identifier Express
80. od lisation d un m canisme de reconfiguration dynamique adapt aux r seaux de capteurs Nous commengons dans un premier temps par d crire le m canisme g n rique propos dans Pol04 car celui ci repose d j sur le mod le Think Fractal mais n est pas assez contraint pour tre directement adaptable aux r seaux de capteurs Nous proposons donc dans un deuxi me temps les modifications apporter ce m canisme pour le rendre applicable pour ce domaine IV 1 Pr sentation de la solution propos e par Juraj Polakovic Au cours de son stage de master Pol04 Juraj Polakovic a propos un m canisme de reconfiguration dynamique pour Think reposant sur la notion de contr leurs telle que pr sent e dans le mod le Fractal La reconfiguration est ici envisag e au niveau des composants et les objectifs recherch s pour ce m canisme sont la g n ricit et la flexibilit pour supporter tous les mod les de reconfiguration dynamique la non modification de l aspect fonctionnel des composants et la minimisation de la surcharge m moire l ex cution De plus seuls les composants pouvant n cessiter d tre reconfigur s poss dent ce m canisme il est donc consid r comme optionnel Afin de r aliser ces objectifs la reconfiguration repose dans ce mod le sur une description de la reconfiguration dynamique constitu e premi rement par l architecture du systeme et deuxi mement par un ensemble de r gles Celles ci d finissent si l
81. omposant pouvant signaler un v nement puisse le faire Cela implique d avoir une nouvelle structure de composant Celle ci est pr sent e sur la Figure 25 suivante lt lt software comp onent gt gt Gestionnaire d v nement s fournit gere lt lt interface gt gt lt lt software comp onent gt gt Interface Composant 7 ier requiert Evenement signale Figure 25 Mod le de composant bas v nement 33 L impl mentation du gestionnaire d v nements en tant que sous composant pourrait faciliter les modifications ult rieures apporter au syst me Ainsi si de nouveaux venements doivent tre pris en compte ou s il est n cessaire de modifier des v nements existants seul le gestionnaire devra tre modifi et ventuellement les liens entre les v nements cout s et le gestionnaire Finalement notre syst me d exploitation repose sur un mod le bas v nement fonctionnant de la mani re suivante les composants de plus bas niveau signalent des v nements aux composants de niveau sup rieurs qui sont capables de les traiter et les composants de niveaux sup rieurs peuvent demander l ex cution de t ches des composants de niveaux inf rieurs via des appels de fonction De m me des composants d un m me niveau communiquent galement par des appels de fonctions La Figure 26 sch matise se m canisme Applicat
82. on entre l aspect architecturel et fonctionnel Ainsi les langages de description d architecture et d interface respectivement les cadres adl et idl de la Figure 17 sont utilis s pour d terminer les composants en pr sence Ces descriptions sont ensuite converties en fichiers C et utilis es en compl ment des impl mentations respectives de chacun des composants pour obtenir les fichiers binaires gr ce au compilateur C Puis l diteur de liens i e l l ment linker de la Figure 17 g n re partir de ces fichiers une image correspondant au noyau du syst me d exploitation et l application tournant dessus l l ment kernel de la Figure 17 et ce dernier sera charg sur la machine gr ce au boot loader Enfin les composants ou une nouvelle application sera charg e via le dynamic loader functional code 8 E D autre part il existe le mod le Fractal qui est mod le de composants g n rique modulable et extensible pouvant tre utilis avec diff rents langage de programmation pour concevoir impl menter d ployer et reconfigurer diff rents syst mes BCS04 Les concepts cl s de ce mod le sont bri vement pr sent s dans la section suivante Cependant des informations compl mentaires peuvent tre consult es dans BCS04 et SH05 II 3 3 Fractal Fractal est un mod le de composant issu d une collaboration entre l INRIA et France T l com R amp D et d velopp depuis 2002 au sein du consortium O
83. pourrait permettre de recenser les animaux fr quentant un territoire donn Des applications industrielles peuvent galement les adopter Une id e d utilisation pourrait tre de placer ces instruments des points sp cifiques par exemple aux points d usure des machines ce qui permettrait d mettre des alertes lorsque leur tat g n ral se d grade CES04 Enfin certains envisagent d implanter des senseurs dans le corps humain Ce qui permettrait de contr ler l tat de sant de patients et ainsi d adapter leur traitement de pr venir de la d gradation de leur tat de sant et par cons quent d tre capable d anticiper une hospitalisation en urgence LM amp all04 Mais ceci n est pour l instant qu une utilisation future qui d pend encore grandement des progr s venir de cette technologie II 1 5 Les caract ristiques des r seaux de capteurs sans fil Les r seaux de capteur sans fil forment un domaine de recherche clectique n cessitant la mise en commun de connaissances provenant de nombreuses disciplines diff rentes telles que l lectronique la physique les r seaux la programmation etc Premi rement l lectronique fournit des innovations au niveau du mat riel En effet et conform ment la seconde loi de Moore qui dit que the number of transistors on integrated circuits doubles every 18 months on constate que les composants lectroniques disponibles sont r guli rement am lior s Il existe donc une gra
84. rface fournie par un module Dans ce cas elle poss dera le m me nom que celle requise L autre caract ristique concerne le composant Main En effet il est noter que ce composant est obligatoirement pr sent dans la configuration d crivant l ensemble de l application car son r le est de d marrer l ex cution de l application En outre le mod le d ex cution propos par nesC repose sur les t ches et les gestionnaires d interruption Les t ches comme mentionn pr c demment s ex cutent jusqu compl tion sauf si elles sont pr empt es par un v nement et les interruptions sont d clench es de mani re asynchrone par le mat riel Or cela peut conduire des acc s concurrents caus s par la pr sence des variables globales Pour viter que des races ne se produisent l acc s aux variables globales ne doit se faire qu l int rieur de t ches ou qu l int rieur d instruction atomique Ainsi il existe deux types de codes permettant la gestion de la concurrence le code synchrone et le code asynchrone Le code synchrone est la portion de code d une fonction commandes v nements ou t ches accessible seulement par des t ches Le code asynchrone est lui accessible par au moins un gestionnaire d interruption Enfin afin d assurer qu aucune situation de comp tition ne se produise nesC impose un Race Free invariant Any update to shared state is either Synchronous Code only or occurs in an atomic statement G
85. s appels distants passent par l metteur r cepteur Or les op rations utilisant cet l ment en particulier pour des missions de donn es consomment norm ment d nergie Malheureusement il s agit l d une des ressources critiques du syst me Il convient donc de n utiliser ces appels distants qu bon escient ou de trouver un nouveau moyen d impl menter ces appels distants par exemple en modifiant la forme du paquet r seau 11 3 2 1 4 Les domaines Le concept de domaine quant lui permet de mod liser l organisation hi rarchique d un syst me Fas01 c est dire qu un domaine peut tre constitu d autres domaines s ex cutant en parall le Un domaine est ainsi constitu de composants formant le contenu et d un composant particulier le conteneur Le domaine propose en outre des aspects non fonctionnels qui servent l administration et la manipulation des composants du contenu Ce dernier est par exemple en charge de l ex cution de la configuration de la maintenance des composants ainsi que de la surveillance de la s mantique du domaine la mani re d un contr leur dans le mod le de composant Fractal cf II 3 3 1 Figure 16 Syst me base de composants de liaisons et de domaines Fas01 Il existe trois classes de domaine le domaine mat riel le domaine superviseur et les domaines applicatifs Fas01 Le domaine mat riel recouvre l ensemble des ressources mat rielles d une machine processeur
86. s et les voies de communication les liaisons Dans TinyOS ce plan est appel graphe de composants Il favorise la r utilisabilit des composants et se repr sente comme dans la Figure 6 HSWHCP00a Les rectangles repr sentent les composants les fl ches blanches les interfaces de services fournis les fl ches noires les interfaces de services requis Les traits partant d un composant vers un triangle noir ou blanc mod lisent une liaison ADL Architecture Description Language 12 ae Ad hoc Routing Application application Active Messages packet 1 u Radio Packet Serial Packet Temperature AA AA sw ORNE HW LN A Figure 6 Graphe de composants d une application visant au routage des relev s des capteurs HSWHCP00a Le deuxi me concept important fixe un mod le m moire En effet une des particularit s de TinyOS est d interdire les allocations dynamiques ainsi que celles se produisant l ex cution Pour cela TinyOS s appuie sur le graphe de composant pr c demment d crit afin de d terminer la taille de chaque composant et ainsi tablir statiquement leurs liaisons la compilation En outre afin de conserver l espace m moire les pointeurs de fonctions sont galement interdits En effet leur utilisation n cessiterait de stocker non seulement la ou les fonction s mais galement le pointeur vers celle s ci De m me les variables globales permetten
87. s tests d valuation pourraient ainsi tre effectu s afin d prouver le respect des contraintes inh rentes aux capteurs notamment l espace m moire occup Cependant il conviendra d attendre qu une version stable de la version 3 de Think Fractal soit effectivement d velopp e mais galement que les composants pour AVR soient disponibles afin que ces tests soient aussi appliqu s au processeur le plus r pandu sur les motes 42 Bibliographie BCS02 Eric Bruneton Thierry Coupaye and Jean Bernard Stefani Recursive and Dynamic Software Composition with Sharing In Seventh International Workshop on Component Oriented Programming WCOP02 Malaga Spain June 10 14 2002 BCS04 Eric Bruneton Thierry Coupaye and Jean Bernard Stefani The Fractal Component Model Specification ObjectWeb Consortium February 5 2004 Draft version 2 0 3 http fractal objectweb org BHRT04 Jan Blumenthal Matthias Handy Frank Reichenbach Dirk Timmermann SeNeTs Test and Validation Environment for Applications in Large Scale Wireless Sensor Networks In 2nd IEEE International Conference on Industrial Informatics 2004 Bru03 Bruneton Le mod le de composants Fractal ICAR 03 Ecole d t sur les Intergiciels et la Construction d Application et Reparties 2003 CES04 David Culler Deborah Estrin and Mani Srivastava Overview of Sensor Networks In IEEE Computer vol 37 no 8 pp 41 49 augu
88. sation propos e lors de la compilation par nesC afin de pr server l espace m moire En poursuivant le m me but des op rations d inlining sont r alis es Il s agit d un processus consistant ins rer le code d une fonction l endroit celle ci est appel e Dans nesC l inlining n est pas seulement r alis e l int rieur d un module mais aussi entre des modules diff rents De m me les dead codes c est dire les morceaux de codes inutiles telle qu une fonction qui n est jamais appel e sont supprim s Apr s avoir pr sent le domaine des r seaux de capteurs sans fil nous allons nous int resser la CBSE dans la section suivante Il s agit d une approche visant pallier les limites de la technologie orient e objet pour le d veloppement d applications pouvant s adapter rapidement et un moindre co t aux n cessaires volutions du march II 3 Etat de l art sur la CBSE Nous allons dans cette section dresser un rapide aper u de l ing nierie logicielle bas e composant plus connue sous le nom de Component Based Software Engineering ou CBSE II 3 1 Les concepts fondamentaux de la CBSE La CBSE repose sur une s rie de concepts maintenant clairement tablis Nous les pr sentons ici 17 1 3 1 1 Les composants Bien que la notion de composants soit au coeur de la CBSE il n en existe pas pour autant de d finition universelle Cependant celle la plus souvent retenue est celle propos e par Szyper
89. se produit au 14 de type r f rence ind finie vers memcpy faut copier le fichier STHINKPATHy src generic libc powerpc memepy dans STHINKPATH src generic libc et relancer la compilation Il est noter qu l heure nous r digeons ce manuel la version 3 est en cours de d veloppement Elle est donc continuellement sujette modification et tous les exemples ne compilent pas Pour plus d information consulter les liens Bugs et Listes de diffusion pr sents l adresse suivante http forge objectweb org projects think 54 Annexe D Manuel d installation et d utilisation de l mulateur ARM SkyEye v1 pour Ubuntu Proc dure d installation V rifier dans Synaptic que les paquets suivants sont bien install s Dans le cas contraire les installer libgtk2 0 dev pkg config libatk1 2 dev ibpangol 0 dev freetype2 0 dev ibglib2 0 dev libxl1 dev binutils dev cr er un lien symbolique du gcc existant vers un gcc 3 3 gt su password gt n sf usr bin gcc usr bin gcc 3 3 t l charger l archive skyeye 1 2 RC7 2 tar bz2 l adresse http gro clinux org frs 2group_id 327 et l extraire dans un r pertoire comme par exemple ARMEMU cd ARMEMU skyeye v1 make l ex cutable se trouve alors dans le r pertoire ARMEMU skyeye v1 binary gt cd binary gt skyeye h pour afficher une liste des options disponibles Proc dure pour tester
90. si le besoin de reconfiguration dynamique et par extension l adaptativit ne sont actuellement pas des fonctionnalit s envisag es pour les applications bas es sur les r seaux de capteurs Nous avons donc propos des concepts permettant de d finir un syst me d exploitation les prenant en compte Pour cela nous avons tent de marier les aspects prouv s de TinyOS notamment le mod le bas v nement avec les possibilit s du mod le Think et en particulier les aspects dynamiques offerts Dans la section suivante nous allons concevoir un m canisme de reconfiguration dynamique applicable aux r seaux de capteurs et au syst me d exploitation que nous venons de d finir 34 IV Etude de la reconfiguration dynamique La reconfiguration dynamique est une op ration permettant de remplacer un composant par un autre dans une application en cours d ex cution Plusieurs causes peuvent tre l origine d une telle action Il peut par exemple tre n cessaire de substituer un composant mal impl ment c est dire ne r alisant les fonctionnalit s pr vues ou les r alisant de mani re incorrecte ou encore d ajouter ce composant de nouvelles fonctionnalit s Un tel processus ne peut tre r alis qu la seule condition que le composant soit dans un tat stable i e qu il ne soit plus utilis Dans le cas contraire la reconfiguration pourrait conduire un crash irr m diable du syst me Cette section propose ainsi une m
91. ski SGMO02 A software component is a unit of composition with contractually specified interfaces and context dependencies only A sofiware component can be deployed independently and is subject to composition by third parties Autrement dit un composant poss de trois caract ristiques fondamentales La premi re d entre elle est qu un composant est semblable une boite noire c est dire qu il masque totalement les d tails de son impl mentation et ne communique que par le biais de ses interfaces La deuxi me sp cificit est la pr disposition des composants leur permettant d tre assembl s dans le but de d velopper d autres composants ou de construire des applications toutes enti res La derni re propri t a trait au d ploiement En effet un composant peut non seulement tre d ploy par une personne qui ne l a pas congu mais galement ind pendamment de tout autre l ment On peut alors parl d entit autonome Afin de simplifier nous allons r aliser une analogie avec un puzzle un composant tant ainsi quivalent une pi ce de ce puzzle Chacune poss de un fragment de l image finale ainsi qu un contour qui est lui propre mais pouvant s adapter au contour d une autre pi ce Si deux pi ces poss dent un contour oppos un assemblage est possible Dans le cadre de l ing nierie logicielle bas e composant on parle de composition Les bords repr sentent les interfaces contractuelles et le fragment d image
92. sont plus c bl s mais communiquent avec les autres l ments via un module de communication sans fil 3 en anglais Digital Signal Processing DSP De plus alors que les capteurs pr c dents se contentaient d envoyer des donn es a des l ments capables de les traiter les motes peuvent galement en recevoir En effet ils ont t con us afin de fonctionner en r seau et afin de servir de relais pour que les donn es collect es et les autres informations essentielles au maintien du r seau puissent tre propag es travers celui ci Cette transmission est rendue possible gr ce un metteur r cepteur Celui ci communique selon trois modes gr ce des lasers des infrarouges ou des radiofr quences Un des facteurs limitant dans l utilisation du transceiver est la port e En effet il est noter que la distance maximale de transmission entre deux noeuds du r seau est limit e quelques dizaines de m tres Un autre facteur limitatif est la consommation d nergie du transceiver qui est relativement importante dans le cas d une mission de donn es La seconde distinction est due non seulement une diminution des co ts de production mais galement une miniaturisation de la taille des composants Bien que ces progr s s appliquent galement aux capteurs d crits pr c demment il s agit dans le cas des r seaux de capteurs d une condition sine qua non En effet les capteurs ne sont d sormais pas plus grands qu une
93. sseur 1 1 lt lt software comp onent gt gt alloue Ordonnanceur 7 CreerProcessus Thread EndormirProcessus place R veillerProcessus E ee 1 Application requiert 7 utilise 1 dans Ressources 1 ER s abonne File de Priorit signale Ev nement Interface 0 1 File d v nement Figure 24 Mod lisation de l utilisation d une file d v nement Cela montre la n cessit de d finir premi rement un nouvel ordonnanceur qui tienne compte de la file d attente des v nements et qui soit capable d extraire la fonction appeler de cet v nement Il convient donc de d terminer des patterns d v nements afin de g n raliser ce m canisme Malheureusement si une partie de l application requiert l arriv e d un v nement pour fonctionner elle n en sera pas inform e Cette solution ne convient donc pas car dans ce cas il conviendrait alors d avoir une file pour chaque type d v nement pouvant tre d clench afin que les composants puissent s y abonner Ce m canisme engendrerait donc un surco t m moire inacceptable pour les capteurs Une derni re possibilit consiste donc ce que chaque composant requ rant la pr sence d un v nement pour pouvoir fonctionner poss de un gestionnaire d v nement correspondant l v nement dont il a besoin Et r ciproquement que chaque c
94. st 2004 Fas01 Jean Philippe Fassino THINK vers une architecture de syst mes flexibles Th se de doctorat 11 d cembre 2001 FSLM02 GLBWBC03 Jean Philippe Fassino Jean Bernard Stefani Julia Lawall Gilles Muller THINK A Software Framework for Component based Operating System Kernels In the USENIX Annual Technical Conference pages 73 86 Monterey CA USA June 2002 David Gay Philip Levis Robert von Behren Matt Welsh Eric Brewer and David Culler The nesC Language A Holistic Approach to Networked Embedded Systems In Proceedings of Programming Language Design and Implementation PLDI June 2003 GLCB03 David Gay Philip Levis David Culler and Eric Brewer nesC 1 1 Language Reference Manual In TinyOS documentation site May 2003 http nescc sourceforge net papers nesc ref pdf HSWHCP00a Jason Hill Robert Szewezyk Alec Woo Seth Hollar David Culler and Kristofer Pister System architecture directions for network sensors In Proceedings of Ninth International Conference ASPLOS Cambridge MA USA November 2000 HSWHCP00b Jason Hill and Robert Szewczyk and Alec Woo and Seth Hollar and David Culler and Kristofer Pister System architecture directions for network sensors In ASPLOS Cambridge MA November 2000 43 Hub00 Michel HUBIN 7rait sur les capteurs et la conception instrumentale 2000 http perso wanadoo fr michel hubin capteurs instr
95. syst mes Consid rons par exemple l utilisation de noyaux monolithiques pour les syst mes d exploitation Cette politique est souvent peu adapt e aux applications s ex cutant dessus car dans ce cas tous les appels syst mes potentiellement requis par un ensemble d applications cibles sont propos s Pourtant si on se place dans un domaine sp cifique ou si on sait qu un seul type d application sera ex cut alors seulement une partie de ces appels syst me sera effectivement utilis e Ainsi Think permet au concepteur de syst mes de ne s lectionner que les aspects essentiels pour les applications cibles Cette approche est particuli rement int ressante pour le monde des syst mes embarqu s et par extension pour celui des r seaux de capteurs l limination du superflu est un objectif capital afin de minimiser l utilisation des ressources 19 Cette section fournit une description non exhaustive du mod le Think en commengant premi rement par une pr sentation des concepts distinctifs de ceux pr sent s dans la section 113 1 sur l ing nierie bas e composant composants interfaces liaisons Puis nous pr sentons la notion de domaine ainsi que la biblioth que de composants i e Kortex Nous terminons cette section en expliquant les diff rentes tapes conduisant la g n ration d une image ex cutable 1 3 2 1 Les notions principales L architecture propos e dans Fas01 repose notamment sur l utilisation de
96. t mes embarqu s et deuxi ment il a t tabli que les mod les EJB CCM et OSGI taient trop lourds pour les WSNs SGVVRFO04 Nous nous situons ainsi dans le cadre de la proposition faite dans KNEKLM04 III 2 Vers un syst me d exploitation bas composants Il a t tabli dans la section pr c dente que le mod le propos par TinyOS est trop rigide pour fournir des services avanc s tels que par exemple la reconfiguration dynamique Or malgr une consommation de ressources notamment m moire un peu excessive l utilisation du mod le propos par Think semble prometteuse plus particuli rement en vue d ajouter les aspects dynamiques manquants au modele TinyOS L objectif de cette section est donc de pr senter la conception d un mod le de syst me d exploitation pour capteurs associant les aspects prouv s de TinyOS mais galement ceux de l ing nierie logicielle bas e composant au travers de Think La premi re caract ristique de TinyOS qu il nous semble utile d int grer dans Think est le mod le d ex cution bas v nement En effet un tel mod le est fr quemment utilis dans les syst mes embarqu s car il permet premi rement de g n rer une petite empreinte m moire et deuxi mement de pouvoir contr ler plus facilement l ordonnancement des activit s Une telle int gration est possible car une des philosophies de Think est justement de permettre la r alisation de n importe quel type de syst me d exploitatio
97. t rog n it des applications d veloppables sur de tels r seaux En effet dans les syst mes traditionnels un middleware est utilis pour masquer l h t rog n it des syst mes mis en r seau et faciliter le d veloppement d applications distribu es De plus il est d fini comme une couche logicielle servant d interm diaire entre le systeme d exploitation et une application distribu e Cependant la conception d un middleware pour les r seaux de capteurs n est pas une d marche triviale En effet le nombre et la s v rit des contraintes existantes constituent un premier obstacle son laboration De plus les r seaux de capteurs tant une technologie particuli rement r cente il n existe pas encore de consensus concernant la d finition des interfaces du syst me d exploitation Celles ci font toujours l objet de recherche En outre de nombreuses applications ex cutent des op rations mat rielles directement sans passer par un composant syst me 05 Malgr tout certaines fonctionnalit s r currentes dans les applications actuelles agr gation de donn es contr le et gestion du r seau permettent d tablir des premiers l ments dans la d finition d un tel middleware Dans ce cadre des principes de conception ont n anmoins t propos s dans BHRT04 et YKP04 Un middleware doit donc tre entre autre e Evolutif pour s adapter aux contraintes e G n rique pour s appliquer diff rentes applic
98. t d conomiser de la m moire En effet de fa on intuitive il est moins co teux de ne poss der qu un seul exemplaire de donn es plut t que plusieurs Ainsi dans TinyOS lorsque plusieurs composants utilisent des donn es similaires celles ci sont d clar es en tant que variables globales et sont stock es dans un espace m moire r serv leur effet ce qui correspond au cadre Global de la Figure 7 Les composants requ rant leur utilisation y acc dent au moyen d un pointeur Enfin un dernier espace m moire est r serv pour les variables locales Il s agit de l espace Stack pr sent sur la Figure 7 Celui ci fonctionne la mani re d une pile permettant l empilement et le d pilement de ces variables temporaires L empilement faisant diminuer l espace Free et le d pilement l augmentant L utilisation de la RAM d un mote peut donc tre mod lis e de la mani re suivante RAM Stack 58 Free Global Figure 7 Mod lisation de l utilisation de la m moire d un mote TOS05 sisa Le dernier concept fondateur concerne la concurrence Dans TinyOS celle ci peut tout d abord tre g n r e par des m canismes calculatoires diff r s les t ches Il s agit de sortes d appels de fonctions r alis s par les composants Cela consiste placer la fonction ex cuter selon sa priorit dans l ordonnanceur de TinyOS une file FIFO born e non pr emptive et se terminer imm diate
99. t requiert les interfaces mentionn es dans le fichier C1ientType ad1 De plus le composant est g n r automatiquement par les outils Think en se basant sur le code fonctionnel contenu dans temperatureGen c Enfin tous les composants temperatureGen cr s seront strictement identiques interfaces fournies et requises attributs utilis s etc Cela est mentionn via le mot cl template primitive temperatureGen implements ClientType Skeleton temperatureGen nolifecycle template Un exemple de fichier contenant le code fonctionnel d un composant primitif include activity api Main idl h include video api Console idl h struct temperatureGendata Imported interfaces Rvideo api Console console if defined ONLYDEFINITION include lt kortex h gt Template interfac x int randomize temperature jint max i return max 1 statie void mailnentiy void this jint arge Char argy DECLARE SELF struct temperatureGendata if self console CAI puitssyes 15 15 AESI int cpt 0 int temp 19 57 while cpt lt 10 temp randomize temperature temp printf temperature Sd n temp Cote while 1 struct Mactivity cpi Main t mperarureten meinmetn 1 main mainentry endif Conclusion Le composant Printf s av re n cessaire pour les affichages
100. taill en annexes 41 VI Conclusion Au cours de stage nous avons cherch d terminer si l utilisation des principes et des apports d une approche bas e v ritablement sur l ing nierie logicielle bas e composant pouvait tre conciliable avec les r seaux de capteurs Afin de r pondre cette probl matique nous avons dans un premier temps effectu des recherches sur le domaine des r seaux de capteurs afin d identifier les contraintes associ es aux capteurs et leurs mises en r seau Une fois ces principes de base fix s nous nous sommes dans un deuxi me temps concentr s sur l tude du syst me d exploitation de r f rence savoir TinyOS Cela nous a permis de d gager non seulement des m canismes prouv s mais galement les limites de ce syst me Une limite fondamentale a notamment t mise en vidence il s agit de l absence de m canisme de reconfiguration dynamique Parall lement cette analyse nous avons galement explor Think l impl mentation de Fractal pour les syst mes embarqu s Il s est av r que Think est en r alit un mod le permettant de cr er non seulement des syst mes d exploitation mais galement les applications fonctionnant dessus En outre ce mod le propose les aspects dynamiques manquant TinyOS En nous appuyant sur une comparaison des avantages et des inconv nients de ces deux mod les nous avons alors d gag les l ments fondamentaux n cessaires la con
101. te Celle ci nous permettra de mettre en vidence les l ments n cessaires la conception d une architecture logicielle pour les r seaux de capteurs Nous regarderons en particulier si Think Fractal peut servir d alternative afin de pallier les lacunes du mod le propos par TinyOS notamment ce qui concerne les aspects dynamiques 26 III Vers une architecture logicielle pour les r seaux de capteurs Le cadre d tude ayant t tabli dans la section pr c dente nous allons pr senter ici les principes de conception que nous envisageons pour un nouveau mod le de syst me d exploitation Celui ci permettra de corriger une des limites de TinyOS savoir l absence de reconfiguration dynamique En premier lieu nous expliquons donc les limites du mod le TinyOS III 1 Les limites de TinyOS Dans le but de r duire la taille des syst mes g n r s TinyOS effectue des optimisations et impose des restrictions Premi rement toutes les allocations m moire sont tablies statiquement d s la phase de compilation Deuxi mement le mod le d impl mentation fournit via NesC ne dispose pas de pointeurs de fonctions En cons quence aucune allocation dynamique n est possible Cela repr sente donc une des limites de TinyOS En effet une des caract ristiques pouvant tre requise par un r seau de capteur est l adaptativit aussi bien au niveau du r seau en lui m me qu au niveau d un de ses n uds La reconfiguration dynamique
102. toirement par exemple en parachutant des motes depuis un avion ou un bateau Dans ce cas il devient alors impossible de d terminer une configuration a priori du r seau En effet certains pourraient atterrir l envers ce qui les emp cheraient non seulement de faire leur travail de d tection mais galement de communiquer avec les autres l ments du r seau Pour rem dier ce probl me une auto organisation de ce dernier s av re n cessaire c est dire que les motes doivent savoir localiser les noeuds voisins et tablir les routes pour que l information puisse circuler travers le r seau Un deuxi me type de d ploiement consiste placer la main des capteurs dans des endroits strat giques mais cette solution devient impensable d s que l on consid re un tr s grand nombre de capteurs Enfin un m lange de ces deux techniques peut tre envisag De nouvelles techniques de routages doivent galement tre mises en place En effet dans les r seaux dits classiques comme les LANs Internet etc les paquets sont rout s via l adresse IP du destinataire Or dans un r seau WSN il peut arriver qu on s int resse moins l auteur d une donn e qu la donn e elle m me Par exemple si on reprend l exemple du thermom tre cela revient se demander Y a t il des endroits o il fait plus de 20 C et non Ou fait il plus de 20 C Cette technique particuli re est appel e bas attribut
103. u htm 1451 20011 A Standard Smart Transducer Interface Sensors Expo Philadelphia Oct 2001 Kra85 Sacha Krakowiak Principe des syst mes d exploitation des ordinateurs Dunod Informatique Paris 1985 KC03 Jeffrey Kephart and David Chess The vision of Autonomic Computing In IEEE Computer 36 1 pp 41 50 2003 KDM05 I Khemapech I Duncan and A Miller survey of wireless sensor networks technology In PGNET Proceedings of the 6th Annual PostGraduate Symposium on the Convergence of Telecommunications Networking amp Broadcasting June 2005 KNEKLM04 Sachin Kogekar Sandeep Neema Brandon Eames Xenofon Kousoukos Akos Ledeczi and Miklos Maroti Constraint Guided Dynamic Reconfiguration in Sensor Networks In Proc of Information Processing in Sensor Networks IPSN 04 Berkeley California April 26 27 2004 Lew04 Franck L Lewis Wireless Sensor Networks In Smart Environments Technology Protocols and Applications ed Diane Cook and Sajal Das John Willey New York 2004 Liu05 Ke Liu TinyOS Motes nesC Tutorial Pr sentation Departement of Computer Science SUNY Binghamton Spring 2005 LM amp all04 Konrad Lorincz David J Malan Thaddeus R F Fulford Jones Alan Nawoj Antony Clavel Victor Shnayder Geoffrey Mainland Matt Welsh Steve Moulton Sensor Networks for Emergency Response Challenges and Opportunities JEEE Pervasi
104. ure 8 Mod lisation de l ordonnanceur TinyOS Liu05 Pour pouvoir impl menter le mod le TinyOS un nouveau langage de programmation a t d velopp en s appuyant sur le langage C mais en le modifiant afin de prendre en compte les sp cificit s de ce mod le et les fortes contraintes du domaine Il s agit de nesC Ce langage d crit la section suivante II 2 2 NesC NesC est un langage de programmation con u pour la r alisation de syst mes embarqu s distribu s Il cible en particulier l impl mentation d applications pour les r seaux de capteurs Il offre donc une r activit importante vis vis de l environnement une gestion de la concurrence m me intensive et un support de communication De plus afin de tenir compte des fortes contraintes du domaine vis de nombreuses optimisations sont propos es pour diminuer l occupation de l espace m moire En outre afin de permettre un d veloppement simple robuste et rapide des applications nesC s appuie sur des concepts g n raux propos s dans l ing nierie logicielle bas e composant cf IL3 1 Il permet notamment la d composition d une application en modules r utilisables 14 Pour obtenir ces diff rents l ments nesC fournit d abord trois abstractions de programmation a savoir les interfaces les modules et les configurations Dans les diff rents exemples de code suivant les mots cl s du langage sont mis en vidence en gras Premi rement les inter
105. ve Computing vol 03 no 4 pp 16 23 Oct Dec 2004 LMGPSWBC04 P Levis S Madden D Gay J Polastre Szewczyk A Woo E Brewer and D Culler The emergence of networking abstractions and techniques in tinyOS in First Symposium on networked system design and implementation NSDI04 San Francisco California USA 2004 pp 1 14 Lob Olivier Lobry THINK A Software Framework for Component based Operating System Kernels Brochure January 2006 http www objectweb org wws d read marketing public projects Think pdf Mai06 Laetitia Mailhes Une nouvelle g n ration de m moires magn tiques Dans Les Echos no 19611 Innovation pp 30 22 f vrier 2006 44 Mau William Maurer The Scientist and Engineer s Guide to TinyOS Programming Chapter 3 TinyOS Components Based OS http ttdp org tpg html book c525 htm Pol04 Juraj Polakovic Dynamische Rekonfiguration in THINK Rapport de master Universitat Karlsruhe TH 30 Juni 2004 Pul Jacques Pulou THINK Tutorial Getting Started with Fractal Think http think objectweb org pdf tutorial_think pdf SGM02 Clemens Szyperski Dominik Gruntz and Stephan Murer Component Software Beyond Object Oriented Programming Second Edition ACM Press Addison Wesley New York NY 2002 SGVVRF04 Eduardo Souto Germano Guimaraes Glauco Vasconcelos Mardoqueu Vieira Nelson
106. vent une partie des recherches du projet Architectures Logicielles Composant et protocoL ALCooL du LIUPPA au sein duquel ce stage a t r alis Notre objectif est d expliquer l apport de l ing nierie logicielle bas e composant dans le domaine des r seaux de capteurs sans fil Plus particuli rement nous avons tudi la possibilit d utiliser une plate forme composant telle que Think dans les r seaux de capteurs et de proposer une architecture logicielle qui permette des services avanc s telle que la reconfiguration dynamique Pour r pondre cette probl matique la d marche suivante a t suivie En anglais Component Based Software Engineering CBSE Laboratoire Informatique de l Universit de Pau et des Pays de l Adour 1 e Etudier le syst me d exploitation TinyOS afin d en comprendre le fonctionnement et d en tablir les limites e Explorer le mod le Think dans l optique de proposer les bases d un mod le pour un nouveau syst me d exploitation mariant les fonctionnalit s prouv es de TinyOS et celles de l ing nierie logicielle bas e composant Proposer un mod le de m canisme de reconfiguration dynamique adapt au domaine des r seaux de capteurs Dans ce but nous allons dans un premier temps pr senter la section II les connaissances n cessaires au cadre de ce travail en d crivant les r seaux de capteurs TinyOS l ing nierie logicielle bas e composant et Think Dans un deux
Download Pdf Manuals
Related Search
Related Contents
5350_Electrocardiografo 3 Canales Mod BTL-08 SD3 InLine 69912C coaxial connector Read the hardware manual Toro Quick-Connect Perimeter Lighting Design Guide ADG721/ADG722/ADG723 ScanPartner 600C Image Scanner User`s Manual Yamaha YST-MSW10 Computer Speakers Copyright © All rights reserved.
Failed to retrieve file