Entre los objetivos que pueden ser satisfechos para Escalar un sistema, propuestos por chiu, est'a el de ``Cambiar o reducir la carga sobre los componentes''. Como puede notarse en la Figura
que muestra un diagrama simplificado del despligue del Web Service (WS) del Sistema de Informaci'on de Actividades de Investigaci'on (SINAI), b'asicamente el sistema posee 3 componentes: Red, Servidor principal y Manejador de base de datos.
No es factible reducir la carga sobre los componentes de red o en el servidor principal. Pero es posible disminuir la carga del componente de base de datos a trav'es de un sistema de cache que evite realizar consultas que ya fueron hechas anteriormente (dentro de un tiempo estipulado). Este sistema estar'ia instalado dentro del componente de recepci'on de solicitudes, para que este pueda detectar si la consulta recibida ya fue procesada con anterioridad.
En la Figura
pueden verse las diferencias en cuanto al flujo del programa de las implementaciones: original y con gesti'on de cache. En la versi'on con gesti'on de cach'e han sido suprimidos los flujos de detecci'on de errores, como los de conexi'on a la base de datos, par'ametros de entrada, y otros controles de errores implementados, esto con la intenci'on de simplificar el entendimiento del sistema de gesti'on del cache (las funcionalidades suprimidas corresponden a cambios realizados para mejorar Mantenibilidad, Fiabilidad y Escalabilidad a trav'es de m'etodos de ``Mejoramiento de la eficiencia de los componentes o sistemas'').
|
Fuente: Elaboraci'on propia |
Cada vez que el WS recibe una solicitud, por parte de un cliente, el sistema verifica si existe en memoria el resultado de una consulta id'entica. En caso de que la respuesta sea positiva se procede a verificar que el tiempo de caducidad de este registro no se haya alcanzado. Si el cache sigue siendo v'alido se procede a retornar esta informaci'on, ahorr'andose as'i todo tiempo de consultar todas las bases de datos y de generar el XML correspondiente a la respuesta. En el caso supuesto que no se halle cache disponible y v'alido se procede a realizar el flujo normal del sistema. Justo antes de retornarle al cliente la respuesta, el sistema guarda una copia de los datos procesados, para futuras consultas.
Esta implementaci'on es de orden constante y produce una sobrecarga m'inima (dos lecturas y una escritura a disco). El tiempo consumido por este procesamiento espera ser compensado por el ahorro de tiempo en algoritmos de
.21 en el caso de consultas recurrentes que puedan ser respondidas desde los registros cache.