RMI - Remote Method Ivocatio Fote: Capítulo 5 do livro texto Prof Starch Souza
RMI Itrodução RMI Remote Method Ivocatio Permite que uma programa cliete possa ivocar métodos de objetos remotos em um programa servidor, exatamete, como se fossem locais; Cada objeto remoto implemeta uma Iterface Remota, que especifica os métodos que os clietes podem ivocar; 2
RMI RMI - Arquitetura Para o desevolvedor, o cliete se comuica diretamete com o servidor; Porém, essa comuicação é realizada através dos seguites compoetes: Proxy Dispatcher / Skeleto Módulo de referêcia remota Módulo de comuicação 3
RMI RMI - Arquitetura Programa Cliete Proxy Módulo de Referêcia Remota Módulo de Comuicação Programa Servidor Dispatcher / Skeleto Módulo de Referêcia Remota Módulo de Comuicação RMI 4
RMI RMI Arquitetura Proxy Quado o cliete executa a ivocação de um método remoto, esta chega diretamete ao proxy. Torar a ivocação de método remoto trasparete para os clietes. Ecamihar a ivocação de um método para um objeto remoto através de uma mesagem de request. Empacotar (marshallig) os argumetos e desempacotar (umarshallig) os valores de retoro dos métodos remotos. 5
RMI RMI Arquitetura Dispatcher Recebe a mesagem de requisição, selecioa o método adequado o skeleto e repassa a requisição recebida. Skeleto Desempacota (umarshallig ) os argumetos presetes a mesagem de request. Ivoca o método o objeto remoto. Empacota (marshallig ) o resultado e o isere uma mesagem de reply. Ecamiha a mesagem de reply ao proxy que o ivocou. 6
RMI RMI Arquitetura Módulo de referêcia remota seu pricipal objetivo é criar e gereciar as referêcias de objetos remotos (ROR). 7
RMI RMI Arquitetura Módulo de comuicação dois módulos de comuicação cooperam para executar o protocolo requisição-resposta, o qual trasmite mesages de requisição e resposta etre o cliete e o servidor. 8
Java RMI Oferece o suporte ecessário para implemetação de objetos distribuídos a Liguagem Java. 9
Java RMI Implemetado o lado servidor Para criar um objeto remoto deve-se: 1. Defiir uma iterface que esteda a iterface java.rmi.remote; Cada método da iterface deve laçar exceções do tipo java.rmi.remoteexceptio 2. Costruir uma classe que implemeta a iterface remota; Essa classe deve esteder a classe java.rmi.uicastremoteobject; 10
Java RMI Implemetado o lado servidor Para criar um objeto remoto deve-se (Cot.): 3. Stub (Proxy) e Skeleto devem ser costruídos para que o objeto remoto seja ativado; A ferrameta rmic (forecida com o JDK) deve ser usada para gerar o stub (proxy) e o skeleto a partir da classe que implemeta a iterface remota; 5. Implemetar uma classe (Server) que registra o objeto remoto o Serviço de Nomes (Viculador) e este poderá ser ivocado; 11
Java RMI Implemetado o lado cliete O cliete deve possuir uma referêcia do objeto remoto ates de realizar a ivocação; Essa referêcia é coseguida através de uma cosulta ao Serviço de Nomes (viculador); O método lookup( ), do serviço de omes, recebe o ome e devolve a referêcia do objeto remoto procurado; Ivocações aos métodos remotos podem ser realizadas. 12
Java RMI O serviço de omes Namig: Essa classe utiliza o serviço de omes ou viculador (RMIRegistry) para permitir a maipulação de objetos remotos através de sitaxe URL (rmi://host:port/ame). A porta default do serviço de omes é 1099; Bid( ) - mapear uma referêcia de objeto em um ome de objeto remoto; Lookup( ) - obter uma referecia de um determiado objeto remoto; 13
Java RMI Java RMI Cliete Cliete 2. lookup( ) RMIRegistry (Serviço de Nomes) 3. Resposta do lookup( ) 1. Bid( ) Servidor Objeto Remoto Servidor Stub (proxy) 4. Ivocação de métodos remotos Skeleto 14