Sunteți pe pagina 1din 8

1|

Introduccin
Un framework, en el desarrollo software, es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Tpicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee de una estructura y una metodologa de trabajo la cual extiende o utiliza las aplicaciones del dominio. Son diseados con el intento de facilitar el desarrollo de software, permitiendo a los diseadores y programadores pasar ms tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel. Sin embargo, hay quejas comunes acerca de que el uso de frameworks aade cdigo innecesario y que la preponderancia de frameworks competitivos y complementarios significa que el tiempo que se pasaba programando y diseando ahora se gasta en aprender a usar frameworks. Fuera de las aplicaciones en la informtica, puede ser considerado como el conjunto de procesos y tecnologas usados para resolver un problema complejo. Es el esqueleto sobre el cual varios objetos son integrados para una solucin dada. Despus de todo, un framework no debe ser consciente de todos estos requerimientos sin tener que ser intrusivo con las aplicaciones que permite dentro de s mismo. A esto le sumamos la capacidad de extenderse sin prejuicios para diversificar la expresin del programa mismo. En este caso de estudio, SEAM es un framework Open Source desarrollado por la empresa JBOSS (tambin propietaria de otras tecnologas populares en el mundo java como Hibernate), con el fin de unir diferentes tecnologas y estndares de Java en un mismo framework, a la vez que aade algunas funcionalidades no contempladas por ellos. Una primera pregunta que puede surgir podra ser por qu unir diferentes frameworks y estndares en uno solo cuando la gran ventaja de Java es precisamente la gran cantidad de alternativas que existen? Pues bien, hay radica una de las grandes ventajas de este nuevo framework, se puede disponer de todas las funcionalidades que se buscan (o casi) pero en uno solo, sin necesidad de ir integrando diferentes componentes y sin renunciar a la posibilidad de agregar el que echemos en falta. Es decir, si necesitamos una funcionalidad estndar, SEAM nos permite iniciar el proyecto desde el primer da, sin perder el tiempo en buscar diferentes frameworks / libreras / para cada cosa que necesites, adems de que te asegura que dichos componentes se encuentran ya probados y correctamente integrados entre s. Incluso, si maana te surge una necesidad no contemplada por SEAM, podrs integrar cualquier componente que necesites puesto que SEAM est compuesto por frameworks estndar. Todo esto est muy bien, pero qu frameworks integra SEAM? Cmo hace las uniones? Para responder a esto necesitamos tener presente primero que la arquitectura de Seam est

