Java Spaces Exemplos



Documentos relacionados
Java Spaces. Eventos. Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 1

SISTEMAS DISTRIBUÍDOS

insfcanceof new public switch transient while byte continue extends for int null

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

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

Enterprise Java Beans

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

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

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

Sistemas Distribuídos

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

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

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

Padrão Arquitetura em Camadas

Exercícios de Revisão Java Básico

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

THREADS EM JAVA. George Gomes Cabral

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Programação com sockets (em Java)

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

Threads e Sockets em Java. Threads em Java. Programas e Processos

3 Classes e instanciação de objectos (em Java)

Java : Comunicação Cliente-Servidor.

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Sistemas Distribuídos

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

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Projeto de Software Orientado a Objeto

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Java TM e o Modelo de Objetos

Invocação Remota MC704

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

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

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

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

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

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

Encapsulamento de Dados

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

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Desenvolvimento de Aplicações Java/CORBA

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Guia de Fatores de Qualidade de OO e Java

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

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

Visão do Usuário da DSM

Unidade IV: Ponteiros, Referências e Arrays

Universidade da Beira Interior. Sistemas Distribuídos

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

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

Sintaxe Básica de Java Parte 1

Módulo 07 Características Avançadas de Classes

Invocação de Métodos Remotos

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

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

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

Utilização do Appia. Tolerância a Faltas Distribuída 2003/04. Nuno Carvalho nunomrc@di.fc.ul.pt

Linguagem de Programação III

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

BC0505 Processamento da Informação

UNIVERSIDADE FEDERAL DO PARANÁ

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Cliente-servidor com Sockets TCP

Implementando uma Classe e Criando Objetos a partir dela

Orientação a Objetos com Java

Programação online em Java

Classes Abstratas e Interfaces

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

UNIVERSIDADE. Sistemas Distribuídos

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Web Services utilizando JAX-WS

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

5 Caso de estudo O cartão fidelidade

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

Java. Marcio de Carvalho Victorino

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Conexão Socket na MIDP

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Transcrição:

Java Spaces Exemplos Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 1

Autoria! Autores! Local " Cláudio Geyer " Instituto de Informática " UFRGS " disciplina: Programação com Objetos Distribuídos " versão: # V7, abril 2011 Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 2

Endereços Java Spaces! Endereços " exemplos desenvolvido no II-UFRGS # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2000-1/t2/betemps_saito/ # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2000-1/t2/eustaquio_rabelo/ # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2000-1/t1/soares/ # http://www.inf.ufrgs.br/procpar/disc/inf01008/trabalhos/ sem01-1/t2/pagina/ # comparação de desempenho: Jada X JavaSpaces Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 3

Endereços Java Spaces! Endereços " tutorial (dicas) no II-UFRGS # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2000-1/tutorial/jini-init/index.html # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2001-1/tutorial/tutorial_javaspaces/index.htm " transações e JS # http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/ sem2000-1/t2/sawicki/ Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 4

Hello World! Exemplos Hello World " fonte # Freeman, E. et alli. JavaSpaces Principles, Patterns and Practice. Addison-Wesley, 1999. # capítulo 1 " especificação # 1a versão: 1 cliente do JS escreve e lê # 2a versão: # 1 cliente escreve e lê continuamente # N clientes retiram (lêem), incrementam contador e escrevem, continuamente Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 5

Hello World 1! Hello World com 1 cliente " // exemplo Hello World 1 do livro Freeman. JS // pacote exemplos.capítulo package jsbook.chapter1.helloworld; // pacote de classes entry do jini import net.jini.core.entry.entry; Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 6

Hello World 1 " // classe Message - entrada do JS // implementa a interface Entry public class Message implements Entry { // atributos de entradas: sempre públicos public String content; public Message() { Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 7

