Refineria
Refineria
Refineria
ESTATAL DE ESMERALDAS”
TESIS DE GRADO
INFORMÁTICOS
RIOBAMBA – ECUADOR
- 2010 -
-2-
AGRADECIMIENTO
Agradezco primeramente a Dios por haberle dado a mi madre Luz María Vélez Zambrano
toda la fuerza y fortaleza para poderme ayudar en todo lo que he necesitado, luego a mi
madre la mujer que siempre se preocupó por mi y dio hasta lo que no tuvo por sacarme
adelante en esta meta que me tracé, a mis hermanos, a la Escuela Superior Politécnica de
especial al Ing. Wladimir Castro director de nuestra tesis y al Ing. Danilo Pastor miembro
del tribunal que nos preside, quienes han encaminado la presente investigación. Además
todos mis amigos que de una u otra forma me apoyaron en lo que más necesité.
A Dios por darme la vida, a mis padres Rosa y Julio, hermanos(as) Julio, Narcisa,
Giovanny, Mercy, Carlos por el apoyo incondicional que me brindan día a día, a la Escuela
maestros impartieron sus conocimientos, al Ing. Wladimir Castro, Ing. Danilo Pástor e Ing.
Jorge Huilca quienes nos encaminaron en el momento del desarrollo de la tesis, y el apoyo
de Carlos Rodríguez, Miguel Baldeáon, Angel Apina, Ing. Mirian Cisneros personal de
amistades que me han tendido la mano en los momentos buenos y malos, y a mi compañero
de tesis.
DEDICATORIA
La presente tesis está dedicada principalmente a Nuestro Creador quien nos proporcionó la
vida e inteligencia, así también a mi querida madrecita Luz María Vélez Zambrano quien
siempre estuvo ahí para brindarme su apoyo y sacrificio ya que sin eso no hubiera tenido la
dicha de conseguir esta meta tan anhelada, a mi tía Yolanda que ha sido como otra madre
más para mí al igual que Doña Aida, a mis hermanos René, Joffre, Jhonny y Cristhian, a mi
cuñada Johana que siempre me apoyó de una u otra forma, a mi enamorada Andrea que
enamorado Miguel, a mi compañera de tesis y a mis amigos y para todas aquellas personas
A mis padres y hermanos(as) por el amor y apoyo incondicional, a mis amistades que son
DECANO DE LA FACULTAD DE
INFORMÁTICA Y ELECTRÓNICA
DIRECTOR DE LA ESCUELA
DE INGENIERÍA EN SISTEMAS
DIRECTOR TESIS
MIEMBRO DE TESIS
DE DOCUMENTACIÓN
-5-
Chimborazo.
__________________________ __________________________
ABREVIATURAS
Aplicaciones
AS/400: Microcomputadoras
Datos
Métodos Remotos.
Hipertexto Extensible
ÍNDICE GENERAL
PORTADA
AGRADECIMIENTO
DEDICATORIA
FIRMAS RESPONSABLES Y NOTAS
RESPONSABILIDAD DEL AUTOR
ABREVIATURAS
INDICE DE TABLAS
INDICE DE GRÁFICOS
INTRODUCCIÓN
1.4. Hipótesis…...................................................................................................................... 33
1.5.1. Métodos…....................................................................................................................... 33
2.3.2. Definición……................................................................................................................... 44
2.3.5. Beneficios……................................................................................................................... 49
2.3.6. Ventajas……...................................................................................................................... 49
2.5.2.13.4. i18nCreator................................................................................................................. 86
3.5. Determinación de las variables para los parámetros de comparación .............................. 176
5.6.1.4.4. Caso de Uso: Datos Generales (Asistencia, Cursos Recibidos, Datos Familiares, Datos
Personales, Historial Financiero, Record Académico y Saldo Vacacional) .................................. 275
CONCLUSIONES
RECOMENDACIONES
RESÚMEN
SUMMARY
ANEXOS
GLOSARIO
BIBLIOGRAFÍA
- 19 -
INDICE DE TABLAS
Tabla III.8 Variable Soporte Técnico con respecto a GWT ......................................................... 192
INDICE DE GRAFICOS
Gráfico II.17: Apariencia del Widget Image con URL externa ...................................................... 97
Gráfico II.52: Primera pantalla para crear un servicio RPC ......................................................... 132
Gráfico II.53: Segunda pantalla para crear un servicio RPC ........................................................ 133
Gráfico II.54: Visualización de las interfaces del servicio RPC ................................................... 133
Grafico III.4: Módulo Envoltorio de Librería del IDE Netbeans ................................................. 163
Grafico III.8: Habilitando los módulos del IDE Netbeans ........................................................... 165
Gráfico III.9: Comparación Estadística del parámetro de Acceso a la Base de Datos ................... 182
Gráfico III.11: Comparación estadística del parámetro Interfaz Gráfico de Usuario (GUI) .......... 188
Gráfico III.13: Comparación estadística del parámetro Soporte Técnico con GWT ..................... 193
Gráfico III.15: Módulos de las Consultas Generales sin RIA-GWT ............................................ 202
Gráfico III.16: Diagrama del Módulo de Estadísticas Sin RIA GWT .......................................... 205
Gráfico III.17: Módulos de las Consultas Generales con RIA-GWT ........................................... 207
Gráfico III.18: Diagrama del Módulo de Estadísticas Con RIA GWT ......................................... 209
- 24 -
Gráfico V.6: Pantalla para crear un proyecto web dinámico ........................................................ 257
Gráfico V.7: Llenar datos para crear un proyecto GWT .............................................................. 257
Gráfico V.8: Primera pantalla para configurar la librería GWT ................................................... 258
Gráfico V.9: Segunda pantalla para configurar la librería GWT .................................................. 258
Gráfico V.13: Ejecutar una aplicación GWT con Hosted Mode .................................................. 263
Gráfico V.14: Primera ventana del modo hosted Mode Shell Windows ...................................... 264
INTRODUCCION
Actualmente vivimos en un mundo de evolución en donde la mayoría de los procesos que
se realizaban personalmente ha cambiado pues hoy en día las entidades y empresas están
automatizando todo aquello utilizando el medio global más difundido que es la Internet, a
GWT desarrollado por Google, el mismo que es parte de la plataforma RIA (Rich Internet
escribir aplicaciones AJAX, las cuales son difíciles de manejar y propensas a errores.
una breve descripción de los IDE’s que se puede usar y todo lo referente a GWT como
En el capítulo III Análisis Comparativo, se estudia todos los IDE’s que GWT puede usar
para el desarrollo de las aplicaciones web usando el lenguaje de programación Java junto
con AJAX, para luego realizar el análisis correspondiente en base a una serie de parámetros
Esmeraldas.
y que permitirán reducir el tiempo para conseguir los resultados esperados en cada proceso.
1.1. Antecedentes
Rich Internet Application (RIA) es una Aplicación de Internet Enriquecida que trata con
aplicaciones hechas con AJAX (es decir que no usen Flash, Silverlight o JavaFX). Entre las
Google Web Toolkit (GWT) es un framework de desarrollo en Java de código abierto, que
AJAX, las cuales son difíciles de manejar y propensas a errores. Con GWT, se puede
entorno de desarrollo de nuestra preferencia (es decir, el sistema operativo y los IDEs). Una
vez terminada la aplicación (escrita en Java), GWT compila y traduce dicho programa a
está publicado todas las aplicaciones que usan GWT, entre las aplicaciones que más utilizan
construida entre 1975 y 1977 para procesar 55.600 barriles de petróleo diarios. REE, como
toda empresa, para cumplir con sus objetivos posee tres unidades de trabajo:
web para el área de recursos humanos, sin embargo, los datos de ésta área residen en la
1.2. Justificación
El Google Web Toolkit (GWT), es una framework desarrollado por google de última
tecnología que permite al usuario desarrollar aplicaciones basadas en java de código abierto
y usando a su vez AJAX, lo cual nos va a facilitar poder cargar de una página web lo
necesario como por ejemplo los elementos multimedia (videos, gráficos, etc.).
- 29 -
herramientas que faciliten el trabajo. Google Web Toolkit (GWT) se presenta como una
solución simple y segura para desarrolladores que deseen aprovechar el potencial de AJAX.
GWT ofrece clases genéricas de HTTP que se utilizan para construir una petición y clases
ser exclusivos para un lenguaje de programación o bien se pueden usar para varios, como
ejemplo de IDEs tenemos Eclipse, NetBeans, IDEA entre otros, y para este trabajo se usará
Eclipse 3.4 Ganymede por brindar mejor funcionalidad y compatibilidad para poder
programas, bases de datos, herramientas, etc. de código libre entonces por ser Refinería una
de estas empresas es de vital importancia tener una aplicación web que cumplan con estas
características.
• Cualquier carga que se realice dentro de la página web se lo hará en la parte del cliente
solicitud.
- 30 -
• Usa el entorno de desarrollo integrado (IDE) favorito para escribir y depurar una
• Verifica que las aplicaciones trabajen sobre todos y cada uno de los navegadores que se
• Las aplicaciones generadas por GWT ejecutan código Java del lado del servidor,
• Son más los desarrolladores que conocen Java que los que conocen JavaScript o
ActionScript (el lenguaje empleado por Flash), además Java tiene la suerte de tener
Aplicación Web que contenga toda la información necesaria para el control de actividades
de todos los empleados que brinde a cada uno de ellos servicios que son de mucha
Al desarrollar esta aplicación web se busca que los empleados de la refinería tengan
Internet.
• Noticias publicadas por la REE por cada uno de sus departamentos: Unidad de
Cabe recalcar que nuestra aplicación web no se vinculará con nada que tenga que ver con
el departamento financiero.
1.3. Objetivos
Toolkit.
• Analizar los distintos IDEs que se pueden emplear en la plataforma GWT y buscar el
• Elaborar una propuesta metodológica para determinar las ventajas y desventajas que se
1.4. Hipótesis
Esmeraldas.
cubrir un problema expuesto en los antecedentes. Por tal razón, los métodos y técnicas e
1.5.1. Métodos
Se utilizarán los métodos que nos va seguir el camino para conseguir los resultados de los
a) Método científico.- Este será el método que avalará nuestra investigación científica
porque a su vez contempla los siguientes puntos que involucran el desarrollo de esta
tesis:
• Formulación de la hipótesis
• Comprobación de la hipótesis
• Difusión de resultados
b) Método analítico - sintético.- Este método, como lo dice su nombre, es el análisis que
plantea.
1.5.2. Técnicas
a) Encuesta.- Serán diseñada una serie de encuestas, para obtener información atreves de
un sistema de preguntas las cuales una vez aplicadas a los empleados de REE, serán
analizarla.
c) Lluvia de ideas.- La lluvia de ideas será una de las principales técnicas para recolectar
realizará en equipo.
- 36 -
2.1. Introducción
Además se estudia lo referente a AJAX, dando sus beneficios, las ventajas que se tendrá al
usar esta tecnología, sus desventajas, entre otros aspectos. Se dará una breve descripción de
los IDE’s que se puede usar en GWT lo cual va a servir para el siguiente capítulo de este
trabajo investigativo.
instalación. Los requisitos y limitaciones que vamos a tener, la forma de comunicarse con
conocer todos los componentes para el desarrollo de GUI que se pueden dentro de GWT,
2.2.1.1. Definición
sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de
bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros
o memoria.
ejecución directa por hardware del bytecode por un procesador Java también es posible.
gracias a su plataforma J2EE. Pero Java no se queda ahí, ya que en la industria para
dispositivos móviles también hay una gran acogida para este lenguaje.
plataforma. Con plataforma se refiere a la máquina virtual de Java (Java Virtual Machine).
- 38 -
Una de las principales características que favoreció el crecimiento y difusión del lenguaje
hardware. Esto significa que el programa escrito para Linux puede ser ejecutado en
Windows sin ningún problema. Además es un lenguaje orientado a objetos que resuelve los
Finalmente se concluye que Java brinda una solución para cada necesidad que pudiéramos
tener.
Java es un lenguaje orientado a objetos, eso implica que su concepción es muy próxima a la
clases compiladas, son en realidad interpretadas por la máquina virtual de java. Siendo
la máquina virtual de java la que mantiene el control sobre las clases que se estén
ejecutando.
Gracias al API de java se puede ampliar el lenguaje para que sea capaz, por ejemplo,
comunicarse con equipos mediante red, acceder a bases de datos, crear páginas HTML
Para poder trabajar con java es necesario emplear un software que permita desarrollar en
java. Existen varias alternativas comerciales en el mercado: JBuilder, Visual Age, Visual
Una Máquina Virtual Java (en inglés Java Virtual Machine, JVM) es una máquina virtual
ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual
máquina de bajo nivel, viable incluso como lenguaje de entrada para un microprocesador
físico. Como todas las piezas del rompecabezas Java, fue desarrollado originalmente por
Sun Microsystems.
máquina virtual java es aportar portabilidad al lenguaje de manera que desde Sun
Microsystems se han creado diferentes máquinas virtuales java para diferentes arquitecturas
- 40 -
y así un programa .class escrito en un Windows que puede ser interpretado en un entorno
Linux. Tan solo es necesario disponer de dicha máquina virtual para dichos entornos.
2.2.1.4. JRE
software necesario para ejecutar cualquier aplicación desarrollada para la plataforma Java.
El usuario final usa el JRE como parte de paquetes software o plugins (o conectores) en un
navegador Web.
Sun ofrece también el SDK de Java 2, o JDK (Java Development Kit) en cuyo seno reside
puede considerarse como el entorno necesario para ejecutar una aplicación Java, mientras
que un desarrollador debe además contar con otras facilidades que ofrece el JDK.
2.2.1.5. JDK
El JDK es un súper conjunto de la JRE, y contiene todo lo que está en el JRE, además de
la máquina virtual Java, y otros componentes para ejecutar applets y aplicaciones escritas
usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una Intranet
lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente
ligero, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e
Es importante mencionar que una página Web puede contener elementos que permiten una
Para el desarrollo de aplicaciones web en Java se utilizan páginas web dinámicas, que son
páginas que poseen funcionalidades especiales, para lo cual se utilizan otros lenguajes de
programación, a parte del simple HTML. Mientras las paginas estáticas, todo el mundo se
las puede imaginar, las páginas dinámicas son mucho más complejas a la vez que
versátiles.
- 42 -
Las aplicaciones que se crean en grandes empresas deben ser más efectivas que eficientes,
es decir, conseguir que el trabajo salga adelante y que la aplicación funcione, es más
importante que la eficiencia con la que se realiza el trabajo, es por esto que al ser Java un
lenguaje mucho más simple que cualquiera de los que se puede encontrar en la actualidad,
pueden portar a cada una de las arquitecturas de las plataformas presentes en una empresa,
plataformas, lo que hará que los desarrolladores tiendan a realizar sus aplicaciones en
lenguaje Java.
Las herramientas Java no presentan altos costos, al contrario, tienen precios de las
herramientas de PCs, lo que hace que los programadores corporativos tengan un amplio
Estas páginas dinámicas son reconocidas, interpretadas y ejecutadas por el propio servidor,
son útiles en muchas ocasiones, con ellas se puede hacer todo tipo de aplicaciones web, son
especialmente útiles en trabajos en los que se tiene que acceder a información centralizada
ubicada en una base de datos en el servidor y cuando por razones de seguridad los cálculos
La ventaja de este tipo de programación es que el cliente no puede ver los scripts, ya que se
navegador del usuario, ya que el código que reciben es HTML que es fácilmente
interpretable.
El lenguaje Java explota más a fondo las características de las aplicaciones web, las que lo
hacen que sea de gran utilidad para el desarrollo de aplicaciones web del lado del servidor,
ya que su versatilidad permite realizar un espectro de tareas mucho más amplio, y de una
manera mucho más a fondo, que se acoplan perfectamente a las necesidades de las
2.3.1. Introducción
Las aplicaciones AJAX son excelentes para la creación de aplicaciones web que son
Las aplicaciones AJAX combinan los datos de intercambio XML, junto con HTML y CSS
datos proporcionados. Esto le permite construir aplicaciones que forman parte de las
aplicaciones Web 2.0 Web revolución, que rivalizan con una aplicación de escritorio en la
respuesta. Se puede construir páginas web utilizando AJAX para comunicarse con el
servidor en segundo plano, sin recargar la página. Incluso puede reemplazar a las distintas
- 44 -
secciones de la página web sin tener que actualizarse la página. AJAX, finalmente permite
2.3.2. Definición
una técnica de desarrollo web para crear aplicaciones interactivas o RIA. Estas aplicaciones
De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo
Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al
• XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que acompaña
a la información.
- 45 -
• Document Object Model (DOM) accedido con un lenguaje de scripting por parte del
Como el DHTML, LAMP o SPA, Ajax no constituye una tecnología en sí, sino que es un
2.3.3. Antecedentes
A pesar de que el término "AJAX" fue creado en 2005, la historia de las tecnologías que
desarrollo de Scripting Remoto. Sin embargo, las técnicas para la carga asíncrona de
contenidos en una página existente sin requerir recarga completa remontan al tiempo del
de Mozilla). Ambos tipos de elemento tenían el atributo src que podía tomar cualquier
1
WIKIPEDIA La enciclopedia libre
- 46 -
dirección URL externa, y cargando una página que contenga javascript que manipule la
a través de un applet Java el cual se puede comunicar con el cliente usando JavaScript. Esta
versión 4. Microsoft la utilizó en el Outlook Web Access provisto con la versión 2000 de
Sin embargo, todavía se utilizan donde se requiere una mayor compatibilidad, una reducida
implementación, o acceso cruzado entre sitios web. Una alternativa, el Terminal SVG
(basado en SVG), emplea una conexión persistente para el intercambio continuo entre el
navegador y el servidor.
interoperables basadas en Ajax. El principal objetivo es acelerar los éxitos de los usuarios
proveedores de tecnología Ajax y ayudar a dirigir el futuro camino del ecosistema Ajax.
- 47 -
En el gráfico II.1, II.2 y II.3 se aprecian las diferencias entre el modelo clásico de
navegador (cliente) no es directa en el modelo AJAX, sino que esta se realiza a través de
navegador y el servidor.
Ajax sirve principalmente para diseñar y programar interfaces de usuario mucho más allá
de la web, rompiendo las limitaciones que la “sincronía” supone y abriendo una nueva
puerta que nos permitirá desarrollar aplicaciones que en un principio solo podrían
Internet permitiendo acceder a información de manera remota pero siempre con una
- 49 -
2.3.5. Beneficios
• Usabilidad
• No es difícil su utilización
• Web 2.0
2.3.6. Ventajas
escritorio".
• La comunicación asíncrona con el servidor permite varias cosas que reducen el "peso de
puede cambiar el contenido de cualquier objeto del DOM dinámicamente ante los
• Las aplicaciones son más interactivas, responden a las interacciones del usuario más
2.3.7. Desventajas
• El cliente necesita un navegador que soporte javascript .Hoy por hoy la mayoría de los
navegadores soporta JavaScript. Internet Explorer, Mozilla, Firefox, Safari etc. Para
esta desventaja se tiene una “excusa”, no se está hablando de desarrollar páginas web
con Ajax, sino aplicaciones web, y como toda aplicación tiene unos requisitos mínimos,
peticiones ej.: Si hacemos que cada milisegundo haga una consulta con una base de
• Eclipse
• NetBeans
• BlueJ
• JDeveloper
• JCreator
GCJ es un compilador portable para Java. Este puede compilar código Java a
Las aplicaciones compiladas son enlazadas con el Runtime de GCJ, libgcj, que
o Eclipse
Este es sin duda uno de los mejores (sino el mejor) IDE’s de programación del mundo.
tipo.
El entorno integrado de desarrollo (IDE) de Eclipse emplea módulos (en inglés plug-
donde las funcionalidades están todas incluidas, las necesite el usuario o no. El
además de Java. Por ejemplo, existe un módulo para dar soporte a C/C++. Existen
módulos para añadir un poco de todo, desde Telnet hasta soporte a bases de datos.
modelos de software, aplicaciones web, etc. Por ejemplo, GEF (Graphic Editing
hasta editores de diagramas UML, interfaces gráficas para el usuario (GUI), etc. Dado
que los editores realizados con GEF “viven” dentro de eclipse, además de poder ser
- 53 -
personalizable y profesional.
o NetBeans
NetBeans es una herramienta para programadores que sirve para escribir, compilar,
corregir errores y para ejecutar programas. Está escrito en Java – pero puede servir de
o BlueJ
Este es un muy buen IDE de programación, y una de sus principales ventajas está en su
simplicidad.
Sun One Studio es una plataforma gratis de desarrollo, especial para arquitecturas
IDE también está totalmente integrado con un completo Runtime Environment: Sun
• JDeveloper
Oracle JDeveloper es un IDE libre con end-to-end soporte para modelación, desarrollo,
• JCreator
rápido y sencillo, y lo recomiendo para personas que estén empezando ya que es muy
2.5.1.1. Historia
Los sistemas de software han estado alrededor por varias décadas, pero sólo hace poco
tiempo que comenzó a ser utilizado por millones y millones de personas en todo el mundo.
Hace sólo 20 años, la mayoría de las aplicaciones de software fueron utilizadas por
profesionales entrenados.
responder intuitivamente de manera oportuna. Como regla general, para ser considerado
rica la interacción con el usuario es que debe ser tan buena como la actual generación de
2
Realizado por Cristian Castiblanco
- 55 -
Esto incluye características como la prestación de los diferentes medios de interacción por
información visual por ejemplo, cambiando la forma del cursor, usando las indicaciones
colores. En la siguiente figura se proporciona una visión general de las cuatro etapas en la
Experiencia
de Usuario
Relación coste-eficacia
Grafico II.4: Visión General de la historia de las aplicaciones de software.
web.
navegador y por lo tanto son menos probables que sea dañada como las aplicaciones
• Más respuesta.- Porque no todas las acciones de los usuarios requieren comunicación
con el servidor, las RIA tienden a ser más sensibles que las aplicaciones web clásicas.
• Más escalable.- Una gran parte del trabajo computacional, así como también el cuido
estatal puede ser descargado desde el cliente, por lo que el servidor puede manejar
• Más eficiencia de red.- En las aplicaciones web clásicas, cada acción del usuario
requiere que el servidor cargue toda la página y enviarla a la red. En el caso de las
aplicaciones ricas en Internet (RIA), toda la aplicación de interfaz de usuario sólo tiene
que ser comunicado una vez y todas las otras peticiones al servidor requieren sólo los
por completo la aplicación por lo general hace poco o nada. Obviamente es posible
tener un plan alternativo para esos usuarios, pero luego se va a mantener dos
3
Por: Bram Smeets, Uri Boness y Ronald Bankras
- 57 -
• No hay acceso a los recursos del sistema.- Como las aplicaciones AJAX se ejecutan
dentro de un navegador, ellos están limitados en los recursos que pueden acceder. Por
ejemplo, una aplicación AJAX no puede tener acceso al sistema de archivos del cliente.
parcialmente las páginas o usen un plug-in específico tales como Flash. La mayoría de
las aplicaciones dinámicas de Internet están mal indexadas por los motores de
búsqueda.
• Depende de una conexión a Internet.- Porque estas aplicaciones son servidas desde
la web y ejecutadas en el navegador web, por lo que requieren por lo menos una
conexión a Internet inicial. Pero incluso durante su uso, es necesaria una conexión a
2.5.2.1. Introducción
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
4
Por: Bram Smeets, Uri Boness y Ronald Bankras
- 58 -
tecnologías usadas actualmente para escribir aplicaciones AJAX, las cuales son difíciles de
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). Cabe
aclarar que este compilador, a diferencia del framework de desarrollo, no es Open Source.
encapsula el objeto XMLHttpRequest API, para luego minimizar los problemas entre
exploradores. De esta manera, se puede construir rápido y eficiente aplicaciones AJAX sin
navegadores.
programación, que proporciona un marco que permite combinar los widgets en interfaces
de usuario. Esta es una gran manera de mejorar la productividad y acortar sus líneas de
usuario que se puede utilizar de inmediato para crear nuevas aplicaciones. También
las ya existentes. Para crear, depurar y probar cada unidad de aplicaciones AJAX se puede
utilizar el IDE de Eclipse. Así mismo, se puede construir RPC (Remote Procedure Call)
GWT permite integrar fácilmente con los servidores descritos en otros idiomas, así se
puede mejorar las aplicaciones para proporcionar una experiencia de usuario mucho mejor
• GWT (Google Web Toolkit) es un framework Open Source, desarrollado por Google,
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). Cabe aclarar que este compilador, a diferencia del framework de desarrollo,
manejo de varios lenguajes al mismo tiempo, lleva a código poco confiable, difícil de
• Una de las tecnologías más importantes en los últimos años en el mundo de las
(JSF), es la esencia de las aplicaciones ricas de internet, y como GWT está pensado
Debuggear 5.
widgets estándar que parece bueno, flexible, que se contempla para trabajar en todos los
• RPC realmente fácil.- Para comunicarte desde el navegador que lanza la aplicación
con el servidor web, solamente se necesita definir clases de Java serializables para las
5
Realizado por Epiwiki deploying ideas
- 61 -
no es necesario que se llame a otras páginas para realizar las diferentes acciones, ni
recargar el navegador.
misma es traducida a JavaScript, pero mientras lo estás desarrollando este corre sobre
una máquina virtual de Java (JVM). Lo que significa que en la fase de desarrollo se
Safari, y Opera sin ningún tipo de operación para la detección de los mismos, en la
• Integración con JUnit.- Mediante la integración de JUnit en GWT, se puede probar las
fácilmente.
- 62 -
• GWT es un proyecto de código abierto.- Todo el código de GWT está disponible bajo
• Soporte para las API´s de Google (inicialmente, soporte para Google Gears).
• Comunicación entre el cliente y servidor usando objetos de java y es todo mucho más
• Es de código abierto.
en tiempo de compilación.
6
WIKIPEDIA La enciclopedia libre
- 63 -
entendimiento.
JavaScript. Tiene tres modos en los que puede operar, los cuales determinan cómo se
verá:
o Detailed: produce código al igual que el modo pretty pero agregando el nombre
iniciar el navegador el mismo ejecuta código que permite obtener la versión correcta del
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.
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
navegadores web. Para saber completamente qué clases y métodos son soportados por
el núcleo de paquetes Java, se debe ver la referencia del API para java.lang y java.util,
en donde se listan las clases a las que se les dio soporte y contiene notas acerca de las
diferencias entre lo soportado y el estándar de Java. Por ejemplo, las clases de los
Algunas áreas específicas en las que la emulación Google Web Toolkit difiere desde el
o Expresiones regulares
usan expresiones regulares. Así que, se debe ser cuidadoso al usar expresiones
o Serialización
En lugar de eso, Google Web Toolkit tiene una facilidad de soporte para RPC, que
- 66 -
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
Lo que hace especial a este framework es que las aplicaciones se programan en Java, y el
mediante JSNI.
7
Por: Cristian Castiblanco
- 67 -
El mecanismo que ofrece GWT para comunicarse con el servidor está basado en RPC que
aunque funciona y hace que el código cliente sea sencillo de leer carece de las ventajas de
llamadas RPC se puede usar la clase RequestBuilder, una clase de bajo nivel cuyo uso
2.5.2.6.1. Funciones
JavaScript en el código fuente Java mediante la interfaz JSNI. Por tanto, la ventaja de
poder crear modelos de objetos JS como tipos de Java (por ejemplo, creación de
código, reestructuración, sustitución de llamadas a funciones, etc.) sin tener que contar
con una mayor cantidad de memoria ni sufrir una disminución de velocidad. Esta
• Fácil uso del historial y del botón de retroceso del navegador.- las aplicaciones
AJAX no necesitan desgastar el botón de retroceso del navegador. GWT hace que
resulte más sencillo utilizar el sitio con sólo añadir el estado al historial del botón de
• Localiza las aplicaciones de una forma eficaz.- Puede crear fácilmente bibliotecas y
GWT. Además, a partir de la versión 1.5, los artilugios GWT estándar admiten la
bidireccionalidad.
• Elige las herramientas de desarrollo de forma productiva.- GWT utiliza Java, por
lo que se puede utilizar todas las herramientas favoritas de desarrollo con Java
(Eclipse, IntelliJ, JProfiler, JUnit, NetBeans, etc.) al crear las aplicaciones AJAX. De
• Prueba el código con JUnit.- La integración directa de GWT con JUnit permite
asíncronas.
2.5.2.6.2. Funcionamiento
programación Java que son compiladas posteriormente por GWT en código JavaScript
Durante el desarrollo de una aplicación, puede repetir rápidamente el mismo ciclo "editar -
independientes. Google Web Toolkit permite crear fácilmente tanto un artilugio para una
8
Por: Compañía Google
- 70 -
• Desarrollo ágil.
• Multiplataforma, Multinavegador.
• Crea modelos de objetos JS como tipos de Java (por ejemplo, creación de código,
reestructuración, sustitución de llamadas a funciones, etc.) sin tener que contar con una
• Reduce la carga en el servidor (los datos que se cargaban en la sesión del servidor
• Los errores comunes JavaScripts (types, type mismatches) son capturados por el
otra tecnología.
- 71 -
despliegue.
• Java.lang.java.util
a. Usa el entorno de desarrollo integrado (IDE) favorito para el desarrollador para escribir
y depurar una aplicación en Java, usando las librerías GWT que necesita.
c. Verifica que las aplicaciones trabajen sobre todos y cada uno de los navegadores que
construir aplicaciones AJAX con GUIs (interfaz de usuario gráfico) atractivas. Al igual que
9
Realizado por: De Benedetti Guido Rubén
- 72 -
eventos:
Lo que más impacta del modelo de programación que propone GWT es que se elimina la
no vaya a ser JavaScript y HTML. GWT cambia drásticamente la forma en que hasta ahora
se han desarrollado las aplicaciones web y propone que toda la aplicación (tanto cliente,
Esto no significa que GWT proponga Applets para las interfaces de usuario. Este nuevo
El compilador GWT es capaz de compilar (por el momento) sólo un subconjunto del API
disponible en Java aunque suele ser más que suficiente para el tipo de aplicaciones que se
va a desarrollar. Para las clases cliente, se usa los propios paquetes de GWT
(com.google.gwt.user.client.*).
Otra característica interesante es que GWT ofrece dos modos distintos de ejecución. El
denominado "modo web" o "web mode" consiste en compilar el código con el compilador
aplicación durante su desarrollo. Para ello GWT propone un segundo modo de ejecución
denominado "hosted mode", que consiste en ejecutar la aplicación dentro de una JVM.
En este caso el código Java no es compilado a JavaScript y por tanto se puede ejecutar la
aplicación paso a paso, tal y como depuraríamos cualquier aplicación en un IDE favorito.
Para utilizar este modo de ejecución, dentro del jar de GWT (gwt-user.jar) se incluye una
aplicación (llamada shell o consola) que es capaz de ejecutar tanto el código cliente (en un
navegador propio) como el código servidor (en un pequeño motor de servlets basado en
Tomcat).
Para quien haya programado interfaces de usuario en Java, ya sea mediante AWT, Swing o
SWT, programar con GWT le va a resultar muy fácil. GWT incluye una amplia colección
de controles (widgets) que incluye desde los más básicos (Labels, Button, TextBox, etc)
- 74 -
hasta algunos más complejos y no disponibles en HTML de forma directa (MenuBar, Tree
o StackPanel).
Un proyecto GWT, pese a contener aplicaciones web, tiene una estructura más similar a un
proyecto Java que a un proyecto J2EE (estructura WAR). GWT necesita ciertos ficheros
• Las fuentes Java para el lado cliente que serán compilados a JavaScript. Carpeta "
src/com/ree/ree/client/
- 75 -
• Las fuentes de los servicios RCP del servidor (que se compilarán a .class). Carpeta "
src/com/ree/ree/server/".
• Los recursos estáticos que necesite la aplicación (imágenes, css, etc.). Carpeta
"src/com/ree/ree/public/".
los servicios RPC que van a ser invocados desde el cliente así como los punto de
con GWT no es necesario escribir código HTML, existe una pequeña excepción a esta
regla. Debe existir al menos una página HTML que contenga nuestra aplicación. Se
puede por ejemplo crear un diseño HTML que muestre una serie de banners
publicitarios con un espacio central que será donde se ubique la aplicación. Esta es la
página que deberá invocarse desde un navegador para lanzar la aplicación GWT.
La carpeta "bin" contiene el resultado de compilar las clases Java mediante el compilador
javac (es decir, ficheros .class). Hay que notar que aquí se compilarán todas las clases Java,
incluso las del lado cliente. Esto es así, ya que cuando ejecutemos la aplicación en el
La carpeta "www" contiene la aplicación lista para desplegar en un servidor web. Es decir,
aplicación en el modo web (web mode). El contenido de esta carpeta se puede desplegar en
Cabe recalcar que GWT incluye una utilidad (applicationCreator.cmd) que la encargada de
crear todas estas carpetas es por el usuario. Además de la estructura del proyecto
para un simple HelloWorld, por lo que ya se puede lanzar estos dos scripts y ver sus
resultados.
en modo web.
- 77 -
página HTML declara el uso de un módulo GWT. Por último, la clase "RootPanel" nos
Además de proporcionar los "contenedores" donde podremos ubicar los controles que
necesite la aplicación, la página "Principal.html" debe declarar el uso del módulo que se
ejecutar el código del módulo(s) que declare la página. Este fichero JS ha sido creado por la
Por lo demás, se es libre de añadir el código HTML que se desee. Normalmente se suele
añadir una referencia a una hoja de estilos para personalizar la apariencia de los controles
gráficos de GWT.
- 78 -
Un módulo es un paquete de fácil distribución que contiene código del lado del cliente en
asincrónicos que estarán disponibles, entre otras cosas. Un módulo puede heredar de otro
módulo, e importar de esta manera todos los recursos que el módulo padre ofrece.
<module>
<inherits name="com.google.gwt.user.User"/>
<entry-point class="com.ree.ree.client.Nombre_Proyecto"/>
</module>
El módulo hereda del módulo User de GWT, e importa de esta manera todos los
Un módulo reúne todos los datos de configuración que el proyecto GWT necesita, es decir:
• Módulos heredados.
Los módulos pueden aparecer en cualquier paquete del classpath, aunque es altamente
Clases entry-point
Un módulo entry-point es cualquier clase que es asignable a EntryPoint y que puede ser
construida sin parámetros. Cuando un módulo es cargado, cada clase entry point es
Source Path
Los módulos pueden especificar qué subpaquetes contienen código fuente traducible,
provocando que el paquete nombrado y sus subpaquetes sean añadidos al source path.
Solamente los archivos encontrados en el source path son candidatos para ser traducidos a
JavaScript, haciendo posible que se mezclen códigos fuentes del lado del cliente (client-
side) con los del lado del servidor (server-side) en el mismo classpath sin ningún tipo de
conflicto.
Cuando un módulo hereda de otro, sus source path son combinados así que cada módulo
Public path
Los módulos pueden especificar qué subpaquetes son públicos, provocando que el paquete
nombrado y sus subpaquetes sean añadidos al public path. Cuando se compila la aplicación
a JavaScipt, todos los archivos que pueden ser encontrados sobre el public path son
copiados al directorio de salida de los módulos. El efecto en la red es que las URLs visibles
Cuando un módulo hereda de otro módulo, sus public paths son combinados así que cada
Especificaciones
• Formato de módulos XML.- Los módulos son definidos en XML y situados dentro de
JavaScript y CSS externos, causando que estos sean cargados cuando el módulo mismo
es cargado.
• Filtrado de paquetes públicos.- Filtra archivos dentro y fuera de tu public path para
Los módulos son definidos en ficheros XML cuya extensión de archivo es .gwt.xml. Los
Usando una estructura estándar de proyecto, el módulo XML puede ser tan simple como
esto:
<module>
<inherits name="com.google.gwt.user.User"/>
<entry-point class="com.example.cal.client.CalendarApp"/>
</module>
Cargando módulos
Los archivos de módulos XML son encontrados en el classpath de Java, referenciados por
su propio nombre de módulo desde las páginas alojadas en el proyecto, y por ser heredados
Los módulos son siempre referenciados por sus nombres lógicos. El nombre lógico de un
paquetes) y excluyendo incluso la extensión del archivo. Por ejemplo, el nombre lógico de
~/src/com/ree/ree/Principal.gwt.xml
es
com.ree.ree.Principal
Elementos disponibles
módulo especificado como si el contenido del módulo XML heredado fuera copiado
literalmente.
- 82 -
• <source path="path"/>.- Añade paquetes al source path para combinar los paquetes en
que el módulo XML es encontrado con el path especificado para identificar la raíz del
public path.
elemento carga una clase servlet montada como el path URL especificado. El path URL
debe ser absoluto y tener la forma de un directorio (por ejemplo, /spellchek). El código
ServiceDefTarget.setServiceEntryPoint(String).
values"/>.- Extiende el conjunto de valores para una propiedad del cliente existente.
Cualquier número de valores puede ser añadido de ésta manera, y los valores de la
Los módulos pueden contener referencias a archivos JavaScript y CSS externos, causando
con nuestro módulo de manera automática. La siguiente sintaxis se usa para cargar un
archivo JavaScript externo dentro de la página alojada en nuestro proyecto, antes de que el
<script src="js-url"/>
explícitamente usando la etiqueta <script> de HTML. El script será cargado antes que el
La inclusión de hojas de estilo es una excelente forma de asociar archivos CSS externos
con nuestro módulo de una manera automática. La siguiente sintaxis se usa para añadir
<stylesheet src="css-url"/>
- 84 -
inclusión dentro de la página refleja el orden en que estos elementos aparecen en nuestro
módulo XML.
desea crear una librería re-utilizable que depende de archivos JavaScript y CSS
particulares, se puede estar seguro que los clientes de nuestra librería tienen todo lo que se
Los elementos <public> soportan ciertos atributos y elementos anidados para permitir
patrones basados en inclusión y exclusión. Esto utiliza las mismas reglas que un elemento
FileSet de Ant.
• El atributo include
• El atributo exclude
• El atributo defaultexcludes
• El atributo casesensitive
para realizar diferentes tareas de una manera rápida. Éstas son también útiles para añadir
nuevas cosas a los proyectos existentes. Por ejemplo, projectCreator podría ser usado para
crear un proyecto Eclipse para uno de los ejemplos que viene con GWT.
2.5.2.13.1. proyectCreator
2.5.2.13.2. applicationCreator
com.ree.ree.client.Nombre_Proyecto
clase com.ree.ree.client.Nombre_Proyecto.
- 86 -
2.5.2.13.3. junitCreator
2.5.2.13.4. i18nCreator
Las clases de interfaces de usuario de Google Web Toolkit son muy similares a las de los
distintos frameworks como Swing o SWT, excepto que los widgets son creados y
Mientras sea posible manipular el DOM del navegador directamente usando la interfaz
DOM, es más fácil usar las clases desde la jerarquía de widgets. Raramente se necesitará
La clase RootPanel
transparentemente desde Java. Esta clase representa el elemento body del documento
HTML. Todos los widgets serán agregados directa o indirectamente al RootPanel para ser
WIDGETS
Los widget son los componentes y partes visuales de una aplicación GWT los cuales son
vistos por los usuarios que usan la pagina web, como por ejemplo labels, botones,
imágenes, menús, grids etc. La GUI de una aplicación GWT está basada en Widgets.
“Los widgets son los componentes visibles de una aplicación GWT que un usuario puede
Una vez que se tiene una buena idea de lo que es un widget , se dará una mirada a los
widgets que vienen con GWT, incluida la forma de usarlos en los diferentes componentes
Definición de un Widget
de usuario dinámicas usando técnicas que ya se han probado exitosamente con otros
frameworks que proveen esta funcionalidad como por ejemplo el paquete AWT de Java.
Las clases en este paquete aprovechan las características de las interfaces de usuario de un
- 88 -
navegador web para proveer componentes dinámicos reutilizables, los cuales tienen el
soportados.
La librería de interface de usuario de GWT llama a estos componentes widgets, y estos van
desde simples botones o labels hasta controles más complejos como tabs o arboles.
se usarían en la elaboración de una página web, mientras que otros son la composición de
Los Widgets son uno de los cuatro bloques fundamentales de construcción de aplicaciones
GWT (los otros son los panels, eventos y la comunicación con el servidor).
Cuando un usuario está utilizando una aplicación GWT hecha por alguien, lo que se
responderán a eventos. Los widgets son los componentes con los que el usuario interactúa.
GWT proporciona muchos widgets diferentes, entre estos los controles más usados en las
interfaces graficas como son los botones, labels, menús cuadros de textos, etc.
Muchas de nuestras aplicaciones serán construidas usando varios widgets los cuales se
distribuirán de cierta manera dentro de paneles para darle alguna estructura a la interfaz de
la aplicación.
compilador de GWT genera el código HTML y java script necesario para que la aplicación
funcione bien en los diferentes navegadores existentes. Para eso se hace necesaria una
manera de representar varios objetos del navegador, es decir los llamados widgets de GWT,
objetos y conceptos como objetos de programación. Por ejemplo, en una aplicación GWT
cualquiera se hace uso de un objeto Java llamado Button este objeto Button modelara
varias propiedades que esperamos que un botón tenga, como la habilidad de asignarle un
texto además de presionar dicho botón. Así como un botón se puede modelar los demás
componentes que se desee ver en la aplicación, es decir los widgets, como objetos Java con
métodos y propiedades.
Entonces, en una programación diaria en GWT se debe considerar todos los widgets como
objetos naturales de Java. El botón del que se habla anteriormente se crea llamando al
Este código crea un nuevo objeto Button de GWT del cual después se puede usar varios
métodos.
La representación Java de los widgets funciona muy bien en el código java y permite
construir una aplicación GWT como se quiera, usando cualquier cantidad de widgets y sus
puede mostrar esos objetos Java en el navegador, si no se tiene todavía una aplicación
AJAX.
elemento DOM en particular, ya que dicho widget puede ser implementado usando una
java usando los métodos que nos da cada widget de GWT se protegerá contra cambios
Widgets Estándar
La versión estándar de GWT viene con un amplio número de widgets para usar en nuestras
aplicaciones. Estos widgets cubren las áreas que se espera con botones, cuadros de texto y
otros widgets. Sin embargo habrá ocasiones en las que se quiere usar algún widget, como
una barra de progreso, pero que no viene dentro de los widgets que GWT proporciona pero
Dentro del conjunto de widgets, los diseñadores de GWT han implementado una fuerte
widgets donde dicha coherencia naturalmente exista. Por ejemplo los widgets TextBox,
captura las propiedades comunes en una clase llamada TextBoxBase de la cual heredan
Se puede ver en la jerarquía de clases que todos los widgets heredan de la clase UIObject,
la cual proporciona un conjunto de métodos y atributos para todos los widgets, incluyendo
método setElement().
- 92 -
La clase UIObject permite el acceso a una variedad de funcionalidades DOM sin que se
tenga acceso directo al DOM. Por ejemplo es posible asignar el height (alto) de un
clase DOM.
Después de UIObject todos los widgets, excepto TreeItem y MenuItem, deben heredar de la
clase Widget, la cual proporciona todas las funcionalidades a los widgets, incluyendo
métodos que son llamados cuando un widget es agregado o eliminado de un panel. Esta
clase también contiene la implementación por defecto del método onBrowserEvent, el cual
A continuación se muestra los widgets que nos proporciona gratis GWT, así como la
manera de usarlos en nuestra aplicación, además se dividirá los diferentes tipos de widgets
• Widgets estáticos, son aquellos que no son muy interactivos, solo cambian de estado
• Widgets complejos, los cuales son nuevas características, brindadas por las interfaces de
Widgets Estáticos
Estos widgets no tienen ningún estado interno ni tampoco cambian dinámicamente por su
cuenta. Sin embargo pueden ser parte de una interface de usuario dinámica en la cual sus
propiedades pueden ser cambiadas en tiempo de ejecución por medio del código de otros
controles, pero sus propiedades no cambian como resultado de acciones del usuario. Estos
Label
Esto significa que el Label creado por el código new Label ("hola <B>Mundo</B>")
- 94 -
Un Label tiene asociado por defecto un nombre de clase CSS: gwt-Label, el cual permite
fácilmente asignar el estilo para todos los Label de nuestra aplicación. Por ejemplo,
agregando el siguiente código CSS hará que el Label tenga un fondo azul con la fuente
amarilla:
HTML
El Widget HTML es muy similar al Label pero con la pequeña diferencia que puede
soportar y renderizar HTML. De hecho este widget hereda de Label, ganando su soporte
para eventos del mouse y alineación de texto. Este widget interpreta cualquier texto como
de hojas de estilo así como el Label. Este control tiene algunas desventajas, ya que puede
generar problemas de seguridad u otros debido a que puede llevar código malicioso.
Image
El widget Image es estático igual que el Label y el HTML, pero en vez de aceptar y
renderizar una cadena, el Image acepta una URL apuntando a un archivo de imagen y
renderiza dicha imagen. El widget básicamente lo que permite es utilizar la etiqueta img de
HTML como un widget del framework. El siguiente código permite crear una imagen:
- 96 -
Lo que se hace es crear una instancia de la clase “image”, luego se pasa la url de la imagen
que se desea mostrar a través del método “setUrl”, y finalmente se agrega al panel
principal. El método “setUrl” acepta una cadena con la url donde se encuentra la imagen,
dicha url puede ser una dirección local como en el ejemplo que se vio donde el navegador
busca una imagen que se llama “archivo.jpg” en el mismo directorio del HTML.
Pero también se puede colocar la url de la imagen en otro servidor, por ejemplo si ahora se
siguiente.
- 97 -
Hyperlink
Este widget actúa como un hipervínculo dentro de nuestra aplicación GWT. Para el usuario
aparenta no ser más que un vínculo normal dentro de la página web el cual al dar clic se
realizará una navegación dentro de la página. En el código esta acción lo que se hace es
ejecuta cuando se realiza un cambio en algún estado de la aplicación, en el cual irá las
acciones a tomar dentro de la aplicación cada vez que un Hyperlink es utilizado. Además
Para utilizar un Hyperlink se crea una instancia de la clase Hyperlink y luego se agrega el
widget a un panel.
El constructor del Hyperlink recibe como parámetros 2 Strings, el primero el texto del link,
y el segundo una cadena que se convierte en el estado del objeto “History” que se mencionó
anteriormente, al dar clic en un Hyperlink esta cadena se concatena junto con un carácter
cuales al hacer clic en cada uno de ellos cambian una imagen que se muestra en el browser.
eliminar paneles o widgets, en fin permite tener una experiencia de navegación dentro del
sitio web. Otra buena forma de navegación dentro de nuestra aplicación seria utilizando
menús. Los Hyperlinks funcionan muy bien para navegar dentro de la aplicación, pero si lo
que se quiere son links hacia otros sitios sería mejor utilizar un link HTML usando el
Widgets de Formulario
Los que se llama “Widgets de formulario” son aquellos que son usados normalmente en
formularios HTML. Sin embargo los formularios HTML envían información al servidor y
manera asíncrona.
Estos “Widgets de formulario” proporcionados con GWT no necesitan ser incluidos dentro
de un formulario HTML son muy flexibles y pueden ser usados de manera muy similar a
widgets de aplicaciones de escritorio. Los widgets que se verá a continuación son los
siguientes:
botones se usan en un formulario HTML para enviar información al servidor, pero en GWT
se puede usar un botón para ejecutar cualquier acción que necesitemos. Para crear un botón
agregó un manejador del evento click el cual se definió con una clase anónima. El método
onClick es el que se ejecutará al invocar al evento click, lo que hace el ejemplo es mostrar
El ToggleButton y PushButton son otros 2 tipos de botones que vienen dentro de la librería
de la interface de usuario que pueden ser usados de manera similar a un widget Button
mantienen presionados hasta que el usuario hace clic de nuevo, además tiene varios
- 102 -
constructores los cuales aceptan una imagen como parámetro para reemplazar la cara del
botón. Los eventos de clic y demás es igual a como se definió los del Button anteriormente.
desde una hoja de estilo CSS los cuales no son soportados por un simple Button. Estos
• Button down: el estado cuando el clic del mouse está presionando un PushButton o el
• Button up mouse hovering: es la misma que el Button up con la diferencia que el mouse
• Button up disable: igual que el Button up pero el botón en ese momento se encuentra
• Button down mouse hovering: mismo estado que el Button down pero el mouse se
• Button down disable: este estado nada más funciona para el ToggleButton ya que es el
CheckBox
soporta eventos de cambio de foco y eventos de clic. Cuenta con un estado que dice si el
widget esta checkeado o no, que es la función getValue la cual nos diría true si se encuentra
VerticalPanel para que los CheckBox se agreguen uno debajo del otro.
RadioButton
Este widget es igual de sencillo y parecido al CheckBox que se acabó de ver, con la
seleccionados a la vez. Este widget es útil cuando necesitamos que el usuario elija un solo
ListBox
opciones y lo pone a elegir una sola dentro de las múltiples opciones. La diferencia con el
La primera forma muestra al ListBox como una lista desplegable que muestra solo la
opción seleccionada, cuando el usuario hace clic en la flecha se despliega las demás
La segunda forma para mostrar un ListBox consiste en una lista de las opciones, donde la
ListBox de esta manera es igual a la que ya se muestra con una línea adicional donde se
si se definió un número de ítems menor al total de las opciones del ListBox se agregara un
el browser nos mostrará un aviso cada vez que se selecciona una opción del ListBox
TextBox
estándar de capturar texto del usuario. Es un widget muy sencillo y fácil de usar. Se crea un
y al presionar la tecla enter el browser muestra una ventana con el nombre que digito el
PasswordTextBox
Este widget funciona exactamente igual que el TextBox que se acabó de ver con la
diferencia que su contenido está oculto del usuario para proteger datos como contraseñas.
- 109 -
TextArea
El TextArea es otro widget que permite capturar texto del usuario, es parecido al TextBox
con la diferencia que permite textos de múltiples líneas mientras que el TextBox nada más
nos permite una sola línea. A continuación se verá un ejemplo del uso de un TextArea.
RichTextArea
Los anteriores widgets de captura de texto nos permitían usar texto simple, es decir texto
plano sin formato, pero hay caso en los que se quiere usar texto en negrilla o de algún color
Para esto se usa el widget RichTextArea, que como su nombre lo indica es un TextArea
pero que maneja texto enriquecido pudiendo decir, que se maneja de manera similar al
TextArea, tiene los métodos getText y setText que permiten recuperar o asignar texto
plano, pero además tiene 2 métodos adicionales que son getHTML y setHTML que nos
permiten usar texto en formato HTML para así poder utilizar texto formateado. Este es un
ejemplo de un RichTextArea:
FileUpload
El FileUpload widget solo funciona del lado del cliente por lo que permite al usuario
que todo sea AJAX por lo que brinda un panel llamado FormPanel, que permite incluir el
Widgets Complejos
ver interfaces de usuario compuestas por objetos los cuales no tenían una etiqueta HTML
equivalente.
- 112 -
Estos objetos fueron creados por la composición de etiquetas y el manejo de los eventos fue
realizado con JavaScript. Estos widgets también se pueden crear con GWT, además que ya
vienen algunos con el framework, estos son a los que llamamos widgets complejos. En esta
Tree
El Tree es parecido a los controles Tree de aplicaciones de escritorio, permite mostrar una
vista jerárquica de datos que se puede contraer y colapsar. Los elementos que se muestra en
un Tree pueden ser TreeItem, a los que se puede llamar ramas del árbol. Se puede agregar
También se puede agregar una cadena u otros widgets al árbol. Instanciar un Tree widget y
A continuación se muestra un ejemplo agregando los ítems del Tree manualmente, pero se
puede hacer esto dinámicamente con datos que se traiga de una base de datos que se
encuentra en el servidor.
- 113 -
uno de los cuales se le agregó un ítem ya sea una cadena, un widget u otro TreeItem. El
MenuBar
Otro widget que entra en la categoría de widgets complejos es este llamado MenuBar.
Tiene cierta similitud con el Tree que se vio, con la diferencia que solo se puede ver una
subcategoría al tiempo. Normalmente se usa este widget para mostrar una lista de opciones
También se puede pasar como parámetro otro MenuBar para llamar a un submenú.
Además, se realiza llamadas a una clase MenuItem que funciona de manera similar al
En este ejemplo se define un objeto de tipo Command vacío, es decir con el método
execute que es el que se ejecuta cuando se selecciona un ítem del menú, además se define el
menú principal llamado “menu". Luego se define los submenús que se va a agregar al
menú principal, se ve que los submenús se los instancia con el parámetro true para que se
Los eventos en Google Web Toolkit usan interfaces listener (de escucha de eventos), de
una manera muy similar a como se utilizan en otros frameworks. Una interfaz listener,
define uno o más métodos que los widgets usan para anunciar un evento. Una clase que
recibe eventos de un tipo en particular, implementa la interfaz listener asociada con el tipo
de eventos que recibe y luego pasa una referencia del widget que generó el evento para
La clase Button, por ejemplo, publica eventos click. La interfaz asociada para este tipo de
eventos es ClickListener:
Los widgets proveen su apuntador this como el parámetro sender cuando invocan un
método listener, permitiendo que sea sencillo para el listener distinguir entre los diferentes
publicadores. Esto hace un mejor uso de la memoria, pero requiere más líneas de código
Se ha visto el uso de varios de los widgets que provee GWT en su framework. Ahora se
verá lo que son los widgets compuestos o “composite widgets”. Los “composite widgets”
son elementos potentes de GWT los cuales son widgets creados por nosotros combinando
los widgets y paneles que ya se ha visto anteriormente. Esto es muy útil si se quiere crear
Se puede considerar a estos widgets compuestos como mini aplicaciones GWT, ya que
están compuestas por widgets y proporcionan una funcionalidad dada por el creador del
control.
Para crear un widget compuesto lo que se hace es crear una clase y hacer que herede de
manejar en el widget. Luego como atributos de la clase se agrega los widgets que se vaya a
utilizar.
Button, y que al dar clic en el botón se muestra lo escrito en el TextBox en un mensaje del
browser.
- 118 -
1. Identificar los widgets: como se sabe los widgets compuestos son hechos de varios
widgets los cuales pueden ser los estándares de GWT u otro widget compuesto, por
eso es bueno que antes de construir el widget se identifique los widgets que se va a
incluir en él.
2. Elegir el diseño: después de elegir los widgets que se usará se debe definir el diseño a
4. Construcción del widget: es la construcción del widget como tal, ya que se ha definido
la estructura es hora de implementar dicha estructura. Este paso tiene sub-etapas que
son:
implementamos.
5. Establecer los estilos: en esta etapa más que todo lo se hace es establecer una
6. Pruebas: como todo desarrollo de software la etapa final es la prueba del widget. la
idea es que el widget se comporte bien y haga lo que tiene que hacer para evitar
sorpresas.
Los widgets de GWT confían su estilo visual a hojas de estilo en cascada. Cada widget
tiene un nombre de estilo asociado que lo enlaza a una regla CSS. Un nombre de estilo de
widget es asignado usando el método setStyleName(). Por ejemplo, Button tiene como
nombre de estilo por defecto gwt-Button. En ese orden de ideas, si se deseara por ejemplo
- 120 -
Estilos complejos
Algunos widgets tienen asociados tipos de estilos más complejos. MenuBar, por ejemplo,
En este ejemplo, se tienen dos reglas que aplican a los items de los menús. El primero
aplica a todos los items de los menús, mientras el segundo (con el sufijo -selected) aplica
solo para el item de menú que esté seleccionado. Un nombre de estilo de ítem de menú
ambas reglas de estilo serán aplicadas. La manera más común de hacer esto es usar
Archivos CSS
Generalmente, las hojas de estilo son situados en paquetes que son parte del módulo public
path. Entonces simplemente incluya una referencia a la hoja de estilo en la página HTML,
así:
- 121 -
Generalmente, una aplicación utiliza muchas imágenes pequeñas para iconos. Una petición
al servidor debe ser enviada por cada una de las imágenes, y en algunos casos, el tamaño de
la imagen es menor que la cabecera de la petición en sí, que es enviada con los datos de la
imagen.
Una imagen atada, es un conjunto de imágenes dentro de una sola imagen, con una
interfaz para accesar a las imágenes individualmente. De esta forma, en vez de hacer una
petición al servidor por cada imagen que se necesita, la aplicación realiza solo una petición
cambiada. Esto significa que es seguro para los clientes guardar en caché la composición de
han sufrido cambios en el servidor. Para lograr esto, la configuración del servidor necesita
de la aplicación, usar image bundle previene el efecto “bouncy” al cargar las imágenes en el
navegador.
- 122 -
Especificaciones
• Image bundle y localización.- Crea locale-sensitive image bundle para usar las
interfaz derivada puede tener cero o más métodos, donde cada método:
• No toma parámetros
• Puede tener un metadata gwt.resource opcional lo que especifica el nombre del archivo
Los tipos de archivo válidos son png, gif y jpg. En caso de que haya múltiples archivos de
imágen con diferentes extensiones, el orden de precedencia de extensiones es (1) png, (2)
Un ImageBundle para los iconos de un procesador de texto podría ser definido así:
El siguiente ejemplo muestra cómo usar el image bundle que se definió en la aplicación:
Hasta la aparición de AJAX, cada vez que una aplicación web tenía que realizar alguna
operación en el servidor, se tenía que enviar una petición (GET o POST) a este, que tras
Con AJAX podemos hacer peticiones al servidor sin sustituir el documento actual y
datos (sin incluir formato). Todo esto además de forma asíncrona por lo que se mejora
mucho la experiencia de usuario. GWT dispone de un mecanismo por el cual realizar este
tipo de peticiones resulta muy sencillo. Este mecanismo ya existía en las antiguas
permite implementar del lado del Servidor distintas tecnologías como PHP, o ASP.NET.
Esto es RPC (Remote Procedure Call) que viene siendo en español “llamada a
procedimiento remoto” o Servlets Java, que pueden estar residiendo en un Tomcat u otro
Servidor de Servlets del Mercado. El RPC en Google Web Toolkit permite fácilmente al
El concepto de RPC es muy similar al RMI. Una diferencia fundamental entre Google Web
Toolkit y las tradicionales aplicaciones web, es que las aplicaciones Google Web Toolkit
no necesitan de otras páginas web mientras son ejecutadas. Ya que las páginas construidas
con Google Web Toolkit corren como aplicaciones sobre el navegador, éstas no necesitan
hacer nuevas peticiones al servidor, por ejemplo, para realizar actualizaciones en la interfaz
de usuario.
ancho de banda usado, la carga al servidor, y presenta al usuario final una experiencia más
cliente.
10
Por:Página oficial de GWT
- 125 -
podemos intercambiar solamente datos de texto (XML, JSON o lo que sea) que se
pueden o no convertir a un objeto en el cliente, y eso agrega otro paso más que es
• Tercero y muy importante, con RPC se puede depurar el código que se encuentra del
• RPC requiere que el código del servidor se encuentre corriendo dentro de un contenedor
J2EE (son servlets) y no siempre tenemos uno a la mano. Normalmente los proveedores
- 126 -
de hosting incluyen en sus planes php pero no un contenedor J2EE a menos que este
Cada servicio tiene una pequeña familia de interfaces y clases. Algunas de esas clases,
de que existen. El patrón de clases es idéntico para todos los servicios que implementa, por
lo que es una buena idea familiarizarse un poco con los términos y el propósito de cada
El código del lado del servidor que es invocado desde el cliente es frecuentemente llamado
invocación de servicios. Aunque es necesario tener claro que el término “servicio” en este
Web Toolkit no son lo mismo que “Simple Object Access Protocol” (SOAP).
Se puede decir que hay 3 partes o piezas que se debe ensamblar para poner a funcionar una
aplicación que use RPC. La primera: es el servicio que corre en el servidor, la segunda: es
el cliente en el browser que llama al servicio, y la tercera: son los objetos que son
habilidad de serializar y deserializar datos, por lo que los objetos pueden ser enviados entre
serialización.
Se empieza con los objetos porque los datos son los que le dan vida al GWT-RPC. Como
Como cualquier método de Java se puede pasar parámetros a los métodos los cuales pueden
ser tipos primitivos u objetos. Ya se dijo anteriormente que los objetos se pasan serializados
entre el cliente y el servicio así que hay límites entre los tipos de datos que se pueden
Tipos primitivos boolean, byte, char, double, float , int, long , shot
Los tipos de datos propios de java son limitados y son los incluidos en la librería de GWT
Con respecto a los otros tipos de datos definidos por el usuario deben implementar la
interface IsSerializable, la cual no tiene métodos que implementar y que se utiliza para que
GWT sepa que ese objeto podrá ser serializado. Las clases implementarán la interface
El próximo paso para usar RPC es definir e implementar el servicio que será ejecutado en el
Para definir el servicio se necesita crear una interface y hacer que herede de la interface que
servicio teniendo en cuenta que los parámetros y los valores de retorno deben ser
serializables.
usa algún IDE de desarrollo como eclipse con algún plugin este se encargará de todo esto,
No hay mucho que explicar, en el servlet se implementa los métodos del servicio que se
desea crear. Se ve que el nombre del servlet es el mismo que el de la interface con el sufijo
Impl el cual es notación de GWT para reconocer a ese servlet como la implementación del
Cuando se llama al servicio desde el cliente GWT hace la mayor parte del trabajo por
nosotros, sin embargo todavía se necesita crear una última interface. Esta interface será
usada por el compilador de GWT cuando este genere el objeto proxy del servicio.
Un objeto proxy es la instancia de un objeto que reenvía la petición a otro objetivo. En este
caso se estará llamando a un método local y el objeto proxy será el encargado de serializar
los parámetros, llamar al servicio remoto, y manejar la deserialización del resultado. Todo
esto lo hace GWT por nosotros. En el código del lado del cliente se crea el objeto proxy
pasándole como parámetro la clase de la interface del servicio. Esto devuelve un objeto
proxy el cual se puede usar para asignar la URL del servicio y llamar los métodos del
servicio remoto. El objeto proxy implementará 2 interfaces, una que se debe crear por
especificar la URL del servicio. La segunda es la que se define por nosotros y se nos provee
métodos asíncronos para llamar el servicio remoto. Como se ve es el nombre del servicio
Los métodos en esta interface deben coincidir con los nombres de los métodos de la
interface de servicio pero cambiando algo en la firma de los métodos, el valor de retorno
de esto:
- 132 -
Esta interface es usada del lado del cliente por lo que debe ser ubicada en el paquete
“cliente”.
a. Sobre el paquete client de nuestro proyecto se hace click con el boton derecho del
b. Se elige la carpeta de Cypal Studio y dentro de esta se elige GWT Remote Service. Y
que tener 2 nuevas interfaces en el paquete client, con los nombres que ya se indicó, y
además una clase con el nombre REE_ServiceImpl que cuelga del paquete server.
el server nos indica con una cruz roja que tiene un error, esto es porque hemos
Esto se lo resuelve fácilmente, se abre la clase java y haciendo click con el botón
e. Por último se graba la modificación y ya tenemos el servicio listo para ser invocado
desde el cliente.
Ahora que se ha definido todas las interfaces necesarias se puede realizar el llamado al
• Crear un método callback para manejar el resultado de la llamada asíncrona del método.
• Llamar al método.
Se hace esto llamando al método estático GWT.create() pasándole como parámetro la clase
de la interface del servicio que se creó. Luego se necesita realizar un casting de esto objeto
Para este paso se necesita realizar otro casting del objeto proxy que se captura al tipo
La URL debe ser la misma que está en la definición del servlet en el web.xml.
parámetros de los métodos de la interface asíncrona que se definió, este objeto será el
Para demostrar esto con un ejemplo se va a crear un objeto anónimo que implemente la
La interface AsyncCallback tiene 2 métodos que deben ser implementados que son:
onFailure que se ejecuta cuando hay algún error en la ejecución del método. Y el método
onSuccess cuando el método fue ejecutado exitosamente y el resultado fue recibido del
servidor, en este caso el resultado es recibido por el método en el parámetro result el cual se
El último paso es llamar al servicio, lo cual es bastante simple y consiste en una sola línea
que sería:
Hay que recordar que para ejecutar una aplicación GWT tenemos dos opciones: "hosted
mode" y "web mode". Para probar un servicio en "hosted mode", podemos hacer que la
- 138 -
propia shell de pruebas pueda ejecutar el Servlet. Para ello simplemente se tiene que
continuación.
De esta forma tan sencilla, se puede probar nuestra aplicación antes de desplegarla en un
servidor. Para probar la aplicación en modo web, se debe crear un fichero WAR. Este
• Clases compiladas del paquete "com.ree.ree.server" así como todas sus dependencias.
Para evitar problemas en este sentido, se incluye todas los .class de la aplicación,
aunque se sepa de antemano que clases no se van a ejecutar en la JVM del servidor.
• Los recursos estáticos que usa la aplicación (imágenes, css, js, etc) así como el
de la carpeta "www".
que si se despliega la aplicación en Tomcat, hay que tener cuidado al incluir la librería
"gwt-user.jar" ya que esta contiene las clases de los paquetes "javax.servlet.*", cosa que
3.1. Introducción
programador, que suelen incluir en una misma suite, un buen editor de código,
importantes que usa GWT para el desarrollo de sus aplicaciones web, sabiendo que GWT
no tiene un IDE específico, puede utilizar cualquier entorno de desarrollo integrado que use
el lenguaje de programación JAVA y para hacer efectivo su uso lo único que se debe hacer
Una vez realizada esta selección se explica en detalle cada uno de los IDE’s seleccionados
por los autores para luego determinar y detallar los parámetros e indicadores que serán el
integrado más idóneo para la puesta en práctica de la parte aplicativa del presente proyecto.
asignada a cada uno de los indicadores de los parámetros de evaluación de los IDE’s, se
hará uso también de gráficos estadísticos que determinarán a simple vista el IDE más
continuación se mostrará una serie de páginas web que se ha tomado como referencia para
la elección del IDE más adecuado para el desarrollo del presente trabajo, en las que se
Santiago del Estero, habla de los IDE’s más populares para programar en Java,
o BlueJ
o Eclipse
o Intellij IDEA
o Jbuilder
o JCreator
o JDeveloper
o NetBeans
Y en base a cada una de las ventajas que estos pudieran tener como su costo se
determinó que para la programación de Java los IDE más adecuados son:
o Eclipse
- 142 -
o NetBeans
o JEdit
o JCreator
o Eclipse
o NetBeans
o Intellij IDEA
o Borland JBuilder
Donde las cinco primeras son open source (código abierto), mientras que las
JEdit, Eclipse y NetBeans, por no tener costo y ser más conocidas a nivel de los
programadores de Java.
- 143 -
“selección del IDE más adecuado para GWT”, el mismo que lo se puede encontrar
recomienda usar:
o Eclipse
o NetBeans
o Intellij IDEA
Los mismos que los ha evaluado en base a una serio de parámetros como: facilidad
• En el sitio web publicado el 04 de Mayo del 2010, con el tema “El mejor IDE para
Java” http://comomedices.blogspot.com/2010/05/el-mejor-ide-para-java.html. Se
o NetBeans
o Eclipse
o JBuilder
o JDeveloper
o IntelliJ IDEA
- 144 -
enlace:
http://www.google.com.ec/url?sa=t&source=web&cd=1&ved=0CBQQFjAA&url
=https%3A%2F%2Ffanyv88.com%3A443%2Fhttp%2Fcasidiablohost.googlepages.com%2FIntroduccion-al-Google-
Web-Toolkit.pdf&rct=j&q=Tutorial+%281.0%29+de+Introducci%C3%B3n+a
+Google+Web+Toolkit&ei=Ez0pTOXVH4OClAeG-IzhAw&usg
o Eclipse
o IntelliJ IDEA
o JProfiler
o JUnit
http://www.builderau.com.au/program/java/soa/Java_jams_five_IDEs_tested/0,339
o Netbeans 4.0
o Eclipse 3.0.1
Al final de todo el estudio comparativo, obtuvo los siguientes resultados sobre los
Una vez expresado las consultas anteriores sobre los IDE’s más populares y adecuados que
programación Java según los sitios web expresados, se va a seleccionar los siguientes
entornos de desarrollo integrados: Eclipse, Netbeans e Intellij IDEA por las siguientes
• Porque tanto Eclipse, Netbeanas e Intellij IDEA son los que más se repiten, es decir,
gozan de mayor popularidad en casi todos los sitios web visitados anteriormente según
sus diferentes autores que son desarrolladores de Java, además se cuenta con la
• Los IDE’s Eclipse y Netbeans son open source, es decir, de código abierto por lo que
no tiene costo alguno, además tienen bastante soporte técnico como documentación,
que es uno de los puntos más importante que se debe considerar al momento de elegir,
- 146 -
código abierto.
• En lo referente al tercer IDE Intellij IDEA, pues a pesar de ser licenciado, es decir,
cuenta con el soporte técnico necesario para poder realizar cualquier aplicación web
uno de las herramientas IDE’s que se ha tomado como referencia anteriormente para el
análisis comparativo.
3.3.1. Eclipse
3.3.1.1. Introducción
Gran parte de la programación de Eclipse fue realizada por IBM antes de que se creara el
proyecto Eclipse como tal. El antecesor de Eclipse fue VisualAge y se construyó usando
de los noventa, IBM desarrolló una máquina virtual válida tanto para Smalltalk como para
Java. El rápido crecimiento de Java y sus ventajas con miras a una Internet en plena
construcción de una nueva plataforma basada en Java desde el principio. El producto final
resultante fue Eclipse, que ya había costado unos 40 millones de dólares a IBM en el año
2001.
- 147 -
A finales de 2001 IBM, junto a Borland, crean la fundación sin fines de lucro Eclipse,
abriéndose así al mundo de código abierto. A este consorcio se han unido poco a poco
Software, Red Hat, SuSE, HP, Serena, Ericsson y Novell, entre otras.
3.3.1.2. Definición
sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE
de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega
como parte de Eclipse y que son usados también para desarrollar el mismo.
a. El Platform runtime
plataforma. Cuando se arranca Eclipse, este componente se encarga de buscar los ficheros
de manifiestos de los plug-ins (que son archivos XML que describen los plug-ins), y carga
- 148 -
esta información en un registro. Solamente cuando se requiere por primera vez un plug-in,
durante el tiempo de ejecución. A grosso modo, el Platform runtime define los puntos de
Permite gestionar el acceso a ficheros tanto a alto como a bajo nivel. Actúa como un
componente que encapsulara la gestión de archivos, permitiendo que los plug-ins utilicen
sus métodos sin tener que trabajar directamente con distintos sistemas de archivos, según la
De la misma forma, refleja el estado actual de los proyectos locales, con su código fuente y
sus ficheros compilados, que estén en la memoria activa. Al cerrar Eclipse se guarda el
estado actual del Workspace local, de modo que cuando se reinicia Eclipse vuelve al estado
en que se cerró.
el mismo. Proporciona la interfaz gráfica de Eclipse y constituye uno de sus puntos más
cuidados y atractivos. Desde el punto de vista del usuario una ventana del Workbench
consiste en vistas y editores. Tanto la API como la implementación del Workbench se han
más consistente en todas las plataformas, pero evita caer en las limitaciones de
ésta.
• JFACE
• Editores
fichero (no sólo con el código fuente, sino también con su fichero XML asociado,
• Vistas
compilación, etc.
- 150 -
• Perspectivas
Eclipse, pero usando plug-ins pueden añadirse otras nuevas. Al cambiar una
Permite a los plug-ins proporcionar documentación HTML que pueda ser presentada
versiones de las aplicaciones que se desarrolle. Este componente permite que diferentes
plug-ins de repositorys convivan dentro de la plataforma; del mismo modo, añade las vistas
que el usuario necesite para interaccionar con cualquier sistema de control de versiones que
se esté usando. Tal y como se ha mencionado ya, Eclipse incluye de forma estándar un
plug-in CVS, pero pueden añadirse otros repositorys, independientemente del VCM
interrupción, acciones habituales de depuración, etc., junto a una interfaz gráfica genérica
- 151 -
Se debe mencionar que Platform runtime no es un plug-in; los otros cinco componentes son
misma manera que cualquiera de los plug-ins que incluye de forma estándar. El Workbench
usados por casi todos los plug-ins, pero su funcionamiento no difiere del de otros plug-ins.
La estructura del IDE de Eclipse está compuesta por la Máquina Virtual de Java y el SDK o
• La Plataforma de Eclipse
a. La Plataforma de Eclipse
arquitectura abierta, por tanto es un producto de código fuente abierto u open source, está
escrita en Java.
Provee a las capas superiores de servicios tales como editor de código fuente,
3.3.1.5.Características
• Editor de texto
• Resaltado de sintaxis
• Refactorización
El IDE Eclipse es, únicamente, una de las herramientas que se engloba bajo el denominado
Proyecto Eclipse. El Proyecto Eclipse aún tanto el desarrollo del IDE Eclipse como de
algunos de los plug-ins mas importantes (como el JDT, plug-in para el lenguaje Java, o el
Este proyecto también alcanza a las librerías que sirven como base para la construcción del
IDE Eclipse (pero se puede utilizar de forma completamente independiente), como por
integrada.
o Eclipse Visual Editor (VE): se crea constructores de GUIs para Eclipse, utilizando
herramientas de desarrollo web (editores, modelos, wizards, etc.), por ejemplo Web
Standard Tools (WST), J2EE Standard Tools (JST), JavaServer Faces Tools (JSF),
etc.
g. Etc.
b. JDT (Java Development Tools). Aquí se centra el interés inmediato, ya que se orienta a
desarrollador de plug-ins.
El entorno de desarrollo Eclipse, incluyendo sus plug-ins, está desarrollado por completo
son demasiado “pesadas”. Es decir, necesitan una máquina muy potente para poder
Swing es una librería de widgets portable a cualquier plataforma que disponga de una
máquina virtual Java pero a costa de no aprovechar las capacidades nativas del sistema
donde se ejecuta, lo cual supone una ejecución sensiblemente más lenta que la de las
aplicaciones nativas.
SWT es una librería de widgets equivalente a Swing en la cual, se aprovechan los widgets
nativos del sistema sobre el que se ejecuta. El hecho de aprovechar los widgets nativos,
permite que la ejecución de interfaces de usuario sea mucho más rápida y fluida que si se
utilizase Swing y, además, siempre dispone del “Look and Feel” del sistema, sin necesidad
de “emularlo”.
3.3.2. Netbeans
3.3.2.1. Introducción
Históricamente NetBeans es uno de los primeros IDEs que aparecieron para Java, y el
primero de importancia que estaba escrito íntegramente en Java. Sin embargo una
- 157 -
compañía Checa estaba a punto de dar el gran salto con un IDE poco conocido (si se
Sun Microsystems adquirió la compañía checa y designó a NetBeans como el IDE oficial
para desarrollos Java, lo hizo gratuito y abrió su código. Sun sabía que si quería popularizar
fuese gratuita, y lógicamente, ésta tenía que estar desarrollada utilizando el propio Java
Este IDE tenía la ventaja de que fue creado por las mismas personas que crearon Java años
antes y después de varios años de desarrollo ha llegado a ser tan útil y poderoso como
NetBeans es un entorno de desarrollo integrado (IDE por sus siglas en inglés). Esto quiere
decir que integra todas las herramientas que necesitamos para poder desarrollar.
Originalmente la programación en Java era algo complicada porque Java cuenta con una
enorme cantidad de librearías y funciones que era preciso aprenderse de memoria, viendo
3.3.2.2. Definición
NetBeans IDE es una aplicación de código abierto pensada para escribir, compilar, depurar
plataforma NetBeans, con una serie de módulos específicos para un IDE. Tiene soporte
para crear interfaces gráficas de forma visual, crear aplicaciones para móviles, desarrollar
paquetes adicionales. NetBeans IDE se conoce como la solución más completa para
programar en Java.
escritura de aplicaciones Java, proporcionando una serie de servicios comunes, que a su vez
3.3.2.3.Características
Entre las características que incluye este IDE tenemos las siguientes:
• Soporta el desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y
aplicaciones móviles).
• Incluyen soporte total para las nuevas tecnologías de sobremesa, como Beans Binding
existente.
• Historia local.
• Acelera el desarrollo.
Las nuevas versiones del IDE Netbeans incluye mejoras que se detallaremos a
continuación:
PHP
JavaScript y Ajax
• Editor JavaScript
- 160 -
• Mejoras en el soporte de Spring, Hibernate, JSF, generador de CRUD JSF, JPA (Java
Persistence API)
• Generador de Web Services a partir de tablas de una base de datos o de entidades JPA
más)
Groovy y Grails
Java SE
Ruby y Rails
• Nueva interfaz del Test Runner para mostrar los resultados de las pruebas
C / C++
• Desarrollo remoto
Java ME
JMUnit 1.1.0
Java Debugger
Java SE
• Analizador de Javadoc
- 162 -
• El Swing UI Builder puede generar nombres de clases simples (en vez de nombres
completos)
• Un único shortcut de Búsqueda Rápida para las acciones del IDE, archivos, opciones y
documentos
Existen cuatro tipos de proyectos que se puede comenzar a crear en las versiones actuales
• Module
• Module Suite
Module (Módulo)
Un módulo es simplemente un típico JAR (Java ARchive) con cierta meta información
descripción de funcionalidad, datos del autor, etc. Un módulo puede ser usado en cualquier
proyecto desarrollado sobre NetBeans Platform (siempre que se cumplan las restricciones
Un Library Wrapper Module permite que una librería externa (.JAR) sea vista desde los
otros módulos como un módulo estándar. Básicamente se comporta igual que un Module,
envuelta.
Tanto a los Module como a los Library Wrapper Module se los denomina de forma
aplicación. Por defecto, un Module Suite trae habilitados todos los módulos que conforman
El trabajo consistirá en deshabilitar los módulos que no se utilice y agregar los nuevos
Básicamente también crea un Module Suite, pero por defecto viene configurado con la
De forma contraria a un Module Suite, el trabajo consistirá en habilitar los módulos que se
vaya requiriendo para que los módulos (ya sean Modules o Library Wrapper Module)
A continuación se mostrará los pasos correctos que se deben seguir para el proceso de
a. Crear el proyecto
f. Distribuir.
3.3.2.6. Ventajas
Entre las principales ventajas que se puede tener están las siguientes:
• La plataforma Netbeans RCP puede ser usada para desarrollar cualquier tipo de
• Reutilización de módulos
• Usando el Update Center module, se puede actualizar los módulos existentes de una
• Los módulos permiten a las aplicaciones una abstracción muy alta y transparencia.
Los siguientes son módulos que forman parte de la base Netbeans IDE.
• Profiler de NetBeans
Es una herramienta para la optimización de los usos de Java: ayuda a encontrar los
Profiler se basa en un proyecto de investigación de los laboratorios del sol que fue
nombrado JFluid. Esa investigación destapó las técnicas específicas que se pueden
utilizar para bajar los gastos indirectos de perfilar un uso de Java. Una de esas técnicas
de NetBeans puede obtener la información runtime sobre los usos que son demasiados
grandes o complejo para otros profilers. NetBeans también apoya perfilar los puntos
medida.
El constructor del GUI tiene también ayuda incorporada para JSR 296 (Marco del uso
o El refactoring
b. Redactor de CSS:
o Clasifique la opinión del contorno orden por nombre, del tipo o del declaración
(lista y el árbol)
Los usuarios pueden elegir instalar los paquetes de NetBeans IDE al instalar el IDE, en una
Es una herramienta para desarrollar los usos que funcionan en los dispositivos móviles;
los teléfonos generalmente móviles, pero éste también incluye el entrada-nivel PDAs,
entre otros.
El paquete de la movilidad se puede utilizar para escribir, para probar, y para eliminar
errores de los usos para: Edición micro de Java la plataforma (Java YO plataforma)
tecnología que permitió los dispositivos móviles. Integra la ayuda para Perfil móvil del
robusto. Actualmente, el paquete está disponible como dos racimos separados, una
Agrega la ayuda para los reveladores de C/C++ a NetBeans IDE 5.5. Este paquete deja
herramientas conjuntamente con NetBeans IDE para construir los usos nativos para
El paquete hace a redactor lengua-enterado para C/C++, y proporciona las plantillas del
Amplía la ayuda para el desarrollo del uso de la empresa y servicios del Web en
El paquete de la empresa amplía las capacidades del IDE para escribir, para probar y
visuales para UML que modela, esquema de XML, y orchestration de los servicios de
de la gerencia del motor y de la identidad de BPEL integrado con el servidor del uso
crear UIs rico para el desarrollo de la tela. Estos componentes se basan encendido JSF
y ayuda en el desarrollo fácil para los interfaces utilizador. Este paquete visual de la
tela se considera ser mucho mejor y versión mejorada con muchos de buenas
Desde la versión 6.0, Netbeans permite el desarrollo del IDE con Rubí y JRuby, así
o El corregir básico,
o Cifra la terminación
o El destacar de la ocurrencia,
o La documentación integrada hacer estallar-sube para las llamadas del API del rubí,
3.3.3.1. Introducción
La primera versión de IntelliJ IDEA apareció en enero de 2001, y en ese momento era el
3.3.3.2. Definición
IntelliJ IDEA se autodefine como un entorno inteligente para desarrollar aplicaciones Java,
IntelliJ IDEA posee un avanzado editor de código, compatible con multitud de tecnologías
(AJAX, JSP, EJB…) y, dentro de un mismo entorno, ofrece análisis del código,
3.3.3.3. Características
• Contrato Anotaciones
• Análisis de dependencia.
3.3.3.4. Ventajas
rutina.
problema.
• Las pistas y los errores se fija en todos los niveles - desde las declaraciones a la general
arquitectura.
continua.
- 174 -
• Nuevo soporte para SQL, que permite editar guiones de base de datos y ejecutar
versiones
3.3.3.5. Función
muchas inspecciones de código nuevas, nuevas herramientas para trabajar con pruebas de
unidades, funciones innovadoras tales como una finalización de códigos aún más
pues son los que permiten valorar en este caso el IDE más adecuado o idóneo que se puede
por ser los que más se adaptan a las características y funcionalidades de los IDE’s
En el presente parámetro trata sobre las características que se puede tener en GWT para el
acceso a la base de datos, las mismas que se pueden evaluar dependiendo de las utilidades y
formas que se tengan para realizar esta tarea, además de la compatibilidad del driver con el
una aplicación web realizada con GWT, evaluando los tiempos de respuesta que se demora
Este parámetro es el que permitirá saber la facilidad que se tiene en GWT para el desarrollo
de la Interfaz Gráfica de Usuario (GUI) y la reusabilidad que pueda tener la misma dentro
de la aplicación.
desarrollo de una aplicación web, basándose en los protocolos de seguridad que soportan, el
encapsulamiento del código puro de java, el encapsulamiento del código HTML, así como,
la consistencia de las claves para el ingreso al sistema para al final saber si ofrece la
- 176 -
confidencialidad y disponibilidad.
tenga GWT con los distintos entornos de desarrollo integrados (IDE). En relación a
GWT así como los respectivos proyectos realizados, y que IDE se ha usado para el
• Utilización de RPC
• Menor coste
• Números de Protocolos
• Licencias
Desarrollo (IDE) Eclipse, Netbeans, y INTELLIJ IDEA los cuales se usan para desarrollar
comparativos en los se va a determinar las variables de cada uno de los parámetros tomados
- 178 -
Para obtener resultados cuantitativos y cualitativos que permitan una selección adecuada de
uno de los IDE’s analizados para trabajar con GWT se realizará la calificación de cada uno
< 70% >= 70% y <80% >= 80% y <90% >= 90%
La siguiente tabla permitirá saber la valoración cuantitativa para de las variables de los
parámetros seleccionados:
Donde cada una de las variables va a ser evaluada sobre el máximo que es 3 y cada uno de
obtiene sumando los puntajes obtenidos del análisis, utilizando las siguientes formulas:
En donde:
parámetro
- 180 -
a. Utilización de RPC
3.6.1.2. Valoraciones
de desarrollo GWT es uno de los factores más importantes si se trata de extraer datos de la
base, con esta variable se evaluará si el IDE soporta o no el RPC y el grado de complejidad
El presente indicador evaluará la cantidad de plug-in que necesita GWT para poder trabajar
El grado de dificultad que se pueda tener para poder acceder a la base de datos es una
variable muy importante para el desarrollo de una aplicación web empresarial, pues es la
que nos indicará si se puede o no trabajar con la base usando GWT definiendo así su
usabilidad.
- 181 -
Este indicador permitirá saber el número de pasos mínimos que se requiere para acceder a
la base usando GWT, basándose en uno de los IDE que se ha seleccionado para el análisis
comparativo.
3.6.1.3. Interpretación
cualquier aplicación sea esta de escritorio o web, por lo que se puede decir que tanto
eclipse como netbeans tienen la utilización adecuada para RPC usando GWT, mientras
que cuando se usa IntelliJ IDEA con GWT el RPC es poco eficiente. (3,3,2)/3
• El número de plug-in que se pueden usar para el acceso a la base de datos en cada uno
aplicación, pues de ellos depende que la aplicación sea rápida o no sabiendo que
mientras menos plug-in se tenga más eficiente es la aplicación. Por tanto, eclipse
emplea los plug-in necesarios para la realización de una aplicación mientras que los
- 182 -
• En lo que see refiere al grado de dificultad que se puede tener para el acceso a la base
usando GWT tenemos que todos los IDE’s tienen el mismo grado, es decir, que resulta
teniendo instalada
ada la plataforma GWT, los IDE’s netbeans e Intellij IDEA no usan la
misma cantidad de pasos por lo que ahorran tiempo, mientras que eclipse si usa una
3.6.1.4.Calificación
Pc = ∑(w) = 3+3+3+3 = 12
PEcli = ∑(z) = 3+2+3+2 = 10 Cc – Ecli: PEcli / Pc = (10/12)*100%
)*100% = 83,33%
83,33
PNetb = ∑(x) = 3+3+3+1
+3+3+1 = 10 Cc – Netb: Pnetb / Pc = (10/12)*100%
*100% = 883.33%
PIntel = ∑(y) = 2+3+3+1 = 9 Cc – Intel: PIntel / Pc = (9/12)*100%
)*100% = 75%
80%
78%
76%
74% 75%
72%
70%
Eclipse Netbeans Intellij IDEA
Herramienta
3.6.2.1.Determinación de Variables
3.6.2.2. Valoraciones
Este indicador permitirá evaluar la cantidad de líneas de código que se llevan para realizar
un determinado proceso en el GWT con la finalidad de establecer el IDE que menos líneas
La variable tiempo mínimo de depuración permitirá saber cuál de los IDEs seleccionados
para el análisis nos dará el menor tiempo para mejorar la aplicación web usando la
En esta variable se indicará la capacidad que se puede tener en cada IDE usando GWT para
Esta variable evaluará el nivel de confiablidad que se pueda tener para poder depurar un
sirviendo así de apoyo para el programador para que de esta manera el usuario llegue al
3.6.2.3. Interpretación
• El número mínimo de líneas de código que se puede tener en una aplicación quiere
decir que será muy eficiente, por lo que después de haberse realizado la respectiva
analizados para el uso de GWT el netbeans es el que menos líneas utiliza obteniendo
• En lo que se refiere al tiempo de depuración que se puede tardar cada IDE mientras
utilizad GWT, se ve claramente como eclipse es que menos tiempo utiliza en relación
con los demás IDE’s por los que se les da la siguiente calificación (3,2,2)/3
• Para un desarrollador una de las cosas importantes que debe considerar es que para
detectar errores lo primordial sería que esta detección sea lo más eficiente posible, y en
cuanto al uso de la plataforma GWT con un determinado IDE que se tiene para el
análisis podemos ver que eclipse ofrece mejores prestaciones para esta variable
(3,2,2)/3
- 185 -
el mismo peso y eclipse sigue siendo eficiente y junto a netbeans llevan la ventaja
3.6.2.4. Calificación
Pc = ∑(w) = 3+3+3+3= 12
PEcli = ∑(z) = 2+3+3+3= 11 Cc – Ecli: PEcli / Pc = (11/12)*100%
2)*100% = 91,67%
91,67
PNetb = ∑(x) = 3+2+2+3 = 10 Cc – Netb: Pnetb / Pc = (10/12)*100%
*100% = 83,33
83,33%
PIntel = ∑(y) = 2+2+2+2 = 8 Cc – Intel: PIntel / Pc = (8/12)*100%
)*100% = 66,67%
Compilación
100%
80% 91,67%
Calificación
83,33%
60%
66,67%
40%
20%
0%
Eclipse Netbeans Intellij IDEA
Herramienta
Gráfico
co III.10:
III.10 Comparación Estadística
a del parámetro de la Compilación
3.6.3.1.Determinación
Determinación de Variables
c. Coste
- 186 -
3.6.3.2. Valoraciones
Con este indicador se valorará si cuando se usa GWT el IDE es capaz de generar el
diseñador gráfico para de esta manera facilitar al usuario la tarea de poder diseñar y
programar su aplicación.
Este indicador permitirá saber si con el uso de GWT se puede o no generar lo métodos set y
get los cuales nos permitirán darle valor a cualquier variable y de la misma manera
permitirá obtener el valor de la variable que necesitamos con la ayuda del método get.
que esta nos puede representar, con este indicador se dará una visión más exacta sobre cuál
de los IDE’s seleccionados representa un menor coste para poder usar GWT con un GUI,
Este indicador evaluará los aspectos de reutilización de componentes gráficos que pueda
tener con GWT en un IDE, teniendo en cuenta que GWT usa los widget primitivos lo que
compilación.
- 187 -
3.6.3.3. Interpretación
ninguno de los IDE’s analizados un diseñador visual para GUI gratis, por lo que van a
resusltar muy importantes y más si se trata analizar el uso de la plataforma GWT, por
ello se ve que tanto eclipse como Netbeans cumplen con esta característica mientras
• En relación al coste se puede decir que si bien es cierto GWT no tiene ningún valor.es
importante que el IDE ene el que se ,o va a istalar o usar tampoco lo tenga, por tanto,
se ve en la tabla que tanto eclipse como Netbeans son gratuitos, cosa que no ocurre con
Intellij IDEA que es licenciado teniendo obiamente un puntaje menor al los demás
(3,3,1)/3
un diseño de interfaz mucho más rápido y agradable, por lo que eclipse permite hacer
- 188 -
esta tarea gracias al uso de widget primitivos, y los otros dos IDE’s tratan pero no
3.6.3.4. Calificación
Pc = ∑(w) = 3+3+3+3 = 12
PEcli = ∑(x) = 1+3+3+3
+3 = 10 Cc – Ecli: PEcli / Pc = (10/12)*100% = 83,33%
83,33
PNetb = ∑(y) = 1+3+3+2 = 9 Cc – Netb: PNetb / Pc = (9/12)*100%
*100% = 75
75%
PIntel = ∑(z) = 1+1+1+1 = 4 Cc – Intel: PIntel / Pc = (4/12)*100%
)*100% = 33,33%
83,33%
60% 75%
40%
20% 33,33%
0%
Eclipse Netbeans Intellij IDEA
Herramientas
3.6.4.1.Determinación
Determinación de Variables
b. Encapsulamiento
ncapsulamiento de la página html
c. Número de protocolos
3.6.4.2. Valoraciones
Mediante este indicador se evaluará la capacidad que pueda tener GWT en un IDE para
Mediante esta variable se valorará la capacidad que pueda tener GWT en un IDE para
Este indicador nos permitirá evaluar los protocolos más seguros que podemos encontrar en
Con esa variable consistencia de las claves para el acceso al sistema, GWT se asegura que
los datos ingresados para inicio de sesión sean los correctos y concuerden con los que se
3.6.4.3. Interpretación
• Con respecto con el encapsulamiento del código Java o código fuente que ofrece GWT
en cada uno de los IDE’s analizados se puede decir que en todos cumple a cabalidad
• Igual que el encapsulamiento anterior GWT también ofrece esta seguridad al esconder
la programación del código HTML sin importar el IDE que se use, tal como se lo
• El número de protocolos que usa GWT es el mismo para cualquier IDE que se use,
ocupando siempre los necesarios por tanto llegana una puntuación de igualdad.
(3,3,3)/3
• En lo que se refiere a la consistencia que se debe tener con las claves de ingreso al
sistema, GWT ofrece la posibilidad de validar los datos ingresados por el usuario
obteniendo resultados esperados, y en la tabla se puede observar que en los IDE que se
3.6.4.4. Calificación
Seguridad
120%
100%
Calificación 80% 100% 100% 100%
60%
40%
20%
0%
Eclipse Netbeans Intellij IDEA
Herramientas
Gráfico III.12:
III.12 Comparación estadística del parámetro de la seguridad
3.6.5.1.Determinación
Determinación de Variables
c. Licencias
3.6.5.2. Valoraciones
GWT para ser usado en cualquier IDE principalmente los que se tomarán en cuenta para el
análisis.
que contienen información necesaria para su realización, por esta razón se evaluará la
- 192 -
por la web.
c. Variable Licencias
Este indicador evaluará que la licencia de GWT con las que gozan cada uno de los entornos
de desarrollo integrado (IDE) que se van a comparar sean código libre tomando en cuenta
3.6.5.3. Interpretación
• En lo relacionado a la ayuda en línea que brinda GWT con respecto alos IDE’s
analizados, tenemos que según la web eclipse goza en su plenitud de esto, pues toda la
información se habla con eclipse, un poco con netbeans y nada con el Intellij IDEA.
(3,2,1)/3
GWT relacionado con los tres eclipse que estamos comparando, tenemos que eclipse
sigue estando en la cima lo que quiere decir, que todo gira en torno a este IDE,
mientras que un poco parte se relaciona con netbeans y nada con Intellij IDEA
(3.2.1)/3
- 193 -
• La licencia que pueda tener un IDE es muy importante en especial si se trata de trabajar
netbeans se encuentran
ncuentran con la misma puntuación mientras que el tercer IDE no tiene
puntuación
ón por ser licenciado. (3,3,1)/3
3.6.5.4. Calificación
Pc = ∑(w) = 3+3+3 = 9
PEcli = ∑(x) = 3+3+3 = 9 Cc – Ecli: PEcli / Pc = (9/9)*100%
)*100% = 100%
PNetb = ∑(y) = 2+2+3 = 7 Cc – Netb: PNetb / Pc = (7/9)*100%
*100% = 77,78
77,78%
PIntel = ∑(z) = 1+1+1 = 3 Cc – Intel: PIntel / Pc = (3/9)*100%
)*100% = 33,33%
80
60 77,78
40
20 33,33
0
Eclipse Netbeans Intellij IDEA
Herramienta
Gráfico III.13:: Comparación estadística del parámetro Soporte Técnico con GWT
Los puntajes finales y el porcentaje que se han obtenido una vez que se ha analizado la
Menor coste.
coste 3 3 1
Reutilización de
3 2 1
componentes gráficos.
gráficos
Encapsulamiento del código
3 3 3
JAVA
JAVA.
Encapsulamiento de la
3 3 3
Seguridad página HTML.
HTML
Número de Protocolos.
Protocolos 3 3 3
Consistencia de las claves
3 3 3
para el acceso al sistema.
sistema
Ayuda en línea del sitio
Soporte 3 2 1
oficial de GWT.
GWT
Técnico de
Páginas de ayuda de GWT
GWT. 3 2 1
GWT
Licencias
Licencias. 3 3 1
TOTALES 52 4
48 36
100% IDE
80%
Calificación
60% Eclipse
40%
Netbeans
20%
0% Intellij IDEA
PT = 12+12+12+12+9 = 57
PTEcli = 10+11+10+12+9 = 52
PTNetb = 10+10+9+12+7= 48
PTIntel = 9+8+4+12+3 = 36
3.8.Interpretación
parámetros con sus variables, se ha determinado que para el uso de la plataforma GWT el
IDE eclipse es el que tiene una máxima calificación del 91.22% correspondiente a
excelente por lo que se determina que es el entorno más adecuado para desarrollar la
aplicación web usando GWT, mientras que el IDE Netbeans obtuvo una calificación de
84.21% que es muy bueno y el INTELLIJ IDEA del 63.17% equivalente a regular.
• Los IDE’s Eclipse y el Netbeans han demostrado ser los más idóneos en los que se
refiere al acceso de base de datos usando la plataforma RIA GWT, ya que según el
análisis realizado son los que más puntajes han alcanzado quedando el Intellij IDEA en
último lugar que puede ser por el motivo de ser licenciado o pagado.
• Para poder usar la plataforma RIA GWT en un IDE determinado el número de plug-in
que se usa debe ser lo más mínimo posible para que la aplicación sea muy eficiente, es
- 197 -
por esto que eclipse mantiene la ventaja sobre los demás IDE’s analizados pues aquí
solo se añaden los plug-in que se requieren haciendo que la aplicación web sea más
• En lo que se refiere a la compilación que realiza cada IDE se observa que cuando se
compila una aplicación web usando la plataforma RIA GWT Eclipse resulta más
conveniente que los demás IDE por tener menos tiempos de respuestas, dando al
eficiente en eclipse pues se lo puede localizar de una manera muy fácil gracias a la
• En lo que se refiere al uso de una Interfaz Gráfica de Usuario mientras se trabaja con
GWT, es difícil pues, esta plataforma no permite tal opción en ninguno de los IDE’s
que se tenga para el desarrollo, sin embargo, existen diseñadores gráficos que permiten
trabajar con ello, con la única desventaja que tiene un costo medio elevado y solo
trabajan con el IDE eclipse, por tanto en este parámetro se claramente la ventaja de este
• El coste que ofrece GWT como plataforma es gratuito pero a nivel del compilador ya
tiene costo por eso es importante poder contar con un IDE que sea open source,
• La seguridad que brinda GWT es muy grande y robusta pues ofrece la protección
confidencialidad y disponibilidad.
• Cuando se habla de la consistencia que debe tener una aplicación web por lo general se
refiere a que los datos ingresados desde el sistema sean los mismos que se encuentran
en la base para que el inicio de sesión sea todo un éxito y esto es lo que nos
proporciona GWT sin importar el IDE que se esté usando gracias a la utilidad que
• En cuanto al soporte técnico que GWT pueda poseer para ser usado en cualquier IDE
es muy importante para completar el desarrollo de una aplicación web por que una vez
investigado en la web se tiene que toda la información que se podría necesitar para
• La licencia es otro de los factores importantes que se debe considerar para el desarrollo
de una aplicación web y en particular para una empresa estatal en donde se trabajan
actualmente con licencias Open Source, por tanto, GWT junto a eclipse brinda la
económico.
• La flexibilidad que brinda GWT para ser usado en un determinado IDE es una gran
ventaja para los programadores pues permite, adaptar módulos de otros proyectos
desarrollados en un IDE distinto y así lograr con esto una aplicación mucho más
completa y modular.
- 199 -
3.10. Conclusión
todos los parámetros con sus respectivas variables, se puede concluir que para usar la
plataforma RIA GWT con todas sus ventajas y desventajas es el IDE Eclipse con una
puntuación de 91.22% que fue el mayor promedio con respecto a Netbeans con 84.21% y
IntelliJ con 63.15%, es decir, brindando las mejores prestaciones, por tanto, es el entorno de
probar que con el uso de la tecnología RIA GWT se reducirá el tiempo en el flujo de trabajo
de Esmeraldas.
REE sin el uso de la aplicación web, así como también, los que se podrían dar usando la
aplicación web para dicho departamento, las variables que se habló anteriormente se
Estadísticas.
- 200 -
Cabe recalcar que en este parámetro a más de considerar el tiempo que se lleva en sacar los
datos solicitados se debe considerar también el tiempo con el que cuenta la señora
encargada de las nóminas. Además, los módulos que se va a tomar en cuenta para
determinar los tiempos de respuesta sin la plataforma GWT son: el Módulo de Consultas
recursos humanos de la REE, las mismas que comprenden las siguientes consultas:
La señora encargada de las nóminas es la encargada de realizar este trabajo, para ello
tiene que realizar muchos procesos como es ir otra librería, en la cual se encuentra las
segundos.
Para sacar los resultados de esta consulta es necesario que el empleado encargado haga
una consulta para cada uno de los empleados que requieran esta información, para lo
cual necesita hacer una combinación de dos tablas como son la de histórico de
- 201 -
Esta es una de las consultas que más tiempo se demora por empleado, pues para sacar
los datos solicitados se necesita realizar una combinación de varias tablas entre ellas
tenemos: la de los datos personales del empleado, el distributivo, el del estado, entre
El proceso de esta consulta es muy exhaustivo, pues se debe primero ingresar la fecha
de la evaluación en la que se contemplan el año y semestre, para luego arrojar los datos
del empleado que le realizó la respectiva evaluación, así como también todos los
900 minutos
Esta consulta se refiere al valor que le corresponde a cada uno de los empleados en el
Para sacar los datos de esta consulta es necesario ingresar a dos tablas las cuales son la
refleja los días que le quedan de vacaciones al empleado, así como también, los días
Gráfico III.15:
III.1 Módulos de las Consultas Generales sin RIA-GWT
RIA
- 203 -
de los empleados solicitaba el año y trimestre para buscar en las tablas correspondientes
de la base de datos y luego ser emitir el resultado al empleado que lo solicito, el tiempo
académicos de los empleados debe realizar una consulta en la base de datos con los
datos de primario, secundario y universitario para que el sistema arroje los valores en
- 204 -
En esta actividad la autorizada de la Nómina pregunta sobre que profesiones desea que
emita la información, según los datos que solicite el empleado, la persona autorizada
segundos.
lo está solicitando, trabajadores que ingresaron en una fecha determinada para realizar
Dentro de las consultas generales que se va a resolver con la aplicación web y que va a
servir para comprobar la hipótesis planteada en esta investigación tenemos los siguientes:
Para devolver los datos solicitados el empleado solo debe escoger esta opción que se
encuentra dentro del menú consultas encontrando con ello la asistencia que ha tenido
- 206 -
segundos.
En la consulta de los cursos recibidos por cada empleado, se tiene que se puede acceder
aproximadamente.
Esta consulta al igual que las anteriores solo se demora un tiempo de 3 segundos
Los datos personales que antes eran muy complicado resolverlo, ahora se puede notar
que con la aplicación web desarrollada con la plataforma GWT resulta muy sencillo,
pues solo basta con seleccionar esta opción y esperar unos 3 segundos aproximados
consultar y luego de ello, solo basta esperar unos 3 segundos aproximadamente para
Para obtener esta información solo basta con seleccionar esta opción en el menú de
consultas, y solo tocará esperar 3 segundos aproximadamente para ver los resultados.
- 207 -
Esta consulta antes de tener esta aplicación era un poco difícil obtenerla pero ahora
solo basta con seleccionar esta opción en el menú consultas y esperar unos 3 segundos
aproximadamente.
3,5
Consultas de asistencia de los
empleados.
3 Consultas de los cursos recibidos por los
Tiempo de respuesta en segundos
Gráfico III.17:
III.1 Módulos de las Consultas Generales con RIA-GWT
RIA
mediante barras estadísticas y valores numéricos, que lo pueden solicitar los empleados que
- 208 -
respuesta de 3 segundos.
REE y además el número de trabajadores que fueron asignados a las diferentes áreas de
segundos.
Se obtendrá la información de esta actividad con tan solo que el empleado autorizado
el uso de dicha plataforma para luego sacar conclusiones que nos servirán para demostrar la
veracidad o no de la hipótesis, las fórmulas que se van a emplear son las siguientes:
Los aspectos que aquí se va a considerar tanto sin el uso de RIA-GWT como con el uso de
PT = ∑ (PSinGWT + PConGWT)
PT = 640 + 3
PT = 643
PT = ∑ (PSinGWT + PConGWT)
PT = 540 + 3
PT = 543
PT = ∑ (PSinGWT + PConGWT)
PT = 300 + 3
PT = 303
PT = ∑ (PSinGWT + PConGWT)
PT = 840 + 3
PT = 843
PT = ∑ (PSinGWT + PConGWT)
PT = 900 + 3
- 213 -
PT = 903
PT = ∑ (PSinGWT + PConGWT)
PT = 300 + 3
PT = 303
PT = ∑ (PSinGWT + PConGWT)
PT = 600 + 3
PT = 603
PT = ∑ (PSinGWT + PConGWT)
PT = 780 + 3
PT = 783
PT = ∑ (PSinGWT + PConGWT)
PT = 900 + 5
PT = 905
PT = ∑ (PSinGWT + PConGWT)
PT = 300 + 3
PT = 303
PT = ∑ (PSinGWT + PConGWT)
PT = 600 + 3
PT = 603
PT = ∑ (PSinGWT + PConGWT)
PT = 1200 + 3
PT = 1203
PT = ∑ (PSinGWT + PConGWT)
PT = 900 + 5
PT = 905
- 218 -
PT = ∑ (PSinGWT + PConGWT)
PT = 1500 + 3
PT = 1503
generales:
• Para realizar las consultas de los cursos recibidos por parte de los empleados, se ha
visto que usando RIA-GWT se pudo ahorrar 98.9% del tiempo del empleado
• En lo referente a las consultas de los datos de los familiares se puede ver claramente
un tiempo de 99,28%.
• El desempeño laboral usando GWT ha resultado mucho más fácil sabiendo que el
• Para la consulta del historial financiero también se puede concluir que se ha podido
• El récord académico igual que los casos anteriores se ha podido reducir su tiempo, en
un 99%.
- 220 -
• Finalmente, se puede observar cómo se reduce el tiempo para la consulta del saldo
vacacional el mismo que con el uso de la aplicación web se consigue un ahorro del
99.22%.
• Con respecto al desempeño de los empleados los resultados de los tiempos Sin RIA
además realizar su trabajo es decir que esto le implica tiempo; y Con RIA GWT es de 5
con la hipótesis.
Sin RIA GWT que es de 300 segundos equivalente al 99% y Con RIA GWT de 3
segundos correspondiente al 1%, es decir, se demora más tiempo con el sistema AS400
correspondiente a la REE a los empleados y además tiene sus propias tareas que realizar
por este motivo se tarda en entregar la información, por lo tanto, se reduce el tiempo en
un 98%.
- 221 -
• El resultado de la actividad del número de empleados con niel académico arroja los
siguientes datos, Sin RIA GWT un tiempo de 600 segundos correspondiente al 99.50%,
tienen acceso a la información de la base de datos de REE, y Con RIA GWT un tiempo
permisos podrá acceder que son las personas que necesitan la información y se obtendrá
hipótesis.
empresa es Sin RIA GWT de 1200 segundos equivalente a un 99.75% y Con RIA GWT
instantes mientras que con el sistema AS400 tarda en recibir la información porque lo
el mes se analizaron los datos Sin RIA GWT y Con RIA GWT y dio como resultado un
GWT necesita más tiempo ya que se utiliza el sistema AS400 que es manejado por el
personal de Nómina, el mismo que no tiene solo esa tarea sino su propio trabajo, es
áreas de trabajo en la empresa arrojo los siguientes datos, Sin RIA GWT un tiempo de
Nómina en entregar la información al empleado solicitante, ya que tiene que realizar las
consultas correspondientes en el sistema AS400 para obtener los datos y Con RIA
3.11.6. Conclusión
hipótesis analizando proceso por proceso se puede concluir que efectivamente con el
el flujo de trabajo en lo concerniente a los procesos que realiza día a día los empleados de
dicha entidad, permitiendo al encargado de las nóminas poder realizar su trabajo que en la
4.1. Introducción
Una propuesta metodológica para el desarrollo de una aplicación web usando GWT es de
suma importancia para un programador que va a empezar a trabajar con dicha plataforma,
pues con ella se va a guiar para establecer luego las fases del proyecto. Para alcanzar todo
FODA.
Conocido originalmente con el método “OPEDEPO PF”, es un acróstico para identificar las
Las siglas originales eran demasiado complejas por lo que con posterioridad resultó más
Amenazas), una propuesta metodología con el fin de determinar las ventajas y desventajas
que los desarrolladores de aplicaciones web pueden tener al usar la plataforma RIA GWT.
Amenazas reveladas por la información obtenida del contexto externo que pueda tener
El análisis FODA permite llevar a cabo una serie de estrategias de acuerdo con la
importancia de cada uno de los factores internos y externos, así como ordenarlas de acuerdo
desarrollo GWT, mientras que las Oportunidades y Amenazas son factores externos sobre
los cuales la plataforma GWT no tiene control alguno. Por tanto, deben analizarse las
a. Fortalezas.
b. Oportunidades.
c. Amenazas.
d. Debilidades.
Al detectar primero las amenazas que las debilidades, la plataforma tendrá que poner
amenazas, la plataforma aprovechará de una manera más integral tanto sus fortalezas como
sus oportunidades.
- 226 -
proveniente de otras plataformas que se dedican a la misma actividad. Además requiere del
análisis de los diferentes elementos que forman parte del funcionamiento interno de GWT y
que puedan tener implicaciones en su desarrollo, como pueden ser las ventajas y
En este diagnóstico se evalúa los dos tipos de análisis que se puede tener en el método
FODA para la metodología que se va a plantear, estos análisis son internos y externos, los
Amenazas
Análisis
Externo
Oportunidades
Debilidades Análisis de
Análisis Recursos y
Interno Capacidades
Fortalezas
Para cumplir con uno de los objetivos del presente trabajo investigativo el cual trata de
plataforma GWT, los autores han considerado utilizar la metodología FODA aunque es
usada generalmente en las empresas para prevenir los factores que hacen que la misma
decaiga y sacarla adelante, de ahí, el trabajo de los autores en adaptarlo al cumplimiento del
http://www.scribd.com/doc/32395653/LFC35-Anex-O1-Conceptos-de-Metodologia-FODA,
la cual propone muchas fases, las mismas que han sido resumidas de acuerdo a nuestro
En este apartado se describirá una propuesta metodología para llevar a cabo el FODA para
GWT, la cual contempla las siguientes etapas como se muestra en el siguiente gráfico:
Análisis Estratégico
Interpretación de resultados
En esta fase se va a realizar un análisis de los factores internos y externos que comprende la
y amenazas de la misma.
Aquí se medirá cada uno de los criterios de valoración mediante una matriz de
Al final se elaborará una matriz modificada en la que solo se tomará en cuenta los puntos en
los que más interés hay que poner para que la plataforma GWT surja y sea compacta
En este punto se va a determinar la importancia relativa que van a tener las estrategias
Finalmente se dará un criterio sobre todos los resultados obtenidos en las tablas de la
desarrollo RIA-GWT.
4.6.2.1.1. Fortalezas
Es una posición favorable que posee la plataforma RIA GWT, es decir, van a ser todas las
ventajas que ésta posea en relación con las demás plataformas que realizan la misma
función, las cuales, van a servir para responder eficazmente ante una oportunidad o ante
una amenaza que pueda tener en el transcurso de la aplicación web. Entre las principales
fortalezas que cuenta la plataforma de desarrollo RIA GWT y que son de mucha ayuda para
aplicación web.
- 230 -
navegador y por lo tanto son menos probables que sea dañada como las aplicaciones
• F5: Más respuesta.- Porque no todas las acciones de los usuarios requieren
comunicación con el servidor, las RIA tienden a ser más sensibles que las aplicaciones
web clásicas.
• F6: Más escalable.- Una gran parte del trabajo computacional, así como también el
cuido estatal puede ser descargado desde el cliente, por lo que el servidor puede
• F7: Más eficiencia de red.- En las aplicaciones web clásicas, cada acción del usuario
requiere que el servidor cargue toda la página y enviarla a la red. En el caso de las
sólo tiene que ser comunicado una vez y todas las otras peticiones al servidor requieren
de UI widgets estándar que parece bueno, flexible, que se contempla para trabajar en
• F9: RPC realmente fácil.- Para comunicarse desde el navegador que lanza la
es decir, no es necesario que se llame a otras páginas para realizar las diferentes
• F11: Depuración en tiempo real.- Para cuando la aplicación esté lista, el código de la
misma es traducido a JavaScript, pero mientras lo estás desarrollando este corre sobre
una máquina virtual de Java (JVM). Lo que significa que en la fase de desarrollo se
Mozilla, Safari, y Opera sin ningún tipo de operación para la detección de los mismos,
rápida y fácilmente.
- 232 -
JSNI).
4.6.2.1.2. Debilidad
Es una posición desfavorable que tiene la plataforma RIA GWT con respecto a alguno de
oportunidades y amenazas del entorno. Entre las principales debilidades o desventaja que
JavaScript por completo la aplicación por lo general hace poco o nada. Obviamente es
posible tener un plan alternativo para esos usuarios, pero luego se va a mantener dos
• D2: No hay acceso a los recursos del sistema.- Como las aplicaciones AJAX se
ejecutan dentro de un navegador, ellos están limitados en los recursos que pueden
acceder. Por ejemplo, una aplicación AJAX no puede tener acceso el sistema de
parcialmente las páginas o usen un plug-in específico tales como Flash. La mayoría de
las aplicaciones dinámicas de Internet están mal indexadas por los motores de
búsqueda.
pantalla.
• D5: Depende de una conexión a Internet.- Porque estas aplicaciones son servidas
desde la web y ejecutadas en el navegador web, por lo que requieren por lo menos una
conexión a Internet inicial. Pero incluso durante su uso, es necesaria una conexión a
• D6: Solo pueden ser usadas por desarrolladores JAVA. La curva de aprendizaje es
• D7: Dependiendo de las características de la aplicación puede ser un poco más costosa
el despliegue.
ejecutar.
- 234 -
4.6.2.2.1. Amenazas
plataforma RIA GWT, la cual debe ser enfrentada para evitar o minimizar los daños
Entre las principales amenazas que enfrenta GWT con respecto a las demás plataformas de
• A1: No es el framework más popular de la comunidad java por lo que existen infinidad
4.6.2.2.2. Oportunidades
Es una situación favorable, actual o futura, que ofrece el entorno para la plataforma RIA
competencia.
Entre las principales oportunidades que nos presenta el mercado para esta plataforma que es
actualidad no existen muchas personas que sepan el manejo del framework GWT,
tanto las fuentes de trabajo que se abren son muchas en el mercado tanto nacional
como internacional.
actualidad lo que más buscan son aplicaciones web que sean open source.
• O4: Posibilidad de realizar las aplicaciones más rápidas en relación con el uso de otras
• O5: Para una persona o empresa que está empezando, es de muy buena alternativa
Es una herramienta para combinar los factores internos con los factores externos de las
F2 - 0 0 0 0 0 0 0 0 0 ++ ++ + +
F3 0 0 - 0 0 0 - 0 0 ++ ++ ++ + +
F4 0 0 0 0 0 0 0 0 0 + + + + +
F5 0 0 0 0 0 0 0 0 0 + ++ ++ + ++
- 237 -
F6 0 0 0 0 0 0 0 0 0 + ++ ++ + ++
F7 0 0 0 0 0 0 0 0 0 + ++ ++ + ++
F8 0 - 0 0 0 0 0 - 0 0 ++ ++ ++ +
F9 0 0 0 0 0 0 - 0 0 0 ++ ++ ++ +
F10 0 0 0 0 0 0 0 0 0 + ++ ++ ++ ++
F11 0 0 0 0 0 0 0 0 0 0 ++ ++ + ++
F12 0 0 0 0 0 0 0 0 0 0 ++ ++ ++ ++
F13 0 0 0 - 0 0 0 0 0 0 ++ ++ + +
F14 - 0 0 0 0 0 0 0 0 + ++ ++ ++ +
F15 0 0 0 - 0 0 0 0 0 0 + + + +
F16 0 0 0 0 0 0 0 0 0 ++ ++ ++ ++ ++
D1 - 0 0 0 0 0 - 0 0 0 ++ ++ ++ +
D2 0 0 0 0 0 0 0 0 0 + + + + +
D3 - - - 0 0 0 0 0 - + + + 0 0
Debilidades
D4 0 0 - 0 0 0 0 - - 0 0 0 0 0
D5 - 0 - 0 0 0 0 0 0 0 + + + +
D6 - 0 0 - 0 0 0 0 0 ++ + ++ + +
D7 0 0 0 0 0 0 0 0 0 + 0 0 + +
D8 - 0 0 0 0 0 0 0 0 0 0 0 0 0
Esta matriz permitirá determinar cuáles son los puntos en donde más se debe poner
atención para de esta manera hacer de GWT una plataforma mucho más compacta.
Amenazas Oportunidades
A1 A2 A3 A4 A5 A6 A7 A8 A9 O1 O2 O3 O4 O5
F1 - -
Fortalezas
F2 -
F3 - -
F4
- 238 -
F5
F6
F7
F8 - -
F9 -
F10
F11
F12
F13 -
F14 -
F15 -
F16
D1 - -
D2
D3 - - - -
Debilidades
D4 - - -
D5 - -
D6 - -
D7
D8 -
Viene sugerida por las estrategias que resultan de la intersección entre filas y columnas, y
• Las estrategias de supervivencia (DA): Destinadas a eludir los efectos que las
situaciones del entorno puedan tener sobre los aspectos internos (relacionados con las
Debilidades y Amenazas).
• Las estrategias defensivas (FA): Pretenden dar respuestas a situaciones del entorno no
• Las estrategias de reorientación (DO): Tratan de aprovechar una situación positiva del
Estrategia de reordenamiento
Estrategia Ofensiva (FO)
(DO)
Oportunidades (Maxi – Maxi)
(Mini - Maxi)
(O) Estrategia para maximizar F
Estrategia para minimizar D y
yO
Externos
Factores
maximizar O.
Estrategia de Supervivencia
Estrategia Ofensiva (FA)
(DA)
(Maxi – Mini)
Amenazas (A) (Mini – Mini)
Estrategia para maximizar F y
Estrategia para minimizar D y
minimizar A.
A.
- 240 -
Se describe cada una de las estrategias que se utilizará en cada una de las relaciones del
Conocer las bondades que se tiene con GWT, sabiendo que al inicio vamos
D8-A1 ES 14
a consumir memoria del navegador pero que luego nos va a servir de mucho
Aprovechar al máximo el hecho de instalar el framework GWT,
F1-A7 ED 1
aprovechando los recursos del sistema.
Reducir el tiempo de aprendizaje por la facilidad de no instalar y solo
F1-A9 ED 2
ejecutar.
Con las actualizaciones automáticas rápidamente alcanzará una popularidad
F2-A1 ED 3
en el desarrollo de aplicaciones.
Utilizar al máximo la fortaleza de tener una plataforma independiente para
F3-A3 ED 4
crear sitios de una manera rápida.
F3-A7 ED 5 Usar un diseñador gráfico en la creación de las aplicaciones.
Subir documentos de la reutilización de componentes en GWT para que sea
F8-A2 ED 6
más popular in entendible para cualquier desarrollador.
Crear componentes reutilizables para el contenido de la presentación y para
F8-A8 ED 7
la lógica.
Utilizar el RPC para acceder a la base de datos por tener métodos primitivos
E.D. F9-A7 ED 8
de conexión.
(FA)
Estudiar más a fondo el uso de los JUnit para que la curva de aprendizaje no
F13-A4 ED 9
sea tan lenta.
F14-A1 ED 10 Usar la internacionalización en cada una de las aplicaciones web
Estudiar a lo básico JavaScript para obtener la interoperabilidad y control
F15-A4 ED 11
del sistema.
Aquí se escribirá en cada uno de los puntos en los que la plataforma flaqueaba las
estrategias necesarias para poder resolver el problema, y mejorar con ello la utilización de
GWT.
- 242 -
F8 ED6
ED2
F9 ED8
F10
ANALISIS INTERNO
F11
F12
F13 ED9
ED10
F14
ED 1
ED11
F15
ED6
F16
D1 ES1 ES2
D2
ES3 ES4
D3 ES5 ES6
ES1 ES2
Debilidades
ES7
D4 ES8 ES9
ES1
ES10
D5 ES11
ES1
ES12 ES13
D6
ES1 ES1
D7
- 243 -
ES14
D8
ES1
realizar el conteo del número de veces que se ha utilizado cada una de las estrategias para
ES5 1 4,76
ES6 1 4,76
ES7 1 4,76
ES8 1 4,76
ES9 1 4,76
ES10 1 4,76
ES11 1 4,76
ES12 1 4,76
ES13 1 4,76
ES14 1 4,76
TOTAL 21 100
conteo del número de veces que se ha utilizado cada una de las estrategias de este tipo para
este caso por los autores de este trabajo de investigación, reuniendo información de
debilidades) con las fuerzas externas (oportunidades y amenazas) para sacar las
diferentes estrategias que permitirán hacer de GWT una herramienta más eficiente.
• Las Estrategias Ofensivas (FO) son aquellas que permitirán maximizar las fortalezas y
las oportunidades cuando estas son demasiadas bajas, mientras que las Estrategias de
minimizando las amenazas y por último las Estrategias de Supervivencia (DA) son
porque las oportunidades frente a las debilidades son mayores, ni tampoco fueron
- 246 -
necesario estrategias Ofensivas (FO) puesto que tanto las oportunidades y las fortalezas
número 1 es la que más actúa en la tabla para minimizar los riesgos repitiéndose 7
9,52% con un número de repetición de 2, mientras que el resto de estrategias solo actúa
• Para la jerarquía de las otras estrategias (Defensivas), se puede observar que la primera
CAPÍTILO V
5.1. Introducción
empresa.
Se mostrará los pasos necesarios para poder realizar un proyecto desde cero usando GWT,
así como también la configuración necesaria que se debe realizar en el IDE de desarrollo
Eclipse y la ayuda que podría necesitar cualquier persona que desee usar esta herramienta.
- 248 -
Por último se presenta la documentación de la aplicación web “SISREHU” que consiste en:
Configuración.
5.2.Instalación de GWT
• Eclipse v3.4
Cypal.studio.for.gwt-RC5
GChart v2.5
• Java
o JDK v1.6.0_13
o JRE v6
• Glassfish v2.1
• Cypal.studio.for.gwt-RC5
Cypal Estudio es un conjunto de plugins que nos permite trabajar con GWT usando el
o Creación de un módulo
- 249 -
o Exportando .WAR
• GChart v2.5
Este plugin es utilizado para desarrollar cuadros estadísticos para cumplir con los
requerimientos de la aplicación.
• JT400
El plugin jt400 sirve para la conexión de la base de datos DB2 y la aplicación web, para
Lo siguiente es distinto para cada sistema operativo, pero los pasos a seguir en concreto
son:
- 250 -
http://code.google.com/webtoolkit/download.html.
b. Descomprimir el software.
proyectos.
Para lograr la correcta conexión con la base de datos DB2 que se encuentra alojada en la
5.4.2. JDBC
cualquier tipo de dato tabular. El API JDBC consiste de un conjunto de clases e interfaces
que permiten a cualquier programa Java acceder a sistemas de bases de datos de forma
homogénea. Al igual que ODBC, la aplicación de Java debe tener acceso a un controlador
- 253 -
las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de
datos real. De manera muy simple, al usar JDBC se pueden hacer tres cosas:
• Establecer una conexión a una fuente de datos (ej. una base de datos).
Para trabajar con el API JDBC se tiene que importar el paquete java.sql, tal y como se
indica a continuación:
import java.sql.*;
En este paquete se definen los objetos que proporcionan toda la funcionalidad que se
JDBC, es decir un objeto Driver específico para la base de datos DB2 y para nuestro caso
es el jt400.
Hay varias formas de hacerlo, pero la más sencilla es utilizar el método forName() de la
clase Class:
Class.forName("Controlador JDBC");
- 254 -
Class.forName("com.ibm.as400.access.AS400JDBCDriver").newInstance();
Debe tenerse en cuenta que el método estático forName() definido por la clase Class genera
un objeto de la clase especificada. Cualquier controlador JDBC tiene que incluir una parte
clases carga dicha clase, se ejecuta la iniciación estática, que pasa a registrarse como un
Una vez que se ha determinado el URL, se puede establecer una conexión a una base de
datos.
El objeto Connection es el principal objeto utilizado para proporcionar un vínculo entre las
bases de datos y una aplicación en Java. Connection proporciona métodos para manejar el
procesamiento de transacciones, para crear objetos, ejecutar instrucciones SQL, y para crear
Se puede emplear tanto el objeto Driver como el objeto DriverManager para crear un
El objeto Connection proporciona una conexión estática a la base de datos. Esto significa
que hasta que se llame en forma explícita a su método close() para cerrar la conexión o se
La manera más usual de establecer una conexión a una base de datos y que nosotros hemos
bases de datos están protegidas con nombres de usuario (login) y contraseñas (password)
para restringir el acceso a las mismas. El método getConnection() permite que el nombre de
El siguiente código es un ejemplo que va a servir para verificar que podemos establecer una
import java.sql.*;
public class ConexionBD
{
static String BD = " SRIPDATA";
static String usuario = "RHESPOCH";
static String pass = "RHESPOCH";
static String cadena_conexion = "jdbc:as400://172.17.16.70/+”BD”;
static final String driver = "com.ibm.as400.access.AS400JDBCDriver";
public static void main(String[] args) throws Exception {
Connection conn = null;
- 256 -
try{
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(cadena_conexion, usuario,
pass);
if (conn != null){
System.out.println("Conexión a base de datos "+url+" ... Ok");
conn.close();
}
}
catch(SQLException ex){
System.out.println(ex);
}
catch(ClassNotFoundException ex){
System.out.println(ex);
}
}
}
Para crear un proyecto con GWT en Eclipse se va a realizar los siguientes pasos:
a. Crear un proyecto Web Dinámico en Eclipse. Para ello en eclipse vamos al menú
b. Dentro de la carpeta Web, elige Dynamic Web Project como se muestra en la figura y
d. Luego dar click en Finish, y se termina la primera parte para crear un proyecto.
- 258 -
a. Para acceder al build path del proyecto creado anteriormente, hacer click derecho sobre
b. Elegir Java build Path, esto llevará a la lista de librerias ya incluidas en el proyecto.
Ahí sepuede ver en la parte derecha que por defecto Cypal nos incluyo la libreria de
GWT.
b. Aquí aparece la ventana para elegir que se quiere crear. Seleccionar dentro de la carpeta
mismo se debe indicar el paquete donde se va a alojar la nueva clase. En este caso
com.ree.ree y el nombre de la clase que será TestApp. Como se puede ver Cypal ya nos
sugiere que la clase implemente la interfaz EntryPoint, esto es una necesidad de toda
clase que corresponda a un nuevo modulo. En GWT debe implementar EntryPoint. Así
que se deja así, y presionar Finish para que Cypal cree la infraestructura necesaria.
- 260 -
d. Ahora se puede ver lo que Cypal creó por nosotros. Observa que se creó dentro de Java
Resources: src una jerarquía de paquetes todos bajo el paquete definido previamente
aplicación.
o La clase java: Principal.java es la que se debe programar, y todas las clases java
• Por último el paquete com.ree.ree.server que no se va a utilizar por ahora, pero hay
que saber que es aquí donde van a estar los métodos y clases que interactuarán con la
base de datos.
aplicación GWT. Si lo editamos vemos que contiene una línea que indica con la
f. Se debe agregar aquí una nueva línea que indique la inclusión del Modulo de GXT lo
que dará acceso a toda la funcionalidad disponible en GXT. Si hizo bien las cosas el
<module>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Specify the app entry point class. -->
<entry-point class='com.ree.ree.client.Principal'/>
<inherits name="com.google.gwt.user.theme.standard.Standard"/>
- 262 -
Ahora se va a escribir las líneas de código Java en la aplicación utilizando las clases del
• Un Botón con el Texto “Ver Mensaje” que cuando se presiona muestra una ventana de
siguiente:
a. Hacer click derecho sobre el proyecto, seleccionar la opción Run As y elegir Run
Configurations.
b. Dar click derecho en la imagen GWT Hosted Mode Application y seleccionar new.
con el Compilador de GWT a Javascript y se abrirá una instancia del browser por defecto y
Cuando se ejecuta en el modo hosted, se abren dos ventanas. La primera ventana, mostrada
en el siguiente gráfico es llamada Google Web Toolkit Development Shell / Port 8888.
Esta ventana contendrá los mensajes de errores y log de GWT. Usar la barra de
herramientas, se puede abrir un nuevo hosted browser así como ampliar, contraer, y borrar
Gráfico V.14: Primera ventana del modo hosted Mode Shell Windows
5.6.1.1.Introducción
que ayude a los autores y desarrolladores de la presente aplicación web a analizar y puedna
entender todos los requerimientos que los usuarios de la REE desean. De esta forma se
Para el desarrollo del SRS se describirá en forma detallada los requerimientos generales de
Esmeraldas (REE), el mismo que permitirá el trabajo de forma colectiva (en red), al
momento de realizar las diferentes consultas por parte de los empleados (normales y
administradores).
forma que se pueda demostrar todo lo que los autores se han propuesto y realizar al final las
pruebas correspondientes.
- 266 -
5.6.1.2.Riesgos
IMPACTO EN
IMPACTO RETRASO IMPACTO TÉCNICO VALOR
COSTO
Ligero impacto en el
Bajo 1 semana < 1% 1
desarrollo del proyecto
Moderado efecto en el
Moderado 2 semana < 5% 2
desarrollo del proyecto
Severo efecto en el
Alto 1 mes < 10% 3
desarrollo del proyecto
Proyecto que no puede
Crítico > 1 mes >20% 4
ser culminado
5.6.1.2.4. Resultados
Luego de calificar a cada uno de los riesgos mencionados anteriormente, se deduce que el
5.6.1.3.Requerimientos Funcionales
5.6.1.3.1. Actores
Información General
Usuari o_Invitado
Usuario_Administr
ador
Login
<<extend>>
<<incl uded>>
Usuari o
Inicio
Mi sión / Visión
Quienes somos
Usuario_Invitado
Contáctenos
Acerca de
Noticias
Inicio
Misión / Visión
Quienes somos
Contáctenos
Usuari o Asistencia
Datos Familiares
Noticias
<<incl ude>> <<incl ude>>
Ingresar Cédul a
Desempeño Laboral
<<extend>>
Seleccionar Di strito
Cerrar Sesión
Mensaje de Error
Saldo Vacacional
Inicio Asistencia
Contáctenos
Usuari o_Admini str Datos Personales
ador
Desempeño Laboral
Acerca de
Datos Generales
<<extend>>
Histori al Financiero
Noticias
<<incl ude>> <<include>>
Ingresar Cédul a
Saldo Vacacional
<<extend>>
Seleccionar Distrito
Desempeño del empleado
Cerrar Sesión
Mensaje de Error
Nº mujeres y hom bres en l a
empresa
Estadi sticas
Nº profesionales principales de la
empresa
Nº trabajadores contratados en el
mes
5.6.1.4.Casos de Uso
Saldo Vacacional)
Referencias
Curso típico de eventos
Acción del Actor Respuesta del Sistema
1. Selecciona la consulta estadísticas. 2. El sistema genera la consulta.
3. Seleccionar una opción del menú de 4. El sistema genera la estadística y luego
las estadísticas (desempeño de los muestra las barras estadísticas.
empleados, número de mujeres y
hombres de la empresa, número de
empleados con nivel académico,
número de profesionales principales
de la empresa, número de trabajadores
contratados en el mes, número de
trabajadores en las diferentes áreas de
trabajo en la empresa).
continuación:
Modulo 1: INFORMATIVO
Modulo 2: NOTICIAS
Modulo 3: AUTENTICACIÓN
Modulo 5: ESTADISTICAS
- 278 -
Req. 5: El sitio web debe mostrar las noticias sobre los distintos departamentos de REE.
Req. 9: El sitio web debe mostrar los cursos recibidos en el tiempo laborable en la REE.
Req. 10: El sitio web debe mostrar los datos familiares del empleado de REE.
Req. 11: El sitio web debe mostrar los datos personales del empleado de REE.
Req. 12: El sitio web debe mostrar el desempeño laboral del empleado de REE en un
periodo determinado.
Req. 13: El sitio web debe mostrar el historial financiero del empleado de REE.
Req. 14: El sitio web debe mostrar el record académico del empleado de REE.
Req. 15: El sitio web debe mostrar el saldo vacacional del empleado de REE.
- 279 -
Req. 16: El sitio web debe mostrar en barras estadísticas el desempeño laboral en un
Req. 17: El sitio web debe mostrar en barras estadísticas el número de mujeres y hombres
de REE.
Req. 18: El sitio web debe mostrar en barras estadísticas el número de empleados con nivel
Req. 19: El sitio web debe mostrar en barras estadísticas el número de profesionales
Req. 20: El sitio web debe mostrar en barras estadísticas el número de trabajadores
Req. 21: El sitio web debe mostrar en barras estadísticas el número de trabajadores en las
5.6.2. Diseño
Cliente 2 Cliente 3
Internet
Cliente 1 Cliente n
SERVIDOR
SW4507R WEB
Firewall
Linux
REE
GLOBAL
GLOBAL
CROSSING
QUITO
GLOBAL
Zona de
Conectividad
SERVIDOR
SW6509 DB2
ASA
Interfaz
html y css
Clases JAVA
Cliente
Clases JAVA
Servidor (GWT-RPC)
Rutina de
Conexión
Base de
Datos DB2
validaciones en cada uno de los procesos que realiza teniendo como resultado lo siguiente:
- 288 -
5.6.3.1. Pruebas
permisos, mientras que el segundo usuario luego de autenticarse podrá realizar todas
• Se comprobó que los datos obtenidos de las diferentes consultas tales como de:
asistencia, cursos recibidos del empleado, datos personales, datos de los familiares,
y saldo vacacional, han sido los correctos demostrando así mediante estas pruebas que
• El cierre de sesión en una aplicación es de suma importancia para la seguridad que esta
pueda brindar al usuario, y en este caso se comprobó copiando la URL una vez que el
5.6.3.2. Validaciones
• En el campo donde se ingresa el número de cédula solo se podrá escribir números que y
adecuada.
• En el desempeño laboral, si uno de los datos como son el año o el semestre no ha sido
• Para el caso de las estadísticas donde se debe seleccionar la fecha, la aplicación está
controlando que el año ingresado no sea mayor que el año actual y lo mismo para el
mes.
Ver en Anexo 1
Ver Anexo 2
- 290 -
CONCLUSIONES
encapsular todos los elementos necesarios para que el desarrollo de aplicaciones Web
desarrollos tradicionales.
gracias a una abstracción total del desarrollo del lenguaje de programación Java. Y
desventajas que presentan los IDE´s como Eclipse, Netbeans e IntelliJ, se ha elegido
Eclipse como el IDE más adecuado ya que alcanzo el 91.22% el puntaje mas alto, ya
que en él se pueden agregar plugins a medida que se va desarrollando logrando así una
la hipótesis analizando proceso por proceso se puede concluir que efectivamente con el
• Las pruebas y las validaciones que se hacen luego de haber concluido una aplicación
el caso particular del presente trabajo investigativo no fue la excepción pues, luego de
la corrección de posibles errores se logró obtener una aplicación eficaz que realiza los
requerimientos planteados.
• En lo relacionado a los aspectos legales, GWT se distribuye con código fuente y con
• El desarrollo Web constituye uno de los grandes desafíos del mundo informático en la
impresionantes para hacer sitios Web cada vez más dinámicos, con interfaces de
usuario similares a las de escritorio y con niveles de respuesta óptimos donde el tiempo
de los usuarios empieza a ser importante y donde cada vez es menos común el
desarrollo de sitios donde sea necesario esperar para recibir una respuesta.
• Uno de los grandes adelantos tecnológicos, sin duda es lo que hoy se conoce con el
término AJAX. Este conjunto de tecnologías han posibilitado una expansión de las
RECOMENDACIONES
acentuadas, etc.) a menos que los ficheros fuente se encuentren codificados usando
UTF-8. Se recomienda por tanto usar editores que soporten este tipo de codificación.
Esta limitación es sólo para los ficheros compilados por el compilador GWT, es decir,
se puede decir que para un trabajo como este, se debe construir una nueva base de
datos ya que no se sabe si la empresa donde se esté realizando la tesis vaya a tener o no
reestructuraciones.
• Al momento de plantear los objetivos en la tesis se debe tener en cuenta el tiempo que
va a tomar en desarrollar cada uno de estos, para así no tener ningún inconveniente en
el transcurso de la tesis.
• Antes de empezar a desarrollar una aplicación con RIA GWT o con cualquier otra
herramienta se debe estudiar detenidamente todo lo referente al tema como en este caso
programar con JAVA, saber cómo funciona JavaScript y HTML porque aunque no se
• Al momento de utilizar Eclipse y AS400 se debe saber cómo realizar las conexiones
para extraer la información de la base de datos, además qué plugins necesita agregar al
RESÚMEN
SUMMARY
Studied and analyzed the GWT RIA platform for web application development in the
Human Resources department of the State of Esmeraldas refinery.
For the development of the research was conducted the theoretical study of concepts for
understanding the functioning of the GWT framework, they study everything about the
Java development language as the definition and characteristics, as regards the Java virtual
machine (JVM), Java , among others. Besides using the Eclipse IDE and GWT RIA
platform was developed and implemented the web application in order to help employees
of the State of Esmeraldas Refinery information confidential.
For the proof of the hypothesis is used the method of interviews with employees of Human
Resources, analyzing process by process, which can effectively conclude that the web
application development using the RIA-GWT platform, has been reduced time in the
workflow by 98.91% with regard to the processes performed by employees of the entity.
Compared and analyzed the IDE's like Eclipse, Netbeans and IntelliJ, Eclipse was chosen
as the most suitable because it reached the highest score in relation to web application
development using GWT RIA platform.
RIA-GWT platform, it is helpful for Java developers because it allows you to program only
in this language without worrying about HTML and JavaScript code thereby reducing the
development time of the application.
We recommend using the Eclipse IDE as a development environment for Web applications
based on GWT RIA platform.
- 297 -
ANEXOS
- 298 -
GLOSARIO
ActionScript
Lenguaje de programación
Es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a
cabo por máquinas como las computadoras. Pueden usarse para crear programas que
controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con
paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y
polimorfismo y encapsulamiento.
Adobe flash
Adobe Flash Es una aplicación en forma de estudio que trabaja sobre "fotogramas",
CSS
Hojas de estilo en cascada, son un lenguaje formal usado para definir la presentación de un
Eficiencia
Uso racional de los medios con que se cuenta para alcanzar un objetivo predeterminado.
Etiqueta (o tag)
Marca con tipo que delimita una región en los lenguajes basados en XML.
Fotograma
animación.
Archivo generado de forma automática por el programa de gestión del weblog que,
Gadgets
Interfaz de usuario
Medio con que el usuario puede comunicarse con una máquina, un equipo o una
Lenguaje Java
sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas
de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de
punteros o memoria.
JavaScript
principalmente en páginas web, con una sintaxis semejante a la del lenguaje Java y el
lenguaje C.
Patrón de diseño
Software
digital; comprende el conjunto de los componentes lógicos necesarios que hacen posible la
- 301 -
llamados hardware.
Hardware
de Windows (WPF por sus siglas en inglés) y Silverlight(wpf/e), el cual es uno de los
XHTML
XML
Página Web
para la Web, pero normalmente forma parte de un sitio Web. Su principal característica son
Sitio Web
Aplicación Web
usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet
lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.
Ingeniería de Software
Servidor Web
Un servidor web es un programa que está diseñado para transferir hipertextos, páginas web
o páginas HTML (HyperText Markup Language): textos complejos con enlaces, figuras,
Protocolo
Es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a través
de una red. Un protocolo es una convención o estándar que controla o permite la conexión,
HTTP
Es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones
anteriores.
Navegador Web
Un navegador o navegador web (del inglés, web browser) es un programa que permite ver
la información que contiene una página web (ya se encuentre ésta alojada en un servidor
Aplicación
Programa informático que permite a un usuario utilizar una computadora con un fin
específico. Las aplicaciones son parte del software de una computadora, y suelen ejecutarse
BILIOGRAFÍA
• Aplicaciones Web 100% JAVA con Google Web Toolkit [en línea]
http://www.finderit.com/index.php?option=com_lyftenbloggie&view=entry&id=53
%3AAplicaciones+web+100%25+Java+con+Google+Web+Toolkit&Itemid=143&l
ang=es
[2010/01/15]
http://www.epidataconsulting.com/tikiwiki/tiki-index.php?page=GWT
[2009/10/10]
http://www.worldlingo.com/ma/enwiki/es/Google_Web_Toolkit#Features
[2009/11/05]
http://code.google.com/intl/es-ES/webtoolkit/overview.html
[2009/11/25]
http://casidiablo.net/compiladores-e-ide%E2%80%99s/
[2010/01/013]
http://es.wikipedia.org/wiki/Eclipse_%28software%29
[2010/01/10]
- 305 -
http://www.slideshare.net/Guido_De_Benedetti/Google-Web-Toolkit-904220
[2009/11/24]
https://www.packtpub.com/sites/default/files/sample_chapters/Google-Web-
Toolkit-Ajax-Creating-a-New-GWT-Application-Sample-Chapter.pdf
[2009/10/10]
• Google Web Toolkit (GWT), Progress Software y Servicios 2010 [en línea]
http://www.slideshare.net/pgdesarrollo/5-introduccion-gwt
[2009/11/05]
http://www.gruposp2p.org/wiki/index.php/GWT
[2009/11/05]
http://webdiis.unizar.es/~jogracia/other/introduccion_a_gwt.htm
[2009/11/24]
http://www.juntadeandalucia.es/xwiki/bin/view/MADEJA/GWT
[2010/01/15]
http://dardison.wordpress.com/2009/09/29/gxt-gwt-java-eclipse-tutorial-parte-iii/
[2010/01/15]
- 306 -
http://s3.amazonaws.com/ppt-download/presentaciongwt-091202060114-
phpapp02.pdf?Signature=h6lGbfkxO4oIIIe8TbCwaGa3awo%3D&Expires=127586
5680&AWSAccessKeyId=AKIAJLJT267DEGKZDHEQ
[2009/10/10]
[en línea]
http://www.ajaxmatters.com/2006/05/introduction-to-gwt-remote-procedure-calls-
rpc-with-example-application/
[2010/01/13]
http://java.sun.com/javase/6/docs/index.html
[2010/01/10]
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java
[2010/01/08]
http://es.wikipedia.org/wiki/M%C3%A1quina_virtual_Java
[2010/01/08]
http://casidiablohost.googlepages.com/Introduccion-al-Google-Web-Toolkit.pdf
[2009/10/29]
- 307 -
1. PRESENTACIÓN
2. INTRODUCCIÓN
Hardware
Software
1. Creamos una carpeta dentro del proyecto SISREHU llamada war, y dentro de
esta otra llamada WEB-INF y dentro de ésta otra carpeta llamada lib.
2. Una vez hecho esto, nos vamos al eclipse y le damos clic derecho sobre el
proyecto y escogemos la opción Export como se muestra en la figura.
8. Luego actualizamos todo el proyecto para que se guarden todos los cambios.
- 313 -
1. Nos situamos dentro del servidor de aplicaciones tomcat, para ello nos vamos a
C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps, y
creamos una carpeta llamada SISREHU.
3. Dentro del apache, sacamos todos los archivos que se encuentra en la carpeta
donde se alojan todas las clases del cliente en este caso la carpeta
com.ree.ree.Principal y la pegamos dentro de la carpeta SISREHU que se
encuentra en el servidor.
1. PSENTACIÓN
Este manual servirá de guía a aquellas personas que estén involucradas en el manejo
del sitio web. Describe la funcionalidad y el uso del Sitio Web “SISREHU”, el
mismo que admite llevar una serie de tareas secuenciales que permita culminar el
proceso con éxito.
2. INTRODUCCIÓN
3. OBJETIVOS SISTEMA
• Ofrecer una interfaz gráfica amigable facilitando el manejo por parte de los
usuarios.
• Brindar seguridades en el manejo del sitio web permitiendo el acceso
únicamente al personal autorizado.
• Controlar campos vacios
- 317 -
Hardware
Software
El sitio web presenta la pantalla principal con los datos generales (Inicio,
Misión/Visión, Quienes somos, Contáctenos, Acerca de…) y las noticias.
- 318 -
Llenar los campos vacios del Inicio de Sesión como es: el número de cédula, la
clave personal y seleccionar el distrito al que pertenece y luego dar click en Iniciar
Sesión para las consultas correspondientes.
- 319 -
Para consultar la asistencia del empleado elegimos la opción Consultas del menú
principal y luego dar click en Asistencia y se mostrará la información.
- 320 -
Además se pueden filtrar los datos por una fecha determinada como se indica en la
siguiente figura.
Para visualizar los cursos recibidos del empleado seleccionar la opción Consultas
del menú principal y luego elegir Cursos Recibidos, se desplegará los cursos
recibidos.
- 321 -
Para consultar los datos familiares del empleado se debe seleccionar en el menú
principal Consultas luego dar click en Datos Familiares y se visualizará los datos
familiares del empleado.
Para consultar los datos personales del empleado se debe seleccionar en el menú
principal Consultas luego dar click en Datos Personales y se mostrará la
información personal del empleado.
- 322 -
Para consultar el desempeño laboral del empleado elegimos del menú principal la
opción de Consultas, click en Desempeño Laboral luego se debe seleccionar el
periodo y el año para desplegar la información correspondiente al periodo y año
seleccionado.
Además se pueden filtrar los datos por una fecha determinada como se indica en la
siguiente figura.