Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena http://www.inf.puc-rio.br/~lucena Maio de 2006 Guia da Apresentação • Paradigmas da Engenharia de Software • Novas características dos sistemas de software • Agentes • Sistemas Multi-Agentes (SMA) • Exemplo de SMA • Roadmap dos SMA • Tópicos de pesquisa em SMA • A pesquisa no LES da PUC-Rio Laboratório de Engenharia de Software (LES) – PUC-Rio 2 A Engenharia de Software • Sistemas de software estão cada vez mais complexos (frameworks, PLAs etc) • A ES é uma disciplina que se preocupa com todos os aspectos do desenvolvimento de software • Existe a necessidade de se modelar e analisar – Processos de desenvolvimento de software • Métodos controlados, bem documentados e replicáveis para produção de software – Software • Bem definido, com qualidade (dependable), manutenível e reutilizável • A escolha de boas abstrações é uma questão central em ES Laboratório de Engenharia de Software (LES) – PUC-Rio 3 Abstrações da Engenharia de Software • Software lida com entidades “abstratas”, que possuem um espelho no mundo real – Números, pessoas, documentos, etc • Como se deve modelar tais entidades, i.e. quais são as abstrações que devem ser usadas para se desenvolver um software? – Dados, funções, objetos, etc • As abstrações devem ser independentes de uma tecnologia específica, p. ex. arquiteturas e linguagens de programação Laboratório de Engenharia de Software (LES) – PUC-Rio 4 Evolução dos Paradigmas de ES • Linguagens Assembler • Abstração Funcional • Programação Estruturada Tempo Abstrações influenciadas pela arquitetura da máquina • Orientação a Objetos • Padrões de Projeto • Componentes • ... • Agentes de Software Laboratório de Engenharia de Software (LES) – PUC-Rio Abstrações influenciadas pelo domínio do problema 5 O Cenário Atual • Com os avanços do desenvolvimento de aplicações distribuídas na Internet, a introdução de componentes de software com algum tipo de autocontrole está se tornando usual • Os sistemas de software deverão estar – Em todo o lugar – Sempre conectados (disponíveis) – Sempre ativos para executar requisições de usuários Laboratório de Engenharia de Software (LES) – PUC-Rio 6 Novas Características dos Sistemas de Software • Situados – Componentes executarão no contexto de um ambiente e poderão influenciar e serem influenciados por ele • Abertos – Sistemas terão controle descentralizado e poderão mudar dinamicamente a sua estrutura • Autônomos (controle local) – Componentes representarão um ponto (local) autônomo pró-ativo de controle • Interatividade local – Componentes irão interagir de acordo com padrões ou contratos estabelecidos localmente Laboratório de Engenharia de Software (LES) – PUC-Rio 7 O Paradigma de Agentes • O paradigma de agentes oferece – Uma abstração para o desenvolvimento de software baseado no domínio do problema para sistemas com as características descritas anteriormente – Um modelo de decomposição para o desenvolvimento modular de software Laboratório de Engenharia de Software (LES) – PUC-Rio 8 O que é Agente de Software • Uma questão controversa – Não existe um consenso sobre o que é um agente – Histórico e definições • Dois pontos de vista – Inteligência Artificial • Um agente é pró-ativo, inteligente, e deve ser altamente interativo (P2P) em vez de participar de uma arquitetura clienteservidor – Engenharia de Software • Um agente é um componente de software com threads internas de execução (tanto pró-ativo quanto reativo) e que pode participar de protocolos de interação complexos e com estado Laboratório de Engenharia de Software (LES) – PUC-Rio 9 Propriedades de Agentes em ES – Autonomia * • Capacidade de agir sem intervenção externa – Pró-atividade • Atuam não somente em resposta ao ambiente – são orientados a objetivos – Situação • Atuam em um ambiente – Interatividade * • Se comunicam com outros agentes e com o ambiente Laboratório de Engenharia de Software (LES) – PUC-Rio 10 Características de Agentes ES – Adaptação * • São capazes de modificar, em algum grau, o seu comportamento devido à mudanças do ambiente e de outros agentes (autonomic computing) – Aprendizado • São capazes de modificar o seu comportamento baseados em sua experiência – Racionalidade • São capazes de selecionar suas ações baseados em seus objetivos – Mobilidade • São capazes de se mover de um ambiente para outro Laboratório de Engenharia de Software (LES) – PUC-Rio 11 O que são Sistemas Multi-Agentes? • No ponto de vista de IA – Um sistema multi-agente é uma sociedade de agentes (agentes IA) individuais, que interagem por meio da troca de conhecimento e da negociação para alcançar um objetivo local ou global • No ponto de vista de ES – Um sistema multi-agente é um sistema de software composto por diversos loci de controle (agentes ES) encapsulados e independentes, que interagem no contexto específico de uma aplicação Laboratório de Engenharia de Software (LES) – PUC-Rio 12 A Abordagem Orientada a Agentes • O desenvolvimento de SMA deve explorar conceitos coerentes com as caracterizações acima – Agentes: entidades autônomas, com controle local, situados em um ambiente e interativos – Controle local: objetivos, ações e planejamento – Ambientes: lugar onde estão os recursos usados pelos agentes – Protocolos de interação: regras para a interação entre agentes Laboratório de Engenharia de Software (LES) – PUC-Rio 13 Um Exemplo de SMA • Trading Agent Competition (TAC) – Fórum internacional produzido para promover a pesquisa em SMA, mais especificamente para o problema de agentes de negociação – Explora um cenário de um “agente de viagens” baseado em procurement de leilões múltiplos simultâneos – Sistema aberto – http://www.sics.se/tac/ Laboratório de Engenharia de Software (LES) – PUC-Rio 14 O TAC • Cada agente (que pode entrar e sair quando quiser de uma rodada da competição, i.e. sistema aberto) é um agente de viagens – Busca montar pacotes de viagens (que duram 5 dias) – Cada agente representa 8 clientes – Cada cliente tem suas preferências para os diversos aspectos da viagem – Objetivo: maximizar a satisfação dos clientes Laboratório de Engenharia de Software (LES) – PUC-Rio 15 O TAC • O pacote de viagens – Passagens aéreas de ida e volta – Reservas em hotéis – Entradas para eventos Ex.: • Parque de diversões • Museus Laboratório de Engenharia de Software (LES) – PUC-Rio 16 O TAC Laboratório de Engenharia de Software (LES) – PUC-Rio 17 O Sistema LearnAgents • Desenvolvido no LEARN / LES • A engenharia – Processo de desenvolvimento • Ad-hoc, goal-oriented-like (guiado pela definição de objetivos) – Documentação • Linguagem de modelagem ANote – Plataforma de implementação • MAS Framework • Interface (protocolo de interação) dada pela competição • 3° lugar Laboratório de Engenharia de Software (LES) – PUC-Rio 18 Outros Exemplos da Aplicação de Agentes no LES • AulaNet Learning Management System • 2BuyNet e-Business (B2C) • VBroker e-Business (B2C) • VMarket e-Business (C2C) • iDeal e-Business (B2B) • CommercePipe e-Business (C2B) • PortalWare Knowledge Management • SkillO Skill Management • WebClipper Web Crawling Laboratório de Engenharia de Software (LES) – PUC-Rio 19 O Estado da Arte da ES para SMA • A ES para SMA se encontra em estado inicial – – – – Existem diversas propostas, mas pouco consenso AAMAS/AOSE -> JAAMAS ICSE/SELMAS -> IJAOSE OMG->FIPA->IEEE • Desenvolvimento ad-hoc ou pouco sistemático • Falta de avaliações do impacto do uso da abstração de agentes no desenvolvimento de software • Necessidade de amadurecimento de uma ES para SMA Laboratório de Engenharia de Software (LES) – PUC-Rio 20 Roadmap1 para os SMA • Situação atual – Uma equipe de desenvolvimento – Projeto ad-hoc – Sistemas fechados aplicados a um ambiente específico – Protocolos e linguagens de comunicação pré-definidos – Escaláveis somente em ambientes de simulação – Exemplo: o TAC 1 M. Luck, P. McBurney, C. Preist. Agent Technology: Enabling Next Generation Computing. AgentLinkII, 2003. Laboratório de Engenharia de Software (LES) – PUC-Rio 21 Roadmap para os SMA • A curto prazo (~2007) – Uso disseminado de linguagens semi-estruturadas de comunicação de agentes (p. ex. FIPA ACL) – Metodologias de desenvolvimento top-down – Escalabilidade em ambientes pré-determinados e de domínios específicos Laboratório de Engenharia de Software (LES) – PUC-Rio 22 Roadmap para os SMA • Médio prazo (2008/2009) – Projeto feito por times diferentes – Uso de padrões de protocolos e linguagens de comunicação – Metodologias específicas para agentes – Sistemas abertos para domínios específicos (p. ex. ecommerce) – Maior escalabilidade – Desenvolvimento de agentes para fazer ponte entre domínios diferentes Laboratório de Engenharia de Software (LES) – PUC-Rio 23 Roadmap para os SMA • Longo prazo (2009 ~) – Projeto feito por times diversificados – SMA realmente abertos e escaláveis – Domínios diferentes – Agentes com capacidade de aprender os protocolos de comunicação apropriados para entrar em um sistema – Protocolos de comunicação surgindo e evoluindo a partir de interações reais entre agentes Laboratório de Engenharia de Software (LES) – PUC-Rio 24 Roadmap para os SMA Laboratório de Engenharia de Software (LES) – PUC-Rio 25 Alguns Tópicos de Pesquisa em ES para SMA • Relacionamento entre a abstração de agentes com outras abstrações, p. ex. objetos • Linguagens de modelagem para agentes (UML) • Metodologias para a análise e o projeto de SMA • Experiências de desenvolvimento de aplicações reais • Levantamento de um conjunto de “boas práticas” para o desenvolvimento orientado a agentes Laboratório de Engenharia de Software (LES) – PUC-Rio 26 Alguns Tópicos de Pesquisa em ES para SMA • APIs, linguagens de programação ou plataformas padronizadas para agentes • Ambientes de desenvolvimento de software e ferramentas CASE para agentes • Abordagens de reuso para o desenvolvimento de SMA, incluindo frameworks, padrões, componentes e arquiteturas • Integração de software orientado a agentes a processos de negócios já existentes (legados) e as suas implicações Laboratório de Engenharia de Software (LES) – PUC-Rio 27 Pesquisa no LES da PUC-Rio (desde 2001) • Linguagens de modelagem (3PhDs, 5 MSc) – Documentação de artefatos de SMA • Metodologias de desenvolvimento (2PhD, 5 MSc) – Processo para a produção de software orientado a agentes • Plataformas (2 PhD, 3MSc) – Ambientes para a implementação de SMA • Experimentação (3MSc) • Governança em SMA Abertos (5PhD, vários mestrados: em andamento) Laboratório de Engenharia de Software (LES) – PUC-Rio 28 Publicações 2006 • GUEDES, José de Souza Pinto; TORRES, Viviane; LUCENA, Carlos José Pereira de; A Reputation Model Based on Testimonies, AOIS2006@CAiSE workshop, Luxemburgo, Gran Ducado de Luxemburgo, 6 Junho, 2006. • KULESZA, Uirá; ALVES, Vander; GARCIA, Alessandro; LUCENA, Carlos; BORBA, Paulo; Improving Extensibility of ObjectOriented Frameworks with Aspect-Oriented Programming, International Conference on Software Reuse (ICSR'2006), 9th, Springer Verlag, LNCS, Torino, Italia, Junho, 2006. • GATTI, Maíra Athanázio de Cerqueira; LUCENA, Carlos José Pereira de Lucena; BRIOT, Jean-Pierre; On Fault Tolerance in Law-Governed Multi-Agent Systems, SELMAS’2006, Shanghai, China, May 22-23, 2006. • BRIOT, Jean-Pierre; FACI, Nora; GUESSOUM, Zahia; GATTI, Maíra Athanázio de Cerqueira; LUCENA, Carlos José Pereira de; LUNA-ALMEIDA, Alessandro; MARIN, Olivier; Experience and Prospects for Various Control Strategies for SelfReplicating Multi-Agent Systems, (Paper-ID: SEAMS07), SEAMS 2006 Workshop, ICSE 2006, Shanghai, China, May 21-22, 2006. • DAMASCENO, Karla; CACHO, Nelio; GARCIA, Alessandro; ROMANOSKY, Alexander, LUCENA, Carlos; Context-Aware Exception Handling in Mobile Agent Systems: The MoCA Case, SELMAS'06, Shanghai, China, May 21-22, 2006. • COLEHO, Roberta; KULESZA, Uira; STAA, Arndt; LUCENA, Carlos José Pereira de; Unit Testing in Multi-agent Systems using Mock Agents and Aspects, Software Engineering for Large-scale Multi-Agent Systems (SELMAS'06), Shanghai, China, May 21-22, 2006. • CARVALHO, Gustavo Robichez de; LUCENA, Carlos; PAES, Rodrigo; BRIOT, Jean-Pierre; Refinement Operators to Facilitate the Reuse of Interaction Laws in Open Multi-Agent Systems, International Workshop on Software Engineering for Large-scale Multi-Agent Systems (SELMAS’06), 5th, at ICSE 2006, Shanghai, China, May 21-22, 2006. • CARVALHO, Gustavo Robichez de; BRANDÃO, Anarosa; LUCENA, Carlos; PAES, Rodrigo; BRIOT, Jean-Pierre; CHOREN, Ricardo; Interaction Laws Verification Using Knowledge-based Reasoning, Workshop on Agent-Oriented Information Systems (AOIS-2006) at the International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS’2006), 5th, Hakodate, Japan, May 8-12, 2006. • FELICÍSSIMO, Carolina; LUCENA, Carlos; BRIOT, Jean-Pierre; CHOREN, Ricardo; An Approach for Contextual Regulations in Open MAS, AOIS workshop, at the International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS’2006), 5th, Hakodate, Japan, May 8-12, 2006 • FELICÍSSIMO, Carolina; CHOREN, Ricardo; BRIOT, Jean-Pierre; LUCENA, Carlos; Supporting Regulatory Dynamics in Open MAS, Workshop on Coordination, Organization, Institutions and Norms in agent systems (COIN@AAMAS-06), at the International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS’2006), 5th, Hakodate, Japan, May 9, 2006. • CARVALHO, Gustavo Robichez de; PAES, Rodrigo; LUCENA, Carlos; BRIOT, Jean-Pierre; CHOREN, Ricardo; A Governance Framework Implementation for Supply Chain Management Applications as Open Multi-Agent Systems, The International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS’2006), 5th, Hakodate, Japan, Laboratório de Engenharia May 8-12, 2006.de Software (LES) – PUC-Rio 29