basada en un modelo MVC (Model View Controller Modelo Vista Controlador). Dentro de este modelo, Seam utiliza los siguientes estndares: Model. Para la parte del modelo, Seam permite utilizar EJB3 o SeamBeans (JavaBeans con anotaciones para definir su nombre y scope). La primera opcin es utilizar EJB3, concretamente EntityBeans (mapeo a la base de datos), Stateless/Statafull Session Beans (componentes con y sin estado) y Message Driven Beans (colas de mensajes). Esta opcin dara como resultado un EAR, que deber ejecutarse en un contenedor EJB. En el segundo caso (y el utilizado para realizar la aplicacin de ejemplo) Seam Beans, se puede utilizar Hibernate para el mapeo a la BD, y el equivalente a los Stateless y Statefull Sessions Beans pero manejados por el framework Seam (similar en este caso a la forma de trabajar con Spring). En este caso, la salida ser un archivo WAR, que podr ejecutarse sin problemas en la gran mayora de contenedores de servlets (como Tomcat). View. Dado que Seam est enfocado principalmente a desarrollos web, toma como base el estndar JSF (apoyado o no en Facelets). Dentro de JSF, Seam no impone la librera de componentes a utilizar, aunque incluye su propia librera de componentes Seam, y lleva de serie la librera RichFaces / AjaxA4JSF dado que ambas son tambin propiedad de JBoss. En este sentido, aunque existen una gran cantidad de alternativas, ambas libreras son de las ms completas que hay actualmente, y por tanto, probablemente no se decida cambiarlas. En cualquier caso, el cambiar de una librera de componentes a otras e trivial, as que siempre se puede optar por poner la librera JSF que mejor se adapte a nuestras necesidades. Controller. En este caso, las alternativas que tenemos seran parecidas a la capa de Modelo, ya que podemos utilizar tanto Stateless/Statefull Sessions Beans como Seam Beans. Adems de integrar todo lo comentado anteriormente, Seam aade tambin multitud de agregados y ventajas, algunas de las cuales son: Anotaciones. Todos los componentes Seam pueden ser definidos completamente mediante el uso de anotaciones, incluidas las biyecciones, validadores, observers, etc. Qu ventajas tiene esto? Fundamentalmente una reduccin dramtica de la cantidad de archivos y lneas de los xmls, y una propagacin ms rpida ya que no tienes que andar definiendo cada cosa por separado en diferentes archivos. Nuevos Contextos. Seam aade 3 nuevos contextos a los tradicionales (request, sesin y application). Estos 3 contextos son: Page. Similar al contexto Request (llamado Event en Seam), pero a diferencia de este, los datos persisten mientras el usuario se encuentra en la misma pgina (muy til en peticiones AJAX y en formularios cuyo destino sea la misma pgina). Conversation. Nunca te ha pasado que tienes un formulario dividido en varias pginas y tienes que ir acarreando los resultados de pgina en pgina, o alternativamente guardarlos en la sesin, con lo que no permitiras que mltiples tabs accedan al mismo formulario simultneamente ya que machacaran datos del resto de tabs? Pues el contexto de conversacin puedes hacer esto de forma sencilla. Cmo? Pues indicndole a Seam cuando quieres iniciar una nueva conversacin (por ejemplo al entrar en cierta web, o al ejecutar un mtodo de un controller), y almacenando los valores intermedios en estos formularios en este contexto. El resultado? Cada tab acceder a su contexto particular de conversacin, de forma transparente, y as t no tendrs que preocuparte por acarrear los valores de formulario en formulario, ni de los posibles errores que conllevara el almacenamiento en

Session. La nica preocupacin que se tendr consistir en marcar los inicios y finales de las conversaciones. Business. Este contexto est ideado para integrarlo con el motor de reglas BMP que incorpora el propio Seam. EL mejorada. Se ha mejorado mucho el intrprete de las expresiones lgicas (EL) para permitir el paso de parmetros y otras mejoras. La gran ventaja de esto es que permite la creacin de controladores altamente reutilizables gracias al paso de parmetros directamente desde JSF. Y mucho ms. Como pueden ser la librera JSF Seam (con URLs tipo RESTFUL, decoradores, etc), gestin de usuarios, integracin de Webservices, JBPM,

En resumen, Seam permite usar EJB3+JSF de una forma muy sencilla, adems de aadirte herramientas tremendamente tiles para el desarrollo de aplicaciones Web, todo en un solo framework bien acoplado y basado en estndares ampliamente utilizados y probados. Todo esto lo iremos comprobando con la ayuda de una aplicacin web realizada como ejemplo claro de su funcionamiento y potencial.

