SciELO - Scientific Electronic Library Online

 
vol.1 número2Diseño de un prototipo convertidor de frecuencia de 60 Hz a 50 Hz para redes eléctricas comercialesValoración energética del aceite lubricante usado en sistemas térmicos de combustión de la industria cementera ecuatoriana índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Digital Novasinergia

versión On-line ISSN 2631-2654

Novasinergia vol.1 no.2 Riobamba jun./nov. 2018  Epub 01-Jun-2021

https://doi.org/10.37135/unach.ns.001.02.06 

Artículo de Investigación

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 Palacios1  2  * 
http://orcid.org/0000-0001-6032-8444

Janeth Guamán2 

Sandra Contento2 

1Departamento de Tecnologías de la Información, Escuela Superior Politécnica de Chimborazo, Riobamba, Ecuador, 060150

2Facultad de Ingeniería, Universidad Nacional de Chimborazo, Riobamba, Ecuador, 060108; janeth.guaman@unach.edu.ec; sandra.contento@unach.edu.ec


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

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 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.

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).

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

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.

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.

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 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.

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 30 minutos, este número corresponde al nú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.

Resultados de las pruebas de rendimiento

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.

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.

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.

Tabla 1: Medición tiempo promedio de respuesta de página. 

Librería Estadístico Error estándar
RichFaces Media 252.49 12.250
PrimeFaces Media 132.85 0.402

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
PrimeFaces 384 323,69 124298,00
Total 768
Estadísticos de pruebaa
U de Mann-Whitney 50378.0 W de Wilcoxon 124298.0
Z -7.598 Significancia asintótica (bilateral) 0.0

Figura 1 Arquitectura - pruebas de rendimiento con Neoload. 

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 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 Error estándar
RichFaces Media 232,49 12,250
PrimeFaces Media 132,85 7,402

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 tiempo_respuesta Ajax RichFaces 384 445,31 170998,00
PrimeFaces 384 323,69 124298,00
Total 768
Estadísticos de Prueba de Mann-Whitney Estadísticos de prueba
U de Mann-Whitney 50345,000 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; ver tabla 5

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

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. [ Links ]

Bill, G. (2002). Codenotes for J2EE. EJB, JDBC, JSP, and Servelets. New York: Random House Trade Paperbacks. [ Links ]

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. [ Links ]

Jacobi, J. & Fallows, J. (2006). Pro JSF and AJAX. Building Rich Internet Components. New York: Springer-Verlag. [ Links ]

Java. (2018). Java, Recuperado de https://www.java.com/es/about/ [ Links ]

Mateu, C. (2004). Desarrollo de Aplicaciones Web. Barcelona: Eureca Media, SL. [ Links ]

PrimeFaces. (2018). PrimeFaces, Recuperado de https://www.primefaces.org/ [ Links ]

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. [ Links ]

RichFaces. (2018). RichFaces, Recuperado de http://richfaces.jboss.org/ [ Links ]

Ríos, S. (2015). JSF 2 + Hibernate 4 + Spring 4: PrimeFaces 5 with JAX-WS y EJB’S. Java Revolutions. Edición Kindle. [ Links ]

Recibido: 06 de Mayo de 2018; Aprobado: 06 de Junio de 2018

* Correspondencia: dpalacios@unach.edu.ec

Creative Commons License Este es un artículo publicado en acceso abierto bajo una licencia Creative Commons