An Interest In:
Web News this Week
- April 24, 2024
- April 23, 2024
- April 22, 2024
- April 21, 2024
- April 20, 2024
- April 19, 2024
- April 18, 2024
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.
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
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To