A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

RETSINA Plataforma de Agentes CCM MAS Framework Equipe do Curso de ES para SMA {lucena, furtado, choren,

Apresentações semelhantes


Apresentação em tema: "RETSINA Plataforma de Agentes CCM MAS Framework Equipe do Curso de ES para SMA {lucena, furtado, choren,"— Transcrição da apresentação:

1 RETSINA Plataforma de Agentes CCM MAS Framework Equipe do Curso de ES para SMA {lucena, furtado, choren,

2 RETSINA (Reusable Environment for Task Structured Intelligent Network Agents) Katia Sycara et al. Carnegie Mellon University - EUA

3 Laboratório de Engenharia de Software (LES) – PUC-Rio 3 O que é RETSINA? Uma infra-estrutura que oferece um conjunto de tipos de agentes que podem ser adaptados para implementar soluções para domínios específicos Propósitos –Oferecer módulos re-utilizáveis: comunicação, planejamento, agendamento e monitoramento –Implementar sistemas como sociedades de entidades que respondem a pedidos de execução de tarefas

4 Laboratório de Engenharia de Software (LES) – PUC-Rio 4 Requisitos Ambientes abertos e dinâmicos –Agentes / serviços nem sempre existirão –Localização dos agentes mudam Mobilidade Balanceamento de carga –Identidade dos agentes pode mudar Não se pode antever seu nome –Não se pode antever o vocabulário usado para descrevê- lo

5 Laboratório de Engenharia de Software (LES) – PUC-Rio 5 Outros Requisitos Deve-se assumir que existe redundância de serviços Fornecedores múltiplos / competidores –Diferenças nos parâmetros do serviço –Velocidade –Preço –Segurança –Reputação

6 Laboratório de Engenharia de Software (LES) – PUC-Rio 6 A Arquitetura dos Agentes RETSINA

7 Laboratório de Engenharia de Software (LES) – PUC-Rio 7 A Arquitetura dos Agentes RETSINA 4 threads paralelas Communicator –Para comunicação com outros agentes Planner –Relaciona entradas "sensoriais" e "crenças" a possíveis planos de ação Scheduler –Agenda planos "habilitados" para execução Executor Monitor –Executa um plano agendado –Gerencia a execução dos planos (p. ex. troca por plano com maior prioridade)

8 Laboratório de Engenharia de Software (LES) – PUC-Rio 8 A Infra-estrutura RETSINA

9 Laboratório de Engenharia de Software (LES) – PUC-Rio 9 A Infra-estrutura RETSINA Ambiente de operação –Representam os computadores, sistema operacional, infra-estrutura de rede, etc –Devem ser totalmente transparentes para os agentes –RETSINA exite em Java, C++ / para Windows, Linux e SunOS Infraestrutura de comunicação –Representam os canais de comunicação entre agentes (camada de transporte) –Prevê o uso de canais síncronos e assíncronos –RETSINA usa os agentes Communicator

10 Laboratório de Engenharia de Software (LES) – PUC-Rio 10 A Infra-estrutura RETSINA Infra-estrutura de linguagem –Representam a linguagem usada nas mensagens trocadas pelos agentes (FIPA ACL, KQML, etc) –Deve ser modular e alterável –RETSINA oferece KQML Serviços de gerenciamento –Representam serviços de instalação de agentes, monitoramento de balanceamento de carga, log, etc –Auxiliam o processo de inicialização dos agentes –RETSINA oferece os serviços Logger, Activity Visualizer e Launcher

11 Laboratório de Engenharia de Software (LES) – PUC-Rio 11 A Infra-estrutura RETSINA Medidas de performance –Servem para otimizar a distribuição de tarefas entre os agentes –Muito baseado em algoritmos de tempo de resposta –RETSINA não oferece suporte a performance Segurança –Lida com os problemas de segurança do sistema –Oferece uma interface para comunicação com Autoridades de Certificação (?) –RETSINA sabe falar SSL

12 Laboratório de Engenharia de Software (LES) – PUC-Rio 12 A Infra-estrutura RETSINA Mapeamento de nomes a locais de agentes –Serve para permitir a busca de um agente pelo seu nome –RETSINA oferece o ANS (Agent Naming Service) que permite a atualização dinâmica da localização dos agentes Mapeamento das funcionalidades dos agentes –Serve para permitir a busca de um agente por sua funcionalidade –RETSINA oferece o A-Match

13 Laboratório de Engenharia de Software (LES) – PUC-Rio 13 A Infra-estrutura RETSINA Interoperação –Serve para fazer a ligação entre um agente e a infra- estrutura RETSINA –Funciona como um broker entre o agente qualquer e o modelo da arquitetura –Deve ser desenvolvida pelo programador do agente –RETSINA oferece os Agentes "Middle"

14 Laboratório de Engenharia de Software (LES) – PUC-Rio 14 A Arquitetura Funcional do RETSINA

15 Laboratório de Engenharia de Software (LES) – PUC-Rio 15 Agentes de Interface Requisitam entrada do usuário do sistema multi- agentes Apresentam resultados aos usuários Freqüentemente são implementados como uma parte do agente de tarefa Podem representar um device

16 Laboratório de Engenharia de Software (LES) – PUC-Rio 16 Agentes de Tarefa Sabem o que fazer e como fazê-lo Responsáveis por delegar tarefas Podem requisitar a ajuda de outros agentes de tarefa

17 Laboratório de Engenharia de Software (LES) – PUC-Rio 17 Agentes Middle Agentes de infra-estrutura que ajudam na escalabilidade do sistema Serviços mais comuns –Serviço de nomes (white pages) –Matchmaker (yellow pages) –Broker

18 Laboratório de Engenharia de Software (LES) – PUC-Rio 18 RETSINA Matchmaker Permitem que os agentes encontrem uns aos outros –Pela funcionalidade, disponibilidade, etc –Sem saber quem o onde o agente requisitado possa estar Permite a reconfiguração dinâmica do sistema Ajuda a manter a escalabilidade do sistema RETSINA oferece o A-Match

19 Laboratório de Engenharia de Software (LES) – PUC-Rio 19 O Processo de Matching do A-Match

20 Laboratório de Engenharia de Software (LES) – PUC-Rio 20 Agentes de Informação Fazem a interface com as fontes de informação no sistema Normalmente ficam na fronteira entre o sistema e fontes de dados externas Representam dados e eventos

21 Laboratório de Engenharia de Software (LES) – PUC-Rio 21 Concluindo... RETSINA é uma infra-estrutura para o desenvolvimento de sistemas multi-agentes É fechado – não está disponível para download e testes Katia Sycara

22 Plataforma de Agentes CCM (ADM – Agent Deplyment Model) Fábio Melo LES

23 Laboratório de Engenharia de Software (LES) – PUC-Rio 23 O que é a Plataforma de Agentes CCM? Uma plataforma para a implementação de sistemas multi-agentes baseado no CCM (CORBA Compoment Model) Propósito –Componentização dos agentes –Uso da infra-estrutura CORBA

24 Laboratório de Engenharia de Software (LES) – PUC-Rio 24 O CORBA Component Model Introduz o conceito de componente (core) e define suas interfaces Define 4 portas: facetas, receptáculos, fontes de eventos e leitores de eventos

25 Laboratório de Engenharia de Software (LES) – PUC-Rio 25 O CCM Facetas –Definem as possíveis interfaces que o componente expõe para os demais componentes da aplicação –Um componente deve ter uma referência principal e pode ter diversas facetas que dão suporte a diferentes interfaces e são encaradas como referências distintas ao componente

26 Laboratório de Engenharia de Software (LES) – PUC-Rio 26 O CCM Receptáculo –Define o ponto de relacionamento estático entre componentes –Assim, um receptáculo permite que um componente declare a sua dependência a uma referência

27 Laboratório de Engenharia de Software (LES) – PUC-Rio 27 O CCM Fontes e Leitores de Eventos –Implementam o mecanismo de interação publish- subscribe –Um componente é uma fonte de eventos quando declara seu interesse de publicar (para mais de um destino) ou emitir (para um único destino) um evento –Um componente é um leitor de eventos quando tem o interesse em ser notificado quando um determinado evento ocorreu –Fontes e leitores devem estar conectados

28 Laboratório de Engenharia de Software (LES) – PUC-Rio 28 A Plataforma de Agentes CCM (ADM) Baseado no CCM Sua definição de agente –Um agente é uma entidade que, em algum ponto da execução do sistema, pode fazer atividades, responder a alguns eventos e gerar alguns eventos novos

29 Laboratório de Engenharia de Software (LES) – PUC-Rio 29 O Agente é uma Entidade Precisa de uma identidade (auto-representação) no sistema O componente core é o responsável por ser o núcleo do agente Armazena a referência principal do agente, seus atributos e gerencia seu estado É responsável ainda pelo reasoning do agente, tratamento de mensagens e gerenciamento de planos

30 Laboratório de Engenharia de Software (LES) – PUC-Rio 30 O Agente faz Atividades Atividades são implementadas por planos de ação (componentes plano) Deve-se definir componentes que serão os planos dos agentes Estes componentes serão ligados ao core do agente através dos receptáculos

31 Laboratório de Engenharia de Software (LES) – PUC-Rio 31 O Agente responde e gera Eventos As interfaces usadas para o envio e a recepção de eventos (mensagens) são as fontes e os leitores Já modelam interações assíncronas por natureza (derivado do modelo CORBA) Faz a ligação direta entre agentes que se comunicam

32 Laboratório de Engenharia de Software (LES) – PUC-Rio 32 Os Componentes Não-agentes Os componentes não-agentes (recursos/objetos) do sistema são implementados diretamente como interfaces ou struts (do CCM) -- FALAR MAIS AQUI

33 Laboratório de Engenharia de Software (LES) – PUC-Rio 33 Generalizando para Organizações O modelo apresentado serve para implementar um único agente Uma organização é implementada como um agente –O core identifica a organização –Os agentes da organização estão em seus receptáculos –A comunicação entre agentes dentro de uma mesma organização é feita diretamente entre suas fontes e leitores –A comunicação entre agentes de organizações diferentes é feita através das fontes e leitores da organização

34 Laboratório de Engenharia de Software (LES) – PUC-Rio 34 Vantagens do uso de CCM Re-uso –Por exemplo de planos já que são implementados como componentes isolados Adaptação dinâmica –Um agente pode se adaptar ao incluir ou remover planos de seus receptáculos Modelo de comunicação –Publish-subscribe que é assíncrono e não impõe uma linguagem de comunicação

35 Laboratório de Engenharia de Software (LES) – PUC-Rio 35 Outras Vantagens Características inerentes do CCM –Segurança –Persistência –Gerenciamento de transações –Funções administrativas feitas pelo modelo Registro Localização

36 Laboratório de Engenharia de Software (LES) – PUC-Rio 36 Exemplo de Implementação usando ADM Sistema de marketplace Rodadas de negociação –Anúncio de produtos –Formação de grupos –Lances –Completar ou desistir da negociação Modelado com o ANote –Diagramas de Agente, Planejamento, Interação e Ontologia mapeados para o ADM

37 Laboratório de Engenharia de Software (LES) – PUC-Rio 37 Exemplo de Implementação usando ADM Classes de Agentes implementadas como especializações do componente core Planos implementados como especializações do componente plano Interações implementados como fontes e leitores Recursos implementados como interfaces ou struts Organizações implementados como agentes

38 Laboratório de Engenharia de Software (LES) – PUC-Rio 38 Exemplo de Implementação usando ADM

39 Laboratório de Engenharia de Software (LES) – PUC-Rio 39 Exemplo de Implementação usando ADM

40 Laboratório de Engenharia de Software (LES) – PUC-Rio 40 Exemplo de Implementação usando ADM

41 Laboratório de Engenharia de Software (LES) – PUC-Rio 41 Exemplo de Implementação usando ADM

42 Laboratório de Engenharia de Software (LES) – PUC-Rio 42 Exemplo de Implementação usando ADM Componente core extensão da interface IAgent –Cria todas as características do agente como start up, instanciação de planos e envio de mensagens

43 Laboratório de Engenharia de Software (LES) – PUC-Rio 43 Exemplo de Implementação usando ADM Componente plano extensão da interface IPlan –Definicção do método que implementa o plano –Deve ter uma referência para o componente core de todos os agentes que podem executá-lo

44 Laboratório de Engenharia de Software (LES) – PUC-Rio 44 Exemplo de Implementação usando ADM Mensagem evento Recurso struct (ou interface)

45 Laboratório de Engenharia de Software (LES) – PUC-Rio 45 Concluindo... O ADM é uma plataforma para o desenvolvimento de sistemas multi-agentes –Implementa o modelo CCM –Um agente Componente core Componentes planos Fontes e leitores de envetos –Uma organização Como um agente –Recursos (itens não-agentes) Interfaces ou struts

46 MAS Framework José Alberto Sardinha LEARN

47 Laboratório de Engenharia de Software (LES) – PUC-Rio 47 O que é MAS Framework? Um framework orientado a objetos para a construção de aplicações baseadas em agentes Sistemas multi-agentes em ambiente distribuídos Propósitos –Acelera o desenvolvimento de aplicações –Faz re-uso de código –Reduz a complexidade de desenvolvimento de sistemas baseados em agentes

48 Laboratório de Engenharia de Software (LES) – PUC-Rio 48 Motivação Inicialmente o MAS Framework foi desenvolvido influenciado pela metodologia GAIA –Definição de papéis de agentes –Divisão entre protocolos de interação e serviços Evoluiu para um framework de agentes distribuídos de propósito geral –Papéis/tipos de agentes definidos através de herança –Infra-estrutura de comunicação baseada no IBM TSpaces

49 Laboratório de Engenharia de Software (LES) – PUC-Rio 49 O MAS Framework É composto por –Uma classe abstrata Agent –Duas classes públicas AgentCommunicationLayer ProcessMessageThread –Quatro interfaces AgentInterface InteractionProtocols AgentMessage AgentBlackboardInfo

50 Laboratório de Engenharia de Software (LES) – PUC-Rio 50 O MAS Framework

51 Laboratório de Engenharia de Software (LES) – PUC-Rio 51 A Classe Agent Classe abstrata que define o template dos agentes da aplicação Define o nome de um agente Método initialize –Responsável pelo código de inicialização do agente Método terminate –Responsável pelo código de terminação do agente Métodos process e stopAgent –Responsáveis por iniciar e parar a execução de serviços do agente

52 Laboratório de Engenharia de Software (LES) – PUC-Rio 52 A Interface AgentInterface Responsável por fazer as subclasses de Agent virarem threads Suas classes concretas devem implementar o método run que é responsável por iniciar as atividades (serviços) privados dos agentes

53 Laboratório de Engenharia de Software (LES) – PUC-Rio 53 A Interface InteractionProtocols É a interface que define como um agente irá se comunicar com os demais agentes da organização Todo código relativo à interação entre agentes deve ser colocado em sua classe concreta Sua classe concreta também deve implementar o método processMsg que é chamado toda vez que o agente receber uma mensagem

54 Laboratório de Engenharia de Software (LES) – PUC-Rio 54 As Interfaces AgentMessage e AgentBlackboardInfo A classe concreta de AgentMessage deve definir o formato das mensagens usadas no sistema A classe concreta de AgentBlackboardInfo deve definir o formato das mensagens usadas no blackboard TSpaces Assim, todas as informações necessárias para a comunicação dos agentes com o blackboard de interação fica encapsulada nestas duas classes

55 Laboratório de Engenharia de Software (LES) – PUC-Rio 55 A Classe ProcessMessageThread É a classe responsável por fazer o tratamento das mensagens recebidas por um agente O que ela faz –Cria uma nova thread para o tratamento de uma mensagem –Este thread chamará o método processMsg (da classe concreta de InteractionProtocols)

56 Laboratório de Engenharia de Software (LES) – PUC-Rio 56 A Classe AgentCommunicationLayer Classe que implementa as funcionalidades de uso do blackboard TSpaces addAgentBroadcastListener –Adiciona um agente a um grupo de receptores de broadcast blockingReadBBInfo –Usado para ler uma informação do blackboard. Se a informação ainda não está no blackboard quando este método for executado, a aplicação pára a sua espera

57 Laboratório de Engenharia de Software (LES) – PUC-Rio 57 A Classe AgentCommunicationLayer blockingTakeBBInfo –Usado para retirar uma informação do blackboard. Da mesma forma que blockingReadBBInfo, se a informação ainda não está no blackboard, a aplicação pára deleteAllBB –Usado para remover toda informação do blackboard removeAgentBroadcastListener –Remove um agente de um grupo de receptores de broadcast

58 Laboratório de Engenharia de Software (LES) – PUC-Rio 58 A Classe AgentCommunicationLayer removeBBInfo –Remove uma informação do blackboard scanBBInfo –Procura uma informação (definida atravé de uma query) no blackboard sendBBInfo –Envia uma informação para o blackboard

59 Laboratório de Engenharia de Software (LES) – PUC-Rio 59 A Classe AgentCommunicationLayer sendBroadcast –Envia uma mensagem para os agentes registrados no grupo de receptores de broadcast sendMsg –Envia uma mensagem para um agente stopCommunicationLayer –Pára o serviço blackboard

60 Laboratório de Engenharia de Software (LES) – PUC-Rio 60 Hot e Frozen Spots Hot Spots –Agent –AgentMessage –AgentBlackboardInfo –InteractionProtocols –AgentInterface Frozen Spots –AgentCommunicationLayer –ProcessMessageThread

61 Laboratório de Engenharia de Software (LES) – PUC-Rio 61 Instanciando o MAS Framework Para cada agente deve-se –Criar duas classes –Uma que herda da classe abstrata Agent –Esta classe deve ainda implementar a interface AgentInterface –Outra que implementa a interface InteractionProtocols

62 Laboratório de Engenharia de Software (LES) – PUC-Rio 62 Exemplo de Instanciação

63 Laboratório de Engenharia de Software (LES) – PUC-Rio 63

64 Laboratório de Engenharia de Software (LES) – PUC-Rio 64 Exemplo de Instanciação import masframework.*; public class Agent1 extends Agent implements AgentInterface { private boolean alive; public Agent1(String _name, InteractionProtocols _interactionProtocols){ super(_name,_interactionProtocols); } public void initialize() { alive = true; } public void terminate() { alive = false; } public void trace(String msg, int level) { System.out.println(msg); }

65 Laboratório de Engenharia de Software (LES) – PUC-Rio 65 Exemplo de Instanciação // Seqüência de Agent1 public void run() { while(alive) { try { trace("Agent1: executando", 1); ((Agent1IP)getInteractionProtocols()).sendMsgAgent2(); Thread.sleep(2000); } catch(Exception e){ System.out.println("Erro!"); }

66 Laboratório de Engenharia de Software (LES) – PUC-Rio 66 Exemplo de Instanciação import masframework.*; public class Agent1IP extends InteractionProtocols { public void processMsg(AgentMessage msg) { } public void sendMsgAgent2() { SimpleMessage msg = new SimpleMessage(); msg.content = "Oi"; getAgCommLayer().sendMsg("Agent2",msg); }

67 Laboratório de Engenharia de Software (LES) – PUC-Rio 67 Exemplo de Instanciação import masframework.*; public class Agent2 extends Agent implements AgentInterface { private boolean alive; public Agent2(String _name, InteractionProtocols _interactionProtocols) { super(_name, _interactionProtocols); } public void initialize() { alive = true; } public void terminate() { alive = false; } public void trace(String msg, int level) { System.out.println(msg); }

68 Laboratório de Engenharia de Software (LES) – PUC-Rio 68 Exemplo de Instanciação // Seqüência de Agent2 public void run() { while(alive) { try{ trace("Agent2: running",1); Thread.sleep(2000); } catch(Exception e){ System.out.println("Erro!"); }

69 Laboratório de Engenharia de Software (LES) – PUC-Rio 69 Exemplo de Instanciação import masframework.*; public class Agent2IP extends InteractionProtocols { public void processMsg(AgentMessage msg) { SimpleMessage simpleMessage = (SimpleMessage) msg; System.out.println("Mensagem recebida = " + simpleMessage.content); } import masframework.AgentMessage; public class SimpleMessage implements AgentMessage { String content; public SimpleMessage() { super(); }

70 Laboratório de Engenharia de Software (LES) – PUC-Rio 70 Exemplo de Instanciação import masframework.*; public class Environment { public static void main(String[] args) { // Cria o Agente 1 Agent1IP ag1IP = new Agent1IP(); AgentCommunicationLayer acl1 = new AgentCommunicationLayer( "localhost", "Agent1", ag1IP); ag1IP.setAgCommLayer(acl1); Agent1 ag1 = new Agent1("Agent1",ag1IP); // Cria o Agente 2 Agent2IP ag2IP = new Agent2IP(); AgentCommunicationLayer acl2 = new AgentCommunicationLayer( "localhost", "Agent2", ag2IP); ag2IP.setAgCommLayer(acl2); Agent2 ag2 = new Agent2("Agent2", ag2IP);

71 Laboratório de Engenharia de Software (LES) – PUC-Rio 71 Exemplo de Instanciação // Seqüência de Environment // Inicia os agentes ag1.process(ag1); ag2.process(ag2); }

72 Laboratório de Engenharia de Software (LES) – PUC-Rio 72 Exemplo de Instanciação Copiar a SimpleMessage.class para o diretório de classes do TSpaces \classes Iniciar o TSpaces Executar o Environment.class

73 Laboratório de Engenharia de Software (LES) – PUC-Rio 73 Exemplo de Instanciação

74 Laboratório de Engenharia de Software (LES) – PUC-Rio 74 Exemplo de Instanciação

75 Laboratório de Engenharia de Software (LES) – PUC-Rio 75 Concluindo... O MAS Framework é um framework para o desenvolvimento de sistemas multi-agentes –Possui classes para implementar agentes e suas interações –Um agente Extensão de Agent Implementação de InteractionProtocols –Infra-estrutura de comunicação Baseada no IBM TSpaces

76 Laboratório de Engenharia de Software (LES) – PUC-Rio 76


Carregar ppt "RETSINA Plataforma de Agentes CCM MAS Framework Equipe do Curso de ES para SMA {lucena, furtado, choren,"

Apresentações semelhantes


Anúncios Google