DEV Community

Cover image for Outros 3 Padrões de Arquitetura de Software Simplificados e Exemplificados
Vinicius Savegnago
Vinicius Savegnago

Posted on

Outros 3 Padrões de Arquitetura de Software Simplificados e Exemplificados

Hoje eu trago outros três padrões bem comuns de arquitetura de software para explorarmos. Todos criados para atender necessidades específicas e tornar o desenvolvimento de software mais eficiente e fácil.

1. Arquitetura em Camadas

A arquitetura de software em camadas é uma estrutura que divide o software em diferentes camadas, cada uma com sua própria responsabilidade e finalidade. Cada camada depende das camadas abaixo dela, mas não depende das camadas acima. Isso cria uma estrutura em forma de "pirâmide", onde cada camada é construída sobre as camadas anteriores e fornece suporte para as camadas superiores.

  1. Camada de Apresentação (UI)

    • Responsável por apresentar as informações para o usuário final.
  2. Camada de Aplicação

    • Responsável por lidar com as regras de negócio e os processos de negócio da aplicação.
  3. Camada de Domínio

    • Responsável por armazenar e recuperar informações.
  4. Camada de Infraestrutura

    • Responsável pelas informações no banco de dados.

Image description

Vantagens

  • Fácil de entender e de se aplicar.
  • Cada camada tem sua própria finalidade distinta, sendo mais fácil manter o software e realizar mudanças ou atualizações.

Desvantagens

  • Escalabilidade é complicado pois a estrutura não permite fácil crescimento.
  • Existe uma certa dependência entre as camadas da estrutura.

Exemplo em um cenário real

Um sistema de E-commerce:

  1. Camada de Interface:
    • Essa será a interface do usuário, permitindo que os clientes visualizem produtos e façam compras.
  2. Camada de Aplicação:
    • Aqui funciona a lógica de negócios, como cálculo de preços, gerenciamento de estoque e processamento de pagamentos.
  3. Camada de Domínio:
    • Recupera informações relevantes do sistema, como informações do produto ou histórico de compras.
  4. Infraestrutura:
    • Um servidor rodando PostgreSQL com os dados necessários para o funcionamento do E-commerce.

2. Padrão Broker

Broker é uma arquitetura de sistemas distribuídos em que um componente intermediário, chamado de broker, atua como uma peça entre diferentes componentes distribuídos. O broker por sua vez, é responsável por receber mensagens enviadas por um componente e encaminhá-las para o componente apropriado.

Image description

Vantagens

  • Permite que componentes diferentes possam ser adicionados ou removidos do sistema sem afetar o restante dos componentes.
  • Pode ser tolerante a falhas, ou seja se um componente falhar, o broker pode redirecionar as mensagens para um componente de backup ou tomar outras medidas para garantir que o sistema continue funcionando.

Desvantagens

  • A adição de um componente intermediário pode aumentar a complexidade do sistema.
  • A arquitetura de software Broker pode ter um impacto negativo no desempenho do sistema.

Exemplo em um cenário real

Chat online:

O broker atua como um intermediário para rotear mensagens de chat entre usuários. Quando um usuário envia uma mensagem para outro, a mensagem é enviada para o broker, que a encaminha para o destinatário correto.

Também pode ter a capacidade de armazenar mensagens offline e coordenar a entrega de mensagens quando o destinatário estiver online novamente, garantindo que as mensagens não sejam perdidas.

3. Arquitetura Peer-to-peer

Arquitetura distribuída em que os componentes têm capacidade tanto de fornecer quanto de consumir recursos. Cada componente da rede P2P é chamado de peer, e eles se comunicam entre si diretamente, sem a necessidade de um servidor central para coordenar as comunicações.

Image description

Vantagens

  • Cada dispositivo é considerado um nó e pode participar das atividades da rede, o que significa que a rede pode crescer sem um limite de tamanho.
  • Não há necessidade de um servidor central que controle a rede.

Desvantagens

  • Confiabilidade da rede depende da disponibilidade e da qualidade dos dispositivos individuais na rede.
  • O tráfego de dados é compartilhado entre os dispositivos na rede, o que pode resultar em uma largura de banda insuficiente.

Exemplo em um cenário real

BitTorrent:

Nesta rede, os usuários podem baixar e compartilhar arquivos diretamente entre si, sem a necessidade de um servidor central. Cada usuário é considerado um nó na rede e pode fornecer e obter arquivos de outros usuários. Dessa forma, a rede é capaz de lidar com uma grande quantidade de tráfego de dados, pois cada usuário contribui para o compartilhamento dos arquivos.

Finalizando...

Este foram outros três padrões que temos na arquitetura de software, trarei mais num futuro próximo.

Espero que isso ajude você de alguma maneira! 😄

Happy Coding!

Links úteis:
Broker Pattern
Arquitetura em camadas
Peer-to-peer

Top comments (0)