Buscar

Visão Geral Sobre Arquiteturas de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquiteturas de Software 1
📐
Arquiteturas de Software
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 
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;
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.
Banco de dados, armazena os 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.
Arquiteturas de Software 2
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.
Exemplo
<html> 
<script src="https://cdn.jsdelivr.net/npm/vue"></script> 
 
<body> 
 
<h3>Uma Simples SPA</h3> 
 
<div id="ui"> 
 Temperatura: {{ temperatura }} 
 <p><button v-on:click="incTemperatura">Incrementa 
 </button></p> 
</div> 
 
<script> 
var model = new Vue({ 
 el: '#ui', 
 data: { 
 temperatura: 60 
Arquiteturas de Software 3
 }, 
 methods: { 
 incTemperatura: function() { 
 this.temperatura++; 
 } 
 } 
}) 
</script> 
 
</body> 
</html>
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
Arquiteturas de Software 4
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.
Arquiteturas de Software 5
Exercícios de fixação em:
https://engsoftmoderna.info/cap7.html
https://engsoftmoderna.info/cap7.html

Continue navegando