760 likes | 846 Views
Learn about RETSINA, an infrastructure providing reusable modules for intelligent network agents. Understand its architecture and features for task execution in dynamic environments. Developed at Carnegie Mellon University and PUC-Rio.
E N D
RETSINAPlataforma de Agentes CCMMAS Framework Equipe do Curso de ES para SMA {lucena, furtado, choren, viviane}@inf.puc-rio.br
RETSINA(Reusable Environment for Task Structured Intelligent Network Agents) Katia Sycara et al. Carnegie Mellon University - EUA
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
A Arquitetura dos Agentes RETSINA Laboratório de Engenharia de Software (LES) – PUC-Rio
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) Laboratório de Engenharia de Software (LES) – PUC-Rio
A Infra-estrutura RETSINA Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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" Laboratório de Engenharia de Software (LES) – PUC-Rio
A Arquitetura Funcional do RETSINA Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 http://www-2.cs.cmu.edu/~softagents/a-match/index.html Laboratório de Engenharia de Software (LES) – PUC-Rio
O Processo de Matching do A-Match Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
Concluindo... • RETSINA é uma infra-estrutura para o desenvolvimento de sistemas multi-agentes • É fechado – não está disponível para download e testes • Katia Sycara • katia@cs.cmu.edu Laboratório de Engenharia de Software (LES) – PUC-Rio
Plataforma de Agentes CCM(ADM – Agent Deplyment Model) Fábio Melo LES
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
Outras Vantagens • Características inerentes do CCM • Segurança • Persistência • Gerenciamento de transações • Funções administrativas feitas pelo modelo • Registro • Localização Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
Exemplo de Implementação usando ADM Laboratório de Engenharia de Software (LES) – PUC-Rio
Exemplo de Implementação usando ADM Laboratório de Engenharia de Software (LES) – PUC-Rio
Exemplo de Implementação usando ADM Laboratório de Engenharia de Software (LES) – PUC-Rio
Exemplo de Implementação usando ADM Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
Exemplo de Implementação usando ADM • Mensagem evento • Recurso struct (ou interface) Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
MAS Framework José Alberto Sardinha LEARN
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
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 Laboratório de Engenharia de Software (LES) – PUC-Rio
O MAS Framework • É composto por • Uma classe abstrata • Agent • Duas classes públicas • AgentCommunicationLayer • ProcessMessageThread • Quatro interfaces • AgentInterface • InteractionProtocols • AgentMessage • AgentBlackboardInfo Laboratório de Engenharia de Software (LES) – PUC-Rio
O MAS Framework Laboratório de Engenharia de Software (LES) – PUC-Rio