SMA: Metodologias Luis Otavio Alvares - II/UFRGS 10-1 Sumário Tipos de abordagens Exemplo Gaia 10-2 Tipos de abordagens Orientadas a objeto estendem /adaptam técnicas ou metodologias existentes Baseadas em conhecimento construídas a partir de técnicas de modelagem da engenharia do conhecimento 10-3 Tipos de abordagens Métodos formais específicas do domínio de aplicação Usam métodos formais e linguagens como Z e fornecem definições para suportar sistemas multiagentes Foco em um tipo especial de SMA exemplo: CASSIOPEIA (para futebol de robôs) específicas para SMA AAII SODA Tropos Gaia 10-4 Uma metodologia orientada a agentes: Gaia 10-5 Porque uma nova metodologia? Agentes representam um novo nível de abstração que “... pode ser utilizado pelos desenvolvedores de software para mais naturalmente entender , modelar e desenvolver uma classe importante de sistemas distribuídos.” Técnicas de desenvolvimento de software existentes não são desejadas para a tarefa porque falham em capturar aspectos específicos de SMA: comportamento flexível, autônomo riquesa de interações complexidade da estrutura organizacional 10-6 GAIA: domínios característicos Cada agente faz uso de recursos computacionais significativos (coarse-grained) Ao agentes são heterogêneos (podem ser desenvolvidos com diferentes linguagens de programação, arquiteturas e técnicas) A estrutura organizacional do sistema é estática: as interações entre os agentes não se alteram em tempo de execução As habilidades dos agentes e suas funcionalidades são estáticas: não se alteram em tempo de execução número relativamente pequeno de agentes: menos de 100 10-7 GAIA: relações entre os modelos requirements statement roles model agent model interactions model services model acquaintance model análise analysis projeto design 10-8 GAIA: fase de análise Objetivo: desenvolver um entendimento do sistema e suas estruturas (sem referência a qualquer detalhe de implementação). O entendimento do sistema é obtido através de sua organização: coleção de papéis e o relacionamento entre os papéis. 10-9 GAIA: conceitos da fase de análise sistema papéis responsabilidades permissões liveliness properties atividades protocolos safety properties 10-10 GAIA: papéis (roles) Considere uma organização humana, como uma empresa por exemplo: a empresa tem papéis com o de presidente, vice-presidente, gerentes, vendedores, faxineiros, etc. durante a existência da empresa, várias pessoas podem passar por cada um dos papéis. Uma pessoa pode ter um papel (presidente) ou vários simultaneamente (servir café e limpar a empresa) Um papel é definido por 4 atributos: responsabilidades, permissões, atividades e protocolos 10-11 PAPÉIS: Responsabilidades Um papel serve para fazer algo As responsabilidades determinam as funcionalidades e são os atributos-chave dos papéis São divididas em dois tipos: propriedades vivas (liveness): definem ações que os agentes devem executar dadas algumas condições. Significa “algo bom acontece” propriedades de segurança (safety): significa que “nada de ruim acontece” (p.ex: garantir que a temperatura do reator permaneça entre 100 e 150 graus) 10-12 PAPÉIS: permissões Para realizar as responsabilidades, um papel tem um conjunto de permissões São os “direitos” associados a um papel identificam os recursos que estão disponíveis ao papel para realizar suas responsabilidades tendem a ser recursos de informação. P.ex: um papel pode ter associado o direito de acessar ou modificar certas informações, ou a habilidade de gerar informação 10-13 PAPÉIS: atividades São computações associadas ao papel que podem ser realizadas pelo agente sem interação com outros agentes, individualmente. 10-14 PAPÉIS: protocolos Definem como um papel pode interagir com outros papéis Por exemplo, o papel de gerente pode ter associado a si o protocolo de Redes de Contrato (contract net) 10-15 O modelo de papéis Identifica os papéis importantes para o sistema. ROLE SCHEMA: name of role DESCRIPTION: short English description of the role PROTOCOLS: protocols in which the role plays a part PERMISSIONS: “rights” associated with the role RESPONSIBILITIES LIVELINESS: liveliness responsibilities SAFETY: safety responsibilities 10-16 Exemplo: ROLE SCHEMA: CoffeeFiller DESCRIPTION: This role involves ensuring the coffee is kept filled and informing the workers when fresh coffee has been brewed. PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmpty PERMISSIONS: reads changes supplied coffeeMaker //name of coffee maker coffeeStatus //full or empty coffeeStock //stock level of coffee RESPONSIBILITIES LIVELINESS: CoffeeFiller = (Fill.InformWorkers.CheckStock.AwaitEmpty) SAFETY: • coffeeStock 0 10-17 O modelo de interações Existem relações e interdependências entre papéis numa organização multiagente que são fundamentais no funcionamento do sistema as ligações entre os papéis são representadas no modelo de interações consiste de um conjunto de definições de protocolo: padrão de interação formalmente definido e com a abstração de seqüência de passos. Significa que a atenção está focada na natureza e no objetivo da interação e não na ordem precisa de uma troca de mensagens 10-18 Protocolo de interação Uma definição de protocolo consiste dos seguintes atributos: objetivo: breve descrição textual da natureza da interação.Ex: “pedido de informação”, “atribuição de tarefa” iniciador: o papel responsável por iniciar a interação respondente: o papel com quem o iniciador interage entradas: informação usada pelo papel iniciador durante a interação saídas: informação fornecida pelo/para o respondente durante a interação processamento: breve descrição textual do processamento realizado pelo iniciador durante a interação 10-19 Template para protocolo purpose initiator responder inputs processing outputs 10-20 Exemplo: Modelo de Interação TenderContract QM Definition of CV select which CV to award contract to vettingRequirements Protocol VetCustomer: VettingRequest QM CV ask for vetting of customer customerDetails customerDetails CV QM perform vetting and return credit rating ratingInfo creditRating 10-21 O processo de análise 1. Identificar os papéis do sistema saída: o modelo de papéis 2. Identificar e documentar os protocolos saída: modelo de interações 3. Elaborar o modelo de papéis baseado nos modelos de interações saída: modelo de papéis completo 4. Iterar os passos 1-3. 10-22 Gaia: a fase de projeto 10-23 Projeto Objetivo: transformar o modelo da análise em um nível de abstração suficientemente baixo para permitir que técnicas tradicionais de projeto possam ser aplicadas. Aborda o que é necessário em cada agente individual, não como os agentes realizam seus serviços. Gera 3 modelos: modelo de agentes (agent model) modelo de serviços (services model) modelo de ligações? (acquaintance model) 10-24 Projeto: modelo de agentes Identifica os tipos de agentes do sistema e instâncias de agentes Pode ou não haver uma correspondência um-para-um entre tipos e papéis 10-25 Projeto: modelo de serviços Identifica os serviços associados com cada papel Especifica as principais propriedades desses serviços Identifica entradas, saídas, pré-condições, e pós-condições para cada serviço entradas e saídas são derivados do modelo de protocolos pré e pós-condições são derivadas das safety properties o modelo de serviços não determina a forma de implementação dos serviços 10-26 Projeto: “Acquaintance Model” Define os canais de comunicação entre os tipos de agente Não define as mensagens ou quando são enviadas Identifica possíveis gargalos na comunicação Consiste de um grafo dirigido entre os tipos de agente 10-27 Exemplo: Acquaintance Model CustomerAgent CustomerServiceDivisionAgent VetCustomerAgent NetworkDesignAgent LegalAdvisorAgent 10-28 Projeto: o processo 1. Criar um modelo de agentes: agregar papéis aos tipode de agentes e refinar para formar uma hierarquia de tipos de agente documentar as instâncias de cada tipo de agente 2. Desenvolver o modelo de serviços examinando os protocolos e as propriedades safety and liveliness dos papéis 3. Desenvolver um acquaintance model a partir do modelo de agentes e de interações 10-29