Proyecto final - Arquitectura EAM 2012

Enunciado:
Usted es un arquitecto de software de la empresa Gattaca S.A. que se dedica al análisis y comparación de ADN. Para la carga y procesamiento de muestras la compañía cuenta con una aplicación que tiene las siguientes características:

  • Se ejecuta sobre dos servidores de aplicaciones JBoss 6.1 corriendo sobre una máquina virtual Sun HotSpot 1.7 a 32 bits.
  • El primer servidor actúa como la interfaz de usuario final para consultar los resultados directamente sobre la base de datos y los reportes típicos son coincidencias entre 2 muestras de ADN, coincidencia de patrones con enfermedades genéticas y simulaciones sobre los efectos que podría tener una modificación sobre la secuencia.
  • El primer servidor de aplicaciones se utiliza como interfaz para cargar archivos de datos binarios que contienen las secuencias de ADN a procesar.
  • El primer servidor envía grupos de secuencias que son procesados por el segundo servidor y los resultados son almacenados en una base de datos NoSQL.
  • Cada archivo tiene aproximadamente 200.000 secuencias para procesar y el segundo servidor de aplicaciones está en capacidad de procesar 1000 concurrentes por cada núcleo de procesador disponible. Cada lote de 1000 secuencias se procesa en 60 segundos.
  • Gattaca S.A. recibe 10 archivos diarios
  • El servidor físico corre sobre un sistema operativo Windows 2003 server de 32 bits.
  • Los tres componentes se ejecutan sobre el mismo servidor físico.
  • Cada servidor de aplicaciones tiene 2 núcleos de procesador asignados y un heap de 1200 MB.
  • El servidor utilizado como interfaz para cargar archivos y para consultar resultados, mantiene un promedio de 20 usuarios autenticados y 8 peticiones concurrentes.

El siguiente es el diagrama de la aplicación que le fue entregado:

DiagramaProyectoFinal.jpeg

El nuevo sistema
Gattaca S.A. fue comprada por otra compañía multinacional encargada de procesar el 50% de las muestras de ADN en investigaciones jurídicas y el sistema actual debe ser modificado para cumplir con los nuevos niveles de carga.
La información con que se cuenta hasta ahora para el nuevo sistema es:

  • Se recibirán un promedio de 650 archivos diarios cuyos resultados deben ser entregados a lo sumo 3 días después.
  • El sistema de consulta se abrirá a los usuarios finales y se espera un promedio de 300 usuarios autenticados de forma simultánea desde todas las zonas horarias del mundo.
  • Para los usuarios de las entidades judiciales el sistema debe tener una disponibilidad 7x24 y tolerancia a fallos. Si hay problemas, el usuario debe tener la opción de recuperar la última información en la que estaba trabajando.

Desarrollo del proyecto y entregas
1. Especificación de requerimientos no funcionales:

  • Indique los requerimientos no funcionales más relevantes y los secundarios para la nueva versión del sistema.
  • Para cada requerimiento no funcional especifique una medición.
  • Especifique las características actuales del sistema en términos de:
    • Throughput real y máximo.
    • Consumo actual de recursos: CPU, Memoria RAM.
    • Seguridad.

Responder para cada el sistema actual y el nuevo:

1. ¿Cuántos archivos/secuencias/registros se están procesando por unidad de tiempo?
2. ¿Cuál sería el máximo que se puede atender por día?
3. ¿Cuántas peticiones de usuario se atienden por hora?
4. ¿Cuánto/cuánta CPU, red, disco, memoria se consume actualmente?

2. Diseñar 2 propuestas para la arquitectura lógica y física de la nueva versión indicando exactamente como va a lograr cumplir los requerimientos no funcionales.
La arquitectura debe contener:

  • Despliegue físico de la plataforma.
  • Recursos asignados a cada componente software o hardware.
  • Si usa virtualización, indicar cuantas instancias contiene cada servidor físico.
  • Memoria RAM (heap) y número de procesadores asignados a los servidores JBoss.
  • Si es necesario, mecanismos de balanceo de carga.
  • Arquitectura de software del sistema.
  • Especificar al menos 3 tácticas arquitectónicas utilizadas para cumplir con los requerimientos.

3. Acuerdos de niveles de servicio:

  • Indique como va a medir los acuerdos de niveles de servicio.
  • Especifique acuerdos de niveles de servicio para:
    • Disponibilidad (de acuerdo a las especificaciones del hardware seleccionado).
    • Tiempo de respuesta (básese en los resultados de un escenario de las pruebas de carga).
    • Seguridad.

4. Costos e infraestructura definitiva.
Seleccione una de las propuestas como implementación definitiva y seleccione el hardware y software real que utilizará para el montaje:

  • Seleccione un proveedor de hardware para los servidores e indique los costos de cada uno de los seleccionados.
  • Seleccione un proveedor de virtualización e indique los costos de la solución.
  • Seleccione un proveedor de seguridad e indique los costos de los componentes utilizados.
  • Seleccione proveedores de software para sistemas operativos, servidores de aplicaciones y bases de datos. Indique los costos de cada componente.
  • Tenga en cuenta que la nueva compañía exige que toda su plataforma de software y hardware cuente con soporte para solución de errores y actualizaciones.
Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License