introdução à engenharia de software dos sistemas multi-agentes carlos j. p de lucena lucena maio...

29
Introdução à Engenharia de Software dos Sistemas Multi- Agentes Carlos J. P de Lucena http://www.inf.puc-rio.br/~lucena Maio de 2006

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

Introdução à Engenharia de Software dos Sistemas Multi-

Agentes

Carlos J. P de Lucenahttp://www.inf.puc-rio.br/~lucena

Maio de 2006

Page 2: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena 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

Page 3: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 4: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 5: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 6: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 7: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 8: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 9: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 10: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 11: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 12: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 13: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 14: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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/

Page 15: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 16: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 17: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

Laboratório de Engenharia de Software (LES) – PUC-Rio 17

O TAC

Page 18: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 19: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 20: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 21: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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.

Page 22: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 23: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 24: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 25: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

Laboratório de Engenharia de Software (LES) – PUC-Rio 25

Roadmap para os SMA

Page 26: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 27: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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

Page 28: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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)

Page 29: Introdução à Engenharia de Software dos Sistemas Multi-Agentes Carlos J. P de Lucena lucena Maio de 2006

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.