1.1 |Objetivos
A la hora de desarrollar este proyecto se han buscado unos objetivos claros y concretos que se pretenden ir cumpliendo a lo largo del tiempo de desarrollo. Se pretende un acercamiento al nuevo framework de JBOSS, Seam, realizando un estudio terico de sus principales caractersticas. Adems de este estudio terico, este proyecto constar de otro estudio prctico del framework para una mejor comprensin, para lo que se desarrollar una aplicacin web que se base en esta tecnologa entre otras. Estos dos son los objetivos principales que se buscan con el desarrollo de este proyecto fin de carrera. El estudio terico se centrar en sacar a la luz las principales novedades que este framework aporta al mundo de los desarrolladores as como sus principales defectos. Se podr ver como se puede construir una aplicacin desde cero gracias a sus funcionalidades. Se respondern a preguntas tales como qu es, qu hace, qu tecnologas usa, cmo las usa. Y qu mejor manera de poder responder a estas y otras preguntas que desarrollando una aplicacin web que sirva como un ejemplo esclarecedor de lo que esta tecnologa es capaz de hacer. Para esta aplicacin web de ejemplo se ha elegido desarrollar un proyecto para el Ayuntamiento de Paterna del Campo, ms concretamente para la Concejala de Juventud y Deportes. Dicho proyecto deber gestionar todo lo referente a la organizacin y direccin del campeonato de ftbol sala que organiza la aludida institucin ao tras ao. Se pretende la construccin de una aplicacin web de calidad, con un diseo trabajado y que de soporte a las exigencias del cliente. Se pretende dotar al cliente de una herramienta que integre soluciones a los actuales problemas encontrados. Entre estas soluciones, se aspira agilizar el tratamiento de datos y facilitar el trabajo diario a los tcnicos de la concejala. El sistema controlar la informacin generada, y deber permitir entre otras acciones, el alta, consulta y mantenimiento de registros recogidos en una base de datos donde se hallarn los campos ms importantes para el desarrollo normal del campeonato. El sistema comprender tres mdulos principales que dividirn el sistema en gestin de jugadores, equipos y colegiados, gestin de la competicin y mantenimiento y gestin de usuarios y perfiles. Se busca que esta aplicacin presente una interfaz amigable ya que otro de los objetivos que se busca por parte de cliente y desarrollador es dar la herramienta para el uso de quien lo desee, pretendiendo as ser un punto de encuentro clave para los aficionados de este deporte en el municipio. En conclusin, se persigue demostrar que las herramientas que Seam nos proporciona son potentes, que se es capaz de construir aplicaciones capaces de gestionar problemas reales y con la que se puede desarrollar los proyectos que se pretendan. La mejor forma de estudiar el nuevo framework es viendo cmo funciona, hacerlo funcionar y demostrar sus cualidades, as se podr formar una idea ms correcta y concreta de este nuevo framework que dar mucho que hablar en el mundo de los desarrolladores.

1.2| Justificacin
En Ingeniera del software se denomina aplicacin web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a travs de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicacin software que se codifica en un lenguaje soportado por los navegadores web (HTML, JavaScript, Java, etc.) en la que se confa la ejecucin al navegador. Las aplicaciones web son populares debido a lo prctico del navegador web como cliente ligero, as como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales.[] Es importante mencionar que una pgina Web puede contener elementos que permiten una comunicacin activa entre el usuario y la informacin. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la pgina responder a cada una de sus acciones, como por ejemplo rellenar y enviar formulario, participar en juegos 1 diversos y acceder a gestores de base de datos de todo tipo.

Todo parte de la experiencia obtenida durante el desarrollo de las prcticas de empresa cursadas hace ya unos cursos. A lo largo de estas prcticas fui conociendo poco a poco el framework SEAM y todo su potencial, as que pens que mi proyecto fin de carrera pudiese ser un estudio ms detallado de este nuevo marco de trabajo. Pero claro, la mejor manera de poder mostrar de lo que se es capaz de hacer con esta nueva herramienta es desarrollando una aplicacin basada en ella. Por lo tanto, la idea final se convirti en lo que es hoy da este proyecto, el desarrollo de un estudio terico del framework y un estudio prctico construyendo una aplicacin web de ejemplo para una mejor comprensin. Y por qu una aplicacin web, pues porque es lo ms idneo, ya que Seam es un poderoso marco de aplicacin que simplifica la creacin de aplicaciones web 2.0 de ltima generacin. Ahora el problema estaba en elegir un tema para la aplicacin de ejemplo. La solucin me llego hablando con un amigo concejal de juventud y deportes en el ayuntamiento de mi localidad. Este me contaba la problemtica que encontraban a la hora de la organizacin del campeonato local de ftbol sala. Ao tras ao, el ayuntamiento organiza un campeonato local de ftbol sala que est muy arraigado y el cual goza de una muy amplia aficin en el pueblo y pueblos colindantes (como ya sabemos, el ftbol es el deporte rey por excelencia). Esta organizacin era muy costosa en tiempo antes y durante el desarrollo de la competicin. Adems, como se acercaba el 25 aniversario del campeonato, queran dar a conocer al pueblo datos histricos y curiosidades de la competicin. Con todo esto, pens que se poda desarrollar una aplicacin que les facilitar el trabajo y servirme a m como ejemplo para mi proyecto fin de carrera, ya que sera una aplicacin que tendra su uso en la vida real y con la que se podra mostrar las principales caractersticas del framework Seam.

