image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Hannatty Barros
Hannatty Barros06/09/2023 18:29
Compartilhe

Arquiteturas de Softwares

  • #Arquitetura de Sistemas

As arquiteturas de software são fundamentais para o desenvolvimento de sistemas de software eficientes, escaláveis e robustos. Elas representam a estrutura organizacional de um sistema, definindo como seus componentes interagem e se relacionam entre si. Uma boa arquitetura de software oferece uma base sólida para a construção, manutenção e evolução de um sistema ao longo do tempo. Conheceremos a seguir o funcionamento de algumas destas.

Arquitetura em Camadas

Em sistemas que seguem esse padrão, as classes são organizadas em módulos de maior tamanho, chamados de camadas. As camadas são dispostas de forma hierárquica, como em um bolo. Assim, uma camada somente pode usar serviços — isto é, chamar métodos, instanciar objetos, estender classes, declarar parâmetros, lançar exceções, etc. — da camada imediatamente inferior.

Arquitetura em 3 Camadas

Leva esse nome, por ser dividida em 3 partes:

1 - Interface, ou camada de apresentação, responsável por toda interação com o usuário. O código que implementa esse formulário deve estar na camada de interface;

2 - Lógica de Negócio, ou camada de aplicação, implementa as regras de negócio do sistema. Executa e verifica o funcionamento das regras setadas no sistema.

3 - Banco de Dados, responsável pelo armazenamento dos dados manipulados pelo sistema.

Este tipo de arquitetura é geralmente distribuída, ou seja, executa a camada de interface na máquina do cliente e a camada de lógica de negócio em um servidor.

É possível ainda haver uma arquitetura de duas camadas, onde a camada de interface e aplicação são unidas em uma única camada, que será executada do lado do cliente, que portanto deverá ter um maior poder de computação.

Arquitetura MVC (Model-View-Controller)

View, contém as classes responsáveis pela apresentação da interface gráfica do sistema, incluindo janelas, botões, menus, barras de rolagem, etc.

Controller, é quem percebe os eventos de entrada e se comunica tanto com o model quanto com a View.

Model, classes que armazenam os dados manipulados pela aplicação. Não se comunicam diretamente com a View.

Single Page Applications (SPAs)

Em uma aplicação Web tradicional, com formulários, menus e botões, toda vez que o usuário gera um evento, o navegador envia informações para o servidor Web, que as processa e devolve uma nova página para ser exibida para o usuário. Já uma aplicação SPA, carrega para o navegador todo o código, incluindo páginas HTML e scripts em CSS e JavaScript. Com isso, apesar de usar um navegador, o usuário tem a impressão de que ele está usando uma aplicação local, pois não ocorre mais uma atualização da página do navegador toda vez que ele gera certos eventos.

Microsserviços

Grupos de módulos são executados em processos(serviços) independentes, sem compartilhamento de memória. Ou seja, o sistema é decomposto em módulos não apenas em tempo de desenvolvimento, mas também em tempo de execução. Com isso, as chances de que mudanças em um módulo causem problemas em outros módulos ficam bem menores. Os serviços são ditos micro porque não implementam funcionalidades complexas.

Vantagens da arquitetura:

Escalabilidade;

Falhas parciais;

Possibilidade de implementação em tecnologias diferentes incluindo linguagens de programação, frameworks e bancos de dados. Por exemplo, o microsserviço de cadastro de clientes em um sistema de comércio eletrônico, por exemplo, pode ser implementado em Java com um banco de dados relacional. Já o microsserviço de recomendação de novas compras pode ser implementado em Python com um banco de dados NoSQL.

Arquitetura Orientada a Mensagens

Neste tipo de arquitetura, a comunicação entre clientes e servidores é mediada por um terceiro serviço que têm a única função de prover uma fila de mensagens.

Os clientes atuam como produtores de informações, isto é, eles inserem mensagens na fila. E os servidores atuam como consumidores de mensagens, isto é, eles retiram mensagens da fila e processam a informação contida nelas. Uma mensagem é um registro (ou um objeto) com um conjunto de dados. E uma fila de mensagens é uma estrutura do tipo FIFO (first in, first out), isto é, a primeira mensagem a entrar na fila é a primeira a ser consumida pelo servidor.

Características da arquitetura

Comunicação assíncrona pelo lado do cliente;

Serviço de mensagens necessita de máquina estável de com bom processamento;

Fila de mensagens deve ser persistente. Dados da fila não podem ser perdidos por queda de servidor;

Arquiteturas Publish/Subscribe

Nessa arquitetura as mensagens são chamadas de eventos.

Publishers ⇒ Produzem eventos e os publicam no serviço de publish/subscribe;

Subscribers ⇒ Assinam previamente eventos de seu interesse. Quando um evento é publicado, os seus assinantes são notificados.

Compartilhe
Comentários (1)

HS

Heber Silva - 06/09/2023 18:45

👏