Comunicação Inter-Processos
API PARA PROTOCOLOS INTERNET
COMUNICAÇÃO CLIENTE-SERVIDOR
COMUNICAÇÃO DE GRUPO
Dois Padrões de Comunicação
 Protocolos para suportar os dois padrões de
comunicação, mais comumente usados em sistemas
distribuídos:


Comunicação Cliente-Servidor
Comunicação de Grupo
Cliente-Servidor
 Mensagens request-reply proporcionam a base para
chamada de procedimento remoto (RPC) e invocação
de métodos remotos (RMI) .
 Uma mesma mensagem é enviada para diversos
processos.
Implementação
1. UDP Datagram Communication
(User Datagram Protocol)
2. TCP Stream Communication
(Transmission Control Protocol)
3. IP Multicast (implementação de
comunicação de grupo)
Comunicação
A comunicação entre processos remetente- destino pode ser:
Síncrona:
processos são sincronizados a cada
mensagem. Execução de Rendez-Vouz (o
primeiro que chega, espera pelo outro).
Assíncrona:
a operação send é não bloqueante,
no sentido que o processo-remetente pode
prosseguir assim que a mensagem tenha sido
copiada para um buffer local e a transmissão da
mensagem ocorre em paralelo com processo
remetente.
Sockets
 Ambas as formas de comunicação (UDP, TCP) usam
socket, o qual provê um ponto final para a
comunicação entre processos.
 A comunicação consiste em transmitir uma
mensagem entre um socket de um processo e um
socket em outro.
Socket
 Um par ( IP, porta ).
 As mensagens enviadas a um endereço IP e a uma
porta, só podem ser recebidas por um processo cujo
socket esteja associado a esse IP e a esse número de
porta.
Comunicação TPC Stream
 A comunicação consiste num fluxo de bytes, no qual
dados podem ser lidos (receive) e escritos (send).
 Estabelecimento de conexão.
 Controle de Fluxo: a velocidade dos processos é
combinada.
Comunicação TCP Stream (Fluxo)
 Bloqueio: Os dados gravados em um fluxo são
mantidos em uma fila no socket de destino. Quando
o receptor tenta ler, obterá dados ou será bloqueado
até que dados existam para ser lidos.
 Threads: Quando um servidor aceita uma conexão,
ele cria uma nova thread para se comunicar com o
novo cliente.
Comunicação de Grupo
 A troca de mensagens aos pares não é a melhor
forma de comunicação de um processo com um
grupo de outros processos.
 Neste caso, o uso de difusão seletiva (multicast) é
mais apropriado.
Comunicação de Grupo
 Trata-se de uma operação que permite o envio uma
única mensagem para cada um dos membros de um
grupo de processos, de forma que os membros do
grupo ficam totalmente transparentes (parece não
existir, mas existe) para o remetente.
Comunicação de Grupo
 Uso Comum: Propagação da notificação de evento.
Ou seja, um remetente notifica os processos de um
grupo quando algo acontece.
 Implementação: IP Multicast
Permite que o remetente transmita um único
datagrama IP para um conjunto de computadores
que formam um grupo de multicast.
Comunicação de Grupo
 O remetente não conhece a identidade dos
destinatários individuais e nem o tamanho do grupo.
 Um grupo multicast é identificado por um endereço
IP classe D, ou seja, um endereço cujos primeiros 4
bits é 1110 ( E em Hexadecimal) em IPv4.
Comunicação de Grupo
4
28
Multicast Address
 Classe D (Multicast): 224 à 239 no octeto 1
0 à 255 no octeto 2 e 3
1 à 254 no octeto 4
224.0.0.0 à 239.255.255.25

Os datagramas IP são enviados a computadores – as portas
pertencem aos níveis TCP e UDP.
 Para a programação de aplicativos, o Multicast IP está
disponível por meio de UDP.
Comunicação de Grupo
 API Java
MulticastPeer (classe)
MulticastSocket subclasse de DatagramSocket
InetAddress
joinGroup(group)
DatagramPacket
send(messageOut)
receive(messageIn)
leaveGroup(group)
SocketException
IOException
Download

Comunicação Inter