{"id":864,"date":"2018-08-29T18:43:38","date_gmt":"2018-08-29T21:43:38","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/?p=864"},"modified":"2021-06-15T10:20:04","modified_gmt":"2021-06-15T13:20:04","slug":"consulta-ams-spade","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/blog\/consulta-ams-spade\/","title":{"rendered":"Consulta ao AMS no SPADE"},"content":{"rendered":"\n<figure class=\"wp-block-pullquote\"><blockquote><p>Esse tutorial \u00e9 de uma vers\u00e3o antiga do SPADE (para Python 2.7)<\/p><\/blockquote><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse tutorial eu demonstro como identificar e listar o nome dos agentes existentes no ambiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O SPADE possui um agente chamado AMS, que \u00e9 a implementa\u00e7\u00e3o do componente AMS proposto pela FIPA e que tem por finalidade gerenciar os agentes do sistema. O agente AMS \u00e9 consultado para identificar os agentes existentes no ambiente e inicia automaticamente com a plataforma SPADE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando se cria um agente na plataforma, um processo de registro \u00e9 realizado automaticamente (ele \u00e9 definido na classe Agent que \u00e9 estendida ao definir o agente), assim como seu registro \u00e9 removido automaticamente quando esse agente finaliza.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo abaixo ir\u00e1 mostrar, atrav\u00e9s da linha 10, as refer\u00eancias dos objetos de cada agente em uma lista. As linhas 12 e 13 s\u00e3o respons\u00e1veis por percorrer cada um dos agentes retornados e mostrar apenas o nome desse agente.<\/p>\n\n\n\n<pre class=\"wp-block-code lang:lua decode:true\"><code lang=\"c\" class=\"language-c line-numbers\">import spade\nimport time\n\nclass MyAgent(spade.Agent.Agent):\n        class MyBehav(spade.Behaviour.OneShotBehaviour):\n                def _process(self):\n                        print \"Busca por agentes do ambiente\"\n                        aad = spade.AMS.AmsAgentDescription()\n                        search = self.myAgent.searchAgent(aad)\n                        print search\n                        \n                        for i in search:\n                            print i.getAID().getName()\n\n        def _setup(self):\n                print \"MyAgent starting . . .\"\n                b = self.MyBehav()\n                self.addBehaviour(b, None)\n\na = MyAgent(\"agent@127.0.0.1\", \"secret\")\na.start()\ntime.sleep(10)\t\na.stop()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O comportamento utilizado foi o&nbsp;<a href=\"http:\/\/www.galirows.com.br\/meublog\/blog\/comportamento-oneshot-spade\/\">OneShotBehaviour<\/a>, o que faz com que sejam mostrados os agentes registrados na plataforma apenas no instante que o agente \u00e9 executado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tr\u00eas agentes s\u00e3o retornados quando o c\u00f3digo for rodado. O primeiro \u00e9 o pr\u00f3prio agente, denominado &#8220;agent@127.0.0.1&#8221;. Os demais agentes s\u00e3o os agentes &#8220;df.127.0.0.1&#8221; e o &#8220;ams.127.0.0.1&#8221;, que gerenciam os servi\u00e7os prestados pelos agentes do sistema (o agente Diret\u00f3rio Facilitador) e o endere\u00e7amento de cada agente existente (o agente AMS).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esse tutorial \u00e9 de uma vers\u00e3o 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 \u00e9 a implementa\u00e7\u00e3o do componente AMS proposto pela FIPA e que tem por finalidade gerenciar os agentes do sistema. O [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[15,6],"tags":[20,33],"class_list":["post-864","post","type-post","status-publish","format-standard","hentry","category-agentes-e-sistemas-multiagentes","category-ia","tag-python","tag-spade"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/comments?post=864"}],"version-history":[{"count":4,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/864\/revisions"}],"predecessor-version":[{"id":1057,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/posts\/864\/revisions\/1057"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/media?parent=864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/categories?post=864"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/wp-json\/wp\/v2\/tags?post=864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}