Show simple item record

Professor Advisordc.contributor.advisorBastarrica Piñeyro, María Cecilia
Authordc.contributor.authorRamírez Gutiérrez, Manuel Alejandro 
Associate professordc.contributor.otherBaloian Tataryan, Nelson
Associate professordc.contributor.otherFarías Riquelme, Andrés
Admission datedc.date.accessioned2019-08-07T14:34:51Z
Available datedc.date.available2019-08-07T14:34:51Z
Publication datedc.date.issued2019
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/170537
General notedc.descriptionMemoria para optar al título de Ingeniero Civil en Computaciónes_ES
Abstractdc.description.abstractSoyMomo es un reloj-celular-GPS para niños que permite a los padres -entre otras funciones- saber dónde se encuentran y poder hacer llamadas desde y hacia el reloj, a través de aplicaciones móviles. Estos relojes tienen un módulo GSM (2G) y se comunican a un servidor a través de sockets TCP. El sistema se compone de un servidor desarrollado en Node.js y un sistema de Backend as a Service que almacena la base de datos. Debido al sostenido aumento de usuarios de éste, el servidor ha alcanzado el límite de capacidad, utilizando todos los recursos que estaba diseñado para usar. Este límite sin embargo, no es el límite del sistema, por lo tanto existían oportunidades de mejora. Además, también se alcanzaba el límite de consultas por segundo en la base de datos, lo que provocaba la pérdida de información debido a que el servidor rechazaba las consultas sobre ese límite. Se realizó una reingeniería del servidor, identificando los puntos más críticos de falla: diseño, rendimiento y optimización de consultas; y se reescribió el \textit{software} utilizando el lenguaje Go, aplicando conceptos de paralelismo y concurrencia, con el fin de mejorar el rendimiento y crear un sistema escalable. Para esto, se reestructuró el programa en secciones pequeñas de código capaces de ejecutarse de forma concurrente, con el fin de utilizar las bondades del \textit{scheduler} lenguaje, que es capaz de repartir el trabajo entre todos los \textit{cores} disponibles del procesador. Además, se creó una sección central que se encarga de agrupar consultas a la base de datos y enviarlas en lotes, permitiendo atender a la misma cantidad de clientes con menos recursos. Finalmente se pudo concluir que las mejoras planificadas cumplen con lo propuesto, realizando una utilización óptima de los recursos del sistema, al lograr atender un 19\% más de clientes con lel mismo número de consultas; eliminando la pérdida de información y rebajando el uso de CPU a menos del 20\%.es_ES
Lenguagedc.language.isoeses_ES
Publisherdc.publisherUniversidad de Chilees_ES
Type of licensedc.rightsAttribution-NonCommercial-NoDerivs 3.0 Chile*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/*
Keywordsdc.subjectReingenieríaes_ES
Keywordsdc.subjectIngeniería de softwarees_ES
Keywordsdc.subjectSoyMomoes_ES
Keywordsdc.subjectAplicaciones movileses_ES
Keywordsdc.subjectMultithreadinges_ES
Títulodc.titleReingeniería back-end SoyMomoes_ES
Document typedc.typeTesis
Catalogueruchile.catalogadorgmmes_ES
Departmentuchile.departamentoDepartamento de Ciencias de la Computaciónes_ES
Facultyuchile.facultadFacultad de Ciencias Físicas y Matemáticases_ES


Files in this item

Icon
Icon

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs 3.0 Chile
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs 3.0 Chile