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)