O que é computação distribuída?

Formas de tempestade

Autores

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

O que é computação distribuída?

A computação distribuída usa vários recursos de computação em diferentes locais de operação para uma única finalidade de computação.

Os sistemas de computação distribuída fazem as coisas acontecerem em grande escala. Lembre disso na próxima vez que você jogar um game MMO (massively multiplayer online). Para gerenciar efetivamente um MMO, são necessários sistemas inteiros se unindo e trabalhando em conjunto para oferecer uma experiência online perfeita que está sendo compartilhada simultaneamente por milhares de jogadores em um ambiente em tempo real.

A computação distribuída ajuda os provedores a reunir esse tipo de sincronização coordenada e poder de processamento do computador em direção a um objetivo comum.

E esse é só um exemplo entre as diversas aplicações dos serviços de computação distribuída atualmente em uso, como criação de gráficos 3D vívidos para animações, treinamento de redes neurais que imitam o funcionamento do cérebro humano e resolução de equações extremamente complexas de química e física.

Normalmente, o modelo de computação distribuída assume as tarefas e cargas de trabalho de computação mais intensivas e lida com os desafios computacionais mais sérios, e é por isso que requer o uso de vários componentes e memória compartilhada.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Como funciona a computação distribuída?

A computação distribuída conecta vários computadores, servidores e redes para realizar tarefas computacionais de diferentes tamanhos e finalidades. Em sistemas pequenos de computação distribuída, com componentes próximos entre si, é possível conectá-los por meio de uma rede local (LAN).

Em sistemas distribuídos maiores, quando os componentes estão geograficamente distantes, eles se conectam por redes de longa distância (WAN). Os componentes em um sistema distribuído compartilham informações por meio de qualquer tipo de rede que esteja sendo usada. O exemplo mais conhecido de sistema distribuído é a Internet. A criptomoeda talvez seja o exemplo mais controverso de sistema distribuído nos últimos tempos.

Componentes da computação distribuída

Do ponto de vista computacional, mesmo as formas mais simples de computação distribuída normalmente incluem três componentes básicos, considerando a quantidade envolvida:

  • Controlador primário do sistema
  • Armazenar de dados do sistema
  • Banco de dados

No entanto, não existem regras fixas sobre o que define um cenário de computação distribuída ou quantos componentes de software são necessários para que ela funcione. Pode haver apenas alguns componentes atuando nessa cadeia (ou rede), ou então muitos outros podem ser integrados ao processo.

Esse é um dos grandes benefícios da computação distribuída: ela permite expandir o sistema adicionando mais máquinas. Outro grande benefício é a redundância: se um dos computadores da rede falhar por qualquer motivo, o sistema continua funcionando normalmente, mesmo assim.

Esse conceito de redundância adicional anda de mãos dadas com a ênfase na tolerância a falhas. A tolerância a falhas é um processo corretivo que permite que um sistema operacional responda e corrija uma falha no software ou no hardware enquanto o sistema continua operando. A tolerância a falhas passou a ser usada como uma medida geral da viabilidade contínua dos negócios em face de uma falha disruptiva.

Sistemas de computação distribuída não têm limite fixo quanto à quantidade de componentes. Também não é necessário que esses componentes estejam fisicamente próximos nem conectados por redes locais. Com os recursos ampliados das redes de longa distância, os computadores de um sistema distribuído podem estar em continentes diferentes e ainda assim funcionar perfeitamente.

Conexão de redes de computação distribuídas

O objetivo dos sistemas de computação distribuída é fazer com que a rede de computação distribuída, independentemente do seu tamanho e de onde seus componentes estejam localizados, funcione como se fosse um único computador. Essa coordenação é realizada por meio de um sistema elaborado de troca de mensagens entre os diversos componentes.

Os protocolos de comunicação controlam a troca de mensagens entre os componentes e estabelecem o relacionamento entre eles. Chamamos essa relação de “acoplamento”, que geralmente se apresenta de duas formas:

  • Acoplamento fraco: a conexão entre dois componentes fracamente acoplados é suficientemente leve para que mudanças em um deles não afetem o outro.
  • Acoplamento forte: componentes fortemente acoplados operam com tamanha sincronização e paralelismo que o processo de “clusterização” usa componentes redundantes para garantir a continuidade do sistema.

A computação distribuída também lida com os efeitos positivos e negativos da simultaneidade, ou concorrência, que é a execução simultânea de várias sequências de instruções operacionais. Entre suas qualidades positivas, destaca-se o fato de que concorrência permite a computação paralela de vários threads de processo. (A computação paralela não deve ser confundida com o processamento paralelo, que é um processo em que tarefas de tempo de execução são divididas em várias tarefas menores.)

