Você está na página 1de 6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

Srgio Tabordas Weblog


Alguns ensinam. Alguns fazem. O resto procura nos livros. Incio Blog Cincia Desenvolvimento

Entretenimento

Epistemologia Poltica

Type text to search here...

Arquitetura Web
Deixe o seu comentrio Go to comments

Arquitetura Web Padro


O diagrama seguinte mostra a sequencia bsica de um processo de interao web. Os componentes da arquitura so divididos em 4 tipos: persistencia (laranja) , dominio (azul) integrao (amarelo) e API padro (no representado)

sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/

1/6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

Ilustrao 1: Arquitura web padro O papel do front-controller normalmente desempenhado por um servlet que recebe todas as requisies a determinado recurso (configurvel no web.xml). O front-controller determina ento, por analise da requisio e estado do servidor(session, configuraes ,etc) qual comando dever ser executado. O contexto da requisio encapsulado e passado execuo do comando. Aps a execuo do comando o estado do contexto ser consultado para determinar se ha necessidade de um redirecionamento de pgin ou no. Se sim, ser criada uma requisio de redirecionamento pelo prprio front-controler. O comando ento livre de executar qualquer tipo de logica. Para logicas de acesso ao dominio como seja a execuo de servios e/ou processos o comando analisa o contexto e determina qual mtodo invocar e com quais parametros. Para facilitar o padro Faade utilizado neste ponto afim de separar a camada de controle web da camada de dominio. O comando tem ento o papel de agregar informaes e convert-las para objetos que o Faade entenda. De notar que pode existir mais do que um Faade no sistema. Quando o comando receber a resposta do Faade ele alterar o estado do contexto. O Faade ento livre de executar invocaes a diferentes servios do dominio de forma a completar o processo requisitado. A resposta do processo ser devolvida ao comando. Alguns dos servios invocaram outros servios, e algums invocaro operaes no repositorio. O repositorio um centralizador de consultas interessantes ao dominio. Ele pode tambm exercer o papel de modificador do dominio atravez de mtodos que alterao como persistSomething(). O repositorio tem a responsabilidade de criar consultas ao real local de permanencia dos dados. Para abstrair a localizao dos dados utilizado um objeto no padro DAO. Para que no haja dependencoa da tecnologia de persistencia os dados tm que ser passados ao DAO de forma independente da tecnologia de persistencia. Em particular, para a execuo de consultas so usados objetos que implementam o padro Query Object. Estes objetos pode ser, desde, simples pojos com os parametros da pesquisa, at , objetos complexos que simulam uma linguagem de pesquisa. A escolha depende de quo genrico o DAO e quo desacoplado do Repositorio e do resto da aplicao.

Arquitetura com Domain Store


sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/ 2/6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

Um padro atualmente utilizado a utilizao de um Domain Store em vez de DAO directamente. O Domain Store oferece todas as vantagens de um DAO comum , conjuntamente com mecanismos de pesquisa baseados em Query Object e adiciona mecanismo de controle de estado e lazy loading. Ou seja, oferece capacidades de gerenciamento para objetos persistentes muito alm do que um DAO simples conseguria. A arquitetura semelhante em termos de passos na sequncia, sendo o DAO subsituido pelo Domain Storage. O repositorio usa agora os Query Object do Domain Store em vez daqueles do DAO.

Arquitetura com Domain Store de mercado


Hoje em dia existem duas implementaes do padro Domain Store que podem ser utilizadas em aplicaes de mercado. A primeira a forma padronizada pelo JCP na forma da Java Persistence API (JPA). semelhana da API JDBC a JPA define um conjunto de interfaces e mecanismos no padro Bridge. Vendedores podem fornecer duas implementaes deste padro na forma de drivers. Um outra foma menos padronizada mas mais popular o uso directo do Hibernate. O Hibernate uma implementao do padro Domain Store que no segue o padro JPA. Contudo, o Hibernate fornece uma implementao do driver da JPA e pode ser usando como implementao real dessa especificao. As funes avanadas como o suporte a Criteria ( uma implementao de Query Object completamente OO e no baseada em texto como a SQL ou a HSQL) fazem do Hibernate uma opo real ao uso da PJA por prover mais funcionalidade. O uso de JPA ou Hibernate como Domain Store um passo alm do uso do DAO. A sua integrao na arquitetura padro consiste na simples troca do DAO por essas tecnologias. No na criao de um DAO que encapsule essas funcionalidades, como pode parecer primeira vista. Em particular, como o uso de Hibernate, e conforme a complexidade do modelo de dominio, pode ser necessrio recorrer a padres complementares em particular o padro Open state in view que necessrio para o bom funcionamento das capacidades de lazy-loading do Hibernate e com isso diminuio de uso de recursos e aumento de performance. Normalmente isso feito por meio de um filtro adicionado ao servlet que funciona como front-controler. Este tipo de alteraes da arquitura padro mostram que o uso de um Domain Store pode influenciar outras camadas da arquitura alm da camada de persistencia e um ponto a ser considerado antes da escolha por Hibernate seja feita.