1.3| Propuesta detallada


SEAM. ESTUDIO Y APLICACIN Introduccin El proyecto a desarrollar consistir en un estudio terico del nuevo framework Seam, destacando sus principales virtudes y defectos, as como un estudio prctico de la tecnologa, construyendo para ello una aplicacin web. Esta aplicacin web ser desarrollada para el Ayuntamiento de Paterna del Campo, bajo peticin de su Concejal de Juventud y Deportes, y consistir en una herramienta que integre soluciones a los problemas encontrados en la gestin del campeonato de ftbol sala anual que organiza dicha institucin. Bsicamente se pretende agilizar el tratamiento de datos y facilitar el trabajo diario de los tcnicos de la concejala, as como incluir nuevas posibilidades a la hora de gestionar la competicin. Participantes en el proyecto Los participantes en este proyecto fin de carrera son: Sal Domnguez Gmez, alumno de Ingeniera Tcnica en Informtica de Gestin por la Escuela Tcnica Superior de Ingeniera Informtica de la Universidad de Sevilla, el cul realizar el estudio completo del Framework as como tambin el desarrollo ntegro de la aplicacin web basada en SEAM. Jos Mariano Gonzlez Romano, profesor titular del Departamento de Lenguajes y Sistemas Informticos por la Universidad de Sevilla, encargado de la supervisin y control del desarrollo completo del sistema. Requisitos del sistema A continuacin mostramos los requisitos funcionales y no funcionales que tiene que cumplir la aplicacin web a desarrollar. REQUISITOS FUNCIONALES Gestin de jugadores. El sistema deber permitir el alta, baja, edicin y consulta sobre jugadores. Estas gestiones se llevarn a cabo mediante el tratamiento de formularios que se encargarn de gestionarlos los tcnicos que el Ayuntamiento estime oportuno. Adems se podr consultar todos los datos correspondientes a los jugadores usando mecanismos de bsquedas y filtros. Gestin de equipos. Bsicamente deber permitir las acciones que se permiten en la gestin de jugadores. Alta, baja, edicin y consultas de equipos ya registrados en el sistema. La generacin de equipos ser posible gracias al registro de jugadores en el sistema. Gestin de colegiados. El sistema deber gestionar toda la informacin concerniente a los colegiados que participan en el campeonato. Se deber permitir el alta, baja, edicin y consulta de colegiados. Como en los anteriores casos, estas gestiones se llevarn a cabo mediante el tratamiento de formularios. Gestin de la competicin. En este apartado gestionaremos todo lo concerniente con el da a da de la competicin. Se deber gestionar todos los partidos de los que consta el calendario.

Gestin del calendario. Se pretende desarrollar automticamente el calendario de partidos del que dispondr el campeonato atendiendo a los criterios de los tcnicos tales como nmeros de equipos, fechas disponibles Gestin de partidos. Se registrarn los equipos participantes, los jugadores, los goles y todo lo relacionado con un partido de estas caractersticas. Se deber poder generar un documento pdf para que adems de dejarlo registrado en el sistema se pueda tener una copia en papel. Adems, siempre se podr sacar una copia en papel de cualquier partido que se encuentre guardado en el sistema, sea la temporada que sea, para ello se contar con un mecanismo de bsqueda que dispondr de una serie de filtros, para que as podamos elegir el encuentro que se quiera para generar su correspondiente pdf. Gestin de sanciones. Se tratar todo el tema de las sanciones a los jugadores. Se realizarn acciones como sancionar un jugador, levantar una sancin, modificarla o consultar los datos de una. Todo ello mediante el tratamiento de formularios.

