Sei sulla pagina 1di 10

Sistema Estatal de Informacin Cientfica y Tecnolgica del Estado de Tabasco (SEICYT) a travs de aplicaciones Web

Luis A. de la Cruz-Diaz1.1, Salvador U. Lara-Jeronimo1, Fernando Pech-May1, Mario A. Gomez-Rodriguez1


Instituto Tecnolgico Superior de los Ros. 86930 Km. 3 Carretera Balancn Villahermosa, Balancn, Tabasco, Mxico {aceletes, uciellara}@gmail.com, {fpech, mgomez}@tamps.cinvestav.mx
1

Resumen. El Consejo de Ciencia y Tecnologa del Estado de Tabasco (CCYTET) tiene la necesidad de administrar y publicar todas las actividades cientficas y tecnolgicas que se llevan a cabo en la entidad, por tanto, es necesario desarrollar un sistema web que solucione dicho problema. Este artculo presenta el desarrollo de un servicio de publicacin de informacin Cientfica y Tecnolgica utilizando tecnologas web. La implementacin de este sistema est basada en la arquitectura de software del modelo vista controlador utilizando tecnologas web como JSF 2.0, JPA 2, EJB 3, AJAX, PrimeFaces y MySQL. La informacin que se transmite utiliza el protocolo HTTPS para asegurar la privacidad de la informacin. Keywords: Java Server Faces 2.0, Enterprise Java Beans 3.1, JPA 2.0, HTTPS.

1 Introduccin
Con el avance de las tecnologas web y la Internet, se han abierto nuevas oportunidades para los desarrolladores de aplicaciones en la red; permitindoles el uso de las nuevas tecnologas web en el desarrollo de aplicaciones mucho ms robustas, escalables y con un mayor rendimiento. Algunas de las nuevas tecnologas que han surgido son: Java Server Faces (JSF [3, 4]) que es la tecnologa estndar de la edicin empresarial de Java (Java Enterprise Edition [5, 9], Java EE) para la creacin de interfaces de usuario en la web y que permite integrar otras tecnologas como las hojas de estilo en cascada (CCS, Cascade Style Sheet) que describen como se va a mostrar un documento, Ajax (Asynchronous JavaScript And XML); un modelo de desarrollo web para crear aplicaciones interactivas, JavaBeans empresariales (Enterprise JavaBeans, EJB) y el API (Application Programming Interface) de Java para el manejo de entidades persistentes (Java Persistence API, JPA) sobre bases de datos relacionales. Todas estas tecnologas se han utilizado en el desarrollo de un Servicio de Publicacin de Informacin Cientfica y Tecnolgica para el Estado de Tabasco, basado en la arquitectura de software del Modelo Vista Controlador (Model View Controller, MVC).

En este artculo se propone una solucin a la necesidad que enfrenta el estado de Tabasco de contar con la informacin relacionada a las actividades cientficas y tecnolgicas que se desarrollan en el estado. Para esto se propone desarrollar un sistema de informacin cientfica y tecnolgica utilizando distintas tecnologas web que como se ver en las siguientes secciones permiten el desarrollo de aplicaciones mucho ms robustas, escalables y potentes. El artculo se organiza de la siguiente manera. En la seccin 2 se da una descripcin de las distintas tecnologas y protocolos que se utilizarn para el desarrollo del sistema propuesto, posteriormente en la seccin 3 se muestra la arquitectura de referencia para el desarrollo del sistema SEICYT, que llevar el control del desarrollo cientfico y tecnolgico del estado de Tabasco y a su vez tendr compatibilidad con el sistema del CONACYT1. Dicho sistema se est desarrollando utilizando herramientas Open Source bajo el estndar Java EE 6, haciendo uso de las funcionalidades (e.g., la portabilidad, escalabilidad, robustez, etc.) que ofrecen el lenguaje de programacin java y las distintas tecnologas que se derivan de ste. Finalmente, en la seccin 4 se dan las conclusiones.

2 Tecnologas Web
En esta seccin se da una breve descripcin de las distintas tecnologas y protocolos web que fueron seleccionadas para el desarrollo del sistema propuesto.

