comunicação. conteúdo comunicação entre processos fundamentos chamada de procedimento remoto
TRANSCRIPT
Comunicação
Conteúdo
Comunicação entre processos Fundamentos Chamada de procedimento remoto
Comunicação entre processos
A comunicação entre processos é uma das principais funcionalidades em um sistema distribuído. Uma vez que os componentes estão trabalhando cooperativamente, é importante que troquem informações para que o trabalho ocorra da maneira desejada.
Existem várias formas de comunicação entre processos, mas todas seguem alguns fundamentos básicos.
Fundamentos
Protocolos em camadaA comunicação em sistemas distribuídos nos quais os
componente são executados em maquinas disjuntas é feito a partir de troca de mensagens (isso, porque não há um meio compartilhado para comunicação).
Assim, para que os sistemas se comuniquem, mensagens tem que ser compostas, enviadas e recebidas em um protocolo (linguagem) que seja comum às partes em comunicação.
Fundamentos
Protocolos em camadaCada tecnologia pode possuir seu próprio protocolo
de comunicação. Mas, isso geraria caos e incompatibilidade entre os Sistemas. Por esse motivo, um organismo internacional (ISO - International Organization for Standardization) desenvolveu um modelo de referência para padronizar as diversas camadas envolvidas em uma comunicação via rede. Esse modelo é conhecido como OSI, ou Open Systems Interconnection Reference Model).
Fundamentos
A padronização de protocolos rotulou dois tipos básicos de protocolo:
Protocolos orientados a conexão
Nestes, antes da troca de dados, receptor e transmissor estabelecem uma conexão (virtual ou não) e podem negociar vários parâmetros da comunicação
Protocolos sem conexão
Nestes, não há conexão formal estabelecida. A troca é feita imediatamente após a formação da mensagem, não havendo espaço para negociação de parâmetros.
Fundamentos
Protocolos em camadaNo modelo OSI a comunicação é dividida em até 7
camadas/protocolos, a saber:Protocolo de camada física
Protocolo de enlace
Protocolo de rede
Protocolo de transporte
Protocolo de sessão
Protocolo de apresentação
Protocolo de aplicativo
Fundamentos
Protocolos em camadaA cada camada, cabeçalhos podem/são adicionados
à mensagem do lado receptor. Esses são decodificados do lado receptor, permitindo a comunicação entre camadas do mesmo nível em máquinas diferentes.
Os protocolos são comumente divididos em três grupos didaticamente semelhantes:
Protocolos de baixo nível
Protocolos de transporte
Protocolos de alto nível
Fundamentos
Protocolos em camadaHá ainda um outro grupo de protocolos que não
seguem propriamente o modelo OSI. São denominados protocolos de middleware e, como o nome indica, são utilizados em frameworks/aplicativos middleware.
Sendo mais complexos e variados, os aplicativos de middleware pode possuir uma diversidade de protocolos próprios. A discussão mais detalhada sobre middleware e seus protocolos será retomada mais à frente no curso.
Fundamentos
Protocolos em camada
Porém, a título de ilustração, podemos vislumbrar dois parâmetros diferentes de comunicação que podem ser oferecidos por aplicativos de middleware:
Comunicação Persistente X Comunicação Transiente
Comunicação Síncrona X Comunicação Assíncrona
Chamada de Procedimento Remoto
Remote Procedure Call (RPC)A troca de mensagens entre processos em sistemas
distribuídos feita com procedimentos send/receive exige que o programador conheça, além da arquitetura do SD, os conceitos relativos a comunicação em rede.
Para minimizar a necessidade desses conhecimentos um método foi concebido para abstrair a troca de mensagens entre processos em máquinas disjuntas. Esse método é o RPC.
Chamada de Procedimento Remoto
Característica do RPC
Permite a chamada de um procedimento em uma máquina por um programa sendo executado em outra máquina.
Em um RPC, um programa em uma máquina P, (o cliente) chama um procedimento em uma máquina Q, (o servidor) enviando os parâmetros adequados. O cliente é suspenso e a execução do procedimento começa. Os resultados são enviados da máquina Q para a máquina P e o cliente é acordado.
Chamada de Procedimento Remoto
Característica do RPC
Toda função que pode ser chamada à distância édefinida no lado do cliente por uma procedure chamada stub client.
Essa procedure recebe os parâmetros e os coloca em uma mensagem, adicionando a identificação da procedure chamada e transmite essa mensagem ao processo/processador servidor.
Chamada de Procedimento Remoto
Característica do RPC
O servidor, quando recebe a mensagem, procede a extração dos parâmetros e chama a procedure especificada na mensagem.
No fim da execução da procedure, é realizada a operação inversa: Colocação dos resultados e envio da mensagem de resposta ao processo cliente.
Chamada de Procedimento Remoto
Característica do RPC
A procedure que realiza essa operação é chamada de stub server. Finalmente, a procedure stub client recebe os resultados, termina e retorna o controle ao cliente .
Chamada de Procedimento Remoto
Característica do RPC
O funcionamento desse modelo coloca em jogo
cinco elementos:
O processo cliente; O processo servidor; O procedimento chamado à distância; O procedimento stub client ; O procedimento stub server.
Chamada de Procedimento Remoto
Modelo do RPC