PADRÕES DE PROJETO PARA SISTEMAS MULTIAGENTES Allan Lima [email protected] Contexto Padrões de Projeto Flexibilidade Legibilidade Reuso ... SMA Protocolos Mobilidade Tarefas ... Padrões de Projeto + SMA?! Complexidade dos SMA Problemas no nível de arquitetura e implementação Em todos os sistemas muitos problemas similares são resolvidos de formas distintas. Por que não criar padrões de projeto para a catalogar tais soluções? Roteiro Visão geral dos Padrões de Projeto para Agentes Classificação Traveling Patterns Task Patterns Interaction Patterns Exemplos de Padrões Master-Slave Meeting Itinerary VISÃO GERAL DOS PADRÕES DE PROJETO PARA AGENTES Classificação Tipo Descrição Traveling Trata dos aspectos para gerenciar a mobilidade dos agentes, como roteamento e qualidade do serviço Task Trata das tarefas e como estas são delegadas para um ou mais agentes Interaction Concentram-se na localização e nas forma das interação Traveling Patterns Nome Descrição Itinerary Mantém uma lista de destinos, define o esquema de roteamento, trata casos especiais e sempre fornece o próximo destino para o agente. Também permite guardar os caminhos evitando refazer os cálculos. Forwarding Provê uma forma de direcionar agentes que chegam a um local para outro automaticamente. Ticket Baseia-se um representação mais complexa de um endereço (ticket), encapsulando informações como permissões e time to live, necessárias para despachar um agente para um local. Task Patterns Nome Descrição Master-Slave Permite ao agente mestre delegar um tarefa para um agente escravo. O mestre cria o escravo, que se move ao seu destino, realiza a tarefa e retorna com o resultado para seu mestre. Plan Adota uma seqüência de passos para organizar múltiplas tarefas e realizá-las seqüencialmente ou de forma paralela por múltiplos agentes Interation Patterns Nome Descrição Meeting Provê uma forma para dois ou mais agentes iniciar uma interação local. Abstraindo problemas como o de sincronização. Traz o conceito de meeting place. Locker Restringe o acesso a um determinado dado de forma temporal. Evitando o aceso a dados que não são necessários ou permitidos no momento. Ex.: Uma modificação no estoque só pode ser feita no horário comercial. Menos dados transferidos e integridade para o sistema Protocolos de comunicação mais complexos Interation Patterns Nome Descrição Messenger Define uma mensagem como um agente, responsável por mover-se até o destinatário e entregar a informação, enquanto o agente que o enviou continua o seu trabalho normalmente Facilitator Define um serviço de nomes e localização para os agentes. Permite que a informação seja acessa de forma transparente, sem saber-se onde os agentes a detêm se encontram Organized Group Compõe grupos de agentes que viajam juntos Fundamental para a colaboração EXEMPLOS DE IMPLEMENTAÇÃO DOS PADRÕES Itinerary Itinerary Meeting Meeting Master-Slave Master-Slave Master-Slave Conclusões/Avaliação Crítica Padrões para agentes podem ser úteis para resolver diversos problemas específicos com flexibilidade. Mas não são suficientes para desenvolver um sistema por completo. Foco na mobilidade. Área pouco explorada, falta de continuidade das pesquisas e poucos autores. Para Saber Mais ARIDOR, Y. & LANGE, D. B. 1998. Agent Design Patterns. SAUVAGE, S. 2004. Design Patterns for Multiagent Systems. TVEIT, A. 2001. A Survey of Agent-Oriented Software Engineering. KENDALL, E. A. et al. 1998. Patterns of Intelligent and Mobile Agents. Material disponível em: www.cin.ufpe.br/~adsl/mestrado/cadeiras/doa/ DÚVIDAS, CRÍTICAS, SUGESTÕES? Obrigado! PADRÕES DE PROJETO PARA SISTEMAS MULTIAGENTES Allan Lima [email protected]