A computação distribuída é um processo que utiliza inúmeros recursos de computação em diferentes locais de operação para imitar os processos de um único computador. A computação distribuída reúne diferentes computadores, servidores e redes para realizar tarefas de computação de tamanhos e propósitos variados.
A computação distribuída funciona até na nuvem. Embora seja verdade que a computação em nuvem distribuída e a computação em nuvem sejam essencialmente a mesma coisa em teoria, na prática, elas diferem em seu alcance global, sendo que a computação em nuvem distribuída é capaz de estender a computação em nuvem para diferentes regiões geográficas.
Em sistemas pequenos de computação distribuída, com componentes próximos entre si, os componentes podem ser ligados por meio de uma rede local (LAN). Em sistemas distribuídos maiores, cujos componentes estão separados geograficamente, os componentes são conectados por meio de redes de longa distância (WAN). Os componentes de um sistema distribuído compartilham informações por meio de um elaborado sistema de passagem de mensagens, independentemente do tipo de rede que esteja sendo usado.
A computação distribuída muitas vezes enfrenta os desafios computacionais mais intensos e complicados da computação, e é por isso que essa atividade normalmente exige a implementação de memória compartilhada e múltiplos componentes. Além disso, a computação distribuída depende de sincronização altamente coordenada e de grandes quantidades de poder de computação para que todo o sistema possa processar dados com eficácia, envolver-se no compartilhamento de arquivos conforme necessário e trabalhar em direção a um objetivo comum.
Os exemplos a seguir mostram as muitas maneiras pelas quais a computação distribuída está sendo usada em muitos setores e plataformas:
O setor de comunicações faz uso rotineiro de computação distribuída. Redes de telecomunicações são exemplos de redes ponto a ponto, quer elas assumam a forma de redes telefônicas ou redes celulares. Dois importantes exemplos de computação distribuída baseados na comunicação foram a internet e o e-mail, que transformaram a vida moderna.
A computação está sendo dominada por grandes revoluções na inteligência artificial (IA) e no aprendizado de máquina (ML). Ambas as tecnologias estão avançando rapidamente e todas fazem uso extensivo de computação distribuída. Os algoritmos que dão poder à IA e ML exigem grandes volumes de dados de treinamento, além de quantidades fortes e constantes de poder de processamento. A computação distribuída fornece ambos.
A computação distribuída transforma tarefas complexas de gerenciamento de dados e armazenamento de dados em subtarefas distribuídas entre os nós, que são entidades que funcionam como cliente ou servidor - identificando necessidades e emitindo solicitações ou trabalhando para atender a essas necessidades. O gerenciamento de bancos de dados é uma área capacitada pela computação distribuída, assim como os bancos de dados distribuídos, que têm um desempenho mais rápido quando têm tarefas divididas em ações menores. A computação distribuída inclui até mesmo o uso de data centers como parte de uma cadeia de computação distribuída.
Os setores de energia e meio ambiente são afetados pela computação distribuída, que está auxiliando a tecnologia de redes inteligentes a regular o uso e a otimização do consumo de energia. As redes inteligentes também são usadas para reunir dados ambientais de vários dispositivos de entrada.
A computação distribuída garante que vastas cargas computacionais sejam compartilhadas igualmente entre múltiplos sistemas. Além disso, trabalhadores em áreas financeiras específicas já estão usando computação distribuída para coisas como avaliação de riscos. A computação distribuída ajuda as instituições financeiras a realizar enormes cálculos para melhor informar a tomada de decisões e elaborar estratégias financeiras.
A computação distribuída usa seus múltiplos recursos para manter a automação funcionando com eficiência em instalações de fabricação em grande escala e, geralmente, atua em uma capacidade de balanceamento de carga. Há até mesmo a fabricação distribuída, que usa o modelo de nuvem distribuída e o aplica às ferramentas de produção, que estão espalhadas geograficamente. A fabricação também lida com o projeto e a criação de dispositivos e ferramentas da Internet das coisas (IoT) que coletam e transmitem dados.
A computação distribuída ajuda a viabilizar muitas das tecnologias inovadoras da medicina moderna, incluindo cirurgias robóticas que dependem de grandes quantidades de dados. Ao aproveitar seu talento para gráficos 3D incrivelmente detalhados e animações em vídeo, a computação distribuída pode demonstrar procedimentos de patentes e projeto farmacêutico de medicamentos planejados.
Às vezes, podem ocorrer discrepâncias de estoque para varejistas que operam locais físicos, além de oferecer alternativas de compras on-line. Os Distributed Order Management Systems (DOMS), viabilizados pela computação distribuída, ajudam a manter as aplicações de comércio eletrônico funcionando sem problemas, permitindo que os varejistas modernos acompanhem as expectativas em constante mudança dos clientes.
A computação distribuída está sendo usada em um número cada vez maior de atividades científicas, como o treinamento de redes neurais. A computação científica também está usando os enormes recursos da computação distribuída para resolver cálculos científicos maciços, como os que regem os voos espaciais. Simulações de vídeo de computação distribuída podem tornar as projeções científicas mais bem compreendidas.
Fornecedores de massively multiplayer online games (MMOGs) fazem uso extensivo de computação distribuída para criar e executar seus ambientes de jogos complicados e em tempo real. Uma malha complexa de sistemas operacionais, redes e processadores possibilita que milhares de jogadores usuários finais compartilhem e participem de uma experiência de jogo envolvente.
Embora não haja regras definidas sobre o que constitui um sistema de computação distribuída, mesmo a forma mais simples de computação distribuída geralmente possui pelo menos três componentes básicos:
Além desses componentes principais, cada sistema de computação distribuída pode ser personalizado de acordo com as necessidades de uma organização. Uma das grandes vantagens de usar um sistema de computação distribuído é que o sistema pode ser expandido pela adição de mais máquinas, aumentando assim sua escalabilidade. A outra vantagem significativa é o aumento da redundância, portanto, se uma máquina na rede falhar por qualquer motivo, o trabalho do sistema continuará apesar desse ponto de falha.
O objetivo dos sistemas de computação distribuída é fazer com que a rede de computação distribuída funcione como se fosse um único sistema. Essa coordenação é realizada por meio de um sistema elaborado de troca de mensagens entre os diversos componentes.
Os protocolos de comunicação regem essa troca de mensagens e criam uma relação chamada "acoplamento" que existe entre esses componentes. Essa relação é expressa em uma das duas formas:
Tolerância a falhas é outro conceito chave—um processo corretivo que permite a um SO responder e corrigir uma falha em software ou hardware, enquanto o sistema continua operando.
A computação distribuída também lida com os efeitos positivos e negativos da “concorrência”—a execução simultânea de múltiplas sequências de instruções operacionais. A principal entre suas qualidades positivas é o fato de que a simultaneidade permite recursos compartilhados e a computação paralela de vários threads de processos. (Embora a computação paralela não deva ser confundida com o processamento paralelo, que é um processo no qual as tarefas de tempo de execução são divididas em várias tarefas menores.)
Os pontos negativos associados à simultaneidade incluem o aumento da latência e até mesmo gargalos de tráfego, em que a quantidade de dados transferidos excede a largura de banda normal recomendada.
Os tipos de computação distribuída são normalmente classificados de acordo com a arquitetura de computação distribuída que cada um utiliza:
Embora esses sejam os principais tipos de arquitetura de computação distribuída, há outros paradigmas de computação distribuída que merecem menção:
Em nosso rápido tour pela computação distribuída, identificamos o que é computação distribuída, o que é necessário para criar sistemas de computação distribuída e quais tipos de arquiteturas estão associadas aos sistemas de computação distribuída. Além disso, aprendemos sobre 10 setores que estão elaborando seu futuro de forma inteligente agora, fazendo uso especial de sistemas de computação distribuídos.
Assim como na computação distribuída, os produtos IBM Satellite oferecem as ferramentas para implementar e executar aplicativos onde você quiser, seja no local, por meio de edge computing ou ambientes de nuvem pública.
Consuma um conjunto comum de serviços de nuvem que inclui cadeias de ferramentas, bancos de dados e IA. A solução de nuvem distribuída gerenciada pelo IBM Cloud Satellite fornece serviços de nuvem, APIs, políticas de acesso, controles de segurança e conformidade.