You are on page 1of 7

UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE FACULDADE DE CIÊNCIAS E TECNOLOGIAS DE INFORMAÇÃO CURSO DE TECNOLOGIA E SISTEMAS DE INFORMAÇÃO

Sistemas Distribuídos JAVA RMI

Discentes: Casimiro Hilario Nhantumbo Ivando Atanásio Tembe

Docentes: Dr. Jonnathan Guambe Dr. Colaço Nhongo

Maputo, Outubro de 2013

.......................................................................................................................................................................................... ................................................................................................................................................................... 3 RMI .........................................................................................Índice Introdução................................... 5 Stub ....................... 7 ................. cada objeto deve ter um "skeleton" correspondente ao "stub"....................................... 5 Nomeando objetos remotos ..................................................................................................... 7 Vantagens ....................... 6 Vantagens e desvantagens do RMI ...................................................................................................................................................... 7 Desvantagens ................ 6 Skeleton ....................................................................................................................................................................................................................................................................... 4 Funcionamento ....................... O "skeleton" é responsável por enviar a chamada ao objeto remoto................................................................................ objetos e métodos remotos ............... 6 Na "Virtual Machine" remota......................................... 4 Criação de interfaces.....................................................................................................................

rmi e seus sub-pacotes. Abordaremos também acerca do stubs e do skeleton que exercem uma função muito importante na troca de mensagem entre o cliente e o servidor. .Introdução O presente trabalho ira abordar sobre a invocação remota de métodos em Java. o seu funcionamento. vantagens e desvantagens de uso. Através da utilização da arquitetura RMI. A RMI fornece ferramentas para que seja possível ao programador desenvolver uma aplicação sem se preocupa com detalhes de comunicação entre os diversos possíveis elementos (hosts) de um sistema. independentemente da localização dessas máquinas virtuais. é possível que um objeto ativo em uma máquina virtual JAVA possa interagir com objetos de outras máquinas virtuais JAVA. Esse sistema de objetos distribuídos faz parte do núcleo básico do JAVA desde a versão jdk.com. sua API sendo especificada através do pacote java. RMI é uma das abordagens da plataforma JAVA para prover as funcionalidades de uma plataforma de objetos distribuídos. desde a sua definição básica.

ele fornece os mecanismos necessários para carregar o código dos objetos remotos. e faz um "BIND" em uma porta onde este objeto espera por clientes que invoquem seus métodos. RMI fornece os mecanismos para que a comunicação entre cliente e servidor seja possível. Funcionamento O funcionamento de RMI consiste basicamente em dois programas.  Se comunicar com objetos remotos . onde um seria o cliente e outro o servidor. Já o cliente referencia remotamente um ou mais métodos de um objeto remoto.Como o RMI permite que objetos remotos sejam passados como parâmetros numa função. portanto. executar as seguintes ações:  Localizar objetos remotos . . para o programador. Esse tipo de aplicação geralmente é denominada como Aplicação de Objeto Distribuído. O servidor instancia objetos remotos. que se chama "rmiregistry". que precisam.RMI O remote method invocation é uma interface de programação que permite a execução de chamadas remotas em aplicações desenvolvidas em JAVA. os referencia como um nome. ou ela pode passar e retornar referências aos objetos remotos como parte de sua operação normal.  Carregar "bytecodes" de objetos móveis .Uma aplicação pode usar dois mecanismos para obter referências de objetos remotos. a comunicação remota é semelhante a uma chamada ao método localmente.Os detalhes de comunicação entre objetos remotos são tratados pelo RMI. Ela pode registrar o objeto remoto com a ferramenta de nomes do RMI. ou seja. segundo a arquitetura cliente-servidor.

a interface declara métodos.Remote. Nomeando objetos remotos Os clientes acham os serviços remotos usando o serviço de nomeação ou diretório ( naming or directory). por definição na porta 1099. Em seguida ele exporta aquele objeto para o RMI. Em um host. primeiramente criando o objeto que implemente aquele serviço. O próprio RMI inclui um simples serviço. com um nome público. objetos remotos são objetos com métodos que podem ser invocados entre Java VM. O método retorna uma referência remota para o objeto do serviço. chamado de RMI Registry. Para se tornar um objeto remoto. O servidor registra o objeto no RMI Registry.rmi.RemoteException. incluindo o JNDI. O serviço de nomeação ou diretório executa como um endereço bem formado (host:port). O RMI Registry executa em cada máquina que hospeda o serviço remoto. um programa servidor cria um serviço remoto. a classe deve implementar uma interface remota:   A interface remota deve estender a interface java. Todo método em sua declaração deve conter no throws a exceção java. O RMI pode usar diferentes tipos de serviços de diretório.Criação de interfaces. que o cliente usa para requisitar o registro. objetos e métodos remotos Toda aplicação JAVA é construída a partir de interfaces e classes. As classes implementam os métodos declarados na interface e possivelmente conterá métodos adicionais. No lado do cliente o RMI Registry é acedido através da classe estática Naming. Ela provém do método lookup( ). A URL é formada como seguinte: rmi://[host_name]:[port_number]/[service_name] . Esse método aceita a URL que especifica o nome do servidor e o nome do serviço desejado. Numa aplicação distribuída. Quando o objeto é exportado o RMI cria um serviço que aguarda as conexões do cliente.rmi.

Escrever e transmitir os parâmetros para a "Virtual Machine" remota. Ler os resultados retornados. cada objeto deve ter um "skeleton" correspondente ao "stub". Skeleton Na "Virtual Machine" remota. Quando um objeto local invoca um método num objeto remoto. O "skeleton" é responsável por enviar a chamada ao objeto remoto. Passos do "skeleton" quando recebe uma chamada:    Ler os parâmetros enviados pelo "stub" Invocar o método no objeto remoto Escrever e transmitir o resultado ao objeto que executou a chamada call skeleton RMI Client Stub RMI Server return . Esperar pelos resultados da invocação do método. com o objetivo de simplificar o mecanismo de realização da chamada. Retornar os valores ao objeto que executou a chamada. O "stub" esconde a serialização dos parâmetros e toda a comunicação em nível de rede. Passos durante a invocação do "stub":      Iniciar conexão com a "Virtual Machine" que contém o objeto remoto. o "stub" fica responsável por enviar a chamada ao método para o objeto remoto.Stub O "stub" funciona semelhante a um proxy para o objeto remoto.

. Somente entre programas JAVA. caso a classe desse objeto não seja definida máquina virtual do recetor. Sintaxe da chamada de método local é igual à sintaxe da chamada de método remoto.Vantagens e desvantagens do RMI Vantagens      Comunicação orientada a objetos. Capacidade de baixar o código de um objeto. sem a necessidade de recompilar. Desvantagens    Como RMI usa comunicação síncrona. Rápida difusão com a plataforma Java. causando restrições de acesso e desempenho. o cliente não pode fazer outra tarefa enquanto espera a resposta do servidor. São necessárias configurações adicionais no firewall. O código da aplicação pode ser atualizado dinamicamente.