Title: SUMÁRIO
Author: Andreia Saldanha
Last saved by: Eduardo Bastos
Company: HOME

EM DIREÇÃO A UMA PLATAFORMA HÍBRIDA DE COMUNICAÇÃO DE AGENTES PARA O SISTEMA ZMAS
Bastos, E. N. F.^1*; Costa, A. C. da R. ^1; Palazzo, L. A. M. ^1
^1Núcleo de Apoio a Projetos de Informática – NAPI – ESIN/UCPEL
Caixa Postal 402 – CEP 96010-000
_* eduardob@ucpel.tche.br

1.	INTRODUÇÃO

Em uma sociedade de agentes, um dos aspectos mais relevantes é a capacidade de cooperação na solução de um problema comum. Torna-se necessário então definir uma arquitetura que possibilite a interação entre esses agentes. Usualmente define-se um módulo de comunicação, subdivido nos componentes de percepção e de ação, que está diretamente ligado ao módulo central do agente.
Estas interações ocorrem de acordo com o processo de comunicação disponível, podendo ser de forma direta ou indireta. A comunicação direta é suportada pelas arquiteturas baseadas em trocas de mensagens. Já a estrutura que identifica a comunicação indireta são as arquiteturas denominadas quadro negro (do inglês, blackboard).
O presente trabalho está centrado no desenvolvimento de uma plataforma de sistema multiagente, denominada ZMAS (ZOPE MultiAgent Systems) [2]. O artigo descreve o desenvolvimento de uma plataforma híbrida de comunicação de agentes, baseada em especificações da FIPA-ACL (Agent Communication Language), a qual possibilita a comunicação direta entre os agentes via troca de mensagens, e na estrutura quadro negro, que permite a comunicação indireta entre os agentes através do acesso a uma estrutura de dados central.

2.	MATERIAL E MÉTODOS

Os estudos da área de comunicação são inspirados em trabalhos tradicionais da filosofia da linguagem, em especial a teoria de atos da fala. Esta teoria iniciou-se com o trabalho do filósofo John Austin [1] e foi posteriormente estendida por John Searle [5]. Esta extensão serviu de modelo para o estudo da comunicação entre agentes computacionais e de base e inspiração para a criação e fundamentação das linguagens de comunicação entre agentes. 
A teoria de atos da fala visualiza a linguagem natural humana como ações e propõe uma categorização destas em primitivas de comunicação. A premissa fundamental é que uma expressão lingüística consiste de dois componentes: o conteúdo semântico e a intenção do falante. Este último assegura a interpretação correta, e não ambígua, de uma mensagem, utilizando, para tal fim, “performativas", as quais identificam a intencionalidade desejada.
Vários esforços vem sendo realizados nos últimos anos na especificação de linguagens de comunicação de agentes. A organização FIPA (Foundation for Intelligent Physical Agents) [4], mantida atualmente pela empresa Emorphia, desenvolve padrões para sistemas multiagentes, que atualmente se apresentam como a melhor alternativa para a especificação e implementação da comunicação entre os agentes, de uma forma padronizada e interoperável.
A estrutura das mensagens FIPA-ACL [3], é composta por um identificador do tipo de ato comunicativo (performativa) seguido de um conjunto de slots (parâmetros). A representação do conteúdo em uma mensagem pode ser feita através da SL (Semantic Language), KIF (Knowledge Interchange Format), CCL (Constraint Choice Language) e RDF (Resource Description Framework).
Um sistema de comunicação entre os agentes via troca de mensagens pode assumir uma de duas arquiteturas básicas, representadas nas Figuras 1 e 2.

Figura 1 – Estrutura de comunicação direta

Na comunicação direta (vide Figura 1) os agentes tratam da sua própria comunicação e coordenação sem intervenção de qualquer outro agente. Nesta abordagem dois principais problemas existem: (i) a complexidade de implementação, pois cada agente necessita armazenar informações detalhadas sobre todos os outros agentes, a fim de realizar a comunicação; e (ii) o custo e volume de comunicações, já que todos agentes podem decidir se comunicar ao mesmo tempo, ocasionando em última instância o bloqueio do sistema.

Figura 2 – Estrutura de comunicação assistida

