Title: Diapositiva 1
1Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas Enginyeria en Informàtica Josep Maria
Camps Riba Universitat Oberta de Catalunya 2012
2introducció estudi deines desenvolupament
conclusions
gt Justificació i context
2 de 20
- Època daurada del desenvolupament de software.
- Quantitat cada cop més gran de potencials
desenvolupadors. - Més volum de negoci, sistemes més exigents,
necessitat de reutilització. - Els frameworks faciliten la feina, permeten la
reutilització i optimitzen processos. - Java es basa en la comunitat compartir
coneixement, facilitar laterratge. - El projecte pretén retribuir part de laportació
de Java. - paraules clau reutilització, optimització,
retribució
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
3introducció estudi deines desenvolupament
conclusions
gt Objectius
3 de 20
- Estudiar el parc actual de frameworks de
presentació J2EE. - Identificar fets comuns i diferenciador de cada
eina. Aprendre dels errors. - Emprar el coneixement adquirit en el
desenvolupament dun framework propi. - Entendre en primera persona les complicacions
implícites del seu desenvolupament. - Conèixer en primera persona les sensacions dús
del nostre framework. - Identificar fortaleses i debilitats i treballar
en la millora i evolució. - paraules clau formar, divulgar, aportar
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
4introducció estudi deines desenvolupament
conclusions
gt Metodologia
4 de 20
- Divisió en petites tasques assolibles a curt
termini. - Definició de tasques amb seqüència lineal,
treball en parallel només per documentar. - Evitar lerror comú de documentar a
posteriori. Bloquejar lavenç a una etapa fins
assolir la documentació de lanterior. - Donar prioritat a la vessant pràctica. Recolzar
tota teoria observada amb exemples i casos
pràctics. - Enfocat en la usabilitat. Prioritat al com
respecte al què. - Desenvolupament amb una metodologia estàndard de
projectes anàlisi, disseny, construcció, proves,
seguiment. - paraules clau grànul, documentació, usabilitat
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
5introducció estudi deines desenvolupament
conclusions
gt Planificació
5 de 20
- Tres grans fases coincidents amb tres
lliuraments. - Fase I Estudi deines, teoria, pràctica i
conclusions. - Fase II Desenvolupament propi. Anàlisi,
disseny, construcció i proves. - Regla del 50-50 (temps dimplementació resta
detapes). - Fase III Demostració, modificacions.
- Documentació 20 del temps total de projecte.
- 5 doctubre. Posada en marxa.
- 10 de novembre Estudi previ.
- 19 de desembre Desenvolupament propi.
- 16 de gener Demostració i documentació final.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
6introducció estudi deines desenvolupament
conclusions
gt Planificació tasques i dependències
6 de 20
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
7introducció estudi deines desenvolupament
conclusions
gt Components J2EE
7 de 20
- Servlets punts daccés al sistema, reben dades
i retornen resultats. Cas més habitual navegador
web, peticions HTTP i respostes HTML. - Filter interceptors anteriors i posteriors al
tractament de la petició. Útils per a tasques
transversal que afecten tot el sistema. - Session i Context àmbits dexecució,
contenidors dinformació útil i magatzems de
dades. - Listeners observadors desdeveniments,
habitualment creació i destrucció dàmbits. - Java Server Pages plantilles per a vista, estil
híbrid entre HTML i Java. - TagLibs ampliació de JSP que reforça la
separació entre lògica i presentació.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
8introducció estudi deines desenvolupament
conclusions
gt Front Controller
8 de 20
- Patró de disseny preferent en el disseny de
frameworks de presentació. - Habilita un únic punt dentrada al sistema que
assumeix el rol deix central i redirigeix les
dades dentrada i sortida. - Possibilitat de suportar responsabilitats
addicionals, com mantenir lestat de laplicació. - Aporten simplicitat al disseny i facilitat en el
manteniment i configuració del sistema.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
9introducció estudi deines desenvolupament
conclusions
gt Spring Web MVC Framework
9 de 20
- Rod Johnson (SpringSource). Mòdul integrat a
Spring Framework (2002). - Orientat a petició, patró Front Controller
implementat amb DispatcherServlet. - Controllers per entrada i sortida de dades,
Handler Mappings per interceptar les peticions,
View Resolver per gestionar i generar vistes. - Configuració amb anotacions Java, mínima
configuració XML. - Poc suport per installar recursos dinàmics i
estàtics en el mateix context. - Validació de formularis poc intuïtiva.
- Disseny impecable, però eina sobredimensionada.
- Suport per a múltiples tecnologies de vista
simultàniament. - Opció preferent amb combinació amb altres mòduls
de Spring Framework.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
10introducció estudi deines desenvolupament
conclusions
gt Struts 2 Framework
10 de 20
- Craig McClanahan (Apache Foundation), 2005.
- El més popular durant uns anys, ha perdut
notorietat en favor daltres alternatives. - Orientat a petició, Front Controller implementat
amb FilterDispatcher (novetat respecte
lActionServlet de la versió inicial). - Actions amb convivència de mètodes i dades
emmagatzemades. - Results amb plantilles associades (múltiples
tecnologies de vista). - Ús intensiu internament de FreeMarker.
- Interceptors anteriors i posteriors.
- Configuració XML completa però opció
danotacions Java poc satisfactòria. - Problemàtic amb lenregistrament i conversió de
tipus de dades complexos. - Gran ventall de components implementats de
sèrie. - Potent TagLib per a recepció i enviament de
dades.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
11introducció estudi deines desenvolupament
conclusions
gt Java Server Faces
11 de 20
- Java Community Process, 2004.
- Especificació del framework, múltiples
implementacions referència, MyFaces, RichFaces,
ICEFaces, etc. - Orientat a components, esdeveniments sobre
aquestos. - Patró Front Controller implementat amb
FacesServlet (intermediari entre els
esdeveniments i els components afectats). - Components UI altament reutilitzables i Manager
Beans acoplats a ells per implementar lògica de
negoci. - Potent TagLib altament integrat en les tasques
de presentació. - Llibreria detiquetes com a gran virtut i
defecte, molt intrusiva. - Configuració amb anotacions a partir de JSF2.0,
conserva compatibilitat amb JSF1.2. Molt
intuïtiva donant com a resultat un codi
notablement comprensible. - Promogut com a complement a utilitzar
conjuntament amb altres frameworks.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
12introducció estudi deines desenvolupament
conclusions
gt Grails
12 de 20
- G2ONE (actualment SpringSource), 2003. El seu
creador renega del seu treball en favor duna
proposta posterior, Scala. - Framework per Groovy, llenguatge dinàmic que
genera Java bytecode en temps dexecució (no hi
ha fase de pre-compilació). - Conserva el paradigma Model Vista Controlador,
però amb especial èmfasi per aconseguir entorns
dalta productivitat. - Automatització de tasques de generació de codi.
Basat en estendre els comportaments per
defecte. - Patró Front Controller, encara que poc visible
degut al seu enfocament. - Menys flexibilitat donat lexcés dautomatismes.
- Bon exemple duna nova tendència que allibera al
desenvolupador de tasques mecàniques i
repetitives. - Adequat per a entorns i metodologies àgils
dalta productivitat.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
13introducció estudi deines desenvolupament
conclusions
gt FFramework Principis bàsics
13 de 20
- Configuració mínima i senzilla.
- Innovació i factors diferenciadors més
anotacions i FreeMarker, menys XML, herències i
TagLibs. (estil Spring MVC Web Framework) - Combinar dades i accions evitant els errors
habituals. (estil Struts Framework) - Alta flexibilitat en la visibilitat de dades.
Permetre la consulta transversal de la
informació. (estil Java Server Faces) - Evitar el fort lligam una vista un
controlador. (estil Java Server Faces) - Potenciar la generació de vistes amb
automatismes que alliberin de tasques repetitives.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
14introducció estudi deines desenvolupament
conclusions
gt FFramework Tecnologies clau
14 de 20
- Anotacions Java 5 combinació entre definició i
codificació del software sense perjudicar la
claredat del codi. - Java Reflection API accés a meta-informació del
sistema en temps dexecució. - Java Genèrics amb ús de reflexió avançada
definicions de dades més específiques recuperant
les regles imposades en temps dexecució. - FreeMarker potent motor per a vistes amb una
sintàxi que cerca un bon equilibri entre HTML i
Java.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
15introducció estudi deines desenvolupament
conclusions
gt FFramework Classes
15 de 20
- Patrò Front Controller amb FServlet.
- Conversió de dades amb FConverters.
- Controladors dades amb FBeans.
- Comportaments amb FActions.
- Directives per automatitzar vistes.
- Validacions, tractament dexcepcions i
contenidors de resultats.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
16introducció estudi deines desenvolupament
conclusions
gt FFramework Processat de petició
16 de 20
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
17introducció estudi deines desenvolupament
conclusions
gt FFramework Reptes tècnics
17 de 20
- Necessitat descanejar anotacions Java 5 en
temps dexecució. Opcions disponibles - Suport nadiu complex que involucra configuració
XML externa. - Ús de llibreries de Spring Framework amb
excessives dependències que sobrecarreguen
leina. - Ús de Google Reflections.
- Detecció de tipus genèrics de colleccions Java
en temps dexecució. Problema del type erasure,
ja que les definicions genèriques no
necessàriament sobreviuen a la compilació. Es
requereix un ús avançat de la Java Reflection API
per poder concloure a partir de la seva definició
el tipus al que es troba destinat una collecció.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
18introducció estudi deines desenvolupament
conclusions
gt FFramework Aplicació de prova
18 de 20
- Base de dades cinematogràfica (manteniment de
pellícules, persones i relacions entre elles).
Observacions i problemes - Incompatibilitat entre directiva de bucle i
directives per mostrar dades. - Impossibilitat de llistes desplegables sense
vincle directe amb dades emmagatzemades (fixed). - Reutilització de validadors (fixed).
- Problemàtica amb dades complexes similar a la
que pateix Struts Framework. - Control daccés mitjançant validadors (done).
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
19introducció estudi deines desenvolupament
conclusions
gt Millores i ampliacions
19 de 20
- Suport per a colleccions Java de tipus no
bàsics. - Suport per a multiidioma.
- Suport per a múltiples motors de vista (JSP,
XSD, Velocity...). - Estudi de variants del patró Front Controller
(filtres...). - Ampliar la potència dels validadors de dades.
- Millorar la convivència entre recursos dinàmics
i estàtics. - Eina CASE.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012
20introducció estudi deines desenvolupament
conclusions
gt Conclusions
20 de 20
- El desenvolupament de meta-eines presenta una
sèrie de característiques molt més complexes que
la construcció de productes amb una definició més
tancada. - Predomina lús del patró Front Controller.
- Les darreres evolucions apunten clarament a
optimitzar la configuració, cercant alternatives
a l'ús de fitxers XML. - Existeix una corrent encara en creixement
dopcions enfocades a lalta productivitat. - La major dificultat trobada durant el
desenvolupament dun framework de presentació és
la conversió de dades. - Experiència positiva. Entendre millor aspectes
que anteriorment tenien difícil explicació des
del punt de vista de lusuari final.
Disseny i implementació dun marc de treball de
presentació per aplicacions J2EE Alberto Bastos
Vargas UOC 2012