Invocação Remota MC704



Documentos relacionados
UNIVERSIDADE. Sistemas Distribuídos

Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Objetos Distribuídos. Nazareno Andrade

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

SISTEMAS DISTRIBUÍDOS

Invocação de Métodos em Objectos Remotos

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

Invocação de Métodos Remotos

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

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

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

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

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

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

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos

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

UFG - Instituto de Informática

APÊNDICE A EXEMPLO DE APLICAÇÃO

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

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

Java RMI. Alcides Calsavara

Objetos Distribuídos e

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla

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

Sistemas Distribuídos

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

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

Métodos em Objectos Remotos

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

Middleware de Aplicações Paralelas/Distribuídas

Licenciatura em Engenharia Informática PROVA DE TESTE PRÁTICO Sistemas Distribuídos I 2º Semestre, 2005/2006

Sistemas Distribuídos RPC Remote Procedure Call

Capítulo V Sistemas de Objectos Distribuídos

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

INF01018 Aula Prática 2 RMI Remote Method Invocation

Sistemas Distribuídos

Um pouco do Java. Prof. Eduardo

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Adriano Reine Bueno Rafael Barros Silva

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

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

!" # # # $ %!" " & ' ( 2

Desenvolvimento de Aplicações Java/CORBA

5 Caso de estudo O cartão fidelidade

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

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

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

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

Design Patterns (Factory Method, Prototype, Singleton)

Programação com sockets (em Java)

Sistemas Distribuídos RPC

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

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

Comunicação. Parte II

RMI: Uma Visão Conceitual

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

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

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Sistemas Distribuídos Métodos de Invocação Remota II. Prof. MSc. Hugo Souza

Linguagem de Programação III

Java TM e o Modelo de Objetos

INE Sistemas Distribuídos

THREADS EM JAVA. George Gomes Cabral

UNIVERSIDADE. Sistemas Distribuídos

Programação Orientada a Objetos em Java

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

Universidade Federal de Pernambuco Centro de Informática Recife - Pernambuco

Programação Orientada a Objetos. Encapsulamento

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Java Spaces Exemplos

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

Invocação de Métodos em Objectos Remotos

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Implementando uma Classe e Criando Objetos a partir dela

Classes Abstratas e Interfaces

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

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.

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Unidade IV: Ponteiros, Referências e Arrays

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

Java. Marcio de Carvalho Victorino

LEIC/LERC 2009/10 Primeiro Teste de Sistemas Distribuídos. Grupo I [6 v]

JavaTM RMI - Remote Method Invocation

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

Sistemas Distribuídos: Conceitos e Projeto Java RMI

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

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

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

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

Padrão Arquitetura em Camadas

Guia de Fatores de Qualidade de OO e Java

Exercício programa para MAC5796

Programação Concorrente/Paralela em Java

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

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

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

Keeper of Knowledge. Capítulo 2 Classes em Java

Transcrição:

Invocação Remota MC704

Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar operações em processos remotos para realizar o serviço/computação

Modelos de programação RPC - Chamada de procedimento remoto Extensão de chamada de procedimento local RMI - Invocação de método remoto Extensão de invocação de método local Programação baseada em eventos

Middleware Software que fornece uma abstração de mais alto nível que os serviços básicos do sistema operacional ou de rede Isola aplicação de detalhes como protocolos de comunicação, sistema operacional, hardware; às vezes, isola até de linguagem de programação.

Interface Aplicação é dividida em módulos que se comunicam. A interface de um módulo define os meios de acesso ao módulo Enquanto interface não muda, acesso pode ser feito da mesma maneira, mesmo que a implementação do módulo mude IDLs - linguagens de definição de interfaces

Comunicação entre objetos distribuídos O modelo: Conjunto de objetos interagindo Referências a objetos Exceções Coleta de lixo

RMI - projeto Semântica da invocação Talvez Falhas não são consideradas Pelo menos uma vez Reenvio de req, sem filtro de duplicata, servidor reexecuta serviço No máximo uma vez Reenvio de req, filtro de duplicata, servidor retransmite resposta

