Comunicação

Download Report

Transcript Comunicação

Sistemas Distribuídos
Jorge Surian
[email protected]
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 ClienteServidor
– 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 uma 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