Escolar Documentos
Profissional Documentos
Cultura Documentos
Roteiro da Aula
www.edeyson.com.br
RPC
Chamada Remota a Procedimento
RPC
Encapsula a troca de mensagens em um conceito usual da programao centralizada Conceito simples
Problemas:
Passagem de parmetros e resultados entre espaos de endereamento de memria diferentes Formato dos dados em diferentes plataformas Falhas nas mquinas e na comunicao
www.edeyson.com.br
RPC
uma tcnica muito usada na implementao de sistemas operacionais distribudos Funcionamento de uma chamada de procedimento convencional (local): read(fd, buffer, nbytes) Ordem inversa dos parmetros na pilha.
www.edeyson.com.br
RPC
Variveis locais de main SP Variveis locais de main nbytes buffer fd endereo retorno Variveis locais de read Variveis locais de main SP
SP
www.edeyson.com.br
RPC
Funcionamento de RPC
Como fazer uma RPC transparente? Marshaling
Empacotamento de Parmetros
www.edeyson.com.br
RPC
Stub do cliente
empacota desempacota
Stub do servidor
chamada
chamada
Cliente
retorno desempacota empacota
Servidor
retorno
Kernel
Kernel
Mquina do cliente
8
Mquina do servidor
www.edeyson.com.br
RPC
www.edeyson.com.br
RPC
10
www.edeyson.com.br
11
www.edeyson.com.br
RPC
Ncleo
Ncleo
Mquina do cliente
Mquina do servidor
12
www.edeyson.com.br
RPC
Passagem de Parmetros
Stubs fazem o marshaling de parmetros
Empacotamento Converso de formatos
Representao de Dados
Arquiteturas diferentes:
Cdigos de caracteres
ASCII, EBCDIC
13
www.edeyson.com.br
RPC Solues:
Usar um formato intermedirio (forma cannica)
14
www.edeyson.com.br
RPC
15
www.edeyson.com.br
RPC
Passagem de Parmetros por Referncia (Ponteiros)
Uso de Cpia e Restaurao
O Stub do servidor recebe e desempacota a mensagem
Cria uma rplica da varivel em seu espao de endereamento Chama o servidor, passando como parmetro um ponteiro para sua varivel Empacota o valor de sua varivel e envia ao Stub do cliente Ao receber a mensagem de resposta com a varivel modificada, o Stub do cliente a restitui ao cliente
16
www.edeyson.com.br
RPC
Passagem de Parmetros por Referncia (Ponteiros)
Uso de Cpia e Restaurao
Uma das cpias pode ser economizada quando o parmetro apenas uma entrada, ou apenas uma sada para o servidor
17
www.edeyson.com.br
STUBs
Os Stubs (do cliente e do servidor) so cdigos que encapsulam a comunicao entre processos e so gerados automaticamente a partir de uma especificao
IDL
Linguagem de Definio de Interface Independe de plataforma ou linguagem
18
www.edeyson.com.br
STUBs
[ uuid (12345678-1234-1234-1234-123456789ABC), version(1.0) ] interface OperacoesH { long soma([in] int a, [in] int b); long mult([in] int a, [in] int b); void maiuscula([in, out, string] char * s); }
19
www.edeyson.com.br
MIDL
20
www.edeyson.com.br
MIDL
21
www.edeyson.com.br
MIDL
22
www.edeyson.com.br
Ligao Dinmica
Um processo BINDER responsvel pela ligao O servidor RPC exporta a sua interface para o BINDER O cliente importa a verso do servidor atravs do BINDER Bastante flexvel
23
www.edeyson.com.br
24
www.edeyson.com.br
25
www.edeyson.com.br
26
www.edeyson.com.br
27
www.edeyson.com.br
O cliente pode estar usando uma verso antiga da Interface, no disponvel no servidor
UUID do cliente diferente da UUID do servidor 0x6b5 Erro no BINDER
28
www.edeyson.com.br
29
www.edeyson.com.br
30
www.edeyson.com.br
31
www.edeyson.com.br
32
www.edeyson.com.br
At Most Once
Termina indicando falha
33
www.edeyson.com.br
34
www.edeyson.com.br
35
www.edeyson.com.br
36
www.edeyson.com.br
37
www.edeyson.com.br
38
www.edeyson.com.br
39
www.edeyson.com.br
RMI
RMI
Aplicao RMI
Servidor Cliente
41
www.edeyson.com.br
RMI
Requisitos das Aplicaes:
Localizar Objetos Remotos Comunicao com objetos remotos
Encapsulamento de detalhes Comunicao remota Similar a chamada padro do Java
42
www.edeyson.com.br
RMI
Referncia remota via Registry. Servidor chama o registry para associar (bind) um nome ao objeto remoto. Cliente procura o objeto remoto por nome no registry do servidor e invoca um mtodo. Um servidor Web pode ser usado para transferncia de bytecodes entre o cliente e o servidor.
43
www.edeyson.com.br
RMI
Vantagens da Carga Dinmica de Cdigo
Download de bytecodes
Classe no definida na VM do receptor. RMI passa objetos por tipo real Mantm comportamento Introduo de tipos dinamicamente numa VM remota
44
www.edeyson.com.br
45
www.edeyson.com.br
RMI
Execuo de Mtodo Remoto
46
www.edeyson.com.br