Ir para o conteúdo

CCT-UFCA/Ciência da Computação/Sistemas Distribuídos/Modelos e arquiteturas de sistemas distribuídos

De Wikiversidade

Arquitetura Cliente-Servidor

[editar | editar código]
  • A arquitetura cliente-servidor organiza o sistema em dois papéis principais:
    • Cliente: Solicita serviços ou recursos.
    • Servidor: Fornece os serviços ou recursos solicitados.
    • Um servidor pode atender múltiplos clientes simultaneamente, mas cada cliente interage com um ou mais servidores para acessar recursos.
  • Características:
    • Centralização: O servidor centraliza os dados e serviços, facilitando a manutenção e controle.
    • Escalabilidade: Limitações surgem à medida que mais clientes são adicionados, pois os recursos do servidor são finitos.
    • Segurança: O servidor atua como um ponto de controle para autenticação e acesso.
Exemplo:
Sistemas de banco de dados como MySQL e PostgreSQL seguem essa arquitetura.

Cliente: Aplicativo que consulta ou atualiza dados.

Servidor: Sistema de banco de dados que processa as solicitações SQL.
  • Vantagens:
    • Facilita o gerenciamento centralizado de recursos.
    • Permite controle rígido sobre a segurança e a consistência dos dados.
  • Desvantagens:
    • Um único ponto de falha: se o servidor cair, os clientes ficam desconectados.
    • Escalabilidade limitada devido à carga no servidor

Arquitetura Peer-to-Peer (P2P)

[editar | editar código]

Na arquitetura P2P, todos os nós da rede têm funções equivalentes, atuando tanto como clientes quanto como servidores. Não há um servidor central, e os recursos são compartilhados entre os nós.

  • Características:
    • Descentralização: Não há dependência de um servidor central.
    • Escalabilidade: A adição de novos nós aumenta a capacidade total do sistema.
    • Robustez: A falha de um nó não compromete o funcionamento do sistema, desde que haja outros nós ativos.
Exemplo:
Redes de compartilhamento de arquivos, como BitTorrent:
Cada usuário (nó) pode baixar partes de um arquivo de outros usuários enquanto compartilha partes que já possui.
  • Vantagens:
    • Alta escalabilidade e resiliência a falhas.
    • Menor custo de infraestrutura, pois não há necessidade de servidores centrais robustos.
  • Desvantagens:
    • Dificuldade em implementar mecanismos de segurança e controle de acesso.
    • Pode haver latências altas em redes não otimizadas.

Arquitetura de Microsserviços

[editar | editar código]

A arquitetura de microserviços divide um sistema em pequenos serviços independentes que realizam funções específicas. Cada microserviço é responsável por um conjunto limitado de tarefas e se comunica com outros por meio de APIs.

  • Características:
    • Modularidade: Cada microserviço é desenvolvido, implementado e escalado de forma independente.
    • Flexibilidade: Permite o uso de diferentes tecnologias para cada microserviço.
    • Isolamento de Falhas: Uma falha em um microserviço geralmente não afeta os demais.
Exemplo Prático:
Uma loja virtual pode ser construída com microserviços separados:

Serviço de Autenticação: Gerencia o login de usuários.
Serviço de Catálogo: Exibe os produtos disponíveis.
Serviço de Pagamentos: Processa transações financeiras.

Cada serviço pode ser atualizado ou escalado individualmente.
  • Vantagens:
    • Permite maior agilidade no desenvolvimento e implantação.
    • Facilita o uso de equipes menores e especializadas.
  • Desvantagens:
    • A complexidade aumenta devido à necessidade de gerenciar múltiplos serviços.
    • Exige esforços extras em comunicação e orquestração entre microserviços.

Referências

[editar | editar código]
  1. https://www.dio.me/articles/arquitetura-cliente-servidor-fundamentos-e-aplicacoes
  2. https://blog.grancursosonline.com.br/arquitetura-peer-to-peer/
  3. https://www.atlassian.com/br/microservices/microservices-architecture