ATRIBUTO DE CALIDAD:
DESEMPEÑO
Introducción
Desempeño: Rapidez con que el sistema realiza su
actual carga de trabajo
Escalabilidad: Se enfoca en la previsibilidad del
desempeño del sistema a medida que la caga de
trabajo aumenta
Preocupaciones
Tiempo de Respuesta
Grado de reacción: La rapidez del sistema en responder a la carga de trabajo de rutina, p.e. solicitudes interactivas de usuarios Segundos Ejemplo: Bajo una carga de 350 transacciones de
actualización por minuto, el 98% de las transacciones debe retornar el control al usuario dentro de los
siguientes 3 segundos siguientes al envío de la solicitud vía Web
Preocupaciones (2)
Tiempo de Respuesta
Tiempos de entrega: Tiempo tomado para completar tareas largas Minutos u horas
Ejemplo: Debe ser posible sincronizar el sistema con todas las estaciones de monitoreo de la línea de
producción y resetear la base de datos para reflejar el estado actual de dicha línea en no más de 5 minutos. Ninguna transacción de actualización será procesada durante dicho período de sincronización.
Preocupaciones (3)
Rendimiento
Cantidad de carga de trabajo que el sistema es capaz de manejar en un periodo de tiempo
Entre más corto sea el procesamiento de una
transacción, más alto es el rendimiento del sistema A medida que el la carga del sistema aumenta, el
tiempo de respuesta de las transacciones individuales tiende a aumentar también
Debido a esto es muy posible que las metas de rendimiento sean logradas sólo a expensas de las metas de tiempo de respuesta o viceversa
Preocupaciones (4)
Previsibilidad
Transacciones similares deben ser completadas en cantidades muy similares de tiempo,
independientemente de cuando son ejecutadas A menudo es una cualidad más deseable que el
rendimiento absoluto
Ejemplo: Un sistema de servicio al cliente utilizado por agentes comerciales para obtener información de
clientes que efectúan solicitudes telefónicamente,
necesita ofrecer un tiempo predecible por transacción de 1 a 5 segundos
Aplicabilidad a Puntos de Vista
Funcional
El análisis de desempeño puede revelar la necesidad de cambios y compromisos para lograr una estructura funcional adecuada
Los modelos de esta vista pueden proporcionar entradas para la construcción de modelos de desempeño
Aplicabilidad a Puntos de Vista (2)
Información
El análisis de desempeño puede identificar aspectos de la vista de información como obstáculos para el
cumplimiento de requisitos de desempeño Este punto de vista permite:
Identificar recursos compartidos y los requerimientos de
transaccionalidad para cada uno de ellos
Sugerir elementos de esta vista que pueden ser
Aplicabilidad a Puntos de Vista (3)
Concurrencia
El análisis de desempeño puede:
Identificar problemas como el uso excesivo de un recurso
clave en un momento determinado
Resultar en que la concurrencia se convierta en el
elemento de diseño más importante
Los elementos de esta vista (i.e. Mecanismos de
comunicación entre componentes - Conectores) pueden proporcionar métricas de calibración para los modelos de desempeño
Aplicabilidad a Puntos de Vista (4)
Despliegue
El análisis de desempeño normalmente sugiere cambios y refinamientos en el ambiente de despliegue del
sistema
A su vez, muchas partes de los modelos de desempeño son derivados de los contenidos de esta vista, ya que proporcionan un número de métricas críticas de
Actividades
Actividades (2)
1.
Capturar los requerimientos de desempeño
Especificar requisitos de tiempo de respuesta Especificar requisitos de rendimiento
Especificar requisitos de escalabilidad
2.
Crear modelos de desempeño
Identificar la estructura crítica de desempeño Identificar las métricas claves de desempeño Estimar las métricas de desempeño
Actividades (3)
3.
Analizar los modelos de desempeño
Caracterizar la carga de trabajo: Priorizar y estimar el volumen de cada tipo de requisitos que el sistema debe manejar
Estimar el desempeño
4.
Ejecutar pruebas prácticas
Medir las métricas de desempeño
5.
Evaluar contra los requerimientos
6.Rehacer la arquitectura
Pensando acerca de Desempeño
La meta de las tácticas de desempeño es generar
una respuesta a un evento que llega al sistema
dentro de alguna restricción de tiempo
Dos aspectos básicos a tener en cuenta son:
Consumo de recursos
Tiempo de bloqueo de recursos
Luego de que un evento llega, el sistema está
procesando dicho evento o el procesamiento está
bloqueado por alguna razón
Pensando acerca de Desempeño (2)
Consumo de Recursos
Unidad Central de Procesamiento (CPU) Unidades de almacenamiento de datos Ancho de banda
Memoria
Tiempo de Bloqueo
Un cálculo puede ser bloqueado porque:
El recurso está en uso
El recurso no está disponible
El cálculo depende del resultado de otros cálculos que no
Ejemplo de Modelo de Desempeño
Latencia (tiempo para ejecutar un evento)
Puede sólo ser afectada por el cambio en uno de los parámetros
Parameters: Arrival rate Scheduling algorithm Service time Topology Network bandwidth Routing algorithm
Administrando Desempeño
Las decisiones de arquitectura deben controlar los
parámetros de un modelo de desempeño:
Arrival rate Restringir acceso a recursos Service time
Incrementar la eficiencia computacional (algoritmos)
Reducir la sobrecarga (reducir comunicación entre procesos, usar pools de threads, utilizar pool de conexiones a bases de datos, etc.) Utilizar procesadores rápidos
Scheduling algorithm First-Come First Served (FCFS),
priridades dinámicas, etc.
Topology Adicionar/eliminar procesadores
Network bandwidth Redes rápidas
Architectural Tactics
Performance tactic categories and their goals:
Control Resource demand: Reduce or manage the demand
for resources
Manage Resources: Manage resources even though the
demand for resources is not controllable
Arbitrate Resources: Control contention for resources
Architectural Tactics (2)
Resource demand:
Increase computational efficiency: Improving
algorithms used in critical areas will have the effect of decreasing latency
Reduce computational overhead: reducing the need for and use of resources, thereby reducing processing Manage event rate: Reducing the arrival rate of
variables to which the system monitors or responds
Control frequency of sampling: Queuing the arrival of events and sample at a lower frequency
Architectural Tactics (3)
Resource management:
Introduce concurrency: Processing requests in parallel thereby reducing blocked time
Maintain multiple copies: Reducing the contention that would occur if all data were accessed at a single location or computations were performed on a single resource
Increase available resources: using more and/or faster processors, more and/or faster memory, more and/or faster networks, and so forth
Architectural Tactics (4)
Resource arbitration:
Scheduling policy: Analyzing the usage characteristics of each resource and choose compatible scheduling strategies
First in first out: Treats all requests as equals
Fixed priorities: Assigns resources in fixed order of priority
Dynamic priorities: Re-orders priorities (round robin) or schedule those resources with the earliest deadlines Static scheduling: Preemption and the sequence of
priority assignments are determine offline (compile time)
Algunos problemas
Metas imprecisas de desempeño
Construcción de modelos poco realistas
Partición de procesamiento inapropiado
Supuestos inválidos con respecto al ambiente y la
plataforma
Poca importancia a la ubicación física de los
recursos
Material preparado por
Referencias
1. Rozanski Nick, Woods Eoin. Presentation on Software
Architecture with Viewpoints and Perspectives. BCS SPA
Specialist Group, 6th July 2005
2. Len Bass et Al. Software Architecture in Practice.
Second Edition, Addison Wesley, 2007
3. Len Bass, Paul Clements, Rick Kazman. Aspectos
Avanzados en Arquitectura de Software. Universidad de