Tecnologias Web. Padrões de Projeto - Camada de Apresentação



Documentos relacionados
J550 Padrões de Projeto J2EE para Aplicações Web

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Padrões do Catálogo J2EE. Lincoln Souza Rocha, M.Sc.

On Scalability of Software-Defined Networking

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Padrões de Projeto WEB e o MVC

Java II. Sérgio Luiz Ruivace Cerqueira

Behavioral Patterns - Command

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Software de gerenciamento de impressoras MarkVision

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

DATA WAREHOUSE. Introdução

Padrões Arquiteturais e de Integração - Parte 1

Documento de Arquitetura

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

TRIBUNAL REGIONAL FEDERAL DA 2ª REGIÃO Secretaria de Tecnologia da Informação

Universidade Paulista

Documento de Análise e Projeto VideoSystem

Qualidade de Software. Profa. Cátia dos Reis Machado

Conceitos de Banco de Dados

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função

Considerações no Projeto de Sistemas Cliente/Servidor

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Programação Orientada a Objetos. Padrões de Criação

Introdução ao Modelos de Duas Camadas Cliente Servidor

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Elaborado por SIGA-EPT. Projeto SIGA-EPT: Manual do Usuário Almoxarifado

SISTEMA GERENCIADOR DE BANCO DE DADOS

Controle de Almoxarifado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

4 O Workflow e a Máquina de Regras

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

MVC e Camadas - Fragmental Bliki

Escola Superior de Tecnologia de Setúbal. Projecto Final

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Thalita Moraes PPGI Novembro 2007

FRWTC800 - Desenvolvimento Web com Ruby on Rails

Um White Paper da Websense Web Security Gateway: A Web 2.0 Protegida e Simplificada

Diferenças da versão 6.3 para a 6.4

Engenharia de Requisitos

Projeto de Arquitetura

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções

Engenharia de Requisitos

Introdução à Banco de Dados. Definição

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Configurando o DDNS Management System

Especificação de Requisitos

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

3 SCS: Sistema de Componentes de Software

2 Geração Dinâmica de Conteúdo e Templates de Composição

Análise de Dados do Financeiro

Treinamento. DBA Oracle 11g. Duração: 120 horas

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

UFG - Instituto de Informática

Setores Trilhas. Espaço entre setores Espaço entre trilhas

HIBERNATE EM APLICAÇÃO JAVA WEB

Figura 1 - Arquitetura multi-camadas do SIE

Reduza os riscos. Reduza os custos. Aumente o desempenho.

Fornece novos benefícios para o mercado postal

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Portal nddcargo Manual de Utilização Call Center Visão Administrador

Projeto Pé na Dança. Bruno Barros Comunicador Visual /

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Metodologia de Gerenciamento de Projetos da Justiça Federal

Veja e interprete rapidamente qualquer tipo de informação. Compare os resultados e construa seu próprio dashboard de forma simples.

Sumário. Vipexpress Plataforma web para intermediação de vendas online entre usuários

MANUAL DE UTILIZAÇÃO

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

A Empresa. Alguns Clientes que já utilizam nossa tecnologia.

Padrões. Projeto (Design) de Software

Aula Anterior. Capítulo 2

Indústria de Cartões de Pagamento (PCI) Padrão de segurança de dados. Resumo de Alterações da Versão 2.0 para a 3.0 do PCI-DSS

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?


Curso ITIL Foundation. Introdução a ITIL. ITIL Introduction. Instrutor: Fernando Palma fernando.palma@gmail.com

UFG - Instituto de Informática

Transcrição:

Tecnologias Web Padrões de Projeto - Camada de Apresentação Cristiano Lehrer, M.Sc.

Padrões da Camada de Apresentação (1/2) Intercepting Filter Viabiliza pré e pós processamento de requisições. Front Controller Oferece um controlador centralizado para gerenciar o processamento de uma requisição. Context Object Encapsula estado de forma independente de protocolo para compartilhamento pela aplicação. Application Controller Centraliza e modulariza gerenciamento de s e de ações.

Padrões da Camada de Apresentação (2/2) Helper Encapsula lógica não-relacionada à formatação. Composite Cria uma composta de componentes menores. Service To Worker e Dispatcher Combinam Front Controller com um Dispatcher e Helpers. O primeiro concentra mais tarefas antes de despachar a requisições. O segundo realiza mais processamento depois.

Front Controller (1/6) Objetivo: Centralizar o processamento de requisições em uma única fachada. Front Controller permite criar uma interface genérica para processamento de comandos.

Front Controller (2/6) Problema: Código de Controle Código de Formatação Cliente Acesso livre a qualquer Camada de Apresentação

