4.5.2. Cycle de vie d’un agent

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

  • AP_INITIATED :l’objet Agent est construit, mais il n’est pas encore enregistré avec 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 (behaviour) 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 le 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.

F
Fig. 4.9 - Le cycle de vie d’un agent défini par FIPA