scieee AI-readable full text Open interactive document viewer

Perses: Un framework para evaluar la Calidad de Servicio en aplicaciones móviles distribuidas

Laso, Sergio; Berrocal, Javier; Fernández Montes, Pablo; Ruiz Cortés, Antonio; Murillo, Juan M.

Abstract

Las crecientes capacidades de los dispositivos finales han llevado al despliegue masivo de aplicaciones móviles distribuidas. El éxito de estas aplicaciones depende en gran medida de la Calidad del Servicio (QoS) que ofrecen. Esta calidad es especialmente difícil de evaluar debido al gran número de entidades implicadas y a su heterogeneidad. Las herramientas actuales de evaluación no dan soporte a este tipo de aplicaciones, suelen centrarse en la evaluación de la QoS proporcionada por una sola entidad. Sin embargo, la QoS de las aplicaciones distribuidas no sólo depende de la QoS de cada entidad, también hay que evaluar las interacciones entre las entidades. En este artículo se presenta un framework, denominado Perses, para lanzar entornos virtuales que permitan simular y evaluar la ejecución de aplicaciones móviles distribuidas. Esta simulación proporciona resultados de la QoS alcanzada. Además, el framework se ha integrado en una metodología DevOps para automatizar su ejecución. Vídeo de presentación— https://youtu.be/wpIApe_sPFE

Full text