2.1 Modelo Vista Controlador (MVC) El MVC [5] (ver Figura 2.1) tiene sus races en Smalltalk y es una arquitectura de software utilizada por las aplicaciones que necesitan mantener mltiples puntos de vista de los datos. Separa los datos de una aplicacin, la interfaz de usuario y la lgica de control. Debido a esta separacin, varias vistas y controladores pueden interactuar con el mismo modelo; a continuacin se describe cada una de las partes que componen esta arquitectura de software. Modelo: Es un conjunto de clases que representa la informacin del mundo real que el sistema debe procesar, en otras palabras, la lgica de los datos asegura la integridad de stos y permite derivar nuevos datos. Vista: Representa el modelo en un formato adecuado para interactuar con la interfaz de usuario, dicho de otra forma la vista accede a los datos a travs del modelo especificando la forma en que los datos sern presentados al usuario. Controlador: Traduce las interacciones con la vista en las acciones a realizar por el modelo, es decir, responde a eventos acciones del usuario e invoca cambios en el modelo y probablemente en las vistas.

Consejo Nacional de Ciencia y Tecnologa. http://www.conacyt.mx.

Fig. 2.1. Diagrama del Modelo Vista Controlador.

2.2 JSF Java Server Faces [3, 4] (JSF) forma parte de la vista dentro de la arquitectura del MVC y es un estndar de Java hacia la construccin de interfaces de usuario para aplicaciones web que simplifican el desarrollo de aplicaciones web del lado del cliente, JSF est basado en la tecnologa Java EE. En el 2009 se dio a conocer la nueva versin JSF 2.0, que contiene algunas caractersticas y/o mejoras con respecto a las versiones anteriores (JSF 1.0, JSF 1.1 y JSF 1.2) como son: Mejoras en la navegacin: navegacin condicional, inspeccin en tiempo de ejecucin en las reglas de navegacin. Control de excepciones: permite fcilmente la creacin de una pgina de error que utiliza componentes JSF. Mejoras en la expresin del lenguaje: compatibilidad con mtodos arbitrarios incluyendo el paso de parmetros. Validacin: es una nueva especificacin java desarrollada para la validacin de beans2. Una pgina JSF utiliza la extensin *.xhtml, es decir, una combinacin de XML con HTML y puede incluir componentes como CSS, JavaScript, entre otros. La especificacin de JSF define seis fases distintas en su ciclo de vida: 1. Restauracin de la vista: Crea un rbol de componentes en el servidor para representar la informacin de un cliente. 2. Aplicar valores de la peticin: Actualiza los valores del servidor con datos del cliente. 3. Proceso de validacin: Valida los datos del usuario y hace la conversin. 4. Actualizacin de valores del modelo: Actualiza el modelo del servidor con nuevos datos. 5. Invocar la aplicacin: Ejecutar cualquier lgica de aplicacin para cumplir con la solicitud. 6. Procesar la respuesta: Guarda un estado y da una respuesta al cliente.

Componente de software reutilizable que puede ser manipulado visualmente por una herramienta de programacin en lenguaje Java.

2.3 Ajax Ajax [8] se utiliza en la programacin web para el desarrollo de aplicaciones interactivas de lado del cliente, manteniendo una comunicacin asncrona con el servidor, es decir, se pueden realizar cambios en el servidor sin la necesidad de recargar la pgina del lado del cliente. Esto se ve reflejado en el sistema debido a que aumenta la velocidad de las aplicaciones del lado del cliente, evitando que se efecten recargas innecesarias de toda una pgina, recargando solamente ciertas partes de sta. Adems otra de las ventajas de Ajax es que mejora la interactividad y usabilidad de las aplicaciones. Cabe mencionar que Ajax no se considera como una sola tecnologa, sino como la fusin de muchas [10]: XHTML Y CSS (crean una representacin basada en estndares), DOM (que permite la manipulacin dinmica de informacin), XML, XSLT y JSON (intercambio y manipulacin de informacin), XML Http Request (intercambio asncrono de informacin) y finalmente JavaScript que une las tecnologas antes mencionadas. 2.4 EJB Los JavaBeans empresariales (Enterprise JavaBeans [1, 6], EJB) son una tecnologa (API) que forma parte del estndar de Java EE. Estn diseados para desarrollo y despliegue de aplicaciones (distribuidas) de negocio basadas en componentes del lado del servidor. Una vez que se desarrolla una aplicacin, sta puede ser desplegada en cualquier servidor que soporte la especificacin de EJB. Con esta tecnologa es posible desarrollar aplicaciones empresariales sin tener que crear de nuevo los servicios de transaccin, seguridad, persistencia, concurrencia y lo que se pueda necesitar en el proceso de creacin de una aplicacin; permitiendo a los desarrolladores enfocarse en la implementacin de la lgica de negocio. EJB divide la capa de negocio en dos partes: Capa de lgica de negocio donde se encuentra EJB y capa de persistencia. EJB cuenta con dos componentes de proceso de negocio, los beans de sesin (Session Beans) y los beans dirigidos por mensajes (Message-Driven Beans, MDBs), ambos son desarrollados por una aplicacin de negocio e implementados y ejecutados por el Contenedor de EJB. A continuacin se explican los dos componentes: 2.4.1 Session Beans Los beans de sesin (Session Beans) son componentes Java que se pueden ejecutar tanto en contenedores EJB independientes como en contenedores EJB que son parte del estndar Java EE. Dichos componentes son tpicamente utilizados para modelar una tarea particular del usuario o un caso de uso, tal como introducir la informacin del cliente o implementar un proceso que mantiene un estado de la conversacin con una aplicacin cliente.

