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



Documentos relacionados
Java Spaces Exemplos

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

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

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

Sistemas Distribuídos baseados em Coordenação. Pedro Ferreira DI - FCUL

SISTEMAS DISTRIBUÍDOS

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) C# Remote V0 1

Visão do Usuário da DSM

Sistemas Distribuídos: Conceitos e Projeto Java RMI

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

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

Aplicação da Arquitetura Multicamadas Utilizando Java. Raquel Schlickmann Orientador: Marcel Hugo

Sistemas Distribuídos

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

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

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

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Como mandar mensagens OSC pelo Flash via Flosc

Invocação Remota MC704

Documentação Usando o Javadoc

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

Rock In Rio - Lisboa

Programação com sockets (em Java)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Tratamento de Eventos

Threads e Concorrência em Java (Material de Apoio)

Exemplos práticos do uso de RMI em sistemas distribuídos


Especialização em Engenharia de Software - CEUT

Programação Concorrente em java - Exercícios Práticos Abril 2004

Invocação de Métodos Remotos

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Sistemas Distribuídos

Alocação Dinâmica e Transparente de Computadores Ociosos em Java

Prototype, um Design Patterns de Criação

Adriano Reine Bueno Rafael Barros Silva

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

Objetos Distribuídos. Nazareno Andrade

Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. José Valente de Oliveira 16-1

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

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

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Sobre a apresentação (About(

THREADS EM JAVA. George Gomes Cabral

Middleware de Aplicações Paralelas/Distribuídas

Desenvolvimento Web TCC Turma A-1

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Invocação de Métodos em Objectos Remotos

INF01018 Aula Prática 2 RMI Remote Method Invocation

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

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

Sessões. Cookies HTTP Sessões Atributos de sessão

Prof. Jhonatan Fernando

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

Nova Funcionalidade desenvolvida, disponível na versão 8.9.0, release 2370 ou superior.

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Java RMI. Alcides Calsavara

J2EE. J2EE - Surgimento

Especificação do 3º Trabalho

Sistemas Operacionais Aula 06: Threads. Ezequiel R. Zorzal

Padrão Básico de Projeto: Interfaces e Polimorfismo

Desenvolvimento Cliente-Servidor 1

Padrão Arquitetura em Camadas

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Sistemas Distribuídos

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Exercício programa para MAC5796

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

Introdução à Programação. Interfaces Gráficas

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Programação distribuída e paralela (C. Geyer) RPC 1

Auditoria Avançada de Persistência com Hibernate, JPA e Envers

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

Jogo Da Velha. - Parte 1 - Fazendo a parte gráfica do jogo da Velha

Android e Bancos de Dados

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Java Beans. Autores. Autores. Cláudio Geyer Marcelo de Medeiros Soares. 28/4/2005 Pg. 1. Informática UFRGS. Informática UFRGS

UNIVERSIDADE. Sistemas Distribuídos

LOGs e ALERTAS de DESEMPENHO

Manual Replicação Manual VPN

Orientação a Objetos

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

MANUAL PORTAL CLIENTE AVANÇO

Sistemas Distribuídos

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

Programação Orientada a Objetos (DPADF 0063)

RMI: Uma Visão Conceitual

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Transcrição:

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

Autoria Autores Local Cláudio Geyer Instituto de Informática UFRGS disciplina: Programação com Objetos Distribuídos Versão V5, Abril 2011 Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 2

Eventos Eventos Um cliente recebe notificação de forma assíncrona a cada inclusão de uma entrada (write) no JS Pode ser usado como um read assíncrono Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 3

Diagrama de Eventos Diagrama de eventos notificação A regevent notify(entry, transaction, listener, lease1, handback) JavaSpace escritor B space.write(msg, transaction, lease2) listener A notify(theevent) Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 4

Diagrama de Eventos Fluxo geral (diagrama) Cliente A registra um pedido de notificação de eventos de escrita (write) Indica o tipo de entrada Pelo método notify Outros clientes (B) escrevem com aquele tipo especificado Por write No mesmo JS do registro -> implica 1 registro por JS Cliente A recebe uma notificação para cada escrita Por chamada automática a um método notify De um objeto listener Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 5

Classes envolvidas Classes e objetos envolvidos Registro de notificação Objeto retornado pelo JS a um pedido de notificação pelo cliente Um cliente pode pedir várias notificações Objeto ouvidor Recebe as notificações Objeto evento Recebido pelo ouvidor a cada notificação de uma escrita (write) Outros tipos de objetos da API Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 6

API de eventos API de eventos pedido de notificação de eventos EventRegistry notify(entry tmpl, Transaction txn, RemoteEventListener listener, long lease, MashalledObject handback) throws RemoteException, TransactionException; tmpl: template de entradas escritas no JS que devem gerar notificação Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 7

API de eventos API de eventos pedido de notificação de eventos listener: objeto que receberá a notificação de cada escrita via método notify do listener deve implementar a interface RemoteEventListener lease: até quando as escritas deverão ser notificadas gerenciado no JS handback: objeto único passado ao listener a cada notificação pode ser usado por cada aplicação como um ID de notificação em nível de aplicação Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 8

API de eventos API de eventos classe registro da notificação define objeto retornado pelo pedido de registro public class EventRegistration implements java.io.serializable { public long getid(); public Object getsource(); public long getsequencenumber(); public Lease getlease(); } getid(): retorna uma identificação do registro getsource(): retorna a fonte dos eventos no caso será sempre JavaSpaces Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 9

API de eventos API de eventos classe registro da notificação (cont.)... public class EventRegistration implements java.io.serializable { public long getid(); public Object getsource(); public long getsequencenumber(); public Lease getlease(); }... getsequencenumber(): retorna um número inicial para os eventos gerados para esse registro getlease: retorna o tempo de validade desse registro Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 10

API de eventos API de eventos interface RemoteEventListener para ouvidores public interface RemoteEventListener extends Remote, java.util.eventlistener { void notify(remoteevent theevent) throws UnknownEventException, RemoteException; } toda classe de ouvidores deve implementar essa interface Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 11

API de eventos API de eventos objeto evento public class RemoteEvent extends EventObject { public long getid(); public Object getsource(); public long getsequencenumber(); public MarshalledObject getregistrationobject(); } getid(): retorna uma identificação do registro A mesma retornada quando do registro getsource(): retorna a fonte dos eventos no caso será sempre JavaSpaces Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 12

API de eventos API de eventos objeto evento getsequencenumber(): retorna um número seqüencial de evento Por registro getregistrationobject(): retorna o objeto passado no registro: handback Confunde-se com a identificação do registro mas agora gerenciada pela aplicação Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 13

Resumo Resumo Eventos permitem recebimento assíncrono de avisos de escritas Cliente A pede para ser notificado de escritas Fornece entrada exemplo Cliente B escreve uma entrada compatível com exemplo JS chama método notify no cliente A Objetos de controle como número de ordem de avisos ID (aplicação) para cada pedido de notificação Opções Tempo limite para escritas gerarem avisos Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 14

Exercícios Exercícios 1) reescreva o exemplo HelloWorld 1 (com JavaSpaces) use eventos Vantagens? 2) idem exemplo HelloWorld 2 3) usando RMI, desenhe um sistema de eventos similar ao do JS Classes, objetos, métodos, nomeações e referências,... Obs.: somente eventos, não um JS completo Programação com Objetos Distribuídos (C. Geyer) JavaSpaces - Eventos V0 15