Estrutura de desenvolvimento de agente Java - Java Agent Development Framework

JADE
Versão estável
4.5.0 / 8 de junho de 2017 ; 3 anos atrás  ( 08/06/2017 )
Escrito em Java
Plataforma Java SE
Modelo Sistema multiagente , estrutura de software
Licença GNU Lesser General Public License
Local na rede Internet jade .tilab .com  Edite isso no Wikidata

Java Agent Development Framework , ou JADE , é um framework de software para o desenvolvimento de agentes inteligentes , implementado em Java . O sistema JADE apóia a coordenação entre diversos agentes do FIPA e fornece uma implementação padrão da linguagem de comunicação FIPA-ACL , o que facilita a comunicação entre os agentes e permite a detecção dos serviços do sistema. JADE foi originalmente desenvolvido pela Telecom Italia e é distribuído como software livre .

Retomar

JADE é um middleware que facilita o desenvolvimento de sistemas multiagentes sob o padrão FIPA para o qual cria múltiplos containers para agentes, cada um deles podendo rodar em um ou mais sistemas. Entende-se que um conjunto de containers constitui uma plataforma.

JADE fornece:

  • Um ambiente onde os agentes JADE são executados
  • Bibliotecas de classes para criar agentes usando herança e redefinição de comportamentos
  • Um kit de ferramentas gráficas para monitorar e gerenciar a plataforma de agentes inteligentes

História

O JADE foi inicialmente desenvolvido pela Telecom Italia Lab. Este setor é o ramo de I&D do Grupo Telecom Italia, responsável pela promoção da inovação tecnológica. A Telecom Italia concebeu e promoveu o JADE baseando-o em 2000. As últimas datas disponíveis a partir de junho de 2017 (versão 4.5). A primeira versão do JADE distribuída como software livre está disponível a partir de fevereiro de 2000 (versão 1.3).

Em março de 2003, a Motorola e a Telecom Italia criaram o Conselho de Administração do JADE com o objetivo de promover o desenvolvimento e a adoção do JADE na indústria de telecomunicações móveis como middleware . O Conselho de Administração do JADE aceita que qualquer empresa e / ou organização interessada no uso e exploração comercial do JADE se comprometa com o seu desenvolvimento e promoção.

Plataforma

JADE é uma plataforma de agentes distribuída, que possui um contêiner para cada host onde você está executando os agentes. Adicionalmente, a plataforma conta com diversas ferramentas de depuração, mobilidade de código e agentes de conteúdo, possibilidade de execução paralela do comportamento dos agentes, bem como suporte para definição de linguagens e ontologias . Cada plataforma deve ter um contêiner pai com dois agentes especiais chamados AMS e DF.

  • O DF (Directory Facilitator) disponibiliza um diretório que informa quais agentes estão disponíveis na plataforma.
  • O AMS (Agent Management System) controla a plataforma. É o único que pode criar e destruir outros agentes, destruir containers e parar a plataforma.

Agente DF

Para acessar o agente DF, utiliza-se a classe "jade.domain.DFService" e seus métodos estáticos: registrar, cancelar o registro, modificar e Pesquisar .

Agente AMS

Para acessar o Serviço AMS, é criado um agente que executa automaticamente o método de registro do AMS por padrão, antes de executar a configuração do método do novo agente. Quando um agente é destruído, ele executa seu método takeDown () por padrão e chama automaticamente o método de cancelamento de registro do AMS.

Classe agente

A classe Agent é uma superclasse que permite aos usuários criar agentes JADE. Para criar um agente, é necessário herdar diretamente do Agente . Normalmente, cada agente registra vários serviços que devem ser implementados por um ou mais comportamentos.

Esta classe fornece métodos para realizar as tarefas básicas dos agentes como:

  • Passe mensagens por objetos ACLMessage, com correspondência de padrões
  • Apoie o ciclo de vida de um agente
  • Planeje e execute várias atividades ao mesmo tempo

Agente JADE

O ciclo de vida de um agente JADE segue o ciclo proposto pelo FIPA. Esses agentes passam por diferentes estados definidos como:

  1. Iniciado: O agente foi criado, mas ainda não registrou o AMS.
  2. Ativo: O agente foi registrado e possui um nome. Nesse estado, ele pode se comunicar com outros agentes.
  3. Suspenso: o agente foi interrompido porque seu encadeamento foi suspenso.
  4. Em espera: O agente está bloqueado à espera de um evento.
  5. Excluído: O agente terminou e seu thread encerrou sua execução e não há mais nenhum no AMS.
  6. Trânsito: o agente está se mudando para um novo local.

Comportamento dos agentes

O comportamento define as ações em um determinado evento. Este comportamento do agente é definido na configuração do método usando o método addBehaviour . Os diferentes comportamentos que o agente adotará são definidos a partir da classe abstrata Behavior. A classe Behavior contém os métodos abstratos:

  • action (): é executado quando a ação ocorre.
  • done (): é executado no final da performance.

Um usuário pode sobrescrever a propriedade onStart () e OnEnd () dos métodos . Além disso, existem outros métodos, como block () e restart (), usados ​​para modificar o comportamento do agente. Quando um agente está bloqueado, ele pode ser desbloqueado de diferentes maneiras. Caso contrário, o usuário pode substituir os métodos onStart () e onEnd () que o agente possui.

Desbloquear um agente

  1. Recebendo uma mensagem.
  2. Quando ocorre o tempo limite associado a block ().
  3. Reinício de chamada.

Mensagens ACL

A ACL (linguagem de comunicação do agente) de passagem de mensagens é a base da comunicação entre os agentes. O envio das mensagens é feito pelo método send da classe Agente. Neste método, você deve passar um objeto do tipo ACLMessage que contém as informações do destinatário, idioma, codificação e conteúdo da mensagem. Essas mensagens são enviadas de forma assíncrona, enquanto as mensagens são recebidas, elas serão armazenadas em uma fila de mensagens. Existem dois tipos de recebimento de mensagens ACL, bloqueadoras ou não bloqueadoras. Para isso, forneça os métodos blockingReceive () e receive () respectivamente. Em ambos os métodos, você pode filtrar as mensagens a serem recuperadas da fila, definindo modelos diferentes.

Extensões

O JADE possui uma extensão denominada WADE (Workflows and Agents Development Environment) que é um sistema de workflow que permite a criação de processos por meio de um editor gráfico denominado WOLF.

Veja também

Referências

  • Arquivo de notícias Jade
  • Guia do usuário Wade
  • Developing Multi-Agent Systems with JADE , Volume 7 Wiley Series in Agent Technology, Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood ISBN   9780470058404
  • Segurança e confiança em middleware orientado a agentes , Sixth International, OTM 2003 Workshops. OTM 2003. Lecture Notes in Computer Science, vol 2889. Springer, Berlin, A Poggi, M Tomaiuolo, G Vitaglione. ISBN   978-3-540-20494-7

links externos