Prévia do material em texto
Arquitetura de Software Padrões de Arquitetura de Software 2 www.resumosdeti.com.br CONTEÚDO Arquitetura de Software ................................................................................................... 3 Arquitetura em Camadas ....................................................................................................... 3 Modelo Centralizado (Arquitetura Monolítica) ..................................................................... 4 Modelo Cliente/Servidor ....................................................................................................... 4 Arquitetura de Duas Camadas (Two-tier) .......................................................................... 6 Arquitetura Multicamadas (Multi-tier) .................................................................................. 8 Arquitetura de Três camadas (Three-tier) .......................................................................... 9 Arquitetura em 3/4 Camadas (Web-Based) ........................................................................ 12 Arquitetura Distribuída em ‘N’ Camadas ......................................................................... 13 Arquitetura MVC (Model-View-Controller) ......................................................................... 15 MVC vs. Three-tier Architecture ....................................................................................... 18 Arquiteturas MVC na Web ................................................................................................... 19 Model 1 ............................................................................................................................. 19 Model 2 ............................................................................................................................. 19 O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 3 www.resumosdeti.com.br Arquitetura de Software - Arquitetura refere-se a uma representação abstrata de componentes e comportamentos de um sistema. - Uma arquitetura bem projetada deve ser capaz de atender aos requisitos funcionais e não funcionais do sistema e ser suficientemente flexível para suportar requisitos voláteis. - Uma forma de organizar a arquitetura de um sistema complexo em partes menores é através de camadas de software: • Cada camada corresponde a um conjunto de funcionalidades de um sistema de software. • Funcionalidades de alto nível dependem de funcionalidades de baixo nível. - Camadas fornecem um nível de abstração através do agrupamento lógico de subsistemas relacionados. Arquitetura em Camadas − Uma forma de organizar a arquitetura é através de camadas de software: o Cada camada provê um conjunto de funcionalidades em determinado nível de abstração; o Tipicamente, uma camada de mais alta abstração depende de uma camada de mais baixa abstração, e não o contrário; o Permite que o sistema de software seja mais portável e modificável. ▪ Uma mudança em determinada camada, desde que seja mantida sua interface, não afeta as outras camadas; − Vantagens o Separação de responsabilidades o Decomposição de complexidade o Encapsulamento de implementação o Maior reuso e extensibilidade − Desvantagens o Podem penalizar a performance do sistema o Aumento do esforço e complexidade de desenvolvimento O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 4 www.resumosdeti.com.br Modelo Centralizado (Arquitetura Monolítica) - Programa e dados armazenados em uma única grande máquina – não havia camadas • Mainframe - Continham todas as funcionalidades em um único módulo. - Manutenção difícil. - A entrada do usuário, verificação, lógica de negócio e acesso a banco de dados estava presente em um mesmo lugar. - Acesso através de terminais “burros”. Modelo Cliente/Servidor - Cliente-servidor é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores. - Cada instância de um cliente pode enviar requisições de dado para algum dos servidores conectados e esperar pela resposta. - Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente. - O Modelo Cliente/Servidor foi criado tendo como base a descentralização dos dados e recursos de processamento, em oposição ao Modelo Centralizado. - Servidor • Fornecedores de um recurso ou serviço; • Sempre espera por um pedido de um cliente; • Atende aos pedidos e, em seguida, responde aos clientes com os dados solicitados; O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 5 www.resumosdeti.com.br • Pode se comunicar com outros servidores para atender uma solicitação específica do cliente; • Fornece recursos de rede. - Cliente • Solicita os serviços oferecidos pelos servidores; • Inicia pedidos para servidores; • Espera por respostas; • Recebe respostas; • Utiliza recursos da rede. Somerville − O modelo de arquitetura cliente-servidor é um modelo de sistema distribuído, que mostra como os dados e o processamento são distribuídos em uma série de processadores, seus principais componentes são: o Servidores: oferecem serviços, como por exemplo, servidores de banco de dados. o Clientes: solicita os serviços oferecidos pelos servidores. o Rede: permite aos clientes acessarem os servidores. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 6 www.resumosdeti.com.br Arquitetura de Duas Camadas (Two-tier) - Sistemas cliente-servidor em duas camadas foram dominantes durante aproximadamente toda a década de 90 e são utilizados até hoje. - Aplicação rodava na máquina cliente que interagia com um SGBD (servidor de dados). - Duas abordagens: • Fat Client/Thin Server • Thin Client/Fat Server - Fat Client / Thin Server (Cliente Pesado / Servidor Leve) • Camada Cliente: ▪ Continha toda a lógica de apresentação ▪ Negócio ▪ Acesso a dados • Camada Servidor: ▪ Remover do servidor o ônus do processamento de dados ▪ Servidor armazena Banco de Dados O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 7 www.resumosdeti.com.br - Thin Cliente/Fat Server (Cliente Leve / Servidor Pesado) • Camada Cliente: ▪ Interface com usuário • Camada Servidor: ▪ Processamento pesado no servidor ▪ Lógicada aplicação (Regras de negócio) ▪ Banco de dados - Problemas da Arquitetura Cliente-Servidor de Duas Camadas • Falta de escalabilidade (conexões a bancos de dados) • Enormes problemas de manutenção (mudanças na lógica de aplicação forçava instalações) • Dificuldade de acessar fontes heterogêneas (legado CICS, 3270, …) FCC Sobre a arquitetura cliente-servidor em camadas é correto afirmar: Sistemas que usam a arquitetura cliente-servidor em duas camadas geralmente possuem problemas de falta de escalabilidade, dificuldade de manutenção e dificuldade de acessar fontes heterogêneas. No Modelo de 2 Camadas: • A estação cliente faz acesso direto ao servidor de banco de dados. • Um conjunto de bibliotecas, localizadas no computador cliente tem a função de viabilizar a comunicação entre ele e o servidor. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 8 www.resumosdeti.com.br Arquitetura Multicamadas (Multi-tier) - Arquitetura Multicamadas (multi-tier) é uma arquitetura cliente/servidor em que são separados logicamente: • Apresentação • Processamento • Funções de gerenciamento de dados - A Arquitetura Multi-tier mais utilizada hoje é a Arquitetura de Três Camadas (three-tier). - Arquitetura multicamas é uma forma de organização através de camadas de software: • Cada camada provê um conjunto de funcionalidades em determinado nível de abstração. • Tipicamente, uma camada de mais alta abstração depende de uma camada de mais baixa abstração, e não o contrário. • Uma mudança em determinada camada, desde que seja mantida sua interface, não afeta as outras camadas. - Tier x Layer: • Tier (física): implica em separação física. • Layer (lógica): as camadas não precisam rodar em máquinas diferentes. - Vantagens • Separação de responsabilidades; • Decomposição de complexidade; • Encapsulamento de implementação; • Maior reuso e extensibilidade. - Desvantagens • Podem penalizar a performance do sistema; • Aumento do esforço e complexidade de desenvolvimento. FCC Uma arquitetura em camadas pode ser combinada com uma arquitetura centrada nos dados em muitas aplicações de bancos de dados. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 9 www.resumosdeti.com.br Arquitetura de Três camadas (Three-tier) - Chamado também de Arquitetura Cliente/Servidor de 3 (três) Camadas. - Para minimizar o impacto de mudanças nas aplicações, decidiu-se separar a camada de negócio da camada de interface gráfica, gerando três camadas: • Camada de Apresentação • Camada de Aplicação ou Lógica de Negócio • Camada de Dados, Acesso a Dados ou Armazenamento - Camada de Apresentação (GUI) • Contém: Clientes • Chamados de THIN CLIENT ▪ São enxutos ▪ Desconhecem a lógica da aplicação • Contém o código para a apresentação da aplicação (entrada e saída de dados) • A camada de apresentação é altamente depende de ambiente ▪ Páginas WEB (HTML, JavaScript, CSS, JSP, Applet, etc.) ▪ Aplicações Desktop (Windows/Linux Applications, etc.) ▪ Menus baseados em texto (sistemas legados, aplicações móveis, etc.) - Camada de Aplicação ou Lógica do Negócio (business logic) • Contém: Servidores de Aplicação • Coordena a aplicação, processa comandos, toma decisões lógicas, faz avaliações e implementa as regras de negócio O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 10 www.resumosdeti.com.br • É inerente ao domínio (negócio) da aplicação • Vários protocolos podem ser utilizados para ligar esta camada às outras duas ▪ Sockets, HTTP, TCP/IP, etc. (Apresentação) ▪ JDBC, LDAP, ODBC, etc. (Dados) - Camada de Dados • Contém: Servidor de Dados • Contém o código responsável por armazenar e recuperar dados de uma base de dados ou sistema de arquivos. • Normalmente há uma subcamada (interface) dentro desta camada que abstrai o mecanismo de persistência. ▪ O famoso padrão DAO (Data Access Object) é utilizado aqui. - Vantagens • É mais fácil de modificar ou substituir qualquer camada sem afetar as outras; • Separar a lógica de aplicação da lógica de acesso a dados melhora o balanceamento de carga; • É mais fácil assegurar políticas de segurança na camada do servidor sem interferir nos clientes. - Desvantagens • Quanto mais camadas houver na arquitetura, maior é a tendência de a performance diminuir; • O rastreamento de ponta-a-ponta em sistemas complexos com muitas camadas é uma tarefa complicada • Requer um maior esforço de desenvolvimento. FCC A arquitetura multicamadas divide-se em três camadas lógicas. São elas: Apresentação, Negócio e Acesso a Dados. Em relação ao modelo da arquitetura Cliente/Servidor de três camadas, considere: • A camada do cliente não tem que se preocupar com os processos, responsabilizando-se apenas pelas solicitações de serviço à camada intermediária. • A camada intermediária é responsável pelo processamento da aplicação em si, ou seja, recebe solicitações dos clientes, processa os dados e envia-os para armazenamento no servidor de conteúdo. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 11 www.resumosdeti.com.br • Na camada intermediária, um monitor de transações adquire características de gerenciar processos, transações e a comunicação entre o cliente e o servidor. • O objetivo do servidor de aplicação é compartilhar a lógica de negócios e os mecanismos de recuperação de dados. Um sistema cliente servidor de três camadas oferece uma clara separação entre a lógica da aplicação e a interface com o usuário e os dados. Uma das vantagens da arquitetura de três camadas é permitir que qualquer uma das três camadas sejam atualizadas ou substituídas de forma independente em resposta a mudanças nos requisitos ou na tecnologia utilizada. No modelo de três camadas, toda a Lógica do negócio fica no servidor de aplicações. O Cliente não tem acesso direto ao banco de dados, sem antes passar pelo servidor de aplicações, onde estão contidas as regras do negócio, que determinam de que maneira os dados serão utilizados. A camada Apresentação reside no programa instalado no cliente. No Modelo de 3 camadas: • As conexões no banco de dados são realizadas pelo servidor de aplicação. • O gargalo de I/O (Input/Output) é evitado, uma vez que é possível ter a mesma regra de negócio dividida entre vários servidores através do balanceamento de carga. CESPE Em arquitetura multicamadas, o servidor de aplicação nada mais é do que um programa que fica entre o aplicativo cliente e o sistema de gerenciamento de banco de dados. Normalmente, a arquitetura em três camadas conta com as camadas de apresentação, de aplicação e de dados. A arquitetura cliente/servidortradicional vem sendo substituída pela de múltiplas camadas. Conceitualmente, uma aplicação pode ter qualquer número de camadas. A arquitetura denominada three-tier, por exemplo, define três camadas lógicas: camada de interface de usuário, camada de regra de negócios e camada de acesso a banco de dados. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 12 www.resumosdeti.com.br Arquitetura em 3/4 Camadas (Web-Based) - A arquitetura em 3 camadas original sofre problemas: • A instalação inicial dos programas no Desktop é cara; • O problema de manutenção ainda persiste quando há mudanças à camada de apresentação; • Não se pode instalar software facilmente num desktop que não está sob seu controle administrativo. - Então, usa-se o Browser como Cliente Universal. • Conceito de Intranet; • A camada de aplicação se quebra em duas: Web e Aplicação; • Evitamos instalar qualquer software no desktop e, portanto, problema de manutenção; • Evitar instalação em computadores de cliente, parceiros, fornecedores, etc. - Às vezes continua-se a chamar isso de 3 camadas, porque as camadas Web e Aplicação frequentemente rodam na mesma máquina (para pequenos volumes). CESPE Uma das principais arquiteturas para o desenvolvimento de sistemas de informação distribuídos consiste na arquitetura cliente-servidor em três camadas, sendo uma camada de banco de dados, normalmente implementada em um SGBD, uma camada de negócios consistindo de um servidor principal (Web) associado a outros servidores de aplicação e a camada de interface com o usuário, composta por um cliente compatível com o servidor O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 13 www.resumosdeti.com.br da camada de negócios (Web browser). Essa arquitetura tem recebido um forte apelo, com a utilização de tecnologia Web nas camadas de negócio e de usuário, o que confere alta portabilidade aos sistemas. Em uma aplicação de acesso a banco de dados segundo a arquitetura em três camadas via web, a interação entre os clientes (camada de apresentação) e o banco de dados (camada de armazenamento) é intermediada por uma camada de servidor de aplicação que fisicamente pode se localizar na plataforma computacional em que está o banco de dados. CESGRANRIO A arquitetura de 3 camadas é comumente utilizada no desenvolvimento de aplicações para Internet. Nesse tipo de arquitetura, a lógica da aplicação é dividida entre as camadas físicas cliente, servidor de aplicação e banco de dados. São características deste tipo de arquitetura o(a): - Aumento da disponibilidade do serviço oferecido através da possibilidade de redundância dos servidores de aplicação e banco de dados. - Facilidade de integração de múltiplas fontes de dados. - Maior segurança, uma vez que o banco de dados não é acessado diretamente pelo cliente. - Aplicação em larga escala, possibilitando o atendimento a vários clientes simultaneamente. Arquitetura Distribuída em ‘N’ Camadas - Os problemas remanescentes: • Não há suporte a Thin Clients (PDA, celulares, smart cards, ...) pois preciso usar um browser (pesado) no cliente; • Dificuldade de criar software reutilizável; • Fazer aplicações distribuídas multicamadas é difícil. - As camadas podem ter vários nomes: 1. Camadas de Apresentação, Interface, Cliente; 2. Camada Web; 3. Camada de Aplicação, Negócios (Business); 4. Camada de Dados, Enterprise Information System (EIS). O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 14 www.resumosdeti.com.br FCC Retirar a camada Apresentação do cliente e centralizá-la, na maioria das vezes, em um servidor Web, é a ideia básica do modelo de quatro camadas. Com isso, o Cliente passa a ser o navegador (browser) utilizado pelo usuário. Todo o acesso do Cliente ao banco de dados é feito de acordo com as regras contidas no servidor de aplicações, onde estão contidas as regras do negócio, que determinam de que maneira os dados serão utilizados. A camada Apresentação passa a residir no servidor WEB. São aspectos que podem caracterizar uma arquitetura cliente-servidor, estabelecida logicamente em 4 camadas: • A camada Cliente contém um navegador de Internet, caracterizado como cliente universal. • A camada de Lógica do Negócio se quebra em duas: camada de Aplicação e camada Web, em que o servidor Web representa a camada de Apresentação. • Na camada de Lógica do Negócio, o servidor de aplicação passa a utilizar middleware, para suporte a thin clients (PDA, celulares, smart cards, etc) e soluções baseadas em componentes, tais como, J2EE e .Net. • Se, de um lado, a camada de Aplicação estabelece uma interface com a camada de Dados, do outro o faz com a camada Web e com os thin clients da camada Cliente. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 15 www.resumosdeti.com.br CESPE Na arquitetura multicamadas, as camadas podem ter vários nomes. Por exemplo, a camada de aplicação pode ser chamada de camada de negócio, e a camada de dados pode receber o nome de camada EIS (enterprise information system). Arquitetura MVC (Model-View-Controller) − Principal padrão de arquitetura em três camadas utilizado no Mercado. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 16 www.resumosdeti.com.br - Camada de Visão (View) • É a camada de interface com o usuário. • Responsável por receber a entrada de dados e apresentar os resultados. • Não está preocupada em como ou onde a informação foi obtida, apenas exibe a informação. • Inclui elementos de exibição no cliente. ▪ HTML, XML, ASP, Applets, etc. • Pode requerer dados diretamente da camada de Modelo. - Camada de Controle (Controller) • Responsável por controlar e mapear as ações do usuário, fazendo o papel de intermediário entre a camada de Visão e de Modelo; • Atualiza o Modelo; • Seleciona a Visão. - Camada de Modelo (Model) • Responsável por modelar os dados e o comportamento por trás das regras de negócio; • Se preocupa com o armazenamento, manipulação e geração dos dados; • Objetos do Modelo são normalmente reusáveis, distribuídos, persistentes e portáveis para várias plataformas. FCC No padrão MVC é possível definir grupos de componentes principais: o Model (Modelo), o View (Apresentação) e o Controller (Controle). Deve fazer parte do componente Model, as classes com métodos conhecidoscomo setters e getters e que representam tabelas do banco de dados. O padrão de arquitetura MVC é um modelo de camadas que divide a aplicação em três componentes: Model (modelo), View (visualizador) e Controller (controlador). As funções de cada um destes três componentes são apresentadas abaixo: - View: exibe para o usuário os dados fornecidos pelo controle e estabelece uma interface para interação entre o usuário e a aplicação. - Controller: interpreta eventos de entrada e envia requisições para o modelo de dados; em seguida, processa os dados carregados a partir do modelo e envia para o visualizador. - Model: encapsula o acesso aos dados e funções básicas da aplicação, fornecendo ao usuário procedimentos que executam tarefas específicas. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 17 www.resumosdeti.com.br MVC é o padrão de projeto utilizado em aplicações WEB que permite separar as páginas e classes da aplicação em três grupos (muitas vezes chamados de camadas) conhecidos como Apresentação, Controle e Modelo. O componente Controller do MVC define o comportamento da aplicação, as ações do usuário para atualizar os componentes de dados e seleciona os componentes para exibir respostas de requisições. No projeto de arquitetura modelo-visão-controle (MVC), o controlador processa e responde a eventos e invoca alterações ao modelo, o modelo encapsula funcionalidades e objetos de conteúdo e a visão renderiza a interface de usuário a partir do modelo. Control: Seleção do comportamento do modelo. Model: Encapsulamento dos objetos de conteúdo. View: Requisição das atualizações do modelo. Em uma Aplicação Web desenvolvida utilizando o design pattern MVC, as páginas HTML e as classes com métodos que acessam o banco de dados e executam instruções SQL são representadas, respectivamente, nos componentes View e Model. Com relação à arquitetura MVC, considere: • O MODEL representa os dados da empresa e as regras de negócio que governam o acesso e atualização destes dados. • O VIEW acessa os dados da empresa através do MODEL e especifica como esses dados devem ser apresentados. É de responsabilidade do VIEW manter a consistência em sua apresentação, quando o MODEL é alterado. • O CONTROLLER traduz as interações do VIEW em ações a serem executadas pelo MODEL. Com base na interação do usuário e no resultado das ações do MODEL, o CONTROLLER responde selecionando uma VIEW adequada. A camada Controller geralmente possui um componente controlador padrão criado para atender a todas as requisições do cliente. CESPE No MVC (model-view-controller), um padrão recomendado para aplicações interativas, uma aplicação é organizada em três módulos separados. Um para o modelo de aplicação com a representação de dados e lógica do negócio, o segundo com visões que fornecem apresentação dos dados e input do usuário e o terceiro para um controlador que despacha pedidos e controle de fluxo. O MVC promove a estrita separação de responsabilidades entre os componentes de uma interface. O controlador é responsável pela coordenação entre atualizações no modelo e interações com o usuário. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 18 www.resumosdeti.com.br No padrão de desenvolvimento modelo-visualização-controlador (MVC), o controlador é o elemento responsável pela interpretação dos dados de entrada e pela manipulação do modelo, de acordo com esses dados. Aplicações web que não requerem controle de segurança podem ser construídas utilizando-se a arquitetura conhecida como modelo 1 ou MVC (Model View Controller). Por meio do MVC, é possível o desenvolvimento de aplicações em 3 camadas para a Web. MVC vs. Three-tier Architecture - Arquitetura em Três Camadas “pura” é LINEAR → toda a comunicação deve passar pela Camada Intermediária. - Arquitetura MVC é TRIANGULAR → nem toda a comunicação passa pelo Controlador. • A Visão despacha atualizações para o Controlador • O controlador atualiza o modelo • A Visão é atualizada diretamente pelo Modelo FCC Na arquitetura de três camadas (three-tier) a comunicação não é linear, mas sim triangular, ou seja, os componentes de apresentação podem se comunicar diretamente com os componentes de dados sem passar pela camada intermediária. ERRADO Comentário: A Banca inverteu as definições. A Arquitetura MVC que é triangular. A arquitetura de três camadas (three-tier) é outra forma de se referir ao design pattern MVC. Three-tier e MVC são a mesma coisa, pois separam os componentes da aplicação em três camadas com a mesma topologia. ERRADO Comentário: Apesar de possuírem 3 entidades, são padrões distintos. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 19 www.resumosdeti.com.br Arquiteturas MVC na Web Model 1 - Vantagem: • Facilidade de desenvolvimento - Desvantagem: • Não existe separação entre a View e o Controller. • É difícil de manter e reutilizar. Model 2 - A arquitetura “Model 2” é basicamente uma arquitetura Model-View-Controller (MVC) que separa a geração de conteúdo da apresentação. - A arquitetura “Model 2” é caracterizada pela presença de uma Servlet Controller entre o navegador cliente e as páginas JSP. - A Servlet Controller recebe as requisições vindas do navegador, chama as classes de modelo com regras de negócio ou dados do domínio, quando necessário, e envia a resposta para que o JSP gere o HTML para ser apresentado no browser responsável pela reaquisição inicial. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgação e distribuição, sujeitando-se os infratores à responsabilização civil e criminal. Arquitetura de Software Padrões de Arquitetura de Software 20 www.resumosdeti.com.br - Aplicações “Model 2” são mais flexíveis e fáceis de manter e estender, porque as visões não referenciam umas às outras diretamente. - A Servlet Controller provê um ponto único de controle para segurança e logging. - A arquitetura “Model 2” é mais indicada para aplicações complexas. - Existem frameworks MVC que simplificam a implementação de aplicações “Model 2”. CESPE Na plataforma J2EE, uma aplicação web para a Internet pode ser composta por servlets, Java Server Pages (JSP) e páginas HTML. Nessas aplicações, a apresentação dos dados pode ser separada da lógica do negócio, adotando-se o estilo de arquitetura model view controller (MVC). Nesse caso, pode-se usar servlets operando como controladoras que recebem as solicitações dos usuários e providenciam o processamento das mesmas. Em uma mesma aplicação, pode existir diversas servlets operando como controladoras. O conteúdo deste resumo é de uso exclusivo de Daniel Neto - E-mail: danielneto@outlook.com - ID: 32647 - Data: 5 de setembro de 2021, vedada, por quaisquer meios e a qualquer título, a sua reprodução, cópia, divulgaçãoe distribuição, sujeitando-se os infratores à responsabilização civil e criminal.