Ingeniería de Sistemas · 2026
Sistema de Caché de Consultas a Base de Datos para la Plataforma “Comunidad Académica” (COMA)
La plataforma COMA es un proyecto universitario enfocado en brindar servicios académicos e institucionales. Es un proyecto de gran trayectoria con un mantenimiento activo desarrollado por el grupo CALUMET. Actualmente una de las problemáticas que tiene es que algunos módulos tienen rendimiento no deseable debido a la naturaleza de las consultas a base de datos que realizan. En este trabajo se exploran y analizan las estrategias para almacenamiento en caché. Se define una propuesta acorde a las limitaciones técnicas y humanas. Se implementa la propuesta usando un conjunto de tecnologías también analizado y se valida la efectividad de la propuesta a través de pruebas de rendimiento. Usando los datos se realizan un conjunto de gráficos estadísticos comunes, cómo gráfico de dispersión, de caja, de densidad de probabilidad, entre otros. Se analizan los resultados estadísticos para cuantificar la diferencia entre el sistema normal y el sistema propuesto. Se describen los hallazgos producto del análisis y se explica cómo el grupo CALUMET puede aprovechar los resultados de este trabajo. También se hacen observaciones sobre otros hallazgos que pueden ser utilizados en trabajos futuros y cómo puede mejorarse el sistema propuesto con miras de agregar más funcionalidades, proveer más estabilidad, facilitar la integración en nuevos módulos y mejorar aún más el rendimiento.
Texto completo 80 páginas con texto
Leer la tesis completa Ficha en el repositorio
Contenido
- Introducciónp. 15
- 1. Planteamiento del Problemap. 17
- 2. Justificación del Proyectop. 17
- 3. Objetivosp. 19
- 3.1. Objetivo Generalp. 19
- 3.2. Objetivos Específicosp. 19
- 4. Marco Teóricop. 20
- 4.1. Almacenamiento en Cachép. 20
- 4.1.1. Estrategias de Cachép. 20
- 4.2. Latenciap. 22
- 4.3. Redisp. 22
- 4.4. Sistema de Gestión de Base de Datosp. 22
- 4.5. MySQLp. 22
- 4.6. Javap. 22
- 4.7. Dockerp. 23
- 4.8. Mantenibilidad en el Softwarep. 23
- 5. Metodologíap. 23
- 5.1. Análisis del Contexto Actualp. 23
- 5.2. Propuesta de Soluciónp. 24
- 5.3. Implementación de Soluciónp. 24
- 5.4. Pruebas de Rendimientop. 25
- 5.5. Desplieguep. 25
- 6. Desarrollo de Proyectop. 26
- 6.1. Análisis del Contexto Actualp. 23
- 6.1.1. Adaptación a la Base del Códigop. 24
- 6.1.2. Módulos para Optimizaciónp. 32
- 6.2. Propuesta de Soluciónp. 24
- 6.2.1. Análisis de las Posibles Solucionesp. 24
- 6.2.2. Definición de Requerimientos Funcionalesp. 24
- 6.2.3. Diseño de la Arquitectura Finalp. 24
- 6.2.3.1. Infraestructura del sistema de cachép. 35
- 6.2.3.2. Arquitectura del sistema de cachép. 35
- 6.3. Implementación de la Soluciónp. 38
- 6.3.1. Selección del Conjunto de Tecnologíasp. 24
- 6.3.2. Codificaciónp. 25
- 6.3.3. Documentación Técnicap. 25
- 6.4. Pruebas de Rendimientop. 25
- 6.4.1. Plan de Pruebasp. 25
- 6.4.2. Condiciones Técnicas para el Plan de Pruebasp. 25
- 6.4.3. Comparación de Muestrasp. 25
- 6.4.3.1. Nivel 1p. 46
- 6.4.3.2. Nivel 2p. 51
- 6.4.3.3. Nivel 3p. 55
- 6.4.3.4. Nivel 4p. 59
- 6.4.3.5. Nivel 5p. 63
- 6.5. Desplieguep. 25
- 6.5.1. Configuración del Entorno de Producciónp. 25
- 6.5.2. Monitorizaciónp. 25
- 7. Conclusionesp. 71
- Referencias bibliográficasp. 73
- Apéndicesp. 75
- Tabla 1 Descripción general del propósito de cada componentep. 35
- Tabla 2 Tecnologías candidatas para implementar la infraestructurap. 37
- Tabla 3 Niveles del plan de pruebasp. 43
- Tabla 4 Especificaciones de técnicas del equipo de pruebasp. 43
- Figura 1 Representación para la arquitectura de COMAp. 25
- Figura 2 Visualización del botón de eliminar notasp. 26
- Figura 3 Mensaje generado por la eliminación de notas de una actividad (laboratorio)p. 27
- Figura 4 Contenido del mensaje generado cuando se encuentran diferenciasp. 28
- Figura 5 Visualización de la anterior interfaz para la gestión de externosp. 30
- Figura 6 Diagrama de la infraestructura del sistema finalp. 34
- Figura 7 Diagrama de componentes del sistema externop. 35
- Figura 8 Árbol de paquetesp. 40
- Figura 9 Ejemplo de la convención de clases en el paquete "Register"p. 41
- Figura 10 Javadoc del sistema de cachép. 42
- Figura 11 Códigos de respuesta para 1rpsp. 45
- Figura 12 Gráfico de caja para 1rpsp. 46
- Figura 13 Dispersión de tiempo total contra latencia para 1rpsp. 47
- Figura 14 Curvas de densidad para 1rpsp. 48
- Figura 15 Serie de tiempo para 1rpsp. 49
- Figura 16 Gráfico de caja para 3rpsp. 50
- Figura 17 Dispersión de tiempo total contra latencia para 3rpsp. 51
- Figura 18 Curvas de densidad para 3rpsp. 52
- Figura 19 Serie de tiempo para 3rpsp. 53
- Figura 20 Gráfico de caja para 5rpsp. 54
- Figura 21 Dispersión de tiempo total contra latencia para 5rpsp. 55
- Figura 22 Curvas de densidad para 5rpsp. 56
- Figura 23 Serie de tiempo para 5rpsp. 57
- Figura 24 Gráfico de caja para 7rpsp. 58
- Figura 25 Dispersión de tiempo total contra latencia para 7rpsp. 59
- Figura 26 Curvas de densidad para 7rpsp. 60
- Figura 27 Serie de tiempo para 7rpsp. 61
- Figura 28 Códigos de respuesta para 10rpsp. 62
- Figura 29 Gráfico de caja para 10rpsp. 63
- Figura 30 Dispersión de tiempo total contra latencia para 10rpsp. 64
- Figura 31 Curvas de densidad para 10rpsp. 65
- Figura 32 Serie de tiempo para 10rpsp. 66
- Figura 33 Ejemplo para despliegue en contenedoresp. 67
- Figura 34 Configuración para habilitar el mensajes de la aplicaciónp. 68
- Apéndice B. Registro de nuevas consultas para almacenar en la cachép. 76
- Apéndice C. Permitir consultas con o sin filtrosp. 77
- Apéndice D. Permitir consultas combinadasp. 78
- Apéndice E. Limpieza de datos que ya no son tan usadosp. 79
- Apéndice F. Monitor de estado del sistemap. 80