Title: Disseny d
1Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRANCISCO JAVIER BRAVO RAMOS
- Enginyeria en informàtica
- Josep Maria Camps Riba
- 17 Gener 2011
2Disseny dun marc de treball de presentació per a
aplicacions J2EE
- Introducció a J2EE i els patrons de presentació.
Patró Model-Vista-Controlador. - Estudi comparatiu de tres Frameworks actuals
Struts, Spring i Java Server Faces - Creació dun nou marc de treball de presentació
FrameworkPFC. - Desenvolupament duna aplicació Web que utilitzi
FrameworkPFC -
- Aconseguir un major coneixement de J2EE.
- Aprofundiment en el llenguatge Java.
- Coneixement dels Frameworks actuals i la seva
funció en el món empresarial.
3Disseny dun marc de treball de presentació per a
aplicacions J2EE
J2EE és una plataforma oberta i estàndard per a
desenvolupar i desplegar aplicacions empresarials
multicapa amb n-nivells, distribuïdes i basades
en components.
- Basada en components software desplegats en
contenidors. - Els contenidors proporcionen serveis als
components. - Defineix un mínim de 3 capes però pot tenir-ne
més. - Capa Client Applets i Aplicacions Stand
Alone. - Capa intermèdia Lògica de negoci
- Capa Presentació Servlets i JSP
- Capa de negoci ? EJB (Enterprise JavaBeans)
- Capa dintegració ? ORM, EJB entitat
- Capa EIS ? Bases de dades relacionals
- Aplicacions distribuides. Els components poden
estar ubicats en diferents nodes.
4Disseny dun marc de treball de presentació per a
aplicacions J2EE
- Patró Model Vista Controlador - MVC
Patró darquitectura que separa les dades, la
interfície dusuari i la lògica daplicació en
tres components diferents. Model És la
representació específica de la informació amb la
que opera el sistema. Aquestes dades poden ser
relatiuves a la presentació o no, podent
representar informació complexa provinent de
diversos sistemes dinformació. Vista
Representa la interfície amb lusuari de
laplicació i tots els components de
presentació. Controlador Respon a les accions
de lusuari invocant peticions i actualitzacions
del model i modificacions de les vistes.
- Avantatges
- Major reutilització de codi. La modificació
dun component no afecti als altres. - Major especialització dels perfils de
desenvolupadors. - Inconvenients
- Augment de la dificultat daprenentatge
- No saconsegueix un desacoblament total entre
les parts.
5Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKS DE PRESENTACIÓ ACTUALS - STRUTS
- Open Source i compatible amb totes les
implementacions J2EE. -
- Basat en el patró MVC sota la plataforma J2EE.
- Model
- Normalment POJOs.
- Compatible amb JDBC, EJB, Hibernate, iBatis i
Object Relational Bridge. - Controlador (ActionServlet)
- Pont entre el model i les vistes.
- Comportament extensible.
- Vistes
- Normalment JSP.
- Compatible amb JSTL i etiquetes personalitzades.
- Compatible amb JSF.
- Àmplia documentació i gran comunitat de
desenvolupadors.
6Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKS DE PRESENTACIÓ ACTUALS SPRING MVC
- Flexible, ben documentat i fàcil dutilitzar.
- Divisió en mòduls independents i que es poden
utilitzar per separat. - Construït en base a DispatcherServlet
- Delega peticions a Controllers
- Contenidor IOC Injecció de dependències en
temps dexecució. - Cada DispatcherServlet disposa dun
WebApplicationContext.
- CARACTERÍSTIQUES
-
- Clara separació de rols ( Controllers,
Validators, Commands, Forms, Model Objects,
DispatcherServlet,etc) - Cada rol implementat per un objecte
especialitzat. - Capacitat de reutilització de codi de negoci.
- Sistema de validació millorat.
- Compatibilitat amb JSTL, Velocity i llibreries
de desenvolupament del costat del client. - Ampli repertori detiquetes per a les vistes.
- Ofereix implementació de gran varietat de
Controllers ( SimpleFormController,
AbstractWizardFormController,
AbstractCommandController, AbstractFormController
).
7Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKS DE PRESENTACIÓ ACTUALS JAVA SERVER
FACES
- Framework dinterfícies dusuari del costat del
servidor per a Aplicacions Web basades en Java. - Components
- API i implementació de referència
- Representar componentes UI ( User Interface)
- Manegar events
- Validacions de servidor.
- Conversió de dades
- Definir navegació entre vistes.
- Internacionalització i accessibilitat
- Extensibilitat de tots els components.
- Llibreries detiquetes
- Personalitzar componentes dintre duna vista.
- CARACTERÍSTIQUES
- Clara separació entre COMPORTAMENT i PRESENTACIÓ
- Mapeig de peticions HTTP a un gestor devents
específic. - Permet definit components UI amb estat.
- Permet separació de rols en el procés de
desenvolupament. - No limita a la utilització duna tecnologia
dscript o etiquetes particular. - Permet la conversió de dades i validació
individual sobre els components UI.
8Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKS DE PRESENTACIÓ ACTUALS COMPARATIVA
- JAVA SERVER FACES
- Més fàcil reutilització (Basat en components).
- Posibilita eines visuals de desenvolupament.
- Possibilitat de personalització.
- Estàndard ? Obre mercat de components.
- Potents eines de desenvolupament
- Faces Console
- Sun Java Studio Creator
- JSF formBuilder
- SPRING MVC
- - Framework molt robust
- Millora les capacitats dStruts.
- Sistema de test molt senzill i madur.
- Bon sistema de validacions.
- Constant evolució i suport duna àmplia comunitat
de desenvolupament. - Té una conba daprenentatge elevada.
- STRUTS
- Suport per a peticions multi-part
- - Excellent sistema de missatges.
- Tecnologia molt madura.
- Coneixeement molt estés i actualment molt usat.
- Eines de configuració molt madures
- Struts GUI
- Struts Console.
- Àmplia comunitat de suport i desenvolupament.
9Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ DESCRIPCIÓ
DESCRIPCIÓ FrameworkPFC és un nou marc de
treball que facilita la creació daplicacions web
resolent part de la problemàtica associada a la
capa de presentació. Facilita la construcció
daplicacions Web Thin Client. Segueix
lestàndard J2EE utilitzant components Servlets i
JSP. Basat en patró MVC ( Model Vista
Controlador). Programat utilitzant el
llenguatge Java. Desplegat com una llibreria
(.jar) en un projecte Web Desplegat en un
servidor daplicacions o contenidor de Servlets
compatible amb la plataforma J2EE.
REQUERIMENTS DUTILITZACIÓ Entorn de
desenvolupament Java (JDK). V.1.6 o superior.
Entorn dexecució Java (Màquina Virtual JRE),
versió igual o superior a 1.6. Servidor Web
amb contenidor de Servlets o Servidor
daplicacions J2EE . (Recomanable Tomcat 6.0 o
superior)
10Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ ABAST
Funcionalitats de FrameworkPFC Sistema de
configuració Configuració de forma declarativa ?
Fitxer de configuració. Control de flux
Sistema de navegació entre les vistes. Servei
dinternacionalització Servei que facilita la
traducció duna aplicació en diversos
idiomes. Validació simple de formularis
Captura la petició i valida els camps dun
formulari abans de realitzar cap
acció. Etiquetes per a la creació de les vistes
Etiquetes personalitzades que faciliten la
creació i estructuració de les vistes. Tractamen
t dadreces Definició declarativa dadreces
globals i locals. Tractament dexcepcions
Permet definir excepcions i manegadors
dexcepcions tan a nivell local com global.
11Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ ARQUITECTURA
12Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONFIGURACIÓ (1)
1 fitxer de configuració ? Carregat pel mètode
init del ServletController Conté elements de
configuració (Accions, adrecesGlobals, etc)
Element Descripció Classe Java
configuracio Configuració global. Conté la resta delements. com.fwk.config.Configuration
adrecesGlobals Conté totes les adreces globals que es poden configurar. HashMap que conté les adreces globals configurades.
desti Representa una adreça duna vista. Local o Global. com.fwk.actions.ActionForward
excepcionsGlobals Conté totes les excepcions globals. Seran comunes a totes les accions. HashMap que conté les excepcions globals.
excepcio Excepció llençada per una acció. Pot ser local o Global. com.fwk.config.exceptions.ExceptionConfig
formularis Conté tots els formularis configurats. HashMap que guarda tots els formularis definits.
formulari Representa un formulari associat a una accio. com.fwk.config.forms.FormConfig
accions Conté totes les accions configurades. HahsMap que conté totes les accions definides al fitxer de configuració.
accio Acció dusuari com.fwk.config.actions.ActionConfig
missatges Configuració de la missatgeria
13Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONFIGURACIÓ (2)
lt?xml version"1.0" encoding"UTF-8"?gt ltconfigurac
iogt lt!-- ADRECES GLOBALS --gt ltadrecesGlobalsgt lt
desti nom"error" adreca"/WEB-INF/jsp/student/stu
dentForm.jsp" /gt lt/adrecesGlobalsgt lt!--
EXCEPCIONS GLOBALS --gt ltexcepcionsGlobalsgt ltex
cepcio key"global. exception" type"java.lang.
Exception"/gt lt/excepcionsGlobalsgt lt!--
FORMULARIS --gt ltformularisgt ltformulari
nom"alumno" tipus"test.forms.StudentsForm"
/gt lt/formularisgt lt!-- ACCIONS
--gt ltaccionsgt ltaccio path"/student" name"nom"
type"test.accions.StudentAction" formulari"alum
no" parametre"reqCode" validate"true"gt ltdesti
nom"ok" adreca"/WEB- INF/jsp/student/studentForm
.jsp" /gt ltdesti nom"list" adreca"/WEB- INF/jsp/s
tudent/studentList.jsp"/gt ltexcepcio
key"numberFormat.exception" type"java.lang.Numb
erFormatException" path"/WEB-INF/jsp/student/stu
dentForm.jsp"/gt lt/acciogt ltaccio
path"/professor" type"com.fwk.actions.DirectActi
on" parametre"/WEB-INF/jsp/student/studentForm.js
p"/gt lt/accionsgt lt!-- MISSATGES --gt ltmissatges
urlBase"test.i18.ApplicationResources"/gt lt/conf
iguraciogt
14Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONTROL DE FLUX (1)
- Controlador
- 1 Controlador ? ServletController
- Extensible i ampliable
- Sha de declarar en el fitxer de configuració de
laplicació Web (web.xml) - Carrega el fitxer de configuració en el mètode
init. - Delega el tractament de les peticions a Processor.
15Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONTROL DE FLUX (2)
- Processor
- Allibera el controlador de responsabilitats de
processament de la petició. - Segueix el patró Dispatcher.
- Responsabilitats
- Configurar el Locale de la petició
- Cercar i crear lacció que sollicita lusuari.
- Crear el formulari associat a cada acció
- Omplir el formulari amb les dades de la petició
- Validacions simples associades als formularis.
- Executar lacció associada a la petició.
16Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONTROL DE FLUX (3)
- Accions
- Implementades per lusuari de FrameworkPFC.
- Han dheretar de Action i implementar el mètode
execute. - Tipus daccions
- Action ? Accions normals. Sha dimplementar el
mètode execute. - DirectAction ? No cal cap classe. Es configura
una vista declarativament. - MethodAction ? Diversos mètodes. El mètode és
identificat per lelement de configuració
paràmetre.
17Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ CONTROL DE FLUX (4)
- FormBeans
- Encapsulen les dades de lusuari enviades al
servidor. - Són objectes JavaBean que guarden la informació
enviada al servidor. - Es configuren de forma declarativa com a elements
de configuració. - (1) Es defineix un formulari alumne
- (2) Implementat per la classe StudentsForm.
- Estan associats a una o diverses accions
- (1) Associem el formulari alumne a la acció.
- Realitzen validacions simples ? Mètode
validate.
18Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ ESQUEMA DINTERACCIÓ
Petició Web
WEBAPP
ServletController
Codi Vista
delega
Adreça
PROCESSOR
Crea i omple
FormBean
ActionForward
Crea i executa
Acció
19Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ INTERNACIONALITZACIÓ
- Servei Multi-idioma
- Permet mostrar textos en les vistes de diferents
idiomes - Externalització del text en fitxers de
configuració. - Sevita escriure el text directament a les
vistes. - La classe MessageResourcesReader sencarrega de
consultar el Locale i agafar el text del fitxer
de configuració adequat.
20Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ ADRECES I EXCEPCIONS GLOBALS
- Adreces Globals
- Es defineixen rutes accessibles per
- Totes les accions
- Totes les excepcions
- En primer lloc es cerquen les adreces locals.
- Si no es troben es cerquen les adreces globals.
- En cas de no trobar cap adreça ? Es retorna la
mateixa vista.
- Excepcions Globals
- Durant el codi duna acció es poden produir
excepcions - Si decidim capturar-les, ho podem fer de forma
declarativa ? A través de configuració. - Dues formes
- Definició de rutes ? Ruta a on dirigir el flux
si sintercepta una excepció. - Definició de manegadors dexcepcions ? Classe que
ha de fer el tractament. - FrameworkPFC proporciona un manegador per defecte
? DefaultExceptionHandler
21Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ ETIQUETES PERSONALITZADES
- ETIQUETES
- Utilitzades en les vistes ? Facilitar la vida al
programador Web. - Cada etiqueta te associat un codi Java que
sexecuta al servidor - Realitzen tasques complexes.
- ltshowErrorsgt
- Etiqueta que permet mostrar els missatges
derror en forma de llistat. - ltvalueListgt
- Etiqueta per a mostrar llistats dentitats
contingudes en un objecte ListltObjectgt. - El llistat hadestar en la petició.
- ltcolumngt
- Etiqueta que representa una columna en un
llistat. - ltshowMessagegt
22Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FRAMEWORKPFC CREACIÓ DUN NOU MARC DE
PRESENTACIÓ VIES DE MILLORA
Vies de Millora Descàrrega de dades del servidor
Permetre descàrrega de dades del
servidor(Fitxers) fent servir eines com Jasper
Reports. Gestió dadreces Eines com Tiles
permeten identificar les adreces amb una clau
facilitant la llegibilitat. Configuracions
multi-mòdul Possibilitat de tenir més dun
mòdul ( fitxers de configuració) Formularis
dinàmics Afegir la possibilitat de crear
formularis dinàmics de forma declarativa.
Plug-ins Ús de plug-ins que es configuren
declarativament en el fitxer de configuració
?Validator. Filtres Possibilitat dincorporar
una processadors addicionals (que heretin de
Processor) i que formin una FilterChain (Cadena
de filtres) per a fer processaments duna petició
més complexos. Javascript Proporcionar una
llibreria dobjectes que implementin
funcionalitats recurrents com la validació de
formularis o el recorregut darbres DOM. Mòdul
AJAX Incorporar etiquetes que utilitzin AJAX per
a fer peticions asíncrones al servidor
daplicacions.
23Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FWKTEST APLICACIÓ DE TEST DESCRIPCIÓ I
REQUERIMENTS
Descripció FwkTest és una aplicació Web que es
desplega en un contenidor J2EE i que utilitza
FrameworkPFC com a motor de la capa de
presentació. És una aplicació fictícia de
gestió destudiants (Alta, baixa, modificació i
llistat destudiants). Dissenyada per a fer un
testing del nou marc de treball ? No pretén tenir
utilitat concreta Les dades no es persisteixen ?
Sutilitza un HashMap dalumnes que sinicia cada
cop que sentra a laplicació.
- Requeriments
- Màquina virtual Java (JRE) a partir de la versió
1.6. - Servidor Web amb contenidor de Servlets o
servidor daplicacions que implementi
lespecificació J2EE. - Exemple Tomcat 6.0 com a contenidor J2EE.
- Navegador Web amb Javascript habilitat.
- Per a fer les proves sha utilitzat Mozilla
Firefox v.3.6.16.
24Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FWKTEST APLICACIÓ DE TEST JERARQUIA DE FITXERS
(1)
25Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FWKTEST APLICACIÓ DE TEST JERARQUIA DE FITXERS
(2)
Nom de la carpeta Descripció
test.accions Classes de les accions desenvolupades
test.forms Classes dels formularis associats a les accions.
test.i18n Fitxers de properties dinternacionalització. Es fan servir per a convertir laplicació en multi-idioma.
test.model Classes de model que utilitza laplicació.
/css Fitxers destils de laplicació.
/images Fitxers .gif dimatges que es mostren en les vistes de laplicació.
/jsp Pàgines JSP. Vistes de laplicació.
/lib Llibreries necessàries. Sinclou la llibreria FrameworkPFC.jar.
/tld Fitxers detiquetes utilitzades.
/WEB-INF Carpeta on es guarda el fitxer de configuració del framework i fitxers que no han destar disponibles des del servidor Web.
26Disseny dun marc de treball de presentació per a
aplicacions J2EE
- FWKTEST APLICACIÓ DE TEST FLUX DE PANTALLES
Pantalla Principal de llistat destudiants
Pantalla Autenticació
Pantalla Ajuda
Pantalla Modificació/esborrat
Pantalla Alta estudiant
27- Construcció dun nou framework de presentació
CONCLUSIONS
- Conclusions
- La realització dun marc de treball de
presentació és una tasca molt atractiva des del
punt de vista de disseny i programació, però molt
complexa, ja que són moltes les funcionalitats a
oferir. - La realització del present projecte de final de
carrera ha estat centrada en dos grans blocs - Estudi i comparativa dels frameworks més
importants que hi ha en ús a lactualitat. - Disseny, implementació i testeig dun nou marc
de treball. - Els coneixements i lexperiència adquirida han
permès - Tenir una visió crítica més documentada per a
escollir entre les diferents solucions
disponibles al mercat. - Adquirir pràctica en els desenvolupaments Java
sota la plataforma J2EE. - Repercussió que té en el món empresarial reduint
costos econòmics i temporals.