A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tópico 4 Prof MSc Vitor Mesaque Alves de Lima 1. Introdução Padrão Arquitetural em 3 Camadas MVC MVP Comparações Linguagens Web Scripts Client-Side Scripts.

Apresentações semelhantes


Apresentação em tema: "Tópico 4 Prof MSc Vitor Mesaque Alves de Lima 1. Introdução Padrão Arquitetural em 3 Camadas MVC MVP Comparações Linguagens Web Scripts Client-Side Scripts."— Transcrição da apresentação:

1 Tópico 4 Prof MSc Vitor Mesaque Alves de Lima 1

2 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 Web2

3 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 Web3

4 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 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 Web4

5 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 Web5

6 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 Web6

7 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 7

8 Programação para Web8

9 Uma arquitetura em camadas é organizada hierarquicamente, onde as camadas mais internas provêem serviços às camadas mais externas 9Programação para Web Core Level Base Utility Useful Systems Agregados de Elementos Menores Users

10 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) 10Programação para Web

11 É 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 3 Camadas 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 Web11

12 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 Web12

13 Programação para Web13

14 Programação para Web14 Camada de Dados Camada do Negocio Camada de apresentação

15 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 Web15

16 Programação para Web16

17 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 Web17

18 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, Controller introduzindo um componente entre os dois: o Controller Model-view-controller MVC = Model-view-controller Programação para Web18

19 padrão de arquitetura de software MVC é um padrão de arquitetura de software padrões de projeto de software padrões de projeto 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.padrões de projeto de software Programação para Web19

20 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 Web20

21 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 Web21

22 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 Web22

23 Programação para Web23 (Sun, tradução)

24 Programação para Web24

25 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 Web25

26 Programação para Web26

27 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 Web27

28 Programação para Web28

29 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

31 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 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 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

34 Programação para Web34

35 Programação para Web35

36 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 Adapter Programação para Web37 DomínioDomínioApresentaçãoApresentação ModelModelViewView PresenterPresenter NotificaçõesNotificações AdapterAdapter

38 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 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 Programação para Web40

41 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 Web41

42 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 Web42

43 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 Programação para Web44 MVP x MVC View Controll er Model View Presente r Model MVC MVP

45 Programação para Web45

46 Scripts Client-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 Web46

47 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 Web47

48 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 Web48

49 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 Web49

50 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 Web50

51 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 Web51

52 Programação para Web52 Recuperação e entrega Requisição Computador Cliente Computador Servidor Internet Software Navegador Software Servidor Processamento Server-side Bando de Dados

53 Programação para Web53

54 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 Web54

55 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 practitioners 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. OReilly, 2000 Parte do material foi originalmente elaborado por Edson A. Oliveira Junior e Renata Pontim – ICMC-USP Programação para Web55


Carregar ppt "Tópico 4 Prof MSc Vitor Mesaque Alves de Lima 1. Introdução Padrão Arquitetural em 3 Camadas MVC MVP Comparações Linguagens Web Scripts Client-Side Scripts."

Apresentações semelhantes


Anúncios Google