MLAW: um Middleware para Aplicacao de
Leis
Rodrigo Paes
Motivação
• Versão anterior apresentava dificuldades para a inclusão de
novas funcionalidades
– Falta da definição de um ciclo de vida
– Pouca homogeneização
• Feedback da Maira, LF e Guga, como requisitos para uma
nova versão
© LES/PUC-Rio
Arquitetura
API cliente
API cliente
API cliente
API cliente
API cliente
API cliente
Mediador
API cliente
API cliente
API cliente
© LES/PUC-Rio
M-Law:
Mediador
+
APICliente
Módulos
© LES/PUC-Rio
API Cliente
• Classe agente com métodos para envio e recebimento de
mensagens
• Métodos para comunicação direta com o mediador
– Entrar em uma organização
– Entrar em uma cena
– Perguntar estado de execução das interações
• Quais as normas estão ativas
• Qual o estado atual do protocolo
• Quantos agentes estão participando da interação
© LES/PUC-Rio
API Cliente
• Módulo de comunicação como HOTSPOT
– Implementação atual: JADE
• Reutilização de um middleware existente
– Outras possibilidades:
• Socket (puro)
• RMI
• …
© LES/PUC-Rio
Exemplo API Cliente
public class PingAgent extends Agent
{
private AgentIdentification pongId;
public PingAgent(String name, AgentIdentification pongId)
{
super(name);
this.pongId = pongId;
}
public void run()
{
...
Message ping = new Message(Message.INFORM);
ping.setReceiver(pongId,"pong");
send(ping,"ping");
Message answer = waitForMessage();
...
}
}
© LES/PUC-Rio
Mediador
• Módulo de eventos
© LES/PUC-Rio
Tipos de Eventos
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
message_arrival
transition_activation
deactivation_event
clock_tick
clock_activation
norm_activation
failure_state_reached
successful_state_reached
action_activation
norm_deactivation
sucessful_scene_completion
time_to_live_elapsed
failure_scene_completion
scene_creation
clock_deactivation
compliant_message
© LES/PUC-Rio
Mediador
• Módulo de componentes
• Define
– Ciclo de vida / Modelo de execução
– Parser
© LES/PUC-Rio
Interfaces principais
© LES/PUC-Rio
Mediador
• Exemplo de componente: Cena
© LES/PUC-Rio
Passos atuais
• Distribuição do mediador
API cliente
API cliente
Mediador
Mediador
Host
Host
• Útil para sistemas grandes e onde as leis não precisam de uma
visão global. Ou seja, não seria necessário atualização de estado
entre os mediadores
© LES/PUC-Rio
Passos atuais
• Integração com o modelo de componentes COMPOR
– Cooperação UFCG
interação
código agentes
XMLaw + MLaw
Compor
© LES/PUC-Rio
LEIS
Agentes que seguem as leis
Ferramenta para prototipação rápida
announcer customer seller bank
############################
#####ANNOUNCEMENT SCENE#####
############################
customer:
startScene $airportOrgId announcement
set announcementSceneId $last.sceneExecutionId
enterScene $airportOrgId $announcementSceneId customer
msg m1 request
set m1.hello hello
set m1.orgExecutionId $airportOrgId
set m1.sceneExecutionId $announcementSceneId
set m1.receiver announcer
send $m1
announcer:
receive 5 rm1
enterScene $airportOrgId $announcementSceneId announcer
msg m2 inform
set m2.services movies;date;food
set m2.orgExecutionId $airportOrgId
set m2.sceneExecutionId $announcementSceneId
set m2.receiver customer
send $m2
customer:
receive 5 rm2
assert $rm2.services movies;date;food
© LES/PUC-Rio
Como eu uso?
• Página: http://wiki.les.inf.pucrio.br/leski/bin/view/Main/Governance
– Download
– Artigos
– Integrantes
– Projetos de pesquisa
• Tenho uma idéia, quero ajudar:
– Rodrigo - [email protected]
© LES/PUC-Rio
Download

Rodrigo - (LES) da PUC-Rio