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

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

Remote Method Invocation (RMI) Sistemas Distribuídos.

Apresentações semelhantes


Apresentação em tema: "Remote Method Invocation (RMI) Sistemas Distribuídos."— Transcrição da apresentação:

1 Remote Method Invocation (RMI) Sistemas Distribuídos

2 Equipe Antônia Verlane Arilson Fernando Gabriel Arruda João Victor Jorge Carneiro Luís Eduardo

3 Sistemas Distribuídos e Comunicação Em aplicações distribuídas, é comum organizar os processos em processo servidor e processo cliente, de forma que os processos possam estar localizados em plataformas diferentes, em computadores diferentes.

4 Problemática:  Implementação do modelo de comunicação entre tais processos pode ser difícil devido à complexidade natural.  A complexidade aumenta quando é necessário acessar ou enviar objetos pela internet, pois os mesmos apresentam atributos e métodos que precisam ser convertidos para a forma binária para serem enviados. https://www.devmedia.com.br/remote-method-invocation-rmi-na-pratica/31180

5 Solução: Middleware  Middleware: aplica a uma camada de software que fornece uma abstração de programação, assim como o mascaramento da heterogeneidade das redes, do hardware, dos sistemas operacionais e das linguagens de programação subjacentes. (Coulouris et al, 2013)

6  Alguns middleware, suportam apenas uma linguagem de programação.  A IDL é uma linguagem orientada aos objectos tipicamente baseada em C++, Java, ou C#.  Os modelos possíveis incluem a invocação remota de objetos, a notificação remota de eventos, o acesso remoto a banco de dados e o processamento de transação distribuído. (Coulouris et al, 2013)

7 Facilitando a Implementação: A fim de facilitar a implementação de aplicações distribuídas entre diversas plataformas de sistemas operacionais ou hardware, foi criado o padrão CORBA (Common Object Request Architecture), disponibilizado nas linguagens mais adotadas. https://www.devmedia.com.br/remote-method-invocation-rmi-na-pratica/31180

8 Chamada remota de métodos

9 Arquiteturas para chamada remota  RPC ( Remote Procedure Call)  CORBA ( Common Object Request Broker Architeture)  JAVA RMI ( Remote Method Invocation )

10 RPC(Remote Procedure Call )  Consiste em chamadas remotas a procedimentos como se fossem locais.  Torna mais fácil a implementação de aplicações distribuídas, pois abstrai o código referente à parte de comunicação https://www.devmedia.com.br/remote-method-invocation-rmi-na-pratica/31180

11 RPC(Remote Procedure Call )  Estes procedimentos, normalmente, envolvem serviços disponibilizados em redes.  RPC é muito utilizado em sistemas operacionais distribuídos para chamada remota de procedimentos. https://www.devmedia.com.br/remote-method-invocation-rmi-na-pratica/31180

12 RPC(Remote Procedure Call )  RPC não precisa, necessariamente, envolver estruturação em termos de objetos.  Tanto o cliente quanto o servidor necessitam de um Runtime para processamento da RPC.  Existe a necessidade de se trabalhar com interfaces remotas denominadas STUBS.

13 RMI (Remote Method Invocation)  Permite a chamada de métodos em objetos que estão em outra máquina virtual (geralmente em outro host) com a mesma sintaxe da invocação local.   É exclusivo para aplicações em Java.  É tipicamente cliente-servidor.

14 RMI (Remote Method Invocation) - 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 de uma classe Java) situado em outra máquina virtual JVM, usando a mesma sintaxe e com a mesma facilidade de se chamar um método local.  Transparência de acesso e de localização.

15 RMI (Remote Method Invocation) - eM oUTRAS pALAVRAS Na realidade, o RMI é uma interface que permite a intercomunicação entre objetos Java localizados em diferentes hosts.

16 RMI - CONCEITOS  Objeto Remoto: É um objeto que pode receber invocações remotas.  Referência a objeto remoto: Para que um objeto possa invocar métodos de um objeto remoto, ele deve ter acesso à referência do mesmo.

17 RMI - CONCEITOS  Interface Remota: Todo objeto remoto possui uma interface que especifica quais dos métodos podem ser invocados remotamente.  Exceções: Podem ocorrer por problemas decorrentes da distribuição ou na execução do método.

18 RMI - Considerações  As chamadas remotas têm um tempo de resposta maior do que as chamadas locais.  As chamadas remotas são mais vulneráveis e possuem falhas mais complexas.

19 RMI (Remote Method Invocation) - ARQUITETURA  Cada objeto remoto implementa uma interface remota que especifica quais de seus métodos podem ser invocados remotamente pelos clientes.  Os clientes invocam tais métodos exatamente como invocam métodos locais.

20 RMI (Remote Method Invocation) - ARQUITETURA

21

22 O que é.: :. Stubs e Skeletons (visão GERAL): O cliente, quando invoca remotamente um método, não conversa diretamente com o objeto remoto, mas com uma implementação da interface remota chamada stub, que é enviada ao cliente.

23 RMI (Remote Method Invocation) - ARQUITETURA O que é.: :. Stubs e Skeletons (visão GERAL): O stub, por sua vez, passa a invocação para a camada de referência remota. Esta invocação é passada para um skeleton (esqueleto), que se comunica com o programa servidor.

24 RMI (Remote Method Invocation) - ARQUITETURA Stub (toco):  É uma classe gerada pelo compilador rmic no lado do cliente e implementa a mesma interface remota do lado do servidor.  Não implementa os métodos diretamente e sim traduz a invocação dos métodos para o servidor.

