48
G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de Carvalho Orientador Carlos J. P. de Lucena

G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Embed Size (px)

Citation preview

Page 1: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

G-Frameworks

Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos

Defesa de Tese de Doutorado de Gustavo Robichez de Carvalho

Orientador Carlos J. P. de Lucena

Page 2: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Agenda

• Governança de Sistemas Multiagente Abertos– Análise de cenários de evolução e variabilidade no TAC SCM

– Trabalhos relacionados a manutenibilidade de especificação de interações

• G-frameworks– Desenvolvimento de mecanismos de governança

– Casos de Leis

– Pontos de Extensão

– Operadores de Refinamento

• Estudo de Caso SELIC

• Conclusão e Trabalhos Futuros

Page 3: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Governança de Sistemas MultiAgente Abertos

Agente A Agente B

Mecanismo de Governança de Leis

Law

Action

Norm

Clock

nScene

n

n

n

n

n

n

Agent

Protocol

1

1

-creator

State

Transition

-currentStatesn

-outgoingTransitions

n

-toState

Event

-isActivated

nn

-requires

n

Constraint

n

Role

-participant

Message

-sender

nn

-receiver

<Laws> <LawOrganization id="…" name="…"> <Scene id="…" time-to-live="…"> <Creators>…</Creators> <Entrance> <Participant role="…" limit="…"/> </Entrance> <Messages>…</Messages> <Protocol> <States> … </States> <Transitions>…</Transitions> </Protocol> <Norms>... </Norms> <Clocks>...</Clocks> <Actions>...</Actions> </Scene> </LawOrganization></Laws>

Componentes Java

MLaw

XMLaw

Modelo Conceitual

Page 4: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Análise de Cenários de Evolução do TAC SCM

Page 5: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Análise de Cenários de Evolução do Contract Net

Contract Net com Protocolo de Confirmação

Holonic Contract Net com Protocolo de Confirmação

Time outs? Normas? Filtros?

Page 6: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

SoluçãoBusca pela Reutilização de Leis de Interação

Page 7: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Trabalho Relacionado

