introdução à engenharia de software dos sistemas multi-agentes carlos j. p de lucena lucena maio...
TRANSCRIPT
Introdução à Engenharia de Software dos Sistemas Multi-
Agentes
Carlos J. P de Lucenahttp://www.inf.puc-rio.br/~lucena
Maio de 2006
Laboratório de Engenharia de Software (LES) – PUC-Rio 2
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 3
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 4
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 5
Evolução dos Paradigmas de ES
Tempo
Abstrações influenciadas pela arquitetura da máquina
Abstrações influenciadas pelo domínio do problema
• Linguagens Assembler
• Abstração Funcional
• Programação Estruturada
• Orientação a Objetos• Padrões de Projeto
• Componentes
• ...
• Agentes de Software
Laboratório de Engenharia de Software (LES) – PUC-Rio 6
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 auto-controle 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 7
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 8
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 9
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 cliente-servidor
– 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 10
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 11
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 12
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 13
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 14
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 15
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 16
O TAC
• O pacote de viagens– Passagens aéreas de ida e volta
– Reservas em hotéis
– Entradas para eventosEx.:• Parque de diversões• Museus
Laboratório de Engenharia de Software (LES) – PUC-Rio 17
O TAC
Laboratório de Engenharia de Software (LES) – PUC-Rio 18
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 19
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 20
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 21
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 TAC1 M. Luck, P. McBurney, C. Preist. Agent Technology: Enabling Next Generation Computing. AgentLinkII, 2003.
Laboratório de Engenharia de Software (LES) – PUC-Rio 22
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 23
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. e-commerce)
– Maior escalabilidade
– Desenvolvimento de agentes para fazer ponte entre domínios diferentes
Laboratório de Engenharia de Software (LES) – PUC-Rio 24
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 25
Roadmap para os SMA
Laboratório de Engenharia de Software (LES) – PUC-Rio 26
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 27
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 28
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 29
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 Object-Oriented 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 Self-Replicating 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, May 8-12, 2006.