Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
February 23, 2022 10:54 pm GMT

Padres e Estilos de Arquitetura de Software

Arquitetura um conjunto de partes que compem o sistema e o ambiente em que est inserido, suas responsabilidades e seus relacionamentos.

Image description

Estilos e Padres Arquiteturais de Software

Os sistemas seguem um estilo de organizao estrutural, ou seja, so como "templates" para arquiteturas concretas que expressam uma organizao estrutural, apresentando um conjunto pr-definidos de subsistemas e suas responsabilidades.

Um padro arquitetural uma soluo que j foi estudada, testada e documentada de um problema recorrente. O modelo ajuda na tomada de decises do projeto de software, como qual ser sua utilidade e as funes e relacionamentos de cada subsistema, ou seja, quem define a estrutura fundamental do programa.

Segue um resumo dos principais estilos e padres de arquitetura de software:

  • Camadas: estrutura aplicaes que podem ser decompostas em grupos de subtarefas hierarquicamente. Cada camada oferece servio camada acima dela, e serve como cliente da camada inferior. Suas vantagens so: permite particionar problemas complexos em uma sequncia de passos incrementais; mudanas em uma camada afetam, no mximo, duas camadas adjacentes; permite projetos baseados em nveis crescentes de abstraes; suas desvantagens so: difcil encontrar nveis corretos de abstrao; nem todos os sistemas so facilmente estruturas em forma de camadas. Exemplo: Modelo OSI;

  • Cliente-Servidor: baseado em programas servidores (aguarda mensagens, executa servios e retorna resultados) e programas clientes (estabelece conexo, envia mensagens para servidor, aguarda mensagens de resposta). Vantagens: utilizao dos recursos do servidor; escalabilidade; aumentando a capacidade computacional do servidor; Desvantagens: aumenta a complexidade e os custos de comunicao;

  • Tubos e filtros: divide a tarefa entre vrias etapas de processamento sequencial, pois a sada de uma etapa a entrada da etapa seguinte. Cada etapa de processamento implementada pelo filtro, que consome e entrega os dados de forma incremental, em vez de todos os dados de uma s vez. O fluxo de dados implementado pelos tubos. Exemplo: compilador; Vantagens: flexibilidade na troca de filtros e recombinao; eficincia em processamento em paralelo; vrios filtros consumindo e produzindo dados em paralelos. Desvantagens: gerenciamento de erros e ausncia de um estado global compartilhado;

  • Micro servios: refere-se a um estilo de arquitetura para construo de software que decompe o domnio de negcio em pequenos blocos, transaccionalmente consistentes e com contexto prprio;

  • Publish-Subscriber: um modelo de comunicao assncrono e fracamente acoplado, no qual uma aplicao gera eventos que sero processados por outras aplicaes que tiverem interesse nele;

  • Representational State Transfer (REST): um estilo de arquitetura utilizado para fornecer padres entre sistemas de computador na web, facilitando a comunicao entre os mesmos. Neste estilo, a implementao do cliente e do servidor pode ser feita de forma independente, sem que um conhea o outro. A grande vantagem que isso permite que o cdigo de um dos lados pode ser alterado sem afetar o outro;

  • Arquitetura Orientada a Servios (SOA): um tipo de design de software que torna os componentes reutilizveis, utilizando interfaces de servios como uma linguagem de comunicao em uma rede. Ou seja, o SOA integra os componentes de software que foram implementados e so mantidos separadamente, permitindo que eles se comuniquem e trabalhem juntos para formar aplicaes que funcionam em sistemas diferentes;

  • Model-View-Controller: neste estilo a aplicao dividida em 3 camadas - Model (contm as funcionalidades principais e os dados), View (camada de exibio dos dados aos usurios), Controller (liga a model e a view, trafegando os dados entre as camadas). Vantagens: organizao clara das abstraes, permite mltiplas views em um mesmo modelo e as views so sincronizadas. Desvantagens: aumenta a complexidade;

  • Broker: estrutura sistemas distribudos que precisam interagir atravs de invocao remota de servios (desacopla servidores de clientes e coordena a comunicao entre componentes). Exemplo: servios de busca. Vantagens: transparncia de localizao dos servios, flexibilidade, portabilidade. Desvantagens: sobrecarga de processamento;

  • Arquitetura Orientada a Eventos: um mtodo de desenvolvimento de software para criar aplicaes que se comunicam ou se integram de forma assncrona com outras aplicaes e sistemas atravs de eventos. Ela composta por produtores de eventos (enviam as mensagens), canais de eventos e seus consumidores (consomem as mensagens). A utilizao de canais de eventos como intermedirio permite que os produtores sejam dissociados dos consumidores, permitindo assim, que eles possam agir independentemente uns dos outros (o que possibilita maior escalabilidade e tolerncia a falhas). Alm disso, a organizao de aplicaes envolvendo eventos tambm permite que o cdigo seja executado de forma assncrona e automtica, sem interao do usurio;

  • CQRS (Comand and Query Responsibility Segregation): este padro sobre separar a responsabilidade e escrita e leitura de seus dados. A ideia segregar as responsabilidades da aplicao em Command (operaes que modificam o estado dos dados na aplicao) e Query (operaes que recuperam informaes dos dados na aplicao);


Original Link: https://dev.to/guilhermemanzano/padroes-e-estilos-de-arquitetura-de-software-1498

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To