• Aucun résultat trouvé

diagramme de séquence de détection des désactive et échoue

A.2 Conférences Internationales

4.13 diagramme de séquence de détection des désactive et échoue

La technique est utilisée après la détection de l’échec. Chaque objet de notre système choisit un entier aléatoire et diffus ce nombre à tous les objets système. L’objet qui a le nombre maxi-mum prend le rôle d’informer le serveur de dépannage.

4.6 Conclusion

Dans ce chapitre nous avons presenté nos contributions, nous avons commencé par l’archi-tecture génerale de notre approche cloud computing baseé IoT pour le smart house, nous avons detaillé chaque éléments de l’architecture.

Nous avons detaillé les differents couches du dispositif IoT en ce concentrent sur la couche ajoutée qui est "Layer Agent", Afin de minimiser le nombre de capteurs dans l’environement, nous avons montré l’IoT Robot que nous avons expliqué chaque module et le detaillé avec des diagrames.

Nous avons mis le point sur l’API que nous avons bati, cette API qui refléte un simulater de de maison intelligante.

En fin et afin de visualiser la communication inter objets ,nous utiliser deux diagrammes de sequence de deux scenaries.

Résultat et mise en oeuvre

5.1 Introduction

Dans le processus du développement, l’implémentation d’un logiciel vient après un enchai-nement de plusieurs étapes et son but principal est de réaliser un produit capable de résoudre les problèmes posés en utilisant des outils et des algorithmes.

Dans le but de réaliser et valider les idées proposées dans le chapitre 4, le présent chapitre montre les outils et les configurations utilisées afin de développer ce système.

Dans ce chapitre nous allons présenter les outils et les plateformes utilisés pour développer notre approche. Ensuite, nous présentons quelques interfaces qui montrent les résultats obte-nus. Puis, nous présentons une discussion sur les résultats pour chaque évaluation.

5.2 Outils et plateformes utilisés

Dans cette section, nous allons présenter les plateformes utilisées afin de réaliser notre sys-tème. Les implémetations ont été réalisées en utilisant un ordinateur de processeur Core I3 avec une RAM de 8 Go sous Windows 7, mais on peut implémenter ce système sur n’importe quelle machine grâce à la machine virtuelle du Java.

Pour développer les agents, nous avons utilisés la plateforme JADE, grâce aux avantages du cette dernière qui nous offre un langage de communication entre les agents en utilisant le FIPA-ACL. Afin de simuler les idées proposées, nous avons créé une plateforme pour simuler les

res-sources virtuelles d’un smart-home ainsi que les tâches réalisées dans notre système.

5.3 Plateforme JADE

Afin d’assurer le bon fonctionnement de notre systéme et à cause de la nature de notre architecture qui est basée sur les agents, nous avons utilisé la plateforme de développement des systèmes multi -agent JADE, qui comporte un ensemble d’outils et d’API qui permettent la construction et la mise en service des agents sur un contexte bien spécifique.

5.3.1 Présentation générale

JADE est une plateforme implémentée avec le langage JAVA. Ce Framework est destiné aux développeurs qui s’intéressent à créer des systèmes multi-agents, et qui assure un langage de communication prédéfini et représenté dans les standards FIPA-ACL. Parmi les avantages of-ferts par la plateforme JADE ; l’interopérabilité sans limite pour les applications quelles prennent en charge, et l’indépendance de cette plateforme du système d’exploitation ou du matériel sur laquelle elle est implémentée [28]. JADE est composée de trois principaux modules qui dé-pendent directement des normes FIPA :

DF :pour Directory Facilitator en anglais, qui sert à la fourniture d’un service de «page jaune» à toute la plateforme JADE.

ACC :pour Agent Communication Channel en anglais, qui représente l’outil de gestion de communication entre agents, pour la plateforme JADE.

AMS :pour Agent Management System en anglais, qui représente l’outil de gestion (au-thentification, supervision, accès ... etc.) des agents de la plateforme JADE.

5.3.2 Architecture du logiciel

JADE est une plateforme basée sur les standards FIPA. En outre, le modèle de base de l’ar-chitecture de la plateforme JADE proposée par FIPA est intitulé AMRM (Agent Management Reference Model en anglais). Chaque module, qui compose l’architecture de cette plateforme, est présenté sous forme de service, ce qui permet aux agents de bénéficier d’une plateforme