Existen varios tipos de beans de sesin, como los beans de sesin sin estado (Stateless Session Beans, SLSBs ), beans de sesin con estado (Stateful Session Beans , SFSBs) y un tipo particular de beans; los beans de sesin singleton (Singleton Beans) [1]. SLSBs: Son tiles para los casos en que el estado no necesita ser mantenido de invocacin a invocacin. El cliente no puede asumir que las solicitudes posteriores utilizarn una instancia particular del bean. El contenedor puede destruir o crear nuevas instancias segn determine que es ms eficiente (Figura 2.2 a). SFSBs: Difieren de los SLSBs en que se garantiza que todas las peticiones invoquen la misma instancia del bean, tal como se muestra en la figura 2.2 b. Cada SFSB contiene un contexto de sesin aislado por lo que las llamadas de una sesin no afectan a las dems. Las sesiones de estado y sus correspondientes instancias de bean son creadas en algn momento antes de la primera invocacin a su instancia objetivo. Viven hasta que el cliente invoca un mtodo que el proveedor del bean ha marcado como un evento para remover el bean, o hasta que el contenedor decide desalojar la sesin (usualmente debido a un tiempo de espera). Singleton beans: Se utilizan cuando solamente se necesita mantener una sola instancia de los objetos de negocio. Debido a que todas las peticiones hacia un singleton son dirigidas hacia la misma instancia, el contenedor no realiza mucho trabajo en seleccionar la instancia objetivo, como se ve en la figura 2.2 c.

Fig. 2.2. Tipos de beans de sesin. a) Seleccin aleatoria de una instancia SLSB. b) Seleccin de una instancia SFSB de acuerdo a su ID de sesin. c) Singleton Bean que cuenta con una sola instancia de soporte.

2.4.2 Message-Driven Beans La mensajera asncrona es un paradigma en el cual dos o ms aplicaciones se comunican a travs de mensajes que describen un evento de negocio. Un proveedor comn de mensajera asncrona es el servicio de mensajera de Java (Java Message Service, JMS), y la especificacin de EJB (versin 3.1) dicta que JMS es soportado de manera implcita. Al igual que los SLSBs, en los MDBs cualquier instancia puede ser utilizada para atender un mensaje, el cliente no tiene conocimiento del MDB. En trminos generales, EJB se puede ver como una plataforma para la creacin de aplicaciones

empresariales portables, reutilizables y escalables utilizando el lenguaje de programacin Java y el estndar Java EE. 2.5 JPA Java Persistence API [2, 7] (JPA) es un ambiente basado en POJOs que proporciona un modelo de persistencia para mapear bases de datos relacionales (ver Figura 2.3 n 2.3). El mapeo de las relaciones entre las entidades Java y las tablas de la base de datos se lleva a cabo por medio de anotaciones en las mismas clases de la entidad, por lo que no se requieren descriptores XML. El hecho que los objetos sean POJOs significa que no hay nada especial acerca de cualquier objeto que se hace persistente, prcticamente cualquier objeto existente con un constructor se puede hacer con persistencia sin cambiar una sola lnea de cdigo. biar

Fig. 2.3. Relacin entre los conceptos de JPA.

