Viviane Torres da Silva

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Sistemas Operacionais
JADE/JADEX Maíra Gatti
Linguagens de Programação para SMA Viviane Torres da Silva
Planejamento Viviane Torres da Silva
Planejamento Viviane Torres da Silva
Os Sistemas Multi-agente Viviane Torres da Silva
Agentes de Software Introdução
UML Modelando um sistema.
Identificando requisitos
Threads (Linha de execução )
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
Jade Java Agent Development Framework Versão atual: 3.5 (25 Junho 2007)
Metodologias Equipe do Curso de ES para SMA {lucena, furtado, choren,
Metodologias Equipe do Curso de ES para SMA
Linguagens de Modelagem (cont.) (IV)
Um Processo Baseado em MDA para a Especialização de Mecanismos de Persistência Fabio Seixas Marques Seminário LES – 7 de abril de.
JADE: Java Agent Development Environment Framework
Agentes BDI (Belief Desire Intention)
Frameworks Conceituais
Linguagens de Modelagem para SMA
Definindo as entidades de um SMA Viviane Torres da Silva
Viviane Torres da Silva
Sistema para Gerenciamento de Redes Baseado em Agentes Móveis
Cartões CRC (Class Responsibility Card)
Os Sistemas Multi-agente Viviane Torres da Silva
Aprendizagem Viviane Torres da Silva
Modelos Baseados em Agentes
Metodologias Orientadas a Agentes
JADE Java Agent DEvelopment Framework
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Protocolo CMB em simulação distribuída
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Concorrência em Java Threads em Java.
Desenvolvendo Sistemas Multiagentes com JADE
Exame de Defesa de Mestrado
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Fevereiro 2003 IST/INESC Contactos:IST/Tagus-Park Tel:
Web Services Uninorte Semana de Tecnologia da Informação
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Metodologias para construção de SMA
Plataforma JADE Mauricio S Freitas.
Professor: Márcio Amador
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
Orientação a Objetos Parte I
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
SISTEMAS DISTRIBUIDOS Aula 4
Sistemas Operacionais
Metodologias (Parte II) Viviane Torres da Silva
FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04 Prof. André Lucio.
Processos.
Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF.
METODOLOGIA, MÉTODOS E FERRAMENTAS
MONITORAMENTO DE REDE E SERVIDORES UTILIZANDO O CACTIEZ E SNMP
Análise e Projeto de Sistemas
Arquitetura BDI Viviane Torres da Silva
Integração de Ferramentas CASE
JADE: Java Agent Development Environment Framework
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Objetos Distribuídos Frameworks Orientados a Objetos.
Modelagem de Estruturas Sociais em AML Menandro Ribeiro Santana Ricardo Roberto de Lima.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Professora: Kelly de Paula Cunha
Interações entre objetos
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

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

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, Jade, Jadex, Jack, ASF, Jason, ....

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: Beliefs: crenças Desire: desejos ou objetivos Intetions: intenções ou planos Arquitetura BDI proposta por Rao e Georgeff em 1995 É uma arquitetura abstrata 4

Arquitetura BDI 5

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: 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 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 : 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

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

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 13

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 MainContainer é criado Plataforma Conjunto de contêineres ativos 14

Contêineres e Plataformas 15

Modelo FIPA JADE segue o modelo de desenvolvimento da FIPA Todo MainContainer 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 16

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 17

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 18

O Ciclo de Vida de um Agente I/III 19

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 20

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 21

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 nomeAgente @ nomePlataforma : numeroPorta / JADE Entra no estado Ativo É executado o método setup() Método responsável por inicializar os comportamentos do agente 22

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 doDelete() que chama o método takeDown() (pode ser reimplementado) Serve para remover todas as referências ao agente da plataforma 23

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 addBehaviour(X) Comportamentos podem ser adicionados a qualquer momento com o método removeBehavior(X) 24

Classe Behaviour Método action() Método done() 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 25

Hierarquia de comportamentos I/II Comportamentos Simples Modelam os comportamentos atômicos OneShotBehaviour: modela comportamentos que só devem executar uma vez e que não podem ser bloqueados (parar o comportamento até que algum evento ocorra) CyclicBehaviour: 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 SequentialBehaviour, ParallelBehaviour e FSMBehaviour 26

Hierarquia de comportamentos II/II Comportamentos compostos SequentialBehaviour: Executa seus sub-comportamentos seqüencialmente e termina quando todos estes estiverem terminados ParallelBehaviour: Executa seus sub-comportamentos concorrentemente e termina quando uma condição particular sobre o conjunto de sub-comportamentos é 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 27

28

Comportamentos Especiais WakerBehaviour Comportamento que espera um determinado período de tempo (em ms) para efetivamente executar a tarefa TickerBehaviour Comportamento que executa uma tarefa periodicamente em intervalos de tempo constantes (em ms). Este comportamento nunca acaba 29

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() 30

Agent Society Framework ASF Framework Agent Society Framework

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 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 Agentes Organizações Papel de agente 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 Ambiente

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 Classe Mensagem Classe Objetivo Classe Crença 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

Agente Classe Plano Classe Ação 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

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 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

Role de Agente Classes Goals, Beliefs Classe Duty Classe Right 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 Object Role Atributos Métodos

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

Viviane Torres da Silva Estrutura do ASF ISMA Viviane Torres da Silva

Exemplo

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) Classe AMS: 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