Já na comunicação assistida (vide Figura 2) os agentes apóiam-se em entidades especiais designadas “agentes facilitadores", de forma a efetuarem a comunicação com os outros agentes. Nesta arquitetura, a organização de agentes é do tipo sistema federado, e o problema da coordenação da comunicação é resolvida parcialmente, reduzindo consideravelmente a complexidade necessária aos agentes individuais na realização da comunicação. Todavia, a existência do papel de “agente facilitador" pode introduzir uma certa centralização e estrangulamento (bottleneck) no sistema de comunicações, e ainda se este deixar de funcionar, o sistema de comunicação fica comprometido.
A arquitetura de quadro negro fornece uma estrutura de dados central, única e compartilhada entre os vários agentes, onde as informações podem ser lidas e escritas durante o desenvolvimento de tarefas. Como não há comunicação propriamente dita entre os agentes, todas as interações ocorrem através do quadro negro, e por esta razão os agentes devem consultar de tempos em tempos a estrutura para verificar se existe alguma informação nova endereçada para eles. O esquema da estrutura de quadro negro pode ser visualizado na Figura 3.

Figura 3 – Estrutura de quadro negro

Observa-se na Figura 3 o uso do banco de dados ZODB (ZOPE Object DataBase), como estrutura de quadro negro. Salienta-se a sua facilidade de uso e integração com a aplicação, uma vez que esta base dados é transacional e orientada a objetos, sendo fornecida na distribuição básica do ZOPE.

Figura 4 – Estrutura do monitor | Figura 5 – Grafo de acesso a monitores

Apesar desta abordagem ser simples e eficiente, um dos problemas que ocorre é a sincronização e resolução de conflitos entre os agentes, devido à centralização da informação e do controle. Uma alternativa é utilizar monitores, que encapsulam dentro de si as estruturas de dados às quais os agentes devem ter acesso, juntamente com todos os procedimentos necessários para o acesso mutuamente exclusivo e a correta manipulação dos dados. Desta forma, é garantido a integridade dos dados frente aos sucessivos acessos por parte dos agentes.
A Figura 4 apresenta a estrutura de um monitor. Através da porta de entrada é realizada a exclusão mútua entre ativações de rotinas de sincronização, e, por sua vez, a porta de saída estabelece o fim da execução. Os agentes podem se autobloquear à espera da ocorrência de algum evento, por meio do uso de variáveis condição. Os sinalizadores indicam a ocorrência de uma condição para o agente que espera por ela há mais tempo.
A Figura 5 ilustra um grafo de acesso a monitores. Para determinado acesso a um dado compartilhado, um agente deve ter permissão de acesso ao monitor, que por sua vez encapsula a estrutura de dados. As rotinas de inicialização têm como função definir os valores iniciais das variáveis compartilhadas. 

4. RESULTADOS E DISCUSSÕES

A passagem de mensagens entre agentes é o modo de comunicação mais utilizado, por assegurar a privacidade de informação e rapidez com que a mensagem é transmitida. Entretanto, considerando uma arquitetura de comunicação direta, deve-se garantir que os agentes possam receber mensagens constantemente e inversamente prever a possibilidade de uma mensagem enviada não ser recebida pelo agente destinatário. Este problema pode ser resolvido utilizando uma arquitetura de comunicação assistida, onde um “agente facilitador" mantém as mensagens ainda não recebidas pelos destinatários e as envia periodicamente até que o agente a receba. No entanto, a implementação desta arquitetura implica geralmente uma menor eficiência ao nível de rapidez de transmissão.
Do ponto de vista da arquitetura do quadro negro, deve-se considerar a preocupação com a distribuição de dados, sincronização dos agentes, privacidade de informação e a rapidez de acesso à memória. Porém, o uso de uma memória compartilhada, resolve os problemas suscitados pela troca de mensagens.

4. CONCLUSÕES

O presente trabalho utiliza estas duas formas de comunicação entre agentes. A priori os agentes se comunicam através do banco de dados ZODB, utilizando a arquitetura de quadro negro. Porém, quando as mensagens são emergenciais ou privativas é utilizada a comunicação assistida entre os agentes, por permitir a rápida transmissão e a privacidade de informação.

5.	REFERÊNCIAS BIBLIOGRÁFICAS

[1] AUSTIN, J. L. How to do things with words. Oxford University Press, London, 1962.
[2] BASTOS, E. N. F. ZMAS: ZOPE MultiAgent Systems. Technical report, Universidade Católica de Pelotas, 2004.
[3] FIPA00061: FIPA ACL Message Structure Specification. (disponível via WWW em http://www.fipa.org/specs/fipa00061/).
[4] FIPA (Foundation for Intelligent Physical Agents). (disponível via WWW em http://www.fipa.org/).
[5] Searle, J. R. Speech Acts: An Essay in the Philosophy of Language. Cambridge University Press, Cambridge, 1970.