Una entidad es objeto de dominio de persistencia. Por lo general, una tabla en el modelo de datos relacional es representada por una entidad y sus instancias corresponden a los registros de dicha tabla. El estado de persistencia de una entidad es representado por propiedades persistentes, estas propiedades a su vez usan anotaciones para el mapeo de las entidades y relaciones entre entidades. Las relaciones entre entidades persistentes deben mapearse explcitamente como llaves persistentes forneas o uniones de tablas, la manera en que se estructura una entidad, sus atributos y sus relaciones (ver Figura 2. ver 2.4). La versin JPA utilizada en este proyecto es la 2.0. Algunas de las caracterst caractersticas que posee son las formas ms flexibles para determinar la manera que el proveedor otorga acceso al estado de la entidad, la ampliacin de JPQL [6] (Java Persistence Query (Java Language) y la orientacin de objetos Java para la creacin de consultas dinmicas. )

Fig. 2.4. Definicin de atributos y relaciones de una Entidad en un POJO.

2.6 HTTPS El protocolo seguro de transferencia de hipertexto (Hiper Text Transfer Protocol (Hiper Secure, HTTPS), es un protocolo de nivel de aplicacin cuyo objetivo es la s transferencia segura de informacin. El protocolo HTTPS se basa en el protocolo HTTP y utiliza un cifrado basado en SSL/TLS3. Para el desarrollo del sistema SEICYT - que se describe en la siguiente seccin -, se decidi utilizar el protocol protocolo seguro HTTPS (debido a que actualmente es muy utilizado por distintas empresas, e.g., bancos, tiendas, etc. para brindar seguridad y privacidad de la informacin etc.) informacin.

3 Enfoque del SEICYT


Desarrollar un Sistema Estatal de Informacin Cientfica y Tecnolgica (SEICYT) va web permitir cumplir con la difusin y divulgacin de todos los resultados de las actividades cientficas, tecnolgicas e innovacin desarrolladas por los investigadores del Estado de Tabasco incluidos los productos derivados de programas y Tabasco, convocatorias financiados por CONACYT - Tabasco. De tal modo que se permita estandarizar, almacenar, actualizar y difundir la informacin bsica y de actividades de los investigadores, instituciones y empresas que forman el sistema cientfico y tecnolgico del Estado. En la Figura 3.1 se muestra el contexto general del SEICYT y que a continuacin se describe los mdulos ms importantes. describen

Fig. 3.1. Contexto general del SEICYT.

Padrn Estatal de Investigadores (PEI). Los investigadores que cumplan con los requisitos de inscripcin (produccin cientfica y tecnolgica) podrn pertenecer al PEI y podr podrn registrar todas sus actividades

SSL (Secure Socket Layer proporciona servicios de seguridad cifrando los datos Secure Layer), intercambiados entre el servidor y el cliente con un algoritmo de cifrado simtrico, usualmente el RC4 o IDEA. TLS (Transport Layer Security), sucesor de SSL.

cientficas/tecnolgicas (publicaciones, artculos, libros, reportes tcnicos, etc.) el cual formar parte del modulo del CVU (Curriculum Vitae nico) l nico). De igual modo podr acceder a diversos mdulos del SEICYT (FOMIX, podrn Sistema Estatal de I Investigadores, herramientas virtuales, etc.). Sistema Estatal de Investigadores (SEI). Este modulo permite registrar la produccin cientfica y tecnolgica realizada el ultimo ao por los investigadores miembros del PEI. Si las actividades registradas cumplen con el proceso de evaluacin el investigador formar parte del SEI. evaluacin, Fondos Mixtos Tabasco (FOMIX). Los investigadores miembros del PEI podrn participar en las convocatorias de Fondos Mixtos y registrar sus propuestas.

Fig. 3.2 Diagrama General del SEICYT con las tecnologas web propuestas.

En la Figura 3.2 puede apreciarse el diagrama general del SEICYT con las SEICYT tecnologas web utilizadas para el desarrollo de dicho sistema. A continuacin se sistema. describe cada una de las capas de la figura en mencin. Capa de presentacin Dentro de esta capa se encuentra la capa de cliente y presentacin: la capa web; la capa de cliente del sistema est conformada por la interfaz ; web donde el investigador y dems usuarios interactan con la aplicacin, mdulos como el CVU, Padrn Estatal de Investigadores, Query by , Example, entre otros otros; la capa web es la encargada de transferir l la informacin desde la aplicacin cliente hasta el contenedor EJB del servidor. La tecnologa JSF 2.0 es utilizada como base de las interfaces web del sistema ya que sus componentes proporcionan una apariencia similar a la stema mayora de los sitios web lo que permite tener un diseo familiar para el usuario. El uso de la tecnologa Ajax permite recargar solo los componentes que se encuentran relacionados a ciertas acciones de los usuarios, la API de PrimeFaces permite ofrecer una interfaz amigable, con un diseo esttico y formal, adems algunos de los componentes de esta API poseen contenido adems, oculto que se muestra cuando es necesario evitando de esta manera saturar la interfaz.

