Plataforma para Agentes



Documentos relacionados
Plataforma para Agentes

JADE : Java Agent DEvelopment Framework JADE

Sistemas Distribuídos

Invocação de Métodos Remotos

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

Programação com sockets (em Java)

Mecanismos de Comunicação. Sockets em java (

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Invocação de Métodos Remotos RMI (Remote Method Invocation)

IMPLEMENTAÇÃO DE UM AGENTE TAC SCM EM LINGUAGEM AGENTSPEAK(L)

SISTEMAS DISTRIBUÍDOS

Um pouco do Java. Prof. Eduardo

Middleware de Aplicações Paralelas/Distribuídas

UFG - Instituto de Informática


Cliente-servidor com Sockets TCP

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

UNIVERSIDADE. Sistemas Distribuídos

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Java Mail Server. Manual do Utilizador

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

A camada de rede do modelo OSI

SISTEMAS DISTRIBUIDOS

Redes - Internet. Sumário Aula 3,4 e 5 9º C } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

UNIVERSIDADE ESTADUAL DO OESTE DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS COLEGIADO DE INFORMÁTICA

Considerações no Projeto de Sistemas Cliente/Servidor

Java : Comunicação Cliente-Servidor.

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

MANUAL DO UTILIZADOR DE REDE

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Capítulo II Modelos de Programação Distribuída

Aula 30 - Sockets em Java

Interface Homem Máquina para Domótica baseado em tecnologias Web

Java. Marcio de Carvalho Victorino

INF1013 MODELAGEM DE SOFTWARE

Programação de Computadores - I. Profª Beatriz Profº Israel

Padrão Arquitetura em Camadas

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Redes de Computadores. Trabalho de Laboratório Nº7

Invocação Remota MC704

Rede de Computadores

Universidade Federal do Rio Grande do Norte

Um sistema SMS 1 simplificado

Modelo TCP / IP. História da família TCP/IP Modelo utilizado pela família TCP/IP Comparação com o modelo OSI

UFG - Instituto de Informática

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Programação Orientada a Objetos em Java

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Comunicação entre processos

Programa de Computador que funciona em Rede

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Sistemas Distribuídos

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

7.1 Modelo TCP / IP Departamento de Engenharia, Electrónica, Telecomunicações e Computadores Redes de Computadores

Desenvolvimento Cliente-Servidor 1

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Técnicas de Programação II

Java Spaces Exemplos

Redes de Computadores

Rede de Computadores (REC)

Capítulo 1 PROTOCOLOS FUNDAMENTAIS DA INTERNET

Redes de Computadores. Guia de Laboratório Configuração de Redes

Alan Menk Santos Redes de Computadores e Telecomunicações. Camada de Aplicação. Camada de Aplicação

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Vodafone ADSL Station Manual de Utilizador. Viva o momento

Redes de Computadores

Professor: Gládston Duarte

TeamWork Manual do Utilizador FortiClient

A Internet, ou apenas Net, é uma rede mundial de computadores ligados, entre si, através de linhas telefónicas comuns, linhas de comunicação

Aula prática. Objetivo IPCONFIG. Prof. Leandro Pykosz Informa a configuração atual de rede da máquina;

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve

Camada de Aplicação. Prof. Eduardo

TCP/IP - NÍVEL APLICAÇÃO (utilizador)

Programação de Sistemas

Programação de Sistemas

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Protocolos básicos de LANs IP (primeiro trabalho laboratorial)

Prof. Marcelo Cunha Parte 5

Linguagem de Programação Introdução a Linguagem Java

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Redes de Computadores

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Transcrição:

Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação de es de Software e sistemas que comunicam, usando a Internet, de forma robusta. Capacidades específicas de comunicação De uso geral. A arquitectura dos es é deixada ao projectista JATLite: Infraestrutura Message Router (AMR) Encaminhador de Mensagens es JATLite aceita alteração dinâmica dos endereços Registo de nome e password, conecta/desconecta da Internet, envia e recebe Uso de TCP/IP standard e sockets para a comunicação Message Router programa em Java stand-alone correndo no host ligado à Internet Encaminha as mensagens entre agentes. Facilita informação sobre endereços IP es applets usam o Router correndo na máquina do servidor HTTP como proxy para comunicar com outros es

