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
Download

Roadmap para os SMA - (LES) da PUC-Rio