Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza
Continuando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor os seguintes assuntos: Modelo Cliente-Servidor: comunicação orientada por mensagem Comunicação transiente; Comunicação persistente; Modelo Cliente-Servidor: comunicação orientada por fluxo Mídia contínua e mídia discreta; Modo síncrono; Modo isócrono; Estudos de casos e exercícios; Atividades extras de avaliação;
Continuando o assunto de interação clienteservidor, abordaremos na segunda parte os dois modelos de orientação da comunicação; Ambos possuem distinções no modo de realizar o processo de comunicação e peculiaridades na organização da informação, através de soluções diversificadas que permitem o uso dos protocolos; Osprotocolostantosãoosespecíficosparaousode processos, como também os protocolos das camadas das redes de acesso e infraestrutura; Os dois modelos são comunicação orientada a mensagem e comunicação orientada por fluxo;
Voltando aos RPC, viu-se que as invocação de objetos contribui na comunicação em SDS; Em situações específicas não podemos garantir que os dados são transferidos/recebidos por uma chamada RPC quando não se sabe que ambos os lados estão executando ao mesmo tempo; Desta forma é necessário prover o controle no tráfego dos dados e informar ao servidor e ao cliente o que deve ser feito e como deve ser feito a devida operação em um determinado momento; Para isso as redes de acesso e os SDS utilizam o termo mensagem;
As mensagens provém a comunicação em diferentes níveis de infraestruturas, sendo pequenos blocos de informações invocados em situações diversas dependendo em que parte do processo de comunicação está ocorrendo; São representadas por chamadas durante as requisições e respostas de acordo com o modelo de interfaces adotado para este tipo de serviço; Neste caso, quando adota-se a analogia de invocação de mensagens, através de códigos dentre o emissor e o receptor, são utilizadas orientações por mensagem. Tem-se basicamente dois tipos:
O primeiro tipo de comunicação com o uso de mensagens é a comunicação transiente orientada a mensagem. Este tipo de comunicação por mensagens utiliza os preceitos dos protocolos da camada de transporte das redes de acesso; As trocas de mensagens entre os processos e aplicações são realizadas através de portas que podem ser definidas como interfaces; Uma das principais interfaces utilizadas atualmente é a Berkeley [1970] com o uso de sockets, representando para cada aplicação os modelos de programação e interfaces adotadas nos processos;
Um socket [soquete em PT-BR] é um terminal de comunicação para qual a aplicação pode escrever dados que devem ser enviados pela rede subjacente edoqualpodelerdadosquechegam[ip+porta]; Eles formam uma abstração propriamente dita de como são providas as conexões por mensagens utilizadas pelo sistema operacional para um protocolo de transporte específico TCP como ex.; Os servidores executam as quatro primeiras primitivas, chamadas de serviço nos protocolos. Cada mensagem enviada pelo S.O. e ao protocolo representa o recurso que deve ser invocado;
Alguns exemplos de chamadas por mensagens utilizadas dentre os protocolos e os soquetes são: Primitiva Socket Bind Listen Accept Connect Send Receive Close Significado Criar novo terminal de comunicação Anexe um endereço local ao socket Anuncia a disposição de aceitar Bloqueie o chamador até chegar uma requisição de comunicação Tente estabelecer uma conexão ativamente Envie alguns dados pela conexão Receba alguns dados pela conexão Tente estabelecer uma conexão
Além desse tipo de troca de mensagens com o uso de soquetes, existe um semelhante em alguns aspectos, que não entraremos em detalhes chamado de interface de troca de mensagens[mpi]; Também utiliza a terminologia de invocações por primitivas e seus devidos significados de atividades para comunicação entre processos; Porém se analisarmos por um certo lado, vimos que a comunicação de aplicações e componentes não só realizada por protocolos se não possuir implementado dentre suas camadas o software comum de adaptação;
A comunicação persistente orientada a mensagem é uma classe de serviços de middleware geralmente conhecida como sistemas de enfileiramento de mensagens, ou middleware orientado a mensagens; O enfileiramento de mensagens proporcionam suporte para comunicação assíncrona persistente. O objetivo é oferecer a capacidade de armazenamento de médio prazo para mensagens sem que o emitente/receptor estejam ativos; Utiliza o modelo de enfileiramento de mensagens para proporcionar um envio e recebimento sem a necessidade de dependências;
A ideia básica que fundamenta um sistema de enfileiramento de mensagens é que aplicações se comunicam com mensagens em filas específicas; Essas mensagens são repassadas por uma série de servidores de comunicação e, a certa altura, entregues ao destinatário, mesmo que ele não esteja em funcionamento na entrega da mensagem; Na prática, os servidores de comunicação estão conectados uns aos outros quando a mensagem é transferida a um servidor destinatário. Cada aplicação tem sua fila particular para qual outras aplicações podem enviar mensagens;
Remetente em execução Remetente em execução Receptor em execução Arquitetura de enfileiramento de mensagens Receptor passivo
O outro modelo de comunicação adota uma perspectiva diferente no uso de mensagens e pedaços dispersos em filas como unidades de informação independentes; A temporização neste caso exerce um papel crucial diferenciando um pouco quanto à atividade e possibilidade de transmissão e recepção que possa ser interrompida em intervalos de tempo; Na comunicação orientada a fluxo a base de toda a conexão de informações está fortemente acoplada e dependente do tempo em execução com fluxos contínuos de envio e recebimento de informações;
A base para troca de informações dependentes do tempo costuma ser denominado suporte para mídia contínua onde a mídia se refere aos meios pelos quais a informação é transmitida, nos quais estão incluídos diversos meios; Dentre esses meios estão armazenamento, transmissão, recepção e representação. Para cada tipo de dado ou informação específica ou variada são utilizadas continuamente a mesma codificação; Em mídias contínuas, as relações temporais entre diferentes itens de dados são fundamentais para interpretar corretamente o que os dados significam;
Um exemplo clássico é a questão de um fluxo de áudio e vídeo pela internet ou em sistemas distribuídos de redes de altas velocidades, em que a taxa de dados precisa ser ininterrupta; Ao contrário da mídia contínua, a mídia discreta [representação] é caracterizada pelo fato de que as relações temporais entre itens de dados não são fundamentais para interpretar dados; Exemplos típicos de mídias discretas são representações de textos e imagens estáticas, mas também código-objeto ou arquivos executáveis; Para isso, considera-se os fluxos de dados;
Para capturar troca de informações dependentes de tempo, em geral os sistemas distribuídos fornecem suporte para fluxo de dados; Umfluxodedadoséumasequenciadeunidadesde dados que podem ser aplicados às mídias discretas, bem como às mídias contínuas; Exemplos comuns discretos são pipes Unix ou conexões TCP/IP orientados a bytes, diferenciando dareproduçãodearquivosdeáudiovia web,ouem dispositivos de hardware; Para isso os fluxos são divididos pelo modo de transmissão assíncrono e síncrono;
Para o modo síncrono há um certo atraso fim-a-fim definido para cada unidade em um fluxo de dados, também chamado de delay, retardo ou lag; Não há a preocupação de dados, importando-se apenas que o dado foi transmitido e recebido não ultrapassando o tempo limite; Já para o modo de transmissão isócrono é necessário que o tempo certo e a harmonia sejam mantidas para evitar possíveis problemas futuros; Ambos os modos dependem ainda dos fluxos simples que é uma única sequencia de códigos, ou de fluxos compostos, que são códigos aninhados;
Para finalizar nossa aula é importante não esquecer que os fluxos devem prover qualidade de serviços [QoS] de acordo com sua imposição. A variância do recurso, na qualidade de sua execução exerce diretamente resultados não esperados, etc.; A sincronização é inevitável para manter a ordem do sistema, além de uma comunicação coesa para distribuição em multicasting para os dispositivos; A comunicação é importante para a formação do processo em um nível mais baixo [infraestrutura] estabelecendo uma sequencia hierárquica de passos e fatores que devem ser analisados;
Próxima aula iniciaremos o Módulo 04; Baixem o material no Clube Nabuco; Também disponível no site: http://hugovlsouza.com Dúvidas entrem em contato: hvlsouza@gmail.com ou pelas redes sociais: Facebook: http://facebook.com/hugovlsouza1