RMI - implementação Proxy - criado para cada objeto remoto referenciado Implementa transparência Local para o invocador, oculta detalhes da comunicação remota Despachante - um para cada classe que implementa um objeto remoto no servidor Recebe mensagem de requisição e seleciona o método apropriado no Esqueleto

RMI - implementação Esqueleto - implementa os métodos da interface remota Desempacota requisição, chama método local, espera completar, envia resposta. Proxy, Despachante e Esqueleto são gerados pelo compilador RMI java a partir de um objeto remoto

RMIRegistry Uma instância para cada computador servidor que tenha objetos remotos Argumento na forma //nomecomputador:porta/nomeobjeto void rebind (String name, Remote obj) Usado para servidor registrar (vincular) objeto pelo nome. void bind (String name, Remote obj) Mesmo que acima. Se nome já está sendo usado, levanta exceção. void unbind (String name, Remote obj) Remove vínculo. Remote lookup(string name) Usado por clientes para procurar objeto pelo nome. Uma referência remota é retornada. String [] list() Retorna um array de strings com os nomes registrados.

Interfaces remotas package examples.rmishape; import java.rmi.*; import java.util.vector; public interface Shape extends Remote { int getversion() throws RemoteException; GraphicalObject getallstate() throws RemoteException; package examples.rmishape; import java.rmi.*; import java.util.vector; public interface ShapeList extends Remote { Shape newshape(graphicalobject g) throws RemoteException; Vector allshapes()throws RemoteException; int getversion() throws RemoteException;

Classe ShapeListServer package examples.rmishape; import java.rmi.*; //import java.rmi.server.unicastremoteobject; public class ShapeListServer { public static void main(string args[]){ System.setSecurityManager(new RMISecurityManager()); System.out.println("Main OK"); try { ShapeList ashapelist = new ShapeListServant(); System.out.println("After create"); Naming.rebind("ShapeList", ashapelist); System.out.println("ShapeList server ready"); catch(exception e) { System.out.println("ShapeList server main " + e.getmessage());

Classe ShapeListServant package examples.rmishape; import java.rmi.*; import java.rmi.server.unicastremoteobject; import java.util.vector; public class ShapeListServant extends UnicastRemoteObject implements ShapeList{ private Vector thelist; private int version; public ShapeListServant()throws RemoteException{ thelist = new Vector(); version = 0; public Shape newshape(graphicalobject g) throws RemoteException{ version++; Shape s = new ShapeServant( g, version); thelist.addelement(s); return s; public Vector allshapes()throws RemoteException{ return thelist; public int getversion() throws RemoteException{ return version;

Cliente para ShapeList package examples.rmishape; import java.rmi.*; import java.rmi.server.*; import java.util.vector; import java.awt.rectangle; import java.awt.color; public class ShapeListClient{ public static void main(string args[]) { String option = "Read"; String shapetype = "Rectangle"; if(args.length > 0) option = args[0]; // read or write if(args.length > 1) shapetype = args[1]; // specify Circle, Line etc System.out.println("option = " + option + "shape = " + shapetype); if(system.getsecuritymanager() == null) { System.setSecurityManager(new RMISecurityManager()); else System.out.println("Already has a security manager, so cant set RMI SM"); ShapeList ashapelist = null; try { ashapelist = (ShapeList) Naming.lookup("//Jean.torriano.net/ShapeList"); System.out.println("Found server"); Vector slist = ashapelist.allshapes(); System.out.println("Got vector"); if(option.equals("read")){ for(int i=0; i<slist.size(); i++){ GraphicalObject g = ((Shape)sList.elementAt(i)).getAllState(); g.print(); else { GraphicalObject g = new GraphicalObject(shapeType, new Rectangle(50,50,300,400), Color.red,Color.blue, false); System.out.println("Created graphical object"); ashapelist.newshape(g); System.out.println("Stored shape"); catch(remoteexception e) { System.out.println("allShapes: " + e.getmessage()); catch(exception e) {System.out.println("Lookup: " + e.getmessage());

Tutorial http://java.sun.com/docs/books/tutorial/rmi/