Capa de Negocio es la parte del sistema que controla las transacciones y funciones de la aplicacin, la capa de negocio est dividida en dos capas la de lgica de negocio y la de persistencia. La capa de lgica de negocio abarca al contenedor de EJB y todas las clases encargadas de controlar el sistema, en el diagrama general del SEICYT esta capa es equivalente al controlador en la arquitectura de software MVC, en esta capa se procesara toda la informacin que sea utilizada en la capa de presentacin; por medio de la capa de persistencia se encargar de realizar las transacciones solicitadas a la base de datos. La capa de persistencia es la parte del sistema donde se encuentra toda la base de datos mapeada mediante POJOs, en la aplicacin, esta capa permite al controlador manipular la base de datos que fue creada con el gestor de base de datos MySQL, adems esta capa permitir aplicar persistencia a los atributos de la aplicacin, estas operaciones se apoyan del servidor de servicios web GLASSFISH4. Capa de Base de Datos: en esta capa se encuentra la base de datos relacional y toda la informacin que sta contiene, el sistema del SEICYT cuenta con esta capa que es gestionada por MySQL, la informacin enviada o solicitada al sistema ser almacenada en la base de datos ejemplo de esto sern las paginas donde el investigador dar de alta su informacin o podr ver la informacin que ha enviado, as como el Query by Example que permitir al administrador hacer consultas avanzadas referentes a la informacin del sistema.

La Figura 3.3 muestra el diagrama de algunas tablas del Sistema, y la vista de insercin de datos y una vista para consultar la lista de artculos por parte del investigador, esto es haciendo uso de Primefaces.

b)

a) c)

Fig. 3.3. Resultados generales del SEICYT; a) Diagrama de algunas tablas del sistema, b) vista para la insercin de informacin de alguna actividad por parte del investigador, c) vista general con filtrado y paginacin para la consulta de alguna actividad por parte del Investigador.
4

http://glassfish.java.net/

4 Conclusiones
El uso del modelo vista controlador a la par de las tecnologas web como EJB, JPA, JSF, Ajax, etc. permiten la creacin de aplicaciones web robustas, flexibles y escalables permitiendo a la vez mayor control en las transacciones, ofreciendo al usuario una interfaz ms amigable y con ello desarrollar un servicio web para el fomento de la informacin cientfica y tecnolgica del Estado de Tabasco como parte del CCYTET5. Una de las desventajas con el uso de estas tecnologas es que para los desarrolladores no familiarizados con el MVC se incrementa el nivel de complejidad de desarrollo. Agradecimientos. Esta investigacin fue parcialmente financiada mediante el proyecto No. TAB-2010-C19-144199 del Fondo Mixto CONACYT-Gobierno del Estado de Tabasco.

Referencias
1. 2. 3. A. Lee Rubinger E Bill Burke. Enterprise JavaBeans 3.1. Safari, 6Ed.(2010) D. Yang. Java Persistence with JPA. Outskirts Press. (2010) C. Schalkand E. Burns. Java Server Faces 2.0: The Complete Reference. MC Graw Hill (2010) 4. D. Geary and C. Horstmann. Core Java Server Faces. Prentice hall, 3 ed. (2010) 5. A. Goncalves. Beginning Java EE 6 Platform with GlassFish 3,Apress, 2 ed. (2010) 6. M. Keith and M. Schincariol. Pro EJB 3 Java Persistence API, Apress, (2006) 7. M. Keith and M. Schincariol. Pro JPA 2 Mastering the Java Persistence API. Apress, (2009) 8. N. C. Zakas, J. Mcpeakand J. Fawcett. Professional Ajax. Wiley, 2 ed. (2007) 9. Y. Vasiliev. Beginning Database-Driven Application Development in Java EEUsing GlassFish. Apress, (2008) 10. J. J. Garrett. Ajax: A New Approach to Web Applications. URL http://www.adaptivepath.com/ideas/essays/archives/000385.php, 2005.

5Consejo

de Ciencia y Tecnologa del Estado de Tabasco. http://www.ccytet.gob.mx.

Potrebbero piacerti anche