Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer Prof. Fred Freitas – fred.freitas@tci.ufal.br Mestrado em Informática Universidade.

Slides:



Advertisements
Apresentações semelhantes
Comunicação entre processos distribuídos
Advertisements

Modelos de Comunicação em Sistemas Distribuídos
Comunicação Distribuída
Web Services Erika Hmeljevski Estefania Borm Leonardo Malagoli
Comunicação entre Agentes
Programação Orientada a Agentes Franklin Souza Ramalho
Agentes Móveis Marcelo Bezerra dAmorim Sumário n Motivação n Introdução ao Paradigma de Agentes Móveis n Vantagens n Conceitos de Agentes Móveis n Tecnologias.
Conceitos Básicos de Informática REDES DE COMUNICAÇÃO: INTERNET
Área de Desenvolvimento de Sistemas
JADE Java Agent DEvelopment Framework
DAS Sistemas Distribuídos para Automação Industrial
GERENCIAMENTO DE REDES
Prof. Marco Aurelio N. Esteves
Mobilidade Cláudia Ribeiro.
SOA - Arquitetura Orientada a Serviços
Camada de Transporte: Portas, Sockets, Aplicações em Rede
Tópicos de Sistemas de Informação A
Funcionalidades e Protocolos da Camada de Aplicação
Middleware e Sistemas Distribuídos
Aplicativos Web Com Orientação a Objetos
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Tecnologia de Informática
Redes de Computadores Camada de Aplicação.
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Tópicos de Sistemas de Informação A
Redes Aula 7 Professor: Marcelo Maia.
Web Services Uninorte Semana de Tecnologia da Informação
REDES DE COMPUTADORES Prof. Deivson
Aula 2 Arquitetura & Protocolos
CORBA e Desenvolvimento Baseado em Componentes
Chamada Remota de Procedimentos
Funcionalidade e Protocolos da Camada de Aplicação
Plano de Aula Introdução Conceitos Básicos KQML FIPA ACL
FIPA THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Tecgraf PUC-Rio maio de 2011 Principais conceitos de CORBA.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Da Introdução à Prática
RMI - JAVA.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
IIS Web Server.
Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF.
Comunicação.
Java Kickstart, day 2 Semelhanças com linguagem C.
REDES DE COMPUTADORES CONCEITOS E TÓPICOS RELACIONADOS A REDES DE COMPUTADORES ________________________________________________ Redes – Prof. Roni Márcio.
7 © 2005 by Pearson Education SIP  Session Initiation Protocol  Desenvolvido pelo IETF Visão de longo prazo do SIP  Todas chamadas telefônicas.
Padrões de Interação com o Usuário
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Comunicação em Sistemas Multiagentes
Programação Concorrente em Erlang Grupo: Alexandre Siebra Byron Bezerra Igor Sampaio Mozart Araújo Filho Sérgio Queiroz.
Ferramentas de Manipulação de Ontologias (Protégé)
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Sistemas Multi-Agentes Comunicação e Cooperação. Motivação O uso de agentes individuais pode não ser adequado para todas as situações de problemas que.
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
1 Programação Distribuída em Java Aula Na aula de hoje veremos: Introdução Conceito de Rede Protocolos Modelo ISO/OSI Modelo TCP/IP Modelo Cliente/Servidor.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Protocolos de Comunicação e Passagem de Mensagens
Arquitetura em Camadas
Segurança Perimetral - Firewall
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Servidor WEB IGOR ALVES. O protocolo HTTP 1990 surgimento da aplicação www Grande quantidade de informação que pode ser acessada por demanda Buscadores.
Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer Prof. Fred Freitas – Mestrado em Informática Universidade.
Transcrição da apresentação:

Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer Prof. Fred Freitas – fred.freitas@tci.ufal.br Mestrado em Informática Universidade Federal de Alagoas

Roteiro Comunicação Cliente-Servidor Requisitos de comunicação de agentes cognitivos Comunicação em Nível de Conhecimento Vantagens do Modelo peer-to-peer A Linguagem de comunicação KQML A Linguagem Arcol da FIPA Conseqüências para Integração Objetos-Regras O pacote JATLite - Como usá-lo Exemplos

