Universidad Nacional de Chimborazo
NOVASINERGIA 2018, Vol. 1, No. 2, junio-noviembre (54-59)
ISSN: 2631-2654
https://doi.org/10.37135/unach.ns.001.02.06
Artículo de Investigación
http://novasinergia.unach.edu.ec
Análisis del rendimiento de librerías de componentes Java Server
Faces en el desarrollo de aplicaciones web
Analysis of the performance of Java Server faces component libraries in Web
application development
Diego Palacios
1,2 *
, Janeth Guamán
2
, Sandra Contento
2
1
Departamento de Tecnologías de la Información, Escuela Superior Politécnica de Chimborazo, Riobamba,
Ecuador, 060150
2
Facultad de Ingeniería, Universidad Nacional de Chimborazo, Riobamba, Ecuador, 060108;
janeth.guaman@unach.edu.ec; sandra.contento@unach.edu.ec
* Correspondencia: dpalacios@unach.edu.ec
Recibido 06 mayo 2018; Aceptado 06 junio 2018; Publicado 10 diciembre 2018
Resumen:
Con el avance tecnológico en el ámbito de desarrollo de aplicaciones web, se
han incorporado nuevas tecnologías; mucho más robustas, escalables y con un
mayor rendimiento. PrimeFaces y RichFaces son librerías de componentes de
la tecnología Java Server Faces (JSF), utilizadas para el desarrollo de
interfaces de usuario para la web, las que permiten una integración con Java
Script y Ajax. En la presente investigación se presenta el análisis comparativo
de las librerías PrimeFaces y RichFaces, en sus dimensiones de tiempo
promedio de respuesta de página, y tiempo promedio de respuesta Ajax, para
determinar cuál de ellas ofrece un mejor rendimiento. El análisis se realizó
por medio de una página web N Capas, aplicada en la gestión de tutorías
académicas universitarias, se configuró un ambiente de pruebas sobre un
servidor web Apache Tomcat en un entorno Linux, con cada una de las
librerías, además se usaron las tecnologías JSF, PrimeFaces y RichFaces. Las
pruebas de rendimiento estuvieron basadas en la herramienta Neoload,
simulando 350 peticiones por segundo observándose diferencias significativas
entre las dos librerías de componentes.
Palabras clave:
Rendimiento en aplicaciones web, Java Server Faces, RichFaces,
PrimeFaces, Java Enterprise Edition.
Abstract:
With technological advancement in the field of Web application development,
new technologies have been incorporated; Much more robust, scalable and
with higher performance. PrimeFaces and RichFaces are the libraries of Java
Server faces (JSF) technology components, used for the development of user
interfaces for the web, which allow integration with Java Script and Ajax. This
research presents the analysis of the PrimeFaces and RichFaces libraries, in
their average page response time dimensions, and average Ajax response time,
to determine which one offers better performance. The analysis was carried
out through a Web page N layers, applied in the management of academic
tutoring University, a test environment was set up on an Apache Tomcat Web
server in a Linux environment, with each of the libraries, also used the JSF,
PrimeFaces and RichFaces technologies. Performance tests were based on the
Neoload tool, simulating 350 requests per second observing significant
differences between the two component libraries.
Keywords:
Performance in Web applications, Java Server faces, RichFaces, PrimeFaces,
Java Enterprise Edition.
http://novasinergia.unach.edu.ec 55
1 Introducción
Las aplicaciones web, son una herramienta
fundamental en todos los ámbitos, debido a las
ventajas que ofrecen a los usuarios finales. Al ser
servicios multiplataforma y accesibles desde
cualquier punto, facilitan el trabajo colaborativo,
están disponibles en cuanto a hora y lugar,
mantienen centralizada la información, nos
ahorran dinero, tiempo y requieren mucho menos
consumo de espacio y memoria RAM que
cualquier aplicación que requiera ser instalada en
un sistema operativo.
Los datos que provienen del uso de las
aplicaciones web están seguros y resguardados.
El único requisito para utilizarlas es tener un
navegador web y una conexión a internet, lo cual
brinda la facilidad de acceder a la información
sin importar el sistema operativo y de la
capacidad de procesamiento que tenga.
Sin embargo, las aplicaciones web deben
mantener un alto performance a la hora de
atender miles de peticiones de usuarios. El
rendimiento de una página web es el tiempo que
se demora en cargarse desde su petición.
Mateu (2004) menciona que uno de los puntos
clave del éxito de un sitio web será el nivel de
comodidad de nuestros usuarios, que la
experiencia al visitar nuestro sitio sea agradable,
que la respuesta que obtengan a sus acciones sea
fluida, sin retrasos en las respuestas, etc. Otro de
estos puntos clave será el rendimiento que
obtengamos de nuestros sistemas. A mayor
rendimiento, mejor aprovechamiento de la
inversión. En muchos casos, ello también se
traducirá en una respuesta más agradable a
nuestros usuarios, más fluida, con tiempos de
acceso menores, etc.
Java ha sido probado, ajustado, ampliado y
probado por toda una comunidad de
desarrolladores, arquitectos de aplicaciones y
entusiastas de Java. Java está diseñado para
permitir el desarrollo de aplicaciones portátiles
de elevado rendimiento para el más amplio rango
de plataformas informáticas posible. (Java, 2018)
Según Bill (2002), Java 2 Enterprise Edition
(J2EE) es una plataforma y filosofía de diseño
para grandes sistemas empresariales. En este
contexto dentro del desarrollo web, esta
tecnología es una de las más utilizadas para el
desarrollo de aplicaciones web robustas,
confiables, seguras y de alto rendimiento.
Además, Bill (2002) menciona que,
tradicionalmente, las aplicaciones web de Java se
han codificado mediante la especificación Java
Server Page (JSP), las cuales reciben peticiones
a través de formularios y se construyen como
respuesta páginas HTML a través de bibliotecas
de etiquetas de código Java, con un esfuerzo
amplio en el diseño de interfaces ya que se apoya
por otros lenguajes de programación y estándares
como Java Script, Hojas de Estilo en Cascada
(CSS) y etiquetas HTML 5 propiamente.
JavaServer Faces (JSF) es un marco de
componentes de interfaz de usuario (UI) para
aplicaciones web J2EE que, una vez adoptadas,
permite a las organizaciones migrar desde
tecnologías antiguas, como plataformas basadas
en caracteres para terminales virtuales, a
plataformas y tecnologías más actualizadas
basadas en estándares, como JSF y Java (Jacobi
& Fallows, 2006).
JSF usa JSP como tecnología que permite hacer
el despliegue de las páginas, pero también se
puede acomodar a otras tecnologías como XUL
(acrónimo de XML-based-User-interface
Language, lenguaje basado en XML para la
interfaz de usuario) (Ríos, 2015).
JSF es considerado como un framework, las
cuales tienen como propósito hacer más con
menos código, para agilizar el desarrollo
(Arrambide Hernández, 2017).
Las librerías de componentes PrimeFaces y
RichFaces, facilitan la construcción de
aplicaciones web, ricas en interfaz de usuario
proporcionando para esto un entorno de trabajo a
través de la web la cual gestiona las acciones
realizadas por el usuario en su página HTML y
las traduce a eventos que son enviados al servidor
regenerando la página original y reflejando los
cambios provocados por dichas acciones.
PrimeFaces es una suite de componentes open
source de JSF, que provee un conjunto de
componentes enriquecidos, con Ajax
incorporado, ligero, con soporte a través de
Atmosphere Framework, con un kit de UI Mobile
para la creación de aplicaciones web móviles, y
con mucha documentación de apoyo para el
desarrollador (PrimeFaces, 2018).
El proyecto RichFaces es un framework
avanzado de componentes de interfaz de usuario
para integrar fácilmente las capacidades de Ajax
en aplicaciones comerciales utilizando JSF.
RichFaces 4 se basa en el soporte pionero de
Ajax que comenzó con RichFaces 3 y está
estandarizado en JSF 2. Además de ampliar estas
capacidades de ajax, RichFaces también mejora
otras áreas de JSF 2, incluida la usabilidad, ajuste
de rendimiento, recursos dinámicos, skinning y
http://novasinergia.unach.edu.ec 56
componentes desarrollo. Esto permite a los
usuarios aprovechar al máximo todas las mejoras
de productividad de JSF 2. Provee soporte a
través de Atmosphere Framework, validación del
lado del cliente y validación de objetos
(RichFaces, 2018).
De acuerdo a la tendencia de uso establecida en
google trends, la investigación se encaminó en
analizar las librerías de componentes PrimeFaces
y RichFaces, con respecto al rendimiento, para lo
cual se desarrolló una página web N Capas, que
permite la gestión de tutorías académicas
universitarias, utilizando tecnologías con
versiones estables como es el caso de Netbeans
8.0, JSF2.2, PrimeFaces 5.2.1, RichFaces 4.5 y
Apache Tomcat 8.0, posteriormente se
efectuaron las pruebas de rendimiento
correspondientes a través de la herramienta
Neoload para determinar cuál es la más ligera.
En referencia a estudios comparativos realizados
anteriormente, con respecto al rendimiento y
configurados bajo condiciones similares,
Escobar Atiaga & Rodríguez Quezada (2014),
determinan en su investigación que, RichFaces
ofrece mejores tiempos de respuesta que
PrimeFaces, sin embargo, al observar los
resultados de Escobar se identifica que la
diferencia es mínima. Además, Quimbiamba
Lanchimba (2013) en su investigación concluye
que PrimeFaces ofrece mejores tiempos de
respuesta que RichFaces.
2 Metodología
Se utilizó el método deductivo, con un tipo de
investigación de tipo transversal, descriptiva,
bibliográfica y aplicativa, se describieron los
datos obtenidos con respecto a los tiempos de
respuesta de página y tiempo de respuesta Ajax,
se consideró una población infinita y se
recolectaron los datos de rendimiento a través de
la herramienta de pruebas de estrés Neoload. La
muestra se obtuvo mediante la fórmula de
muestreo de población infinita y los datos se
seleccionaron con carácter no aleatorio, ver
ecuación (1).

