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.