You are on page 1of 21

RMI - Remote Method Invocation

Sistemas Distribudos

RMI - Remote Method Invocation


Java RMI (Remote Method Invocation) permite que objetos Java executando no mesmo computador ou em outros computadores comuniquem entre si por meio de chamadas de mtodos remoto. Essas chamadas de mtodos so semelhantes quelas que ocorrem entre objetos de um mesmo programa.

RMI - Remote Method Invocation

RMI est baseado em uma tecnologia anterior semelhante para programao procedural, chamada de chamada de procedimentos remotos (Remote Procedure Calls, ou RPC), desenvolvida nos anos 80.

RMI - Remote Method Invocation

Permite objetos Java invocar transparentemente mtodos de outros objetos (que podem estar em mquinas diferentes objetos remotos) Java RMI libera o programador de tratar de detalhes como endereamento e codificao/decodificao de mensagens

Essa tecnologia utiliza o modelo clientesXservidores: Um servidor fornece um servio RMI e um Cliente invoca mtodos do objeto daquele servio. Os Servidores devem REGISTRAR os seus servios em algum lugar na rede para que os Clientes possam encontr-los. Como parte da plataforma JAVA, encontra-se uma aplicao chamada rmiregistry (Registrador de Servios) a qual roda como um processo separado e permite que aplicaes registrem os seus servios RMI e tambm que aplicaes obtenham uma referncia de um servio existente (nomeando).

RMI - Remote Method Invocation

Sendo uma extenso de RPC, Java RMI permite comunicao distribuda de um objeto Java com outro. Uma vez que um mtodo (ou servio) de um objeto Java registrado em um Servidor de Nomes como sendo remotamente acessvel, um cliente pode pesquisar esse servio e receber uma referncia que permita utilizar o mesmo (isto , chamar seus mtodos).

RMI - Remote Method Invocation

RMI consiste em chamada remota de procedimentos em Java (onde as operaes so representadas por mtodos). Chamada Remota de Procedimento (RPC) ou Invocao Remota de Mtodo (RMI) ou Chamada Remota de Funo. Mtodo de transferncia de controle de parte de um processo para outra parte

RMI - Remote Method Invocation

Como ocorre em RPC, o empacotamento dos dados tratado pelo RMI. O programador no precisa se preocupar com a transmisso dos dados sobre a rede.

RMI - Remote Method Invocation

RMI tambm no exige que o programador domine qualquer linguagem particular para definio de interfaces, porque todo o cdigo de rede gerado diretamente a partir das classes existentes no programa.

RMI - Remote Method Invocation Java RMI: Arquitetura


A arquitetura de Java RMI dividida em trs camadas: -A camada de stub/skeleton oferece as interfaces que os objetos da aplicao usam para interagir entre si. -A camada de referncia remota responsvel por criar e gerenciar referncias para objetos remotos; -A camada de transporte implementa o protocolo que especifica o formato de solicitaes enviadas aos objetos remotos pela rede.

RMI - Remote Method Invocation

Arquitetura de camadas de RMI.

RMI - Remote Method Invocation

A execuo da aplicao clienteservidor em RMI requer, alm da execuo da aplicao cliente e da execuo da aplicao servidora, a execuo do Servidor de Nomes de RMI.

RMI - Remote Method Invocation


1)Uma vez que um servidor tenha registrado (bind ou rebind) o seu servio RMI ele ir ento aguardar por uma requisio RMI de clientes. Associando a cada servio de registro realizado est um nome (representado como uma string), para permitir que clientes selecionem o servio apropriado.

RMI - Remote Method Invocation

Se um servio mover de um servidor para um outro, o cliente necessita apenas consultar (look up) o registro novamente para descobrir a nova localizao. Essa caracterstica aumenta a tolerncia falha de um sistema, pois se um servio encontra-se indisponvel devido queda de uma mquina, um administrador de sistema pode colocar no ar uma nova instncia do servio em outro sistema, registrando a nova mquina no RMI registry.

RMI - Remote Method Invocation

Um cliente RMI enviar uma mensagem RMI pra invocar um mtodo de um objeto remotamente. Antes que qualquer mtodo remoto possa ser invocado, entretanto, o cliente deve obter uma referncia do objeto remoto desejado. Isso normalmente obtido atravs da procura (look up) do servio desejando em um RMI registry.

RMI - Remote Method Invocation

A aplicao do cliente requer um nome especfico de um particular servio e recebe uma URL para o recurso remoto. O seguinte formato utilizado pelo RMI para a representao de uma referncia de um objeto remoto:
rmi://hostname:port/service_name

onde hostname representa o nome de um servidor (ou um endereo IP), port a localizao do servio na mquina servidora, e service_name uma string que descreve o servio em questo.

RMI - Remote Method Invocation

Uma vez obtido uma referncia a um objeto, o cliente pode ento interagir com o servio remoto. Os detalhes de rede dos requerimentos so completamente transparentes ao desenvolvedor da aplicao. Essa caracterstica proporcionada graas engenhosa maneira de se dividir o sistema RMI em dois componentes: STUB e SKELETON.

RMI - Remote Method Invocation

RMI - Remote Method Invocation

O objeto STUB age como um objeto PROXY, convertendo as requisies do objeto cliente local para o RMI server remoto. O objeto stub no trabalha sozinho, ele prepara uma mensagem, envia ao RMI service remoto e fica no aguardo de uma resposta que ser retornada do mtodo que foi chamado.

RMI - Remote Method Invocation

RMI - Remote Method Invocation

FIM

You might also like