PHP banco de dados web
Sistemas Distribuídos
3. Comunicação em Sistemas Distribuídos
3.1.Troca de mensagens
As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas explicitas de comunicação: send(destino, mensagem)
envio da mensagem para o destino
receive(origem, mensagem) recebimento da mensagem enviada pela origem
As primitivas acima podem ser classificadas do seguinte modo:
a) Forma de comunicação
a.1) Direta send: há indicação do processo receptor. send(process, msg) receive: há indicação do emissor. receive(process, msg)
a.2) Indireta send: envio para uma porta ou mailbox sem o conhecimento de qual será o receptor. send(mailbox, msg) receive: obtenção da mensagem guardada no mailbox, possivelmente desconhecendo a identidade do processo emissor. receive(mailbox, msg)
b) Forma de Sincronização
b.1) Síncrono ou Bloqueante
Send: espera até que a mensagem seja recebida pelo receptor.
Receive: aguarda até a mensagem estar disponível
c) Assíncrona ou Não Bloqueante
Send: envia a mensagem mas não espera até que a mensagem seja recebida pelo receptor.
Receive: se a meensagem estiver disponível, recebe a mensagem, caso contrário continua o processamento retornando uma indicação de que a mensagem não estava disponível.
DINF/NCT/UNIR/2001−2
Sistemas Distribuídos
Um sistema pode possuir diferentes combinações desses tipos de primitivas, sendo que um sistema de comunicação passa a ser conhecido como síncrono se ambas as primitivas (send, receive), forem do tipo bloqueante. Por outro lado, um sistema de comunicação é dito assíncrono se pelo menos uma das primitivas for assíncrona.
A principal desvantagem dessa abordagem é o baixo nível de abstração que permite apenas a modelagem de troca indireta de informação entre processos.
3.2Modelo Cliente/Servidor
É um paradigma de programação que representa as interações entre os processos e as estruturas do sistema.