25 RMI (Remote Method Invocation) - ARQUITETURA Stub (toco):  Inicia a conexão com a JVM remota.  Serializa os parâmetros para a JVM remota (Marshaling).  Desserializa os resultados ou exceções de retorno.  Entrega ao cliente o resultado ou exceção.

26 RMI (Remote Method Invocation) - ARQUITETURA Skeleton (esqueleto):  É gerado pelo compilador rmic e fica do lado do servidor.  Implementa a interface remota.  Desserializa(Unmarshaling) os parâmetros para o método remoto.  Invoca o método no objeto remoto.  Serializa o valor de retorno ou exceção e envia para o cliente.

27 RMI (Remote Method Invocation) - ARQUITETURA Skeleton (esqueleto):  É gerado pelo compilador rmic e fica do lado do servidor.  Implementa a interface remota.  Desserializa(Unmarshaling) os parâmetros para o método remoto.  Invoca o método no objeto remoto.  Serializa o valor de retorno ou exceção e envia para o cliente.

28 RMI (Remote Method Invocation) - ARQUITETURA Registry (registro):  Seria impraticável se para cada invocação de método remoto fosse necessário incluir a máquina e a porta de destino.  O RMI oferece um serviço de nomes (RMI Registry) que fornece informações sobre a localização de objetos remotos.

29 RMI (Remote Method Invocation) - ARQUITETURA Registry (registro):  Seria impraticável se para cada invocação de método remoto fosse necessário incluir a máquina e a porta de destino.  O RMI oferece um serviço de nomes (RMI Registry) que fornece informações sobre a localização de objetos remotos.

30 RMI (Remote Method Invocation) - ARQUITETURA Registry (registro):  Seria impraticável se para cada invocação de método remoto fosse necessário incluir a máquina e a porta de destino.  O RMI oferece um serviço de nomes (RMI Registry) que fornece informações sobre a localização de objetos remotos.

31 RMI - VANTAGENS  Modelagem fácil e natural de sistemas distribuídos, abstraindo a parte de rede.  Sintaxe da chamada de método local é igual à sintaxe da chamada de método remoto.  Rápida difusão com a plataforma Java.

32 RMI - CONCORRÊNCIA  Es SD pode haver caso que dois clientes estejam acessando o mesmo objeto [vamo usar como exemplo: o objeto Produto], se um resolver alterar seu preço enquanto outro remove o mesmo poderá haver uma inconsistência.  Como resolver?

33 RMI - CONCORRÊNCIA  Basta colocarmos o modificador synchronized em cada método da classe do objeto remoto onde pode haver a geração de inconsistência.  Esse modificador faz com que um objeto que está sendo acessado só possa ser acessado novamente quando a tarefa que está sendo realizada sobre ele seja concluída.

34 RMI - DESVANTAGENS  Para cada máquina onde estão os objetos remotos deve haver um servidor de nomes para os mesmos serem registrados.  Como RMI usa comunicação síncrona, o cliente não pode fazer outra tarefa enquanto espera a resposta do servidor.  São necessárias configurações adicionais no firewall, causando restrições de acesso e desempenho.

35 RMI - DESVANTAGENS  Para cada máquina onde estão os objetos remotos deve haver um servidor de nomes para os mesmos serem registrados.  Como RMI usa comunicação síncrona, o cliente não pode fazer outra tarefa enquanto espera a resposta do servidor.  São necessárias configurações adicionais no firewall, causando restrições de acesso e desempenho.

36 RMI - SEGURANÇA  RMISecurityManager: Sem ele não seria possível para os objetos locais baixarem código ou utilizarem métodos remotos.

37 RMI - RMI x CORBA (Vantagens)  RMI é similar a CORBA, porém mais simples pois não precisa lidar com diferentes linguagens de programação.  Como tudo é implementado em Java, não necessita de IDL, pois as interfaces são definidas usando as próprias interfaces de Java.

38 RMI - RMI x CORBA (Vantagens)  RMI permite que objetos possam ser passados por valor facilmente.  Com RMI objetos podem ser transferidos de servidores remotos para o cliente em tempo de execução de forma segura.

39 RMI -RMI x CORBA (Desvantagens)  RMI é limitado a Java.  Muitas vezes é necessário implementar partes do sistema em C++ por questões de eficiência e a integração com java não é simples.

40 RMI -RMI x CORBA (Desvantagens)  Desempenho de RMI é menor em alguns casos.  A arquitetura de CORBA como um todo é mais abrangente.

41 RMI -RMI x CORBA (Desvantagens)  Desempenho de RMI é menor em alguns casos.  A arquitetura de CORBA como um todo é mais abrangente.

42 RMI - Estrutura Básica de Arquivos  Hello.java: A interface remota.  HelloClient.java: A aplicação cliente no sistema RMI.  HelloS.java: A interface do servidor.  HelloServer.java: O aplicativo de servidor no sistema RMI. Quando todos os arquivos são compilados, executando o seguinte comando irá criar o stub e o skeleton: RMIc HelloServer

43 RMI - MSN - Estrutura - implementação

44 RMI - MSN - Funcionamento - cliente

45

46

47 Yoooooooooooooooooouuuuuuu!


Carregar ppt "Remote Method Invocation (RMI) Sistemas Distribuídos."

Apresentações semelhantes


Anúncios Google