Você está na página 1de 29

Sistemas e Aplicações Distribuídas

Tutor: Karlos Oliveira


Turma: FLC28589SGI
Sistemas e Aplicações Distribuídas

UNIDADE 3 - Comunicação em Ambientes Distribuídos e


Aplicações Distribuídas

• TÓPICO 1 – COMUNICAÇÃO
• TÓPICO 2 – CONSISTÊNCIA E TOLERÂNCIA A FALHAS
• TÓPICO 3 – SEGURANÇA
• TÓPICO 4 – IMPLEMENTAÇÕES DE SISTEMAS E APLICAÇÕES
DISTRIBUÍDAS
Sistemas e Aplicações Distribuídas
REDES DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS
• Importância da infraestrutura e dos protocolos adequados.
• Diversidade de redes, como LANs e WANs.
• Redes sem fio: WPAN, WLAN, WMAN, WWAN.
• Integração em rede: facilitando a comunicação.
• Fundamentos para sistemas distribuídos eficientes.
Sistemas e Aplicações Distribuídas
REDES DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS
As redes de computadores vão desde redes locais até redes de longa distância, e
cada tipo apresenta diferentes tecnologias de transmissão de dados. Por exemplo, as
redes locais (LANs), que são como as pequenas comunidades de comunicação,
frequentemente empregadas em ambientes corporativos ou residenciais. Elas
permitem que dispositivos dentro de um local específico se comuniquem e
compartilhem recursos de maneira eficaz. Por outro lado, temos as redes de longa
distância (WANs), que são a espinha dorsal das comunicações em larga escala. Elas
conectam locais geográficos distantes, permitindo que empresas, governos e
instituições se comuniquem globalmente. As WANs são essenciais para conectar
escritórios, data centers e sistemas em diferentes regiões geográficas.
Sistemas e Aplicações Distribuídas
REDES DE COMPUTADORES E SISTEMAS DISTRIBUÍDOS
Além das redes com fio, as redes sem fio também desempenham um papel crucial nos ambientes
atuais. As WPANs, WLANs, WMANs e WWANs, cada uma com sua área de cobertura e tecnologia
específicas, facilitam a comunicação de dispositivos móveis e a transmissão de dados em
diferentes escalas geográficas.
• As WPANs (Redes de Área Pessoal Sem Fio) são ideais para dispositivos de curto alcance e são
exemplificadas pelo Bluetooth, que permite a conexão de dispositivos próximos.
• As WLANs (Redes de Área Local Sem Fio) popularizaram-se graças ao Wi-Fi, fornecendo
conectividade em ambientes locais, como residências, empresas e locais públicos.
• As WMANs (Redes de Área Metropolitana Sem Fio) são mais amplas, cobrindo áreas
metropolitanas e usando tecnologias como o WiMAX para fornecer conectividade de alta
velocidade.
• As WWANs (Redes de Área Ampla Sem Fio) oferecem cobertura em larga escala, permitindo que
dispositivos móveis se conectem a redes celulares em todo o mundo, garantindo que possamos
ficar online, estejamos onde estivermos.
Sistemas e Aplicações Distribuídas
PROTOCOLOS DE COMUNICAÇÃO
• Papel vital no avanço da tecnologia.
• Protocolos de comunicação governam a troca.
• IP, TCP e UDP facilitam a transmissão.
• RPC e MPI coordenam recursos em sistemas.
Sistemas e Aplicações Distribuídas
PROTOCOLOS DE COMUNICAÇÃO
Redes de computadores e sistemas distribuídos têm desempenhado um papel vital no avanço da tecnologia
da informação, permitindo a troca eficiente de dados e recursos entre dispositivos e sistemas conectados.
Um dos elementos-chave para o funcionamento eficaz desses sistemas é a implementação de protocolos de
comunicação. Os protocolos de comunicação são conjuntos de regras e convenções que governam o
intercâmbio de informações entre dispositivos em uma rede. Eles estabelecem diretrizes específicas para o
formato, sincronização, sequência e detecção de erros durante a transmissão e recepção de dados. Esses
protocolos garantem a comunicação confiável e segura entre os nós da rede, independentemente das
diferentes arquiteturas e tecnologias subjacentes.
Dentro das redes de computadores, alguns dos protocolos de comunicação mais fundamentais incluem o
Protocolo de Internet (IP), que facilita o roteamento de pacotes de dados entre dispositivos e redes; o
Protocolo de Controle de Transmissão (TCP), responsável por garantir a entrega confiável e ordenada de
dados; e o Protocolo de Datagrama de Usuário (UDP), que permite a transmissão de datagramas na rede sem
garantia de entrega ou ordem.
Além disso, em sistemas distribuídos, os protocolos de comunicação desempenham um papel crucial na
coordenação de recursos compartilhados e na garantia da consistência dos dados em ambientes
distribuídos. Protocolos como o RPC (Remote Procedure Call) facilitam a invocação remota de procedimentos
em diferentes máquinas, enquanto o protocolo de troca de mensagens (Message Passing Interface - MPI)
possibilita a comunicação entre processos independentes em sistemas distribuídos de alto desempenho.
Sistemas e Aplicações Distribuídas
ATRIBUTOS DAS REDES PARA OS SISTEMAS DISTRIBUÍDOS
Redes de computadores e sistemas distribuídos são duas áreas inter-relacionadas da ciência da computação que
desempenham papéis cruciais no funcionamento da infraestrutura tecnológica contemporânea. Enquanto as redes de
computadores se concentram na conexão e comunicação entre dispositivos, os sistemas distribuídos se preocupam com a
coordenação e interação de vários componentes independentes para alcançar um objetivo comum.
A conectividade é um dos aspectos fundamentais para a comunicação eficiente entre os nós em um sistema distribuído. A
capacidade de transmitir dados de forma confiável e eficiente é crucial para o funcionamento dos sistemas distribuídos.
Redes de computadores oferecem diversos protocolos de comunicação, como TCP/IP e UDP, que possibilitam a
transferência de dados entre os nós de um sistema distribuído de maneira segura e eficaz. Escalabilidade: Tanto as redes
de computadores quanto os sistemas distribuídos devem ser escaláveis para lidar com um número crescente de usuários e
recursos.
Em ambientes distribuídos, é crucial ter sistemas robustos que possam lidar com falhas de hardware ou software. As redes
de computadores e os sistemas distribuídos devem ser projetados com redundância e mecanismos de recuperação para
garantir a disponibilidade contínua dos serviços, mesmo diante de interrupções inesperadas. A segurança da rede é um
aspecto crítico para proteger os sistemas distribuídos de acessos não autorizados e ameaças cibernéticas. Mecanismos de
segurança, como firewalls, criptografia e autenticação, são essenciais para proteger os dados e garantir a integridade e
confidencialidade das informações transmitidas através da rede. Desempenho: Redes de computadores devem oferecer
desempenho confiável e previsível para garantir que os sistemas distribuídos possam atender aos requisitos de tempo de
resposta e de processamento.
Sistemas e Aplicações Distribuídas
CARACTERÍSTICAS GERAIS DA COMUNICAÇÃO ENTRE PROCESSOS
EM SISTEMAS DISTRIBUÍDOS
• Troca de informações e compartilhamento de recursos.
• Componentes autônomos colaboram para alcançar objetivos.
• Comunicação assíncrona e síncrona entre processos.
• Espera por resposta imediata depende da aplicação.
• Eficiência, confiabilidade e segurança na troca.
Sistemas e Aplicações Distribuídas
CARACTERÍSTICAS GERAIS DA COMUNICAÇÃO ENTRE PROCESSOS
EM SISTEMAS DISTRIBUÍDOS
A comunicação entre processos em sistemas distribuídos desempenha um papel crucial na troca
de informações e no compartilhamento de recursos em ambientes computacionais complexos.
Esses sistemas consistem em vários componentes autônomos, como computadores e
dispositivos interconectados, que colaboram para realizar tarefas e alcançar objetivos comuns.
Existem diversas características fundamentais que definem a comunicação entre processos em
sistemas distribuídos, algumas das quais são essenciais para garantir a eficiência, confiabilidade e
segurança da troca de dados.
A comunicação entre os processos origem e destino pode ser síncrona ou assíncrona:
• Na comunicação assíncrona, os processos podem enviar mensagens e continuar suas
atividades sem esperar por uma resposta imediata.
• Enquanto na comunicação síncrona, os processos aguardam a resposta antes de prosseguir.
A escolha entre esses métodos depende da natureza das aplicações e dos requisitos de tempo
de resposta.
Sistemas e Aplicações Distribuídas
MIDDLEWARE ORIENTADO A MENSAGEM
• Comunicação assíncrona entre processos em rede.
• Garantia de entrega confiável de mensagens.
• Suporte a diferentes padrões de comunicação.
• Gerenciamento eficiente da escalabilidade do sistema.
• Interoperabilidade em ambientes distribuídos heterogêneos.
Sistemas e Aplicações Distribuídas
MIDDLEWARE ORIENTADO A MENSAGEM
Dentre os diversos modelos de comunicação existentes, o middleware orientado a mensagem se destaca
como uma abordagem fundamental para facilitar a troca de dados entre processos em sistemas distribuídos.
Este modelo possui características específicas que viabilizam a comunicação confiável e eficiente entre os
diversos componentes distribuídos em uma rede.
Uma das características principais do middleware orientado a mensagem é a sua capacidade de proporcionar
um meio de comunicação assíncrona entre os processos, o que significa que os processos podem continuar
sua execução sem a necessidade de esperar pela resposta imediata de outro processo. Isso permite um
aumento significativo na eficiência e no desempenho do sistema distribuído, uma vez que os recursos de
processamento não são bloqueados durante a comunicação.
Além disso, o middleware orientado a mensagem é capaz de garantir a entrega confiável das mensagens,
mesmo em condições adversas de rede. Ele utiliza protocolos robustos de entrega de mensagens, como o
protocolo de fila de mensagens, que garante a entrega ordenada e sem perda das mensagens entre os
processos. Isso é crucial para manter a consistência e a integridade dos dados, especialmente em ambientes
distribuídos propensos a falhas e interrupções de rede.
Outra característica importante é a capacidade de o middleware suportar diferentes padrões de comunicação,
como o modelo de publicação e assinatura e o modelo de fila de mensagens, permitindo a flexibilidade na
implementação de diversos padrões de troca de mensagens de acordo com os requisitos específicos de cada
aplicação distribuída.
Sistemas e Aplicações Distribuídas
MULTICASTING
• Comunicação multicast permite troca simultânea de mensagens.
• Nós organizados em rede para disseminação eficaz.
• Tolerância a falhas garantida por replicação.
• Melhor desempenho alcançado por replicação de dados.
• Uso de multicast para notificar grupos.
Sistemas e Aplicações Distribuídas
MULTICASTING
Durante o estudo das técnicas de comunicação em sistemas distribuídos, se destaca também a
importância da implementação eficaz, juntamente com a garantia da qualidade, transparência e
disponibilidade da informação.
Nesse contexto, surge o conceito de "multicasting" ou comunicação multicast, que possibilita a
troca simultânea de mensagens entre múltiplos destinatários. Geralmente, os nós se organizam
em uma rede sobreposta para disseminar informações entre seus membros.
A infraestrutura para suportar o multicast em sistemas distribuídos considera algumas
características fundamentais. A tolerância a falhas é garantida pela replicação dos serviços em
grupos de servidores, o que permite atender às requisições dos clientes mesmo se um dos
membros falhar. Além disso, o melhor desempenho é obtido por meio da replicação de dados. O
uso de multicast para notificar um grupo sobre um evento específico é visto, por exemplo, quando
uma atualização de status é compartilhada no Facebook e todos os amigos recebem a notificação
da alteração.
Sistemas e Aplicações Distribuídas
TOLERÂNCIA A FALHAS
Defeitos são problemas intrínsecos ao sistema, como erros de programação ou problemas de
hardware. Erros ocorrem quando esses defeitos são ativados em determinadas condições. E,
finalmente, falhas são o resultado visível de erros, levando a um mau funcionamento do sistema.
A identificação das causas de falhas é crucial para garantir a confiabilidade de um sistema. A falha
parcial, em que partes do sistema não funcionam, mas outras continuam operacionais, é um
cenário importante a ser considerado. Isso permite que o sistema continue funcionando,
oferecendo um nível de disponibilidade e desempenho mesmo quando enfrenta problemas.
A replicação desempenha um papel fundamental na garantia da transparência da falha. Ter várias
cópias de dados ou serviços distribuídos em locais diferentes permite que o sistema continue
operando mesmo se uma parte falhar. Isso aumenta a confiabilidade e a disponibilidade.
Existem várias estratégias para lidar com a tolerância a falhas, incluindo evitar defeitos durante o
desenvolvimento, remover erros conhecidos e até prever falhas por meio de monitoramento e
análise de dados. Portanto, ao explorar a tolerância a falhas em sistemas distribuídos, estamos
abordando um tópico essencial para manter a integridade e a confiabilidade de sistemas
complexos em nosso mundo digital interconectado.
Sistemas e Aplicações Distribuídas
TIPOS DE FALHAS
• Falhas classificadas como transientes, intermitentes, permanentes
• Falha por queda: servidor para de funcionar
• Falha por omissão: servidor não responde
• Omissão de recebimento: servidor não recebe mensagens
• Falha de temporização: resposta fora do intervalo
• Tipos de falhas: resposta, valor, transição, arbitrária
Sistemas e Aplicações Distribuídas
TIPOS DE FALHAS
Em geral, as falhas podem ser classificadas como transientes, intermitentes ou permanentes. As
falhas transientes ocorrem uma vez e desaparecem, não se repetindo se a operação for refeita. Por
outro lado, as falhas intermitentes vêm e vão, tornando seu diagnóstico desafiador. Enquanto as
falhas permanentes persistem até que o componente defeituoso seja substituído.
• Falha por queda: O servidor para de funcionar, mas estava funcionando corretamente até parar.
• Falha por omissão: O servidor não consegue responder a requisições que chegam.
• Omissão de recebimento: O servidor não consegue receber mensagens que chegam.
• Omissão de envio: O servidor não consegue enviar mensagens.
• Falha de temporização: A resposta do servidor se encontra fora do intervalo de tempo.
• Falha de resposta: A resposta do servidor está incorreta
• Falha de valor: O valor da resposta está errado
• Falha de transição de estado: O servidor se desvia do fluxo de controle correto
• Falha arbitrária: Um servidor pode produzir respostas arbitrárias em momentos arbitrários
Sistemas e Aplicações Distribuídas
RECUPERAÇÃO DE ERROS
A recuperação de erros pode ocorrer de duas maneiras principais: retroativamente e para
frente. A recuperação retroativa envolve o retorno a um estado anterior, muitas vezes usando
um mecanismo de "ponto de verificação". Isso implica registrar periodicamente o estado do
sistema, permitindo que, em caso de falha, o sistema retorne a um estado conhecido e
funcional.
Já a recuperação para frente é um pouco mais complexa. Envolve a busca por um novo
estado correto após uma falha, muitas vezes com a ajuda de mecanismos de detecção de
erros. Esse processo pode exigir a replicação de serviços ou a reconfiguração do sistema
para manter a continuidade das operações.
Ambas as abordagens são cruciais para garantir que sistemas distribuídos possam lidar com
as falhas inevitáveis que podem ocorrer. A recuperação de erros não apenas ajuda a manter a
integridade dos sistemas, mas também contribui para a confiabilidade e disponibilidade,
garantindo que nossas aplicações e serviços funcionem de forma contínua, mesmo em face
de desafios imprevistos.
Sistemas e Aplicações Distribuídas
SEGURANÇA NOS CANAIS DE COMUNICAÇÃO
• Autenticação essencial: verificação de identidade nas trocas.
• Integridade e confidencialidade das mensagens protegidas.
• Assinaturas digitais garantem integridade e confidencialidade.
• Comunicação segura entre grupos: compartilhamento de chaves.
• Servidores replicados seguros garantem proteção adicional.
Sistemas e Aplicações Distribuídas
SEGURANÇA NOS CANAIS DE COMUNICAÇÃO
Segurança nos canais de comunicação é uma preocupação central em qualquer ambiente que lida
com transmissão de dados. Em sistemas distribuídos, onde a troca de informações entre
processos é essencial, garantir a confidencialidade, integridade e autenticidade dos dados torna-
se ainda mais crítico.
Uma abordagem fundamental para assegurar a segurança dos canais de comunicação é a
implementação de mecanismos robustos de autenticação. Isso implica na verificação da
identidade das partes envolvidas na troca de informações e na concessão de acesso somente a
usuários autorizados. A autenticação, muitas vezes realizada através de técnicas como a
comunicação autenticada com chaves públicas, desempenha um papel central na garantia de que
apenas entidades legítimas possam acessar os recursos.
Sistemas e Aplicações Distribuídas
SEGURANÇA NOS CANAIS DE COMUNICAÇÃO
Além disso, a integridade e confidencialidade das mensagens transmitidas são aspectos críticos a
serem considerados. A integridade busca garantir que as mensagens não sejam alteradas durante
a transmissão, protegendo-as de possíveis fraudes ou manipulações indesejadas. Enquanto isso,
a confidencialidade visa assegurar que as informações sensíveis não sejam acessadas por
terceiros não autorizados. A aplicação de assinaturas digitais é uma prática comum para garantir
tanto a integridade quanto a confidencialidade das mensagens em trânsito.
A complexidade dos ambientes distribuídos demanda também a implementação de estratégias que
garantam a segurança da comunicação entre grupos de usuários. Isso pode envolver o
compartilhamento de chaves secretas entre os membros do grupo, bem como a utilização de
chaves públicas e privadas para autenticação e criptografia. A presença de servidores replicados
seguros que respondem às solicitações dos clientes é uma medida adicional que ajuda a fortalecer
a segurança nos canais de comunicação, oferecendo proteção adicional contra possíveis
tentativas de acesso não autorizado.
Sistemas e Aplicações Distribuídas
CONSISTÊNCIA E REPLICAÇÃO
A consistência refere-se à uniformidade e integridade dos dados em todo o sistema,
enquanto a replicação envolve a criação de cópias de objetos ou dados em várias
máquinas para melhorar a disponibilidade e a tolerância a falhas.
A fim de manter a consistência dos dados, técnicas como o protocolo de controle de
concorrência e o protocolo de transações distribuídas são amplamente empregadas.
Esses mecanismos asseguram que as operações de escrita e leitura em objetos
distribuídos sejam realizadas de forma coordenada e sequencial, evitando conflitos e
garantindo que os dados permaneçam consistentes em todo o sistema.
Por outro lado, a replicação é implementada para garantir a disponibilidade contínua
dos serviços, mesmo diante de falhas em componentes individuais. A replicação de
objetos distribuídos é frequentemente realizada por meio de técnicas como replicação
ativa e passiva, onde as cópias dos objetos podem ser atualizadas de maneira
síncrona ou assíncrona, dependendo dos requisitos de consistência e desempenho
do sistema.
Sistemas e Aplicações Distribuídas
SISTEMAS DE ARQUIVOS DISTRIBUÍDOS
• Sistemas de arquivos distribuídos permitem compartilhamento eficiente.
• Acesso a arquivos remotos por rede distribuída.
• Exemplos incluem NFS e SMB da Microsoft.
• Alta disponibilidade e tolerância a falhas.
Sistemas e Aplicações Distribuídas
SISTEMAS DE ARQUIVOS DISTRIBUÍDOS
Implementações de sistemas e aplicações distribuídas desempenham um papel crucial na computação
contemporânea, permitindo a distribuição eficiente de recursos e a comunicação entre sistemas
interconectados. Entre essas implementações, os sistemas de arquivos distribuídos (SADs) desempenham
um papel fundamental ao facilitar o acesso a arquivos e dados em uma rede distribuída de computadores.
Um sistema de arquivos distribuído é um tipo de sistema de arquivos que permite o acesso a arquivos e
dados armazenados em dispositivos de armazenamento remotos por meio de uma rede. Diferentemente dos
sistemas de arquivos tradicionais, onde o armazenamento é local e acessível apenas a um único sistema, os
sistemas de arquivos distribuídos possibilitam o compartilhamento de arquivos e dados entre vários
sistemas conectados em rede. Essa capacidade de compartilhamento permite uma colaboração mais eficiente
e o acesso fácil a informações críticas em ambientes distribuídos, como clusters de servidores, ambientes de
computação em nuvem e redes peer-to-peer.
Existem várias implementações de sistemas de arquivos distribuídos, cada uma com suas próprias
características e funcionalidades específicas. Alguns exemplos notáveis incluem o Network File System
(NFS), desenvolvido pela Sun Microsystems, e o Server Message Block (SMB), anteriormente conhecido como
Common Internet File System (CIFS), desenvolvido pela Microsoft. Esses sistemas de arquivos distribuídos
se tornaram fundamentais em ambientes corporativos, permitindo que vários usuários acessem e
compartilhem arquivos de maneira eficiente em uma rede de computadores.
Sistemas e Aplicações Distribuídas
PROCESSOS
• Arquitetura baseada em modelo cliente/servidor.
• Destaque para o Network File System (NFS).
• Permite acesso transparente a arquivos remotos.
• Independente de hardware e sistemas operacionais.
• Dois modelos essenciais: acesso remoto e carga/atualização.
Sistemas e Aplicações Distribuídas
PROCESSOS
Nos sistemas de arquivos distribuídos, o gerenciamento dos processos é uma questão crítica que
impacta diretamente a eficiência e confiabilidade das operações de compartilhamento de arquivos
em redes distribuídas. Em particular, a discussão sobre a presença ou ausência de estados nos
processos revela desafios fundamentais enfrentados por sistemas como o Network File System
(NFS).
Imagine que você tem dois computadores, um chamado "A" e outro chamado "B". NFS permite
que você acesse e compartilhe arquivos de um com o outro, como se ambos estivessem
conectados a uma única pasta gigante. Isso facilita a colaboração e o compartilhamento de
informações entre diferentes máquinas. É como se você pudesse pegar um arquivo de um
computador e usá-lo em outro, tudo como se estivessem na mesma sala, mesmo que estejam a
quilômetros de distância.
Sistemas e Aplicações Distribuídas
PROCESSOS
Anteriormente, nas versões 2 e 3 do NFS, os servidores operavam de maneira sem estado,
eliminando a necessidade de manter informações específicas dos clientes. Essa abordagem,
embora simplificasse o funcionamento, revelou-se limitada, uma vez que a ausência de um estado
poderia resultar em complicações na recuperação de dados em caso de falha do servidor.
No entanto, reconhecendo a importância de garantir a integridade dos dados e otimizar o
desempenho em redes distribuídas, o NFS na versão 4 abandonou a abordagem sem estado. Essa
transição foi motivada não apenas pela necessidade de funcionar em redes de longa distância,
mas também pela demanda por um protocolo eficiente de consistência de cache, que requer que
os servidores mantenham informações detalhadas sobre os arquivos dos clientes.
Sistemas e Aplicações Distribuídas
DÚVIDAS???

Tutor: Karlos Oliveira


Turma: FLC28589SGI

Você também pode gostar