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

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

Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.

Apresentações semelhantes


Apresentação em tema: "Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB."— Transcrição da apresentação:

1 Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB

2 Organização Módulo 1: –Conceitos de Sistemas Distrubídos; Módulo 2: –Remote Procedure Call; Módulo 3: –Java RMI; Módulo 4: –CORBA;

3 Módulo 3 - Sumário Objetos Distribuídos; RMI – Remote Method Invocation –Arquitetura RMI; –Java RMI; –Estudo de Caso; –Atividade;

4 Remote Method Invocation Objetos Distribuídos Os objetos de um sistema estão separados; –Diferentes processos ou computadores; Objetos clientes invocam métodos de objetos servidores; Se comunicam por RMI;

5 Remote Method Invocation Objetos Distribuídos ● Objetos servidores podem ser clientes de outros objetos; ● Arquitetura de três camadas; ● Objetos somente são acessados por métodos; ● Controle de segurança; ● Controle de concorrência; ● Suporte a heterogeneidade;

6 Remote Method Invocation Objetos Distribuídos ● Objetos remotos aceitam chamadas remotas; ● Para realizar uma invocação é necessária uma referência ao objeto remoto; ● Um objeto remoto possui uma interface remota; ● Especifica os métodos remotos;

7 Remote Method Invocation Objetos Distribuídos invocation remote invocation remote local invocation A B C D E F

8 Remote Method Invocation Objetos Distribuídos ● Referência a Objetos Remotos: ● São passadas como parâmetro em RMI; ● Identificam o objeto no sistema distribuído; Internet addressport numbertimeobject number interface of remote object 32 bits

9 Remote Method Invocation Objetos Distribuídos interface remote m1 m2 m3 m4 m5 m6 Data implementation remoteobject { of methods

10 Remote Method Invocation Objetos Distribuídos Aspectos da comunicação RMI; Confiável x Não Confiável; Implementações: –Time Out; –Retransmissão; –Duplicatas; –Históricos;

11 Remote Method Invocation Objetos Distribuídos Maybe: –Não sabe se foi executado 1 ou 0 vezes; –Falha pode ocorrer antes ou depois da execução; At-least-once: –Se receber resposta, o método foi executado ao menos uma vez; –Retransmite requisições; –O método pode ser executado mais de uma vez; –Para operações idempotentes; At-most-once: –Se receber resposta, o método foi executado exatamente uma vez; –Se vier erro o método executou 0 ou 1 vez; –Para operações não idempotentes;

12 Remote Method Invocation Objetos Distribuídos - Semânticas Fault tolerance measures Invocation semantics Retransmit request message Duplicate filtering Re-execute procedure or retransmit reply No Yes Not applicable No Yes Not applicable Re-execute procedure Retransmit replyAt-most-once At-least-once Maybe

13 Remote Method Invocation Arquitetura RMI object A object B skeleton Request proxy for B Reply Communication Remote Remote reference Communication module reference module module for B’s class & dispatcher remote client server

14 Remote Method Invocation Arquitetura RMI

15 Módulo de Comunicação: –Executa protocolo Request-Reply; Módulo de Referência Remota: –Cria os objetos remotos na primeira vez que são acessados; –Contém uma tabela de referências remotas; –Uma entrada para cada objeto remoto e cada Proxy; –Converte referência do Request ou Reply em referência local a um Proxy ou objeto remoto;

16 Remote Method Invocation Arquitetura RMI RMI Proxy: –Prove transparência ao cliente; RMI Dispatcher: –Um para cada objeto remoto; –Recebe a requisição do módulo de comunicação; –MethodId escolhe o método correto; –Chama método do Skeleton;

17 Remote Method Invocation Arquitetura RMI RMI Skeleton: –Faz unMarshall e chama o método do objeto remoto; –Aguarda resultado da execução; –Faz Marshall para o Reply; –Send para o Proxy;

18 Remote Method Invocation Arquitetura RMI Geração Proxy, Dispatcher e Skeleton: –São gerados por um compilador de interface; –Java RMI compila interface Java; Binder: –Mapeia as referências dos objetos remotos; –Cliente obtém referência a um objeto pelo binder; –Objeto remoto registra seus serviços no binder; –Java: RMIregistry;

19 Remote Method Invocation Java RMI Faz invocação remota usando sintaxe local; Usa Interface Java; Objeto remoto implementa interface Remote que gera RemoteException; rmic e rmiregistry;

20 Remote Method Invocation Java RMI RMIregistry: –Roda no servidor de objetos; –Mantém tabela com referência aos objetos; –É acessado por métodos da classe Naming; –Objetos no formato: //NomeComputador:Porta/NomeObjeto;

21 Remote Method Invocation Java RMI Classe Naming: –void rebind (String name, Remote obj); –void bind (String name, Remote obj); –void unbind (String name, Remote obj); –Remote lookup(String name); –String [] list()

22 Remote Method Invocation Estudo de Caso Exemplo HelloWorld; Código fonte: –Interface: HelloWorld.java; –Servidor: HelloServer.java; –Cliente: HelloClient.java;

23 Remote Method Invocation Estudo de Caso Compilar Servidor: –javac RMIHello\HelloServer.java Gerar Stubs do servidor: –rmic RMIHello.HelloServer  Compilar Cliente:  javac RMIHello\HelloClient.java  Compilar ou copiar stubs no cliente

24 Remote Method Invocation Estudo de Caso Iniciar RMIRegistry;  Executar Servidor:  java RMIHello.HelloServer;  Executar Cliente:  java RMIHello.HelloClient localhost;

25 Remote Method Invocation Atividade Testar estudo de caso em diferentes computadores; Testar HelloGrafico.java; Passar e retornar parâmetro na mensagem; –Alterar interface; –Alterar servidor; –Alterar cliente;

26 Remote Method Invocation Atividade – Banco Servidor de Banco: –Saque, depósito, transferência; Desenvolver um cliente para o servidor; Baixar pacote RMIBanco.rar; Interface: public int CriaConta(String nome, double saldo) public boolean Deposito(int contaID, double valor) public boolean Saque(int contaID, double valor) public boolean Transferencia(int contaORI, int contaDES, double valor) public double Saldo(int contaID) throws RemoteException;

27 Remote Method Invocation Atividade – Calculadora Remota Pacote: RMICalc; Fontes: –RMICalculator.java; –RMICalcServer.java; –RMICalcClient.java; Interface: public int soma(int a, int b) throws RemoteException; public int subtracao(int a, int b) throws RemoteException; public String GetServerName() throws RemoteException;

28 Remote Method Invocation Atividade – Extra Definir um tema; Se organizar em duplas de máquinas; Um lado desenvolve o cliente; Outro lado desenvolve o servidor; Estabelecer a comunicação;


Carregar ppt "Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB."

Apresentações semelhantes


Anúncios Google