Implementando os SMA Viviane Torres da Silva viviane

  • Slides: 49
Download presentation
Implementando os SMA Viviane Torres da Silva viviane. silva@ic. uff. br http: //www. ic.

Implementando os SMA Viviane Torres da Silva viviane. silva@ic. uff. br http: //www. ic. uff. br/~viviane. silva/2010. 1/isma

Motivação Ø Motivação: Como implementar as entidades de um SMA (agentes, organizações, objetos, .

Motivação Ø Motivação: Como implementar as entidades de um SMA (agentes, organizações, objetos, . . )? – Não existe uma linguagem de programação para SMA que possibilite implementar todas as características dos agentes Ø Objetivo: propor frameworks e plataformas que se baseiem em linguagens de implementação já conhecidas – Linguagens OO Ø Solução: frameworks e plataformas baseados em Java – ASF, Jadex, Jack, ASF, Jason, . .

Arquitetura BDI Arquitetura abstrata para implementação de SMA

Arquitetura BDI Arquitetura abstrata para implementação de SMA

Arquitetura BDI Ø Modelo proposto por Bratman em 1987 Ø Modelo consiste de: –

Arquitetura BDI Ø Modelo proposto por Bratman em 1987 Ø Modelo consiste de: – Beliefs: crenças – Desire: desejos ou objetivos – Intetions: intenções ou planos Ø Arquitetura BDI proposta por Rao e Georgeff em 1995 – É uma arquitetura abstrata

Arquitetura BDI

Arquitetura BDI

FIPA (Foundation for Inteligent Physical Agents) ISMA Viviane Torres da Silva

FIPA (Foundation for Inteligent Physical Agents) ISMA Viviane Torres da Silva

FIPA Ø FIPA: propõe padrões para organizar os agentes e os sistemas multi-agente

FIPA Ø FIPA: propõe padrões para organizar os agentes e os sistemas multi-agente

FIPA: Agent Management Ø Agent Platform (AP): plataforma onde o agente executa – Estrutura

FIPA: Agent Management Ø Agent Platform (AP): plataforma onde o agente executa – Estrutura física onde o agente se encontra Service

FIPA: Agent Management Ø Directory Facilitator (DF): provê um serviço de páginas amarelas para

FIPA: Agent Management Ø Directory Facilitator (DF): provê um serviço de páginas amarelas para os agentes. – cada agente registra o serviço que oferece. Ø Agent Management System (AMS): controla o acesso e o uso da plataforma – só existe um por plataforma – todo agente de uma AP precisa se registrar no AMS – contém uma lista de endereços dos agentes registrados na plataforma – oferece serviço de páginas brancas para conhecer os agentes registrados Ø Message Transport Service (MTS): serviço de comunicação entre agentes de diferentes plataformas

FIPA: Agent Message Transport Ø Define as três possíveis formas de comunicação – ACC

FIPA: Agent Message Transport Ø Define as três possíveis formas de comunicação – ACC : Agent Communication Channel (liga com a buferização da mensagem, o endereçamento, a transferência, os erros, . . . )

FIPA: Agent Message Transport Envelope: detalhes do transporte Payload: mensagem ACL comprimida

FIPA: Agent Message Transport Envelope: detalhes do transporte Payload: mensagem ACL comprimida

JADE Java Agent Development Framework http: //jade. tilab. com/

JADE Java Agent Development Framework http: //jade. tilab. com/

JADE Ø Jade é um framework para o desenvolvimento de SMA Ø Atualmente na

JADE Ø Jade é um framework para o desenvolvimento de SMA Ø Atualmente na versão 4. 0 – Slides associados a versão 3. 6. 1 Ø Inclui: – Um ambiente de execução onde os agentes JADE "vivem" e que deve estar ativo em um host antes que um agente possa ser executado – Uma biblioteca de classes que programadores podem usar para desenvolver agentes – Um conjunto de ferramentas gráficas que permite a administração e o monitoramento das atividades dos agentes em execução

Conceitos Importantes Ø JADE deve ser utilizado para … – implementar sistemas distribuídos –

Conceitos Importantes Ø JADE deve ser utilizado para … – implementar sistemas distribuídos – agentes móveis Ø Contêiner – Instância de um ambiente Jade – É onde os agentes executam – Ao iniciar o Jade, um Main. Container é criado Ø Plataforma – Conjunto de contêineres ativos

Contêineres e Plataformas

Contêineres e Plataformas

Modelo FIPA JADE segue o modelo de desenvolvimento da FIPA Ø Todo Main. Container

Modelo FIPA JADE segue o modelo de desenvolvimento da FIPA Ø Todo Main. Container tem um AMS e um DF Ø Ø Agent Management System (AMS) – Agente que exerce o controle sobre o acesso e o uso da plataforma – Existe um único AMS por plataforma – Mantém a lista de identificadores dos agentes (AID) que estão na plataforma – Todo agente deve se registrar no AMS Ø Directory Facilitator (DF) – Oferece o serviço de páginas amarelas na plataforma

Classe Agent Ø Representa a classe base para a definição de agentes Ø Para

Classe Agent Ø Representa a classe base para a definição de agentes Ø Para o desenvolvedor, um agente Jade é uma instância de uma classe Java que estende a classe Agent Ø Já oferece todas as interações básicas da plataforma (registro, configuração, etc. . . ) Ø Oferece um conjunto de métodos para a implementação do comportamento do agente

Modelo Computacional do Agente Ø Um agente é multi-tarefa, onde os serviços são executados

Modelo Computacional do Agente Ø Um agente é multi-tarefa, onde os serviços são executados concorrentemente Ø Cada serviço de um agente deve ser implementado como um ou mais comportamentos Ø A classe Agent oferece um scheduler (não acessível ao programador) que gerencia automaticamente o agendamento dos comportamentos

O Ciclo de Vida de um Agente I/III

O Ciclo de Vida de um Agente I/III

O Ciclo de Vida de um Agente II/III Ø Iniciado – O objeto agente

O Ciclo de Vida de um Agente II/III Ø Iniciado – O objeto agente é criado, mas ainda não se registrou no AMS, i. e. não possui um identificador e não pode se comunicar com outros agentes Ø Ativo – O objeto agente está registrado no AMS, possui um identificador e pode executar seus serviços Ø Suspenso – O objeto agente está parado, i. e. sua thread interna está suspensa e o agente não está executando serviço algum

O Ciclo de Vida de um Agente III/III Ø Esperando – O agente está

O Ciclo de Vida de um Agente III/III Ø Esperando – O agente está bloqueado, esperando por algum evento, i. e. sua thread interna está dormindo e será acordada quando uma condição se tornar verdadeira Ø Removido – O agente terminou sua execução, i. e. sua thread interna acabou sua execução e o agente não está mais registrado no AMS Ø Em Trânsito – Um agente móvel entra neste estado quando está migrando para um novo local (contêiner). O sistema continua a armazenar as mensagens enviadas a este agente, que lhe serão passadas quando ele estiver no novo local

Criando um agente Jade Ø Jade gerencia a criação de um novo agente com

Criando um agente Jade Ø Jade gerencia a criação de um novo agente com os seguintes passos Ø O construtor do agente é executado – O agente recebe um identificador do AMS – Ex: agente@localhost: 1099/JADE • nome. Agente @ nome. Plataforma : numero. Porta / JADE – Entra no estado Ativo Ø É executado o método setup() – Método responsável por inicializar os comportamentos do agente

Destruindo um agente Jade Ø Mesmo que não esteja fazendo coisa alguma, o agente

Destruindo um agente Jade Ø Mesmo que não esteja fazendo coisa alguma, o agente continua ativo Ø Para terminar um agente, deve-se executar o método do. Delete() que chama o método take. Down() (pode ser reimplementado) – Serve para remover todas as referências ao agente da plataforma

Classe Behaviour Ø Todas as tarefas dos agentes são executadas por meio de "comportamentos"

Classe Behaviour Ø Todas as tarefas dos agentes são executadas por meio de "comportamentos" Ø Um comportamento é um objeto da classe Behaviour Ø O agente adiciona um comportamento com o método add. Behaviour(X) Ø Comportamentos podem ser adicionados a qualquer momento com o método remove. Behavior(X)

Classe Behaviour Ø Método action() – Método que define as operações que são executadas

Classe Behaviour Ø Método action() – Método que define as operações que são executadas quando o comportamento está em execução Ø Método done() – Método que especifica se um comportamento foi completado e deve ser removido do pool de comportamentos que um agente está executando

Hierarquia de comportamentos I/II Ø Comportamentos Simples – Modelam os comportamentos atômicos – One.

Hierarquia de comportamentos I/II Ø Comportamentos Simples – Modelam os comportamentos atômicos – One. Shot. Behaviour: modela comportamentos que só devem executar uma vez e que não podem ser bloqueados (parar o comportamento até que algum evento ocorra) – Cyclic. Behaviour: Modela comportamentos atômicos que devem ser executados eternamente Ø Comportamentos Compostos – Modelam comportamentos que são compostos de outros comportamentos. – As operações que devem ser executadas não estão definidas neste comportamento em si, mas nos comportamentos filhos que o compõem – Sequential. Behaviour, Parallel. Behaviour e FSMBehaviour

Hierarquia de comportamentos II/II Ø Comportamentos compostos – Sequential. Behaviour: Executa seus sub-comportamentos seqüencialmente

Hierarquia de comportamentos II/II Ø Comportamentos compostos – Sequential. Behaviour: Executa seus sub-comportamentos seqüencialmente e termina quando todos estes estiverem terminados – Parallel. Behaviour: Executa seus sub-comportamentos concorrentemente e termina quando uma condição particular sobre o conjunto de subcomportamentos é alcançada – FSMBehaviour: Executa seus sub-comportamentos como uma Máquina de Estados Finita (FSM). Quando uma tarefa acaba, sua saída é usada para se calcular a transição para a próxima tarefa. O comportamento termina quando uma tarefa final é executada

Comportamentos Especiais Ø Waker. Behaviour – Comportamento que espera um determinado período de tempo

Comportamentos Especiais Ø Waker. Behaviour – Comportamento que espera um determinado período de tempo (em ms) para efetivamente executar a tarefa Ø Ticker. Behaviour – Comportamento que executa uma tarefa periodicamente em intervalos de tempo constantes (em ms). Este comportamento nunca acaba

Comunicação entre os agentes I/III Ø A comunicação é assíncrona e utiliza FIPA ACL

Comunicação entre os agentes I/III Ø A comunicação é assíncrona e utiliza FIPA ACL Ø Os objetos enviados são instâncias de ACLMessage Ø Para enviar uma mensagem se chama o método send()

ASF Framework Agent Society Framework

ASF Framework Agent Society Framework

ASF: Agent Society Framework Ø Objetivo: dar suporte a implementação de agentes, organizações, papéis

ASF: Agent Society Framework Ø Objetivo: dar suporte a implementação de agentes, organizações, papéis e ambiente Ø Como implementar. . . – as entidades, – suas propriedades, – seus relacionamentos, – a interação entre as entidades e – a execução interna das entidades

Framework OO Ø É orientado a um domínio de aplicações – Captura os conceitos

Framework OO Ø É orientado a um domínio de aplicações – Captura os conceitos gerais de um domínio Ø Define um conjunto de classes relacionadas capazes de gerar diferentes aplicações em um mesmo domínio Ø Classes são reutilizadas ou estendidas para implementar uma determinada aplicação – Define partes que são fixas, i. e. , não podem ser estendidas – Define partes que são flexíveis, i. e, podem ser estendidas

Entidades Ø Objetos – Atributos e métodos Ø Agentes – Objetivos, crenças, planos e

Entidades Ø Objetos – Atributos e métodos Ø Agentes – Objetivos, crenças, planos e ações Ø Organizações – Objetivos, crenças, planos, ações e axiomas Ø Papel de agente – Objetivo, crença, deveres, direitos e protocolos Ø Papel de objetos – Atributos e métodos Ø Ambiente – Atributos e métodos

Aspectos Estruturais do ASF Ø Fornece um conjunto de módulos que devem ser estendidos

Aspectos Estruturais do ASF Ø Fornece um conjunto de módulos que devem ser estendidos para implementar a aplicação Ø Cada módulo representa uma entidade do SMA Ø Instanciação da aplicação: – para implementar uma classe de agente da aplicação estende-se o módulo Agent – para implementar uma classe de organização da aplicação estende-se o módulo Organization –. . .

Agente Ø Classe Agente – Thread (entidade autônoma) Ø Classe Mensagem – Enviadas e

Agente Ø Classe Agente – Thread (entidade autônoma) Ø Classe Mensagem – Enviadas e recebidas Ø Classe Objetivo – Nome, tipo, valor – Está associado a planos que podem ser alcançar o objetivo Ø Classe Crença – Nome, tipo, valor

Agente Ø Classe Plano – Define uma ordem de execução de um conjunto de

Agente Ø Classe Plano – Define uma ordem de execução de um conjunto de ações – Está relacionado a goals que pode atingir Ø Classe Ação – Define a execução interna do agentes (entidade adaptativa) – Possui pré e pós-condições Ø Tem que existir ao menos uma instância de agente

Módulo Agent

Módulo Agent

Organização Ø Organização – Thread (entidade autônoma) Ø Classe Main-organization – Não desempenha papéis

Organização Ø Organização – Thread (entidade autônoma) Ø Classe Main-organization – Não desempenha papéis – Pode definir sub-organizações Ø Classe (Sub-)Organization – Desempenha papéis em organizações – Pode definir sub-organizações Goals, beliefs, plans, actions and messages Ø Axiom: Ø – Nome, tipo, valor Ø Tem que existir ao menos uma instância da organização principal

Módulo Organization

Módulo Organization

Role de Agente Ø Classes Goals, Beliefs Ø Classe Duty – Define ações que

Role de Agente Ø Classes Goals, Beliefs Ø Classe Duty – Define ações que são obrigações Ø Classe Right – Define ações que são direitos Ø Classe Protocol – Define ordem de envio e recebimento de mensagens Ø Tem que existir ao menos uma instância desempenhada por um agente

Módulo Agent Role

Módulo Agent Role

Módulo Object Role Atributos Ø Métodos Ø

Módulo Object Role Atributos Ø Métodos Ø

Módulo Environment Ø Tem que existir ao menos uma instância de ambiente donde estará

Módulo Environment Ø Tem que existir ao menos uma instância de ambiente donde estará a organización principal e os agentes

Relação entre as entidades

Relação entre as entidades

Estrutura do ASF ISMA Viviane Torres da Silva

Estrutura do ASF ISMA Viviane Torres da Silva

Exemplo

Exemplo

ASF + FIPA Ø Classe Agent e Main-Organization têm um atributo que é o

ASF + FIPA Ø Classe Agent e Main-Organization têm um atributo que é o identificador único. – Nombre_agente@nombre_plataforma Ø Estão relacionadas a uma classe chamada Description que descreve os estados do agente de acordo com os estados definidos pela FIPA – Começando, executando, congelado e morto. Ø Implementam a interface MTP

ASF + FIPA Ø Interface MTP (Message Transport Protocol) – Define um método send

ASF + FIPA Ø Interface MTP (Message Transport Protocol) – Define um método send que os agentes podem utilizar para enviar as mensagens Ø Classe AMS: – Gerencia a criação e a destruição das entidades – Informa quais são os agentes que executam um serviço