JATLite: Arquitectura Arquitectura do JATLite como uma hierarquia de camadas Templates (moldes) para a construção de es Classes Java pré-definidas em diversas camadas facilitando a construção dos es Protocol Layer Router Layer KQML Layer Base Layer Abstract Layer Pacotes Camadas JATLite JATLite: Arquitectura Camadas JATLite Abstract Layer classes abstractas necessárias à implementação JATLite Base Layer communicação TCP/IP básica semrestrições na linguageme protocolo de comunicação KQML Layer restrição da linguagem: memorização e análise ( parsing ) de Mensagens em KQML Router Layer routing (encaminhamento) das mensagens em vez de polling(directo): todos os agentes enviam/recebem mensagens via router ultrapassa restrições de segurança dos applets podendo comunicar com agentes em outras máquinas 2 pacotes importantes: RouterLayer.Client: package para os agentes clientes RouterLayer.Router: package do router

JATLite: Arquitectura Camadas (Layers) do JATLite Protocol Layer suporta os serviços standard da internet: SMTP (simple mail), FTP agentes stand-alone podem usar os serviços existentes SMTP e FTP sem os serviços proxy do Router agentes applet tem de usar o Router como proxy para ligar aos servidores SMTP ou FTP em outras máquinas diferentes Applet KQML message Data Router (FTP Proxy) FTP FTP Server KQML message FTP Stand-alone Router Polling (directo) vs. Queuing (indirecto) e emissor Polling Ligação crítica e receptor - problemas quando a ligação não pode ser establecida (N receptores) JATLite:Router Ligação crítica e Queuing Router emissor receptor - memorização de mensagens (queuing): guarda mensagem Name Service (ANS) Router é um ANServer mantendo os endereços dos es, que podemalterar-se dinamicamente não é necessário para a passagem de mensagens mas um agente pode perguntar ao Router o endereço de outro e Ligação do lado do receptor e -mecanismo de routing : enviamensagem quando ligação do lado do receptor está establecida (Receptor ligou ao Router)

JATLite:Router Router Comunicação dos es Applets Browser Applet HTTP Server Máquina Router Stand-alone Applet Características do Router Message queuing As mensagens são memorizadas emficheiros e recuperadas ou apagadas de acordo com o pedido do agente Message routing As mensagens serão dirigidas para os receptores apropriados quando possível Name Service Registo só agentes que se registaram podem usar o Router Segurança JATLite:Router teste de segurança usando a password do agente com um dado nome Lista de es mensagempara conhecer todos agentes registados e seus estados de ligação

