Consulta ao AMS no SPADE

Esse tutorial é de uma versão antiga do SPADE (para Python 2.7)

Nesse tutorial eu demonstro como identificar e listar o nome dos agentes existentes no ambiente.

O SPADE possui um agente chamado AMS, que é a implementação do componente AMS proposto pela FIPA e que tem por finalidade gerenciar os agentes do sistema. O agente AMS é consultado para identificar os agentes existentes no ambiente e inicia automaticamente com a plataforma SPADE.

Quando se cria um agente na plataforma, um processo de registro é realizado automaticamente (ele é definido na classe Agent que é estendida ao definir o agente), assim como seu registro é removido automaticamente quando esse agente finaliza.

O código abaixo irá mostrar, através da linha 10, as referências dos objetos de cada agente em uma lista. As linhas 12 e 13 são responsáveis por percorrer cada um dos agentes retornados e mostrar apenas o nome desse agente.

import spade
import time

class MyAgent(spade.Agent.Agent):
        class MyBehav(spade.Behaviour.OneShotBehaviour):
                def _process(self):
                        print "Busca por agentes do ambiente"
                        aad = spade.AMS.AmsAgentDescription()
                        search = self.myAgent.searchAgent(aad)
                        print search
                        
                        for i in search:
                            print i.getAID().getName()

        def _setup(self):
                print "MyAgent starting . . ."
                b = self.MyBehav()
                self.addBehaviour(b, None)

a = MyAgent("agent@127.0.0.1", "secret")
a.start()
time.sleep(10)	
a.stop()

O comportamento utilizado foi o OneShotBehaviour, o que faz com que sejam mostrados os agentes registrados na plataforma apenas no instante que o agente é executado.

Três agentes são retornados quando o código for rodado. O primeiro é o próprio agente, denominado “agent@127.0.0.1”. Os demais agentes são os agentes “df.127.0.0.1” e o “ams.127.0.0.1”, que gerenciam os serviços prestados pelos agentes do sistema (o agente Diretório Facilitador) e o endereçamento de cada agente existente (o agente AMS).

Share

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.