SISTEMAS DISTRIBUÍDOS



Documentos relacionados
Invocação de Métodos Remotos

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

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

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)

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

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

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

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

Sistemas Distribuídos

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

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

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

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

Sistemas Distribuídos

Java RMI. Alcides Calsavara

APÊNDICE A EXEMPLO DE APLICAÇÃO

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

Sistemas Distribuídos

Adriano Reine Bueno Rafael Barros Silva

Invocação Remota MC704

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

INF01018 Aula Prática 2 RMI Remote Method Invocation

Middleware de Aplicações Paralelas/Distribuídas

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

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)

Objetos Distribuídos em Java

Objetos distribuídos. Roteiro. Java IDL

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

Capítulo V Sistemas de Objectos Distribuídos

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

Invocação de Métodos em Objectos Remotos

UNIVERSIDADE. Sistemas Distribuídos

RMI RMI-IIOP Java IDL (CORBA) Helder da Rocha

Sistemas Distribuídos

RMI/JNDI - Fundamentos

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

Enterprise Java Beans

Sistemas Distribuídos RPC Remote Procedure Call

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

Sistemas Distribuídos: Conceitos e Projeto Java RMI

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

Desenvolvimento de Aplicações Java/CORBA

RMI: Uma Visão Conceitual

Objetos Distribuídos. Nazareno Andrade

Java Spaces Exemplos

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

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

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Java : Comunicação Cliente-Servidor.

Exercício programa para MAC5796

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

THREADS EM JAVA. George Gomes Cabral

FBV - Linguagem de Programação II. Um pouco sobre Java

Java. Marcio de Carvalho Victorino

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

UNIVERSIDADE. 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

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

Programação com Objetos Distribuídos e Componentes

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

Java 2 Standard Edition Como criar classes e objetos

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

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Linguagem de Programação III

Programação com sockets (em Java)

Orientação a Objetos

Comunicação usando soquetes.

JLANSCHOOL - APLICAÇÃO DA TECNOLOGIA JAVA RMI NO DESENVOLVIMENTO DE UM SOFTWARE DE GERÊNCIA DE LABORATÓRIO DE COMPUTADORES

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

CURSO DE PROGRAMAÇÃO EM JAVA

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

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

Java Threads. Introdução

INE Sistemas Distribuídos

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

Um pouco do Java. Prof. Eduardo

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

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

Programação Orientada a Objetos em Java

Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans

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

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

Projeto de Software Orientado a Objeto

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

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

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

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

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

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

Transcrição:

SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível se comunicar com esse objeto remotamente Enviar mensagem para o objeto, através da chamada de métodos Receber resultados do objeto Prof. Carlos Paes 2

Introdução Componentes necessários Interface Remota Classe Remota que implementa a interface Stubs e Skeletons (gerados automaticamente) Classe Cliente que usa o objeto remoto Prof. Carlos Paes 3 Introdução Prof. Carlos Paes 4

Interface Remota Todo objeto para ser acessado remotamente deve possuir uma interface associada Características da interface (ECKEL, 1998) Deve ser pública (por padrão uma interface é pública) Deve estender a interface java.rmi.remote Cada método deve lançar uma exceção java.rmi.remoteexception Todos objetos passados como argumento ou valor de retorno devem aparecer na interface remota Prof. Carlos Paes 5 Interface Remota Prof. Carlos Paes 6

Interface Remota Exemplo: Interface Hello.java package examples; import java.rmi.remote; import java.rmi.remoteexception; public interface Hello extends Remote { String sayhello() throws RemoteException; Prof. Carlos Paes 7 Implementação da Interface Características do Servidor deve possuir uma classe que estende UnicastRemoteObject deve implementar a interface remota a classe pode possuir vários métodos, entretanto somente os métodos declarados na interface são acessíveis remotamente é necessário definir explicitamente o construtor, pois também deve lançar RemoteException Prof. Carlos Paes 8

Implementação da Interface Características do Servidor Deve ser criado um gerenciador de segurança que suporte RMI como o RMISecurityManager Deve ser criada uma instância do objeto remoto O objeto criado deve ser registrado através do método Naming.rebind Prof. Carlos Paes 9 Implementação da Interface Exemplo: Classe HelloImpl.java package examples; import java.rmi.naming; import java.rmi.remoteexception; import java.rmi.server.unicastremoteobject; public class HelloImpl extends UnicastRemoteObject implements Hello { public HelloImpl() throws RemoteException { super(); public String sayhello() { return "Hello World!"; Prof. Carlos Paes 10

Implementação da Interface Exemplo: Classe HelloImpl.java public static void main(string args[]) { try { HelloImpl obj = new HelloImpl(); // Associa o objeto com o nome "HelloServer" Naming.rebind("//localhost:2004/HelloServer", obj); System.out.println("HelloServer bound in registry"); catch (Exception e) { System.out.println("HelloImpl err: " + e.getmessage()); e.printstacktrace(); Prof. Carlos Paes 11 Registro do Objeto Remoto É necessário registrar o objeto na máquina para acesso remoto O processo rmiregistry deve ser iniciado (No Windows start rmiregistry). Para o rmiregistry pode ser especificado como parâmetro uma porta. A porta padrão é 1099 (LocateRegistry.createRegistry(2004)) Devem ser criados os stubs e skeletons do objeto através do comando rmic Prof. Carlos Paes 12

Registro do Objeto Remoto obj.met( ) public void met( ) {... stub skeleton TCP/IP compilador RMI (rmic( rmic) ) gera stub e skeleton Prof. Carlos Paes 13 Registro do Objeto Remoto É necessário registrar o objeto na máquina para acesso remoto Os stubs e skeletons fazem o empacotamento dos parâmetros que são objetos. Todos parâmetros objetos devem ser serializáveis ou implementarem Remote A classe remota deve ser executada. Mesmo com o fim da execução, pois o main termina, o objeto fica registrado Prof. Carlos Paes 14

Registro do Objeto Remoto Seqüencia de comandos para o programa apresentado: Compliar os arquivos Hello e HelloImpl Executar o comando: rmic examples.helloimpl Executar o comando: start rmiregistry 2004 Prof. Carlos Paes 15 Objeto Cliente Exemplo: Classe HelloClient.java package examples; import java.rmi.*; public class HelloClient { public static void main(string[] args) { String message = "blank"; Hello obj = null; try { obj = (Hello)Naming.lookup("//localhost:2004/HelloServer"); message = obj.sayhello(); catch (Exception e) { System.out.println("HelloCleint exception: " + e.getmessage()); e.printstacktrace(); System.out.println(message); Prof. Carlos Paes 16

RMI Arquitetura em Camadas Prof. Carlos Paes 17 Camadas Stub e Skeleton Prof. Carlos Paes 18

Camada de Transporte Prof. Carlos Paes 19 Parâmetros Tipos de dados primitivo passagem por valor Objetos passagem por valor Objeto dever ser serializável Objetos Remotos referência remota Prof. Carlos Paes 20