S3 Experimento de Disponibilidad‐Diseño - ARQUISOFT-202510-GPTAbusers/PROYECTO_2025 GitHub Wiki

Especificación del experimento

Título del experimento Evaluación del Tiempo de Notificación de Fallas Críticas al Médico Usuario
ASRs involucrados Yo como medico usuario del sistema del hospital, dado que el sistema se está recuperando de una falla, quiero ser informado de la falla en la pagina principal del sistema del hospital. Este mensaje debe ser mostrado máximo 5 minutos después del inicio de la falla.
Propósito del experimento Evaluar si el diseño planteado satisface el ASR involucrado.
Resultados esperados Se muestre un aviso sobre la falla en un tiempo menor a 5 minutos despues de ocurrida.
Infraestructura computacional requerida Balanceador de carga en GCP, Circuit Breaker, instancias VM en GCP para ejecutar el servidor de la base de datos, Computador personal para ejecutar el sistema
Descripción del experimento Se consultaran historias clinicas en la base de datos con cedulas erroneas y despues del segundo fallo el sistema deberia desabilitarse por 60 seg y mostrar el mensaje sobre el fallo del sistema.
Plan de uso IAG No Aplica

Elementos de arquitectura

  • Diagrama de componentes image.png

  • Diagrama de despliegue image.png

Estilos de arquitectura

  • MTV (Model-Template-View): Django tiene este estilo incorporado, asi que al usarlo, lo acoplamos mejor a su arquitectura. Ademas, que se organiza el codigo de manera clara, organizada y permite que sea reutilizable.
  • Capas: El estilo por capas en nuestro caso encaja bien para darle a cada parte de la aplicacion una responsabilidad especifica. Se usaron tres capas en la construccion de la aplicacion: Primero la de presentacion donde se incluyen los templates y las vistas de MTV, y muestra la informacion al usuario. Segundo, esta la capa de negocio donde se encarga de manejar las procesos internos y reglas de negocio. Por ultimo la capa de persistencia que se encarga de acceder a la base de datos para obtener las historias.

Tácticas/patrones de arquitectura

  • Fallar con gracia: Cuando ocurra un fallo el sistema reconoce el error y notifica al usuario sobre el problema. De esta manera se beneficia la disponibilidad del sistema al tener más control de los fallos del sistema y asi poder manejar y responder errores.

  • Circuit Breaker: Se usa para poder detectar fallos en las peticiones del sistema. Ya que una vez se está por debajo del umbral de “sanidad”, el circuito se abre, y todas las peticiones retornarán un error, sin proteger así el llamado.

Tecnologías

  • Google Cloud: Lo utilizamos porque permite crear y configurar fácilmente el balanceador de carga, Circuit Breaker, junto con las instancias de VM, y asi podemos gestionar el tráfico para las pruebas en el experimento.

  • Django: Framework principal del sistema, lo utilizamos por su arquitectura MTV, que facilita la separación de responsabilidades entre presentación, lógica y acceso a datos. Nos provee herramientas que permitieron implementar rápidamente las funcionalidades requeridas.

  • Faker: Lo utilizamos para poblar la base de datos mediante la creacion de datos falsos pero realistas.

  • pybreaker: Para poder detectar la cantidad de fallos en el sistema y que este se dehabilite por 60 segundos