Académique Documents
Professionnel Documents
Culture Documents
3.2. Desempeño
A pesar de que para muchas aplicaciones de IT, desempeño no es realmente un
problema, es un enfoque en la comunidad de los atributos de calidad. Se sospecha que es
así porque es una de las cualidades de una aplicación que pueden ser a menudo
cuantificados y validados. Cualquiera que sea la razón, cuando el desempeño importa, es
realmente importante. Las aplicaciones en donde su desempeño es pobre en algún
aspecto crítico de su comportamiento a menudo se convierte en un atropellamiento en la
carretera de la ingeniera de software.
Un requerimiento de calidad de desempeño define una métrica que indica la cantidad de
trabajo que una aplicación debe de realizar en un determinado tiempo y/o plazo que debe
cumplir para el correcto funcionamiento. Pocas aplicaciones de IT tiene un tiempo real
muy duro como limitante como los que podemos encontrar en sistemas militares o
robóticos, donde si alguna salida es producida en un milisegundo o tres ya es demasiado
tarde, realmente cosas repugnantes y no deseables pueden suceder. Pero muchas
aplicaciones necesitan procesar cientos, algunas veces miles y decenas de miles de
transacciones cada segundo y estos son encontrados en muchas grandes
organizaciones, especialmente en los mundos de finanzas, telecomunicaciones y
gobierno.
Desempeño usualmente se manifiesta asimismo en las siguientes características.
3.2.1. Rendimiento.
Rendimiento es una característica de la cantidad de trabajo que una aplicación debe de
realizar en una unidad de tiempo. El trabajo es típicamente caracterizado en
transacciones por segundo (tps) o mensajes procesados por segundo (mps).por ejemplo
una aplicación bancaria en línea podría tener que garantizar que puede ejecutar 1000
transacciones por segundo a los clientes desde banco por Internet. Un inventario del
sistema de administración para un almacén grande puede necesitar procesar 50
mensajes por segundo desde socios comerciales.
Es importante entender precisamente lo que se entiende por un requerimiento de
rendimiento. Es el rendimiento promedio durante un periodo de tiempo determinado o un
rendimiento máximo? Esto es una distinción crucial.
Una ilustración de esto es una aplicación para hacer apuestas en eventos como una
carrera de caballos. La mayoría del tiempo una aplicación de este tipo hace poco trabajo,
y por lo tanto el requerimiento promedio de rendimiento es bajo fácil de realizar.
Pero todo el tiempo hay un evento de carrera, por lo tanto cada tarde, el periodo de 5 o
menos minutos antes de cada carrera se ve cientos de apuestas en el mismo segundo. Si
la aplicación no es capaz de procesar estas apuestas, entonces el negocio pierde dinero y
los usuarios se disgustan. Por lo tanto para este escenario, la aplicación debe ser
diseñada para satisfacer es anticipadamente, rendimiento máximo y no promedio de
rendimiento. De hecho, soportando solo promedio de rendimiento seria un desastre.
3.3. Escalabilidad
Vamos a empezar con una definición representativa de la escalabilidad.
“como una buena solución a un problema va a funcionar cuando el tamaño del problema
aumenta”
Esto es muy usual en un contexto de arquitectura. Nos dice que la escalabilidad es acerca
de cómo un diseño puede hacer frente con algún aspecto de los requerimientos que
aumentan de tamaño en la aplicación. Para que se concrete el requisito de atributo de
calidad, necesitamos entender exactamente que es lo que se espera para ser grande.
Aquí hay algunos ejemplos.
3.3.4. Implementacion.
Como los esfuerzos son involucrados en la implementacion o modificacion de una
aplicación para un incremento base. Este podria incluir esfuerzos para distribución,
configuración y actualizacion con nuevas versiones. Una solucion ideal podria proveer
mecanismos automaticos que puede desplegar y configurar dinámicamente una
aplicación al nuevo usuario, registrando la captura de la información en un proceso. Esto
es de hecho exactamente como muchas aplicaciones son distribuidas hoy en dia en
Internet.
3.5 Seguridad
Seguridad es un tema técnico complejo que puede solo ser tratado con un poco de
superficialidad. Seguridad se reduce al entendimiento de los requerimientos precisos de
seguridad para una aplicación y la elaboración de mecanismos para soportarlos. Los
requerimientos más comunes relacionados con seguridad son:
• Autentificación: aplicaciones que verifican la identidad de sus usuarios y otras
aplicaciones con las cuales se comunican.
• Autorización: Autentifica los usuarios y aplicación que tiene derechos definidos
de acceso a los recursos del sistema. Por ejemplo algunos usuarios pueden tener
solo acceso de lectura a los datos de la aplicación mientras que otros tienen de
lectura y escritura.
• Encriptación: los mensajes enviados para/desde de la aplicación son encriptados
• Integridad: esta asegura que el contenido del mensaje en transito no se
alterado.
• No-repudio: el remitente del mensaje tiene una prueba de envio y el receptor se
asegura de la identidad del remitente. Esto significa que no puede negar su
participación en el mensaje.
Estos son bien conocidos y tecnologias ampliamente usadas para soportar estos
elementos de seguridad. El (SSL) protocolo de capa de conexión segura y la
infraestructura de clave publica (PKI) son comúnmente usadas en aplicación de Internet
para proveer autentificación, encriptación y no repudio.
3.6 Disponibilidad
Disponibilidad esta relacionada a la fiabilidad de una aplicación. Si una aplicación no esta
disponible para ser usada cuando se necesita, entonces es poco probable que este
cumpliendo sus requerimientos funcionales. Disponibilidad es relativamente facil de
medir. En terminos de especificación muchas aplicaciones de IT deben de estar
disponibles al menos durante horas de oficina. La mayoria de los sitios de Internet desean
un 100% de disponibilidad, porque en el Internet no existen horarios de oficina.
Fallas en aplicaciones pueden causar que no esten disponibles. Las fallas atacan en la
fiabilidad de una aplicación, la cual usualmente es medida por el tiempo entre fallas. La
duracion de cualquier periodo de no disponibilidad esta determinado por la cantidad de
tiempo que toma detectar la falla y reiniciar el sistema.
Replicar los componentes es una estrategia tratada y probada para la alta disponibilidad.
Cuando la replica de un componente falla, la aplicación puede continuar ejecutando
usando replicas que todavía siguen funcionando. Esto lo puede llevar a la degradacion del
rendimiento mientras en componente fallido se cae, pero la fiabilidad no esta
comprometida.
Recuperabilidad esta cercanamente relacionada con disponibilidad. Una aplicación es
recuperable si esta tiene la capacidad de restablecer los niveles requeridos de
rendimiento y recuperar datos afectados después de una aplicación o sistema falle. Un
sistema de base de datos es un ejemplo clásico de un sistema recuperable. Esto significa
reiniciar la aplicación del servidor y resolver cualquier transacción que estaba pendiente
cuando la falla ocurrió.
3.7 Integracion
Integración esta relacionado con la facilidad con la cual una aplicación puede ser
incorporada en un contexto mas amplio de la aplicación. El valor de una aplicación o
componente puede frecuentemente en gran medida ser incrementado si la funcionalidad
o datos pueden ser usados en diferentes caminos que el diseñador originalmente no
anticipo. La estrategia mas generalizada para proveer integración a través de la
integración de datos o con una aplicación de interfaz de programación (API).
La integración de datos envuelve almacenar los datos de una aplicación que manipula en
diferentes maneras para que otras aplicaciones puedan accesar. Esta puede ser una
simple base de datos estándar para almacenar datos, o quizas implementando
mecanismos para extraer los datos en un formato conocido como XML o con una coma
que separa el texto del archivo para que otras aplicaciones puedan accesar.
Con la integración de datos, las diferentes maneras en que los datos son usados por otras
aplicaciones esta fuera de control del dueño original de los datos. Esto es porque la
integración de los datos y las reglas del negocio impuestos por la aplicación son
temporales.