La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Alberto Bastos Vargas Enginyeria en Informàtica Josep Maria Camps Riba

Presentaciones similares


Presentación del tema: "Alberto Bastos Vargas Enginyeria en Informàtica Josep Maria Camps Riba"— Transcripción de la presentación:

1 Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE
Alberto Bastos Vargas Enginyeria en Informàtica Josep Maria Camps Riba Universitat Oberta de Catalunya | 2012 Reconeixement-NoComercial-SenseObraDerivada 2.5 Espanya de Creative Commons

2 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 l’aterratge. El projecte pretén retribuir part de l’aportació de Java. paraules clau: reutilització, optimització, retribució Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

3 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 d’un 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

4 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Metodologia 4 de 20 Divisió en petites tasques assolibles a curt termini. Definició de tasques amb seqüència lineal, treball en paral·lel només per documentar. Evitar l’error comú de documentar “a posteriori”. Bloquejar l’avenç a una etapa fins assolir la documentació de l’anterior. 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

5 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Planificació 5 de 20 Tres grans fases coincidents amb tres lliuraments. Fase I: Estudi d’eines, teoria, pràctica i conclusions. Fase II: Desenvolupament propi. Anàlisi, disseny, construcció i proves. Regla del 50%-50% (temps d’implementació = resta d’etapes). Fase III: Demostració, modificacions. Documentació: 20% del temps total de projecte. 5 d’octubre. Posada en marxa. 10 de novembre: Estudi previ. 19 de desembre: Desenvolupament propi. 16 de gener: Demostració i documentació final. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

6 Alberto Bastos Vargas UOC 2012
> Planificació: tasques i dependències introducció | estudi d’eines | desenvolupament | conclusions 6 de 20 Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

7 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Components J2EE 7 de 20 Servlets: punts d’accé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 d’execució, contenidors d’informació útil i magatzems de dades. Listeners: observadors d’esdeveniments, 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

8 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Front Controller 8 de 20 Patró de disseny preferent en el disseny de frameworks de presentació. Habilita un únic punt d’entrada al sistema que assumeix el rol d’eix central i redirigeix les dades d’entrada i sortida. Possibilitat de suportar responsabilitats addicionals, com mantenir l’estat de l’aplicació. Aporten simplicitat al disseny i facilitat en el manteniment i configuració del sistema. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

9 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 instal·lar 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

10 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Struts 2 Framework 10 de 20 Craig McClanahan (Apache Foundation), 2005. El més popular durant uns anys, ha perdut notorietat en favor d’altres alternatives. Orientat a petició, Front Controller implementat amb FilterDispatcher (novetat respecte l’ActionServlet 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ó d’anotacions Java poc satisfactòria. Problemàtic amb l’enregistrament 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

11 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 d’etiquetes 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

12 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Grails 12 de 20 G2ONE (actualment SpringSource), El seu creador “renega” del seu treball en favor d’una proposta posterior, Scala. Framework per Groovy, llenguatge dinàmic que genera Java bytecode en temps d’execució (no hi ha fase de pre-compilació). Conserva el paradigma Model Vista Controlador, però amb especial èmfasi per aconseguir entorns d’alta 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 l’excés d’automatismes. Bon exemple d’una nova tendència que allibera al desenvolupador de tasques mecàniques i repetitives. Adequat per a entorns i metodologies àgils d’alta productivitat. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

13 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

14 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 d’execució. Java Genèrics amb ús de reflexió avançada: definicions de dades més específiques recuperant les regles imposades en temps d’execució. FreeMarker: potent motor per a vistes amb una sintàxi que cerca un bon equilibri entre HTML i Java. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

15 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 d’excepcions i contenidors de resultats. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

16 Alberto Bastos Vargas UOC 2012
> FFramework: Processat de petició introducció | estudi d’eines | desenvolupament | conclusions 16 de 20 Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

17 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > FFramework: Reptes tècnics 17 de 20 Necessitat d’escanejar anotacions Java 5 en temps d’execució. Opcions disponibles: Suport nadiu complex que involucra configuració XML externa. Ús de llibreries de Spring Framework amb excessives dependències que sobrecarreguen l’eina. Ús de Google Reflections. Detecció de tipus genèrics de col·leccions Java en temps d’execució. 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 col·lecció. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

18 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > FFramework: Aplicació de prova 18 de 20 Base de dades cinematogràfica (manteniment de pel·lí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 d’accés mitjançant validadors (done). Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

19 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > Millores i ampliacions 19 de 20 Suport per a col·leccions 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ó d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012

20 Alberto Bastos Vargas UOC 2012
introducció | estudi d’eines | desenvolupament | conclusions > 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 d’opcions enfocades a l’alta productivitat. La major dificultat trobada durant el desenvolupament d’un 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 l’usuari final. Disseny i implementació d’un marc de treball de presentació per aplicacions J2EE Alberto Bastos Vargas UOC 2012


Descargar ppt "Alberto Bastos Vargas Enginyeria en Informàtica Josep Maria Camps Riba"

Presentaciones similares


Anuncios Google