Padrões de Projeto para
Sistemas Web
Misael Santos e Rossana Andrade
misael@lia.ufc.br
Universidade Federal do Ceará – Jan/2003
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
1
Agenda

Introdução
– Servlets

Padrões
– Web Handlers
– Referências
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
2
Servlets
Servidor Web
Web Container
http://www.ufc.br
Servlet
Cliente
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
3
Servlets

Características
– Classes Java
– Boa Performance
– Suporta Requisições Concorrentes
– Simples e Extensível
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
4
Servlets

Ciclo de Vida
– Inicialização
– Serviço
– Finalização
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
5
Servlets
Carregado
em memória
init()
Em
Inicialização
new()
Disponível
service()
destroy()
Em
destruição
Copyright © 2003 Misael Santos e Rossana Andrade
Não
carregado
DC - UFC
6
Agenda

Introdução
– Servlets

Padrões
– Web Handlers

Referências
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
7
Web Handlers

Página de
Crédito
Contexto
Página de
Login
Menu de
Movimentações
Links estáticos
de HTML
Página de
Débito
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
8
Web Handlers

Contexto
Menu de
Atualização
Outras
Páginas...
Página de
Login 1
Página de
Crédito
Página de
Login 2
Menu de
Movimentações
Página de
Débito
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
9
Web Handlers

Problema:
– Evitar a duplicação de código e
complexidade na estruturação de
sistemas Web com relacionamento M:N
entre a apresentação e o processamento.
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
10
Web Handlers

Solução:
– Handlers de Apresentação
– Handlers de Processamento
– Controlador de Handlers
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
11
Web Handlers
<<Handler de Processamento>>
HP_Login
<<Handler de Apresentação>>
HA_MenuMovimentacoes
processar(ServletRequest, ServletResponse)
apresentar(ServletRequest, ServletResponse)
Login a partir da Página de Login 2
<<Handler de Processamento>>
HP_Login
<<Handler de Apresentação>>
HA_MenuAtualizacao
processar(ServletRequest, ServletResponse)
apresentar(ServletRequest, ServletResponse)
Login a partir da Página de Login 1
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
12
Web Handlers
<<Handler de Processamento>>
HP_Credito
<<Handler de Apresentação>>
HA_MenuMovimentacoes
processar(ServletRequest, ServletResponse)
apresentar(ServletRequest, ServletResponse)
Execução da operação de Crédito
<<Handler de Processamento>>
HP_Debito
<<Handler de Apresentação>>
HA_MenuMovimentacoes
processar(ServletRequest, ServletResponse)
apresentar(ServletRequest, ServletResponse)
Execução da operação de Débito
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
13
Web Handlers

Consequências
– Maior reuso de código
– Flexibilidade na composição
– Mudanças na apresentação não causam efeito
no processamento
– Facilita a implementação de sistemas que
requerem diferentes formatos de saída
– Aumenta o número de classes
– Complexidade na implementação
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
14
Web Handlers

Usos Conhecidos
– Portal Encontre & Compre: sistema de consultas dos
assinantes da Listel.
– Sistema de Fomento Lattes
– Prospectar: Sistema de prospecção tecnológica do
Governo Federal.
– Web2Billing: consulta e pagamento de faturas online
– FiS (Financial Services): migração J2EE da HiperCard.
– Fep (Call Center no FEP): da HiperCard.
– Gin (Sistema de Gestão Interna): sistema de apoio a
gestão interna do CESAR.
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
15
Web Handlers

Padrões Relacionados
– Na construção dos handlers de apresentação
pode ser usado o padrão Web Compiler.
– O Facade pode ser usado para agrupar as
regras de negócio em um único ponto.
– O Controlado de Handlers deve implemetar o
padrão Web Interceptor.
– O padrão Super Component pode ser usado na
implementação dos Handlers de apresentação e
de processamento.
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
16
Referências
[1] Gibeon Soares de Aquino Júnior,
“Desenvolvimento de Sistemas Web em
Java”, Dissertação de Mestrado,
Universidade Federal de Pernambuco,
2002.
[2] Erich Gamma, Richard Helm, Ralph
Johnson and John Vlissides. “Design
Patterns Elements of Reusable Object
Oriented Software”. Addison Wesley, 1994.
Copyright © 2003 Misael Santos e Rossana Andrade
DC - UFC
17
Download

PadraoWebHandler - Universidade Federal do Ceará