A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos

Apresentações semelhantes


Apresentação em tema: "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"— Transcrição da apresentação:

1 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Remote Method Invocation Mecanismo de Invocação de métodos em um sistema de objetos distribuídos; Exemplos: Java RMI Java RMI – IIOP Internet Inter-Orb Protocol Corba DCOM

2 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Remote Method Invocation Mecanismo de Invocação de métodos para a linguagem Java; Suporta a invocação automática de objetos; Permite carregamento dinâmico de classes; Componentes: Linguagem de definição de interface: Java; Servidor de nomes: rmiregistry Compilador usado: rmic

3 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Remote Method Invocation Stubs e Skeletons Objeto Cliente stub Objeto remoto skeleton os skeleton´s só são gerados pelo compilador java 1.4 e anterior, os superiores não geram. Os próprios stub´s fazem os dois papéis

4 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Projeto e Compilação de aplicação remota Passos Definição da interface Implementação e compilação da interface Implementação e compilação do Cliente Geração dos Sutub´s pelo compilador Saídas Interface.java Server.java, server.class Client.java, client.class Server-skeleton.calss, client-sutb.class

5 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Execução da Aplicação Remota Passos Inicialização do servidor de nomes Inicialização do servidor Servidor exporta interface Inicialização do cliente Cliente importa interface Comandos rmiregistry java server naming.rebind(serviço) java client naming.lookup(serviço)

6 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Visão Geral serviço de nomes (rmiregistry) objeto cliente objeto remoto Interface remota Invocação de método remoto Obtenção de referência da interface Exportação de interface

7 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Compilando rmic Gera os clientes-stubs e server-skeletons (java1.4) Cada classe que implementa uma interface remota. Exem: rmic HelloImpl (.class arquivo) Ele cria os arquivos HelloImpl_Skel.class (servidor – apenas java1.4) HelloImpl_Stub.class (Cliente (Cliente e Servidor))

8 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Passagem de parâmetro Objeto não remoto Deve implementar interface java.io.Serializable Objetos cujas instâncias podem ser copiadas entre espaço de endereçamento diferentes. Cópia passada por valor (como parâmetro ou valor de retorno) Objeto remoto Deve implementar interface java.rmi.Remote Objeto cujas instâncias podem ser usadas remotamente Referência do objeto é passado (como parâmetro ou valor de retorno)  Corresponde ao seu stub

9 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Interfaces e Classes RMI RemoteObject Remote IOException RemoteServer RemoteException Activatable InicastRemoteObject Implementação Extensão Interface Classes

10 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Será criado : Interface: ServidorInt.java Servidor: Servidor.java Cliente: Cliente.java

11 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Interface: ServidorInt.java import java.rmi.*; public interface ServidorInt extends Remote { void imprimeMensagem (String mensagem) throws RemoteException; }

12 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Servidor.java import java.rmi.*; import java.remi.server.*; public class Servidor extends UnicastRemoteObject implements ServidorInt{ public Servidor() throws RemoteException{ super(); }; public void imprimeMensagem(String mensagem){ System.out.println(“Mensagem enviada é : ” + mensagem); } public sataic void main (String args[]){ try { Servidor s = new Servidor(); Naming.rebind (“servidor”, s); System.out.println(“Servidor resgistrado”); } catch (Exception e){ System.out.println(“Erro ” + e.getMessage()); e.printStactTrace(); }

13 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Cliente.java import java.rmi.*; import java.io.*; public class Cliente implements Serializable{ public sataic void main (String args[]){ try { ServidorInt s = (Servidor) Naming.lookup(“servidor”); s.imprimeMensagem(“Oi pessoal”); } catch (Exception e){ System.out.println(“Erro :” + e.getMessage()); e.printStactTrace(); }

14 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Processo de criação da aplicação Compilar os arquivos javac ServidorInt.java Servidor.java Cliente.java Geração do stub e skeleton -> (java1.4) rmic Servidor Gera as classes Servidor_Stub.class e Servidor_Skel.class Ativação do serviço de nomes Rmiregistry Ativação das aplicações java Servidor java Cliente

15 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Coleta de Lixo (Garbage Collection) Processo de destruição automática de objetos não mais acessados por clientes; Baseado na contagem de referências ao objeto servidor Uma referência seria uma conexão estabelecida entre o cliente e o servidor O cliente adquire o leasing da referência por um período de tempo e deve renova-lo Se o servidor falha, deve-se renovar a referência.

16 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Carregamento dinâmico de classes objeto cliente objeto remoto Classe MinhaClasse http://200.17.144.50:9000 Baseado na anotação de classes durante a serialização. A anotação indica de onde conseguir as classes Servidor de Classes do cliente http

17 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Ativação de objeto Remoto objeto cliente objeto ativo Evita o consumo de CPU por objetos inativos Suporta referências persistentes de objetos ativador 1 stub 4 objeto inativo 2 3 Passa referência ativa

18 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Security Manager Todos os programas que usam RMI devem instalar um módulo de segurança para: Carregar objetos passados como parâmetros; Valores retornados ou exceções. Garantia de que o código carregado obedece à requisitos de segurança. RMISecurityManager

19 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Exemplo: Impressão de uma mensagem em um servidor Programa: Cliente.java com Segurança import java.rmi.*; import java.io.*; public class Cliente implements Serializable{ public sataic void main (String args[]){ if (System.getSecurityManager() == null) { System.setSecurityManager( new RMISecurityManager() ); } try { ServidorInt s = (Servidor) Naming.lookup(“servidor”); s.imprimeMensagem(“Oi pessoal”); } catch (Exception e){ System.out.println(“Erro :” + e.getMessage()); e.printStactTrace(); }

20 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com RMI – Bibiografia http://java.sun.com Java Remote Method INvocation Specification na tutoriais.


Carregar ppt "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"

Apresentações semelhantes


Anúncios Google