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 camada
A 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 camada
Cada 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 camada
No 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 camada
A
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 camada
Há 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
Download

Apresentação 7