Motivações de Multiagentes em SD Conjuntura: Grandes redes heterogêneas abertas (Internet) Problemas grandes, complexos e interdependentes Recuperação de informações Mineração de Dados Mediação Necessidade de concorrência Domínios distintos Comércio eletrônico Negociação Padrôes para diálogos Sistemas abertos pedem uma comunicação dinamicamente estabelecida e semanticamente contextualizada entre diferentes entidades de softwares

O Modelo de Comunicação Cliente-Servidor Os servidores provêem os serviços, os clientes os usam mestre-escravo Os serviços estão acessíveis via RPCs (Remote Procedure Calls) RPCs executam métodos de objetos remotos cujas assinaturas foram mapeadas para ORBs (Object Request Brokers) e estão acessíveis pela Internet Msg pedindo exec do método (parâmetros) Resposta Cliente Servidor ORB

Prós e Contras Vantagens: Desvantagens Rapidez Adequados a sistemas de tempo real e SMAs reativos Tranparência de execução Desvantagens Vocabulário: apenas os parãmetros dos métodos Faltam: Expressividade Intenção Contexto Iniciativa Dificultam a implementação de autonomia, e cooperação dinâmica

Comunicação em Nível de Conhecimento Baseada na Teoria dos Atos de Fala [Austin 62], que modela a comunicação humana Os atos de fala expressam as intenções dos agentes assertivos (informar), diretivos (pedir ou consultar), comissivos (prometer ou comprometer-se), proibitivos, declarativos (causar eventos para o próprio comunicador) e expressivos (emoções). Princípio Huhns-Singh para agentes [Huhns & Singh 97] Um agente deve mudar de comportamento quando outro agente entra no ambiente

Requisitos Confiável: Msgs explícitas e legível por pessoas Expressiva Mensagens complexas Contexto Intenções Compreensível: Mensagens escritas num formalismo lógico, entendido por ambos os agentes Tradução entre formalismos Semântica clara: Vocabulário comum (ontologia) entre os agentes Níveis: Ato de fala (intenção) Contexto (ontologia) Esquema de cooperação contract-net, etc. Conteúdo (numa lógica) Dados da mensagem Remetente, destino, etc

O Vocabulário Comum: Ontologias Conceitualização de uma área de conhecimento [Gruber 95] Conjuntos de conceitos, definições, relações, axiomas e restrições sobre a área Normalmente, uma ontologia é organizada em hierarquias de conceitos

Evolução de arquiteturas de comunicação Tabela 3. Evolução das arquiteturas de comunicação distribuídas (baseado em [Huhns & Singh 97b]).

Recursos de ACLs Serviço de registro de agentes Serviço de conexão de agentes Serviço de nomes e roteamento para agentes Transparência de localização Roteamento e enfileiramento de mensagensaté quando o agente destinatário está desconectado Parsers para mensagens, brokering (facilitação) and broadcasting Independente da linguagem de conteúdo das mensagens Suporte a vários protocolos: TCP/IP, SMTP, FTP, POP3 e HTTP, para aplicações e applets. Referências a mensagens anteriores (:in-reply-to)

KQML - Knowledge Query and Manipulation Language KQML é uma linguagem de comunicação que dá suporte a agentes na identificação, conexão e troca de informação com outros agentes. Mensagens KQML não enxergam o conteúdo das mensagens que elas transportam Categorias dos atos de fala : Conversação - trocas de informação e conhecimento entre dois agentes (ask-if,ask-all;tell,advertise, insert, subscribe, recruiting) Intervenção - intervenção da conversação (error,sorry); Facilitação e Rede - permitem que agentes achem outros agentes que podem processar suas consultas (register, unregister, transport-address,forward,broadcast,broker-one,recommend-one)

Comunicação via KQML Exemplo : O facilitador recebe a seguinte mensagem : (broker-one :sender C :receiver facilitador :reply-with id3 :language KQML :ontology kqml-ontology :content (ask-all :sender C :reply-with id4 :language Prolog :ontology Campeonato Brasileiro :content (Campeao(Flamengo,Y))))

