Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIan Silano Alterado mais de 10 anos atrás
1
Arquitetura de Software e Linguagens para desenvolvimento na Web Atual
Tópico 4 Prof MSc Vitor Mesaque Alves de Lima
2
Tópicos Introdução Padrão Arquitetural em 3 Camadas MVC MVP
Comparações Linguagens Web Scripts Client-Side Scripts Server-Side Processamento no Servidor Ajax Conclusões Programação para Web
3
Introdução Crescimento exponencial do desenvolvimento de aplicações Web Internet: divulgação com baixo custo de produtos e serviços aumento da capacidade de tráfego nas redes aumento na capacidade de armazenamento e processamento Surgimento de novas tecnologias para o desenvolvimento de WebApps: robustas e com maior interação Programação para Web
4
Introdução Tecnologias baseadas em padrões arquiteturais e padrões Web: MVC (Model-View-Controller) Arquitetura em 3 camadas facilitam a manutenção e a evolução das WebApps menor acoplamento entre os módulos: interface gráfica e dados da aplicação Exemplo de tecnologias: JSP, Ruby, Python e PHP Programação para Web
5
Padrões Arquiteturais e Web
WebApps possuem um amplo conjunto de conceitos e terminologias associadas características de aplicações hipermídia Não exigem a instalação para a sua execução: somente um navegador Web Vários padrões arquiteturais existentes na literatura, porém os mais utilizados: MVC Arquitetura em 3 camadas Programação para Web
6
Padrão “Um Padrão descreve um problema que ocorre repetidas vezes em nosso meio e inclui uma solução genérica para o mesmo, de tal maneira que se pode utilizá-la mais de um milhão de vezes, sem nunca fazê-lo de forma idêntica.” [Cristopher Alexander, 1979] Programação para Web
7
Categorias de Padrões em Engenharia de Software
Padrões Arquiteturais: expressam um esquema de organização estrutural fundamental para sistemas de software. (BUSCHMANN et al., 1996) Padrões de Projeto: disponibilizam um esquema para refinamento de subsistemas ou componentes de um sistema de software (GAMMA et al., 1995) Idiomas: descreve como implementar aspectos particulares de componentes ou de relacionamentos entre eles, usando as características de uma dada linguagem de programação
8
Padrão Arquitetural em 3 Camadas
Programação para Web
9
Padrão Arquitetural em Camadas
Uma arquitetura em camadas é organizada hierarquicamente, onde as camadas mais internas provêem serviços às camadas mais externas Useful Systems Agregados de Elementos Menores Base Utility Core Level Users Programação para Web
10
Padrão Arquitetural em Camadas
Componentes Camadas Conectores protocolos que determinam como as Camadas interagem Regras limites de interação às Camadas adjacentes Exemplos: protocolos de comunicação em camadas (OSI), alguns sistemas operacionais, arquitetura em 3 Camadas para sistemas de informação comerciais (Interface, Negócio, Persistência) Programação para Web
11
Padrão Arquitetural em Camadas
É um tipo de arquitetura cliente/servidor: interface com o usuário, lógica de processo, e armazenamento de dados são desenvolvidos e mantidos em módulos independentes Mais conhecida: 3 Camadas Forma como é concebida permite que cada módulo seja atualizado ou replicado de maneira independente com relação aos requisitos de tecnologias Programação para Web
12
Padrão Arquitetural em 3 Camadas
Componentes: Camada de Apresentação: interface gráfica permitindo a interação com o usuários por meio dos serviços disponíveis Camada Lógica: contém toda a lógica do negócio, bem como a lógica de transações Camada de Dados: contém os dados que são manipulados pela aplicação, bem como o acesso, atualização e persistência destes Programação para Web
13
Padrão Arquitetural em 3 Camadas
Programação para Web
14
Padrão Arquitetural em 3 Camadas
Camada de Dados Camada do Negocio Camada de apresentação Programação para Web
15
Padrão Arquitetural em 3 Camadas
Vantagens: Suporte à Evolução dos Sistemas Flexibilidade e boa Manutenibilidade Desvantagens: Problemas de Desempenho e Comunicação Complexidade na Implementação do Sistema Programação para Web
16
Padrão Arquitetural Model-View-Controller
Programação para Web
17
Padrão Arquitetural MVC
Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View) Alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout Programação para Web
18
Padrão Arquitetural MVC
O MVC resolve este problema através da separação das tarefas de acesso aos dados e lógica de negócio, lógica de apresentação e de interação com o usuário, introduzindo um componente entre os dois: o Controller MVC = Model-view-controller Programação para Web
19
Padrão Arquitetural MVC
MVC é um padrão de arquitetura de software MVC é usado em padrões de projeto de software, mas MVC abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto. Programação para Web
20
Padrão Arquitetural MVC
Objetivo: desacoplar a interface gráfica da navegação e do comportamento da aplicação manutenção mais simples maior reutilização Separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control) A idéia é permitir que uma mesma lógica de negócios possa ser acessada e visualizada através de várias interfaces Programação para Web
21
Padrão Arquitetural MVC
Componentes: Modelo: conteúdo da aplicação (objetos persistentes) Visão: funções de interface gráfica Controlador: coordena o fluxo do de dados entre o modelo e a visão Programação para Web
22
Padrão Arquitetural MVC
Comportamento do MVC: a Visão envia eventos para o Controlador o controlador modifica o estado do Modelo o Modelo notifica a Visão Visão busca os dados no Modelo Existem algumas variações do padrão MVC na literatura como é o caso do Modelo 2 da Sun Programação para Web
23
Padrão Arquitetural MVC
(Sun, tradução) Programação para Web
24
Padrão Arquitetural MVC
Programação para Web
25
Padrão Arquitetural MVC
O Modelo pode ser formado por entidades que armazenam os dados que são apresentados pela Visão A Visão pode ser uma interface gráfica O Controlador pode ser uma ou mais classes que possuem métodos que permitem que o Modelo seja atualizado a partir de eventos disparados pela Visão Programação para Web
26
Padrão Arquitetural MVC
Programação para Web
27
Padrão Arquitetural MVC
Frameworks MVC ASP ASP Xtreme Evolution; Toika; AJAXED; e outros .Net Microsoft MVC Framework Java Apache Struts; Mentawai; WebWork;Neo Framework; Spring MVC; JSF; e outros PHP CakePHP; CodeIgniter; Symfony; Zend Framework; e outros Programação para Web
28
Padrão Arquitetural Model-View-Presenter
Programação para Web
29
Padrão Arquitetural MVP
Padrão Arquitetural Model-View-Presenter Utilizado para separar a lógica da apresentação da apresentação propriamente dita A idéia do MVP é que toda a lógica que normalmente iria ligar a interface de usuário com os dados seja movida para uma classe separada Isso significa que a interface de usuário se torna bastante “fina”. Não há processamento embutido
30
Padrão Arquitetural MVP
31
Padrão Arquitetural MVP
O componente Model corresponde aos objetos que contêm a lógica do negócio Esse componente não conhece a apresentação Aspectos positivos: facilita o reuso da lógica do negócio em diferentes contextos (ambientes) Web, Smart Client, Mobile, WEB Services Idealmente esse componente, deve expor interfaces de forma abstrata, em vez de concreta
32
Padrão Arquitetural MVP
O componente View é uma estrutura composta de controles de interface com o usuário Esse componente não contém qualquer comportamento que descreve como os controles reagem à eventos de sistema (i.e., a ações do usuário) A reação às ações do usuário é posicionada em um objeto separado, o componente Presenter Os manipuladores para as ações do usuário ainda existem nos controles da IU, mas eles meramente passam (delegam) o processamento para o Presenter
33
Padrão Arquitetural MVP
O Presenter então decide como reagir ao evento notificado pelo componente View Normalmente, essa reação corresponde ao envio de mensagens aos objetos componente Model Composto de classes do domínio e de classes de serviço Conforme o presenter atualiza o modelo, o componente view é atualizado Quando o presenter realiza toda a manipulação dos controles de interface gráfica, temos o padrão denominado Passive View.
34
Padrão Arquitetural MVP
Programação para Web
35
Padrão Arquitetural MVP
Programação para Web
36
Padrão Arquitetural MVP
Adapter: Quando a lógica de IU é complexa, uma alternativa é criar adaptatores Adaptadores são objetos intermediários entre o view e o presenter Servem para ajudar o presenter na execução da lógica da apresentação
37
Padrão Arquitetural MVP
Adapter Notificações Apresentação Domínio Adapter View Presenter Model Programação para Web
38
Padrão Arquitetural MVP
Resumo da arquitetura MVP: View: exibe os dados e notifica eventos de sistema para o Presenter Presenter: coordena a comunicação entre o view e a camada de serviços (ou camada de negócio) e é responsável pela lógica de IU Model: os dados que devem ser exibidos ou editados na tela
39
Padrão Arquitetural MVP
Aspectos Positivos Facilita a modificação da IU por designers gráficos Facilita o uso de TDD (Test Driven Design) Separa adequadamente os aspectos da lógica da aplicação Aspectos Negativos Requer uma mudança na forma de pensar do desenvolvedor Código é mais abstrato do que no estilo “Forms & Controls” de programação visual Mais código para implementar Curva de aprendizado é acentuada
40
Comparações Programação para Web
41
MVC x Arquitetura em Camadas
MVC é triangular: Existe uma interação direta entre os seus 3 componentes: Visão interage com Controlador por eventos; Controlador interage com o Modelo e o atualiza; Modelo notifica a Visão por meio do Controlador; Visão busca os dados no Modelo. Existem variações do MVC, como o Modelo 2 da Sun, que o torna linear Visão e Modelo não se comunicam Programação para Web
42
MVC x Arquitetura em 3 Camadas
A arquitetura em 3 camadas é linear: não existe uma interação entre a camada de apresentação e a de Dados o fluxo de dados sempre passa pela camada lógica pode tornar a aplicação “pesada” Camadas dizem como agrupar os componentes O MVC diz como os componentes da aplicação interagem Programação para Web
43
MVP x MVC O MVP é uma variante do padrão MVC Qual a diferença?
No MVC, o View “conversa” (no sentido de poder enviar mensagens) com o Model No MVP, o View pode conhecer o Model, mas não envia mensagens para ele
44
MVP x MVC Model Model View Controller View Presenter MVC MVP
Programação para Web
45
Linguagens Web Programação para Web
46
Linguagem para WEB Scripts Client-Side Scripts Server-Side
São responsáveis pelas ações executadas no browser, sem contato com o servidor. Os exemplos mais comuns são imagens e textos que mudam com o passar do mouse Scripts Server-Side Todo o processamento é realizado no servidor Cliente recebe apenas o resultado-> HTML Programação para Web
47
Scripts Client-Side O navegador é responsável pelo tratamento do script JavaScript e VBScript Utilizado para diminuir o processamento do servidor Imagens animadas, menus dinâmicos, etc Validação de campos de formulário Programação para Web
48
Scripts Server-Side O processamento é feito pelo servidor
CGI, PHP, ASP, JSP O cliente (navegador) recebe o resultado do processamento Aplicações que exigem maior segurança Banco de dados Programação para Web
49
Processamento em Servidores Web
Além das arquiteturas e padrões Web, existe ainda os servidores Web que permitem o processamento dos dados enviados pelo cliente, no caso um navegador Web Estes servidores possuem algumas características como: autenticação, autorização e controle de acesso, direcionamento de chamadas e filtragem da entrada e saída Programação para Web
50
Processamento em Servidores Web
Entre os mais conhecidos servidores estão o Apache HTTP Server, o IBM HTTP Server O Apache é o mais amplamente utilizado por: não ser um software proprietário estabilidade já alcançada O Apache permite a instalação de módulos individuais que dão suporte à algumas tecnologias como JSP, ASP e PHP Programação para Web
51
Processamento em Servidores Web
Os servidores Web funcionam de maneira geral da seguinte forma: recebem uma requisição HTTP do cliente identificam o recurso desejado localizam tal recurso e verificam sua disponibilidade enviam ao cliente se disponível, senão geram um erro e apresentam ao cliente Programação para Web
52
Processamento em Servidores Web
Requisição Software Navegador Software Servidor Processamento Server-side Recuperação e entrega Internet Computador Servidor Computador Cliente Bando de Dados Programação para Web
53
Conclusões e Referências
Programação para Web
54
Conclusões MVC e arquitetura 3 camadas consolidadas no desenvolvimento de aplicações Web Tecnologias permitem o desenvolvimento de aplicações com maior interatividade e disponibilização de produtos e serviços Programação para Web
55
Referências Buschmann, F.; Meunier, R.; Rohnert, H.; Sommerlad, P.; Stal, M. Pattern- oriented software architecture: a system of patterns. New York, NY, USA: John Wiley & Sons, Inc., 1996 Pressman, R. S. Software engineering: A practitioner’s approach. McGraw-Hill Higher Education, 2006 Fragmental - Sun Java SE Application Design with MVC Disponível em Tutorial da Sun: “J2EE 1.4 Tutorial”. Disponível em Tutorial da Sun: “J2EE 5 Tutorial”. Disponível em Sadoski, D.; Comella-Dorda, S. Three tier software architectures Disponível em Reese, G. Database programming with jdbc and java. O’Reilly, 2000 Parte do material foi originalmente elaborado por Edson A. Oliveira Junior e Renata Pontim – ICMC-USP Programação para Web
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.