Upload
arthur-emanuel
View
390
Download
3
Embed Size (px)
DESCRIPTION
Objetos Distribuídos e Invocação Remota Java RMI
Citation preview
1
SISTEMAS DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
ARTHUR EMANUEL DE OLIVEIRA CAROSIA
2
INTRODUÇÃO
RPC:
• chamada de procedimento remoto;• programas clientes chamarem procedimentos de programas
servidores.
RMI:
• invocação de método remoto;• objetos de diferentes processos se comunicam;• objeto que está em um processo pode invocar métodos de
um objeto que está em outro processo.
3
INTRODUÇÃO
Middleware
Software que fornece um modelo de programação acima dos blocos de construção básicos de processos e passagem de mensagens.
Fornece: invocações a métodos remotos, transparência da localização e independência dos detalhes dos protocolos de comunicação, sistemas operacionais e hardware.
4
INTERFACES EM SISTEMAS DISTRIBUÍDOS
5
INTERFACES EM SISTEMAS DISTRIBUÍDOS
Para controlar as interações entre módulos em sistemas distribuídos, são definidas interfaces para cada módulo.
6
INTERFACES EM SISTEMAS DISTRIBUÍDOS
Interfaces de serviço:
• Cada servidor fornece um conjunto de procedimentos que estão disponíveis para uso dos clientes.
Interfaces remotas:
• Especifica os métodos de um objeto que estão disponíveis para invocação por parte dos objetos de outros processos.
• Podem passar objetos com argumentos e resultados dos métodos.
7
COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS
8
COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS
9
O MODELO DE OBJETO DISTRIBUÍDOCada processo contém um conjunto de objetos, dos quais alguns podem receber invocações a métodos locais e remotos e outros somente locais.
Objetos podem invocar métodos de um objeto remoto se tiverem acesso á sua referência de objeto remoto.
Todo objeto remoto tem uma interface remota especificando quais métodos podem ser invocados de forma remota.
10
INTERFACES REMOTAS
A classe de um objeto remoto implementa os métodos de sua interface remota.
Objetos em outros processos somente invocam métodos pertencentes à interface remota.
11
IMPLEMENTAÇÃO DE RMI
12
IMPLEMENTAÇÃO DE RMI
Software RMI: camada de software – middleware – entre os objetos do aplicativo e os módulos de comunicação e de referência remota.
13
IMPLEMENTAÇÃO DE RMI• Proxy: torna a invocação do método remoto transparente ao
cliente, comportando-se como um objeto local para o invocador; mas, em vez de executar uma invocação local, ele a encaminha em uma mensagem para um objeto remoto. Existe um proxy para cada objeto remoto que um processo faz referência.
14
IMPLEMENTAÇÃO DE RMI• Despachante: um servidor tem um despachante e um
esqueleto para cada classe que representa o objeto remoto. O despachante recebe uma mensagem de requisição do módulo de comunicação e seleciona o método apropriado no esqueleto, despachando a mensagem de requisição.
15
IMPLEMENTAÇÃO DE RMI• Esqueleto: desempacota os argumentos na mensagem de
requisição e invoca o método correspondente no servente. Depois, espera que a requisição termine e empacota o resultado em uma mensagem de resposta que é enviada ao método do proxy que fez a requisição.
16
JAVA RMI
Extensão do modelo de objeto Java para dar suporte para objetos distribuídos em Java.
Permite que objetos invoquem métodos em objetos remotos usando a mesma sintaxe de invocações locais.
Mais simples construir aplicações RMI do que aplicações com RPC ou CORBA.
17
JAVA RMI
Necessita de tratar a exceção Remote Exception e implementar a interface Remote.
Exige suporte a TCP/IP e um serviço de nomes de objetos (rmiregistry), que acompanha o JAVA JDK/SDK.
• O serviço de nomes RMI Registry oferece informações sobre a localização dos objetos remotos.
• Traduz uma tabela de nomes textuais na forma //nomeComputador:porta/nomeObjeto em objetos remotos contidos no computador.
18
JAVA RMIGeração de classes proxies, despachantes e esqueletos: são geradas automaticamente por um compilador de interface.
O conjunto de métodos oferecidos por um objeto remoto é definido como uma interface Java implementada do objeto remoto.
O compilador para Java RMI gera as classes de proxy, despachante e esqueleto a partir da classe do objeto remoto.
19
INTERFACES REMOTAS NO JAVA RMI
As interfaces remotas são definidas pela ampliação de uma interface chamada Remote, do pacote java.rmi.
Os métodos disparam a exceção RemoteException, além das possíveis exceções do aplicativo.
20
INTERFACE REMOTA - CALCULADORA
21
IMPLEMENTAÇÃO DA INTERFACE – CALCULADORAIMPL
22
SERVIDOR
23
CLIENTE
24
RODANDO EXEMPLO
Javac *.java
Rmic CalculatorImpl (cria o Stub)
Rmiregistry (levanta o servidor de nomes RMI)
Java CalculatorServer
Java CalculatorClient
25
SISTEMAS DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
ARTHUR EMANUEL DE OLIVEIRA CAROSIA