• Aucun résultat trouvé

Fonctions avancées de gestion de données

Dans le document en fr (Page 178-181)

capteurs sans fil

4.2 Implémentation de la gestion de données

4.2.4 Fonctions avancées de gestion de données

Les différents traitements associés aux métadonnées contextuelles et aux propriétés interviennent au sein de certaines des fonctions qui ont été décrites jusqu’à présent dans ce chapitre. Cette section donne des indications sur la mise en place de ces fonctions de gestion des données avancées.

4.2.4.1 Utilisation des métadonnées contextuelles

Dans le chapitre précédent, les métadonnées ont été présentées comme une méthode pour réduire la quantité de données stockées et/ou transmises. Elles permettent donc d’économiser de la mémoire et de l’énergie. Suivant le dictionnaire d’interprétation utilisé, les métadonnées fournissent un premier niveau de sécurisation des données.

Les traitements relatifs à l’utilisation des métadonnées interviennent au niveau de différents composants du dispositif et essentiellement au sein du microsystème de fichiers LiveFile. Quand les métadonnées sont appliquées au niveau du stockage, les tests et conversions sont réalisés avant l’insertion dans le buffer de pré-programmation. En ce qui concerne la transmission, les données issues d’une page ou provenant du résultat d’une requête SQL sont transformées avant d’être fournies au module de communication.

Le dictionnaire d’interprétation est une structure stockant, pour chaque attribut de l’enregistrement, la valeur de la métadonnée utilisée. Si l’on reprend l’exemple de la section 3.3.2.1 du chapitre 3, la valeur « 0 » indique que la donnée issue du capteur de température ne subit pas de changement, la valeur « 1 » qu’elle est arrondie et la valeur « 2 » implique une recherche de l’intervalle dans laquelle la mesure de la température est présente.

Les informations présentes dans le dictionnaire d’interprétation sont ensuite utilisées par la fonction « datatometada() » pour effectuer les traitements requis (voir Figure 4.16).

Cette fonction gère également l’utilisation potentielle de plusieurs dictionnaires d’interprétation. Les données stockées sous forme d’enregistrement sont converties en chaînes de caractères pour pouvoir être insérées directement dans la mémoire Flash. Cette conversion est réalisée par la fonction « datatochar() ». Les traitements relatifs à une métadonnée contextuelle peuvent s’appliquer à plusieurs attributs. Le calcul d’une moyenne ou d’un

CemOA : archive ouverte d'Irstea / Cemagref

arrondi peut s’appliquer autant à une valeur de température qu’à celle d’une pression. En revanche, certaines opérations sont propres à un type de données. Les conversions d’une date en nombre de minutes ou de secondes écoulées depuis le début de l’année en est un exemple.

Figure 4.16 – Fonctionnement des métadonnées dans le stockage des données

Les performances du système sont liées aux traitements engendrés par les métadonnées contextuelles. Ceux-ci doivent bénéficier d’une implémentation optimisée à la fois en temps d’exécution et en taille de code. Pour les traitements lourds, une réflexion doit être menée pour déterminer l’emplacement le plus adapté à les héberger soit sur le capteur sans fil, soit au niveau de la station de collecte des données.

4.2.4.2 Utilisation des propriétés

Les propriétés présentes dans les données collectées sont établies avant leur stockage.

Suivant la politique de réservation des pages choisies, l’utilisation d’un buffer de pré-programmation peut complexifier la gestion des propriétés. La méthode la plus simple consiste à réserver une page ou un emplacement mémoire avant de recevoir des données.

L’emplacement de stockage est ainsi connu à l’avance et est indiqué directement dans la structure dédiée aux propriétés. L’autre méthode s’appuie sur une allocation de page ou d’emplacement seulement après avoir rempli le buffer de pré-programmation. Dans ce cas, un stockage intermédiaire des propriétés relatives aux enregistrements présents dans ce buffer est nécessaire pour pouvoir rajouter, par la suite, l’information sur l’emplacement de stockage finalement utilisé. Suivant le taux et la vitesse de renouvellement des données, l’une ou l’autre méthode est préconisée.

Comme pour les métadonnées contextuelles, les propriétés d’un enregistrement sont établies avant son stockage dans la mémoire Flash à partir d’un ou d’un ensemble de ses attributs. Si le rôle des métadonnées contextuelles est de prétraiter les données avant le stockage ou la transmission, celui des propriétés est d’accélérer l’interrogation. Ainsi, le moteur d’interrogation a été modifié pour pouvoir supporter des requêtes à base de propriétés (voir Figure 4.17).

CemOA : archive ouverte d'Irstea / Cemagref

Les principales fonctions impliquées dans la gestion des propriétés sont

« prop_extract() » et « prop_select() ». La première permet de déterminer les caractéristiques ou propriétés des enregistrements et est appelée depuis la fonction « record_insert() ». La seconde fonction intervient dans la fonction « query_process() » et sert à interroger les enregistrements stockés en mémoire Flash suivant une ou plusieurs propriétés données.

Figure 4.17 – Fonctionnement des propriétés

Différentes méthodes sont utilisables pour stocker les renseignements sur les propriétés :

• Utilisation de champ de bits ;

• Découpage en bits d’un caractère ;

• Structure à base de caractères.

Comme dans le cas des adresses de mémoire Flash, chaque mode de stockage des propriétés a ses avantages et ses inconvénients. Par exemple, les solutions qui minimisent la taille mémoire impliquent des traitements de pré et post-stockage (voir Figure 4.18).

Figure 4.18 – Différentes solutions pour le stockage des propriétés

typedef struct propriete2{

unsigned int page;

unsigned char idrec;

unsigned char p1;

unsigned char p2;

} prop2_;

typedef struct propriete{

unsigned int page : 22;

unsigned int idrec : 8;

unsigned int p1 : 1;

unsigned int p2 : 1;

} prop_;

CemOA : archive ouverte d'Irstea / Cemagref

L’espace mémoire disponible et envisagé pour stocker les informations propres aux propriétés conditionne leur emploi. En effet, cette technique d’accès plus rapide aux données est obtenu au détriment d’une consommation plus importante des ressources en puissance de calcul et de mémoires à la fois RAM et Flash. Le tableau contenant les informations sur les propriétés est stocké en mémoire vive avant une éventuelle programmation en mémoire Flash dans le cadre d’une procédure de sauvegarde du système (« checkpoint »).

Dans le document en fr (Page 178-181)