Framework Conceitual para SMA Taming Agents and Objects (TAO) Andrew Diniz da Costa [email protected] Definições • concept: "a general idea derived or inferred from specific instances or occurrences." • framework: "a fundamental structure", "a set of assumptions, concepts, values, and practices that constitutes a way of viewing reality.“ • [www.dictionary.com] 2 Framework Conceitual para SMA • Motivação: não existe uma definição comumente aceita sobre agentes. • Objetivo: definir os conceitos relacionados a SMA e descrever os contextos nos quais estes conceitos são utilizados. • Um framework conceitual para SMA deve definir as abstrações comumente encontradas em SMAs, suas propriedades, seus relacionamentos, suas ações e suas interações. 3 TAO (Silva et al., 2003) Arquitetura MOF de 4 camadas Camada de meta-meta-modelo MOF meta-meta-modelo ER meta-meta-modelo instanciação Camada de meta-modelo Camada de modelo de domínio UML meta-modelo TAO meta-modelo UML modelos MAS modelos Camada de instância 5 Arquitetura MOF de 4 camadas Camada de meta-metamodelo Entity Relationship Entity Relationship Entity Conceptual Framework Camada de meta-modelo Agent play Role ownership Organization Conceptual Model Camada de modelo de domínio User Agent play Buyer ownership Marketplace Camada de instância Bob's Agent play Clothes Buyer ownership Wal-Mart 6 Entidades e Relacionamentos specialization association Ambiente association association inhabit specialization association aggregation dependency Objeto association play association inhabit specialization Organização ownership Papel de Objeto ownership play specialization dependency aggregation association dependency association association inhabit Agente specialization association play Papel de Agente specialization control dependency aggregation association 7 Entidades • Toda entidade possui: – Propriedades = estado + comportamento – Relacionamentos • Estado: informações sobre si mesma e sobre outras entidades • Comportamento: conjunto de ações que pode executar • Relacionamentos: define o contexto no qual duas entidades estão relacionadas 8 Objeto • Estado: atributos – não tem qualquer estrutura predefinida – armazena informações sobre si mesmo, sobre o ambiente e outros objetos em seus atributos • Comportamento: métodos – define as operações que podem ser executadas – as operações podem modificar o estado do objeto • Um objeto tem controle sobre seu estado 9 Objeto • Objeto tradicional: – não tem controle sobre seu comportamento, ou seja, faz tudo solicitado por outra entidade – não pode modificar seu comportamento • Os objetos são entidades passivas que fazem tudo que qualquer um pedir e somente quando solicitado 10 Agente • Estado: – crenças, objetivos, planos e ações • Crenças: conhecimento sobre o ambiente, sobre si mesmo e sobre outras entidades – O que o agente sabe, o que ele vê, suas memórias e suas percepções • Objetivos: estados futuros ou desejos que o agente pretende alcançar ou satisfazer – Associados a pelo menos um plano que o agente executa para alcançar o objetivo 11 Agente • Plano: composto por ações – Está relacionado a um conjunto de objetivos que o agente pode alcançar ao executá-lo • Ações: execuções do agente – Exemplo: mudar o estado mental, enviar e receber mensagens de outros agentes e chamar métodos de objetos • Um agente é capaz de escolher um plano com base nos objetivos. 12 Agente • Comportamento: – expresso por meio de seus planos e ações – se baseia nas características do agente, por exemplo, interação, autonomia e adaptação • Interação: agentes interagem com outras entidades • Autonomia: agente é pró-ativo, não precisam de estímulos externos – os agentes são entidades orientadas a objetivos • Adaptação: agente pode adaptar seu estado e seu comportamento 13 Objeto • Estado – Armazena o conhecimento sobre si mesmo e sobre outras entidades • Comportamento – não possui controle sobre o comportamento – precisa de estímulos para executar – comportamento prédefinido X Agente • Estado mental: estende o estado de objeto – Adiciona ao estado definição de comportamento • Comportamento: estende o comportamento de objeto – possui total controle sobre seu comportamento (pode dizer “não”) – não precisam de estímulos externos ou internos para executar; – podem adaptar o comportamento 14 Objeto X Agente • Agente é uma entidade ativa e objeto uma entidade passiva. • Objeto fortemente relacionado com reatividade. • Agente fortemente relacionado com autonomia. Objeto Ativo • Comportamento: – Comportamento prédefinido X Agente • Comportamento: – Pode adaptar o seu comportamento • Interativo • Interativo • Até certo grau autônomo • Autônomo – Possui sua própria thread – Começa a executar sem estímulos externos – Atende a todas as solicitações de outras entidades – Possui sua própria thread – Executa sem estímulos externos – Pode dizer “não” às solicitações de outras entidades 16 Ambiente • É o habitat de agentes, organizações e objetos – eles não podem residir em mais de um ambiente ao mesmo tempo. • Estado e o comportamento são definidos com base na característica • Pode ser uma entidade passiva, como um objeto, ou pode ser uma entidade ativa, como um agente 17 Ambiente • Ambiente modelado como uma classe de objeto possui – métodos e atributos • Ambiente modelado como um agente possuem – crenças, objetivos, ações e planos iniciais. 18 Organização • Organizações agrupam os agentes de um SMA • Organização = grupo = comunidades = sociedades • Pode definir sub-organizações, axiomas e papéis • Sub-organizações: – organizações que desempenham papéis em uma organização 19 Organização • Papéis: – São desempenhados por agentes, objetos e sub-organizações dentro de uma organização • Axioma: – regra, lei ou princípio estabelecido. – restrições globais da organização às quais os agentes e as suborganizações devem obedecer. • Axioma = regra = lei = norma 20 Organização • Uma organização estende um agente • Estado: – crenças, objetivos, ações, planos e axiomas • Comportamento: – ações e planos executados pela organização + – ações e planos executados pelos agentes e sub-organizações. 21 Papéis • Duas propriedades mais importantes: – São definidos no contexto de uma organização – Uma instância de papel deve ser exercida por um agente, por um objeto ou por uma sub-organização. • Orienta e também restringe o comportamento de instâncias que exercem o papel. 22 Papel de Objeto • Descreve um conjunto de características que são vistas por entidades que usam o objeto • Orienta o comportamento de objetos porque os objetos agem de acordo com chamadas feitas pelo papel • Restringir o acesso ao objeto limitando as informações e o comportamento que outras entidades podem acessar 23 Papel de Objeto • Pode também adicionar informações (atributos) e comportamento (métodos) ao objeto que exerce o papel. • Estado: atributos – mantém as informações • Comportamento: métodos – são as operações 24 Papel de Objeto Entidade B Papel de Objeto Objeto atributo 1 atributo 1 atributo 2 método 1 método 3 método 1 método 2 Entidade A 25 Papel de Objeto Entidade B Papel de Objeto Objeto atributo 1 atributo 1 atributo 2 método 1 método 3 método 1 método 2 Entidade A 26 Papel de Objeto • Um objeto não tem consciência do papel que está exercendo • O papel de objeto é que sabe a qual objeto está associado • Todas as instâncias de papel de objeto são um membro de uma organização e são exercidas por um objeto 27 Papel de Agente • Orienta o comportamento de um agente descrevendo seus objetivos ao exercer o papel • Restringe o comportamento definindo as ações que o agente deve exercer (deveres) e as ações que pode executar (direito) ao exercer o papel • Pode adicionar novos objetivos e crenças ao agente • Um agente e uma organização desempenham pelo menos um papel 28 Papel de Agente • Estado: – crenças e objetivos. • Os objetivos dos papéis caracterizam os objetivos que um agente deve alcançar enquanto exerce o papel • Comportamento: – deveres, direitos e protocolos 29 Papel de Agente • Deveres (ou obrigações) identificam as ações atribuídas ao agente que está exercendo o papel, ou seja, as responsabilidades • Direitos (ou qualificações) identificam as ações que o agente pode executar ao exercer o papel, isto é, eles descrevem as permissões associadas às ações • Protocolos definem as interações entre papéis por meio da especificação das mensagens 30 Relacionamentos • Inhabit: – especifica que a instância de entidade que reside – o cidadão – é criada e destruída no habitat e, portanto, pode entrar e sair dele, respeitando suas permissões – um cidadão não pode residir em dois habitats ao mesmo tempo – o habitat conhece todos os cidadãos que residem nele, e cada cidadão conhece seu habitat – Aplicabilidade: ambientes e agentes, ambientes e objetos e ambientes e organizações 31 Relacionamentos • Ownership: – Especifica que uma entidade – o membro – é definida no escopo de outra entidade – o proprietário – e que um membro deve obedecer a um conjunto de restrições globais definidas pelo proprietário – O membro não existe fora do escopo de seu proprietário – Os proprietários conhecem seus membros, e cada membro conhece seu proprietário – Aplicabilidade: classes de papel – os membros – e às classes de organização – os proprietários 32 Relacionamentos • Ownership: – Uma instância de papel (papel do agente ou papel de objeto) só pode ser exercida por entidades na organização que definiu o papel – A organização define quem exerce os papéis identificados – A organização define qual papel pode ser exercido por uma entidade 33 Relacionamentos • Play: – Especifica que uma entidade está relacionada a um papel – Os agentes e as organizações interagem por meio dos papéis que exercem – Os relacionamentos entre agentes, entre agentes e organizações e entre organizações são indiretamente definidos pelos papéis que estão exercendo – Quando um objeto está exercendo um papel, as entidades interagem com o objeto por meio de seu papel – Aplicabilidade: entre papel de agente e agente, papel de agente e sub-organização, papel de objeto e objeto 34 Relacionamentos • Specialization/Generalization: – Define que a sub-entidade que especializa a super-entidade herda as propriedades e os relacionamentos definidos na super-entidade – As propriedades herdadas também podem ser redefinidas pela sub-entidade – A sub-entidade também pode definir novas propriedades e novos relacionamentos – Aplicabilidade: todas as entidades 35 Relacionamentos • Control: – Define que a entidade controlada deve fazer tudo que a entidade do controlador pedir – A entidade controlador conhece as entidades controladas, e cada entidade controlada conhece as entidades que a controlam – As entidades controladas e do controlador serão os agentes ou as organizações que estão exercendo os papéis – Aplicabilidade: entre dois papéis do agente 36 Relacionamentos • Dependency: – Define que uma entidade – o cliente – pode ser definida para depender de outra – o fornecedor – para realizar seu trabalho – Especifica que uma alteração na especificação do fornecedor pode afetar o cliente, mas não necessariamente o contrário – O cliente sempre conhece seus fornecedores, mas o contrário pode não ser verdadeiro – Aplicabilidade: entre papéis de agente, entre papéis de objeto e entre papel de agente e papel de objeto, 37 Relacionamentos • Association: – Especifica um relacionamento de semântica que pode ocorrer entre instâncias – Se uma entidade estiver associada à outra entidade, ela saberá da existência da outra entidade e, então, poderá interagir com ela – Aplicabilidade: entre papéis (papéis de objeto e papéis de agente), ambientes, agentes e objetos, organizações e objetos, e papéis e objetos 38 Relacionamentos • Aggregation: – Define a entidade que é o agregador e a entidade que é a parte. – Se uma entidade estiver agregada a outra, dizemos que ela é o agregador de partes. – O agregador pode usar a funcionalidade disponível em suas partes para realizar seu trabalho. – Aplicabilidade: entre papéis de objeto e entre papéis do agente. 39 Sistema Multi-Agentes Sistema Multi-Agentes Organização principal agente Ambiente agente agente objeto 40 Sistema Multi-Agentes Sistema Multi-Agentes Organização principal Papel de agente Papel de objeto Organização principal agente Ambiente agente agente objeto 41 Sistema Multi-Agentes Sistema Multi-Agentes Sub-Organização Organização principal Organização principal agente Ambiente agente agente objeto 42 Sistema Multi-Agentes Sistema Multi-Agentes Sub-Organização Organização principal Papel de agente Papel de objeto Organização principal agente Ambiente agente agente objeto 43 Comportamento das Entidades • Análise do comportamento independente do domínio da aplicação • Criação das entidades • Destruição das entidades • Interação entre as entidades – Agentes e sub-organizações interagindo com organizações – Agentes e sub-organizações interagindo com ambientes 44 Criação das entidades • Criação de papel de agente – A criação ocorre quando um agente ou sub-organização se compromete com o papel. – Condição: existência de um agente ou uma sub-organização para exercer o papel – Criador: organização 45 Criação das entidades • Criação do agente – Um papel deve ser imediatamente criado e associado ao agente – Condição: existência de uma organização – Criador: outro agente, uma organização ou um ambiente 46 Criação das entidades • Criação de organização – Se a organização sendo criada é uma sub-organização, uma instância de papel deve ser criada e associada à suborganização – Condição: existência do ambiente – Criador de organização principal: ambiente – Criador de sub-organizações: agente, (sub-)organização ou ambiente 47 Criação das entidades • Criação de papel de objeto – Criado quando uma entidade (o criador) deseja acessar um objeto em uma organização que restringe a visão do objeto. – Deve ser associado a um objeto – Condição: existência do objeto – Criador: agentes e organizações 48 Criação das entidades • Criação de objetos – Condição: existência do ambiente – Criador: agentes, organizações, objetos e ambientes – Não depende do papel 49 Criação das entidades • Criação de ambiente – O ambiente deve ser criado antes de outras entidades porque elas residem no ambiente. – Condição: -– Criador: máquina virtual do sistema, outro ambiente, agentes ou organizações que residem em outro ambiente. 50 Referências • Dardenne, A.; Lamsweerde, A.; Fickas, S. (1993) "Goal-directed Requirements Acquisition." Science of Computer Programming. v.20, p.350. • d'Inverno, M.; Luck, M. (2001) "Understanding Agent Systems". New York: Springer, 2001. • Luck, M.; d'Inverno, M. “A conceptual framework for agent definition and development.” The Computer Journal, 44(1):1--20, 2001. • Yu, L.; Schmid, B. “A Conceptual Framework for Agent-Oriented and Role-Based Work on Modeling.” In: WAGNER, G.; YU, E. (Eds.). Proceedings of the 1st International Workshop on Agent-Oriented Information Systems, 1999. • 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, Springer-Verlag, LNCS 2603, pp. 1-26, 2003. 51 Fim! Questões?