Ambientes Educacionais Distribuídos: A Web moderna na Educação
Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer
description
Transcript of Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer
![Page 1: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/1.jpg)
Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer
Prof. Fred Freitas – [email protected]
Mestrado em Informática Universidade Federal de Pernambuco
![Page 2: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/2.jpg)
Roteiro
Comunicação Cliente-ServidorRequisitos de comunicação de agentes cognitivosComunicação em Nível de ConhecimentoVantagens do Modelo peer-to-peerA Linguagem de comunicação KQMLA Linguagem Arcol da FIPAConseqüências para Integração Objetos-Regras O pacote JATLite- Como usá-loExemplos
![Page 3: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/3.jpg)
Motivações de Multiagentes em SDConjuntura: 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
![Page 4: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/4.jpg)
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
Cliente Servidor
ORB
Msg pedindoexec do método
(parâmetros)
Resposta
![Page 5: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/5.jpg)
Prós e Contras
Vantagens: – 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
![Page 6: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/6.jpg)
Comunicação em Nível de Conhecimento
Baseada na Teoria dos Atos de Fala [Austin 62], que modela a comunicação humanaOs 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
![Page 7: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/7.jpg)
RequisitosConfiável: Msgs explícitas e legível por pessoasExpressiva– 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
![Page 8: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/8.jpg)
O Vocabulário Comum: OntologiasConceitualização de uma área de conhecimento [Gruber 95]– Conjuntos de conceitos, definições, relações, axiomas e restrições
sobre a área
Id Modelo
Xy 777
Agente da Cia. Aérea
Ont. de Meios de Transporte
Trem Avião Barco
Transporte Carreira Caça
Avião
Meu agente
777[é-um 777]
Id Modelo
Xy 777
Agente da Cia. Aérea
Ont. de Meios de Transporte
Trem Avião Barco
Transporte Carreira Caça
Avião
Meu agente
777[é-um 777]
![Page 9: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/9.jpg)
Evolução de arquiteturas de comunicação
Arquitetura Entidade Entidade Comunicação Característica Cliente - Servidor Mestre Escravo RPC Transparência
de execução Manda Obedece
Distribuída Peer Peer Msgs assíncronas declarativas
Autonomia, conhecimento, legibilidade,
reuso e extensibilidade
Atribui tarefas Satisfaz pedidos Voltado só para si Autônomo
Declarativa (Baseada em
agentes)
Peer Peer Atos de Fala Autonomia, conhecimento, legibilidade,
reuso, extensibilidade e sociabilidade
Cria/invoca compromissos
Mantém compromissos
Voltado só para si Autônomo
![Page 10: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/10.jpg)
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 broadcastingIndependente da linguagem de conteúdo das mensagensSuporte a vários protocolos: TCP/IP, SMTP, FTP, POP3 e HTTP, para aplicações e applets.Referências a mensagens anteriores (:in-reply-to)
![Page 11: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/11.jpg)
KQML - Knowledge Query and Manipulation Language
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 transportamCategorias 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)
![Page 12: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/12.jpg)
Comunicação via KQMLComunicação via KQMLExemplo : 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))))
![Page 13: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/13.jpg)
Comunicação via KQMLComunicação via KQMLExemplo (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))))
![Page 14: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/14.jpg)
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))))
![Page 15: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/15.jpg)
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)”)))
![Page 16: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/16.jpg)
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]))))
![Page 17: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/17.jpg)
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))))
![Page 18: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/18.jpg)
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))))
![Page 19: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/19.jpg)
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)”)))
![Page 20: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/20.jpg)
Hierarquia de Roteadores / Facilitadores
![Page 21: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/21.jpg)
A Linguagem ARCOL
Feita pela FIPA (Foundation for Intelligent Physical Agents) a partir de KQMLVisa 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çõesComposição entre elasInclusão de esquema de cooperaçãoDefinição de ambientes e mediadores
![Page 22: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/22.jpg)
ExecuçãoInferência, reuso, negociação ou documentação para usuários
Finalidade
RPC unidirecional, paresProatividade, iniciativa e multiálogo
Direção
Parâmetros tipadosAtos de fala e ontologiasContexto
Information HidingConhecimento explícito (transparente)
Legibilidade
Descrição da ação dos métodos fornecidas pelo implementador
Conhecimento explícito (transparente)
Confiabilidade
Comunicação Pré-definidaComunicação DinâmicaFlexibilidade
ProceduralDeclarativoParadigma
Funcionamento (“como”)Teoria: conceitos, relações e restrições (“o que”)
Representação de Conhecimento
Mapeamentos para CORBA IDL
ou DCOM
Mapeamentos para OKBC ou tradução lógica entre
formalismos
Interoperabilidade entre Linguagens
Sintática e EstáticaSemântica e DinâmicaInterface
Cliente-servidor“Peer-to peer”Tópicos
ExecuçãoInferência, reuso, negociação ou documentação para usuários
Finalidade
RPC unidirecional, paresProatividade, iniciativa e multiálogo
Direção
Parâmetros tipadosAtos de fala e ontologiasContexto
Information HidingConhecimento explícito (transparente)
Legibilidade
Descrição da ação dos métodos fornecidas pelo implementador
Conhecimento explícito (transparente)
Confiabilidade
Comunicação Pré-definidaComunicação DinâmicaFlexibilidade
ProceduralDeclarativoParadigma
Funcionamento (“como”)Teoria: conceitos, relações e restrições (“o que”)
Representação de Conhecimento
Mapeamentos para CORBA IDL
ou DCOM
Mapeamentos para OKBC ou tradução lógica entre
formalismos
Interoperabilidade entre Linguagens
Sintática e EstáticaSemântica e DinâmicaInterface
Cliente-servidor“Peer-to peer”Tópicos
![Page 23: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/23.jpg)
Falsos Cognatos entre IAD e SD
HeterogeneidadeComunicaçãoCompartilhamentoEscalabilidadeTransparênciaPortabilidadePeer-to-peer
![Page 24: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/24.jpg)
Conseqüências para EOOPSs
Embedded Object Oriented Production Systems [Pachet 95]:Motores de inferência integráveis a objetosComunicaçã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
![Page 25: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/25.jpg)
Integrando um Objeto a um Motorpublic class PaginaWWW {
public PaginaWWW( String wurl ) {...}public String protocolo() {
return protocolo; }
public String hostName() { return hostName; }
public int tamanho() { return tamanho; }
public void processaInfo() {}
![Page 26: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/26.jpg)
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());
![Page 27: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/27.jpg)
(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))))
BC separada
![Page 28: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/28.jpg)
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 linguagemProtocolos TCP/IP, HTTP, FTP ou outrosAgentes com resposta direta ou fila de mensagens
![Page 29: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/29.jpg)
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ãoRoteadora - 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
![Page 30: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/30.jpg)
Como (Re)Usar o JATLite
Estudar mensagens KQML e seus parâmetrosInstalar um roteador na rede e deixá-lo rodandoTestar exemplos prontos em outras máquinasImplementar 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
![Page 31: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/31.jpg)
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;}
![Page 32: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/32.jpg)
Exemplo de Comunicação
C:\Agent\Code> jview Agent.Code.MASTERWebAgentInitialization SuccessJess> cfp_r_56_big-title: =1=1=1=1=1=1=1=2+2+tTRUE...Jess> Server createdcfpServer StartedStart to registerRegister acceptedBeforeStart to connect as cfp(reconnect-agent :host iching.lcmi.ufsc.br :port 25 :sender cfp :receiver Router :password jhc :email [email protected])Connection establishedRouter started
![Page 33: Comunicação entre Agentes em Ambientes Distribuídos: O Modelo peer-to-peer](https://reader035.fdocuments.net/reader035/viewer/2022062322/56814cbe550346895db9ca46/html5/thumbnails/33.jpg)
Exemplo de Comunicação (cont.)Sending messageSending successClient Router runningMsg 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+tMsg received:N 972936297630 (tell :force tentative :content (link http://www.com.br 4) :language Jess :receiver cfp :sender org)URL:http://www.com.br