Download Revista EPIS.cdr - Universidad Nacional del Altiplano

Document related concepts
no text concepts found
Transcript
“PROPUESTA DE INTEGRACIÓN DE GOOGLE WEB TOOLKIT CON GLASSFISH
Y ENTERPRISE JAVA BEAN PARA DESARROLLAR UN SISTEMA WEB Y LA
ADMINISTRACIÓN DE INFORMACION”
Angel Jogues Calsina Ponce
Ramiro Cazorla Choque
Universidad Nacional del Altiplano
RESUMEN
En el presente artículo se presenta una propuesta de integración de algunas de las
tecnologías más sobresalientes en el mundo de la informática, esto como resultado del
desarrollo de un sistema web sobre la plataforma de Google Web Toolkit, obteniendo la
integración de Google Web Toolkit con Glasssh y Enterprise Java Bean, para que sirva
como guía básica para aquellas equipos de desarrollo de software que se inician en el uso
de la tecnología Google Web Toolkit.
Además se presenta los resultados del desarrollo de un sistema para administrar
información haciendo uso de GWT(Google Web Toolkit) con Glasssh y Enterprise Java
Bean, según el plan de pruebas que comparo los resultados obtenidos al implantar el
sistema web (plan basado en pre-test y post-test , administración de información sin y con
el sistema web).
ABSTRACT
A proposal for integration of some of the most outstanding technologies in the world of
computing is presented in this article, this as a result of developing a web system on the
platform of Google Web Toolkit, getting the Google Web Toolkit integration with Glasssh
and Enterprise Java Bean, to serve as a basic guide for those software development teams
who start using the Google web Toolkit technology.
In addition the results of the development of a system for managing information is presented
using GWT (Google Web Toolkit) with Glasssh and Enterprise Java Bean, according to the
test plan to compare the results obtained by implementing the web system (based on preplan test and post-test, no management information system and the web).
INTRODUCCIÓN
Actualmente, la creación de aplicaciones web resulta un proceso pesado y propenso a
errores. Los desarrolladores pueden pasar el 90% de su tiempo estudiando las
peculiaridades de los navegadores. La reutilización y el mantenimiento de una gran
cantidad de componentes AJAX y bases de código JavaScript pueden ser tareas complejas
y delicadas.
Cada vez más son las compañías que hacen uso de Java para el desarrollo de sus
aplicaciones, La plataforma Java 2 Enterprise Edition (J2EE) brinda grandes oportunidades
para el desarrollo de sistemas distribuidos, utilizándose en un gran número de
aplicaciones de empresas y donde la tecnología Enterprise Java Beans es una parte muy
importante de la misma. La arquitectura de una aplicación J2EE en reiteradas ocasiones
contiene varias capas separadas, donde “su objetivo principal es separar la capa de
presentación con la capa de negocio y con la capa de datos.
<9>
La capa servidor posee típicamente
componentes de servidor con lógica
de negocio, los cuales son
manejados por un contenedor EJB,
de acuerdo con la implementación
de la especicación del mismo.
Dicho contenedor, que además
“controla cada aspecto del beans
enterprise en tiempo de ejecución
incluyendo accesos remotos al
bean, concurrencia y accesos a un
almacén de recursos, es parte del
servidor de aplicaciones donde
tanto uno como el otro no pueden
ser separados, siendo al mismo
tiempo proporcionados por el
m i s m o p r o v e e d o r. S i e n d o e l
servidor de aplicaciones Glasssh el
que provee los servicios de
seguridad y manejos de
transacciones, así como el ciclo de
vida de los componentes. Por otro lado Google Web Toolkit (GWT), es un conjunto de
herramientas de desarrollo para crear y optimizar aplicaciones basadas en navegador
complejos. Su objetivo es permitir el desarrollo productivo de las aplicaciones web de alto
rendimiento sin que el desarrollador tiene que ser un experto en peculiaridades del
navegador, XMLHttpRequest y JavaScript. GWT es utilizado por muchos productos en
Google, incluidos AdWords, AdSense, hostales, buscadores, Blog. Es de código abierto,
completamente gratis, y utilizado por miles de desarrolladores de todo el mundo.
DEFINICIÓN DEL PROBLEMA
Una vez que se ha abordado brevemente sobre temas como el lenguaje de programación
Java, la plataforma J2EE, arquitectura 3 capas, tecnología EJB y servidor de aplicaciones,
surge la problemática que se encuentra presente en innumerables instituciones y
empresas, en cuanto al desarrollo de software, donde una de las principales afectaciones
a las que se enfrentan los equipos multidisciplinarios que forman parte de un proyecto, es
a la hora de elegir dentro de una gran variedad de tecnologías y lenguajes de
programación los más indicados para dar solución a determinada situación, ya que
muchos de ellos tienen entre otras desventajas una curva de aprendizaje excesivamente
lenta, lo que trae consigo una pérdida de tiempo muy grande, entonces surge el caso de
un proyecto empresarial de tamaño considerable que requiere utilizar una arquitectura
tres capas y no se conoce cuáles framework pueden ser utilizados ni cómo se pudieran
integrar, además de presentarse la particularidad de que existe la necesidad de que se
posea un plan de mantenimiento de aplicaciones basadas en EJB, que constituya un
compromiso a largo plazo y donde se persigue también que las nuevas versiones de una
aplicación sean por completo compatibles con sus predecesoras.
Entonces, ¿Cómo podríamos resolver la situación que anteriormente mencionada?.
<10>
DEFINIENDO GOOGLE WEB TOOLKIT.
Google Web Toolkit (GWT) es un framework de código abierto desarrollado por Google y
lanzado en mayo del 2006 bajo la licencia Apache 2.0. con el objetivo de facilitar el
desarrollo de RIAs, que permite escapar de la “matriz” de tecnologías usadas
actualmente para escribir aplicaciones AJAX, las cuales son difíciles de manejar y
propensas a errores.
El corazón de GWT es un compilador que compila código JavaScript a partir de código
Java. El compilador es capaz de generar código multibrowser, aliviando la tarea del
desarrollador de escribirlo por sí mismo. GWT genera código interpretable por los
browser más importantes del mercado (Mozilla Firefox, Safari, Opera e Internet
Explorer).
CARACTERÍSTICAS DE GWT.
El compilador GWT es justamente un mecanismo para entregar enteramente una
aplicación arquitectura cliente/servidor. Las características incluyen:
Ÿ Componentes de la interfaz de usuario dinámicos y reutilizables (widgets).
Ÿ RPC realmente fácil.
Ÿ Depuración en tiempo real (mientras lo estás desarrollando este corre sobre una
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
máquina virtual de Java).
Compatibilidad con los navegadores
Integración con JUnit
Internacionalización.
Interoperabilidad y control. (Si las librerías de clases de GWT no son sucientes para lo
que se necesita, se puede mezclar JavaScript en el código de la aplicación usando la
interfaz nativa de scripts de Java (JavaScript Native Interface, JSNI)).
GWT es un proyecto de código abierto. (Disponible bajo la licencia Apache 2.0 6.)
Soporte para las API´s de Google.
Se puede usar los entornos de desarrollos integrados (IDE) de siempre.
Comunicación entre el cliente y servidor usando objetos de java.
Los desarrolladores pueden diseñar y desarrollar sus aplicaciones orientadas a
objetos.
Ÿ El código Javascript generado puede ser ofuscado para optimizar el rendimiento.
Ÿ Existe un numeroso conjunto de bibliotecas desarrolladas por Google y terceros que
amplían las funcionalidades de GWT.
ARQUITECTURA GWT
GWT tiene cuatro componentes principales: un compilador Java-a-JavaScript, un
navegador web "hosted", y dos librerías de clases. A continuación presentaremos estos
componentes en tres diferentes guras, para de esta manera alcanzar un mejor
entendimiento.
<11>
Componentes:
Ÿ GWT Java-to-JavaScript Compiler (Compilador GWT Java-a-JavaScript): El
Compilador GWT Java-a-JavaScript traduce del lenguaje de programación Java a
JavaScript.
Ÿ Hosted Web Browser (Navegador web “Hosted” de GWT): El Navegador web “Hosted”
de GWT permite correr y ejecutar aplicaciones GWT en modo hosted, donde lo que se
está corriendo son bytecodes de Java sobre una máquina virtual sin compilarlos a
JavaScript. Para lograr esto, el navegador GWT incrusta un controlador de browser
especial (un control del Internet Explorer sobre Windows o un control de
Gecko/Mozilla sobre Linux) con hooks dentro de la máquina virtual de Java.
Ÿ JRE Emulation Library (Emulación de librerías JRE): Google Web Toolkit soporta
solamente una pequeña parte de las librerías de clases disponibles en Java 2 Standard
Edition y Enterprise Edition, esto sucede ya que éstas librerías son bastantemente
grandes y usan funcionalidades que no están disponibles en navegadores web.
Ÿ GWT Web UI Class Library (Librería de clases de interfaz de usuario de GWT): Las
librerías de clases de interfaz de usuario de GWT son un conjunto de interfaces y clases
personalizadas que permiten crear "widgets" para el navegador, como botones, cajas
de texto, imágenes, etc. Éste es el núcleo de las librerías de interfaz de usuario para
crear aplicaciones GWT.
GLASSFISH SERVER
GlassFish es un servidor de aplicaciones desarrollado por Sun Microsystems que
implementa las tecnologías denidas en la plataforma Java EE y permite ejecutar
aplicaciones que siguen esta especicación. La versión comercial es denominada Sun
GlassFish Enterprise Server. Es gratuito y de código libre, se distribuye bajo un
licenciamiento dual a través de la licencia CDDL y la GNU GPL.. GlassFish está basado en
el código fuente donado por Sun y Oracle Corporation, éste último proporcionó el
módulo de persistencia TopLink. GlassFish tiene como base al servidor Sun Java System
Application Server de Sun Microsystems, un derivado de Apache Tomcat, y que usa un
componente adicional llamado Grizzly que usa Java NIO para escalabilidad y velocidad.
ARQUITECTURA DE GLASSFISH.
Está basada en una estructura de clústeres exibles, además brinda el soporte para la
gestión remota multi-máquina y multi-dominio segura, lo cual pretende mejorar el
grado de disponibilidad y la escalabilidad en el rendimiento del servidor de aplicaciones
para sistemas de alto volumen y servicios web.
ENTERPRISE JAVABEANS 3.
Enterprise JavaBeans (EJB) es una arquitectura de componentes de servidor que
simplica el proceso de construcción de aplicaciones de componentes empresariales
distribuidos en Java. Dado que son componentes, permiten desarrollar aplicaciones
<12>
portables entre distintas plataformas (son Java) y servidores de aplicaciones
(especicación estándar).
EJB 3.0 como componente o como framework forma parte de la especicación JEE que
permite el desarrollo de aplicaciones empresariales de manera rápida y sencilla
haciendo uso de un nuevo modelo de programación que incluye conceptos como:
desarrollo de componentes empresariales empleando POJOS (acrónimo de Plain Old
Java Objects), inyección de dependencias, desarrollo orientado a servicios, anotaciones,
entre otros” (Reyes, 2009). Entre los distintos tipos de EJB se encuentran: Stateless
Representación de alto nivel del funcionamiento de los enterprise beans.
Session Bean, Stateful Session Bean, Entity Bean y Message Driven Bean, pero con el que
se trabajará en el presente artículo es con el primero de ellos. Entonces identicándose
brevemente qué se entiende por un bean de sesión sin estado (Stateless Session Bean), se
puede decir que es aquel “que no dispone de variables de instancia en las cuales se
guarden datos que puedan ser compartidos entre los distintos métodos del bean. Es
decir, se trata de un bean que por lo general contará con una serie de métodos que
realizarán un trabajo determinado e independiente y que el resultado de las operaciones
realizadas dentro de cada uno de los métodos no dependerá de ningún estado relativo a
la comunicación que mantiene el cliente con el bean (Monteagudo, 2006)”.
METODOLOGIA
MATERIALES Y METODOS.
Siendo necesario analizar la relación entre variables: Sistema web aplicando tecnología
GWT (juntamente con Glasssh y EJB) y la Administración de la información. Se tomó
como población a las personas responsables del manejo de la información. Para
determinar la muestra se empleó un muestreo no probabilístico de tipo intencional, es
decir, en función de los propósitos de la investigación para validar el sistema fue
necesario contar los responsables de los cursos de capacitación. Por lo tanto la muestra
lo conforman 13 personas del personal administrativo.
Para la recolección de datos se utilizó el método de la encuesta a través de cuestionarios
(pre- test y pos test) en un formato abierto, realizando dos encuestas dirigidas a docentes
y personal administrativo, con la nalidad de recoger información referente a la manejo,
administración de información antes y después de la implantación del sistema de
información.
<13>
A modo de prueba se desarrolló un sistema web aplicando tecnología GWT con Glasssh
y EJB para administrar información. Y así poder observar los resultados de la aplicación
del sistema web (aplicación de los pre-test y pos – test).
Además, el modelo utilizado para el desarrollo del presente trabajo es el RUP, que utiliza
el análisis, diseño, implementación y prueba del software, en forma progresiva y
evolutiva.
RESULTADOS
A lo largo del artículo se ha abordado de manera general y resumida sobre la
arquitectura 3 capas tan necesaria en cualquier aplicación, y por qué las capas no deben
ni tienen por qué saber de cómo y con quién interactúan las otras capas”, como es el
principal objetivo del presente trabajo hacer alcance de una propuesta de la integración
de GWT, Glasssh y EJB.
Para trabajar en la primera capa se emplea GWT (indudablemente por las características
que posee constituye una excelente opción para formar parte del objetivo que se
persigue en la investigación) y para la segunda Glasssh y EJB3, proporcionando la
integración de este último con el servidor de aplicaciones Glasssh,, evitando la
compleja tarea de integrar diferentes frameworks para cada capa distinta de la
aplicación.
Resultados de la aplicación del sistema web desarrollado:
a) Se observó que, el 61,54% arman que control de notas es malo sin el sistema y el
76,92% arma que es Muy Bueno con el sistema.
b) Se observó que, el 61,54% indica que es malo el control de entrega de materiales; en
la segunda encuesta el 76,92% dicen q es Muy Bueno.
c) Se observó que, el 69,23% indica que es Malo el control de entrega de certicados y el
69,23% dicen que es Muy Bueno con el sistema.
d) Se observó que, el 53,85% arma que es Malo la forma como se lleva el control de la
asistencia y el 61,54% considera que es muy Bueno con el sistema.
Por lo que la aplicación del sistema web desarrollado a modo de prueba de integración
de las tecnologías Google Web Toolkit con Glasssh y EJB, ayuda a mejorar el manejo de
la información.
CONCLUSIONES
Se han tratado temas como la denición de la tecnología GWT, así como su arquitectura.
Se conoció también en qué consiste el servidor de aplicaciones Glasssh y los Enterprises
Java Beans. Además se abordó brevemente la arquitectura 3 capas, viéndose en cuál de
las partes que componen a la misma jugaban un papel protagónico los términos en los
cuales se centra el trabajo en cuestión, pudiéndose describir que ellos constituyen una
buena elección para dar solución a problemáticas como la planteada al inicio del
presente artículo. Por último se ha tenido en cuenta una serie de pasos a seguir que
dieron como resultado un ejemplo abarcador y sencillo de la integración. Luego del
análisis anterior, se puede armar que la investigación alcanzó el objetivo de realizar una
propuesta de integración de GWT con Glasssh y EJB para aplicaciones de empresas
tanto de pequeño como principalmente las de gran tamaño.
<14>