segunda-feira, 21 de maio de 2012

Semantica de transporte RPC

Transporte RPC

O RPC pode ser implementado nos protocolos de transporte TCP ou UDP, a aplicação deverá tomar cuidados sobre o tipo de protocolo que o RPC vai utilizar, pois o RPC não implementa nenhuma forma de confiabilidade. Se o envio for através de um protocolo TCP (confiável) todas as preocupações quanto ao tipo de confiabilidade já são eliminadas, pois o protocolo TCP já possui os serviços de segurança necessários. Caso o envio seja através de um protocolo UDP (não confiável), alguns mecanismos de timeout, detecção de duplicatas e retransmissão terão que ser implementados, pois esses serviços não são providos pelo RPC.

Devido à independência da camada de transporte, o protocolo RPC não modifica a semântica das chamadas remotas, nem seus requisitos de execução. A semântica pode ser inferida a partir da camada de transporte em uso.

A maioria dos serviços de RPC são orientados a UDP, porque são baseados em requerimentos de curta-duração. Usando UDP força que a chamada de RPC contenha suficiente informação de contexto para sua execução independente de qualquer outro requerimento de RPC, já que os pacotes UDP podem chegar em qualquer ordem.

* Time out:
Quando uma chamada de RPC é realizada, o cliente deve especificar um período de timeout no qual a chamada deve se realizar, Se o servidor estiver sobrecarregado ou desligado, a chamada remota não será executada antes do fim do timeout. A ação tomada no timeout do RPC varia de aplicação para aplicação, umas procuram outro servidor outras mandam de volta a chamada de RPC.

Nenhum comentário:

Postar um comentário