Upload
rafael-franca
View
9.905
Download
0
Embed Size (px)
Citation preview
Padrão Arquitetural MVC e suas aplicações para Web
Rafael Mendonça FrançaDCOMP - UFS
Sumário
Introdução Padrão MVC Evolução do desenvolvimento WEB Implementações do MVC JSF
Introdução
A luta pela qualidade no Software vem produzindo a anos padrões e técnicas para construção de sistemas com menos defeitos e de manutenção mais fácil e simples.
O uso de camadas é um padrão arquitetural que ajuda na tarefa de separar responsabilidades, promovendo baixo acoplamento e alta coesão
Introdução
Aplicações de uma camada: Antigamente um aplicativo era desenvolvido
para ser usado em uma única máquina. Esse aplicativo continha todas a funcionalidades
em um único módulo gerado por uma grande quantidade de linhas de código e de manutenção nada fá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.
Lógica de Apresentação Lógica de Negócios Acesso a Dados
Introdução
Aplicações de duas camadas: Surgiram com a necessidade de compartilhar a
lógica de acesso a dados. A base de dados geralmente é colocada em
uma máquina específica. Aplicativos instalados em estações clientes
contendo toda a lógica da aplicação. Grande problema com o gerenciamento de
versões.
Lógica de Apresentação Lógica de Negócios Acesso a Dados
Introdução
Aplicações de n camadas: Separa a lógica de negócio da interface com o usuário. Cada camada é auto-contida o suficiente de forma que a
aplicação pode ser dividida em vários computadores numa rede distribuída.
Possibilita que vários usuários tenham acesso as mesmas aplicações sem ter que instala-las em suas máquinas.
Torna os sistemas mais flexíveis permitindo que as partes possam ser alteradas de forma independente.
Facilita a reutilização e manutenção.
Lógica de Apresentação Lógica de Negócios Acesso a Dados
Padrão MVC: Model-View-Controller
É um padrão arquitetural que divide as aplicações em 3 camadas independentes.
Permite que um mesmo aplicativo possa ser visualizado através de vária interfaces.
Padrão MVC: Model-View-Controller
Camadas do MVC: Camada de Apresentação (View)
Inclui os elementos de exibição no cliente: HTML, XML, Applets, MIDlets.
É usada para receber a entradas de dados e apresentar o resultado.
Camada de Lógica da Aplicação (Model) Modela os dados e o comportamento por trás do
processo de negócio. Se preocupa apenas com o armazenamento e
geração dos dados. Camada de Controle
Interpreta as ações do usuário e as mapeia para chamadas do modelo.
É responsável pelo fluxo da aplicação.
Padrão MVC: Model-View-Controller
Evolução do desenvolvimento WEB
Sem o MVC Na primeira fase da evolução apenas eram
produzidas páginas em HTML estático para mostrar informações estáticas.
Na próxima fase evolutiva, foram usadas tecnologias de geração dinâmica de páginas como o CGI, Servlets e JSP.
Evolução do desenvolvimento WEB
Model 1: Arquitetura centrada na página As páginas JSP tratam todos os aspectos da
aplicação – apresentação, controle e processos de negócio – utilizando JavaBean para processar a lógica e links para a navegação.
Evolução do desenvolvimento WEB
Model 2: Arquitetura centrada no Servlet As aplicações implementadas utilizando o Model
2 são mais fáceis de manter e extender.
Implementações do MVC
.NET Microsoft UIP Maverick.NET
ActionScript ARP PureMVC
Java JavaServer Faces Spring Framework Struts
PHP Zend Framework Symfony Framework
JSF – JavaServer Faces
É uma implementação do Model 2. É também uma especificação da JCP – Java
Community Process. (JSR-127) Foi criado com o intuito de facilitar o
desenvolvimento de interfaces web. Facilita a integração com IDEs. Possui um conjunto padrão de componentes. Possui uma API para validação dos dados. Especifica um modelo para
internacionalização e localização.
JSF – JavaServer Faces
JSF – JavaServer Faces
Principais partes do JSF Componentes de Interface com o usuário
Foca na interatividade com o usuário final. Diferente dos componentes Swing eles ficam
residentes no lado do servidor, não do cliente. Os componentes tem a capacidade de guardar
informações de estado entre as requisições. Renderizadores
São responsáveis por gerar as diferentes formas de visualização (HTML, WML, SVG, applet, etc.)
São organizados em Render Kits.
JSF – JavaServer Faces
Principais partes do JSF (continuação) Validadores
Responsável por validar os dados digitados pelo usuário.
Os dados são validados no lado do servidor. Backing beans
É responsável pela interação entre a camada de visão e a de modelo.
Geralmente contém propriedades que serão utilizadas pelos usuários e tratadores de eventos que processarão essas propriedades e irão manipular a interface ou fazer algum processamento da aplicação.
JSF – JavaServer Faces
Principais partes do JSF (continuação) Conversores
Responsável por converter um objeto em String para mostra-lo na tela, e de uma String de entrada para um objeto.
Eventos e listeners São responsáveis por capturar e tratar os meios que
o usuário interage com os componentes de interface. Tipos de eventos:
Eventos de mudança de valor Eventos de ações Eventos de modelo de dados Eventos de fase
JSF – JavaServer Faces
Principais partes do JSF (continuação) Mensagens
Auxiliam a informar o usuários erros na aplicação. As mensagens podem ser de dois tipos:
Mensagens de erros na aplicação Mensagens de erros na entrada do usuário
Navegação O Faces possibilita um sistema de navegação
elegante, onde o tratador de navegação é responsável que página vai ser carregada de acordo com a lógica da ação.
JSF – JavaServer Faces
Ciclo de vida do processo de requisição O clico de vida da requisições do Faces são
divididos em 6 fases. Fase 1: Restaurar árvore de componentes Fase 2: Aplicar valores da requisição Fase 3: Processar validação Fase 4: Atualizar valores do Modelo Fase 5: Chamar aplicação Fase 6: Renderizar resposta
Após cada fase o JSF irá enviar os eventos para os listeners interessados. Esses listeners irão processar lógica de negócio ou manipular componentes.
JSF – JavaServer Faces
Ciclo de vida do processo de requisição (continuação) Os listeners podem se necessário pular para a
fase final: “Renderizar resposta”. Quatro dessas fases geram mensagens: “Aplicar
valores da requisição”, “Processar validação”, “Atualizar valores do Modelo”, “Chamar aplicação”. Com ou sem mensagem é a fase “Renderizar resposta” que envia as saídas para o usuário.
JSF – JavaServer Faces
Bibliografia
K. D. Mann. JavaServer Faces In Action. Manning, 2005 G. Seshadri. Understanding JavaServer Pages Model 2
architecture: Exploring the MVC design pattern. JavaWorld.com, 1999.
Arquitetura MVC baseada em modelos. PUC-RIO. The J2EE tuturial 1.4: The Life Cycle of a JavaServer Faces
Page. Sun. Disponível em: http://java.sun.com/j2ee/1.4/docs/tutorial Página da web: http://jcp.org