UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Advertisements

Sistemas Distribuídos Resolvendo o Problema da Heterogeneidade
Sistemas distribuídos
RMI - Remote Method Invocation
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Invocação de Métodos Remotos RMI
Comunicação Entre Objetos Distribuídos
1 Serviços CORBA. Serviços CORBA. Funcionalidades que podem ser utilizadas por objetos distribuídos. Naming Service (Serviço de Nomes) Event and Notification.
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
2002/2003 Programação Orientada para Objectos 1 Aula 3 Utilização de listas Melhorando a implementação das listas e iteradores Reflexão sobre interfaces.
A linguagem C#.
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
Chamada Remota de Procedimentos
Desenvolvimento de Aplicações CORBA
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Remote Method Invocation RMI
Objetos Distribuídos e invocação remota
Objetos Distribuídos Nazareno Andrade.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Tipos Especiais de Listas
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Tipos Especiais de Listas
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
RMI (Remote Method Invocation) Bruno Edson Plínio Tadeu
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Associação. 2 Desafio – Aula class Aluno { 2. private String nome; 3. private float nota; 4. public Aluno(String nome, float nota){ 5. this.nome.
RMI Java Remote Method Invocation em Java. Introdução Java Remote Method Invocation (Java RMI) permite desenvolver sistemas distribuídos baseados em Java.
Sistemas Distribuídos Prof. Marcus Rodrigues
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Tratamento de exceções em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de.
PROGRAMANDO EM JAVA Dilvan Moreira (baseado no livro Big Java)
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Programação em Java RMI - Remote Method Invocation Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Linguagens de Programação Conceitos e Técnicas Definições e declarações Prof. Isabel Cafezeiro
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Introdução a Programação
AsyncTask e Socket no Android
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Unidade IV– Relacionamento entre Objetos
Invocação de Métodos Remotos (RMI) en Java
TQS - Teste e Qualidade de Software (Software Testing and Quality) Geração Automática de Casos de Teste com a Ferramenta.
INE 5201 – INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO
Programação Orientada a Objetos
Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.
SDK Openbus - Java Tecgraf PUC-Rio Setembro de 2013.
Elaborando as Interfaces Aulas 37, 38 e 39.
Remote Method Invocation
Programação Orientada a Objetos*
Programação Orientada a Objetos*
Rosemary Silveira Filgueiras Melo
Prof. Rafael Mesquita Pilha Prof. Rafael Mesquita
Teste de Software 04: Que parte devo testar?
Leitura do teclado e Interface gráfica
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Constantes, Variáveis e Memória
RESULUÇÃO DOS EXERCÍCIOS E
Percorrendo coleções com Iterator
Transcrição da apresentação:

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa Aula 19-20: Middleware: Exemplo com Java RMI, RPC, Modelo de Eventos

Instituto de Informática - UFG Exemplo de RMI: Java RMI ● Definição de interfaces ● Implementação do servidor ● Implementação de objeto ● Implementação do cliente

Instituto de Informática - UFG Java RMI: Exemplo de interface i mport java.rmi.*; import java.util.Vector; public interface Shape extends Remote { int getVersion() throws RemoteException; GraphicalObject getAllState() throws RemoteException; } public interface ShapeList extends Remote { Shape newShape(GraphicalObject g) throws RemoteException; Vector allShapes() throws RemoteException; int getVersion() throws RemoteException; }

Instituto de Informática - UFG Java RMI: a classe Naming do RMIregistry void rebind (String name, Remote obj) This method is used by a server to register the identifier of a remote object by name, as shown in Figure 15.13, line 3. void bind (String name, Remote obj) This method can alternatively be used by a server to register a remote object by name, but if the name is already bound to a remote object reference an exception is thrown. void unbind (String name, Remote obj) This method removes a binding. Remote lookup(String name) This method is used by clients to look up a remote object by name, as shown in Figure line 1. A remote object reference is returned. String [] list() This method returns an array of Strings containing the names bound in the registry.

Instituto de Informática - UFG Java RMI: Implementação do servidor import java.rmi.*; public class ShapeListServer{ public static void main(String args[]){ System.setSecurityManager(new RMISecurityManager()); try{ ShapeList aShapeList = new ShapeListServant(); Naming.rebind("Shape List", aShapeList ); System.out.println("ShapeList server ready"); } catch(Exception e) { System.out.println("ShapeList server main " + e.getMessage());} }

Instituto de Informática - UFG Java RMI: Implementação de objeto (servant) import java.rmi.*; import java.rmi.server.UnicastRemoteObject; import java.util.Vector; public class ShapeListServant extends UnicastRemoteObject implements ShapeList { private Vector theList; // contains the list of Shapes private int version; public ShapeListServant() throws RemoteException{...} public Shape newShape(GraphicalObject g) throws RemoteException { version++; Shape s = new ShapeServant( g, version); theList.addElement(s); return s; } public Vector allShapes()throws RemoteException{...} public int getVersion() throws RemoteException {... } }

Instituto de Informática - UFG Java RMI: Cliente import java.rmi.*; import java.rmi.server.*; import java.util.Vector; public class ShapeListClient{ public static void main(String args[]){ System.setSecurityManager(new RMISecurityManager()); ShapeList aShapeList = null; try{ aShapeList = (ShapeList) Naming.lookup("//fmc.ShapeList"); Vector sList = aShapeList.allShapes(); } catch(RemoteException e) {System.out.println(e.getMessage()); }catch(Exception e) {System.out.println("Client: " + e.getMessage());} }

Instituto de Informática - UFG Classes que dão suporte a Java RMI RemoteServer UnicastRemoteObject Activatable RemoteObject

Instituto de Informática - UFG Exercício prático ● Executar o exemplo de RMI apresentado acima  completar a implementação  compilar e gerar os artefatos necessários  demonstrar a execução ● Verificação e esclarecimento de dúvidas em aula prática (laboratório)  15/09

Instituto de Informática - UFG RPC Chamada de Procedimentos Remotos

Instituto de Informática - UFG Implementação de RPC client Request Repl y Communication module dispatcher service client stub server stub procedur e client processserver process procedur e program Qual a diferença notável em relação a RMI?

Instituto de Informática - UFG Exemplo de definição de interface utilizando a linguagem Sun XDR const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Length; struct Data { int length; char buffer[MAX]; }; struct writeargs { FileIdentifier f; FilePointer position; Data data; }; struct readargs { FileIdentifier f; FilePointer position; Length length; }; program FILEREADWRITE { version VERSION { void WRITE(writeargs)=1;1 Data READ(readargs)=2;2 }=2; } = 9999;

Instituto de Informática - UFG Notificação de Eventos

Instituto de Informática - UFG Eventos e notificações (modelo Publish-Subscribe) ● Modelo de comunicação assíncrona entre  gerador de eventos (objetos de interesse) e  consumidores de eventos (assinantes) ● Eventos são comunicados via notificações ● Completo desacoplamento entre geradores e consumidores de eventos  um gerador de eventos não sabe quais consumidores recebem suas notificações ● Tipos de eventos  tipos de dados envolvidos em um evento

Instituto de Informática - UFG Eventos e notificações: Exemplo

Instituto de Informática - UFG Arquitetura distribuída para notificação de eventos subscriberobserverobject of interest Event service object of interest observer subscriber notification

Instituto de Informática - UFG Papéis dos componentes de uma arquitetura de eventos ● Objeto de interesse  gerador de eventos de algum tipo especificado ● Evento  ocorrência em um objeto de interesse ● Notificação  objeto que contém informação sobre um evento, utilizado para comunicá-lo aos interessados ● Assinante  objeto que registra interesse por notificações de certo tipo de evento

Instituto de Informática - UFG Papéis dos componentes de uma arquitetura de eventos (2) ● Objeto Observador  intermediador entre objetos de interesse e assinantes  implementa a lógica de notificação ● detecção de eventos; encaminhamento, filtragem e correlação de eventos (para detectar padrões); caixa postal de eventos  seu uso é opcional ● Publicador  torna tipos de eventos conhecidos do público  pode ser o objeto observador ou o próprio objeto de interesse que gera o evento