Front Controller (3/6) Descrição do problema: Deseja-se um ponto de acesso centralizado para processamento de todas as requisições recebidas pela camada de apresentação para: Controlar a navegação entre os s. Remover duplicação de código. Estabelecer responsabilidades mais definidas para cada objeto, facilitando manutenção e extensão. JSP não deve conter código algum ou pelo menos não código de controle. Se um usuário acessa um sem passar por um mecanismo centralizado, código de controle é duplicado e misturado ao código de apresentação: Também não é possível controlar a navegação: Cliente pode iniciar em página que não deveria ter acesso.

Front Controller (4/6) Solução: Command Helper Código de Controle Código de Formatação Controller Cliente Acesso restrito: Controller determina nível de acesso Command Helper Camada de Apresentação

Front Controller (5/6) Descrição da Solução: Controlador é ponto de acesso para processamento de requisições: Chama serviços de segurança (autenticação e autorização). Delega processamento à camadas de negócio. Define um apropriado. Realiza tratamento de erros. Define estratégias de geração de conteúdo. O controlador pode delegar processamento a objetos Helper (comandos ou ações, Value Beans, entre outros). Solução depende do uso de um Application Controller: Usado para redirecionar para o correspondente.

Front Controller (6/6) Consequências: Controle centralizado: Facilidade de rastrear e logar requisições. Melhor gerenciamento de segurança: Requer menos recursos. Não é preciso distribuir pontos de verificação em todas as páginas. Validação é simplificada. Melhor possibilidade de reuso: Distribui melhor as responsabilidades.

Application Controller (1/7) Objetivo: Centralizar operações relacionadas com processamento e despacho de requisições, tais como redirecionamento para comandos (ações) e views para permitir o reuso do Front Controller.

Application Controller (2/7) Problema: Ação Código de Controle Código de Formatação Controller Cliente Controlador central realiza tarefas diversas e diferentes Ação Camada de Apresentação

Application Controller (3/7) Problema: Contexto 1 Controller Cliente Controladores similares, que poderiam ser reutilizados, são rescritos para cada aplicação desenvolvida Contexto 2 Controller

Application Controller (4/7) Descrição do problema: Front Controller tem que lidar com código de aplicações diferentes, ou cada aplicação tem o seu Front Controller que faz basicamente a mesma coisa, com pequenas diferenças. Desejamos centralizar e reutilizar operações padrão de requisição e resposta para todas as aplicações e reutilizar código de repasse para ações e views. Desejamos melhorar a modularidade do código, a manutenabilidade, entre outras características, facilitando a extensão da aplicação e o reuso do código de manuseio de requisições de forma independente do container.

Application Controller (5/7) Solução: Contexto 1 Application Controller Cliente Front Controller Genérico Contexto 2 Application Controller Camada de Apresentação

Application Controller (6/7) Descrição da solução: Um Application Controller centraliza as operações específicas de recuperação e chamada de componentes que processam requisições, para cada aplicação. Permite que se use um Front Controller genérico que seja mapeado a diferentes Application Controllers, por exemplo, um por aplicação.

Application Controller (7/7) Consequências: Melhora a modularidade: Facilita a separação da aplicação em diferentes módulos, que podem ser configurados separadamente e reutilizados. Melhora o reuso: Permite que o Front Controller seja compartilhado entre aplicações. Melhora a extensibilidade: Permite incluir novos serviços ou aplicações sem alterar a estrutura geral da aplicação web.

Composite (1/6) Objetivo: Criar um componente de a partir de s menores para dividir as responsabilidades, simplificar a construção da interface e permitir o reuso de componentes da.

Composite (2/6) Problema: Camada de Apresentação

Composite (3/6) Descrição do problema: Páginas web sofisticadas dividem seu conteúdo em várias partes, que tem função e tempo de vida diferentes: Podem ser manipuladas por pessoas diferentes já que cada seção tem finalidade, escopo e duração diferentes. Se a página for gerada a partir de uma única que concentra todo o código, a atualização da página é dificultada: É difícil identificar cada parte dentro de um documento. Há risco, quando se atualiza uma seção, de se invadir outra seção e afetar os dados.

Composite (4/6) Solução: Composite Composite Camada de Apresentação

Composite (5/6) Descrição da solução: Usar views que consistem de composições de views menores: Os componentes do template podem ser incluídos dinamicamente e gerenciados separadamente. O layout geral da página pode ser manipulado independente do conteúdo. Componentes podem conter views ou coleções de views.

Composite (6/6) Consequências: Promove um projeto modular: Permite maior reuso e reduz a duplicação de código. Melhora a flexibilidade: Suporta inclusão de dados com base em decisões de tempo de execução. Melhora a facilidade de manutenção e gerenciamento: Separação da página em pedaços menores permite que sejam modificados e mantidos separadamente. Reduz a facilidade de gerenciamento: Possibilidade de erros na apresentação devido à composição incorreta das partes. Impacto no desempenho: Inclusões dinâmicas fazem a página demorar mais para ser processada.