Trabalho apresentado na Universidade Católica de Pernambuco em setembro de 2013.
Para baixar o trabalho completo com uma parte escrita para auxilio:
http://www.4shared.com/zip/-DVPuYvP/xdr.html
4. RPC (Remote Procedure Call)
• O programador não se preocupa com
detalhes da implementação remota;
• As chamadas se assemelham a de
procedimentos locais;
5. RPC (Remote Procedure Call)
• Tecnologia para implementação do
modelo cliente-servidor;
Executar um
procedimento
Resposta do servidor
9. RPC (Remote Procedure Call)
XDR
?
• Necessita de protocolo comum de
representação de dados;
10. XDR (eXternal Data Representation)
• Padrão IETF de 1995 da camada de
representação do modelo OSI;
• Não permite especificar nomes à
interfaces;
• São fornecidos um número de programa
e um de versão passados na mensagem
de requisição;
11. XDR (eXternal Data Representation)
• Apenas um parâmetro de entrada é
permitido;
• Procedimentos que necessitam de vários
parâmetros devem incluí-los em única
estrutura;
• Parâmetros de saída retornados por
único resultado;
12. XDR (eXternal Data Representation)
• Assinatura consistindo do tipo do
resultado, nome do procedimento e no
tipo de parâmetro de entrada;
• Independe da camada de transporte;
13. XDR (eXternal Data Representation)
• Número do programa = 9999;
• Número da versão = 2;
• Procedimento READ recebe por
parâmetro uma estrutura com três
componentes (referentes a arquivo);
• O resultado é uma estrutura
contendo número de bytes
retornados e dados do arquivo;
• WRITE = 1; READ = 2;
Testa disponibilidade do servidor = 0;
Exemplos de interfaces de procedimentos na XDR da Sun.
14. XDR (eXternal Data Representation)
Gera procedimentos:
Gera procedimentos:
RPCGEN
(Compilador da Sun)
• stub no cliente;
• main, despachante
e stub no servidor;
• empacotamento e
desempacotamento
de XDR;
15. XDR (eXternal Data Representation)
• Os dados são transferidos em unidades
de 4 bytes;
• Os números são transferidos na rede em
ordem dos bytes mais significativos;
18. XDR (eXternal Data Representation)
Serialização:
• Cria-se uma instância da classe
ObjectOutputStream, invocando seu
método writeObject passando o objeto
Person como argumento;
Desserialização:
• Abre-se o fluxo como ObjectInputStream,
utilizando o método readObject