orientée service, afin de faciliter la communication et la collaboration entre eux [109].

Afin d’assurer un fonctionnement efficace des agents sur la plateforme JADE, cette dernière utilise :

AID :pour Agent Identifier en anglais, afin de distinguer et d’identifier chaque agent.

DF :joue le rôle d’un annuaire qui enregistre les compétences de chaque agent. Les pages jaunes fournis par ce service, sont destinées à mettre en relation les différents agents fonctionnels sur la plateforme JADE, et cela pour qu’un agent puisse consulter et inter-roger ce service, afin d’obtenir des informations sur les compétences des autres agents et par conséquent, d’assurer une bonne collaboration entre eux.

AMS :joue le rôle d’un annuaire pour l’enregistrement des adresses de transport des dif-férents agents de la plateforme. Le but est de fournir un service de «pages blanches» afin de mettre en correspondance les agents avec l’AID, pour faciliter leur contrôle et super-vision.

5.4 Simulateur smart house

Le simulateur est une API de simulation de maison intelligente basée sur le langage Java et une interface graphique très riche créée par le langage JavaFX, cette interface fournit au pro-grammeur et au chercheur un environnement pour simuler une maison intelligente. Il lui donne également le contrôle des appareils électroménagers virtuels.

Dans notre environnement, nous avons six IoT VD, chaque appareil a deux méthodes prin-cipales :

1. Méthode d’affectation des états : il s’agit d’une méthode pour modifier l’état du péri-phérique(ON, OFF, SUSPENDU) pendant le fonctionnement de l’environnement sans relancer l’exécution de l’API ; Le statut à passer comme paramètre dans la méthode Set (états), pour appeler la méthode set dans une autre classe, procédez comme suit :

Name of Main Class (.) LinFiSim instance (.) Set_Method(status)

MainClass.L.Set_LAMP_1_Status(Status.start);//Example

Le climatiseur virtuel a deux autres méthodes définies : la température définie et l’hu-midité définie qui définissent les valeurs pour stabiliser la température et l’hul’hu-midité de l’atmosphère et de l’environnement. La température et l’humidité à passer en paramètre dans la méthode Set (int).

L’API a une méthode Status_show (booléenne) qui affiche un tableau dans l’interface de simulateur pour expliquer l’état de chaque périphérique si la valeur du paramètre est vraie, le tableau est affiché sinon le tableau ne s’affiche pas.

2. La méthode de récupération la valeur de l’état :il s’agit d’une méthode pour obtenir l’état du périphérique (ON, OFF, SUSPENDU) pendant le fonctionnement de l’environ-nement sans relancer l’exécution de l’API ; la méthode get retourne l’état du périphé-rique, le type de valeur retournée est status, pour appeler la méthode get dans une autre classe, défine comme suit :

Status variable=Name of Main Class (.) LinFiSim instance (.) Get_Method()

Status s=MainClass.L.Get_LAMP_1_Status();//Example

Le climatiseur virtuel a deux autres méthodes Get : Obtenir la température et l’humidité qui obtient les valeurs de la température et de l’humidité de l’atmosphère et de l’environnement. Le type de valeur de retour est un entier.

Ce tableau définit les méthodes de chaque appareil :

TABLE5.1 – Méthodes d’IoT VDs

Dans notre environnement, nous avons également quatre IoT VS, chaque capteur possède deux méthodes principales :

Dans cette section, nous expliquons et clarifions certaines méthodes d’appel de l’interface de programmation d’application.

5.4.1.1 Lancement de l’interface graphique du simulateur

Cette classe (MainLinfiSim) expliquer comment lancer l’interface graphique du simulateur ( Figure5.1), nous instancions un objet (L) du simulateur de classe (voir ligne 5) pour l’interface

graphique du simulateur de spectacle, nous avons déclaré une méthode main () et nous faisons appel à la méthode publique Start_LinfiSim() ; (voir ligne 11) pour exécuter le code.

1. import java.io.IOException;

2. import linfisim.LinFiSim;

3.

4. public class MainLinfiSim {

5. public static LinFiSim L=new LinFiSim();//declaration of LinFiSim object in the main class

6. /**

7. * @param args the command line arguments 8. * @throws java.io.IOException

9. */

10. public static void main(String[] args) throws IOException {

11. L.Start_LinfiSim();//Starting the simulation window LinFiSim GUI

12. }

13.

14. }