WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

La génération des diagrammes AUML à  partir d'un programme Jade

( Télécharger le fichier original )
par Zina Mecibah
Université Larbi Ben M'Hidi d'Oum El Bouaghi Algérie - Master en informatique - systèmes distribués - 2012
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Chapitre i : La plate forme multi agents JADE

ü Rechercher un service (search) [Fer05].

Donc les deux agents DF et AMS permettent de maintenir une liste des services et des adresses de tous les autres agents de la plate-forme.

3. MTS: MTS est un service permet la communication entre plusieurs plates-formes mais MTS sera chargé à la demande pour ne conserver par défaut que les fonctionnalités utiles à tout type d'utilisation [Fer05].

La plate-forme multi agent JADE peut être distribué sur plusieurs machine « les machines pas nécessairement possèdent le même système d'exploitation » et les configurations peuvent être modifié au démarrage des agents en les déplaçant d'une machine à une autre, ce qui permet une très grande portabilité des agents [9].

5. Les agents JADE

De point de vue de la programmation concurrente, un agent est un objet actif, ayant un thread de contrôle. Ainsi que JADE utilise un modèle de programmation concurrente "un thread-par-agent" au lieu d'un modèle "un thread-par-comportement" pour éviter une augmentation du nombre de threads d'exécution exigés sur la plate-forme d'agents.

L'agent Jade est conforme au standard FIPA 2002 et il possède toujours un état (APACTIVE, AP-DELETED...).

Dans JADE : Tout est objet : un agent est constitué de plusieurs classes, dont certaines

clefs :

ü Tout agent hérite de la classe : jade.core.Agent. « La classe Agent représente une super-classe commune pour tous les agents définis par l'utilisateur ».

ü L'identifiant d'un agent est une instance de la classe : jade.core.AID.

Les agents JADE sont actifs (ils peuvent dire Non et ils sont faiblement couplés), communiquent et interagissent avec les autres agents grâce à des messages et rend des services.

D'un point de vue plus technique, Jade est orienté vers une programmation concurrente où chaque agent est en « compétition ». Les concepteurs de Jade ont ainsi fait le choix de créer un thread (code parallelisable) par agent plutôt qu'un thread par comportement. Néanmoins, via le planificateur de tâches, un comportement peut se bloquer lui même pour éviter de gaspiller du CPU (Ex : pendant qu'il attend des messages).

Un agent se défini en étendant la classe jade.core.Agent :

Generation des diagrammes AlliviL d _partir de _programmes JADE

Cha_pitre i : La _plate forme multi agents JADE

import jade.core.agent;

public class monAgent extends Agent;

Chaque agent est identifié par un AID qui est récupérable via la méthode getAID(). Enfin pour personnaliser l'agent, il est obligatoire dans la méthode setup():

ü Enregistrer les langages de contenu.

ü Enregistrer les Ontologies.

ü Enregistrer les Services auprès du DF.

ü Démarrer les Comportements (behaviors).

Le nom d'un agent est défini sous la forme : <nom-agent>@<nom-plate-forme> et il doit être globalement unique (sur toutes les plateformes).

Les principales méthodes de la classe agent sont les suivantes :

ü getArguments() : pour obtenir les arguments d'un agent.

ü doDelete() : pour tuer un agent.

ü takeDown() : appelée quand un agent meurt .

Exemple d'agent JADE:

package firstAgent; import jade.core.Agent;

/** This example shows a minimal agent that just prints "Hello World!" and then terminates. */

public class HelloWorldAgent extends Agent {

protected void setup()

{

System.out.println("Hello World! My name is "+getLocalName()); // Make this agent terminate

doDelete();

}

}

5. 1. Le cycle de vie d'un agent JADE

Un agent JADE peut être dans l'une des différents états de son cycle de vie définis par les spécifications FIPA. Ces états sont représentés par des constantes dans la classe Agent qui figure dans les packages fournis avec la plateforme JADE :

Generation des diagrammes AllitiL d _partir de _programmes JADE

Cha_pitre i : La _plate forme multi agents JADE

Figure 1.5: Le cycle de vie d'un agent JADE [4]

ü AP INITIATED : l'objet Agent est construit, mais il n'est pas encore enregistré dans _

l'AMS, il ne possède ni un identificateur ni une adresse et ne peut pas communiquer avec d'autres agents.

ü AP_ACTIVE : l'objet Agent est enregistré avec l'AMS, il possède un nom correct et peut accéder à toutes les caractéristiques du JADE.

ü AP_SUSPENDED : l'objet Agent est actuellement stoppé. Son thread interne est suspendu et aucun comportement ne peut s'exécuter.

ü AP WAITING : l'objet Agent est bloqué. Son thread interne est en sommeil. Il peut se _

réveiller quand une condition est vérifiée (typiquement quand un message arrive).

ü AP_DELETED : l'exécution du thread interne de l'agent est terminée. L'agent n'est plus enregistré avec l'AMS.

ü AP_TRANSIT : un agent mobile entre dans cet état quand il migre à un nouvel emplacement. Le système continue à mémoriser les messages afin de les lui envoyer au nouvel emplacement.

ü AP COPY : cet état est utilisé intérieurement par le JADE pour cloner un agent. _

ü AP_GONE : cet état est utilisé intérieurement par le JADE quand un agent mobile a migré vers un nouvel emplacement et a pris un état stable.

La classe Agent fournit avec JADE possède des méthodes publiques qui permettent de changer l'état d'un objet Agent. Par exemple, la méthode doWait () permet de passer un agent de l'état AP_ACTIVE à l'état AP_WAITING.

Generation des diagrammes A11.7v1L d _partir de _programmes JADE

Cha_pitre 1 : La _plate forme multi agents JADE

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Des chercheurs qui cherchent on en trouve, des chercheurs qui trouvent, on en cherche !"   Charles de Gaulle