multi-agent system modeling language (mas-ml) viviane torres da silva ricardo choren carlos j. p. de...
TRANSCRIPT
Multi-Agent System Modeling Language(MAS-ML)
Viviane Torres da SilvaRicardo Choren
Carlos J. P. de Lucena
Palestrante: Andrew Diniz da Costa
© LES/PUC-Rio
MAS-ML
• Estende o meta-modelo de UML com base no framework conceitual TAO
• Meta-modelo MAS-ML estende o meta-modelo de UML
– Novos estereótipos
– Novas meta-classes
© LES/PUC-Rio
Camada de meta-modelo
Camada de modelo de domínio
Camada de meta-meta-modelo
Camada de instância
MOF meta-meta-modelo
ER meta-meta-modelo
UML meta-modelo
TAOmeta-modelo
MAS-MLmeta-modelo
instanciação
MAS-MLmodelos
unificação
© LES/PUC-Rio
Meta-modelo MAS-ML
DutyRight
Features Classifier
Structural Feature Behavioral Feature
Belief Goal
Axiom
Operation
Property
Class AgentClass ObjectRoleClass
OrganizationClass
AgentPlan
Meta-classes do meta-model UML
Novas meta-classes
Novos estereótipos
Legenda
AgentRoleClass
AgentAction 1..* *
1..**
sender receiver1 *
Element
AgentProtocol
AgentMessage
1..*
*
Constraintpostconditionpostcondition
preconditionprecondition
0..1 0..10..10..1
*
**
*
EnvironmentClass
ActiveEnvironmentClass
PassiveEnvironmentClass
© LES/PUC-Rio
Meta-modelo MAS-ML
Class
AgentClass
ObjectRoleClassOrganizationClass
AgentRoleClass
EnvironmentClassdefine
play
1
1..*0..*
define
1 sub-org
play 1..*1
play in
0..*
1..*
1..*1inhabit
1
0..*
inhabit
inhabit
1
0..*
play1
0..*
0..*1
sub-org
0..* 1
play in play in
0..*
0..*
Meta-classes do meta-modelo UML
Novas meta-classes
Legenda
© LES/PUC-Rio
Meta-modelo MAS-ML
Relationship
Directed Relationship
Classifier
Element
Association
Dependency Ownership Inhabit Control Play Generalization
1..*
Meta-classes do meta-modelo UML
Novas meta-classes
Legenda
© LES/PUC-Rio
MAS-ML
• MAS-ML modela os aspectos estruturais e dinâmicos descritos no TAO
– Aspectos estruturais: entidades, propriedades e relacionamentos
– Aspectos dinâmicos: interação entre as entidades e execuções internas
• Diagramas estáticos: classes, organizações e papéis
• Diagramas dinâmicos: seqüência e atividades
Diagramas Estáticos
© LES/PUC-Rio
Diagrama de Classe de UML
• Representa as classes e os relacionamentos entre as classes
Second-hand BooksImported Books
Item
Book
Order User
Nome_da_classe
atributo1atributo2
metodo1metodo2metodo3...
© LES/PUC-Rio
Diagramas para SMA
• Como representar agentes, organizações, papéis e ambientes?
• Como representar relacionamos específicos de SMA, como inhabit, control e play?
• Novo elemento de diagrama para representar novas entidades e relacionamentos
© LES/PUC-Rio
Elementos dos diagramas I
ObjectRoleClass OrganizationClassAgentRoleClassAgentClassClass
AgentRoleClassAgentRoleClass
EnvironmentClassEnvironmentClass
Relacionamento Inhabit
RelacionamentoControl
Entidades
© LES/PUC-Rio
Elementos dos diagramas II
OrganizationClass AgentRoleClass
OrganizationClass AgentRoleClass
AgentClass
RelacionamentoOwnership
RelacionamentoPlay
© LES/PUC-Rio
Agente
AgentClass
<<goal>> type : name [= default-value] plan-list<<belief>> type : name [= default-value]
{precondition-list} action {postcondition-list}plan {action-list} goal-name
Característicasestruturais
Característicascomportamentais
© LES/PUC-Rio
Organização
OrganizationClass
<<goal>> type : name [= default-value] plan-list<<belief>> type : name [= default-value]<<axiom>> type : name [= default-value]
{precondition-list} action {postcondition-list}plan {action-list} goal-name
Característicasestruturais
Característicascomportamentais
© LES/PUC-Rio
Papel de Agente
AgentRoleClass
<<goal>> type : name [= default-value]<<belief>> type : name [= default-value]
<<duty>> action <<right>> actionprotocol-name { messsage: {label: value, content: value,
sender : value, receiver: value}...}
Característicasestruturais
Característicascomportamentais
© LES/PUC-Rio
Papel de Objeto
ObjectRoleClass
[visibility] type : name [= default-value]
[visibility] name (parameter-list) : returned-value
Características estruturais
Característicascomportamentais
© LES/PUC-Rio
Ambiente
EnvironmentClass Característicasestruturais
Característicascomportamentais
Entidades que habitam o ambiente
EnvironmentClassor
© LES/PUC-Rio
Diagrama de Classes
• Objetivos: representar os relacionamentos entre classes e outras entidades do SMA e representar os relacionamentos entre agentes, ambientes e organizações.
• Classes usadas neste diagrama:
– agent class, organization class, environment class e outras definidas por UML.
• Relacionamentos usados neste diagrama:
– Aqueles já definidos por UML;
– inhabit – usado entre classes e ambientes;
– association – usado entre agente e classes, entre organizações e classes, e entre ambientes;
– specialization – usado entre agentes, entre organizações e entre ambientes.
© LES/PUC-Rio
Diagrama de Classes
Second-hand BooksImported Books
Item
Book
Virtual Marketplace
inhabit
specialization
associationAgentA
AgentB
Organization A
Organization B
Object / Environment
Agent
Organization
Legend:
© LES/PUC-Rio
Diagrama de Organizações
• Objetivo: modelar as organizações e os relacionamentos entre as organizações e outras entidades do SMA.
• Cada diagrama de organização modela uma organização
• Classes usadas neste diagrama:– organization class, agent class, agent role class, object role class, class
e environment class.
• Relacionamentos usados neste diagrama: – ownership – usado entre organizações e papéis que a organização
define;– play – usado entre agentes e papéis de agentes, entre sub-organizações
e papéis de agentes, e entre classes e papéis de objeto;– inhabit – usado entre ambiente e organizações e entre ambiente e
agentes.
© LES/PUC-Rio
Diagrama de Organizações
Object role
Agent roleObject / Environment
Agent
Organization
Legend:
General Store
Virtual Marketplace
Market of Special Goods Market of Used Goods
Imported Bookstore Second-hand BookstoreBook
Desire Offer
BuyerSeller
User AgentStore Agent
<<main-organization>>
inhabitplay
ownership
© LES/PUC-Rio
Diagrama de Papéis
• Objetivo: modelar os papéis e os relacionamentos entre os papéis
• Classes usadas neste diagrama:
– agent role class, object role class e class
• Relacionamentos usados neste diagrama:
– control – usado entre papéis de agente;
– dependency – usado entre papéis de objeto, entre papel de agente e papel de objeto e entre papéis de agente;
– association – usado entre papéis de objeto, entre papel de agente e papel de objeto, entre papéis de agente e entre qualquer papel e uma classe;
– aggregation – usado entre papéis de objeto e entre papéis de agente;
– specialization – usado entre papéis de objeto e entre papéis de agente.
© LES/PUC-Rio
Diagrama de Papéis
Market of Special Goods
Offer Desire
Buyer
Buyer of Imported Books Seller of Imported Books
Seller
Desire of Imported Books
Offer ofImported Books
Buyer of Second-hand BooksSeller of Second-hand Books
Desire of Second-hand
Books
Offer ofSecond-hand
BooksMarket of Used Goods
Object role Agent role
Legend:
control
association
Seller
Seller of Imported Books
specialization
Diagramas Dinâmicos
© LES/PUC-Rio
Diagrama de Seqüência de UML
• Representa a interação entre os objetos e as execuções dos métodos
joseFloricultor
centralCentralFloricultura
joao:Dentista
floricultorPetropolisFloricultor
1.1: atendeCidade("Petropolis"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean
1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor
© LES/PUC-Rio
Diagrama de Seqüência de MAS-ML
• Objetivo: representar as interações entre as instâncias do SMA e representar as ações internas destas instâncias.
• Representar interações: troca de mensagens entre entidades
– Modelar troca de mensagem:
• Redefinir mensagens
• Criar novos estereótipos associados à mensagens
– Modelar protocolos
• Representar ações internas (intra-ações):
– Modelar planos e ações
© LES/PUC-Rio
Elementos dos diagramas
• Novos pathnames e novos ícones
org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass
obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass
agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass
env : EnvironmentClass env : EnvironmentClass
Active entity Passive entity
Objeto
Agente
Organização
Ambiente
: RoleClassPapel
© LES/PUC-Rio
Redefinindo mensagens
• UML: mensagens são chamada de métodos
• SMA: mensagens não são diretamente mapeadas para uma execução interna do agente
message_label (content_description)sender receiver
method_name ()sender receiver
© LES/PUC-Rio
Estereótipos de mensagens
• Como representar a criação de entidades de SMA?
• UML: uso do estereotipo <<create>>– Estender para representar a criação de entidades de SMA
• Como representar a destruição de entidades de SMA?
• UML: uso do estereotipo <<destroy>>– Estender para representar a destruição de entidades de SMA
© LES/PUC-Rio
Criando e destruindo entidades
Anne/FruitBuyer : UserAgent/Buyer
<<create>>
......
Criando uma organização
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
FruitStore : Store
...
Destruindo uma organização - II
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
...
Destruindo uma organização - I
FruitStore/FruitWholesale: Store/Wholesale
FruitStore/FruitWholesale: Store/Wholesale
© LES/PUC-Rio
Estereótipos de mensagens
• Como representar a relação entre papéis e entidades que desempenham papéis?
• <<role_commitment>> Entidade se comprometendo com um novo papel
• <<role_cancel>> Entidade cancelando papel
• <<role_activate>> Entidade ativando papel
• <<role_deactivate>> Entidade desativando papel
• <<role_change>> Entidade mudando de papel
© LES/PUC-Rio
Criando papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer<<role_commitment>>
......
Bob/FruitBuyer : UserAgent/Buyer
Apple/DesirerFruit : Item/Desirer<<role_commitment>>
......
Criando um papel de agente
Criando um papel de objeto
© LES/PUC-Rio
Cancelando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
...
Cancelando papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
Bob/FruitBuyer : UserAgent/Buyer Apple/DesirerFruit : Item/Desirer
Cancelando papel de objeto
<<role_cancel>>
...
Cancelando papel de agente
© LES/PUC-Rio
Desativando e ativando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_activate>>
...
Ativar papel
...
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Desativar papel
...
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
© LES/PUC-Rio
Mudandode papel Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>
...
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
Bob/FruitBuyer : UserAgent/Buyer
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>
...
...
...
Cancelando papel e criando novo papel
Cancelando papel e ativando outro papel
Desativando papel e criando outro papel
Desativando papel e reativando outro papel
© LES/PUC-Rio
Modelando protocolos
• Um protocolo define um conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis
Request (ItemDescription)
Proposal (ItemDescription)
AnswerProposal (RejectItemDescription)
AnswerProposal (AcceptItemDescription)
Inform (Payment)
Inform (Bill)
: Buyer : Seller
else
mensagem
papel
© LES/PUC-Rio
Modelando planos e ações
• Execução interna dos agentes, organizações e ambientes ativos são definidas pela execução dos planos e ações.
: GeneralStore
: UserAgent/Seller
if (message_label = request)
create_seller
else
inform_buyer_of_seller
: UserAgent/Buyer
inform (seller_id)
<<create>>
Creating_seller
Executionof a Plan
Executionof an Action
Executionof an Action
© LES/PUC-Rio
Diagrama de Atividades de UML
• Objetivo: modelar o fluxo das atividades de um sistema
• O foco está na seqüência de atividades e não na interação entre os objetos
• Atividades: execução não atômica composta de ações
• Ação: execução atômica
© LES/PUC-Rio
Diagrama de Atividades de MAS-ML
• Objetivo: representar a modelagem de planos e ações de um agente
• O foco está na modelagem de um agente e não na interação entre os agentes
• Atividades -> Planos de agentes
• Ações -> Ações de agentes
© LES/PUC-Rio
Extensão Diagrama de Atividades
<<role_change>>A3
A4
…
…
<<
envi
ronm
ent>
>E
1<
<en
viro
nmen
t>>
E2
<<
orga
niza
tion
>>
O2
<<
orga
niza
tion
>>
O1
R3
R1
P2
Plan
Action
Roles
© LES/PUC-Rio
Exemplo
Selling
[proposalaccepted]
Informing Price Informing proposal
[proposalrejected]
Payment
<<goal>>
<<goal>>to have an item sold
<<role>>Seller
Receiving FinalPosition
© LES/PUC-Rio
Ambiente
• Identificado ambiente
• Modelando a mudança de ambiente
<<role_commitment>>Action N
<<role_deactive>>Action M
......
Role Z Role W
<<organization>> A <<organization>> B
<<environment>> Env1 <<environment>> Env2
© LES/PUC-Rio
Referências
• Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Journal of Autonomous Agents and Multi-Agent Systems, Kluwer Academic Publishers. 2003.
• Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Doctoral Thesis, 31st March, 2004.
• Silva, V. T.; Cortés, M.; Lucena, C. J. P. An Object-Oriented Framework for Implementing Agent Societies. Technical Report (MCC32/04), Computer Science Department, PUC-Rio. Rio de Janeiro, Brazil. 2004.
• SILVA, V.; GARCIA, A.; BRANDAO, A.; CHAVEZ, C.; LUCENA, C.; ALENCAR, P. Taming Agents and Objects in Software Engineering. In: GARCIA, A.; LUCENA, C.; ZAMBONELI, F.; OMICINI, A; CASTRO, J., (Eds.) Software Engineering for Large-Scale Multi-Agent Systems. LNCS 2603, Berlin: Springer, 2003.
• Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.; Web site Agent Society Framework, 2007.
• Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.;Remodelando e Estendendo o Agent Society Framework, n° MCC17/06, Departamento de Infomática da Pontifícia Universidade Católica do Rio de Janeiro, 2006.