(1)
donde:
n=Muestra
p=Probabilidad de éxito
q=Probabilidad de fracaso
Z=Nivel de confianza 95%
e=Error de muestra 5%

 


Se aplicó la técnica documental, mediante la cual
se recopiló, toda la información de fuentes
primarias y secundarias que permitieron enunciar
y desarrollar teorías que sustentaron la
investigación. La técnica de campo, permitiendo
establecer una relación directa con el objeto de
estudio, donde permitió comprobar cuál de las
dos librerías de componentes ofreció un mejor
rendimiento.
2.1 Procesamiento y análisis
El procesamiento y análisis se basa en la
siguiente propuesta metodológica de
comparación de Librerías de Componentes JSF,
la que está compuesta de los siguientes pasos:
- Análisis de librerías
- Implementación de prototipos
- Implementación de ambientes de
pruebas
- Pruebas de Rendimiento
- Resultados
2.1.1 Análisis de las librerías
El análisis corresponde a la revisión de elementos
técnicos y de versiones de las librerías de
componentes PrimeFaces y RichFaces, en donde
se eligieron versiones estables para cada caso,
esto significa PrimeFaces 6.2 y RichFaces 4.5.
2.1.2 Implementación de prototipos
La implementación se realiza por medio de dos
prototipos usados en la correspondiente
comparación, se implementaron dos páginas
web, una con PrimeFaces 6.2 y otra con
RichFaces 4.5, utilizando el componente Data
Table en ambos casos. Para ello se creó un
ambiente de desarrollo utilizando el entorno de
desarrollo integrado Netbeans 8.0, para el
despliegue de la aplicación se usó el servidor web
Apache Tomcat 8.0, y como motor de base de
datos PostgreSQL 9.4.
2.1.3 Implementación del ambiente de
pruebas
Una vez implementados los prototipos, se definió
el ambiente de pruebas que permitió la
comparación de ambas librerías, como se
http://novasinergia.unach.edu.ec 57
muestra en la figura 1, instalando un servidor
Linux CentOS 7 de 64 bits virtualizado, con
12GB de memoria RAM, y 8 procesadores (2
sockets y 4 cores), y administrado a través de un
hipervisor Proxmox sobre este se instaló el
servidor web Apache 8.0 y se procedió al
despliegue de los dos prototipos.
2.1.4 Pruebas de rendimiento
Para la toma y recolección de datos, se generaron
las pruebas de rendimiento para las dos librerías,
ejecutando Neoload, realizando por varias
ocasiones una simulación de 350 peticiones
concurrentes por segundo durante un lapso de
tiempo de 30 minutos, este número corresponde
al mero aproximado de usuarios que acceden
normalmente al aplicativo, tanto para el tiempo
promedio de respuesta de página, y el tiempo
promedio de respuesta AJAX de manera
independiente.
2.1.5 Resultados
Dado que los datos de los parámetros de la
investigación no cumplen los supuestos de
normalidad y homogeneidad de varianzas, se
aplicó la prueba U de Mann-Whitney,
estableciendo un nivel de significancia 0,05%
con una muestra de 384 por grupo. Se
compararon las medias, se interpretaron los
resultados, y se obtuvieron las conclusiones
respectivas.
Neoload
Prototipo con PrimeFaces -
Apache Tomcat 8
Prototipo con RichFaces -
Apache Tomcat 8
peticiones http peticiones http
Base de Datos
PostgreSQL
sql
sql
Figura 1. Arquitectura - pruebas de rendimiento con
Neoload.
3 Resultados y Discusión
A continuación, se muestran los resultados del
análisis, de las dimensiones seleccionadas en la
presente investigación, en este caso, el tiempo
promedio de respuesta de página y el tiempo
promedio de respuesta AJAX.
El tiempo de respuesta de página corresponde al
promedio de respuesta al peticionar una página.
Para la medición del promedio del tiempo de
respuesta de página se realizó una simulación de
350 peticiones por segundo, durante 30 minutos.
Para verificar si existe una diferencia o similitud
entre las medias de PrimeFaces y de RichFaces
en el parámetro tiempo de respuesta de página, se
aplicó el método estadístico U de Mann Whitney
con un nivel de confianza del 95%, un error del
5% el cual indica que la significancia asintótica
(bilateral) es 0 por lo que se demuestra que existe
una diferencia entre las medias de PrimeFaces y
RichFaces en el parámetro evaluado.
Tabla 1: Medición tiempo promedio de respuesta de
página.
Librería
Estadístico
RichFaces
Media
252.49
PrimeFaces
Media
132.85
Tabla 2: Rangos y estadísticos de prueba de Mann-
Whitney, para tiempo promedio de respuesta de
página.
Rangos Prueba de Mann-Whitney
Librería
N
Rango
promedio
Suma de
rangos
Promedio
tiempo
de
respuesta
pagina
RichFaces
384
445,31
170998,00
PrimeFace
s
384
323,69
124298,00
Total
768
Estadísticos de prueba
a
U de Mann-
Whitney
50378.0
W de
Wilcoxon
124298.0
Z
-7.598
Significancia
asintótica
(bilateral)
0.0
En la tabla 2, se muestra el análisis estadístico
basado en la Prueba de Mann-Whitney, el valor
de p o asintótica (bilateral) es 0 por lo cual se
determina que existe una diferencia entre los
tiempos promedio de respuesta de página de
PrimeFaces y RichFaces, En la tabla 1, también
se puede observar que el tiempo promedio de
respuesta de página de PrimeFaces es menor que
el tiempo de respuesta de RichFaces,
PrimeFaces con 132.85 milisegundos segundos
frente a RichFaces con 252.49 milisegundos.
Con relación al tiempo promedio de respuesta
AJAX, para la medición, se realizó una
simulación de 350 peticiones por segundo,
durante 30 minutos. Para verificar si existe una
diferencia o similitud entre las medias de
PrimeFaces y de RichFaces en el parámetro
tiempo promedio de respuesta AJAX se aplicó el
método estadístico U de Mann Whitney con un
nivel de confianza del 95%, un error del 5% el
http://novasinergia.unach.edu.ec 58
cual indica que la significancia asintótica
(bilateral) es 0 por lo que se demuestra que existe
una diferencia entre las medias de PrimeFaces y
RichFaces en el parámetro evaluado.
Tabla 3: Medición tiempo promedio de respuesta
AJAX.
Librería
Estadístico
RichFaces
Media
232,49
PrimeFaces
Media
132,85
Tabla 4: Rangos y estadísticos de prueba de Mann-
Whitney, para tiempo promedio de respuesta AJAX.
Rangos Prueba de Mann-Whitney
Librería
N
Rango
promedio
Suma de
rangos
Promedio_tiem
po_respuesta_a
jax
RichFac
es
384
445,31
170998,0
0
PrimeFa
ces
384
323,69
124298,0
0
Total
768
Estadísticos de Prueba de Mann-Whitney
Estadísticos de pruebaa
U de Mann-
Whitney
50345,0
00
W de
Wilcoxon
123198,000
Z
-7,598
Significancia
asintótica
(bilateral)
,000
En la tabla 4 el valor de p o asintótica (bilateral)
es 0 por lo cual se determina que existe una
diferencia entre los tiempos promedio de
respuesta AJAX de PrimeFaces y RichFaces, en
la tabla 3, también se puede observar que el
tiempo promedio de respuesta AJAX de
PrimeFaces es menor que el tiempo de respuesta
de RichFaces, PrimeFaces con 132.85
milisegundos segundos frente a RichFaces con
232.49 milisegundos.
Tabla 5: Comparación Resumen.
Indicador
RichFaces
PrimeFaces
Tiempo Promedio de Respuesta de
página
252.49 ms
132.85 ms
Tiempo Promedio de Respuesta
AJAX
232.49 ms
132.85 ms
4 Conclusiones
Se concluye que PrimeFaces ofrece un mejor
rendimiento que RichFaces, en páginas web
desarrolladas bajo JSF, sobre ambientes Linux
CentOS 7 de 64 bits, luego de ejecutar Neoload
sobre los dos prototipos desarrollados,
observando que el tiempo promedio de respuesta
de página, de RichFaces es de 0.252s y el de
PrimeFaces es de 0.132s, con una diferencia de
un 48%, en cuanto al tiempo promedio de
respuesta AJAX RichFaces es de 0.232 y el de
PrimeFaces es de 0.132s, con una diferencia de
un 44%. Es importante considerar que
PrimeFaces cuenta con 117 componentes, no
requiere dependencias para utilizar la librería, es
compatible con otras librerías de componentes,
posee soporte Ajax, su documentación es
actualizada, además los componentes son
amigables, atractivos e innovadores tanto para el
desarrollador como para el usuario.
Se concluye que después de realizar nuevamente
las pruebas de rendimiento definidas en la
metodología de la investigación, existieron
mínimas diferencias en los tiempos de respuesta
de página y AJAX, una vez que el sistema de
gestión de tutorías académicas universitarias
desarrollado con PrimeFaces, se desplegó en un
ambiente de producción con las mismas
características del ambiente de pruebas.
Referencias
Arrambide, J. (2017). Desarrollo Web en Java:
Configura paso a paso todas las
herramientas para crear proyectos web.
Edición Kindle.
Bill, G. (2002). Codenotes for J2EE. EJB, JDBC,
JSP, and Servelets. New York: Random
House Trade Paperbacks.
Escobar, C. & Rodríguez, S. (2014). Análisis
comparativo de frameworks jsf 2.0:
icefaces, primefaces y richfaces; para la
implementación en el desarrollo del
sistema de gestión de proyectos
ambientales de la empresa Kaymanta.
Sangolquí: Universidad de las Fuerzas
Armadas ESPE.
Jacobi, J. & Fallows, J. (2006). Pro JSF and
AJAX. Building Rich Internet Components.
New York: Springer-Verlag.
Java. (2018). Recuperado de
https://www.java.com/es/about/
Mateu, C. (2004). Desarrollo de Aplicaciones
Web. Barcelona: Eureca Media, SL.
PrimeFaces. (2018). Recuperado de
https://www.primefaces.org/
Quimbiamba, V. (2013). Análisis, diseño e
implementación de una aplicación Web
que permita automatizar los procesos
administrativos del centro Psicológico del
campus Girón de la Univesidad Politécnica
Salesiana. Quito: Universidad Politécnica
Salesiana.
http://novasinergia.unach.edu.ec 59
RichFaces. (2018). Recuperado de
http://richfaces.jboss.org/
Ríos, S. (2015). JSF 2 + Hibernate 4 + Spring 4:
PrimeFaces 5 with JAX-WS y EJB’S. Java
Revolutions. Edición Kindle.