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.
-
Camada de Apresentação (UI)
- Responsável por apresentar as informações para o usuário final.
-
Camada de Aplicação
- Responsável por lidar com as regras de negócio e os processos de negócio da aplicação.
-
Camada de Domínio
- Responsável por armazenar e recuperar informações.
-
Camada de Infraestrutura
- Responsável pelas informações no banco de dados.
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:
- Camada de Interface:
- Essa será a interface do usuário, permitindo que os clientes visualizem produtos e façam compras.
- 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.
- Camada de Domínio:
- Recupera informações relevantes do sistema, como informações do produto ou histórico de compras.
- 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.
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.
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)