# data[].attributes.body
Um sistema distribuído é uma coleção de programas de computador que utilizam recursos computacionais em vários pontos centrais de computação diferentes para atingir um objetivo comum e compartilhado. Também conhecido como computação distribuída ou bancos de dados distribuídos, ele depende de pontos centrais diferentes para se comunicar e sincronizar em uma rede comum. Esses pontos centrais costumam representar dispositivos de hardware físicos diferentes, mas também podem representar processos de software diferentes ou outros sistemas encapsulados recursivos. Os sistemas distribuídos visam remover gargalos ou pontos centrais de falha de um sistema.

# data[].attributes.headline
Caracteristicas de um Sistema Distribuido

# data[].attributes.subject
Caracteristicas de um Sistema Distribuido

# data[].attributes.body
Compartilhamento de recursos — um sistema distribuído pode compartilhar hardware, software ou dados

Processamento simultâneo — várias máquinas podem processar a mesma função ao mesmo tempo

Escalonamento — a capacidade de computação e processamento pode evoluir conforme necessário quando estendida para máquinas adicionais

Detecção de erros — as falhas podem ser detectadas com mais facilidade

Transparência — um ponto central pode acessar os e se comunicar com outros pontos centrais no sistema

# data[].attributes.body
Cliente-servidor

Vários níveis

Par-a-par

Arquitetura orientada ao Serviço

# data[].attributes.body
Uma arquitetura cliente-servidor é dividida em duas responsabilidades principais. O cliente é responsável pela apresentação da interface do usuário, que então se conecta pela rede ao servidor. O servidor é responsável por lidar com a lógica empresarial e o gerenciamento do estado. Uma arquitetura cliente-servidor pode ser degradada com facilidade para uma arquitetura centralizada se o servidor não for redundante. Uma configuração cliente-servidor de fato distribuída vai ter vários pontos centrais de servidor para distribuir as conexões do cliente. A maioria das arquiteturas cliente-servidor modernas são clientes que se conectam a um sistema distribuído encapsulado no servidor.

# data[].attributes.body
Uma arquitetura de vários níveis expande a arquitetura cliente-servidor. O servidor em uma arquitetura de vários níveis é decomposto em pontos centrais granulares adicionais, que dissociam responsabilidades adicionais do servidor de back-end, como processamento e gerenciamento de dados. Esses pontos centrais adicionais são usados para processar trabalhos de longa duração sem sincronia e liberar os pontos centrais de back-end restantes para se concentrarem na resposta às solicitações do cliente e na interface com o armazenamento de dados.

# data[].attributes.body
Em um sistema distribuído par-a-par, cada ponto central contém a instância completa de um aplicativo. Não há separação de pontos centrais da apresentação e do processamento de dados. Um ponto central contém a camada de apresentação e as camadas de manipulação de dados. Os pontos centrais de mesmo nível podem conter todos os dados de estado de todo o sistema.

Os sistemas par-a-par têm o benefício de extrema redundância. Quando um ponto central par-a-par é inicializado e colocado on-line, ele descobre e se conecta a outros pares e sincroniza seu estado local com o estado do sistema maior. Com esse recurso, a falha de um ponto central em um sistema par-a-par não vai interromper nenhum dos outros pontos centrais, e o sistema par-a-par vai persistir.

# data[].attributes.body
É uma antecessora dos microsserviços. A principal diferença entre a SOA e os microsserviços é o escopo do ponto central — o escopo dos pontos centrais de microsserviço existe no nível do recurso. Em microsserviços, um ponto central encapsula a lógica empresarial para lidar com um conjunto específico de recursos, como o processamento de pagamentos. Os microsserviços contêm vários pontos centrais de lógica empresarial diferentes que interagem com pontos centrais de banco de dados independentes. Em comparação, os pontos centrais da SOA encapsulam um aplicativo inteiro ou uma divisão corporativa. O limite de serviço para pontos centrais da SOA, em geral, inclui um sistema de banco de dados inteiro dentro do ponto central.

Os microsserviços surgiram como uma alternativa mais popular a SOA devido aos seus benefícios. Os microsserviços são mais compostos, permitindo que as equipes reutilizem a funcionalidade oferecida pelos pequenos pontos centrais de serviço. Os microsserviços são mais robustos e permitem um escalonamento vertical e horizontal mais dinâmico.