Linguagens de Modelagem para SMA Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma Linguagens de Modelagem para SMA Motivação: necessidade de modelagem das entidade de um SMA (agentes, organizações, objetos,...) – UML não dá suporte para a modelagem de SMA – Agentes e objetos possuem características / propriedades diferentes Objetivo: propor uma linguagem onde os elementos de primeira ordem fossem as entidades de um SMA Solução: linguagens de modelagem que estendem UML – AUML, AORML, Transformação de Modelos + UML, MAS-ML, AML .... e linguagens de modelagem que não estendem UML – ANote AUML AUML – Agente UML Primeiro objetivo era especificar protocolos de interação entre agentes (AIP) 1o passo foi estender diagrama de seqüência de UML para modelar as interações entre agentes Em seguida, estenderam outros diagramas Diagramas estendido Diagrama de seqüência (detalhado) e colaboração Diagrama de atividades e de estados Diagrama de classes Diagrama de objetos Pacotes Diagrama de componentes Diagrama de deployment Diagrama de sequência de UML Tempo (top-down) condição de guarda ObjetoA mensagem síncrona [se novo] <<create>> ObjetoB objeto mensagem mensagem (auto delegação) (caixa de)ativação valor de retorno <<destroy>> linha de vida símbolo de destruição Diagrama de sequência de AUML: Modelagem de Mensagens Viviane / Professor : AgentUsuario Viviane Viviane / Professor : AgentUsuario <agente>/<papel> : <classe> ato de comunicação (ato de fala) (não chamamos de método) Problemas: Como se modela a instância de papel? Onde o agente está executando o papel? Onde o agente está? paralelismo O inclusivo O exclusivo Diagrama de sequência de AUML (Exemplo) Agente A desempenhando o papel customer Agente A desempenh a o papel negotiator representação do mudança de papel Problemas: Como se modela a criação de uma instância de papel? Como se modela que o agente cancelou um de seus papéis? Como se modela a organização onde está o agente? Diagrama de seqüência AUML: Modelagem de Protocolo protocolo ato de comunicação (ato de fala) (não chamamos de método) Protocolo Indica que este protocolo pode ser utilizado como um template para criar outros protocolos Possibilidades de comunicação Diagrama de colaboração de UML Objeto A 1:<create> 2:mensagem 5:retorno 3:mensagem Objeto C Objeto B 4:mensagem Diagrama de colaboração de AUML (Exemplo) representação da mudança de papel <agente>/<papel> : <classe> mensagem Diagrama de atividades de UML Utilizado para representar as atividades e a transições entre as atividades Partição 1 Partição 2 agrupa as atividades que estão relacionadas divisão Atividade 1 Atividade 2.1 Atividade 2.2 atividade Atividade 2.3 Atividade 2.4 união Atividade 4 Atividade 3 Diagrama de atividades de AUML Utilizado para representar as atividades associadas a um protocolo ou às atividades de um papel papel atividade Problemas: Como se modela a organização onde os papéis são executados? Diagrama de estado de UML Estado 1 transição1 Estado 2 transição4 estado transição2 Estado 3 transição3 Diagrama de estado de AUML Utilizado para representar os estados do sistema e as suas transições estado agente ou papel Diagrama de classe em UML Classe 1 atributo1 atributo2 ... metodo1 metodo2 metodo3 ... nome da classe atributos métodos Diagrama de classes de AUML Nome da classe de agente e os papéis que os agentes podem desempenhar = atributos comportamento público comportamento privado Descrição do que pode fazer a organização onde o agente executa e as condiciones para entrar e sair da organização atos de fala que podem ser utilizados nas mensagens que recebe e nas mensagens que envia Problemas: Só pode executar em uma organização? ISMA Se pode executar em mais de una organização, qual papel desempenha em cada uma? Diagrama de classes de AUML visão da organização visão de agente visão da organização visão do ambiente Representação das crenças e objetivos como objetos externos ao agente visão de interação visão da organização visão de agente Diagrama de classes de AUML organização Problemas: Como o agente troca de organização se a organização é um pacote e a classe agente está definida dentro deste pacote? Diagrama de componentes de UML = AUML Diagrama de implantação de UML Diagrama de implantação de AUML Problemas: Se na AUML os agentes podem trocar de ambiente, não deveria ser possível modelar um agente trocar de ambiente em um diagrama de seqüência? Representando Organizações Problemas: Não deveria uma instância de papel ser sempre desempenhada em uma organização? Não deveria uma instância de papel ser sempre desempenhada por um agente? Diagrama de atividades de AUML organização agente papel Problemas: Como se representa o ambiente? Diagrama de classe Os estados dos papéis Os estados dos papéis Os estados dos papéis ANote Criando a linguagem Definir um meta-modelo conceitual Definir visões guiadas pela abstração Detalhar o ambiente do sistema de agentes usando ontologia Permitir a especificação de cenários de adaptação Usar abstrações totalmente centradas no conceito de agentes ANote Linguagem de notação lightweight e orientada a agentes Foco – Especificação de sistemas com computação distribuída, agentes e representação de conhecimento (ontologias) – Características: fraco acoplamento de mensagens, uso de conteúdo anotado e pouca interação homem-máquina Objetivo – Centrada no conceito de agentes – Orientada a objetivos – Visões – Características de agentes Meta-modelo Conceitual do ANote ANote: Conceitos Objetivo (Goal) – Um propósito do sistema. define alguma funcionalidade que deve ser entregue por um ou mais Agentes – Formam o ponto de partida para a modelagem do SMA com o ANote, organizados em uma hierarquia de especialização Agente (Agent) – Módulo que executa Ações e é também a abstração principal do paradigma de agentes – Pode interagir com outros Agentes – Possui uma percepção, ou conhecimento, limitada dos Recursos do ambiente ANote: Conceitos Recurso (Resource) – Representa as entidades não-agentes que descrevem o ambiente – Formam o conjunto de conhecimento (dados / conteúdo) que os Agentes manipulam enquanto executam Ações Cenário (Scenario) – Ilustra um comportamento (seqüência de Ações) de um Agente enquanto este procura alcançar um Objetivo em um determinado contexto (estado do sistema) – Pode existir contextos normais ou variantes ANote: Conceitos Ação (Action) – É uma computação que resulta em uma mudança no estado de um Agente – Há dois tipos de Ações: Ação_Direta (DirectAction) e Ação_Adaptativa (AdaptiveAction) Mensagem (Message) – É uma passagem de informação entre dois Agentes – Possui protocolo e é, usualmente, assíncrona ANote: Conceitos Organização (Organization) – Define um grupo de Agentes que entregam um Serviço – Serviços são entregues e Objetivos são alcançados coletivamente pelos Agentes que constituem a Organização Cada conceito define uma perspectiva ou visão ANote define sete visões, cada uma com sua própria representação (diagrama) Visiones Cada conceito principal define uma perspectiva ou visão ANote define sete visiones, cada uma com uma representação (diagrama) própria Visões de objetivo, agente e ontologia modelam a parte estrutural do SMA Visões de cenário, interação, planejamento e organização modelam a parte dinâmica do SMA Visão de Objetivos Oferece uma identificação inicial de uma árvore de objetivos que descrevem as funções executadas pelos agentes São especificados por meio de elaborações, descrições de processo e do domínio do problema (decomposição funcional) Exemplo Sistema de seguros baseado na Web Rodadas de negociação – Recuperação das preferências dos clientes – Propaganda dos produtos – Envio de propostas – Realizar ou abortar as negociações Visão de Objetivos Visão de Agentes Especifica os tipos de agentes (papéis) da solução multiagente. Mostra os seus relacionamentos(formando a base estrutural do sistema) São especificados a partir da sub-divisão lógica dos objetivos funcionais do sistema Visão de Agentes Visão de Ontología Identifica os componentes não-agentes do sistema, especificados como uma ontologia São especificados a partir dos recursos do ambiente do sistema, seus relacionamentos e operações (abordagem orientada a objetos) Notação: Diagrama de Classes de UML Visão de Ontología Visão de Cenários Captura o comportamento dos agentes em contextos específicos Descreve como os objetivos são alcançados, mostrando a ordenação de ações e eventos Serve para especificar o plano usual (normal) de ação e os caminhos alternativos (contextos emergentes) Mostra os agentes, as interações e os planos envolvidos para alcançar um objetivo Notación: – Tabla de escenarios Visão de Cenários Visão de Planejamento (Ação) Especifica as ações que um agente deve percorrer para computar um plano de ação (derivado de um cenário que ilustrou o objetivo) Modela a execução interna dos agentes Visão de Planejamento (Ação) Visão de Interação (Mensagem) Mostra a organização estrutural dos agentes que enviam e recebem mensagens enquanto executam planos de ações Permite a modelagem de protocolos de interação (grafos de conversação) Visão de Interação (Mensagem) Visão de Organização Especifica uma unidade de implementação que oferece serviços (conjunto de objetivos), acessados por uma interface (conjunto de protocolos de mensagem) Não existe uma abordagem para se dividir os agentes em organizações lógicas (não é propriedade da abstração, mas uma decisão arbitrária) MAS-ML 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 MAS-ML Camada de meta-meta-modelo MOF meta-meta-modelo ER meta-meta-modelo instanciação TAO meta-modelo UML meta-modelo Camada de meta-modelo unificação MAS-ML meta-modelo Camada de modelo de domínio Camada de instância MAS-ML modelos Meta-modelo de MAS-ML Element Leyenda Meta-classes do meta-modelo de UML Novas Meta-clasess NamedElement PackageableElement RefinableElement Namespace Type Classifier Class AgentClass OrganizationClass AgentRoleClass ObjectRoleClass EnvironmentClass Meta-modelo de MAS-ML 0..* 1 controlled 1 play AgentClass 0..1 agent 1..* play 0..* play_in 0..1 agent 1 org 0..1 org 1 inhabit Inhabit 0..* inhabit 1 play Play 0..* play 0..1 agentRole AgentRoleClass 0..* play 0..1 agentRole 0..1 subOrg 1 ownership OrganizationClass 1 owner 1 inhabit 1 inhabit 1 controller 0..* Ownership ownership 1 ownership 0..1 objectRole 0..1 ObjectRoleClass objectRole 1 env EnvironmentClass 0..1 class Class 0..1 class 0..* control Control Meta-modelo de MAS-ML Leyenda Element Meta-classes do meta-modelo de UML Novas Meta-classes NamedElement Novos estereótipos RefinableElement MultiplicityElement TypedElement Feature StructuralFeature Property Belief Goal AgentMesageClass Namespace BehavioralFeature Operation ActionClass Duty Right PlanClass ProtocolClass 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 Diagrama dinâmico: seqüência e atividades Diagramas Estáticos Diagrama de Classe de UML Representa as classes e os relacionamentos entre as classes Item Order User Book Nome_da_classe Imported Books Second-hand Books atributo1 atributo2 metodo1 metodo2 metodo3 ... 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 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. Diagrama de Classes: Exemplo Overall_evaluation evaluation associação getEvaluation getPaper 0..1 Paper abstract title authors content getAbstract getTitle getAuthors getContent setAbstract setTitle setAuthors setContent 0..* Review reviewer comments evaluation 1 1 0..3 getReviewer getComments getEvaluation getPaper setReviewer setComments setEvaluation setPaper <<main-organization>> Conference agregação 0..* Workshop 0..* Tutorial 0..* 0..* 0..* 0..* Researcher 0..* Student Legend: Object / Environment Agent Organization Professor especialização 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. Diagrama de Organizações: Exemplo (parte I) Conference_Center Event Workshop Tutorial <<main-organization>> Conference Chair <<goal>> manageEvent <<belief>> reviewers Collecting_submitted_ papers {…} Assigning_papers_to_reviewers { relatePapersToReviewers, createReviewProposal, attributePapersToReviewers, attributePapersWithout3ReviewersToChair } Distributing_reviews {checkConflict, groupReviews, informAuthors} Collecting_camera-ready General_Chair _papers {…} Leyenda: Class / Environment class Object role class Author Researcher Organization class Student PC_Member Ownership relationship Agent role class Play relationship Agent class Diagrama de Organizações: Exemplo (parte II) Conference_Center Blind_Review Overall_Evaluation Review <<main-organization>> Conference Paper Submission Camera_Ready 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. Diagrama de Papéis: Exemplo Blind_Submission Camera_Ready paperId paperId getAbstract getTitle getContent getPaperId setPaperId getAbstract getTitle getAuthors getContent getPaperId Author <<goal>>publishPaper <<duty>>sendCameraReady if accepcted <<right>>submitPaper <<protocol>>PaperSubmission Blind_Review PC_Member <<goal>>reviewPaper Chair <<goal>>manageEvent <<duty>>makePreview <<right>>refusePaper <<protocol>> PaperDistribution <<duty>>receivePapers, attributePapersToReviewers, attributePapersWithout3ReviewersToChair informAuthorsReviews <<protocol>>PaperSubmission PaperDistribution getComments etEvaluation getPaper Leyenda: Agent role class Object role class General_Chair Control relationship Association relationship Generalization relationship Diagramas Dinâmicos Diagrama de Sequência de UML Representa a interação entre os objetos e as execuções dos métodos Objeto A [se novo] <<create>> Objeto B mensaje mensaje valor de retorno <<destroy>> Diagrama de Sequê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 Elementos dos diagramas de sequência Novos desenhos para representar as entidades dos SMA Novas definições para as entidades dos SMA Objeto obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass Agente agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass Organización org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass Role Entorno : RoleClass Entidad activa Entidad pasiva env : EnvironmentClass env : EnvironmentClass 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 (suas ações) UML sender method_name () receiver MAS-ML sender message_label (content_description) receiver 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 Criando e destruindo entidades Creando una organización Anne/FruitBuyer : UserAgent/Buyer <<create>> FruitStore/FruitWholesale: Store/Wholesale .. . .. . Destruyendo una organización - I Anne/FruitBuyer : UserAgent/Buyer .. . FruitStore/FruitWholesale: Store/Wholesale ... <<destroy>> .. . Destruyendo una organización - II Anne/FruitBuyer : UserAgent/Buyer .. . .. . <<destroy>> FruitStore : Store ... 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 Entidade cancelando papel <<role_activate>> Entidade ativando papel <<role_deactivate>> Entidade desativando papel <<role_change>> Entidade mudando de papel <<role_cancel>> Criando papel Bob/FruitBuyer : UserAgent/Buyer <<role_commitment>> .. . Criando um papel de agente Bob/ClothesBuyer : UserAgent/Buyer .. . Criando um papel de objeto Bob/FruitBuyer : UserAgent/Buyer <<role_commitment>> .. . Apple/DesirerFruit : Item/Desirer .. . Cancelando papel Cancelando um papel de agente Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_cancel>> .. . Cancelando um papel de agente Bob/ClothesBuyer : UserAgent/Buyer <<role_cancel>> Cancelando um papel de objeto Bob/FruitBuyer : UserAgent/Buyer <<role_cancel>> .. . Apple/DesirerFruit : Item/Desirer Desativando e ativando papel Desativar um papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_deactivate>> .. . Bob/ClothesBuyer : UserAgent/Buyer <<role_deactivate>> Activar um papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_activate>> .. . .. . Mudando de papel Cancelando um papel e criando novo papel Bob/FruitBuyer : UserAgent/Buyer <<role_change>> Bob/ClothesBuyer : UserAgent/Buyer .. . Cancelando um papel e ativando outro papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_change>> .. . Desativando um papel e criando outro papel Bob/FruitBuyer : UserAgent/Buyer <<role_change>> Bob/ClothesBuyer : UserAgent/Buyer .. . Desativando um papel e ativando outro papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_change>> .. . Modelando protocolos Um protocolo define um conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis : Seller : Buyer Request (ItemDescription) papel Proposal (ItemDescription) AnswerProposal (RejectItemDescription) else AnswerProposal (AcceptItemDescription) Inform (Bill) Inform (Payment) mensagem 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/Buyer Creating_seller Execução de um plano Execução de uma ação Execução de uma ação if (message_label = request) create_seller <<create>> : UserAgent/Seller inform_buyer_of_seller inform (seller_id) else Place-A : VirutalMarketplace plano Bob/buyerOfBooks/Bookfinder/Place-A : UserAgent/Buyer/ GeneralStore/VirtualMarketplace Entering organization BrandNewBookstore/marketOfUsedBooks/Bookfinder/Place-A : Second-handBookstore/MarketOfUsedGoods/ GeneralStore/VirtualMarketplace Search for organization getOrganizations() organização Vector chamada de método Check_organization_goals Request (OrgGoals) Managing entrance Get_organization_goals Inform (OrgGoals) Check_organization_roles Request (OrgRoles) ambiente agente Get_organization_roles Inform (OrgRoles) Select_role_to_play <<role_commitment>> Bob/buyerOfSecond-handBooks/Bookfinder/Place-A : UserAgent/BuyerOfSecond-handBooks/ GeneralStore/VirtualMarketplace Inform (RoleToPlay) ação Register_itself_in_organization Inform (Buyer_of_second_hand_books) esteriótipo de mensagem Search_for_announcement Request (Announcement) ... Entering organization Diagrama de Atividades de UML Objetivo: modelar o fluxo das actividades de um sistema O enfoque está na sequência das atividades e não na interação entre os objetos Atividades: execução não atómica composta de ações Ações: execução atómica Diagrama de Atividades de MAS-ML Objetivo: representar a modelagem de planos e ações de un agente O enfoque está na modelagem do agente e não na interação entre os agentes Atividades -> Planos de agentes Ações -> Ações de agentes Extensão do Diagrama de Atividades Identificação de papéis, organização e ambiente Papel R1 <<organization>> O1 <<organization>> O2 P2 R3 <<environment>> E1 Plano <<environment>> E2 … … <<role_change>> A3 A4 Ações