Arquitetura com framework web


Os framework web tradicionais visam implementar de forma genrica a primeira parte da arquitura: o frontcontroler e o command. Os frameworks oferencem implementaes para estes padres e fornecem alguma forma de configurao que os torna aptos a serem usados em diversos sistemas. O framework mais conhecido neste tipo de padro talvez seja o Struts, mas outros como Mentawai , o VRaptor ou o Spring Web MVC existem.

Licena
Srgio Taborda Este trabalho licenciado sob a Licena Creative Commons Atribuio-Uso NoComercial-No a obras derivadas 3.0 Genrica .
sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/ 3/6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

Gosto
Be the first to like this.

Comentrios (0) Trackbacks (0) Deixe o seu comentrio Trackback 1. Ainda sem comentrios. 1. No trackbacks yet. Tem de ter a sesso iniciada para publicar um comentrio. Feed RSS

Artigos recentes
O fuso e a roca Voto Consciente A Ecologia, a Sacola e a Cultura

Blog no Java Buinding


Com a inaugurao do JavaBuilding as minhas obervaes sobre desenvolvimento de software em geral e sobre Java e Scrum em particular podem agora ser seguidas no meu novo blog Caderno Srgio Taborda no JavaBuiliding. Este blog permance apenas para assuntos no relacionados a desenvolvimento de software.

Caderno no Javabuilding
Java EE 7 Arquitetura Padro Completa Pacotes, Camadas e Mdulos Otimizao Preventiva Java 8 Preldio O que gil significa Mtricas, Indicadores e Scrum

MiddleHeaven
Javadoc Disponivel Lista de Discusso Seis anos e muito para fazer Seguindo em frente
sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/ 4/6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

No cu do meio Novo Conteudo Utilitrios: Colees aumentadas Nosso novo blog MiddleHeaven Pr-Alfa MiddleHeaven Reloaded

Twitter
Por uma melhor arquitetura e software mais barato. ow.ly/hZhQl 6 months ago Sobre pacotes, camadas e mdulos ow.ly/hOkC0 6 months ago Otimizao Prematura e Otimizao Preventiva, porque a primeira ruim e a segunda necessria. ow.ly/gu4XV 8 months ago Assistiremos a um revoluo com a chegada do Java 8 ? Lambdas vo salvar vc do tdio ? ow.ly/frLHI 9 months ago O que realmente significa gil. No seguir um manifesto, no adotar a prtica A ou B, mais que isso. ow.ly/f6Mbm 10 months ago

Meta
Registar Iniciar sesso RSS dos artigos Feed RSS dos comentrios. Blog em WordPress.com.

Pginas
Desenvolvimento de Software A Arte de Fabricar Software Arquitetura Arquitetura Orientada ao Domnio Arquitetura Web Java Colees: Como no usar Arrays Do DAO ao Domain Store Excees: Boas Prticas, Ms Prticas Excees: Classes Utilitrias Excees: Conceitos FAQ Primeiro Programa Sorteio aleatrio sem Repetio Trabalhando com Nmeros Igualdade em Java Introspeo java.lang.Object OO Herana
sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/ 5/6

14/09/13

Arquitetura Web | Srgio Taborda's Weblog

Polimorfismo Separao de Responsabilidades e Encapasulamento Os 10 mandamentos do bom programador Java Palavras Reservadas Patterns Adapter Bean Builder Composite DAO Factory Factory Method Fastlane Iterator Money MoneyBag MVC Query Object Repository Singleton Transfer Object Value Object Scrum Equipe Planejamento Produto e Projeto Projees Sprint Valores Fsica Mecnica Quntica Livros Magic: The Gathering O Segredo do Magic Sobre mim Topo WordPress Blog em WordPress.com. The INove Theme.

sergiotaborda.wordpress.com/desenvolvimento-de-software/arquitetura/arquitetura-web/

6/6

Você também pode gostar