Os pontos negativos associados à simultaneidade geralmente incluem maior latência e até gargalos em que o tráfego quase pára devido à sobrecarga do sistema de computação distribuído com um número excessivo de solicitações de componentes.

Concorrência é diferente de multithreading, que permite a um programa continuar rodando enquanto outras tarefas acontecem em segundo plano. A concorrência consome mais recursos, pois várias threads operam ao mesmo tempo e acessam os mesmos recursos simultaneamente.

AI Academy

Preparando-se para a IA com a nuvem híbrida

Liderada pelos principais líderes da IBM, o currículo dessa experiência foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA capazes de estimular o crescimento.

Benefícios da computação distribuída

Perfeito para grandes projetos

Algumas cargas de trabalho são tão grandes que ultrapassam o que um único sistema consegue suportar. A computação distribuída divide essas cargas de trabalho entre vários equipamentos, permitindo lidar bem com tarefas pesadas.

Permite o compartilhamento de recursos

A computação distribuída opera com base no conceito de ativos compartilhados e suporta o compartilhamento de recursos como dados, software e hardware entre os vários componentes dentro dessa instância de computação distribuída.

Ideal para mudanças de trânsito

O tráfego on-line de muitas organizações passa por mudanças rápidas e drásticas, possivelmente por causa de notícias divulgadas ou outros fatores. A computação distribuída oferece a flexibilidade que as empresas precisam para lidar com esses picos.

Desempenho otimizado

A computação distribuída eleva os níveis de desempenho ao dividir grandes tarefas de processamento em atividades computacionais menores, compartilhadas por vários computadores. Isso resulta em um volume acumulado de velocidade de processamento e maior capacidade total de armazenamento.

Eficácia em custo

Embora seja verdade que a computação distribuída, com seus múltiplos sistemas, tenha custos iniciais mais altos do que os sistemas centralizados, ao longo do tempo esses custos se equilibram devido às eficiências obtidas por meio de menor latência e tempos de resposta mais rápidos, o que torna a computação distribuída mais econômica do que os sistemas centralizados.

Tipos de computação distribuída

Os tipos de computação distribuída são classificados de acordo com a arquitetura de computação distribuída que cada um utiliza.

Sistema cliente-servidor

Sistemas cliente-servidor utilizam uma arquitetura cliente-servidor que permite seu uso com mais de um sistema. Nesse modelo, o cliente envia um input ao servidor na forma de uma solicitação. Essa comunicação geralmente envolve um comando para executar determinada tarefa ou uma solicitação por mais recursos de computação. O servidor então trabalha para cumprir essa tarefa ou alocar os recursos solicitados. Uma vez concluído, o servidor responde ao cliente com uma mensagem sobre a ação tomada.

Sistema de pares

Enquanto os sistemas centralizados utilizam arquitetura cliente-servidor, um sistema peer adota arquitetura peer (também chamada de arquitetura ponto a ponto). Sistemas peer utilizam nós, que podem funcionar efetivamente como cliente ou servidor, seja identificando necessidades e enviando solicitações, seja atendendo a essas necessidades e relatando as operações. Como o nome sugere, não há hierarquia em sistemas peer, portanto programas que operam em sistemas ponto a ponto conseguem se comunicar livremente entre si e transferir dados via redes peer.

Middleware

Middleware pode ser considerado como um tipo de "intermediário" que opera entre duas aplicações distintas, ou seja, o middleware é uma aplicação que fica entre dois aplicativos e fornece serviços para ambos. O middleware também tem um aspecto interpretativo. Ele atua como um tradutor entre diferentes aplicativos de interoperabilidade que rodam em sistemas distintos e permite que esses aplicativos troquem dados livremente.

Sistema de três camadas

Os sistemas em três camadas recebem esse nome devido à quantidade de camadas usadas para representar a funcionalidade de um programa. Ao contrário da arquitetura cliente-servidor típica na qual os dados são colocados no sistema cliente, o sistema de três camadas mantém os dados armazenados em sua camada intermediária, que é chamada de Camada de Dados. A Camada de Aplicação envolve a Camada de Dados em um de seus lados, enquanto a Camada de Apresentação envolve a Camada de Dados no outro lado. Os sistemas de três camadas são usados rotineiramente em vários aplicativos da web.

Sistema de N camadas