Perses: Un framework para evaluar la Calidad de Servicio en aplicaciones m´oviles distribuidas Sergio Laso1, Javier Berrocal1, Pablo Fern´andez2, Antonio Ruiz-Cort´es2and Juan M. Murillo1 1University of Extremadura, Spain {slasom, jberolm, juanmamu}@unex.es 2University of Sevilla, Spain {pablofm, aruiz}@us.es Abstract. Las crecientes capacidades de los dispositivos finales han llevado al despliegue masivo de aplicaciones m´oviles distribuidas. El ´exito de estas aplicaciones depende en gran medida de la Calidad del Servicio (QoS) que ofrecen. Esta calidad es especialmente dif´ıcil de evaluar debido al gran n´umero de entidades implicadas y a su heterogeneidad. Las herramientas actuales de evaluaci´on no dan soporte a este tipo de aplicaciones, suelen centrarse en la evaluaci´on de la QoS proporcionada por una sola entidad. Sin embargo, la QoS de las aplicaciones distribuidas no s´olo depende de la QoS de cada entidad, tambi´en hay que evaluar las interacciones entre las entidades. En este art´ıculo se presenta un framework, denominado Perses, para lanzar entornos virtuales que permitan simular y evaluar la ejecuci´on de aplicaciones m´oviles distribuidas. Esta simulaci´on proporciona resultados de la QoS alcanzada. Adem´as, el framework se ha integrado en una metodolog´ıa DevOps para automatizar su ejecuci´on. V´ıdeo de presentaci´on—https://youtu.be/wpIApe_sPFE Keywords: Aplicaciones M´oviles Distribuidas; Calidad de Servicio; DevOps; Entorno Virtual 1 Introducci´on El ´exito o el fracaso de cualquier aplicaci´on m´ovil depende de dimensiones, como la publicidad, la viralidad o la Calidad del Servicio (QoS) proporcionada [7].Una mala calidad llevar´a a los usuarios a rechazar r´apidamente la aplicaci´on. Estas aplicaciones se desarrollan normalmente utilizando un estilo arquitect´onico cliente-servidor. Los componentes inform´aticos m´as exigentes se despliegan normalmente en entornos cloud debido a su gran capacidad de computaci´on y almacenamiento. Los componentes b´asicos se despliegan en el lado del cliente, ya que sus requisitos de computaci´on suelen ser bajos y pueden ser ejecutados por casi cualquier dispositivo m´ovil. Durante los ´ultimos a˜nos, las capacidades de computaci´on y almacenamiento de los dispositivos m´oviles han aumentado significativamente [3], provocando la aparici´on de nuevos paradigmas centrados en su explotaci´on, como los Microservicios Humanos [8] o Mist Computing [11]. Estos paradigmas permiten a los 2 S. Laso et al. desarrolladores cargar algunas funcionalidades de computaci´on en los dispositivos m´oviles para mejorar la QoS y ser m´as competitivos a nivel empresarial. En las aplicaciones distribuidas, tanto el cloud como el lado cliente/m´ovil tienen componentes de computaci´on y almacenamiento. Por lo tanto, la evaluaci´on de la QoS debe combinar la evaluaci´on conjunta del lado del servidor y del lado m´ovil, as´ı como de la interacci´on entre ambos. S´olo la evaluaci´on conjunta de las tres dimensiones permitir´ıa predecir con suficiente precisi´on la QoS esperada. Adem´as, suele tratarse de entornos heterog´eneos (diferentes dispositivos m´oviles), siendo a´un m´as dif´ıcil predecir la QoS esperada. Actualmente, existen diferentes plataformas que permiten evaluar el comportamiento de aplicaciones m´oviles no distribuidas en entornos heterog´eneos. AWS Device Farm [10] y Azure App Center Test [1] permiten a los desarrolladores probar diferentes dispositivos con diferentes configuraciones. Sin embargo, se centran en la evaluaci´on de tests de interfaz de usuario (mediante Appium3, Espresso 4, etc.). Por lo tanto, no est´an dise˜nadas para medir los atributos de QoS. En este art´ıculo, presentamos un framework, denominado Perses [9], para evaluar la QoS de las aplicaciones m´oviles distribuidas. Para ello, permite definir y desplegar entornos virtuales personalizados, con m´ultiples dispositivos virtuales heterog´eneos, en los que los desarrolladores pueden simular el despliegue de la aplicaci´on m´ovil distribuida y lanzar tests de rendimiento para evaluar diferentes atributos de la QoS.Adem´as, este framework se ha integrado completamente en una metodolog´ıa DevOps [2], reduciendo el esfuerzo de evaluaci´on de la QoS antes de desplegar la aplicaci´on en producci´on. El resto del art´ıculo se estructura de la siguiente forma: La Secci´on 2 explica las caracter´ısticas de Perses y su arquitectura. La Subsecci´on 2.1 describe un caso de uso para la demo. Finalmente, la Secci´on 3 presenta las conclusiones. 2 Perses Perses es un framework que permite a los desarrolladores desplegar f´acilmente un entorno virtual con m´ultiples dispositivos virtuales heterog´eneos para evaluar la QoS de una aplicaci´on distribuida. Para utilizarlo, s´olo hay que definir un fichero de configuraci´on con las caracter´ısticas del entorno, los tests a ejecutar y los umbrales deseados de los atributos de calidad. Perses est´a totalmente integrado en una metodolog´ıa DevOps, siendo capaz de automatizar todos los diferentes pasos que se deben ejecutar durante el proceso de evaluaci´on.Adem´as es totalmente escalable, permitiendo evaluar aplicaciones con un gran n´umero de dispositivos virtualizados. La Figura 1 muestra un diagrama general de la arquitectura de Perses. Perses consta de dos componentes: Perses Launcher, centrado en la definici´on y configuraci´on del entorno virtual, y Perses Virtual Environment, encargado de crear el entorno heterog´eneo y ejecutar los tests definidos. Cada componente tiene diferentes m´odulos que se explican a continuaci´on: 3http://appium.io/ 4https://developer.android.com/training/testing/espresso 3 – Setup: este m´odulo se encarga de validar y extraer las caracteristicas del fichero de configuraci´on para los dem´as m´odulos. – Deployment: este m´odulo toma como entrada las caracteristicas obtenidas en el m´odulo anterior y se encarga de crear y desplegar todo el entorno virtual. Este m´odulo tiene una capa de abstracci´on que encapsula Terraform [6]. Adem´as, orquesta el entorno virtual instalando los recursos necesarios, creando los dispositivos m´oviles virtuales y desplegando la aplicaci´on. – Tests Execution: este m´odulo se encarga de ejecutar y analizar los tests definidos en el fichero de configuraci´on. Perses permite ejecutar tests de rendimiento y de interfaz de usuario. Los tests de rendimiento eval´uan la QoS de la aplicaci´on utilizando APIPecker [4]. Los tests de interfaz de usuario permiten ejecutar tests desarrollados con Espresso. – CI Manager: este m´odulo se encarga de la integraci´on con DevOps. Automatiza la ejecuci´on de los diferentes m´odulos. Esta automatizaci´on se realiza a trav´es de un flujo de trabajo definido con GitHub Actions [5]. Fig. 1. Arquitectura de Perses. 2.1 Caso de uso de la demo En esta demostraci´on, mostraremos a los asistentes c´omo funciona el marco Perses evaluando la QoS de una aplicaci´on m´ovil distribuida. Para ello, evaluaremos una aplicaci´on para ayudar a frenar la pandemia del Covid-19. Esta aplicaci´on proporciona el riesgo de contagio de una persona. La aplicaci´on se compone de un servidor y el lado m´ovil. El lado del servidor es el punto de acceso para que los usuarios obtengan el porcentaje de riesgo y, por lo tanto, tambi´en es responsable de calcular este riesgo. El lado m´ovil se encarga de guardar la localizaci´on de cada usuario y proporcionar al cloud los lugares/regiones en los que ha estado. 3 Conclusiones La QoS es una de las dimensiones clave para el ´exito o el fracaso de cualquier aplicaci´on. En los ´ultimos a˜nos, las capacidades de los dispositivos m´oviles han 4 S. Laso et al. aumentado considerablemente, dando lugar a aplicaciones con computaci´on distribuida en las que tanto el cloud como el lado m´ovil pueden tener componentes de computaci´on y almacenamiento con el objetivo de mejorar a´un m´as la QoS. Sin embargo, esta calidad depende de diferentes entidades y sus interacciones, que deben ser analizadas cuidadosamente. En este trabajo, presentamos un framework para el despliegue de un entorno virtual personalizado para evaluar la QoS de las aplicaciones m´oviles distribuidas. Actualmente, trabajamos en el an´alisis del impacto del uso. Agradecimientos Este trabajo ha sido parcialmente financiado por los proyectos RTI2018-094591- B-I00 (MCI/AEI/FEDER,UE), RTI2018-101204-B-C21, el Proyecto 4IE+ (0499- 4IE-PLUS-4-E) financiado por Interreg V-A Espa˜na-Portugal (POCTEP) 2014- 2020, por la red RCIS (TIN2016-81978-REDT), por la Consejer´ıa de Econom´ıa, Ciencia y Agenda Digital de la Junta de Extremadura (GR18112, IB18030), por la Junta de Andaluc´ıa (US-1264651) y el Fondo Europeo de Desarrollo Regional. References 1. Azure, M.: App center test. https://docs.microsoft.com/en-us/appcenter/ test-cloud/, (Accessed on 28/10/2020) 2. Bass, L., Weber, I., Zhu, L.: DevOps: A software architect’s perspective. Addison- Wesley Professional (2015) 3. Berrocal, J., Garcia-Alonso, J., Vicente-Chicote, C., Hern´andez, J., Mikkonen, T., Canal, C., Murillo, J.M.: Early analysis of resource consumption patterns in mobile applications. Pervasive and Mobile Computing 35, 32 – 50 (2017). https://doi.org/https://doi.org/10.1016/j.pmcj.2016.06.011, http://www. sciencedirect.com/science/article/pii/S1574119216300797 4. Fernandez, P.: API Pecker. https://www.npmjs.com/package/apipecker, (Accessed on 28/10/2020) 5. Github: Github actions. https://github.com/features/actions, (Accessed on 28/10/2020) 6. HashiCorp: Terraform. https://www.terraform.io/, (Accessed on 28/10/2020) 7. Kim, H.J., Lee, D.H., Lee, J.M., Lee, K.H., Lyu, W., Choi, S.G.: The qoe evaluation method through the qos-qoe correlation model. In: 2008 Fourth International Conference on Networked Computing and Advanced Information Management. vol. 2, pp. 719–725 (2008). https://doi.org/10.1109/NCM.2008.202 8. Laso, S., Berrocal, J., Garc´ıa-Alonso, J., Canal, C., Manuel Murillo, J.: Human microservices: A framework for turning humans into service providers. Software: Practice and Experience (2021) 9. Perses-org: Perses. https://github.com/perses-org/perses, note = (Accessed on 28/10/2020) 10. Service, A.W.: Aws device farm. https://aws.amazon.com/device-farm/, (Accessed on 28/10/2020) 11. Yousefpour, A., Fung, C., Nguyen, T., Kadiyala, K., Jalali, F., Niakanlahiji, A., Kong, J., Jue, J.P.: All one needs to know about fog computing and related edge computing paradigms: A complete survey. Journal of Systems Architecture (2019)