Comunicação via KQML Exemplo (cont.) :E então, o agente facilitador envia para o agente C : (forward :from A :sender facilitador :receiver C :in-reply-to id3 :reply-with id6 :language KQML :ontology kqml-ontology :content (tell :receiver C :language Prolog :ontology C. Brasileiro :content (Campeao(Flamengo, 1980), ... ,Campeao(Flamengo,1992))))

Exemplo de Comunicação em KQML (ask-all :sender CFP-Agent :receiver PPR-Agent :reply-with id1 :language JessTab :ontology Science :content (object (is-a Link) (URL ?u) (anchor ?a&:(occurs [call-for-papers] ?a)))) Ancora e´ o texto

Ex. de Comunicação em KQML (cont.) (tell :sender PPR-Agent :receiver CFP-Agent :in-reply-to id1 :reply-with id2 :language JessTab :ontology Science :content (object (is-a Link) (URL “http://lcn2002.cs.bonn.edu”) (anchor “ IEEE Conference on Local Computer Networks (LCN 2002)”)))

Informando conceitos de um caso... (inform :sender cfp :receiver ppr :language JessTab :ontology Science :content ([ppr_00008] of Case (Description "cfp suggestions") (Concepts [Call-for-participation] [annual] [conference] [Call-for-papers] [workshop]))))

Pedindo links com os conceitos... (ask-all :sender cfp :receiver ppr :language JessTab :ontology Science :content (object (is-a Anchor) (Link-Text ?l)) (Result (Page-Status CLASSIFIED) (Class "Conference-Paper")) (object (is-a Web-Page) (Contents ?co)) (test (and (if-occur ?l (begin-until "abstract" ?co)) (if-occur (slot-get [ppr_00008] Concepts) ?l)))) Explicar e propaganda

Exemplo de Comunicação em KQML (ask-all :sender CFP-Agent :receiver PPR-Agent :reply-with id1 :language JessTab :ontology Science :content (object (is-a Link) (URL ?u) (anchor ?a&:(occurs [call-for-papers] ?a)))) Ancora e´ o texto

Ex. de Comunicação em KQML (cont.) (tell :sender PPR-Agent :receiver CFP-Agent :in-reply-to id1 :reply-with id2 :language JessTab :ontology Science :content (object (is-a Link) (URL “http://lcn2002.cs.bonn.edu”) (anchor “ IEEE Conference on Local Computer Networks (LCN 2002)”)))

Hierarquia de Roteadores / Facilitadores

A Linguagem ARCOL Feita pela FIPA (Foundation for Intelligent Physical Agents) a partir de KQML Visa o consenso em e-commerce inteligente: Nomes globais para agentes Ambientes seguros para negociação entre agentes Agentes móveis Mediação Semântica mais clara das intenções Composição entre elas Inclusão de esquema de cooperação Definição de ambientes e mediadores

Falsos Cognatos entre IAD e SD Heterogeneidade Comunicação Compartilhamento Escalabilidade Transparência Portabilidade Peer-to-peer

Conseqüências para EOOPSs Embedded Object Oriented Production Systems [Pachet 95]:Motores de inferência integráveis a objetos Comunicação p2p deve ser explícita (não enviar objetos!) Separar bem o que é declarativo e procedural Conhecimento misturado com código (objetos e métodos) não pode ser traduzido ou reusado Inicializar objetos no código procedural, por métodos dispostos pelo motor de inferência Evitar ao máximo executar métodos dentro de BCs, mas se for necessário, manter uma BC pequena, exclusiva para isso Na BC, privilegiar funções do motor às da linguagem hospedeira do motor, apesar de serem menos eficientes

Integrando um Objeto a um Motor public class PaginaWWW { public PaginaWWW( String wurl ) { ...} public String protocolo() { return protocolo; } public String hostName() { return hostName; } public int tamanho() { return tamanho; } public void processaInfo() { }

Inicializando objetos no código PaginaWWW p= new PaginaWWW(Url); // Processing of the page by the reasoning engine // sending data to Jess rete.addDefglobal(new Defglobal("?*URL*",new Value(Url,RU.STRING))); rete.addDefglobal(new Defglobal("?*page*",new Value((Object)p))); rete.assertString("(access ?*URL*)"); rete.reset(); rete.run(); ValueVector mainFact = new ValueVector(); mainFact = (rete.fetch("STATUS")).listValue(rete.getGlobalContext()); urlRetreivd = (mainFact.get(0)).toString(); fact = ((mainFact.get(1)).toString()).trim(); rule = (mainFact.get(2)).intValue(rete.getGlobalContext());

BC separada (defrule i_3_fill-ini ?f1 <- (access ?y) => (assert (web-page (URL ?y) (protocol (call ?*page* protocolo)) (host (call ?*page* hostName)) ... (length (call ?*page* tamanho)))) (retract ?f1) (assert (accessed ?y))) (defrule i_5_filling (valid ?y) (assert (proc ?y (call ?*page* processaInfo))))

O Pacote JATLite para KQML Java Agent Template Lite – Classes para a construção de agentes, facilitadores e roteadores java.stanford.edu Parser KQML, mas aceita outra linguagem Protocolos TCP/IP, HTTP, FTP ou outros Agentes com resposta direta ou fila de mensagens

Camadas do JATLite Abstrata - classes abstratas necessárias, com TCP/IP, mas provê herança de que podem implementar outros protocolos. Básica - funcionalidades de comunicação KQML - armezanamento e parsing de mensagens KQML e serviços de conexão Roteadora - serviço de registro de nomes, roteamento e enfileiramento de mensagens. Protocolo - suporte aos protocolos SMTP, FTP, POP3, HTTP, tanto para aplicativos quanto pra applets. Em Windows, applets exigem que a máquina onde está o roteador tenha um servidor de páginas

Como (Re)Usar o JATLite Estudar mensagens KQML e seus parâmetros Instalar um roteador na rede e deixá-lo rodando Testar exemplos prontos em outras máquinas Implementar agentes estendendo a classe abstrata RouterLayer.RouterClientAction Implementar o método Act(Object o), que trata cada mensagem da fila do agente e outros métodos e objetos Lembrar que Java não possui herança múltipla! Opções: Colocar a parte de comunicação no nível mais alto Criar um construtor que tenha como parâmetros os objetos que ele precisará na execução do Act, permitindo assim um objeto comunicador e herança de outra classe no nível mais alto

import Abstract.*; import KQMLLayer.*; import RouterLayer.*; import RouterLayer.AgentClient.*; public class MASTERWebAgent extends RouterClientAction { ... public boolean Act(Object o) { try { KQMLmessage kqml = mail.getKQMLmessage(); String perf = kqml.getValue("performative"); String pf = "ask-oneask-alltellerror"; switch(pf.indexOf(perf)){ case 0: // send delete message to the Router addToDeleteBuffer(0); return true; case -1: // error message sendErrorMessage(kqml); return false;} catch(KQMLLayer.ParseException re){ return false;}

Exemplo de Comunicação C:\Agent\Code> jview Agent.Code.MASTERWebAgent Initialization Success Jess> cfp_r_56_big-title: =1=1=1=1=1=1=1=2+2+t TRUE ... Jess> Server created cfpServer Started Start to register Register accepted Before Start to connect as cfp (reconnect-agent :host iching.lcmi.ufsc.br :port 25 :sender cfp :receiver Router :password jhc :email fred1@lcmi.ufsc.br) Connection established Router started

Exemplo de Comunicação (cont.) Sending message Sending success Client Router running Msg received:N 972087857260 (registered-agent :sender Router :receiver cfp :content ((CADStandAlone carbonell.lcmi.ufsc.br -1 disconnected) (RouterRegistrar carbonell 4445 disconnected) (Router carbonell 4444 disconnected) (CalcServer carbonell.lcmi.ufsc.br 5556 disconnected) (cfp iching.lcmi.ufsc.br 25 connected) (ccc null -1 disconnected) (CADApplet null -1 disconnected) (ddd null -1 disconnected))) Msg received:N 972936297630 (ask-all :content (web-page (URL ?y)) :reply-with t :language Jess :receiver cfp :sender org) (defrule r_1_org (web-page (URL ?y ) )=> (assert (to-send cfp org ?y 1))) r_1_org: =1=1+t Msg received:N 972936297630 (tell :force tentative :content (link http://www.com.br 4) URL:http://www.com.br