JATLite:Router Características do Router Desligar mensagem de desligar interrupção acidental (sem mensagem) agentes stand-alone : Reserva de Mensagem» Router testa ligação ao agente em períodos temporais» falhando essas tentativas várias vezes, o agente é apagado do registo» Período de tempo e número de vezes de teste são parâmetros dados podem reservar-se mensagens para serem enviadas num tempo e endereço específicos Exemplo - Router Layer JATLite:Exemplo import java.io.*; import Abstract.*; import KQMLLayer.*; import RouterLayer.Client.*; Router Layer criação public class PingPong extends RouterClientAction { public static String localhost = brooks.fe.up.pt ; public PingPong(String id, String pw, String host, int port) throws Exception { super(); //RouterClientAction constructor criação de e //id,host,port,type,description String s = id+, +host+, +port+,messagerouter,(agent-info :password +pw+ ) ; Address myaddress = new Address(s); s = Router,alf.fe.up.pt,1234,MessageRouter,(MessageRouter) ; Address routeraddress = new Address(s); s = RouterRegistrar,alf.fe.up.pt,1235,MessageRouter,(MessageRouterRegistrar) ; Address registraraddress = new Address(s); setmyaddress(myaddress); //agent address setrouteraddress(routeraddress); //Router address setregistraraddress(registraraddress); //registrar address try { createserverthread(myaddress.getid(), Thread.NORM_PRIORITY); register(); //register to Router connect(); //connect to Router catch(connectionexception e) { throw new Exception(e.toString()); Setembro 2003 //server listener

JATLite:Exemplo public boolean Act(Object o) { String message = (String) o; //invoked automatically when a message is received try { KQMLmail mail = new KQMLmail(message, 0); //KQMLmail wrap the KQMLmessage _mailqueue.addelement(mail); //message repository (to delete message after) KQMLmessage kqml = mail.getkqmlmessage(); //get KQMLmessage object String perf = kqml.getvalue( performative ); String content = kqml.getvalue( content ); if(perf.equals( tell ) && content!= null) { System.out.println(content); acknowledge(kqml.getvalue( sender ), content); addtodeletebuffer(0); else { senderrormessage(kqml); return false; catch (Exception e) { return false; return true; //send delete message to Router Exemplo - Router Layer Exemplo public void processmessage(string command, Object obj) { //not implemented JATLite:Exemplo Exemplo - Router Layer protected void acknowledge(string receiver, String tocontent) throws Exception { KQMLmessage sendkqml = new KQMLmessage(); sendkqml.addfieldvaluepair( performative, tell ); sendkqml.addfieldvaluepair( sender, this.getname()); sendkqml.addfieldvaluepair( receiver, receiver); //... if(tocontent.equals( (ping) )) sendkqml.addfieldvaluepair( content, (pong) ); else sendkqml.addfieldvaluepair( content, (ping) ); sendmessage(sendkqml); //send message to Router: throws ConnectionException protected void senderrormessage(kqmlmessage kqml) throws Exception { String msg = (error :sender + this.getname() + :receiver + kqml.getvalue( sender ) + :content ( + kqml.getsendstring() + )) ; sendmessage(msg); //send Router: throws ConnectionException and ParseException addtodeletebuffer(0); //send delete message to Router public static void main(string argv[]) throws Exception { PingPong pinga = new PingPong( ping, xyz, localhost, 2222); //create pinga PingPong ponga = new PingPong( pong, hjk, localhost, 2223); //create ponga pinga.start(); ponga.start(); //start agent action pinga.sendkqmlmessage( (tell :sender + pinga.getname() + :receiver + ponga.getname() + :content (ping)) ); //or sendmessage sleep(60000); pinga.disconnect(); ponga.disconnect(); //disconnect from Router pinga.unregister(); ponga.unregister(); //unregister from Router pinga.endaction(); ponga.endaction(); //clean up and stop agent action System.exit(0); Setembro 2003

Plataforma para es: PVM PVM: Parallel Virtual Machine - Desenvolvida no início dos anos 90 tem dezenas de milhar de utilizadores - Considerada como um standard de facto para computação distribuída - Características: -Redes Heterogéneas (liga diferentes plataformas e linguagens) - Entrada/saída dinâmica de participantes - Tarefas podem aparecer/desaparecer dinamicamente - passagem de mensagens (envio e recepção de blocos, envio para grupos,...) - Grupos dinâmicos - Tolerância a falhas detectadas automaticamente - Ferramentas de debug próprias (XPVM) - Corre em Unix/Linux e Windows - Consome cerca de 5Mb na instalação - obtida em: htt://www.epm.ornl.gov/pvm/pvm_home.html Plataformas para es Outras PLATAFORMAS para desenvolvimento e comunicação de es: JINI da SUN microsystems; JAVA Spaces; Leasing http://www.binnetcorp.com/jinni/ JADE Java Development Environment; de acordo com as normas da FIPA http://sharon.cselt.it/projects/jade BEEGENT fornecido pela Toshiba; facilidades para desenvolver agentes BDI; KQML http://www2.toshiba.co.jp/beegent/index.html ZEUS fornecido pela BT; editor de ontologia simples; KQML http://www.labs.bt.com/projects/agents/zeus/index.htm AGLETS da IBM; es móveis http://www.trl.ibm.com/aglets/ JATLiteBean: desenvolvimento do JATLite http://kmi.open.ac.uk/people/emanuela/jatlitebean/index.html