Kuwabara, K., Ishida, T., and Osato, N.: "AgenTalk: Describing Multiagent Coordination Protocols with Inheritance", Proc. 7th IEEE International Conference on Tools with Artificial Intelligence (ICTAI '95) p.460-p.465 (1995)

Page 8: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Trabalho Relacionado

• Suporte a flexibilidade para confidencialidade

– Abordagem que aprimora LGI com o conceito de hierarquia de políticas para apoiar diferentes níveis que possam ser formuladas de forma independente uma das outras.

• Mecanismo customizável de governança de especificação de agentes baseado no conceito de skeletons.

– Abordagem definida a partir de um modelo formal

– Skeletons são equivalentes a máquinas de estado finitas e o seu modelo poderia ser utilizado para dar apoio a proposta de g-frameworks

Xuhui Ao and Naftaly Minsky. Flexible Regulation of Distributed Coalitions. In Proc. of the 8th European Symposium on Research in Computer Security (ESORICS). Gjøvik Norway, October 2003.

SINGH, M. P., A Customizable Coordination Service for Autonomous Agents, Intelligent Agents IV: Agent Theories, Architectures, and Languages, Munindar P. Singh et al. ed., Springer, Berlin, 1998, pp. 93-106.

Page 9: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Como sistematizar o desenvolvimento de mecanismos de governança em um mesmo domínio de aplicação?

Page 10: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Analogia Frameworks Orientados a Objetos

• Um framework OO é um conjunto de elementos abstratos e concretos que compõe uma solução semi-completa.

– Uma instância de um framework contém especializações dos elementos abstratos e provêem uma solução executável.

• G-frameworks oferecem uma abordagem inspirada e adaptada de frameworks OO para a construção de mecanismos de governança a partir de leis customizáveis e flexíveis.

Mecanismo Governança

Mecanismo Governança

Frameworks de Governança de SMAs Abertos

Núcleo de Leis de Interação

Pontos de Extensão

ExtensõesExtensões

Page 11: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Algumas Diferenças entre G-Frameworks e Frameworks OO

Diferença Frameworks OO G-Frameworks

Abstração de primeira ordem

Objetos Interação

Definição de Pontos de Extensão

Classes ou Interfaces Elementos de leis

Linguagem de Programação

OO - exemplo: Java Leis de interação - exemplo XMLaw

Instância Aplicação Mecanismo de governança

Fluxo de execuçãoDefinido pela ordem de chamada de

métodos.Definido pela seqüência de ativação de eventos.

Núcleo (elementos estáveis)

Classes e relacionamentosElementos de leis e dependências de ativação

de elementos

Modularização Pacotes e classes Contextos (leis, normas e cenas)

Ambiente de execução Máquina virtual Java MLaw

Page 12: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Como aprimorar a manutenibilidade de leis de interação?

• Documentação de Requisitos

• Análise e Design

– Foco em Análise de Domínio/Variabilidade

– Foco em Reutilização de Elementos de Leis de Interação

• Implementação com Suporte a extensibilidade em código XMLaw

Casos de UsoDetalhado

Ameaças Casos de Leis

Análise de Risco

Mitigaçãode Risco

Descrição de Leis XMLaw

Projeto de LeisIdentificação de Pontos

de Flexibilização

Projeto do Framework

Arquitetura do Sistema

Multiagente

Núcleo do Framewok

Pontos de Extensão

Especificar Protocolo

Análise deVariabilidade

Page 13: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Desenvolvendo um G-framework

Requisitos

Análise e Projeto

Implementação

Page 14: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Requisitos

Casos de UsoDetalhado

Ameaças Casos de Leis

Análise de Risco

Mitigaçãode Risco

Descrição de Leis XMLaw

Projeto de LeisIdentificação de Pontos

de Flexibilização

Projeto do Framework

Caso de Uso

Negociar Componentes Eletrônicos para PCs

Negociar a venda de PCs

Pagar a compra de componentes eletrônicos

Receber pagamento de PCs

Ameaça

Surgir uma nova modalidade de negociação de componentes eletrônicos para PCs

Agente montador enviar mensagem fora da data permitida em pedido de cotações

Agente montador enviar número muito grande de mensagens rfq para fornecedor

Agente montador deve pagar ao banco as compras feitas em um fornecedor

Ameaça: Surgir uma nova modalidade de negociação de componentes eletrônicos para PCs

Caso de Uso: Negociar Componentes Eletrônicos para PCs

Caso de Leis Gerar padrão de negociação entre Montadores e Fornecedores no TAC SCM

Ameaça: Surgir uma nova modalidade de negociação de componentes eletrônicos para PCs

Caso de Uso: Negociar Componentes Eletrônicos para PCs

Caso de Leis Gerar padrão de negociação entre Montadores e Fornecedores no TAC SCM

Contexto: A partir de novas edições ou mesmo rodadas, épossível aprimorar a forma de

negociação

Hipótese: Existe um fluxo padrão de negociação onde é possível enquadrar as

modalidades previstas no TAC SCM.

Argumento:

É possível identificar a existência de um fluxo comum de mensagens para a negociação de componentes entre montadores e fornecedores. No entanto, algumas diferenças foram percebidas,

a citar, o número de requisições RFQ permitidas durante o período de um dia, a forma de contagem destas requisições, o

processo de verificação de atributos de mensagens, e a forma de pagamento.

Argumento:

É possível identificar a existência de um fluxo comum de mensagens para a negociação de componentes entre montadores e fornecedores. No entanto, algumas diferenças foram percebidas,

a citar, o número de requisições RFQ permitidas durante o período de um dia, a forma de contagem destas requisições, o

processo de verificação de atributos de mensagens, e a forma de pagamento.

Evidência:

Existem 3 edições passadas do TAC SCM onde este padrão ocorreu.

Page 15: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Documentação de Requisitos

• Casos de Leis provêem uma forma de organizar, analisar e especificar requisitos de fidedignidade que derivarão elementos de leis de interação

• Um caso de lei é um corpo de evidências documentado para prover um argumento válido e convincente que demonstre que um sistema multiagente aberto exibe os atributos de fidedignidade necessários para uma dada aplicação em um ambiente especifico.

Page 16: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

RequisitosModelo Conceitual de Casos de Leis

Contexto

Evidência Argumento

Hipótese

1..*1..*

é solucionada por

0..*

gera

0..*+sub-hipóteses

Contexto Hipótese

ArgumentoArgumento Evidência

x

x

É sub-hipótese de x

Possui sub-hipóteses

Page 17: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Exemplo de Caso de Lei

Ameaça: Surgir uma nova modalidade de negociação de componentes eletrônicos para PCs

Caso de Uso: Negociar Componentes Eletrônicos para PCs

Caso de Leis Gerar padrão de negociação entre Montadores e Fornecedores no TAC SCM

Ameaça: Surgir uma nova modalidade de negociação de componentes eletrônicos para PCs

Caso de Uso: Negociar Componentes Eletrônicos para PCs

Caso de Leis Gerar padrão de negociação entre Montadores e Fornecedores no TAC SCM

Contexto: A partir de novas edições ou mesmo rodadas, épossível aprimorar a forma de

negociação

Hipótese: Existe um fluxo padrão de negociação onde é possível enquadrar as

modalidades previstas no TAC SCM.

Argumento:

É possível identificar a existência de um fluxo comum de mensagens para a negociação de componentes entre montadores e fornecedores. No entanto, algumas diferenças foram percebidas,

a citar, o número de requisições RFQ permitidas durante o período de um dia, a forma de contagem destas requisições, o

processo de verificação de atributos de mensagens, e a forma de pagamento.

Argumento:

É possível identificar a existência de um fluxo comum de mensagens para a negociação de componentes entre montadores e fornecedores. No entanto, algumas diferenças foram percebidas,

a citar, o número de requisições RFQ permitidas durante o período de um dia, a forma de contagem destas requisições, o

processo de verificação de atributos de mensagens, e a forma de pagamento.

Evidência:

Existem 3 edições passadas do TAC SCM onde este padrão ocorreu.

Page 18: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Análise e Projeto de SMAs

Arquitetura do Sistema

Multiagente

Núcleo do Framewok

Pontos de Extensão

Especificar Protocolo

Análise deVariabilidade

otherRFQTransition

offerTransition

deliveryTransitionorderTransition

as1

as5rfqTransition

newRFQTransition

as3

as2

as4

CenaDebito

CenaCompraVenda

Compromissada

activation

deactivation

Obrigacao

AlterarCustodia

CenaRecompraRevenda

Compromissada

activation

activation

CenaAlteracaoCustodia

deactivation

CenaCredito

CenaMercadoSecundario

activation

deactivationPermissao

Credito

activation

activation

activation

deactivation

ObrigacaoCompromissada

MULTAR

Proibido

Negociar

MULTAR

activation

deactivation

CenaNegociacao

activation

Obrigacao

Debito

activation

activation

CenaNotificacao

Page 19: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Análise e Projeto Pontos de extensão em Leis de Interação

• Um elemento de lei pode ser definido como abstrato e suas variações se darão para adição ou substituição de atributos ou novos elementos de leis.

Page 20: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

ImplementaçãoMáquina de Estados

EXECUTANDO

OCIOSO INTERPRETANDOINFORMALEI BASE

ESTENDENDOLEI

INCONSISTENTE

VERIFICA CONSISTÊNCIA

ATUALIZA

LEI CONSISTENTE FALSO

LEI BASE INCONSISTENTE

VERIFICA CONSISTÊNCIA

ATUALIZA

INFORMAEXTENSÃO LEI

LEI BASE NÃO CONSISTENTE

Page 21: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

MLawEvolução em tempo de projeto no MLaw

Page 22: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Pontos de extensão em Leis de Interação

• Primeira estratégia...

– Postergar a definição de componentes que implementariam a lógica de elementos de leis existentes em XMLaw (Actions e Constraints)

• Representavam o conhecimento sobre o lugar da lei que deveria ser modificada pelos desenvolvedores de mecanismos de governança.

• Desenvolvimento da lei se dava em dois passos:

– Definição de elementos de leis + definição de hooks

– A instanciação dos hooks corresponderia a associação de componentes.

<Constraint id=“id“ class=“java"/>

<Action id=“id“ class=“java">...</Action>

Page 23: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

ImplementaçãoExemplo de permissão com hooks

<Permission id="AssemblerPermissionRFQ"><Owner>Assembler</Owner><Activations> <Element ref="negotiation" event-type="scene_creation"/></Activations><Deactivations> <Element ref="orderTransition" event-type="transition_activation"/></Deactivations><Constraints> <Constraint id="checkCounter"/></Constraints><Actions> <Action id="permissionRenew“ class="tacscm.norm.actions.ZeroCounter"> <Element ref="nextDay" event-type="clock_tick"/> </Action> <Action id="orderID"> <Element ref="rfqTransition" event-type="transition_activation"/> </Action> </Actions>

</Permission>

<Permission id="AssemblerPermissionRFQ"> <Constraints>

<Constraint id="checkCounter“ class="tacscm.norm.constraints.CounterLimit2005"/> </Constraints><Actions>

<Action id="orderID“ class="tacscm.norm.actions.RFQCounter2005">... </Action>

</Actions></Permission>

Sem referência para classes

Sem referência para classes

Page 24: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

ImplementaçãoOperadores de Refinamento

• abstract define quando um elemento de leis não está completamente implementado (hooks) ou precisa ser melhor detalhado para ser utilizado.

• completes preenche as lacunas de “hooks”

<Permission id="AssemblerPermissionRFQ“ type=“abstract”>

<Owner>Assembler</Owner>

<Activations>

<Element ref="negotiation" event-type="scene_creation"/>

</Activations>

<Deactivations>

<Element ref="orderTransition" event-type="transition_activation"/>

</Deactivations>

<Constraints>

<Constraint id="checkCounter"/> </Constraints>

<Actions>

<Action id="permissionRenew" class="tacscm.norm.actions.ZeroCounter">

<Element ref="nextDay" event-type="clock_tick"/>

</Action>

<Action id="orderID">

<Element ref="rfqTransition"

event-type="transition_activation"/>

</Action>

</Actions>

</Permission>

<Permission id=“APRFQ2004” completes="AssemblerPermissionRFQ">

<Constraint id="checkCounter" class="tacscm.norm.constraints.CounterLimit"/>

<Action id="orderID“class="tacscm.norm.actions.RFQCounter“/>

</Permission>

<Permission id=“APRFQ2004” completes="AssemblerPermissionRFQ"><Constraint id="checkCounter" class="tacscm.norm.constraints.CounterLimit2005"/><Action id="orderID“ class="tacscm.norm.actions.RFQCounter2005“/>

</Permission>

Page 25: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

ImplementaçãoOperadores de Refinamento

<Obligation id="ObligationToPay“ abstract=“true”> <Owner>Assembler</Owner> <Activations> <Element ref="orderTransition" event-type="transition_activation"/> </Activations> <Deactivations> <Element ref="payingTransition" event-type="transition_activation"/> </Deactivations> </Obligation>

<Obligation id="ObligationToPay2004“ extends="ObligationToPay">

<Actions> <Action id="supplierPayment“ class="tacscm.norm.actions.SupplierPayment100"> <Element ref="deliveryTransition"

event-type="transition_activation"/> </Action> </Actions></Obligation>

<Obligation id="ObligationToPay2005“ extends="ObligationToPay">

<Actions> <Action id="supplierDownPayment“ class="law.tacscm.norm.actions.SupplierPayment10"> <Element ref="orderTransition"

event-type="transition_activation"/> </Action> <Action id="supplierPayment" class="law.tacscm.norm.actions.SupplierPayment90"> <Element ref="deliveryTransition"

event-type="transition_activation"/> </Action> </Actions></Obligation>

extends reutiliza a descrição de elementos de leis e inclui modificações

Page 26: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Documentação de G-Frameworks

FrameworkPontos de Extensão

Casos de Leis

Possui Baseado em

Como instanciar

1. Crie um novo elemento Action extendendo a obrigação ObligationToPay para incluir a forma de pagamento prevista para esta edição

2. Crie elementos Action e Constraint extendendo a permissão AssemblerPermissionRFQ para incluir a forma de cálculo do número de mensagens que um montador pode enviar para seus fornecedores

3. Defina a classe que implementa a restrição que valida os atributos de uma mensagem RFQ, completando a transição rfqTransition

Versão 1.1

Pontos de extensão

1. Restrição: checkDueDate

2. Permissão : AssemblerPermissionRFQ

3. Obrigação : ObligationToPay

Design

São definidos fluxos padrão para a negociação entre fornecedores e montadores e o processo de pagamento destas compras entre o banco e os montadores.

O núcleo do framework é composto de uma cena para a negociação, uma cena para pagamento, a definição dos passos de interação (transições), estados para controle da conversação e de mensagens trocadas pelos agentes, e a permissão sobre o encadeamento e correlação entre duas mensagens da conversação (RFQ e OFFER).

Os pontos de extensão do framework incluem a permissão associada a montadores para submeter requisições durante o período de um dia (número de requisições permitidas e a forma de sua contagem), as restrições para verificar a validade das datas, e o método de pagamento implementado por ações dentro da obrigação.

Propósito Regular as interações entre fornecedores, montadores e banco em uma cadeia de suprimentos idealizada na competição TAC SCM. O propósito desta solução é realizar as edições da competição a partir das leis de interação previstas nesta solução.

Nome G-Framework de Cadeias de Suprimento (TAC SCM)

Como instanciar

1. Crie um novo elemento Action extendendo a obrigação ObligationToPay para incluir a forma de pagamento prevista para esta edição

2. Crie elementos Action e Constraint extendendo a permissão AssemblerPermissionRFQ para incluir a forma de cálculo do número de mensagens que um montador pode enviar para seus fornecedores

3. Defina a classe que implementa a restrição que valida os atributos de uma mensagem RFQ, completando a transição rfqTransition

Versão 1.1

Pontos de extensão

1. Restrição: checkDueDate

2. Permissão : AssemblerPermissionRFQ

3. Obrigação : ObligationToPay

Design

São definidos fluxos padrão para a negociação entre fornecedores e montadores e o processo de pagamento destas compras entre o banco e os montadores.

O núcleo do framework é composto de uma cena para a negociação, uma cena para pagamento, a definição dos passos de interação (transições), estados para controle da conversação e de mensagens trocadas pelos agentes, e a permissão sobre o encadeamento e correlação entre duas mensagens da conversação (RFQ e OFFER).

Os pontos de extensão do framework incluem a permissão associada a montadores para submeter requisições durante o período de um dia (número de requisições permitidas e a forma de sua contagem), as restrições para verificar a validade das datas, e o método de pagamento implementado por ações dentro da obrigação.

Propósito Regular as interações entre fornecedores, montadores e banco em uma cadeia de suprimentos idealizada na competição TAC SCM. O propósito desta solução é realizar as edições da competição a partir das leis de interação previstas nesta solução.

Nome G-Framework de Cadeias de Suprimento (TAC SCM)

Restrições

Uma classe para a restrição checkDueDate deve ser definida

Mudanças

1. Completar a transição transitionRFQ com a classe que implementa a restrição de validação de atributos de mensagem

Dependência de Eventos

message_arrival : rfq

Dependência de Elementos

Transição : rfqTransition

Ameaça

Agente montador enviar uma mensagem fora da data permitida para pedido de cotações

Suporte Oferecido

Prever na transição que é ativada a partir de uma mensagem RFQ, a existência de uma restrição, não especificada, que verifique a validade do atributo data da mensagem enviada.

Nome checkDueDate

Restrições

Uma classe para a restrição checkDueDate deve ser definida

Mudanças

1. Completar a transição transitionRFQ com a classe que implementa a restrição de validação de atributos de mensagem

Dependência de Eventos

message_arrival : rfq

Dependência de Elementos

Transição : rfqTransition

Ameaça

Agente montador enviar uma mensagem fora da data permitida para pedido de cotações

Suporte Oferecido

Prever na transição que é ativada a partir de uma mensagem RFQ, a existência de uma restrição, não especificada, que verifique a validade do atributo data da mensagem enviada.

Nome checkDueDate

Page 27: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Estudo de Caso SELIC

alterar custódia

liquidar

inicial final

negociar

SELIC

Page 28: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Cenário de Interação / SELIC

Page 29: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Requisitos

Caso de Uso

Negociar Títulos Públicos

Debitar Compra de Títulos Públicos

Creditar Venda de Títulos Públicos

Informar Banco Central de Negociação com Clientes do mesmo Conglomerado

Ameaça

Surgir uma nova modalidade de negociação de títulos públicos

Instituição Financeira não pagar compra de Títulos Públicos

Instituição Financeira não solicitar crédito de venda de Títulos Públicos

Instituições Financeiras definirem novas modalidades de negociação compromissada

Instituição Financeira não Solicitar Alteração de Custódia de Títulos Públicos

Instituição Financeira omitir informações do BACEN

Page 30: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

PLN – Exemplo de técnica para apoio a identificação de pontos de flexibilização

Preparar para processamento

Contar símbolosdocumento preparado

Calcular similaridade

simbolosquantificadosdocumento

Escolher Candidatos a Pontos de Extensão

tabela de similaridade

Pontos de Extensão

stop list & critérios de relevância

stemmer

n

i i

n

i i

n

i ii

yx

yxyx

1

2

1

2

1),cos(

n

i i

n

i i

n

i ii

yx

yxyxDice

1

2

1

2

12

),(

n

i

n

i iii

n

i i

n

i ii

yxyx

yxyxJaccard

1 1

2

1

2

1),(

req1 req2 req3 req4

req1 100% 93% 25% 30%

req2 100% 30% 32%

req3 100% 88%

req4 100%

Page 31: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Casos de Leis / SELIC

Caso de Leis Gerar padrão de negociação entre Instituições Financeiras

Caso de Uso: Negociar Título Público

Ameaça: Surgir uma nova modalidade de negociação de títulos públicos

Contexto: A partir de novas regulamentações, surgem

novas formas de negociação

Hipótese: Existe um fluxo padrão de negociação onde é possível

enquadrar as modalidades previstas no SELIC.

Argumento:

Ao observar as negociações previstas no SELIC é possível identificar um fluxo comum de conversação

e destacar as diferenças em participantes, mensagens, validações e ações necessárias em suas

customizações.

Evidência: Existem duas modalidades de negociação onde a variação é pequena.

Pelos cálculos feitos com a técnica de processamento em linguagem natural resultaram em similaridade de 85%.

Page 32: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Análise e ProjetoPadrões de Interação

IF 1. IF Requisita serviço

3. Retorno de mensagem com erros marcados

2. Mensagem R1 informa realização da requisição

BACEN

<Protocol id="requisicaoServico" abstract="true"> <Messages> <Message id="requisitar" abstract="true"/> <Message id="r1" abstract="true"/> <Message id="informarErro" abstract="true"/></Messages> <States> <State id="s1" type="initial"/> <State id="s2" type="execution"/> <State id="s3" type="failure"/> <State id="s4" type="success"/></States> <Transitions> <Transition id="start" from="s1" to="s2" ref="requisitar" event-type="message_arrival"/> <Transition id="st1" from="s2" to="s3" ref="informarErro" event-type="message_arrival"/> <Transition id="st2" from="s2" to="s4" ref="r1" event-type="message_arrival"/></Transitions></Protocol>

Page 33: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

G-Framework SELICNome G-Framework de Liquidação e Custódia de Títulos Públicos (SELIC) Versão 1.2

Propósito

Regular as interações entre Instituições Financeiras em torno da Liquidação e Custódia de Títulos Públicos negociados no mercado primário e secundário. O propósito desta solução é implementar um grande número de operações referentes a este domínio, objetivando facilitar o projeto, a manutenção e a inclusão de novas regras de interação.

Design

São definidos fluxos padrão para a negociação, liquidação (crédito e débito), alteração de custódia,operação compromissada e notificação de operações com clientes do conglomerado financeiro. Estas operações giram em torno de títulos públicos negociados entre as instituições financeiras. Em cada fluxo padrão é preciso gerenciar as mensagens e ações referentes a estas operações. Para cada operação espera-se que regras de validade sejam definidas segundo critérios definidos pelo Banco Central e pelo Tesouro Nacional.

O framework é organizado em contextos de variação estruturados em cenas e listados no campo Pontos de Extensão. Para cada contexto é possível separar o núcleo de sua implementação composto pela cena, máquina de estados básica (estados e transições), a política de tratamento de erros e outros detalhes próprios de cada contexto. Além disto, grande parte dos componentes referentes a comportamentos estáveis do agente SELIC, foram implementados como ações XMLaw e são distribuídos como núcleo da aplicação.

Os pontos de extensão do framework incluem mensagens presentes em algumas operações, normas, relógios, além dos fluxos de notificação de operação solicitadas por instituições financeiras. Recomenda-se a leitura detalhada de cada documentação de contextos de interação em anexo para entender os detalhes e possibilidades de customização em cada contexto.

Pontos de Extensão

1. Cena : CenaNegociacao

2. Cena : CenaCompraVendaCompromissada

3. Cena : CenaRecompraRevendaCompromissada

4. Cena : CenaAlteracaoCustodia

5. Cena : CenaCredito

6. Cena : CenaDebito

7. Cena : CenaNotificacaoConglomerado

Como instanciar

1. Crie uma nova cena que complete a CenaNegociacao

2. Crie uma nova cena que complete a CenaCompraVendaCompromissada

3. Crie uma nova cena que complete a CenaRecompraRevendaCompromissada

4. Crie uma nova cena que complete a CenaAlteracaoCustodia

5. Crie uma nova cena que complete a CenaCredito

6. Crie uma nova cena que complete a CenaDebito

7. Crie uma nova cena que complete a CenaNotificacaoConglomerado

Page 34: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Nome Negociação de Títulos Públicos

Ameaça Surgir uma nova modalidade de negociação de títulos públicos

Suporte Oferecido

Prever que o fluxo de mensagens de negociação possa ser customizada para incluir modalidades diferentes de negociação incluindo leilões já existentes ou novos que possam ser criadas pelo BACEN ou pelo Tesouro Nacional. O conjunto de variações existente inclui o mercado primário com oferta pública e o mercado secundário com leilão informal. As Instituições financeiras devem assumir compromissos de débito e alteração de custódia após uma negociação.

Dependência de Elementos

Obrigação : ObrigacaoDebito

Obrigação : ObrigacaoAlterarCustodia

Mudanças

1. Estender a cena CenaNegociacao

1. Definir os participantes que poderão entrar na CenaNegociacao.

2. Estender o protocolo negociacao

1. Criar as mensagens enviadas pelos participantes do leilão.

2. Definir transições que enquadrem as mensagens criadas no protocolo de interação.

3. Criar restrições para validar cada mensagem recebida, de acordo com suas regras de negócio.

4. Associar esta restrição a transição da mensagem respectiva

3. Completar a ação CHAMADA com um componente Java correspondente a implementação do envio de mensagens a participantes interessados no leilão. Esta mensagem notifica o início da negociação.

4. Completar a ação ENCERRAR com um componente Java correspondente a implementação do envio de mensagens a participantes do leilão. Esta mensagem notifica o fim da negociação.

5. Completar a ação ERR indicando os elementos de ativação desta ação.

6. Completar o relógio timeoutNegociacao com o tempo limite de negociação.

7. Estender a obrigação ObrigacaoAlterarCustodia definindo os participantes que receberão esta norma

Restrições Não existem restrições quanto ao número de ações criadas

Mensagens dos agentes, transições e restrições devem ser definidas

Duas ações (CHAMADA, ENCERRAR) devem ser definidas como componentes Java

A ação ERR precisa ter os seus elementos de ativação definidos. Espera-se que todas as restrições de mensagens sejam associadas a esta ação.

Uma obrigação nova deve ser criada para definir os participantes da ObrigacaoAlterarCustodia

Page 35: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Cena de Negociação do SELIC

anuncioFechamento(ResultadoSecundario)timeout

(timeoutSecundario)

recebendoVenda(VENDA)

recebendoConsulta(CONSULTA)

recebendoCompra(COMPRA)anuncio

(CHAMADANEGOCIACAO)

aguardandoaberto

concluidofechando

Leilao

timeout(timeoutPrimario)

anuncioFechamento(ResultadoPrimario)

recebendoProposta(PROPOSTA)

configuracao(OFERTA)

aguardando

concluido

anuncio(CHAMADAPROPOSTAS)

fechandoLeilao

aberto

timeout

anuncioFechamento

aguardando concluidoanuncio

fechandoLeilaoaberto

Page 36: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

CenaNegociacao é definida como abstrata…

timeout

anuncioFechamento

aguardando concluidoanuncio

fechandoLeilaoaberto

Page 37: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

CenaNegociacao é definida como abstrata…

timeout

anuncioFechamento

aguardando concluidoanuncio

fechandoLeilaoaberto

Page 38: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

MercadoPrimario estende CenaNegociacao…

timeout(timeoutPrimario)

anuncioFechamento(ResultadoPrimario)

recebendoProposta(PROPOSTA)

configuracao(OFERTA)

aguardando

concluido

anuncio(CHAMADAPROPOSTAS)

fechandoLeilao

aberto

Page 39: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

MercadoPrimario estende CenaNegociacao…

timeout(timeoutPrimario)

anuncioFechamento(ResultadoPrimario)

recebendoProposta(PROPOSTA)

configuracao(OFERTA)

aguardando

concluido

anuncio(CHAMADAPROPOSTAS)

fechandoLeilao

aberto

Page 40: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

MercadoSecundario estende CenaNegociacao…

anuncioFechamento(ResultadoSecundario)timeout

(timeoutSecundario)

recebendoVenda(VENDA)

recebendoConsulta(CONSULTA)

recebendoCompra(COMPRA)anuncio

(CHAMADANEGOCIACAO)

aguardandoaberto

concluidofechando

Leilao

Page 41: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

MercadoSecundario estende CenaNegociacao…

anuncioFechamento(ResultadoSecundario)timeout

(timeoutSecundario)

recebendoVenda(VENDA)

recebendoConsulta(CONSULTA)

recebendoCompra(COMPRA)anuncio

(CHAMADANEGOCIACAO)

aguardandoaberto

concluidofechando

Leilao

Page 42: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Conclusão

• Nossa maior contribuição é para a engenharia de como é possível se projetar, produzir e reutilizar leis de interação.

• G-Frameworks melhoram a modularidade de um design através do encapsulamento de detalhes de implementação.

• G-Frameworks incentivam reutilização uma vez que definem leis genéricas que podem ser re-aplicadas para criar novas leis.

• G-Frameworks aprimoram extensibilidade através da definição de pontos de extensão que permitem que uma aplicação estenda suas leis estáveis.

Page 43: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Contribuições

• Técnicas de Governança foram aprimoradas ao longo deste trabalho para o desenvolvimento de Sistemas MultiAgente Abertos confiáveis. Vale citar como resultados deste trabalho:

– (i) os elementos do modelo conceitual de leis de interação;

– (ii) a linguagem de especificação de leis de interação XMLaw;

– (iii) o mecanismo de observação e monitoramento de leis de interação aprimorado para incluir o suporte a flexibilidade de leis de interação; e

– (iv) uma técnica de especificação de requisitos de leis para sistemas multiagentes abertos chamada de casos de leis.

Page 44: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Contribuições

• Técnicas de reutilização de leis de interação

– (i) um procedimento que utiliza técnicas de processamento de linguagem natural para identificar candidatos a compartilhar parte de uma mesma solução (requisitos).

– (ii) Pontos de extensão (projeto)

– (iii) Operadores de refinamento em XMLaw (implementação)

• Identificação de elementos abstratos;

• Completar detalhes de elementos definidos como abstratos; e

• Promover especialização de elementos baseados em herança de orientação a objeto.

Page 45: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Contribuições

• G-Frameworks

– Reutilização de design e de código semi-acabados e prontos para usar, referente a leis de interação para a produção de uma família de mecanismos de governança.

– Técnicas em g-frameworks.

• Documentação da solução em guias de referência

• Metodologia de desenvolvimento de mecanismos de governança.

– Experimentação com a técnica em dois estudos de caso TAC SCM e SELIC.

Page 46: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Publicações

• Carvalho et al, 2004– Workshop on Agent-Oriented Methodologies

(OOPSLA)

• Carvalho et al, 2005a– Symposium on Normative Multiagent Systems

(NorMAS2005)

• Carvalho et al, 2005b– SEAS – SBES Workshop 2005

• Carvalho et al, 2006a– Workshop on Agent-Oriented Software

Engineering (AOSE 2006) / AAMAS 2006

• Carvalho et al, 2006b– AOIS 2006 / AAMAS 2006

• Carvalho 2006c– Doctoral Mentoring – AAMAS 2006.

• Carvalho et al, 2006d– SELMAS’06 - ICSE 2006

• Carvalho et al, 2006e– SEAS 2006 – SBES 2006

• Carvalho et al, 2007a– LNCS. Agent-Oriented Software Engineering

• Carvalho et al, 2007b – Journal of Brazilian Computer Society (JBCS) /

Software Engineering for Multi-Agent Systems

• Gatti et al. 2006a– Workshop Agents and Multiagent Systems, from

Theory to Application (AMTA'06)

• Gatti et al., 2006b– SEAS 2006 / SBES 2006

• Gatti et al., 2007– LNCS / Software Engineering for Large-Scale

Multi-Agent Systems

• Paes et al., 2004– ASSE 2004

• Paes et al., 2005– Agents, Norms and Institutions for Regulated

Multi-agent Systems (ANIREM), AAMAS’2005

• Paes et al., 2007– LNCS / Environments for Multi-Agent Systems,

Lecture Notes in Artificial Intelligence

• Prestes et al., 2004– Building Software for Pervasive Computing /

OOPSLA 2004

• Rodrigues et al., 2005– SEAS – SBES Workshop 2005

A abordagem apresentada nesta tese teve como etapas a apresentação e a publicação de diversos artigos em workshops (nacionais e internacionais), congressos e em periódicos:

Page 47: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

Gustavo Robichez de Carvalho - [email protected]

Trabalhos Futuros

• A evolução da abordagem de g-frameworks inclui:

– (i) Criação de ferramentas de apoio ao desenvolvimento de mecanismos de governança baseados em leis;

– (ii) Aperfeiçoamento da usabilidade da linguagem XMLaw a partir de uma revisão na sintaxe ou mesmo na proposição de uma notação gráfica para o desenvolvimento de sistemas abertos baseados em leis;

– (iii) Proposição de uma ferramenta para catalogar artefatos de leis para reutilização, incluindo suporte ao registro de g-frameworks;

– (iv) Amadurecimento quanto a formalização dos elementos de XMLaw, e de modelos que possam verificar e impor limites à extensão de g-frameworks;e

– (v) Propor scripts de instanciação de g-frameworks a partir dos guias de referências gerados.

Page 48: G-Frameworks Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos Defesa de Tese de Doutorado de Gustavo Robichez de

G-Frameworks

Uma Abordagem para a Reutilização de Leis de Interação em Sistemas Multiagentes Abertos

Defesa de Tese de Doutorado de Gustavo Robichez de Carvalho

Orientador Carlos J. P. de Lucena