Algumas vezes chamados de sistemas distribuídos em múltiplas camadas, os sistemas N camadas têm capacidade ilimitada para funções de rede, que eles direcionam para outros aplicativos para processamento. A arquitetura dos sistemas de N camadas se assemelha à encontrada em sistemas de três camadas. Os sistemas de N camadas são frequentemente usados como base arquitetônica para vários serviços da Web e sistemas de dados.

Outros paradigmas de computação distribuída

A computação distribuída permite o uso de diferentes paradigmas de programação (que podem ser considerados como estilos de programação):

  • Blockchain: O blockchain é um tipo de banco de dados ou livro-razão distribuído que é replicado e sincronizado nos diversos computadores que compõem uma rede. Um blockchain assegura um dos principais objetivos da computação distribuída,redundância, pois cada computador na cadeia mantém uma cópia do livro-razão original, o que evita a perda de dados por um único ponto de falha.
  • Computação em grade: a computação em grade é um tipo de computação distribuída que lida com cargas de trabalho não interativas, geralmente envolvendo uma combinação de frameworks e middleware software. A grade escalonável acessada por meio da interface do usuário funciona como um sistema de arquivos de mega porte.

Casos de uso de computação distribuída por setor

Bancos

O banco on-line demonstra a agilidade da computação distribuída ao ocorrer em diversos lugares simultaneamente, muitas vezes com diferentes agências bancárias responsáveis por hospedar um dos servidores por trás de serviços essenciais (como atendimento ao cliente, segurança e processamento de transações). Tudo acontece de forma instantânea e sem dificuldade, exatamente como os clientes bancários esperam.

Computação

Tanto inteligência artificial (IA) quanto aprendizado de máquina (ML) estão revolucionando diversos campos tecnológicos, mas em nenhum outro lugar seus efeitos são tão evidentes quanto no próprio setor de computação. Ambas as tecnologias emergentes fazem amplo uso da computação distribuída. Os algoritmos por trás de IA e ML precisam de grandes volumes de dados para treinar seus modelos, e a computação distribuída fornece a capacidade de processamento necessária.

Energia

A computação distribuída agora está sendo usada pelos setores de energia e meio ambiente. No setor energético, a computação distribuída está ajudando a tecnologia de redes inteligentes a regular o uso e otimizar o consumo de energia. As redes inteligentes também utilizam a computação distribuída para reunir dados ambientais a partir de diferentes dispositivos de input, como sensores e medidores inteligentes.

Finanças

Profissionais de áreas específicas das finanças já estão utilizando sistemas de computação distribuída. Considere a gestão de riscos, na qual as instituições financeiras precisam de vastos volumes de dados para executar cálculos enormes e informar melhor a tomada de decisões sobre probabilidade e avaliações de risco. A computação distribuída garante que as cargas computacionais sejam compartilhadas uniformemente entre vários sistemas.

Ciência

A computação distribuída tem ajudado diversas áreas da ciência e contribuído para algumas das conquistas mais notáveis da área. Exemplos incluem o Grande Colisor de Hádrons, o acelerador de partículas mais poderoso do mundo. Os experimentos por trás disso dependem de quantidades extremas de coleta e análise de dados, exigindo o uso de computação distribuída. Da mesma forma, a computação distribuída serviu ao mesmo propósito para o Projeto Genoma Humano, que se propôs a mapear sequências de DNA humano. A computação distribuída também desempenha funções essenciais de previsão e na modelagem climática.

Soluções relacionadas
IBM Cloud Infrastructure Center 

O IBM Cloud Infrastructure Center é uma plataforma de software compatível com o OpenStack para gerenciamento da infraestrutura de nuvens privadas em sistemas IBM zSystems e no IBM LinuxONE.

Explore o Cloud Infrastructure Center
Soluções de infraestrutura de TI

Conheça servidores, armazenamento e software projetados para sua estratégia corporativa de nuvem híbrida e IA.

Saiba mais sobre as soluções de infraestrutura de TI
Soluções de infraestrutura em nuvem

Encontre a solução ideal de infraestrutura em nuvem para as necessidades do seu negócio e expanda os recursos conforme a demanda.

Soluções em nuvem
Dê o próximo passo

Transforme sua infraestrutura empresarial com as soluções da IBM prontas para IA e nuvem híbrida. Descubra servidores, armazenamento e software projetados para proteger, expandir e modernizar seus negócios ou acesse insights de especialistas para aprimorar sua estratégia de IA generativa.

Saiba mais sobre as soluções de infraestrutura de TI Baixe o e-book