SECCION 6: UN FRAMEWORK INTEGRAL DE ANALISIS Y DISEÑO: LA
6.2 INGENIERIA DE FLUJO-SERVICIO-CALIDAD
El desarrollo de sistemas de gran escala basados en red es esencialmente una actividad de inte- gración masiva que busca reconciliar y satisfacer requerimientos de usuario mediante las com- binaciones de componentes COTS y a medida, a menudo dentro de una estructura de ambientes predeterminados, sistemas legacy, tecnologías de soporte, y dominios de arquitecturas.
En este mundo de sistemas de gran escala, asincrónicos y en red con, a menudo, funcionalida- des y estructuras dinámicas e inciertas, se plantean tres preguntas relacionadas con los méto- dos de ingeniería para la reducción de la complejidad y la mejora de la supervivencia:
1. ¿Cuáles son los principios de ingeniería unificadores para el análisis, especificación, diseño y verificación?
2. ¿Cómo se deberían especificar y satisfacer los atributos de calidad tales como supervi-
18Las barreras de la complejidad se pueden eliminar mediante principios correctos. Cuando los normandos conquis-
taron Inglaterra en el Siglo XI, llevaban un censo de qué era lo que habían ganado. Pero nunca fueron calculados los resultados, a pesar del obvio interés de conocer dicha suma. El censo había sido registrado en el sistema romano, y las más brillantes mentes de hoy día fueron doblegadas por la complejidad de sumar muchos números romanos. La re- presentación y los métodos de razonamiento fueron por sí mismos la principal fuente de complejidad. Pero si el censo hubiera sido registrado con notación aritmética decimal, cualquier niño podría haber obtenido las sumas necesarias. Los principios correctos habrían hecho toda la diferencia.
Expendedor de Combustible
Base de datos de Crédito Cliente Satélite de comunicacio-
nes
Compañía de Tarjeta de Crédito
vencia, fiabilidad y desempeño?
3. ¿Cuáles marcos estructurales de arquitectura pueden simplificar el desarrollo y opera- ción del sistema?
Resumiendo, ¿cuáles son los puntos de anclaje estables y confiables para la especificación y diseño que puede proporcionar una disciplina de ingeniería unificada para el análisis y desarro- llo de sistemas de gran escala basados en red?
Los trabajos de investigación están desarrollando nuevas soluciones para responder a estas pre- guntas. Los siguientes conceptos ayudan a estructurar la línea de investigación:
• Estructuras de Flujos. Los flujos de tareas de usuario y sus refinamientos en los usos del servicio del sistema pueden proporcionar principios de ingeniería unificadores para el análisis, especificación, diseño y verificación de los atributos de funcionalidad y calidad. • Atributos de Calidad Computables. Los atributos de calidad pueden estar asociados
tanto con flujos como con los servicios del sistema que éstos invoquen, y pueden ser es- pecificados como propiedades funcionales dinámicas que se calculan, en lugar que co- mo predicciones estáticas y a-priori de incierta utilidad en las operaciones de sistemas en tiempo-real.
• Arquitecturas de Gestión de Flujos. Las Estructuras de Flujos y los Atributos de Ca-
lidad Computables soportan marcos de referencia de arquitecturas estándares que ges- tionan flujos, servicios de red, y sus atributos de calidad durante su ejecución.
Las Estructuras de Flujos son composiciones de los servicios del sistema llevados adelante por las tareas de usuario para atender las misiones de la organización. Emplean semánticas exclusi- vas a fin preservar importantes propiedades determinísticas para precisar la comprensión huma- na y el análisis, a pesar del subyacente comportamiento asincrónico e impredecible de la red. Las Estructuras de Flujos toman en cuenta eventos y desenlaces impredecibles que puedan im- pactar en la supervivencia de la misión.
Los Atributos de Calidad Computables de los flujos y servicios que ellos invocan pueden ser gestionados dinámicamente en tiempo de ejecución. Por ello, los conceptos de primer nivel de flujo, servicio y calidad conforman la base de la disciplina emergente de ingeniería de Flujo- Servicio-Calidad (FSQ) [Hevner 01, Hevner 02]. Un problema persistente en el desarrollo y gestión de sistemas de gran escala basados en red ha sido la falta de principios de ingeniería unificados independientes de la escala para el control intelectual en la gestión, adquisición, aná- lisis, desarrollo, evolución y operación. La ingeniería de FSQ aborda el problema mediante principios teóricos y métodos prácticos de ingeniería para representar, analizar, desarrollar, y gestionar dinámicamente los flujos del sistema y sus atributos de calidad como artefactos esen-
ciales y principales del desarrollo de los sistemas basados en red.
Los sistemas distribuidos de información son vistos como redes de componentes que se comu- nican asincrónicamente proveyendo los servicios del sistema cuyas funciones se pueden combi- nar formando diferentes patrones para satisfacer los requerimientos de la misión de la organiza- ción. Los servicios del sistema incluyen todas las capacidades funcionales de un sistema basado en red, desde los protocolos de comunicaciones y los sistemas operativos hasta las bases de datos y las aplicaciones.
El secuenciamiento de los servicios del sistema dentro de los flujos de tareas de los usuarios se puede asociar con los componentes de hardware, software y personal presentes en la red que provee los servicios. Estas composiciones son trazas extremo-a-extremo que definen porciones de las arquitecturas de red cuyo efecto neto es el de llevar adelante las operaciones que satisfa- cen los requerimientos del usuario. La Figura 31 describe el refinamiento de los flujos de tareas de usuarios en base a los objetivos de la misión desplegados sobre los usos de los componentes de arquitectura del sistema.
Los sistemas de gran escala soportan muchos usuarios simultáneos cumpliendo diferentes roles con muchos posibles flujos de tareas, y servicios del sistema particulares que pueden aparecer una y otra vez en sus definiciones. De hecho, un objetivo principal de diseño en los sistemas de gran escala es la coordinación y la sincronización de múltiples usos de servicios particulares incorporados dentro de los flujos. En las redes dinámicas con constantes variaciones de la fun- ción y el uso, los flujos y sus correspondientes trazas en la arquitectura de los servicios del sis- tema [Parnas 94] actúan como principios estables para la especificación y diseño funcional y no- funcional, esto es, atributos de calidad. Durante la ejecución, los servicios invocados por los flujos pueden experimentar un aluvión de entrelazamientos de usos asincrónicos que desafían a la comprensión humana.
Figura 31. Refinamiento de flujos de tareas de usuario en usos de servicio del sistema.
Misión de la Empresa Flujo de tarea
de usuario Flujo de tarea
de usuario Flujo de tarea
de usuario Arquitectura de flujos de uso del servicio Arquitectura de flujos de uso del servicio Arquitectura de flujos
de uso del servicio
Empresa Usuarios Sistemas
La misión de una empresa se encarna en la operación de flujos de tareas de usuario y en decisiones de utilización
del sistema Los refinamientos de la arquitectura de los fllujos de tareas de usuario son composiciones de los servicios del sistema que proporcionan la funcio- nalidad y los atributos de calidad
Una propiedad clave de las Estructuras de Flujos es un principio semántico que permite que los flujos exhiban propiedades determinísticas para una comprensión humana y un análisis más directo a pesar del comportamiento asincrónico subyacente. En consecuencia, los flujos se re- presentan como simples estructuras procedurales conformadas por invocaciones y computacio- nes locales anidadas y secuenciadas, expresadas en términos de estructuras ordinarias de se- cuencia, alternancia, iteración y concurrencia; dichas estructuras definen un álgebra de com- posición de componentes con propiedades deseables.
Por ejemplo, las Estructuras de Flujos preservan la efectividad de los métodos de razonamiento y el refinamiento, abstracción y verificación del refinamiento referencial para la comprensión humana. Los flujos se pueden expresar en virtualmente cualquier lenguaje que utilice primitivas de Estructu- ras de Flujos para especificar las tareas de usuario que hacen uso de los servicios del sistema en términos precisos. Los servicios invocados por los flujos se pueden refinar en flujos que invocan a otros servicios, etc. , en un proceso de diseño recursivo que emplea estructuras y métodos de inge- niería idénticos en todos los niveles de refinamiento. Las Estructuras de Flujos están relacionadas superficialmente con los métodos workflow [Leymann 00], pero definen rigurosos principios inde- pendientes de la escala para el análisis, desarrollo y operación de sistemas de gran escala.
Los flujos se pueden organizar en Conjunto de Flujos (FlowSets) relacionados, asociados con componentes y particiones de red particulares. El análisis transitivo de los flujos puede revelar dependencias a menudo desapercibidas. Los flujos definen los niveles de atributos de calidad re- queridos ellos mismos, como así también para la ejecución de los servicios que ellos referencian. En la Figura 32 se describen las operaciones de ingeniería FSQ para sistemas existentes y nuevos.
Figura 32. Operaciones de ingeniería FSQ para sistemas nuevos y existentes.
Gestión dinámica de los flujos y atributos dentro de la arquitectura basada en red
Red analizada para extraer los flujos de usos de servicios del sistema Estructuras de Flujos de tareas
de usuario definidas con super- vivencia y otros atributos
Flujos abstraídos de las tareas de usuario para el análisis
de la supervivencia
Flujos redefinidos dentro de las trazas de los servicios del sistema en la arquitec-
tura con capacidades de atributos
Flujos abstraídos como trazas de las dependencias de los servicios del sistema en la arquitectura
Desarrollo de Sistemas Nuevos
En el caso de los sistemas nuevos, la especificación de flujo comienza con las tareas de usuario que soportan los los objetivos de la misión de la organización, asegurando de este modo una solución centrada en el usuario para el diseño y el desarrollo. En particular, los flujos son vehí- culos para la definición de los atributos de calidad requeridos, tales como fiabilidad y super- vivencia. Algunos flujos requieren niveles superiores de fiabilidad y supervivencia que otros, y
la definición de de los requerimientos de atributos específicos de un flujo permite establecer un equilibrio entre los costos y beneficios informados en el diseño del sistema.
En el caso de los sistemas existentes, los flujos de las operaciones de misión crítica se pueden extraer y analizar a fin de revelar las dependencias desapercibidas y los puntos únicos de falla. Este análisis permite la identificación y desarrollo de mejoras en la supervivencia.
Resulta importante denotar que los flujos se pueden definir tanto para usos legítimos como ilegítimos. La utilización del sistema del intruso se puede expresar en flujos que revelen los
componentes pasibles de compromiso y ayuda a definir las mejoras en la seguridad y la super- vivencia [Mead 00a, Moore 01a].
En términos de una comprensión intuitiva, los flujos se pueden pensar como jerarquías deter- minísticas de usos de servicios superpuestos con otros flujos para su ejecución asincrónica sobre una red a gran escala. Este concepto se describe en la Figura 33 para el caso de un flujo del ejemplo del “Sistema de Combate del Futuro”. Los flujos definen un uso estructurado de las capacidades de la red mediante la definición de las comunicaciones entre servicios del sistema basado en red, y de las composiciones de dichos servicios.
Figura 33. Superposición de un flujo determinístico sobre una red asincrónica.
Desarrollo y Uso Ejecución
Flujo de la Misión Flujo UAV Flujo de Fuego Di- recto
En la ingeniería FSQ, atributos de calidad tales como disponibilidad, fiabilidad, y supervivencia se definen como funciones computacionales, y están asociadas tanto con flujos como son servi- cios. En el pasado se ha destinado sustancial esfuerzo al desarrollo de caracterizaciones a- priori de los atributos de calidad. En lugar de focalizar la atención sobre métodos descriptivos de valor limitado para las redes dinámicas, se ha adoptado una solución alternativa y se pregunta de qué manera se pueden definir, computar y poner en práctica tales características de la operación del sistema. Esto es, se desea definir los atributos de calidad como funciones ha ser computa- das, más que como descripciones estáticas de las capacidades ha ser alcanzadas.
En tanto tales funciones dependen de cómo han de ser computadas y, por ende, pueden diferir de las visiones tradicionales de los atributos de calidad, éstas pueden posibilitar nuevas solu- ciones al análisis, diseño, métricas y evaluación operacional de atributos. Un aspecto clave de la solución computacional es la habilidad de asociar atributos de calidad con flujos específicos en lugar de hacerlo con sistemas completos, permitiendo, en consecuencia, la diferenciación entre las capacidades de atributos en base a la criticidad de la misión en el dominio de la inge- niería de la supervivencia. Algunos atributos de calidad, tales como disponibilidad y fiabilidad son fácilmente computados en el análisis computacional. Otros, tales como seguridad y supervi- vencia serán más difíciles. No obstante, se piensa que el esfuerzo debe ser hecho, y que están a la vista nuevas soluciones y perspectivas.
En un mundo de las Estructuras de Flujos y los Atributos de Calidad Computables, resulta natural considerar marcos estructurales de la arquitectura del sistema basados en la gestión de flujos di- námicos y de atributos de calidad [Sikora 98, Haekel 99, Sullivan 99]. Una tarea fundamental de control en los sistemas de gran escala es la gestión del secuenciamiento de los servicios del siste- ma para satisfacer las especificaciones de flujo. Los conceptos FSQ sugieren marcos estructura- les independientes del tema denominados Arquitectura de Gestión de Flujo FMA (Flow Mana- gement Architecture). Estos marcos estructurales podrían compatibilizar requerimientos de flujo con disponibilidades de servicios, e implementar estrategias de gestión operacional basadas en una red dinámica y en las capacidades de servicios, y en cargas de trabajo.
Las FMAs encarnan el concepto de un Gestor FSQ (FSQ Manager), centralizado o descentrali- zado dentro de la arquitectura de un sistema, el cual provee la gestión de flujos. En particular, el Gestor FSQ proporciona una evaluación de los atributos de calidad dinámicos. Por ejemplo, la gestión de la supervivencia incluye una variedad de estrategias tales como caminos de comu- nicaciones alternativos, sustitución de recursos, estado de reconstrucción, aprovisionamiento alternativo, y re-inicialización y re-configuración del sistema. Se deberá diseñar e instanciar un Gestor FSQ en una variedad de formatos y tecnologías, dependiendo de los requerimientos de usuario, la configuración de la red y del ambiente operacional.
La ingeniería FSQ puede reducir la complejidad y adicionar claridad al desarrollo de sistemas basados en red. Se pueden diseñar y verificar las especificaciones de las Estructuras de Flujos asociadas con las tareas de una organización con una completa compresión humana, con va- rios niveles de abstracción, en un proceso integrado que va desde los flujos de tareas del usua- rio hasta los componentes arquitectónicos. Las Estructuras de Flujos prescriben las conexio- nes y operaciones de red lógicas, definen la capacidad de composición entre nodos y servicios, y soportan tanto control centralizado como distribuido. La especificación del comportamiento del sistema basado en red y la conectividad lógica se define mediante el Conjunto de Flujos de sus usos de servicio. La especificación de cada servicio dentro de un sistema en red incorpora todos sus usos dentro de todos los flujos en los cuales éste aparece. Los marcos estructurales FMAs proveen plantillas sistemáticas para la gestión de los instanciaciones de los flujos y la compatibilización de los Atributos de Calidad Computables.