Mostrando postagens com marcador rpc. Mostrar todas as postagens
Mostrando postagens com marcador rpc. Mostrar todas as postagens

quinta-feira, 24 de maio de 2012

RPC - Remote Procedure Call


       Chamada remota de procedimento (RPC, acrônimo de Remote Procedure Call) é uma tecnologia de comunicação entre processos que permite a um programa de computador chamar um procedimento em outro espaço de endereçamento (geralmente em outro computador, conectado por uma rede). O programador não se preocupa com detalhes de implementação dessa interação remota: do ponto de vista do código, a chamada se assemelha a chamadas de procedimentos locais.
       
       RPC é uma tecnologia popular para a implementação do modelo cliente-servidor de computação distribuída. Uma chamada de procedimento remoto é iniciada pelo cliente enviando uma mensagem para um servidor remoto para executar um procedimento específico. Uma resposta é retornada ao cliente. Uma diferença importante entre chamadas de procedimento remotas e chamadas de procedimento locais é que, no primeiro caso, a chamada pode falhar por problemas da rede. Nesse caso, não há nem mesmo garantia de que o procedimento foi invocado.


_____________




quarta-feira, 23 de maio de 2012

Exemplo RPC: JRMI

  
  O RMI (Remote Method Invocation) é uma interface de programação que permite a execução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java. É uma das abordagens da plataforma Java para prover as funcionalidades de uma plataforma de objetos distribuídos. Esse sistema de objetos distribuídos faz parte do núcleo básico de Java desde a versão JDK 1.1, com sua API sendo especificada através do pacote java.rmi e seus subpacotes.

    Através da utilização da arquitetura RMI, é possível que um objeto ativo em uma máquina virtual Java possa interagir com objetos de outras máquinas virtuais Java, independentemente da localização dessas máquinas virtuais.
A API RMI fornece ferramentas para que seja possível ao programador desenvolver uma aplicação sem se preocupar com detalhes de comunicação entre os diversos possíveis elementos (hosts) de um sistema.


Fonte: Wikipedia







terça-feira, 22 de maio de 2012

Rpc Básico

Chamada Remota a Procedimento

Modelo de passagem de mensagem onde uma requisição e fica no aguardo da obtenção da resposta.

Objetivo:

  • Interface similar com uma chamada de procedimento local.
  • Oferecer interface amigável para a programação.
  • É uma técnica muito usada na implementação de sistemas operacionais distribuídos






Exemplo de utilização de RPC

Suponha que você esteja utilizando uma conexão via satélite para fazer a entrada de dados em um aplicativo CA-Clipper que esteja instalado em um Servidor Terminal do outro lado do mundo. Como você sabe, o Telnet envia cada tecla que você pressiona para o servidor e, considerando que o satélite pode ter um delay de mais de um segundo, imagine o tempo que você levaria para digitar meia dúzia de dados.
Com o RPC, você pode programar o Terminal para que execute toda a leitura dos dados na estação de trabalho do Cliente e somente envie-os para o Servidor Terminal quando todos os campos necessários ao processamento estejam preenchidos. Isto faz com que o usuário experimente o delay do satélite apenas ao final do preenchimento dos dados, pois durante a digitação, todo o processamento estará ocorrendo localmente na estação de trabalho.

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.