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