Mantenimiento. El sistema deber permitir el mantenimiento de las cuentas de usuarios, as como la administracin de perfiles y permisos y el mantenimiento de las tablas diccionario. Gestin bsica de usuarios. Consideraremos el alta, baja, edicin y consulta de usuarios. Gestin de perfiles. Dependiendo de estos perfiles los usuarios del sistema tendrn unos privilegios u otros. Vamos a considerar cuatro tipos de usuarios en la aplicacin web: o Usuarios annimos (invitados), usuarios con acceso restringido a los servicios y con participacin pasiva en la aplicacin web. o Usuarios registrados, usuarios con acceso a casi todos los servicios de la aplicacin web y con participacin activa-pasiva. Estos usuarios podrn consultar todos los datos del sistema y participar en encuestas. o Usuarios gestores de contenido (tcnicos de deportes del Ayuntamiento), usuarios designados por el Ayuntamiento encargados de gestionar la aplicacin. Llevarn a cabo gestiones tales como el alta de un jugador, de un equipo, la edicin de estos, la gestin de partidos , en resumen, todo lo concerniente a la gestin del campeonato. o Administrador/es, con acceso total en la aplicacin. Se encargarn de la administracin de la aplicacin. Gestin de estadsticas. Se contar con un generador de estadsticas, organizadas por jugadores (partidos totales, tarjetas tanto por equipos como por temporadas o en total de su carrera), equipos (partidos ganados, partidos perdidos y empatados en el campeonato, o en total, entre otras cosas), generales a una temporada (Campen, Pichichi, Zamora) o de curiosidades para que puedan ser consultados por los usuarios de la aplicacin.

Generador de una gua. Para poder hacer ms cercano el Campeonato de Ftbol Sala, el sistema permitir la generacin de un documento a modo de gua en donde se recoja todo lo relacionado con la competicin. Equipos, jugadores, calendario de la competicin, resumen de la temporada pasada, estadsticas. Dicha gua estar disponible para la descarga en pdf por cualquier usuario registrado de la aplicacin.

REQUISITOS NO FUNCIONALES Accesibilidad Poseer un buen nivel de accesibilidad, obteniendo el nivel de conformidad A con las guas de accesibilidad para contenidos web del W3C. Usabilidad La usabilidad va muy ligada a la accesibilidad. Toda la informacin y recursos de los que se disponen en el sistema deben ser de utilidad. Se pretende que el sistema sea un punto de acceso a la informacin muy utilizado por los usuarios. Calidad Se usarn estndares, guas y hojas de estilo para el diseo de la interfaz del sistema. Seguridad Otro de los aspectos ms importantes es la seguridad de la informacin. Se controlar el acceso de los usuarios.

Portabilidad La aplicacin web a desarrollar ser compatible con al menos los navegadores Microsoft Internet Explorer y Mozilla Firefox. Uso de software libre Las tecnologas y herramientas que emplearemos principalmente son del tipo denominado Software libre, entre las que se destacan: Servidor web Apache. Sistema gestor de base de datos HSQLDB. Framework Seam (de JBoss) que integra la capa de presentacin JSF (JavaServer Faces) con la capa de negocios y persistencia (JPA EJB 3 Session Bean). Richfaces, biblioteca de componentes JSF con soporte Ajax (Asynchronous JavaScript And XML- AJAX).

Adems se utilizarn las siguientes herramientas: Entorno de desarrollo Eclipse 3.3. Herramienta para el retoque fotogrfico Adobe Photoshop CS2. Enterprise Architect, herramienta para el diseo y anlisis UML. Herramienta REM 1.2.2 para el desarrollo de la elicitacin de requisitos y anlisis del sistema.

S-ar putea să vă placă și