Buscar

Aula_02 - Arquitetura de Aplicações

Prévia do material em texto

Modelos de Arquitetura 
de Software
Modelo de Arquitetura de 
Software
O que é “Arquitetura de Software”:
A arquitetura de software de um sistema abrange a forma como suas partes 
são organizadas, incluindo o comportamento dessa estrutura e quais 
componentes são responsáveis por realizar um conjunto específico de funções.
Principais benefícios de definir a arquitetura de software adequada para o 
sistema que você está desenvolvendo:
● Performance
● Escalabilidade
● Segurança
● Flexibilidade
● Manutenibilidade
Modelos de “Arquitetura de Software”:
Alguns modelos de arquitetura de software são bem disseminadas no mercado 
e foram surgindo à medida que novas tecnologias emergiram:
● Cliente / Servidor
● Arquitetura em Camadas
Outros modelos de arquitetura de software:
● MVC (Model-View-Controller)
● SPA (Single Page Applications)
● Microsserviços
● Serverless
● …
Cliente / Servidor
Cliente / Servidor:
Conceito:
“É uma arquitetura onde o processamento da informação é 
dividido em módulos ou processos distintos. Um processo é 
responsável pela manutenção da informação (Servidor), enquanto 
outro é responsável pela obtenção dos dados (Cliente)” BATTISTI, 
(2001, pág. 38)
Estrutura Básica:
Existe uma (ou mais) máquina(s) que atua como servidor, que 
disponibiliza recursos, para as máquinas que atuam como clientes.
Cliente / Servidor:
Cliente / Servidor:
Possui a interface que vai se comunicar com o usuário, sendo 
responsável pela entrada e saída de dados.
Realiza validação dos dados informados pelo usuário.
Não se comunica com outro cliente.
o hardware não precisa ser tão robusto quanto o do servidor.
Cliente / Servidor:
Está sempre em execução.
Atende vários clientes simultaneamente.
Pode se comunicar com outros servidores para atender uma 
requisição do cliente.
O hardware precisa ser robusto o suficiente para atender as 
demandas dos clientes.
Cliente / Servidor - Vantagens:
Maior facilidade de manutenção.
Os dados são armazenados no servidor, que possuem controles de 
segurança maior que o cliente. 
Com o armazenamento de dados centralizado, administrar 
atualizaçções dos dados é mais “fácil”.
Os cliente podem ter diferentes capacidade.
Cliente / Servidor - Desvantagens:
O servidor pode ficar sobrecarregado devido a quantidade de 
requisições simultâneas.
Se um servidor crítico falhar as requisições dos clientes não serão 
atendidas.
Arquitetura em 
Camadas
Arquitetura em 2 Camadas:
Estrutura Básica:
Utiliza a Camada Cliente e a Camada Servidor.
A Camada Cliente é responsável pela UI (User Interface) e pela 
lógica de negócio.
A Camada Servidor é responsável pelos dados.
Arquitetura em 2 Camadas:
Arquitetura em 2 Camadas:
Dificuldades:
Problema de escalabilidade.
Mudanças na lógica de negócios força uma atualização do software 
do cliente.
Arquitetura em 3 Camadas:
Estrutura Básica:
Utiliza a Camada de Apresentação, Camada de Aplicação e a 
Camada de Dados.
A Camada de Apresentação é responsável pela UI (User Interface).
A Camada de Aplicação é responsável pela regra de negócio.
A Camada de Dados é responsável pelos dados.
Arquitetura em 3 Camadas:
Arquitetura em 3 Camadas:
Melhorias:
Mais fácil de atualizar as regras de negócios.
Possibilidade de maior segurança e controle de acesso aos dados.
Mais fácil manter o sistema atualizado.
Dificuldades:
Mudanças da UI ainda força uma atualização do software.
Arquitetura em 4 Camadas:
Estrutura Básica:
Utiliza o browser como Cliente universal.
Quebra a Camada de Aplicação em duas, sendo Web e Aplicação.
Não instalar software no Cliente.
Arquitetura em 4 Camadas:
Arquitetura em 4 Camadas:
Dificuldades:
Os Clientes têm que suportar o browser.
A implementação é mais complexa.

Mais conteúdos dessa disciplina