Sistemas Distribudos Jorge Surian jsurianuol com br Sistemas
Sistemas Distribuídos Jorge Surian jsurian@uol. com. br Sistemas Distribuídos: Comunicação: Fundamentos, Comunicação Orientada a Mensagens e a fluxo. Tipos de Protocolo. Middleware
Comunicação § Protocolos – Fundamentos – A comunicação é o “Coração” de qualquer Sistema Distribuído! » Como processos em diferentes máquinas trocam informações? –Resposta: Não é uma tarefa trivial! » Desejável obter modelos onde a complexidade da comunicação seja transparente para o desenvolvedor. 2 2
Comunicação § Protocolos – Fundamentos – Sistemas distribuídos modernos frequentemente consistem em milhares ou até em milhões de processos espalhados por uma rede de comunicação intrinsecamente não confiável, como é a Internet. – Não há em vista algo que venha a substituir os recursos de comunicação oferecidos pela rede, portanto continuará sendo intrinsecamente complicado o desenvolvimento de sistemas distribuídos em larga escala. 3 3
Comunicação § Protocolos – Fundamentos – Modelo Cliente-Servidor – Participantes são divididos em: » Servidores: implementam um serviço específico. » Clientes: solicitam ao servidor um determinado serviço e espera pela resposta. – Comportamento requisição-resposta 4 4
Comunicação § Protocolos – Fundamentos – A inexistência de memória compartilhada obriga a que toda comunicação em sistemas distribuídos ocorra por recebimento e envio de mensagens de baixo nível. – Quando um processo A deseja se comunicar com um processo B, em primeiro lugar ele monta uma mensagem em seu próprio espaço de endereço. Depois, executa uma chamada de sistema que faz com que o sistema operacional envie a mensagem pela rede até o processo desejado. – Naturalmente os processos precisam concordar quanto ao significado dos bits enviados. 5 5
Comunicação § Protocolos – Fundamentos – Vários acordos são necessários, por exemplo quantos volts significa um bit 0 e quantos um bit 1? Como o receptor sabe qual é o último bit da mensagem? Como é possível detectar que uma mensagem foi danificada ou perdida? E o que fazer quando um problema é detectado? – Seria o Modelo OSI a resposta? (a ISO- International Organization for Standardization desenvolveu o modelo OSI- Open Systems Interconnection Reference Model). 6 6
Comunicação § Protocolos – Fundamentos – Modelo OSI 7 7
Comunicação § Protocolos – Fundamentos – Modelo OSI 8 8
Comunicação § Protocolos – Fundamentos – Modelo OSI – Embora os protocolos desenvolvidos pelo modelo OSI nunca foram amplamente desenvolvidos estando atualmente mortos, mas o modelo em questão mostrou-se muito útil para compreensão redes de computadores. 9 9
Comunicação § Protocolos – Fundamentos – Modelo OSI – Num exemplo livre, criado por Tanembaum & van Steen, duas empresas negociam aquisição de determinado produto. O “chefe” da empresa compradora pede a sua “secretária” que entre em contato, através de correspondência (correio) com a “secretária” da empresa fornecedora. Todavia, com a piora do serviço do correio as secretárias resolveram passar a se comunicar por e-mail. Elas, ao assim procederem, não incomodaram suas chefias, uma vez que o protocolo que usam trata da transmissão física de pedidos, e não de seu conteúdo. Por outro lado o chefe pode alterar produtos ou quantidades destes sem afetar o trabalho das secretárias. Temos aqui duas camadas, chefes e secretárias, cada qual com seu próprio protocolo. É essa independência que torna atraentes os protocolos em camadas. 10 10
Comunicação § Protocolos – Fundamentos – Modelo OSI – Camada Física – Responsável pelo envio de bits. – Trata da padronização das interfaces elétrica, mecânica e de sinalização. – Protocolos são dependentes do meio de transmissão do link. 11 11
Comunicação § Protocolos – Fundamentos – Modelo OSI – Camada Enlace – Responsável pelo envio de frames entre os links – Característica importante: um datagrama pode ser manipulado por diferentes tipos de protocolos da camada de enlace: Ethernet (CSMA/CD), PPP – Cada protocolo diferente pode ou não implementar um conjunto de serviços. Exemplo: entrega confiável da informação 12 12
Comunicação § Protocolos – Fundamentos – Modelo OSI – Diferença entre Camada 1 e 2 – Os hubs são dispositivos burros, que operam na camada 1. Eles não entendem pacotes nem endereços de rede, simplesmente pegam os uns e zeros que recebem em uma porta e os retransmitem para todas as outras. O hub atua simplesmente como um centralizador e repetidor, não é mais inteligente que um pedaço de cabo. Ao usar um hub, as colisões continuam ocorrendo, exatamente como aconteceria se você estivesse usando uma rede antiga, com cabo coaxial. 13 13
Comunicação § Protocolos – Fundamentos – Modelo OSI – Diferença entre Camada 1 e 2 – O endereço MAC (do inglês Media Access Control) é o endereço físico da estação, ou melhor, da interface de rede. É um endereço de 48 bits, representado em hexadecimal. O protocolo é responsável pelo controle de acesso de cada estação à rede Ethernet. Este endereço é o utilizado na camada 2 (Enlace) do Modelo OSI. 14 14
Comunicação § Protocolos – Fundamentos – Modelo OSI – Diferença entre Camada 1 e 2 – Os switches, por sua vez, trabalham na camada 2, assim como as próprias placas de rede. Eles entendem frames e endereços MAC e por isso são capazes de "fechar circuitos", transmitindo os frames apenas para o micro ligado na placa correta. Cada porta é ligada a um circuito separado, que são coordenados por um controlador central, que mantém uma tabela com os endereços MAC das estações ligadas a cada porta e pode assim checar o conteúdo de cada frame e encaminhá-lo à porta correta. 15 15
Comunicação § Protocolos – Fundamentos – Modelo OSI – Diferença entre Camada 1 e 2 – Apesar disso, os switches não entendem TCP/IP. Isso é trabalho para os roteadores, que trabalham na camada 3 e tomam suas decisões baseadas nos endereços IP dos emissores e destinatários dos pacotes, tentando sempre usar a rota mais curta. 16 16
Comunicação § Protocolos – Fundamentos – Modelo OSI – Camada Rede – Redes de longa distância são constituídas de muitos nós com diferente caminhos entre eles. – Como definir um caminho entre um par origemdestino? – Roteamento é a principal tarefa da camada de rede. – Internet Protocol: protocolo sem conexão, onde pacotes são roteados de forma independente – besteffort service. 17 17
Comunicação § Protocolos – Fundamentos – Modelo OSI – Camada de Transporte – Responsável pela comunicação lógica entre diferentes processos sendo executados em diferentes hosts (fim -a-fim) – Protocolos da camada de transporte não estão implementados nos roteadores » TCP- Transmission Control Protocol » IP – Internet Protocol » UDP – Universal Datagram Protocol (IP com algumas adições) – Pode fornecer os seguintes serviços: » multiplexing/demultiplexing » transmissão confiável » garantias de banda, retardo 18 18
Comunicação 19 19
Comunicação § Protocolos – Fundamentos – Modelo OSI – Camada de Transporte – Protocolos de Transporte na Internet » Transmission Control Protocol (TCP) –Orientado a Conexão –Confiável, porém “lento” » Universal Datagram Protocol (UDP) –Sem conexão –“Rápido”, porém não confiável – A escolha está ligada as características da aplicação! 20 20
Comunicação § Protocolos – Fundamentos – Modelo OSI – Aplicação – Distinção entre aplicação para redes e protocolos da camada de aplicação. » Protocolo: pequena (talvez grande) peça de uma aplicação • Ex. 1: Aplicação WEB → HTTP • Ex. 2: Aplicação Email → SMTP – Protocolos definem: tipos de mensagens trocadas, sintaxe 21 21
Comunicação § Protocolos – Fundamentos – Modelo OSI – Sessão – Em essência, trata-se da versão aprimorada da camada de transporte. – Proporciona controle de diálogo para monitorar qual é a parte que está falando no momento considerado e fornece facilidades de sincronização. – Na prática poucas aplicações estão interessadas nessa camada, que sequer está presente na pilha de protocolos da Internet 22 22
Comunicação § Protocolos – Fundamentos – Modelo OSI – Apresentação – Distintamente das outras camadas que essencialmente desejam levar bits do remetente ao receptor preocupando-se como confiabilidade e eficiência, a camada de apresentação preocupa-se com o significado dos bits. – A intenção original dessa camada no modelo OSI era conter um conjunto de aplicações padronizadas de rede, como correio eletrônico, transferência de arquivos e emulação de terminal. 23 23
Comunicação § Protocolos – Fundamentos – Modelo OSI – Apresentação – Na prática essa camada se tornou o repositório para todas as aplicações e protocolos que não se encaixam noutras camadas. – Falta ao modelo OSI uma clara distinção entre aplicações, protocolos específicos de aplicações e protocolos de uso geral, como FTP – File Transfer Protocol 24 24
Comunicação § Protocolos – Exemplo para internet 25 25
Comunicação § Protocolos – Camada de Middleware – Camada de software que é situada logicamente entre uma camada de nível mais alto, composta de usuários e aplicações e uma camada subjacente, que consiste de facilidades básicas de comunicação – Inúmeros protocolos para suportar serviços de middleware: » Autenticação: não estão vinculados a uma aplicação. » Comprometimento. » Comunicação: Serviços de comunicação de alto nível. 26 26
Comunicação § Protocolos – Camada de Middleware 27 27
Comunicação § § Protocolos – Camada de Middleware Sockets – Como os processos executando em diferentes máquinas trocam informação? » Em uma visão pilha de protocolos TCP/IP → Enviando mensagens através da utilização de sockets – Socket: ponto final de uma comunicacao fullduplex entre dois processos. » Processo → casa / Socket → Porta » Socket: Porta entre o processo da aplicação e o protocolo de transporte 28 28
Comunicação § § § Protocolos – Camada de Middleware Sockets – Informações são string de bytes, sem significado aparente. – Não existe a transparência de distribuição: toda a comunicação está explícita, através de procedimentos send e receive. » Funções mais sofisticadas devem ser feitas na camada de aplicação. Por que não oferecer comunicação de alto nível, independente da aplicação? 29 29
Comunicação § Protocolos – Camada de Middleware – Solução: Middleware de comunicação! » Tipos: – Chamadas de Procedimento Remoto – Comunicação orientada a Mensagens – Comunicação orientada a fluxo 30 30
Comunicação § Protocolos – Camada de Middleware – Tipos de Comunicação – Persistência » Persistente: Mensagem é armazenada pelo middleware de comunicação durante o tempo que for necessário para entregá-la ao receptor. » Transiente: Mensagem é armazenada somente durante o tempo em que a aplicação remetente e a aplicação receptora estiverem executando. 31 31
Comunicação § Protocolos – Camada de Middleware – Tipos de Comunicação – Sincronização » Assíncrona: Remetente continua sua execução imediatamente após ter apresentado sua mensagem para transmissão – Mensagens são imediatamente armazenadas, temporariamente, pelo middleware assim que apresentada. 32 32
Comunicação § Protocolos – Camada de Middleware – Tipos de Comunicação – Sincronização » Síncrona: Remetente é bloqueado até saber que sua requisição foi aceita, três pontos em que a sincronização pode ocorrer: 1. O remetente pode ser bloqueado até que o middleware avise que se encarregará da transmissão da requisição. 2. O remetente pode sincronizar até saber que a requisição foi entregue ao receptor. 3. A sincronização pode ocorrer permitindo que o remetente espere até que a requisição tenha sido totalmente processada, isto é, até o instante que o receptor retornar uma resposta 33 33
Comunicação § Protocolos – Camada de Middleware – Tipos de Comunicação – Granularidade » Discreta: Partes se comunicam por mensagens e cada mensagem forma unidade de informação completa. » Fluxo: Várias mensagens, sendo que as mensagens estão relacionadas uma com as outras pela ordem ou pela relação temporal. 34 34
Fonte: Tanenbaum, Andrew S. e Steen, Marteen Van. Sistemas Distribuídos, São Paulo: Prentice Hall, 2008. Copyright © 2010 Prof. Jorge Surian Todos direitos reservados. Reprodução ou divulgação total ou parcial deste documento é expressamente proíbido sem o consentimento formal, por escrito, do Professor Surian. 35 35
- Slides: 35