Hello World 1! Hello World com 1 cliente " package jsbook.chapter1.helloworld; // pacote com abstração da criação de 1 JS import jsbook.util.spaceaccessor; import net.jini.core.lease.lease; import net.jini.space.javaspace; public class HelloWorld { public static void main(string[] args) { try { // criação de uma entrada Message Message msg = new Message(); msg.content = "Hello World"; Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 8

Hello World 1 " // cria/acessa 1 JS (via pacote auxiliar) JavaSpace space = SpaceAccessor.getSpace(); // escreve 1 entrada Message; arg. null: transação space.write(msg, null, Lease.FOREVER); // cria um template: entrada do mesmo tipo Message Message template = new Message(); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 9

Hello World 1 " // lê a entrada da JS usando o template para busca Message result = (Message)space.read(template, null, Long.MAX_VALUE); System.out.println(result.content); catch (Exception e) { e.printstacktrace(); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 10

Hello World 1! Hello World com 1 cliente " observações # Lease.FOREVER # constante da classe Lease # indica que entrada permanecerá para sempre # até ser retirada por take # Long.MAXVALUE # indica que o read esperará indefinidamente Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 11

Hello World 2! Hello World 2 " 1 cliente observador e N clientes atualizadores " // classe entrada: com métodos package jsbook.chapter1.helloworldtwo; import net.jini.core.entry.entry; public class Message implements Entry { public String content; // contador de escritas de entradas Message public Integer counter; public Message() { Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 12

Hello World 2 " // continuação // construtor com argumentos de inicialização public Message(String content, int initval) { this.content = content; counter = new Integer(initVal); // método para retornar todos dados em 1 string public String tostring() { return content + " read " + counter + " times."; // método para incrementar contador public void increment() { counter = new Integer(counter.intValue() + 1); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 13

Hello World 2! Hello World 2 " // classe cliente observador // grava 1a mensagem // loop infinito: lê e imprime package jsbook.chapter1.helloworldtwo; import jsbook.util.spaceaccessor; import net.jini.core.lease.lease; import net.jini.space.javaspace; Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 14

Hello World 2 " public class HelloWorld { public static void main(string[] args) { try { // cria entrada, acessa JS e inclui entrada Message msg = new Message("Hello World", 0); JavaSpace space = SpaceAccessor.getSpace(); space.write(msg, null, Lease.FOREVER); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 15

Hello World 2 " // continuação Message template = new Message(); // loop infinito para observar for (;;) { Message result = (Message) space.read(template, null, Long.MAX_VALUE); // imprime entrada: string e contador System.out.println(result); Thread.sleep(1000); catch (Exception e) { e.printstacktrace(); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 16

Hello World 2! Hello World 2 " // classe cliente atualizador // loop infinito: retira, incrementa e grava package jsbook.chapter1.helloworldtwo; import jsbook.util.spaceaccessor; import net.jini.core.lease.lease; import net.jini.space.javaspace; public class HelloWorldClient { public static void main(string[] args) { try { JavaSpace space = SpaceAccessor.getSpace(); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 17

Hello World 2 " // cria entrada template Message template = new Message(); for (;;) { // retira entrada Message result = (Message) space.take(template, null, Long.MAX_VALUE); // incrementa contador (localmente) result.increment(); // regrava entrada space.write(result, null, Lease.FOREVER); Thread.sleep(1000); catch (Exception e) { e.printstacktrace(); Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 18

! Hello World 2 Hello World 2 " exercício 1 # considerando um cliente HelloWorld (observador) e vários (5 por exemplo) clientes HelloWorldClient (lêem e escrevem), indique uma possível seqüência de impressões " exercício 2 # compare essa solução com uma outra arquitetura C/S usando RMI # servidor HelloWorld # 1 cliente observador # N clientes atualizadores # simplicidade, legibilidade, sincronização,... # complexidade: quantidade de mensagens: unidirecionais ou RPC Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 19

Java Spaces Exemplos Programação com Objetos Distribuídos (C. Geyer) Java Spaces - Exemplos V0 20