PROYECTO DE INVESTIGACIÓN Nuevas Extensiones para el Uso de Técnicas Formales en Modelado, Verificación, Síntesis y Optimización de Sistemas Empotrados y de Comunicaciones Móviles: Aplicación a la Certificación de Protocolos LTE Proyectos de Excelencia de la Junta de Andalucía - Convocatoria 2011 Investigadora Responsable: María del Mar Gallardo Melgarejo Universidad de Málaga [email protected] ÍNDICE 1 2 Resumen de la propuesta ................................................................................................ 4 Antecedentes del proyecto .............................................................................................. 7 2.1 Introducción al Model Checking ............................................................................. 7 2.2 Síntesis y optimización de programas...................................................................... 9 2.3 Verificación y síntesis de sistemas híbridos probabilísticos .................................... 9 2.3.1 Sistemas híbridos ............................................................................................ 11 2.3.2 Un ejemplo típico de sistema híbrido empotrado: el control ferroviario ....... 12 2.3.3 Herramientas de análisis y síntesis de sistemas híbridos ................................ 13 2.3.4 Sistemas probabilísticos ................................................................................. 14 2.3.5 Análisis de sistemas probabilísticos ............................................................... 15 2.3.6 Integración de sistemas continuos y estocásticos ........................................... 16 2.3.7 Integración de sistemas híbridos y estocásticos: el caso de los protocolos de comunicaciones ............................................................................................................ 17 2.4 Generación de adaptadores .................................................................................... 19 2.4.1 Clasificación de propuestas de adaptación ..................................................... 19 2.4.2 Monitorización de los cambios de contexto ................................................... 20 2.4.3 Síntesis de adaptadores seguros ...................................................................... 21 2.5 Certificación de protocolos LTE ............................................................................ 22 2.5.1 Uso de técnicas formales en el campo de la certificación .............................. 23 3 Objetivos....................................................................................................................... 25 3.1 Propuesta de Investigación .................................................................................... 25 3.1.1 Integración de los sistemas discretos y continuos .......................................... 25 3.1.2 Verificación, síntesis y optimización de protocolos ....................................... 27 3.1.3 Síntesis y verificación de adaptadores ............................................................ 28 3.1.4 Una aplicación en el dominio de la certificación de protocolos y servicios en redes LTE ..................................................................................................................... 29 3.2 Objetivos concretos ................................................................................................ 31 4 Metodología y plan de trabajo ...................................................................................... 32 4.1 Cronograma de tareas ............................................................................................ 45 4.2 Riesgos y planes de contingencia .......................................................................... 46 5 Resultados esperados, difusión y explotación, en su caso, de los mismos. .................. 46 5.1 Resultados esperados ............................................................................................. 46 5.2 Difusión y explotación de resultados ..................................................................... 47 6 Relación del personal del equipo del proyecto ............................................................. 49 6.1 Investigadores de la UMA y sus actividades de Internacionalización de la investigación ..................................................................................................................... 49 6.2 Investigadores de AT4 wireless y sus actividades de Internacionalización de la investigación ..................................................................................................................... 52 7 Financiación pública y/o privada, en otros contratos y proyectos de I+D, obtenidos por los miembros del equipo ....................................................................................................... 53 8 Relación y perfil de los candidatos en las distintas modalidades de personal a incorporar al proyecto cuando proceda, salvo en personal investigador en formación ........ 55 9 Descripción del carácter multidisciplinar y transversal del proyecto ........................... 56 10 Presupuesto total del proyecto y justificación del mismo ............................................ 59 2 11 Referencias ................................................................................................................... 60 12 Cartas de apoyo al proyecto de empresas relacionadas ................................................ 69 3 MEMORIA CIENTÍFICO TÉCNICA DEL PROYECTO 1 Resumen de la propuesta La presencia del software está generalizada en casi todos los ámbitos de la sociedad. Actualmente, hay una demanda creciente de tecnologías de la información y de las comunicaciones que mejoren la calidad de vida de los ciudadanos. Los distintos dispositivos de computación existentes en el mercado, así como las distintas aplicaciones disponibles para éstos, han provocado mucho interés entre los usuarios finales, haciendo que la distribución de la tecnología entre la población sea cada vez mayor. Por un lado, los sistemas de computación están sustituyendo paulatinamente a tareas que, de forma tradicional y debido a su carácter crítico, se han realizado manualmente. Por ejemplo, los sistemas ferroviarios y de metro están cada vez más controlados mediante sistemas automáticos que realizan tareas como planificación, señalización o cambio de vías. Por otro lado, la evolución de la tecnología ha propiciado la aparición de nuevas aplicaciones que implican la resolución de nuevos problemas. Por ejemplo, hoy día es muy habitual que un usuario quiera acceder desde su dispositivo móvil a servicios que están a su disposición por su ubicación o por su perfil de usuario. En cualquiera de los casos, para que la interacción entre el dispositivo móvil y el servicio de interés se realice correctamente, ambos deben entenderse, es decir, deben enviarse y recibirse los mensajes esperados y en el orden previsto, lo que evidentemente no ocurre siempre. Es, por lo tanto, necesaria una cierta negociación entre ambas entidades para que se realice la comunicación deseada. Esta explosión de nuevas aplicaciones ha sido posible gracias a la mejora de los dispositivos hardware que finalmente automatizan los procesos, y al desarrollo de la industria del software que ha producido nuevas tecnologías de programación de nivel intermedio y alto, con un poder expresivo mucho mayor, capaces de resolver problemas de gran magnitud. El resultado es que una aplicación software, que proporciona un servicio de interés para los usuarios, puede estar constituida por miles de líneas de código que se ejecutan sobre un hardware avanzado. Sin embargo, toda esta complejidad es transparente al usuario, que sólo ve a los dispositivos como cajas negras que les proporcionan los servicios demandados. De forma simultánea a este crecimiento en la demanda de servicios software, se han desarrollado las denominadas técnicas formales, que tienen como objetivo mejorar la calidad y fiabilidad del software que se proporciona al usuario. Estas técnicas hacen uso del lenguaje matemático para minimizar el número de errores, garantizando que el software satisface un conjunto de propiedades que se consideran críticas para su campo de aplicación. Aunque en un principio, el uso de las técnicas formales fue cuestionado por su dudosa aplicación práctica, hoy día, su uso está ampliamente aceptado, de manera que el desarrollo de cualquier producto suele ir acompañado de su modelado y/o análisis mediante alguna técnica formal. Esto se debe, fundamentalmente, al desarrollo de técnicas de modelado y análisis potentes, así como de herramientas que soportan estas técnicas y que han probado extensamente su utilidad en la práctica. Quizás el método conocido como model checking es el que más ha influido en esta integración progresiva de las técnicas formales en el desarrollo del software, fundamentalmente de software concurrente o distribuido. La amplia difusión del model 4 checking y su evidente éxito a nivel industrial se debe a que combina de manera equilibrada la formalización matemática, tanto de las propiedades como del sistema software que se pretende analizar, y el carácter práctico, puesto que el model checking es una técnica algorítmica orientada a la construcción de herramientas que lleven a cabo de forma automática la tarea compleja de la verificación del software. Una característica habitual del software es que define una dinámica discreta, en el sentido de que produce una o varias (incluso un número infinito) secuencias numerables de estados. Después de más de 30 años de desarrollo, se puede decir que existe un buen número de técnicas formales establecidas que son capaces de abordar el problema del modelado y verificación de sistemas software discretos teniendo en cuenta muy diversos puntos de vista. Por ejemplo, si ponemos de relieve el carácter concurrente de una aplicación existen gran cantidad de formalismos y de herramientas que nos pueden ayudar a su diseño y verificación: sistemas de transiciones, álgebras de procesos, redes de Petri, lógica temporal, model checking, testing, etc. La tendencia actual en el área de las técnicas formales es, por lo tanto, la búsqueda de nuevos formalismos, o la extensión de los ya existentes, teniendo en cuenta aspectos diferentes del software que clásicamente no se han considerado. Por ejemplo, la mayoría de los sistemas que aparecen en el mundo real no son completamente discretos, sino que tienen alguna componente, normalmente asociada a algún dispositivo físico, que se comporta de forma continua. Este tipo de sistemas se denominan híbridos, y se caracterizan porque en ciertos momentos se comportan de forma discreta, mientras que, en otros, evolucionan siguiendo una dinámica continua (no numerable). Otro aspecto interesante de los sistemas reales es que, en muchos casos, tienen un comportamiento aleatorio, de manera que incorporan algún parámetro de incertidumbre, existiendo alguna función que define su evolución probabilística. Para modelar y analizar sistemas híbridos y/o probabilísticos, es necesario incorporar nuevos parámetros en las técnicas formales que hagan referencia a estos aspectos. Aunque las principales aplicaciones de las técnicas formales son el modelado y verificación, pueden encontrarse nuevos campos en los se demuestra su utilidad. En concreto, el problema de la síntesis automática puede abordarse desde el punto de vista de las técnicas formales. Por ejemplo, la técnica de model checking puede verse como un método de búsqueda exhaustiva automática de estados, o secuencias de estados, que satisfacen una propiedad, la cual puede interpretarse como un objetivo. En este caso, las técnicas formales pueden proporcionar nuevas soluciones a problemas, como es el caso de la síntesis de controladores y la optimización, que se han abordado desde otras perspectivas. En esta misma línea, la aparición de nuevos escenarios de aplicación software, como es la ya mencionada adaptación automatizada de componentes, en el contexto de los servicios software, puede resolverse mediante el uso no estándar de técnicas formales existentes, o definiendo nuevos marcos formales que permitan la construcción correcta de adaptadores software. El presente proyecto tiene dos objetivos técnicos. Por un lado, mejorar la calidad del software, que puede contener componentes continuas, y factores de incertidumbre, extendiendo la técnica de model checking de forma apropiada: mediante la definición de nuevos lenguajes de modelado, que sean capaces de describir las nuevas características; mediante la extensión de los algoritmos de model checking, para que tengan en cuenta los 5 aspectos continuos y de probabilidad; y mediante la extensión de herramientas de model checking existentes que implementen estas propuestas. Por otro lado, el segundo objetivo técnico es el estudio de nuevas aplicaciones no estándares del model checking en el contexto de la síntesis y optimización de controladores y adaptadores software, así como el desarrollo de nuevos marcos formales que resuelvan el problema de la adaptación dinámica del software para la recepción correcta de servicios por parte de usuarios. En el proyecto estos dos objetivos técnicos se concretan en cuatro módulos de trabajo principales, descritos en detalle en la memoria, y que se titulan del modo siguiente: Módulo 1: Model checking de sistemas híbridos Módulo 2: Verificación y síntesis de sistemas probabilísticos y su aplicación a protocolos de comunicaciones Módulo 3: Generación automática de adaptadores en tiempo de ejecución Módulo 4: Extensión de infraestructuras de certificación de protocolos LTE para la medida de QoS en servicios emergentes Los tres primeros módulos de trabajo están dedicados al desarrollo de las propuestas técnicas, tal y como se ha descrito brevemente en este resumen. En cada uno de estos módulos se proponen distintas aplicaciones para probar la viabilidad y ventajas de las propuestas tecnológicas, como son los sistemas empotrados de control ferroviario, el servicio de videostreaming en telefonía móvil, y los adaptadores de servicios en aplicaciones de redes sociales. Sin embargo, el Módulo 4 está íntegramente dedicado al desarrollo de una aplicación específica más ambiciosa, con la que se demuestra la utilidad de las propuestas realizadas en el proyecto de forma conjunta. En particular, en este módulo se trata de extender los enfoques actuales para certificación de protocolos de señalización en redes UMTS y LTE para abarcar también la certificación de los nuevos servicios como la voz IP sobre LTE. En este contexto, hay que abordar el modelado de aspectos continuos, como el nivel de señal o el consumo de energía, así como aspectos probabilísticos relacionados con la pérdida de paquetes, o con el tipo de tráfico generado. En particular, se utilizarán técnicas de model checking para la síntesis automática de configuraciones óptimas de las pilas de protocolos, adecuadas a la calidad de servicio que se demanda. Este proyecto se plantea como un proyecto motriz cuya relevancia para el sector industrial andaluz queda patente por las cartas de apoyo de las empresas que se adjuntan al documento. La empresa AT4 wireless colaborará en el proyecto en la modalidad de subcontratación para desarrollar parte de la infraestructura de certificación de servicios y protocolos para redes LTE. La empresa ADIF (Administrador de Infraestructuras Ferroviarias) hará el seguimiento de los trabajos en los sistemas de control ferroviario, y facilitará al grupo el uso de su Laboratorio TIC en el Centro de Tecnologías Ferroviarias de Málaga. La empresa Novasoft está interesada en los desarrollos relativos a la generación de adaptadores dinámicos de servicios. Y la empresa Vodafone realizará el seguimiento de los resultados en el campo de la telefonía móvil. 6 2 Antecedentes del proyecto En esta sección, primero se motiva el uso del model checking en el desarrollo del software, y se describen brevemente sus características. A continuación, se presenta el problema de la síntesis y optimización de programas, y algunas de las soluciones que se han propuesto en la literatura. Finalmente, en las siguientes secciones, se enumeran los antecedentes en los distintos tipos de sistemas que se tratan en el proyecto, híbridos, probabilísticos, y adaptadores software, y las técnicas formales que se han utilizado para realizar el modelado, la verificación y la síntesis de estos sistemas. 2.1 Introducción al Model Checking En un reciente artículo sobre verificación de software crítico [H08], Gerard J. Holzmann, galardonado con el prestigioso premio “ACM Software System” en el año 2002 por la construcción del model checker SPIN [H03], explica que el código del controlador que se utilizó en el primer aterrizaje lunar en 1969 tenía alrededor de 7.500 líneas de código del actual lenguaje C (aunque, evidentemente, en aquel momento no se utilizó C, sino un lenguaje ensamblador). En contraposición, los controladores actuales tienen de 5 a 10 millones de líneas de código. Es decir, el software para resolver el mismo problema ha multiplicado aproximadamente por 1.000 las líneas de código en 40 años. Una de las consecuencias de este crecimiento es que, a medida que se incrementa el tamaño y la complejidad del software, el número de errores que contiene se ve incrementado también de forma lineal. Se considera que es admisible encontrar un error sin consecuencias graves por cada 1.000 líneas de código bien depuradas. En sistemas sobre los que se ha trabajado fuertemente en depuración y verificación esa proporción podría disminuirse hasta encontrar un error por cada 10.000 líneas. En este contexto, las técnicas de depuración y verificación de software se consideran un complemento imprescindible para minimizar el número de errores, y los efectos que pueden tener sobre el entorno que utiliza el software. Cuando el software a analizar tiene un tamaño razonable (por ejemplo, unas 7.500 líneas de código secuencial) podría pensarse en un análisis basado en técnicas de depuración. Sin embargo, cuando el código a analizar es concurrente y genera gran cantidad de comportamientos posibles, o tiene un tamaño superior (un millón de líneas de código, por ejemplo), el problema tiene necesariamente que afrontarse de manera automática. En los últimos años se ha demostrado que la técnica de análisis conocida como model checking [CES86, CGP99] es el método formal de verificación de software más potente con implantación industrial. De forma simplificada se puede decir que la técnica consiste en la exploración exhaustiva, mediante algún método algorítmico, de todo el espacio de estados generado por un sistema, típicamente concurrente, buscando comportamientos (que se llaman contraejemplos) que no satisfagan alguna propiedad Figura 2.1. Ejemplo de un árbol de estados 7 especificada con anterioridad. De esta forma, la aplicación clásica de la técnica consiste en el modelado de un sistema (utilizando un lenguaje de modelado), la especificación del comportamiento esperado (mediante alguna lógica temporal), y la aplicación de algoritmos de model checking (usando alguna herramienta), que de forma automática, comprueban si el modelo satisface la propiedad deseada. La Figura 2.1 muestra un ejemplo de un árbol de ejecución que podría ser construido por una herramienta de model checking. En el árbol, el indeterminismo a la hora de seleccionar las instrucciones a ser ejecutadas puede venir dado porque el propio sistema contenga instrucciones no deterministas, o por la concurrencia, si el sistema está formado por varios procesos en ejecución. La generación del espacio de estados implícita en la técnica tiene dos consecuencias importantes. Por un lado, el sistema a analizar debe simplificarse (abstraerse) para acotar su tamaño y que pueda ser representado en la memoria de la máquina. Por esta razón, tradicionalmente, las herramientas de model checking han trabajado con modelos del software. Para paliar este problema se han desarrollado distintas técnicas (abstracción, compactación de estados, representación mejorada del heap, etc.) [CGL94, DGG97, CGMS05, GMP02, HDZ00, HJ04] con el objetivo de optimizar la representación del espacio de estados, de manera que, poco a poco, se están produciendo herramientas que permiten analizar sistemas mayores. La Figura 2.2 muestra datos numéricos de algunos protocolos analizados mediante model checking. Puede observarse que en la actualidad es posible analizar sistemas que generan espacios de estados de más de 1 GB de memoria. Esta situación ha permitido la construcción de model checkers que trabajan directamente con sistemas finales, descritos en lenguajes de programación como C o Java [CDH00, HS99, HP00]. Año Protocolo Núm. de estados Memoria Tiempo Herramienta 2006 CSMA/CD 7.5e+07 734.003MB - SPIN 2006 Exclusión Mutua (4 proc.) 5.5e+07 410MB - SPIN 2000 Producer/consumer 2.4e+07 77MB 8min SPIN 1999 7 proc. leader-election 2.8e+07 200MB 76 min SPINdistribuido 1999 HAVi leader election 1.94+e09 3.8GB 49h43min SPIN 1999 RETHER 25000 4.5MB 31min CFL MC Figura 2.2. Evolución del tamaño del espacio de estados en el tiempo Por otro lado, para construir el espacio de estados se necesita que el sistema esté completo, es decir, debe estar especificado tanto el comportamiento interno del software como el del entorno. Sin embargo, el problema de cerrar el entorno puede ser más complicado debido a que habitualmente no está completamente especificado o se comporta de forma impredecible. Para simular su comportamiento pueden utilizarse modelos indeterministas y probabilísticos que describan con el máximo de fiabilidad su comportamiento real. 8 2.2 Síntesis y optimización de programas La investigación en síntesis de programas mediante técnicas automáticas ha sido muy activa en los últimos años, aunque no se ha llegado a ningún método completamente aceptado en el contexto de la ingeniería del software. El problema principal de la síntesis está en la búsqueda de soluciones óptimas. Dada una especificación del comportamiento esperado del programa, si existe alguna solución, normalmente pueden encontrarse varias (incluso un número infinito) que se ajusten a los requisitos esperados. El control de muchas infraestructuras complejas como plantas industriales, o sistemas ferroviarios, requiere la asistencia de software para seleccionar las acciones de control correctas. Es incluso posible que el operador humano pueda ser sustituido por un sistema software para manejar el sistema crítico. El software del controlador es también crítico, puesto que de él depende el funcionamiento correcto del sistema real. La Figura 2.3 muestra el papel del controlador y del procedimiento de síntesis. El controlador envía órdenes al sistema real para indicarle qué acciones deben realizarse, teniendo en cuenta la evolución y el estado actual del sistema real. Para sintetizar el controlador pueden tenerse en cuenta algunas restricciones (por ejemplo, sobre los recursos disponibles en ese momento), y ciertos objetivos con los que se intentan optimizar algunos parámetros, como pueden ser la energía necesaria para llevar a cabo las instrucciones, el tiempo de respuesta para parar el sistema, etc. Figura 2.3. Comportamiento de un Controlador SW Las primeras técnicas desarrolladas para síntesis de controladores se basaban en métodos analíticos, y en la construcción manual de los programas. Con respecto a los métodos que automatizan el proceso de síntesis, las principales diferencias entre las distintas propuestas se encuentran en el tipo de modelado del sistema que va a controlarse, en la representación de las restricciones, en el método de búsqueda de las soluciones, y en la forma de medir la calidad de las soluciones encontradas. En el contexto de los métodos formales, la mayor parte de los trabajos consideran el problema de la síntesis automática como un problema de satisfacción de restricciones, donde el sistema real se modela como un árbol de estados globales y el método de búsqueda es una variante de la búsqueda exhaustiva. Puesto que el model checking es una técnica de búsqueda, nuestra propuesta es aplicarla para resolver el problema de la síntesis automática en diferentes dominios. La característica clave del model checking que lo convierte en una técnica apropiada para la síntesis es su capacidad de generación de contraejemplos, a partir de una descripción de requisitos o comportamiento esperado [MS05, LKMCK08]. 2.3 Verificación y síntesis de sistemas híbridos probabilísticos La Figura 2.4 muestra una clasificación de los sistemas según las características principales que se modelan y que, por lo tanto, pueden ser analizadas mediante herramientas de verificación. Cada cubo del dibujo describe algunos aspectos relativos al 9 tipo de sistema que titula su cara frontal. Además, para cada sistema, la cara frontal del cubo correspondiente muestra sus características, y las principales técnicas formales que han abordado su modelado y análisis. En la cara superior se enumeran algunas aplicaciones típicas del sistema representado, y en la cara lateral se resumen algunas de las herramientas existentes para el modelado, análisis o síntesis. Además, a medida que subimos de la base al cubo superior del dibujo nos vamos encontrando sistemas cada vez más complejos, que incluyen más parámetros, y que, por lo tanto, requieren de técnicas formales más sofisticadas para su modelado y verificación. Figura 2.4. Clasificación de los sistemas según el tipo de modelado La base de la estructura está constituida por los sistemas discretos y continuos puros. Los sistemas discretos describen el comportamiento general del software. Pueden modelarse como sistemas de transición etiquetados, máquinas de estados o autómatas, en los que el conjunto de estados posibles es numerable. La realización de acciones (ejecución de instrucciones) permite evolucionar al sistema de un estado al siguiente, pero en estas transiciones no se tiene en cuenta, en general, el tiempo real. Por eso, aunque las propiedades de las secuencias de ejecución se especifican con lógica temporal (LTL, CTL, Calculus), esta lógica no hace alusión explícita al tiempo real. Sólo tiene operadores del tipo siempre “always”, en algún momento “eventually”, etc. Existen diversas herramientas que permiten analizar este tipo de sistemas. Por ejemplo, SPIN, CADP [G98] y NuSMV [CCGGPRST02] son herramientas de model checking clásicas sobre las que se han analizados muy diversos sistemas concurrentes, como pueden ser los protocolos de red. Así mismo, las herramientas ns-2 [FV00], OPNET [C99] y OMNet++ [VH08] permiten hacer simulaciones del comportamiento de sistemas discretos. En contraposición, los sistemas continuos representan la evolución dinámica de un sistema físico. Están constituidos por variables continuas, que toman valores en un dominio 10 real, y cuya evolución se describe mediante ecuaciones diferenciales. A diferencia de los sistemas discretos, el tiempo real puede ser un parámetro imprescindible de los sistemas continuos ya que la evolución de las variables se describe con relación al tiempo (que se mueve de forma continua). La evolución en el tiempo de la temperatura de un recinto es un ejemplo de un sistema continuo. Otra característica adicional que puede tenerse en cuenta cuando se están modelando sistemas reales para su análisis, es la posibilidad de que haya alguna componente aleatoria que intervenga en su funcionamiento. La principal motivación para considerar probabilidades a la hora de representar un sistema es la necesidad de obtener información cuantitativa (en contraposición a la cualitativa) para analizar aspectos no funcionales de un sistema, como son el rendimiento o la utilización de recursos. Una forma natural de incluir este parámetro en un sistema de transiciones es añadir probabilidades que recojan información cuantitativa del sistema real a las transiciones. De esta forma, dependiendo del modelo de partida que se tome se pueden considerar sistemas discretos o continuos probabilísticos. Como los objetivos del presente proyecto se enmarcan en el modelado, verificación y síntesis de sistemas que combinan aspectos discretos y continuos, así como características deterministas y probabilísticas, en las siguientes secciones, se discute el estado del arte en cada una de las cajas de la Figura 2.4 que aún no se han mencionado, y que constituyen el punto de partida de este proyecto. 2.3.1 Sistemas híbridos La teoría de los sistemas híbridos se encuentra en la intersección de dos áreas de investigación a priori muy diferentes, la teoría de control y la verificación de software. Un sistema híbrido es aquél que incluye componentes discretas y continuas. Muchos sistemas reales presentan en su funcionamiento una combinación de este tipo. La parte continua suele estar asociada a la parte física del sistema que se está modelando, mientras que la parte discreta se asocia al comportamiento lógico que controla la parte física. Un subtipo de los sistemas híbridos son los sistemas en tiempo real, en los que hay una fuerte dependencia entre el tiempo y los estados discretos. Un ejemplo de un sistema híbrido lo constituyen los sistemas de señalización en las redes ferroviarias, en los que según la distancia a la que se encuentren los trenes (variable continua dependiente del tiempo) se activan diferentes mecanismos de control (estados discretos). Un sistema real que, por naturaleza, tiene un comportamiento híbrido, puede modelarse como un sistema discreto, continuo o híbrido, dependiendo de las propiedades que se quieran analizar. Por ejemplo, un sistema de depósitos de agua se puede considerar como un sistema continuo si se quiere construir un controlador del nivel. Sin embargo, la cadena de depósitos también puede verse como un sistema discreto si se analiza como parte de una planta de procesado en la que sólo hay que tener en cuenta si los depósitos están vacíos o llenos. Por otra parte, la planta completa puede también modelarse como un sistema híbrido, en el que ciertas componentes (los depósitos, por ejemplo) se comportan de forma continua, y otros (el estado de la planta) son discretos. En los últimos años, se ha visto un aumento significativo de proyectos de investigación sobre sistemas híbridos (por ejemplo, SAVE [SAVE] o VHS [VHS]) debido fundamentalmente a que no es posible analizar gran 11 cantidad de propiedades sobre sistemas reales si se tiene en cuenta únicamente su parte continua o su parte discreta. En el contexto de las técnicas formales, los sistemas híbridos pueden modelarse como autómatas extendidos. Por ejemplo, la noción de autómatas híbridos [H96] permite definir sistemas híbridos con comportamientos complejos, donde las variables continuas pueden evolucionar siguiendo una dinámica dada por ecuaciones diferenciales cualesquiera. Asimismo, los autómatas temporizados [AD94] constituyen una simplificación de los híbridos en los que las variables continuas tienen que depender linealmente del tiempo. Esta simplificación facilita el análisis de propiedades aunque limita los comportamientos continuos que se pueden representar. Ambos formalismos se basan en un modelo de tiempo, que puede ser discreto o denso, y que define la forma que tiene el sistema de evolucionar. El modelo discreto asume que las lecturas de tiempo son de tipo entero y, además, si hay varios relojes que todos se incrementan a la vez. Este modelo temporal es más adecuado para describir sistemas síncronos en los que todos los procesos utilizan un mismo reloj global. En contraposición, en el modelo de tiempo denso, las lecturas de tiempo son de tipo racional o real, y todos los relojes se incrementan de manera uniforme. Este modelo temporal es el más adecuado para sistemas distribuidos en los que se tienen varios relojes y temporizadores. 2.3.2 Un ejemplo típico de sistema híbrido empotrado: el control ferroviario El aumento de la complejidad en los sistemas ferroviarios, y la heterogeneidad de éstos, requiere que estén controlados de forma electrónica para asegurar su seguridad y eficiencia. De esta forma, sistemas de control ferroviarios como el European Train Control System (ETCS) establece un método de control basado en sistemas de control central, conocidos como Radio Block Centre (RCB), encargados de monitorizar la posición de cada tren y de establecer zonas autorizadas de movimiento para los trenes. Para ello, las vías están equipadas con sensores y balizas encargadas de obtener la ubicación de cada tren, para transferirlas al RCB, así como de proporcionar información sobre la zona autorizada al vehículo y sobre la ruta a seguir. En base a la información obtenida a través de la baliza, un ordenador de a bordo en cada tren se encarga de determinar la velocidad en cada momento, de forma que el tren se encuentre siempre dentro de su zona autorizada de movimiento. Cuando una zona de movimiento no es extendida, el tren debe parar ya que es posible que haya trenes más allá de ella, o que existan puertas abiertas. El equipo encargado de controlar los trenes, así como los RBC, requieren, por tanto, un alto grado de fiabilidad para que las operaciones efectuadas sean correctas y seguras. El ETCS se compone de dos subsistemas, el de tren o equipo embarcado y el de vía o equipo de suelo. Estos subsistemas se comunican mediante interfaces estandarizados que están fuertemente orientados a la interoperabilidad. La implantación del ETCS en todo el territorio es paulatina, e irá evolucionando por diferentes niveles de funcionamiento, desde el nivel 1, en el que se mantiene la señalización vertical y los mecanismos tradicionales de medida y comunicación, hasta el nivel 3 donde se reemplazan por señalización en cabina y sistemas más sofisticados de comunicaciones y medida. En la red ferroviaria española podemos encontrar tanto tramos como trenes que llevan implementados diferentes variantes de estos niveles proporcionados por diferentes suministradores. 12 Los sistemas de control ferroviario, como el ETCS, son altamente complejos y, por lo tanto, la posibilidad de existencia de errores en ellos aumenta de forma significativa. De ahí la importancia del uso de técnicas seguras y maduras para comprobar la fiabilidad de estos sistemas. Por eso, el uso de las técnicas formales ha aumentado en los últimos años. Así, normas europeas como CENELEC requieren que las aplicaciones que controlan sistemas ferroviarios se desarrollen usando métodos formales para el análisis de propiedades que aseguren la corrección del sistema (EN50126 (1999), EN 50128 (2001), EN 50129 (2001)). Desde la Plataforma Tecnológica Ferroviaria Española (PTFE) se ha propuesto como línea de investigación el uso de los métodos formales para resolver problemas surgidos entre las diferentes versiones del ETCS y para mejorar la compatibilidad entre componentes [Igl10]. Berg et al. [BSW08] analizaron las tablas de control que utilizaban la compañía de ferrocarriles de Queensland, Australia mediante modelos híbridos y usando algoritmos de model checking. Platzer and Quesel [PQ09] aplicaron técnicas formales para el diseño del protocolo de cooperación del ETCS, encargado de evitar colisiones, probando su corrección incluso cuando se introducían distorsiones. Cimatti et al. [CRT09] desarrollaron una lógica con aspectos híbridos para la validación de requisitos en dominios de aplicación híbridos, que se aplicó en el ETCS. 2.3.3 Herramientas de análisis y síntesis de sistemas híbridos Los modelos teóricos desarrollados para la descripción de sistemas híbridos han dado lugar a diversas herramientas de verificación. Cada herramienta se especializa en un tipo de análisis sobre un tipo de sistema híbrido específico, con características muy concretas, que normalmente lo simplifican. Por ejemplo, Kronos [BDMOTY98] fue una de las primeras herramientas desarrolladas. Kronos utiliza técnicas de model checking para el análisis de propiedades de sistemas de tiempo real, que se describen como redes de autómatas temporizados. Su dominio de aplicación incluye los protocolos de comunicación, y el modelado y análisis de sistemas industriales [DY95]. La herramienta UPPAAL [BDL04] está también basada en redes de autómatas temporizados, y permite modelar, simular y verificar propiedades sobre sistemas de tiempo real, en los que la variable tiempo es la única que evoluciona de forma continua. La especificación de propiedades se hace con la lógica TCTL, un subconjunto de CTL enriquecido con aspectos temporales. Como el motor de verificación de UPPAAL es muy eficiente, ha sido utilizado en otras herramientas, como por ejemplo en UPPAAL TIGA [BCDFLL07], que está orientada a la síntesis de controladores mediante la resolución de juegos temporizados, y en TIMES [AFMPY02], cuyo campo de aplicación es la planificación de tareas en sistemas híbridos. UPPAAL se ha utilizado con éxito en el análisis de sistemas industriales como plantas de procesado [HLP01] o protocolos [HSLL97]. En [JRLD07] se ha utilizado UPPAAL TIGA junto con Simulink y Real-Time Works [MSS] para sintetizar el controlador de un termostato. En [AFPYS02] se utiliza TIMES para sintetizar la planificación de una célula de producción formada por robots y cintas transportadoras. Otras herramientas, como CheckMate [SRKC00] y PHAVer [F08], permiten modelar sistemas híbridos con múltiples variables continuas que pueden tener una evolución no 13 lineal con el tiempo, y que pueden depender de otras variables continuas. CheckMate hace uso de los módulos Simulink y StateFlow de MATLAB [MSS] para realizar tareas computacionales intensivas e implementa algoritmos de verificación para analizar propiedades de seguridad. El comportamiento continuo de los sistemas se expresa mediante ecuaciones diferenciales ordinarias, mientras que la parte discreta se describe con máquinas de estados finitas. Los casos de uso más destacados de CheckMate son del ámbito automovilístico para analizar, por ejemplo, el comportamiento de un sistema de control de velocidad [FK04], o el sistema de inyección en modo corte [SK00]. PHAVer surgió para resolver problemas que presentaban las primeras herramientas de análisis de sistemas híbridos: complejidad elevada, convergencia lenta y pérdida de precisión. Está basada en la noción de autómata híbrido lineal, incluye la librería Parma Polyhedra [PPL] para tener una aritmética exacta, e incorpora una heurística que mejora los problemas de convergencia. Esta herramienta se ha utilizado junto a UPPAAL TIGA y Simulink para la síntesis de un controlador robusto para maquinaria industrial [CFLRR09] Finalmente, HybridSAL [T03] está orientada al análisis de sistemas biológicos caracterizados como sistemas híbridos. Además de permitir la verificación, esta herramienta presenta una extensión del lenguaje intermedio SAL para la especificación de sistemas de transición discretos, que son soportados por diferentes herramientas de verificación. HybridSAL se ha utilizado para modelar el proceso de metabolización de azúcar en sangre de humanos [LT04]. 2.3.4 Sistemas probabilísticos La mayoría de sistemas reales no son completamente deterministas, sino que contienen alguna componente que no puede ser prevista. Una forma simple de analizar estos sistemas es incluir indeterminismo en su especificación. Por ejemplo, en un sistema de comunicaciones, un mensaje puede llegar a su destino o perderse en el tránsito debido a las características del medio de transmisión o la ocurrencia de errores en nodos intermedios. En este contexto, el análisis se realiza teniendo en cuenta todas las posibles decisiones que se pueden tomar en cada disyuntiva. Sin embargo, en muchos sistemas con indeterminismo es posible conocer la probabilidad de que ciertas acciones ocurran, bien sean comportamientos impredecibles, elementos no fiables o componentes aleatorias del propio sistema. Si esta información no se utiliza en la fase de modelado, se están ignorando detalles de los sistemas reales que pueden ser importantes, y está limitando, por lo tanto, el tipo de análisis que se puede realizar. De acuerdo a su naturaleza, podemos clasificar las propiedades a analizar sobre un sistema como cualitativas o cuantitativas. Las propiedades cualitativas son aquellas cuya respuesta posible es afirmativa o negativa. Por ejemplo, la ausencia de bloqueo en un sistema concurrente, o la garantía de la recepción de un mensaje enviado. Las propiedades cuantitativas son aquéllas a las que se puede asociar un valor, que representa su grado de cumplimiento. Haciendo uso de estas propiedades se puede conocer si un sistema satisface una propiedad dentro de un rango de probabilidades dado, o incluso conocer la probabilidad exacta de su cumplimiento. Por ejemplo, podría ser interesante saber que un mensaje llegará a su destino con un 99% de probabilidad a través de un canal con pérdidas inevitables. En un sistema cuya descripción contenga información probabilística se podrán analizar tanto propiedades cualitativas como cuantitativas. 14 Las propiedades cualitativas suelen estar relacionadas con los aspectos funcionales de un sistema, mientras que las propiedades cuantitativas están relacionadas con los aspectos no funcionales, como la fiabilidad, el rendimiento o el consumo de energía. Algunas propiedades que, tradicionalmente, se han expresado de forma cualitativa, se transforman en propiedades cuantitativas cuando se tienen en cuenta aspectos de incertidumbre que están presentes en los sistemas reales. Tradicionalmente, para la descripción de sistemas probabilísticos se han empleado formalismos como las cadenas de Markov o los procesos de decisión de Markov [P94]. Una cadena de Markov es un conjunto de estados y transiciones que tienen asociadas una probabilidad. En el caso general, la probabilidad de una transición sólo depende del estado actual, mientras que en las cadenas con memoria pueden influir los estados pasados. Los procesos de decisión de Markov extienden las cadenas de Markov añadiendo comportamiento indeterminista. Con esta información se puede modelar la composición paralela asíncrona de sistemas probabilísticos y la subespecificación de algunos aspectos del sistema. 2.3.5 Análisis de sistemas probabilísticos Existen diversas herramientas que permiten analizar sistemas con componentes probabilísticas. Algunas de estas herramientas se orientan a un campo de aplicación concreto (las redes de comunicación), mientras que otras admiten descripciones genéricas. Las redes de comunicación son sistemas complejos donde se incluyen diferentes protocolos, aplicaciones y medios de transporte, organizadas en una topología específica. Estos sistemas incluyen de forma natural muchas componentes probabilísticas que interesa analizar. Por ejemplo, la probabilidad de pérdida de paquetes en un medio, o la probabilidad de envío de paquetes por parte de una aplicación. Tradicionalmente, estos sistemas han sido analizados mediante el uso de técnicas de simulación. El simulador ns-2 [FV00] es uno de los más conocidos y usados en el ámbito académico. Su núcleo consiste en un simulador de eventos discretos, que planifica eventos como la llegada y salida de paquetes o el vencimiento de temporizadores. El resultado de una simulación es una traza de ejecución sobre la que se pueden analizar propiedades, aunque ns-2 no incluye ninguna herramienta para realizar este análisis. Los sistemas se describen con una mezcla de C++ y Tcl, lo que permite configurar simulaciones de forma dinámica. Otras herramientas hacen uso de ns-2, como Verisim [BGKLOSV02], que emplea una extensión de la lógica LTL como lenguaje de propiedades. En el ámbito comercial se encuentran los simuladores de redes OPNET y OMNeT++, ambos basados en la simulación de eventos discretos. OPNET [C99] modela las redes en una jerarquía de tres niveles (red, nodos y procesos), e incluye herramientas para definir los datos a medir y analizar los resultados de una simulación. OMNeT++ [VH08] es una plataforma para construir simuladores de redes de propósito específico, como Mobility Framework o INET Framework. Los sistemas se describen mediante jerarquías de módulos, separando la definición de los módulos de la descripción de los experimentos. La topología de los sistemas puede variar dinámicamente, al contrario que en OPNET. OMNeT++ proporciona una serie de herramientas gráficas para la descripción de sistemas, y su simulación y análisis. 15 Möbius [DCCDDDSW02] es otra herramienta de análisis de sistemas probabilísticos mediante simulación de eventos discretos, pero no está orientada a ningún campo en especial. En lugar de disponer de un formalismo de modelado propio, Möbius admite múltiples lenguajes de descripción que se integran en la herramienta para hacer uso de las diferentes capacidades de análisis disponibles. Möbius se ha aplicado a campos como la biología, la seguridad o la ingeniería de satélites. Por otro lado, existen herramientas de model checking que se pueden aplicar a sistemas probabilísticos. Una de ellas es LiQuor [CB06] cuyo lenguaje de descripción, Probmela [BCG04], es una extensión del lenguaje Promela del model checker SPIN. Este lenguaje añade asignaciones aleatorias, un operador de elección probabilística y probabilidad de pérdida en los canales, y su semántica viene dada por un proceso de decisión de Markov. Las propiedades se especifican mediante fórmulas LTL regulares, obteniéndose las probabilidades máxima y mínima de sus ocurrencias. LiQuor se ha aplicado al proceso de sincronización de UMTS [CB06]. PRISM [KNP09] es otro model checker cuyo lenguaje de descripción de sistemas soporta tres formalismos distintos: cadenas de Markov de tiempo discreto, procesos de decisión de Markov y cadenas de Markov de tiempo continuo. Para los dos primeros se emplea la lógica PCTL para definir propiedades, mientras que para el tercero se emplea la lógica CSL. La herramienta PRISM también ha sido aplicada a modelos Probmela, mediante el uso de un traductor [CBGP08]. Existen casos de estudio en un amplio espectro de dominios, como protocolos de comunicación, seguridad, biología y gestión de energía. En este último campo, en [NPKSG02] se ha estudiado el sistema de gestión dinámica de la energía de un disco duro con diferentes políticas de control, mientras que en [KNP05] se estudia además un gestor de escalado de voltaje dinámico. MODEST [BDHK06] es un lenguaje de modelado descendiente de álgebras de procesos como CSP y LOTOS, para sistemas reactivos temporizados. Permite modelar indeterminismo (de acciones o de temporización de eventos) y probabilidad (de alternativas y variables aleatorias). La herramienta desarrollada para trabajar con MODEST, MOTOR, no realiza por sí misma la tarea de análisis del sistema, sino que se integra con otras herramientas, por ejemplo Möbius [BHK07] y PRISM [HH09]. En el primer caso, el análisis a realizar se especifica en la herramienta Möbius, mientras que en el segundo hay un proceso de traducción al lenguaje de PRISM que también adapta las propiedades a verificar. Entre otras aplicaciones, MOTOR se ha empleado para estudiar protocolos de red adaptativos [BGGK05] y la fiabilidad de un sistema de señalización de trenes [HJU05]. 2.3.6 Integración de sistemas continuos y estocásticos Como ya se ha comentado, los sistemas reales frecuentemente incluyen procesos infinitos y continuos. Normalmente, para simplificar su modelado se abstraen y se convierten en sistemas finitos y discretos. Sin embargo, para muchas aplicaciones es interesante utilizar modelos de tiempo continuo que nos permiten analizar otro tipo de propiedades que tienen lugar en los sistemas reales. Una definición de modelos continuos es: “Los modelos de tiempo continuo se caracterizan por el hecho de que, en un intervalo de tiempo finito, las variables de estado cambian de valor de forma infinita” [C91]. 16 Los modelos de sistemas continuos se representan mediante un conjunto de ecuaciones diferenciales. Entre los modelos de tiempo continuo se pueden distinguir dos clases: los modelos matemáticos con parámetros agregados, que se describen con ecuaciones diferenciales ordinarias o con sistemas lineales, y los modelos de parámetros distribuidos, descritos por ecuaciones en derivadas parciales. Los circuitos eléctricos son un ejemplo de sistemas continuos bien definidos, que pueden representarse completamente mediante modelos de tiempo continuo. Por otro lado, en numerosas ocasiones, es necesario introducir aspectos probabilísticos en los modelos continuos para incorporar la incertidumbre presente en muchos sistemas del mundo real. Un ejemplo es el ruido blanco en el campo de las comunicaciones, y más concretamente en el ámbito del procesamiento de señales. Este tipo de sistemas se denominan estocásticos de tiempo continuo. Un proceso estocástico de tiempo continuo es un proceso estocástico en el cual el estado del sistema puede ser observado en cualquier momento temporal. Los procesos de Poisson, los procesos de Markov y el movimiento browniano estándar son algunos ejemplos de procesos estocásticos de tiempo continuo. Para el modelado de sistemas continuos estocásticos, las técnicas usadas tradicionalmente están basadas en el uso de cadenas de Markov de tiempo continuo (CTMCs). Las CTMCs han sido ampliamente utilizadas en la literatura científica para el modelado y evaluación de sistemas de comunicaciones desde un punto de vista cuantitativo. Por otro lado, la técnica de model checking que tradicionalmente se centra en la evaluación cualitativa de los modelos, se ha extendido para que soporte la lógica estocástica continua (CSL) [BHHK03]. La lógica CSL también se ha utilizado para expresar cuantitativamente propiedades de las cadenas de Markov de tiempo continuo finitas. Existen referencias en la literatura en las que se ha demostrado la eficiencia de los algoritmos desarrollados para la verificación con CTMCs finitas usando propiedades especificadas con esta lógica [BHHK00], así como en herramientas como PRISM [KNP04], ETMCC [HKMKS03], APNN [BKKT03] y MRMC [KKZ05]. 2.3.7 Integración de sistemas híbridos y estocásticos: el caso de los protocolos de comunicaciones Los métodos formales para sistemas híbridos estocásticos permiten integrar en un mismo modelo tanto el comportamiento híbrido de un sistema real, como la noción de incertidumbre, propia de los sistemas probabilísticos. La incertidumbre puede integrarse en un sistema híbrido de varias formas: asignando probabilidades a las transiciones, permitiendo el indeterminismo en la componente continua, mediante el uso de un modelo de tiempo con retardo, etc. Aubin et al. [AFM07] define la semántica de las Redes de Restricciones Probabilísticas (PCN) para modelar sistemas híbridos probabilísticos basándose en el paradigma de las álgebras abstractas. Una PCN es una red en la que los nodos sirven como variables de las ecuaciones que definen la parte probabilística. Estas variables pueden tomar valores aleatorios siguiendo una distribución probabilística continua, como la de Gauss, o discreta, como la de Poisson. Para modelar el comportamiento continuo del sistema, PCN define un conjunto de ecuaciones que representan las transiciones entre nodos. La propuesta [HW02] se centra en el problema de la diagnosis, es decir, en el análisis de los síntomas que tiene un sistema híbrido tras producirse un fallo, lo que puede ser útil para 17 evitarlo en el futuro. Para ello, definen los autómatas híbridos probabilísticos concurrentes (cPHA), que integran los modelos de Markov ocultos (HMM), utilizados para el modelado sistemas discretos probabilísticos, con modelos continuos. Los HMM se extienden con ecuaciones en diferencias con tiempo discreto y ecuaciones algebraicas que capturan la evolución dinámica del sistema. El resultado es un modelo híbrido con probabilidad en las transiciones. Por último, Teige [T07] propone utilizar técnicas de análisis de “satisfacibilidad” (SAT) mediante model checking simbólico acotado para analizar fallos en sistemas híbridos estocásticos. La incertidumbre se incorpora definiendo la probabilidad de que ciertos elementos fallen. Los protocolos de comunicaciones son sistemas híbridos estocásticos en los que existen múltiples dependencias e interacciones con otros protocolos, con las aplicaciones que hacen uso de ellos, o con el propio medio de transmisión. El análisis y optimización de estos protocolos es una tarea fundamental para obtener un buen rendimiento de los sistemas de comunicaciones, tanto a nivel de calidad de servicio como en cuanto a consumo energético y eficiencia de uso de recursos. Generalmente los protocolos cuentan con parámetros que permiten ajustar su comportamiento y rendimiento. Estos suelen presentar unos valores por defecto que se consideraron adecuados para los casos generales. Sin embargo, el rendimiento que se obtendrá usando los parámetros por defecto generalmente no será el óptimo. Por lo tanto, dependiendo del escenario en el que deban operar, estos parámetros deberán configurarse adecuadamente para obtener un buen rendimiento [YKKY08][CPGCV03]. Existen también protocolos que están orientados a un escenario concreto, como mitigar el efecto de las desconexiones en entornos móviles [GMPG00]. No obstante, estos protocolos también son susceptibles de ser optimizados según las condiciones de su entorno. Otra técnica que se está comenzado a explotar recientemente es el concepto de arquitecturas cross-layer [SRK03][SM05]. Las pilas de protocolos tradicionales buscan aislar el funcionamiento de cada una de las capas que las conforman. Las características específicas de las comunicaciones inalámbricas dan lugar a obtener un mejor rendimiento si varias de estas capas colaboran para ajustar mejor sus parámetros según las necesidades. Esta información puede provenir de la capa física, informando del estado actual del canal de transmisión, y ser de utilidad incluso en la capa de aplicación a la hora de transmitir información multimedia [SS05]. La optimización de parámetros en una arquitectura crosslayer puede proporcionar un mayor aumento del rendimiento, pero supone explorar un espacio de soluciones considerablemente mayor, además de la complejidad inherente a un enfoque donde los límites entre bloques funcionales se disuelven [KK05]. Es necesario realizar un estudio de estos sistemas para conocer la configuración óptima que se debe aplicar según el escenario. Estos estudios se pueden realizar de forma analítica [PFTK00], mediante simulaciones [BLH06] o monitorizando implementaciones reales [GMPG00]. Los dos primeros enfoques permiten realizar estudios previos a la implementación o implantación de los protocolos. El uso de simulaciones está muy extendido a la hora de analizar y evaluar sistemas de comunicaciones, resultando sencillo crear escenarios complejos que se acerquen a un escenario real. Sin embargo, el sistema 18 estudiado es forzosamente una abstracción del sistema real, por lo que resulta fundamental validar las conclusiones extraídas en un entorno real. 2.4 Generación de adaptadores La habilidad de construir automáticamente sistemas móviles distribuidos mediante la composición de servicios, generando adaptadores cuando sea necesario y monitorizando su ejecución, es un paso fundamental en el desarrollo, la integración, y el mantenimiento de dichos sistemas. La necesidad de automatizar las tareas de adaptación ha dado lugar al desarrollo de la adaptación software [BBGORT06, CMP06]. Esta disciplina gestiona la interacción entre entidades a través de adaptadores, buscando la automatización del proceso de adaptación y permitiendo que los servicios con problemas de emparejamiento interaccionen de manera correcta. Los adaptadores se construyen automáticamente desde descripciones abstractas (contratos de adaptación) que especifican cómo se resuelven los desajustes entre los interfaces de los servicios. La adaptación software se caracteriza por procedimientos altamente dinámicos que ocurren cuando, por ejemplo, los dispositivos y las aplicaciones se mueven de red a red, modificando su comportamiento, y mejorando la flexibilidad y mantenimiento de los sistemas. Dado el papel coordinador de los adaptadores, éstos también cumplen el papel de controladores, tanto de los componentes individuales como de la composición de los mismos. 2.4.1 Clasificación de propuestas de adaptación La generación de controladores (o adaptadores) que adapten el sistema a incompatibilidades, cambios de requisitos y de contextos ha dado lugar a la aparición de numerosos trabajos en la literatura. Muchas de estas propuestas se pueden clasificar en restrictivas [AINT07, BP07, NBMCC07] y generativas [BBC05, CPS08, DSW06]. Las primeras restringen el funcionamiento normal del sistema a aquellas trazas y contextos en los que se preservan las propiedades deseadas, limitando así la funcionalidad sin aportar nuevos mecanismos al sistema. Por otro lado, los controladores o adaptadores generativos son sintetizados con el objetivo de proporcionar la lógica adicional necesaria para cubrir posibles deficiencias e incompatibilidades entre los componentes del sistema. Los adaptadores generativos son más versátiles y tienen más capacidad de adaptación que los restrictivos pero, en contraposición, tienen una mayor complejidad de síntesis y necesitan el desarrollo de mecanismos rigurosos de verificación y monitorización. La generación de adaptadores también se puede clasificar, según el momento en el que se realice, en dos tipos: en tiempo de diseño [CSCCP07, CMSCOCP09, P09, CCP11] y en tiempo de ejecución [HCDB99, CIJKS00, HK06]. El primer tipo es más potente dado que los adaptadores generados en tiempo de diseño no están restringidos por las necesidades de tiempo real del segundo tipo. Por ello, muchas de estas propuestas hacen uso de técnicas de model checking y exploran exhaustivamente el controlador generado. En contrapartida, la síntesis dinámica de adaptadores permite la adaptación en un rango más variado de situaciones, ya que se pueden amoldar a cada contexto. Sin embargo, los adaptadores sintetizados pueden no ser los óptimos dada las limitaciones temporales. 19 2.4.2 Monitorización de los cambios de contexto La adaptación dinámica de un sistema en ejecución viene dada por un cambio de contexto. Un contexto se define como “la información que puede usarse para caracterizar la situación de una entidad. Una entidad es una persona, lugar, u objeto que se considera relevante para la interacción entre un usuario y una aplicación, incluyendo al usuario y a la aplicación” [DA00]. La información de contexto puede clasificarse en cuatro categorías principales [KH03, SAW94]: (i) contexto de usuario (perfil, preferencias, idioma, calendario, situación social o privilegios), (ii) contexto de dispositivo/computación (conectividad a la red, capacidades de un dispositivo o carga del servidor), (iii) contexto de tiempo (hora actual, día, año, mes o estación), y (iv) contexto físico (localización, tiempo o temperatura). Por su naturaleza, los contextos pueden cambiar en tiempo de ejecución, por lo que tienen que ser evaluados dinámicamente durante la ejecución del sistema. La monitorización observa los servicios durante su ejecución y controla su entorno. Además, reconoce los cambios de contexto o de la estructura del sistema, así como los posibles fallos en tiempo de ejecución. Por lo tanto, la monitorización permite detectar violaciones (fallos no detectados en análisis estáticos y testing) de comportamiento esperado, recoger información sobre la ejecución de los servicios, y lanzar excepciones apropiadas para cada tipo de fallo. Dentro de la monitorización, la reconfiguración dinámica [M96] se refiere a cambios en la estructura física (inserción, eliminación o reemplazo de servicios), y en la estructura lógica (adición o supresión de interacciones en el comportamiento de los servicios) del sistema. Por ejemplo, imaginemos dos servicios que pueden recibir fotos y vídeos, respectivamente; podría añadirse un tercer servicio para gestionar música. Se han propuesto diferentes soluciones basadas en reconfiguración dinámica aplicada a sistemas distribuidos y arquitecturas software [FL10, KM90], lenguajes de coordinación [KMLA11], transformación de grafos [FL10, WLF01] o metamodelado [KB04]. Por su parte, las técnicas de recuperación de errores [TIRL03] permiten monitorizar la gestión de fallos en la red, el sistema o los servicios, en tiempo de ejecución, consiguiendo sistemas fiables. La elección de estos mecanismos depende de los tipos de faltas y las características y requisitos del sistema. Hay dos clases principales de técnicas de recuperación de errores [LA99]: backward y forward. Backward se basa en la recuperación de servicios a un estado correcto en presencia de fallos. Forward implica la transformación de los servicios en cualquier estado correcto mediante un mecanismo de manejo de excepciones. Un paso fundamental para la generación de adaptadores y la consecuente monitorización de la ejecución del sistema, es la selección de los componentes que en cada momento y, dependiendo de los cambios de contexto, interaccionarán en el sistema. La integración de componentes o servicios en sistemas que van a ser controlados en base a su naturaleza dinámica contextual requiere mecanismos de compatibilidad de comportamiento, así como de emparejamiento semántico soportados por altos niveles de abstracción, tales como metamodelos. Por un lado, la ventaja de usar compatibilidad entre los procesos de negocio, que definen el comportamiento de los componentes de un sistema, es que no sólo se hace un control a nivel de la signatura de dichos componentes, sino también a nivel de su comportamiento, evitando situaciones problemáticas, como interbloqueos. Muy pocos enfoques han abordado la compatibilidad del comportamiento en el descubrimiento de componentes o servicios considerando información de contexto [H07, 20 SMZ07, CCP10, CCP11]. Con respecto a los meta-modelos semánticos, son útiles para la especificación y el control dinámico de cambios en parámetros como las preferencias de los usuarios y las capacidades de los servicios que interaccionan en el sistema. Existen diferentes enfoques que usan tecnologías de Web Semántica para considerar capacidades semánticas, tales como WSMO [KLPF05], METEOR-S [AVMM04], o OWL-S [KFS06, LH03, MFGI06]. Estas tecnologías proponen una representación formal de un conjunto de conceptos dentro de un dominio, capturando las relaciones entre dichos conceptos. Esta clasificación se denomina ontología y se expresa en un formato legible por máquina, que permite a los componentes de un sistema comprender y enlazar los conceptos dentro un mismo dominio. Así, usando ontologías, se pueden reconocer emparejamientos semánticos y no sólo diferencias sintácticas. Diversos trabajos han abordado el uso de este tipo de tecnologías para llevar a cabo síntesis de adaptadores [BHRT03, BPSKC04, BC08, BCP08, CCP11, GRR10, MFGI06, WVKT06]. Aunque algunos de estos trabajos soportan técnicas de emparejamiento semántico y/o información de contexto, sus modelos formales no siempre contemplan los cambios dinámicos, así como otro tipo de parámetros fundamentales a la hora de generar controladores o adaptadores automáticos, como son los requisitos de calidad del sistema. 2.4.3 Síntesis de adaptadores seguros Existen también gran cantidad de trabajos [M03, MM11, HCDB99, LYR022, MP10a] centrados en los aspectos de seguridad, entre otros parámetros de calidad. La seguridad es uno de los principales retos de la computación basada en servicios [PTDL07]. La privacidad de los datos personales, amparada por la ley orgánica de protección de datos de carácter personal (LOPD, 15/1999), es sólo parte de los distintos aspectos de seguridad en los que también hay que garantizar otras propiedades como identificación (quién eres), autenticación (asegurar la identidad contra ataques de suplantación), autorización (a qué tienes acceso), integridad (los datos no han sido alterados), disponibilidad (los datos son accesibles) y no repudio (no se puede rechazar la autoría de los datos y las acciones realizadas), entre otras. Esto obliga a los ingenieros software a considerar aspectos multidisciplinares como las leyes vigentes, reglas de negocio y los requisitos del sistema. La seguridad está reñida con la mayoría de los parámetros de calidad. La encriptación hace una comunicación más lenta y pesada. Las técnicas más comunes de autenticación empeoran la usabilidad. Dado que normalmente la seguridad viene enfrentada al rendimiento del sistema, en [HCDB99], los autores proponen un sistema que se adapta dinámicamente a los intentos de ataque de seguridad. Normalmente, el sistema se ejecuta bajo una seguridad mínima y un máximo rendimiento, pero esta seguridad se refuerza cuando se detectan posibles ataques con la consiguiente sobrecarga computacional. En [LYR02], se presenta una aproximación radicalmente distinta en la cual hay que realizar un procesamiento intensivo de datos con distintos niveles de privacidad. En su propuesta, las tareas son distribuidas entre múltiples nodos y éstos se coordinan, planifican y emplean las medidas de seguridad oportunas según los datos a tratar en cada momento. Una problemática recurrente en temas de seguridad es cómo permitir acceso a terceros sin que vulneren la seguridad del sistema. Para ello, en [MM11] se desarrollan controladores de seguridad que envuelven a los elementos externos e impiden que éstos realicen cualquier acción que pueda afectar negativamente al sistema, asegurando las propiedades de seguridad mediante técnicas de model checking parcial [A95]. 21 Pese a que muchos de estos trabajos tratan una problemática común e incluso emplean técnicas similares (álgebras de procesos, model checking, máquinas de estados y session types, entre otros), ninguno de ellos aborda el problema en su totalidad, y su integración es compleja y en muchos casos imposible. Por tanto, existe una necesidad de abordar el problema de la seguridad monitorizando el control dinámico en los cambios de contexto y considerando parámetros de calidad. 2.5 Certificación de protocolos LTE La próxima generación de tecnologías de red celular conocida como LTE implica cambios sustanciales tanto a nivel de la red de acceso radio, como a nivel del núcleo de red. En esta sección, se da una breve introducción sobre los avances tecnológicos más significativos de LTE y sobre lo que estos avances implican para la certificación de los protocolos desplegados en LTE. En general, la arquitectura de red se ha simplificado, pero esta simplificación ha provocado el aumento de la complejidad de algunos elementos de red, los cuales han aumentado su funcionalidad debido a esta reestructuración. En el nivel de acceso radio se utiliza una nueva interfaz y una nueva arquitectura. Para facilitar una gestión más dinámica tanto de la movilidad como de las tareas de planificación de nivel 2, la red de acceso radio LTE está formada por un único tipo de nodo, el eNodeB, que sustituye al NodeB y al RNC de UMTS. Las funciones de gestión de recursos radio y de planificación se realizan ahora en los eNodeBs, que también tienen la posibilidad de comunicarse directamente entre sí. Estos cambios implican una reducción de los tiempos de latencia, y un aumento significativo de la flexibilidad en la configuración de la red de acceso radio. Sin embargo, también suponen un aumento en la complejidad del eNodeB y, por lo tanto, de las pruebas de conformidad que permiten certificar el comportamiento de este elemento de red. Otro de los cambios más importantes que conlleva la arquitectura LTE es la eliminación del domino de conmutación de circuitos, y el uso de IP tanto en el transporte de la información de señalización, como en el transporte de datos de usuario, incluidas las llamadas de voz ahora desplegadas como servicio de VoIP. Este cambio hace que la certificación deba extenderse hacia los dominios del plano de usuario y de la pila IP de protocolos de aplicación. En este contexto, también adquiere sentido la certificación de parámetros relacionados con calidad del servicio (QoS) ofertado a nivel de aplicación. La calidad de servicio es un concepto que involucra la configuración de numerosos parámetros a distintos niveles de la pila de telefonía y de la pila de protocolos IP. Los casos de pruebas que hay que diseñar para validar aspectos relacionados con la QoS deben tener en cuenta un gran número de elementos de red y variables. La gestión de la movilidad es otro de los factores claves en los procesos de certificación. Concretamente, la gestión de los handovers entre distintas tecnologías de acceso radio (IRAT) implica la correcta coordinación de todos los elementos de red. Existen numerosas condiciones de temporización de variables y condiciones de carrera que necesitan ser optimizadas para obtener una alta tasa de éxito en la ejecución de los handovers. La configuración de las pruebas de conformidad para verificar esta compleja funcionalidad se convierte, también, en una tarea tediosa. En LTE la complejidad de los handovers entre sistemas se incrementa al aumentar el número de elementos que deben coordinarse para su 22 ejecución, ya que en LTE el servicio de voz es ahora desplegado a través del sistema IMS (IP Multimedia Subsystem) y del HLR (Home Location Register). Por último, el consumo energético es un aspecto que se ha tenido en cuenta desde su inicio en el diseño de LTE. El rendimiento energético de los terminales móviles depende de parámetros hardware y software tanto del terminal como del eNodeB. Por este motivo su certificación también requiere una cuidadosa configuración de casos de pruebas, que deben abordar distintos elementos de red y modos de funcionamiento. 2.5.1 Uso de técnicas formales en el campo de la certificación Los nuevos requisitos que plantean, desde el punto de vista de las pruebas de certificación, los cambios tecnológicos introducidos en LTE, demandan nuevas técnicas de generación de casos de prueba. Dichas técnicas deben permitir abordar el incremento en la complejidad de los sistemas a certificar, y por extensión, de las pruebas que deben ser diseñadas para validar el comportamiento de los protocolos LTE. Por otro lado, surge la necesidad de ir más allá del ámbito de la certificación y avanzar en técnicas que permitan la verificación en entornos reales que sirvan al mismo tiempo para optimizar parámetros de red. En el proceso tradicional de generación de las pruebas de conformidad se utiliza documentación textual informal, técnicas de descripción gráficas, diseño y análisis estructural, etc. lo que lleva a una definición ambigua de las características deseadas. La aplicación de técnicas formales en el caso concreto de la generación de tests de conformidad para protocolos de comunicaciones puede proporcionar una metodología no ambigua para diseñar y documentar los casos de prueba. Dicha metodología implicaría la especificación y el modelado del protocolo, así como su síntesis. La especificación se refiere a los requisitos que el sistema debe cumplir. En el ámbito de las técnicas formales los protocolos se definen como sistemas reactivos, sistemas que interaccionan continuamente con el entorno, reaccionando a los estímulos que éste genera. Para la especificación de sistemas reactivos existen numerosas propuestas: máquinas de estado finitas (FSM), MSC (Message Sequence Charts), usados para la especificación de flujos de mensajes entre los componentes del sistema, SDL (Specification and Description Language), usado para la especificación de sistemas de comunicación complejos y diagramas UML, que permite generar diagramas de comportamiento, interacción y de estructura. En el caso del model checking los requisitos se especifican, comúnmente, mediante el uso de lógica temporal. Existen antecedentes que validan el uso de técnicas formales en la generación de casos pruebas de conformidad. El más importante de ellos es la iniciativa desarrollada en el seno del ISO/ITU-T que se vio plasmada en la especificación Z.500 titulada “Marco de los métodos formales en las pruebas de conformidad”. Los objetivos de ese grupo de trabajo eran los siguientes [CFP96]: (1) Investigar cómo el progreso de la teoría de testing puede proporcionar un mejor entendimiento de los conceptos introducidos en la norma ISO 9646 sobre tests de conformidad para protocolos OSI. Por ejemplo, los aspectos como la interpretación formal de la conformidad, la ejecución de las pruebas o la cobertura de los tests. 23 Concretamente se trata de abordar los conceptos asociados a pruebas de conformidad con técnicas de descripción formal. (2) Evaluar la posibilidad de mejorar el proceso de desarrollo de tests a través de la generación automática de casos de tests usando especificaciones formales. La recomendación resultante de los trabajos llevados a cabo por este grupo de trabajo define un marco para el uso de métodos formales en las pruebas de conformidad necesarias para la certificación. La recomendación proporciona una guía para la definición de la conformidad y el proceso de prueba de las implementaciones, con respecto a una especificación que se expresa como una descripción formal. Sin embargo, la recomendación no describe un método concreto para la generación de casos de prueba. Esta generación, junto con la generación automática de configuraciones óptimas de las implementaciones bajo prueba, serán los principales objetivos del módulo 4. 24 3 Objetivos En esta sección se detallan los objetivos del proyecto. En primer lugar, se describe la propuesta de investigación y cómo se va a desarrollar en cada uno de los campos que se han mencionado en los antecedentes. A continuación, se enumeran estos objetivos de una forma más resumida. En la siguiente sección, esta propuesta se estructura en módulos de trabajo, que a su vez se detallan en tareas, cuyo cumplimiento puede cuantificarse en tiempo. 3.1 Propuesta de Investigación Este proyecto sigue dos líneas de investigación principales. Por un lado, estamos interesados en el modelado y verificación formal de sistemas discretos enriquecidos con componentes continuas y aspectos de incertidumbre. Esto enmarca la propuesta dentro del área de modelado y verificación de sistemas híbridos y probabilísticos. Por otro lado, el proyecto aborda el desarrollo de técnicas de síntesis y optimización, que son de suma importancia en las áreas de diseño de controladores software, y de adaptadores de servicios. Como técnica básica para resolver ambos problemas, en el proyecto se utilizará el model checking. El equipo de trabajo tiene mucha experiencia en esta técnica formal, por lo que parece la más adecuada para afrontar nuevos retos. Por otro lado, está claro que las técnicas formales sólo tienen una verdadera aplicación práctica si van acompañadas de herramientas que soportan las propuestas teóricas. En este sentido, se propone la construcción de prototipos que incorporen estas propuestas. Finalmente, el proyecto propone el modelado, verificación y/o síntesis de aplicaciones de tamaño medio, y de una aplicación de gran entidad a desarrollar por la empresa que colabora en el proyecto motriz. Esta aplicación culmina de manera coherente las propuestas tecnológicas realizadas. A continuación, y con el fin de ser más específicos, se profundizan en los principales aspectos tratados en el proyecto relacionándolos con los antecedentes que se han descrito en la sección anterior. 3.1.1 Integración de los sistemas discretos y continuos Como ya se comentado, un lenguaje de modelado de sistemas híbridos debe incluir distintas características. Por un lado, debe permitir la descripción del comportamiento discreto del sistema (mediante un sistema de transiciones o autómatas). Así mismo, debe incluir alguna noción de tiempo (discreto o continuo) que permita definir la evolución de la parte continua del sistema. La evolución continua del tiempo está normalmente implícita en los modelos formales, pero si el tiempo cambia de forma discreta, esta evolución puede ser transparente o explícita, aunque en este caso la primera solución es la más apropiada. Finalmente, el lenguaje debe soportar variables continuas, es decir, variables cuyo valor sea real y se modifique con el tiempo siguiendo algún patrón de comportamiento, típicamente mediante una ecuación diferencial ordinaria. Normalmente, el valor de las variables reales se actualiza de manera implícita también en el modelo formal. Sin embargo, la manera en la que se realiza esta actualización determina la eficiencia de los algoritmos de model checking. 25 Una opción para la construcción de un marco de verificación que soporte sistemas discretos y continuos consiste en extender los formalismos y herramientas que existen para sistemas discretos (SPIN, CADP, o SMV), de forma que sean capaces de interaccionar con las herramientas que soportan el modelado y análisis de los sistemas continuos (como MATLAB). Esta solución puede ser lo suficientemente versátil como para que el marco extendido sea capaz de entenderse con distintas herramientas externas, en función del tipo de análisis que desee realizarse. Figura 3.1 Arquitectura para el análisis de sistemas híbridos Una vez definido el lenguaje de descripción del sistema híbrido, la propuesta tiene que incorporar necesariamente una extensión de los lenguajes de especificación habituales sobre modelos discretos (lógica temporal, autómatas de Büchi) capaces de expresar propiedades sobre el comportamiento no discreto del sistema. En particular, una primera extensión necesaria es la inclusión del tiempo real como parte del lenguaje de especificación. Existen en la literatura distintas lógicas extendidas con tiempo como, por ejemplo, la lógica de duración [H97b] y su extensión a intervalos [P02] o la lógica TCTL que soporta la herramienta UPPAAL. En cualquier caso, el lenguaje de especificación de propiedades debe diseñarse de forma paralela al lenguaje de modelado sobre el cual se van analizar las fórmulas. Además del tiempo, el lenguaje de especificación también debe poder soportar propiedades cualitativas sobre las variables continuas del sistema subyacente. Para ello, y siguiendo la filosofía descrita anteriormente, el formalismo debe ser capaz de interaccionar con herramientas externas que actúan como oráculos respondiendo a cuestiones relativas al comportamiento continuo del sistema. Otro aspecto de interés relativo al lenguaje de especificación es que debe servir también para la descripción de propiedades objetivo cuando se realizan tareas de síntesis con las 26 herramientas de model checking. Esta nuevo papel sería más útil para usuarios no expertos si la especificación admitiera representaciones gráficas y visuales más sencillas de entender que las textuales. Finalmente, la extensión de los lenguajes de modelado y de la especificación tiene que ir acompañada de una reconstrucción de los algoritmos de model checking y de la representación interna del espacio de estados para que se puedan soportar las nuevas características de los sistemas modelados. Lo ideal es que los algoritmos y el modelo de espacio se diseñen de manera modular de forma que la extensión afecte lo menos posible al comportamiento que tienen las herramientas cuando se analizan sistemas discretos puros. En esta línea se propone construir extensiones de los algoritmos y representaciones del espacio de estados que se lleven a cabo sobre los algoritmos y representaciones de estados que tienen las herramientas extendidas, siguiendo la metodología utilizada en [GMS09]. La Figura 3.1 muestra la arquitectura inicialmente planteada para la extensión de la técnica de model checking descrita en esta sección. Un trabajo previo en la verificación y síntesis de sistemas híbridos fue desarrollado por el grupo de trabajo en el contexto de la gestión automática de embalses [GMPL09, GMPL11] Figura 3.2 Arquitectura para verificación y optimización de protocolos 3.1.2 Verificación, síntesis y optimización de protocolos El proyecto se centrará en dar soporte a la síntesis y verificación de sistemas probabilísticos, y más concretamente a los protocolos de comunicaciones. Los canales de comunicaciones son uno de los elementos específicos de sistemas de comunicaciones que 27 más se pueden beneficiar del uso de probabilidades. No es infrecuente modelar las pérdidas de un canal por las condiciones del medio. Con extensiones probabilísticas se podrían especificar de forma más realista estas pérdidas, además de añadir otros comportamientos excepcionales como la duplicación, distorsión o reordenación de mensajes. En esta línea, se tratan los problemas de análisis y optimización de protocolos de comunicaciones parametrizados para obtener un mejor rendimiento, así como la verificación de propiedades. En ambos casos se hace uso del model checking como técnica de exploración guiada por objetivos. El objetivo es permitir la optimización de los parámetros ofrecidos por los protocolos para adaptarlos a distintas situaciones, además de facilitar la búsqueda de errores, tanto en modelos simulados como en implementaciones reales. En cuanto al análisis de estos sistemas, nuestra propuesta incluye la integración de técnicas de model checking probabilístico y análisis exhaustivo, como las empleadas por herramientas como PRISM o LiQuor, con otras de simulación y análisis probabilísticos de tráfico, como las empleadas por los simuladores ns-2 y Möbius. Estas herramientas deben dar soporte también a la síntesis de protocolos y controladores. En este caso, el objetivo es acotar el espacio de diseño de un sistema híbrido-probabilístico existente partiendo de unos requisitos de fiabilidad, rendimiento, uso de energía u otros objetivos, optimizando dicho sistema de acuerdo con estos requisitos. En este proyecto, se propone el diseño de un marco de análisis orientado a aplicaciones y protocolos de comunicaciones, basado en la integración de simuladores de redes y técnicas de model checking. En este marco, se parte de un modelo para el simulador de redes, con algunas anotaciones extra. El modelo es ejecutado por el simulador de redes, y es monitorizado y analizado por una herramienta de model checking. El model checker puede comprobar propiedades sobre el comportamiento observado del simulador, como por ejemplo, propiedades de rendimiento o calidad de servicio. Estas comprobaciones pueden guiar la simulación en curso y la realización de más simulaciones, como parte de un estudio de un modelo parametrizado, haciendo uso de modelos para ns-2 u OPNET. Usando este marco como parte de un estudio parametrizado, se obtendrían aquellas configuraciones de parámetros que cumplen las propiedades marcadas. Como ventaja adicional, el uso de propiedades permite ahorrar tiempo de simulación, minimizando el tiempo dedicado a simulaciones improductivas. En esta línea, el proyecto propone la implementación de este marco de análisis con el simulador de redes ns- 2 y el model checker SPIN. El simulador ns-2 se ha elegido por su amplio uso dentro del mundo académico, y por su capacidad de extensión. 3.1.3 Síntesis y verificación de adaptadores El control ha sido tradicionalmente una de las tareas principales de los sistemas automatizados. En el caso de los sistemas distribuidos el control recae, entre otros, en composiciones entre componentes software, orquestadores de servicios Web, coreografías entre dichos servicios y controladores que envuelven e intermedian entre distintos elementos del sistema acorde a los requisitos del sistema. Todas estas alternativas tienen en común que han de considerar los acuerdos o contratos entre las entidades del sistema, ya sea desde el interfaz de los mismos hasta acuerdos de calidad de servicio, políticas de 28 seguridad y procesos de negocio. En este proyecto se abordará el uso de las técnicas formales para la generación de adaptadores que realicen las siguientes funciones: Coordinar los distintos elementos del sistema adaptando y superando las distintas incompatibilidades en la interfaz, el comportamiento o la calidad de servicio, entre los elementos involucrados. Por ejemplo, un controlador puede realizar balanceo de carga entre dos servicios similares y mejorar así el rendimiento del sistema. Proteger los componentes o servicios frente a interacciones no deseadas. Por ejemplo, un controlador puede verificar y filtrar las peticiones recibidas y administrar las trazas de ejecución permitidas a fin de evitar interbloqueos o cuellos de botella. Forzar ciertos comportamientos que preserven las propiedades deseables del sistema. Entre otros, un controlador puede limitar la propagación de errores ocurridos en algún subsistema, monitorizar políticas de seguridad y de calidad de servicio y controlar que se cumplan ciertas políticas de alto nivel, como que todo recurso solicitado ha de ser devuelto, o que toda petición debe de provenir de un ente autenticado. Todos estos objetivos se complican aún más cuando cambian en tiempo de ejecución y el sistema tiene que adaptarse a ellos dinámicamente. En particular, en el proyecto se abordará el problema de la adaptación dinámica que debe aplicarse necesariamente cuando se utilizan dispositivos móviles. La construcción de sistemas móviles distribuidos basados en servicios debe proporcionar mecanismos de gestión, mantenimiento y modificación del sistema en tiempo de ejecución, para disminuir substancialmente el tiempo y el coste del desarrollo de estos sistemas. En un entorno distribuido tradicional, en el que todas las peticiones de un usuario reciben la misma respuesta, la composición de servicios no resulta compleja. Sin embargo, la introducción de dispositivos móviles ha creado la necesidad de una composición más orientada al contexto en la que la respuesta a una petición dependerá de cierta información del usuario y del entorno. Así, la dependencia de contexto da lugar a una nueva clase de aplicaciones en la computación móvil y ubicua, proporcionando información relevante a los usuarios. Además, debido a la naturaleza de caja negra, para promover y facilitar la reutilización del software, así como para permitir la adaptación y reconfiguración automática, los servicios deben ser equipados con interfaces que permitan accesos externos a su funcionalidad. Sin embargo, mientras se componen servicios existentes, diferentes cuestiones relacionadas con fallos o cambios surgen dinámica y continuamente, por lo que tienen que ser detectadas y controladas. Estos problemas pueden clasificarse en cuatro principales categorías: (i) problemas de desajustes, (ii) cambios en los requisitos y en la configuración, (iii) fallos en la red o en el sistema remoto, y (iv) errores de servicio interno. En el proyecto se dará respuesta a cada uno de estos problemas. 3.1.4 Una aplicación en el dominio de la certificación de protocolos y servicios en redes LTE Tradicionalmente, los trabajos en certificación de protocolos en redes móviles se centran en el plano de control. Esta certificación es suficiente para los servicios desplegados sobre conmutación de circuitos, como la voz, cuya complejidad y calidad dependen del establecimiento inicial del canal con los parámetros adecuados, y de la asignación de los 29 recursos de red. Sin embargo, en LTE, todos los servicios se despliegan sobre conmutación de paquetes, con las características que ofrece la conectividad IP. Por ello, es necesario ampliar la tarea de certificación al plano de usuario y a toda la pila por encima de IP. Por otro lado, y debido a la necesidad de reducir los costes de certificación, en las pruebas de conformidad, se utiliza un conjunto de configuraciones limitado para minimizar el tiempo de empleado en los tests. Sin embargo, la optimización de los parámetros de configuración de red tiene un papel fundamental porque forma parte del know-how de los operadores y es uno de los factores que les permite diferenciarse. En esta línea, el objetivo del proyecto es extender los entornos de certificación de los protocolos de señalización para abarcar también el estudio del comportamiento de los nuevos servicios, incluyendo aspectos de calidad de servicio (QoS), consumo energético, y la generación de configuraciones óptimas de los protocolos LTE para los aspectos anteriores. En particular se contemplarán dos problemas: - Generación de los casos de tests para certificar en el terminal el cumplimiento de indicadores clave de rendimiento (KPI) identificados para distintos perfiles de servicios de nivel de usuario. - Optimización de la “configuración” de E-UTRAN en base a distintos perfiles de servicios de nivel de aplicación. La calidad de servicio no solamente se ve afectada por los algoritmos de planificación sino por multitud de parámetros de configuración pertenecientes a las distintas capas que conforman E-UTRAN. Tanto los algoritmos como los parámetros están fuera del marco especificado en las normas. Por ejemplo, para garantizar ciertos retardos, probabilidades de pérdidas de paquetes o tasas de transferencia determinadas para un servicio de usuario concreto hay que tener en cuenta tanto parámetros de nivel MAC (como la configuración de HARQ) como la configuración de los temporizadores de RRC. Los algoritmos de planificación MAC tienen que ser cuidadosamente diseñados para garantizar el servicio en condiciones adecuadas teniendo en cuenta la coexistencia de múltiples usuarios con distintos requisitos de calidad, incluso entre distintos servicios de un mismo usuario. 30 3.2 Objetivos concretos Las contribuciones descritas como propuesta de investigación el proyecto se pueden resumir en 4 objetivos más concretos: Objetivo 1: Avances en model checking de sistemas híbridos.- Se persigue la definición de un lenguaje de modelado formal que incluya aspectos continuos, además de los discretos, y para el que se desarrollará una herramienta de verificación automática a partir de las existentes. El lenguaje y la herramienta deberán ser aplicables en problemas reales en sistemas empotrados de naturaleza híbrida, como el caso de sistemas de control ferroviario. Objetivo 2: Avances en verificación y síntesis de sistemas probabilísticos y su aplicación a protocolos de comunicaciones.- Se pretende obtener una metodología para la verificación y optimización de sistemas parcialmente probabilísticos, como los modelos de los protocolos de comunicaciones. Para ello, se integrarán las técnicas de model checking con los simuladores de red tradicionales como ns-2 y OPNET. La metodología y del conjunto de herramientas resultante debe ser aplicable a protocolos reales, como los que soportan el servicio de videostreaming en comunicaciones móviles. Objetivo 3: Avances en generación automática de adaptadores en tiempo de ejecución.- Se persigue desarrollar un marco para la generación automática de adaptadores de servicios basado en el uso de técnicas formales, explorando sobre todo el uso de model checking como técnica para la síntesis de adaptadores a partir del modelado formal de los interfaces requeridos y ofrecidos por los servicios existentes y por otras informaciones de contexto. La metodología, los lenguajes de especificación y las herramientas resultantes se utilizarán para la adaptación en servicios de gran actualidad, como el acceso a las redes sociales desde dispositivos móviles. Objetivo 4: Demostración de la aplicabilidad de los resultados en una aplicación compleja con impacto industrial en el campo de las comunicaciones inalámbricas.- Se plantea aplicar el resto de resultados del proyecto en un dominio de aplicación en el que estén presentes los comportamientos híbridos y probabilísticos y que requiera del modelado, verificación y optimización. Concretamente, se pretende extender la certificación en redes UMTS y LTE para abarcar la certificación de los nuevos servicios como la voz IP sobre conmutación de paquetes. En este contexto, hay que abordar el modelado y verificación de aspectos continuos como el nivel de señal o el consumo de energía, así como aspectos probabilísticos relacionados con la pérdida de paquetes, o con el tipo de tráfico generado. Se hará un uso real de la integración de model checking y simuladores de protocolos para la síntesis automática de configuraciones óptimas de las pilas de protocolos, adecuadas a la calidad de servicio que se demanda. El resultado debe ser la extensión de infraestructuras de certificación de protocolos LTE existentes para contemplar medidas de QoS en servicios emergentes. 31 4 Metodología y plan de trabajo La organización del proyecto está dirigida por los objetivos. Al tratarse de un proyecto que realiza un equipo multidisciplinar, se ha estructurado en módulos que agrupan las tareas relativas a cada uno de los grandes objetivos indicados en la sección anterior. Los tres primeros módulos de trabajo están dedicados al desarrollo de las propuestas técnicas correspondientes a los tres primeros objetivos. Cada uno incorporará mecanismos de validación de sus resultados, así como una aplicación que demuestra ventajas de las propuestas tecnológicas. En particular, se abordan los sistemas de control ferroviario, el servicio de videostreaming en telefonía móvil, y los adaptadores de servicios en aplicaciones de redes sociales. El módulo 4 está íntegramente dedicado al desarrollo de una aplicación específica más ambiciosa, con la se demuestre la utilidad de las propuestas realizadas en el proyecto de forma conjunta, como se describe en el objetivo 4. Como aspecto metodológico a resaltar, hay que indicar que el proyecto se aborda tratando de identificar siempre los diferentes niveles presentes en la investigación con técnicas formales: lenguajes de modelado y de propiedades, algoritmos de verificación o síntesis, herramientas de procesamiento de esos lenguajes, y dominios de aplicación. En cada nivel se tendrá que realizar una validación de las propuestas con los medios adecuados. Por ejemplo, en todas las tareas que traten con los lenguajes de especificación y algoritmos se emplearán las propias técnicas formales para garantizar la corrección de los resultados, especialmente usando model checking cuando sea posible. En la evaluación de las herramientas será necesario definir baterías de pruebas para obtener resultados experimentales contrastables con los de otros autores. La evaluación de la aplicabilidad de los resultados en dominios concretos se basará en la interacción con las empresas usuarias finales de los resultados, y en el éxito que puedan tener a nivel de patentes o transferencia de tecnología. Las actividades de coordinación, gestión, difusión y explotación de resultados se han incluido juntas en el módulo 0, en el que participan los responsables de los 4 módulos orientados a tareas de investigación y desarrollo. A continuación, se detallan los mismos, incluyendo sus objetivos, resultados esperados, participantes y responsables. Al final de la sección se incluye un cronograma de organización de las tareas. 32 Módulo 0: Coordinación, Gestión, Difusión y Explotación Responsable: María del Mar Gallardo Participantes: María del Mar Gallardo (UMA), Pedro Merino (UMA), Ernesto Pimentel (UMA), Joaquín Torrecilla (AT4) Descripción: En este módulo, se coordinan los esfuerzos y el progreso de ejecución del proyecto, controlando que se alcancen los hitos previstos. También se incluyen las actividades de difusión y explotación de resultados que se describen en la sección 5. Además de los responsables de los módulos técnicos del proyecto, se tendrán en cuenta las evaluaciones que puedan ir haciendo el resto de empresas que apoyan el proyecto. Resultados R.0.1 Informes anuales de seguimiento del proyecto para su evaluación por parte de la Secretaría General de Universidades de la Junta de Andalucía. (3 informes) R.0.2 Informes anuales de resultados que puedan resultar explotables, acompañados de presentaciones electrónicas o demostradores. (3 informes) Módulo 1: Model checking de sistemas híbridos Responsable: María del Mar Gallardo Participantes: Laura Panizo, María del Mar Gallardo, David Sanán, Meriem Ouderni, Blas Ruiz, Pedro Merino, Ernesto Pimentel, Nathalie Moreno Descripción: El estudio de los sistemas híbridos ha demostrado que, en la mayoría de los casos, su análisis con métodos formales, en general, y con model checking de forma específica, es no decidible, es decir, no se puede asegurar que, en general, los análisis finalicen. Por esto, se han definido algunas subclases de sistemas híbridos que, por sus características en cuanto a su comportamiento continuo, sí pueden analizarse en tiempo finito. Los autómatas temporizados [AD94] y los autómatas híbridos lineales [H96] son ejemplos de estas simplificaciones. Por otro lado, la construcción de herramientas para el modelado y verificación por model checking de sistemas híbridos es una tarea de gran magnitud. En contraposición, existen herramientas muy potentes para la verificación de de sistemas discretos, como SPIN o JPF. En esta línea, el objetivo del presente módulo es el desarrollo de una metodología que nos permita reutilizar herramientas de model checking existentes extendiéndolas de la forma más transparente posible para que puedan analizar algún subtipo de sistemas híbridos. Esta metodología integrará las herramientas de model checking discreto, como SPIN o JPF, con otras herramientas y/o librerías existentes que ayuden a modelar la parte continua de los sistemas. 33 Resultados R.1.1 Un informe sobre las contribuciones en la extensión de herramientas de model checking para incorporar sistemas híbridos. R.1.2 Una herramienta para la verificación de sistemas híbridos, construida sobre el model checker SPIN. R.1.3 Un modelo analizable de un sistema de control ferroviario. R.1.4 Un informe sobre la verificación del sistema de control ferroviario con la herramienta desarrollada en el módulo. Tarea 1.1: Definición de un lenguaje para describir sistemas híbridos Participantes: Laura Panizo, María del Mar Gallardo, Blas Ruiz, Ernesto Pimentel Las herramientas de model checking discreto carecen del lenguaje adecuado para expresar las características propias de los autómatas híbridos, como puede ser la definición de variables continuas, invariantes en los estados discretos o el comportamiento continuo. Por lo tanto, es necesario definir las sentencias básicas que doten a un lenguaje de modelado discreto de los mecanismos necesarios para definir sistemas híbridos. Esta extensión del lenguaje puede sufrir alguna variación en su sintaxis para adaptarse a los diferentes lenguajes de modelado discretos, pero mantiene siempre la misma semántica. Tarea 1.2: Estudio de la integración de las herramientas Participantes: Laura Panizo, María del Mar Gallardo, David Sanán, Meriem Ouderni La integración de las diferentes herramientas no es trivial dadas las diferencias entre las diversas herramientas de model checking (lenguaje de modelado, lenguaje nativo de la herramienta, etc) y las diferentes interfaces que proporcionar las librerías que se utilizarán para el modelado del comportamiento continuo. Por lo tanto. En esta tarea será necesario estudiar cuáles son las herramientas de model checking que permiten ser extendidas (según la disponibilidad del código fuente, de los mecanismos de comunicación con el exterior, de las facilidades para extender el lenguaje, etc.) y que librerías habría que integrar. Otro objetivo adicional es que la integración de las herramientas sea flexible, de forma que sea posible integrar futuras versiones tanto de la herramienta de model checking como de las librerías. De esta forma, el mantenimiento y actualización de la herramienta resultante tendrá un coste menor. Para conseguir este objetivo, proponemos realizar la integración a nivel de modelo, como se refleja en la Figura 3.1. De este modo el usuario modela con el lenguaje de modelado extendido, resultado de la tarea anterior, y se hace una traducción a un modelo que incluyen la sintaxis original del model checker así como las llamadas necesarias a las herramientas que controlan la parte continua del sistema. 34 Tarea 1.3: Desarrollo de un prototipo y realización de pruebas Participantes: Laura Panizo, David Sanán, María del Mar Gallardo, Nathalie Moreno Una vez estudiadas todas las implicaciones de la integración y seleccionadas las herramientas de model checking que pueden extenderse mediante nuestra propuesta, el objetivo de la presente tarea es la implementación de un prototipo con la arquitectura propuesta. Actualmente, la herramienta de model checking que parece que mejor puede adaptarse a esta propuesta es SPIN [H03], ya que es de código abierto y proporciona mecanismos para ejecutar código C, lo que puede ser muy útil para representar las variables continuas. La elección en primer lugar de SPIN no descarta otras alternativas para hacer prototipos basados en otras herramientas de model checking como JPF. Con respecto a las librerías externas, existen diferentes abstracciones con los que se puede representar el comportamiento continuo. Unas de las más utilizadas cuando se trabaja con autómatas híbridos lineales es la que se basa en los poliedros convexos. Existen múltiples librerías que proporcionan las operaciones necesarias para trabajar sobre este tipo de elementos, como por ejemplo, Parma Polyhedra Library [BHZ08] y Polylib [RB04]. Cuando el prototipo se haya implementado, será necesario hacer pruebas de rendimiento que nos permitan comprobar en qué casos esta propuesta es competitiva frente a otras herramientas de model checking para sistemas híbridos. Tarea 1.4: Aplicación a Sistemas de control ferroviarios Participantes: Laura Panizo, David Sanán, Pedro Merino, María del Mar Gallardo Para probar la expresividad y capacidad de análisis de la herramienta de model checking desarrollada en las tareas anteriores, en esta tarea se propone la implementación de una aplicación que representa un sistema híbrido típico, un sistema de control ferroviario como el descrito en la sección de antecedentes 2.3.2, para el que hace falta realizar tareas de modelado, especificación y verificación de propiedades críticas. Al tratarse de un sistema crítico, la técnica de model checking se convierte en una de las alternativas más potentes para asegurar la corrección de los sistemas ferroviarios. Estos sistemas contienen elementos estáticos que hay que verificar, como que las zonas de autorización sean disjuntas. Por otro lado, la monitorización de la actuación del tren en función de la velocidad añade una componente temporal al análisis, que hace necesario el uso de model checking híbrido. 35 Módulo 2: Verificación y síntesis de sistemas probabilísticos y su aplicación a protocolos de comunicaciones Responsable: Pedro Merino Participantes: Alberto Salmerón Moreno, Pedro Merino, Blas Ruiz, Almudena Díaz, Álvaro Recio, María del Mar Gallardo Descripción Este módulo pretende dar soporte a la síntesis y verificación de sistemas probabilísticos, y más concretamente a los protocolos de comunicaciones. En particular, se tratan los problemas de análisis y optimización de protocolos de comunicaciones parametrizados para obtener un mejor rendimiento, así como la verificación de propiedades. Ambos problemas se abordan mediante el uso de model checking como técnica de exploración exhaustiva, guiada por los objetivos de rendimiento que se persiguen. Esta idea fue propuesta por primera vez en [MS10], donde se desarrolló un prototipo que integra el model checker SPIN [H03] y el simulador de redes ns-2 [NS2]. El sistema a analizar se describe mediante modelos para el simulador ns-2, y SPIN se encarga de guiar la búsqueda de parámetros en base a unos objetivos que se han establecido. Estos objetivos permiten además reducir el tiempo de análisis para hacerlo tratable cuando se maneja un espacio de soluciones de gran tamaño. En este módulo, se ampliará el uso de simulaciones para el análisis guiado por objetivos. Además, se realizará la integración de este enfoque con implementaciones reales con un doble objetivo: (1) obtener modelos para realizar simulaciones más realistas basándose en mediciones de campo [DMR10]; y (2) analizar y optimizar implementaciones reales de protocolos. Como ventaja adicional, el enfoque basado en la exploración exhaustiva guiada por objetivos se puede adaptar a la verificación de protocolos. En este caso, se pretende encontrar violaciones de un objetivo, por ejemplo, que se dé la respuesta adecuada a una petición para tratar de encontrar y corregir errores en un modelo o implementación de un protocolo. Resultados R.2.1 Un informe sobre las contribuciones en la integración del model checker SPIN y los simuladores de red ns-2 y OPNET R.2.2 Una herramienta de soporte para el análisis y optimización de protocolos mediante simulación, monitorización y ajuste de parámetros construida sobre el model checker SPIN y los simuladores de red ns-2y OPNET. R.2.3 Modelos para ns-2 y OPNET de protocolos relevantes en el servicio de videostreaming en redes móviles. R.2.4 Un informe sobre la los trabajos de verificación y optimización de los protocolos del servicio de videostraming. 36 Tarea 2.1: Optimización de modelos de protocolos mediante model checking Participantes: Alberto Salmerón, Pedro Merino, Blas Ruiz, María del Mar Gallardo Esta tarea se centra en ampliar el marco de trabajo desarrollado en [MS10] para la verificación y optimización de protocolos y aplicaciones mediante el uso de model checking. El prototipo existente se extenderá para dar lugar a una herramienta que facilite la realización de estas tareas sobre modelos de protocolos para simuladores de redes. También se contempla la obtención de respuestas con diferente grado de precisión, lo que permitirá ajustar el tiempo de análisis. Asimismo, se ampliará el alcance de esta herramienta para contemplar otros simuladores de redes distintos del simulador ns-2. Para ello, se diseñará un protocolo de comunicación entre el núcleo de análisis de la herramienta (el model checker SPIN) y un simulador de redes. Tarea 2.2: Incorporación de medidas reales Participantes: Alberto Salmerón, Almudena Díaz, Álvaro Recio, Pedro Merino Esta tarea se centra en la incorporación de medidas reales dentro del flujo de trabajo de la herramienta desarrollada en la Tarea 2.1 para conseguir resultados más realistas. Para ello se adaptarán herramientas de captura de tráfico, especialmente en entornos de redes móviles. Los parámetros extraídos de las capturas se utilizarán para construir modelos probabilísticos de aspectos parciales que se asemejen a los comportamientos reales. El uso de estos modelos “realistas” en modelos completos del protocolo permitirá obtener mejores resultados en el enfoque de síntesis-optimización controlada por model checking. Tarea 2.3: Optimización de sistemas reales Participantes: Alberto Salmerón, Álvaro Recio, Pedro Merino En esta tarea se pretende ampliar el alcance de la herramienta desarrollada en T2.1 para que, además de analizar modelos de protocolos, pueda analizar implementaciones reales de protocolos. Para ello se deberá ampliar el núcleo de la herramienta (basado en model checking) para permitir la conexión con implementaciones reales. Esta conexión se puede realizar mediante la instrumentación del protocolo a analizar, lo que permitirá acceder a parámetros habitualmente ocultos, o mediante la observación de trazas de su comportamiento. Como resultado de estas tres primeras tareas se obtendrá una herramienta integrada para el análisis y optimización guiados por objetivos de protocolos de comunicaciones. Esta herramienta permitirá estudiar tanto modelos de protocolos en escenario realistas como implementaciones reales. 37 Tarea 2.4: Aplicación a videostreaming Participantes: Alberto Salmerón, Álvaro Recio, Almudena Díaz, Pedro Merino En esta tarea se validará la herramienta desarrollada en las tareas anteriores mediante su aplicación a un caso de estudio. Como caso de estudio se tomará una aplicación de videostreaming. Estas aplicaciones, por sus requisitos de tiempo real y calidad de servicio, se pueden ver especialmente beneficiadas por una optimización de los protocolos utilizados. Se estudiará el comportamiento del videostreaming ante distintos escenarios, y cómo se pueden configurar los distintos parámetros disponibles para conseguir un buen rendimiento. Se prestará atención a las particularidades a las que tienen que enfrentarse las comunicaciones a través de redes móviles, así como a posibles soluciones de tipo cross-layer. Módulo 3: Generación automática de adaptadores y monitorización de la comunicación entre servicios móviles Responsable: Ernesto Pimentel Participantes: Ernesto Pimentel, Javier Cubo, José Antonio Martín, Javier Cámara, Nathalie Moreno, José Luis Pastrana, Meriem Ouderni Descripción El objetivo de este módulo es el estudio y unificación de lenguajes de especificación que cubran los niveles y vistas de los requisitos de los sistemas móviles y empotrados con el fin de soportar un desarrollo basado en modelos. Dicho modelo incluirá la semántica necesaria para que sea posible la síntesis de adaptadores y la verificación formal del sistema. Este desarrollo hará uso de técnicas de model checking, satisfacibilidad lógica y demostraciones formales de propiedades inherentes al modelo. En este módulo, nos centramos en la generación de adaptadores dinámicos. En este contexto, hay que hacer especial hincapié en recoger y analizar las preferencias del usuario así como los requisitos del sistema. Tras estudiar las propuestas existentes para la generación de adaptadores [SMZ07, BPSKC04, CCP11, GRR10, WVKT06], se detecta que es necesario combinar esfuerzos para definir un modelo formal que contemple los cambios dinámicos en el sistema, haciendo uso de la especificación del comportamiento, la descripción semántica y la información de contexto. También hay que monitorizar las capacidades de los servicios, verificar que los objetivos se cumplen, sintetizar un plan de adaptación que reconfigure el sistema a los cambios de contexto, y manejar al mismo tiempo distintos niveles de seguridad acordes a la sensibilidad de los datos y operaciones en cada momento. 38 Resultados R.3.1 Un modelo formal que identifique la información relativa a las preferencias de usuario y los requisitos del sistema. R.3.2 Una plataforma para la selección, la adaptación y la monitorización de los interfaces de servicios móviles, haciendo uso del modelo formal previamente definido. R.3.3 Un informe sobre el uso de la plataforma en la aplicación de redes sociales. Las primeras aproximaciones a estos resultados han sido publicadas en los trabajos [CMSCOCP09, CCP11]. Aunque sólo cierta información contextual es soportada en estos trabajos, por lo que se pretende extender los modelos formales existentes para mejorar los mecanismos de adaptación. A su vez también se ha afrontado la especificación de contratos de adaptación con seguridad [MP10a], la síntesis y verificación de orquestadores seguros conformes a dichos contratos y el descubrimiento dinámico de servicios [MP10b, CCP10]. Tarea 3.1: Identificación y control de preferencias de usuario, y capacidades de servicios Participantes: Ernesto Pimentel, Javier Cubo, Nathalie Moreno, José Luis Pastrana Las preferencias de usuario y las capacidades de servicios constituyen una fuente importante de información en el comportamiento de sistemas móviles y ubicuos. Sin embargo, la obtención y mantenimiento de dicha información no resulta una tarea sencilla. Esto se debe, en parte, a que este tipo de sistemas está sujeto a cambios en tiempo de ejecución respecto de las necesidades de los usuarios, así como de la disponibilidad de nuevos servicios o modificaciones de los existentes. Estos cambios afectarán tanto a las preferencias de los usuarios como a las capacidades de los servicios del sistema, siendo necesario controlar su mantenimiento. En esta tarea se define un modelo para describir y componer semánticamente las preferencias de usuario y los requisitos de calidad del sistema en tiempo de ejecución. Dicho modelo debe soportar la especificación de preferencias cualitativas y cuantitativas, y controlar las capacidades cambiantes de los servicios del sistema. La signatura y el comportamiento de los servicios vendrán definidos a través de sistemas de transiciones (máquinas de estado finito). Se hará uso de ontologías para soportar las descripciones semánticas de los servicios. Por último, el modelo tendrá en cuenta diferentes tipos de información de contexto heterogénea, que será recogida a través de sensores, o inferida a través de la cabecera HTTP de los mensajes SOAP de los servicios. Esto hace que el envío de dicha información sea independiente del usuario, y que tenga que ser evaluada continuamente en tiempo de ejecución, para controlar los posibles cambios. 39 Tarea 3.2: Mecanismos de seguridad adaptada al contexto Participantes: José Antonio Martín, José Luis Pastrana, Javier Cámara, Ernesto Pimentel Todo sistema informático, y en especial los sistemas distribuidos, deben prestar especial atención a la seguridad como parámetro de calidad. Los sistemas de autorización ralentizan el acceso a los datos y dificultan su recuperación en caso de fallos informáticos. Nuestra propuesta es instrumentar los requisitos de seguridad recogidos en la Tarea 3.1, de manera que la seguridad del sistema sea aplicada y verificada automáticamente y, al mismo tiempo, se generen garantías de seguridad que puedan ser verificadas por terceras partes. Esta tarea evolucionará en colaboración con la Tarea 3.3 dado que se emplearán mecanismos de adaptación y reconfiguración dinámica, técnicas de model checking parcial y satisfacibilidad lógica. Todo ello con el objetivo de obtener orquestaciones con una mayor tolerancia a fallos, debido a su adaptabilidad; fiables, gracias a las garantías generadas; y seguras, dada la verificación formal y monitorización continua. Tarea 3.3: Adaptación y monitorización dinámica en sistemas móviles Participantes: Javier Cubo, José Antonio Martín, Javier Cámara, Ernesto Pimentel Los problemas asociados a la adaptación dinámica de servicios en sistemas móviles pueden clasificarse en cuatro principales categorías: (i) problemas de desajustes, (ii) cambios en los requisitos y en la configuración, (iii) fallos en la red o en el sistema remoto, y (iv) errores de servicio interno. En esta tarea se aborda el control y mantenimiento de sistemas móviles distribuidos, haciendo uso del modelo definido en las Tareas 3.1 y 3.2. El tipo (i) se refiere a los problemas que pueden aparecer en diferentes niveles de interoperabilidad (nivel de signatura, nivel de comportamiento o de protocolo, nivel de calidad de servicio, y nivel de semántica o conceptual). En este caso se hará uso de la adaptación software para abordarlo de forma no-intrusiva. Nuestra propuesta realizará una adaptación contextual dinámica para controlar el sistema en tiempo de ejecución, considerando cambios de contexto en el usuario y en el entorno, en base a las preferencias de usuario o capacidades del servicio. El tipo (ii) es provocado por los cambios continuos (nuevos requisitos o servicios completamente creados en tiempo de ejecución). Para este problema se usarán técnicas de evolución o mantenimiento software [MD08], mediante reconfiguración dinámica, para resolverlos de manera no-intrusiva o intrusiva, según corresponda al tipo de cambio en la estructura física o lógica del sistema. Los problemas tipo (iii) y (iv) se relacionan con los fallos en las redes (pérdida de conexión de red o no disponibilidad de un host remoto) y en los servicios (suspensión de servicios durante la ejecución o error del sistema en tiempo real), respectivamente. Ambos podrán ser abordados por mecanismos de tolerancia a fallos o recuperación de errores. 40 Tarea 3.4: Servicios móviles reconfigurables para la Internet del futuro: Una aplicación a las redes sociales Participantes: Ernesto Pimentel, Javier Cubo, Meriem Ouderni, José Luis Pastrana El uso incremental de los dispositivos móviles ha dado lugar a la creación de un nuevo mercado de aplicaciones móviles durante los últimos años. En concreto, dentro de estas nuevas aplicaciones, las redes sociales están siendo usadas cada vez más. En este tipo de sistemas es relevante considerar las preferencias de usuario y los cambios dinámicos en el entorno, para adaptar y reconfigurar automáticamente el comportamiento de los servicios que interaccionen en el sistema en tiempo de ejecución. De esta manera, se pueden resolver problemas relacionados con el tipo de conectividad, las restricciones de ancho de banda o los recursos locales (por ejemplo, para controlar el rendimiento y el consumo de energía durante la comunicación de los servicios), los perfiles de usuario (por ejemplo, para encontrar usuarios con intereses similares), la localización del usuario (por ejemplo, para la detección de servicios cercanos al usuario), etc. Además, es necesario dotar a estos sistemas de la seguridad adecuada en las interacciones de los servicios, dependiendo de la información del contexto desde el punto de vista del usuario y de los servicios, considerando los posibles cambios dinámicos en el entorno de ejecución. En esta tarea se plantea la validación de las técnicas de adaptación y monitorización desarrolladas previamente. En primer lugar, se hará un estudio de la información del usuario y del entorno del sistema a considerar, modelando parámetros de calidad del servicio, cambios de contexto o seguridad. Finalmente, se aplicarán los mecanismos necesarios para establecer automáticamente las configuraciones (mediante adaptadores y monitorización pertinente) que permitan una correcta ejecución del sistema (interacción entre usuario y servicios). Módulo 4: Extensión de infraestructuras de certificación de protocolos LTE para la medida de QoS en servicios emergentes Responsables: Pedro Merino, Joaquín Torrecilla (AT4) Participantes: Eusebio Gallardo (AT4), María Victoria Morillo (AT4), Almudena Díaz, Alberto Salmerón, Álvaro Recio, David Sanán Descripción En este módulo se pretende abordar la generación de las configuraciones para EUTRAN y los casos de pruebas de QoS para el terminal a través del modelado de los protocolos implicados, usando posteriormente técnicas de simulación dirigidas por model checking para extraer las configuraciones óptimas. Los resultados obtenidos en este proceso serán utilizados en la configuración y estimulación de un entorno de certificación real de terminales móviles. Esta metodología se basará en un flujo iterativo que permitirá ir refinando sucesivamente los datos extraídos del modelo en líneas con los resultados en la ejecución real en el entorno de certificación. 41 El uso de dichas técnicas permitirá dotar a las técnicas de test tradicionales con la exhaustividad necesaria para abordar el diseño de casos de prueba para QoS. Dichos escenarios implican situaciones muy complejas que presentan numerosas permutaciones de los parámetros de configuración. También existen antecedentes que avalan este enfoque, como la recomendación Z-500 del ITU– T, que define un marco de trabajo para aplicación de métodos formales en pruebas de conformidad, FMCT (Formal Methods in Conformance Testing). Resultados R.4.1 Un informe con el diseño de una infraestructura de laboratorio para generación de configuraciones y certificación de KPIs (QoS y de consumo energético) en servicios sobre protocolos de LTE. R.4.2 Herramientas software que implementan la infraestructura de generación de configuraciones y certificación de servicios integrando emuladores de red LTE. R.4.3 Modelos ns-s y OPNET de protocolos relevantes para la generación de configuraciones que permitan optimizar servicios en redes LTE. R.4.4 Informe sobre la validación de la infraestructura de generación de configuraciones y certificación de servicios aplicada al servicio de VoIP. Tarea 4.1: Diseño del entorno de certificación Participantes: Joaquín Torrecilla, Eusebio Gallardo, María Victoria Morillo, Almudena Díaz Esta tarea tiene por objetivo diseñar la cadena de herramientas, como la que se muestra en la Figura 4.1, que integre los resultados en técnicas formales dentro en un entorno de certificación real. Como se ha comentado anteriormente, en primer lugar será necesario modelar los protocolos LTE sobre los que posteriormente se aplicarán las técnicas desarrolladas en los módulos 1, 2 y 3. Esta funcionalidad quedará dentro del módulo denominado E-FMCT (Evolved – Formal Methods in Conformance Testing). Las configuraciones y casos de prueba resultantes serán utilizados para configurar el equipo de emulación de red. Para ello será necesario identificar los interfaces de configuración y de transferencia de datos entre el E-FMCT y el emulador. Asimismo será necesario diseñar un sistema de gestión y monitorización del entorno de certificación resultante que permita controlar la ejecución de los casos de pruebas y recopilar, analizar y evaluar los resultados obtenidos. Por último, se identificarán los perfiles y KPIs de los servicios de interés para el diseño de las configuraciones y los casos de prueba. El establecimiento de los KPI permitirá definir el comportamiento esperado a nivel de QoS y consumo energético. 42 Figura 4.1. Diseño del entorno de certificación Tarea 4.2: Modelado de protocolos LTE e implementación de técnicas de optimización de configuraciones Participantes: Alberto Salmerón, Pedro Merino, Álvaro Recio Esta tarea se centra en la implementación del módulo denominado E-FMCT. En primer lugar, se identificarán los protocolos y parámetros de configuración claves para el análisis y evaluación de QoS y consumo energético. A continuación, se modelarán los protocolos y se adaptarán las técnicas desarrollados en los módulos 1, 2 y 3 a la generación de configuraciones óptimas y casos de pruebas para la validación de aspectos relacionados con la QoS y el consumo energético. Concretamente, para el caso del consumo energético, se pretende evaluar todos los factores que pueden influir en el consumo de energía, desde el protocolo de transporte empleado [ZR99] [SS02], hasta la gestión de recursos radio que se lleva a cabo en la red celular [HSE07], pasando por el uso de diferentes tecnologías de acceso radio en función de su disponibilidad [DM10]. Para la obtención de los casos de prueba de verificación de QoS se partirá de una serie de objetivos que dirigirán la generación de configuraciones de parámetros óptimas mediante la ejecución de simulaciones en las que se comprueba el cumplimiento de estos objetivos, de acuerdo a la metodología aplicada en trabajos anteriores [MS10]. Como parte 43 de esta tarea se contempla el uso de trazas reales para fijar los objetivos y los comportamientos que quieren ser inferidos y plasmados tanto en las pruebas como en las configuraciones de parámetros. En último lugar, se adaptarán la metodología y las herramientas desarrolladas en el módulo 3 para la generación de configuraciones óptimas. Concretamente, esta adaptación consistiría en hacer uso de las técnicas de adaptación y reconfiguración del módulo 3 para poder establecer automáticamente las configuraciones de parámetros para adaptar los requisitos exigidos a nivel de aplicación con la configuración de la pila de protocolos LTE. Tarea 4.3: Implementación del sistema de certificación Participantes: Joaquín Torrecilla, Eusebio Gallardo, María Victoria Morillo, David Sanán En esta tarea se implementarán las interfaces (APIs) de monitorización, control y configuración para el emulador de red y el entorno de gestión diseñados en la tarea 4.1. Se analizarán las APIs disponibles en el emulador de red desarrollado por AT4 wireless (E2010) para la configuración y ejecución de las pruebas de certificación tradicionales y extenderlas con las funcionalidades identificadas y definidas en la tarea 4.1. Como resultado de esta tarea se dispondrá de un entorno de certificación altamente reconfigurable. Esto conferirá al entorno la flexibilidad y funcionalidad necesarias para ejecutar casos de test de QoS para diferentes configuraciones de red. El objetivo es que con cada una las configuraciones de test empleadas se configuren de forma distinta los parámetros relacionados con la QoS en las distintas capas de protocolos de E-UTRAN. Tarea 4.4: Validación del entorno con el servicio de VoIP Participantes: Eusebio Gallardo, María Victoria Morillo, Almudena Díaz, Joaquín Torrecilla En esta tarea se llevará a cabo la validación completa en laboratorio del entorno de certificación resultante tras integrar los módulos diseñados en las tareas anteriores. Para la validación del entorno se tomará como servicio bajo test el servicio de VoIP. Los aspectos bajo test serán aquellos relacionados con la calidad de servicio y el consumo energético. Por otra lado, para la generación de los casos de tests de tendrán en cuenta tanto escenarios estáticos como otros escenarios con configuraciones multi-celda que permitan aspectos como la continuidad del servicio. 44 4.1 Cronograma de tareas La planificación completa se recoge en la Figura 4.2. Hay que destacar que las tareas relativas a las aplicaciones están activas desde el primer año del proyecto. Esto se debe a que proporcionarán información para especificar los requisitos para el avance en las técnicas de verificación y síntesis. Primer año Segundo año Tercer año M0: Gestión, Coordinación, Difusión y Explotación Tarea 1.1: Diseño del lenguaje de modelado de sistemas híbridos Tarea 1.2: Estudio de la integración de las herramientas Tarea 1.3: Desarrollo de un prototipo y ejecución de pruebas Tarea 1.4: Aplicación a sistemas de control ferroviario Tarea 2.1: Optimización de modelos de protocolos mediante model checking Tarea 2.2: Incorporación de medidas reales Tarea 2.3: Optimización de sistemas reales Tarea 2.4: Aplicación a videostreaming Tarea 3.1: Identificación y control de preferencias de usuario, y capacidades de servicios Tarea 3.2: Mecanismos de seguridad adaptados a contexto Tarea 3.3: Adaptación y monitorización dinámica en sistemas móviles Tarea 3.4: Servicios móviles reconfigurables para la Internet del futuro: Una aplicación a las redes sociales Tarea 4.1: Diseño del sistema de certificación Tarea 4.2: Modelado de protocolos LTE e implementación de técnicas de optimización de configuraciones Tarea 4.3: Implementación de la infraestructura de certificación Tarea 4.4: Validación del entorno con el servicio de VoIP Figura 4.2. Cronograma de tareas del proyecto 45 4.2 Riesgos y planes de contingencia Los problemas descritos en la propuesta del proyecto ya han sido estudiados por el equipo investigador con cierta profundidad. En algunos casos ya se han realizado evaluaciones con prototipos, como en la aplicación de model checking para síntesis y optimización, o el estudio experimental de los parámetros que afectan al funcionamiento de los protocolos. Por otra parte, el equipo tiene una amplia experiencia en proyectos similares. Por todo ello, no se detecta que pueda haber problemas que impidan la consecución de los objetivos del proyecto. 5 Resultados esperados, difusión y explotación, en su caso, de los mismos. 5.1 Resultados esperados Como se indica en cada uno de los módulos del plan de trabajo, el proyecto debe generar al menos los siguientes resultados concretos: R.1.1 Un informe sobre las contribuciones en la extensión de herramientas de model checking para incorporar sistemas híbridos. R.1.2 Una herramienta para la verificación de sistemas híbridos, construida sobre el model checker SPIN. R.1.3 Un modelo analizable de un sistema de control ferroviario. R.1.4 Un informe sobre la verificación del sistema de control ferroviario con la herramienta desarrollada en el módulo. R.2.1 Un informe sobre las contribuciones en la integración del model checker SPIN y los simuladores de red ns-2 y OPNET R.2.2 Una herramienta de soporte para el análisis y optimización de protocolos mediante simulación, monitorización y ajuste de parámetros construida sobre el model checker SPIN y los simuladores de red ns-2y OPNET. R.2.3 Modelos para ns-2 y OPNET de protocolos relevantes en el servicio de videostreaming en redes móviles. R.2.4 Un informe sobre la los trabajos de verificación y optimización de los protocolos del servicio de videostreaming. R.3.1 Un modelo formal que identifique la información relativa a las preferencias de usuario y los requisitos del sistema. R.3.2 Una plataforma para la selección, la adaptación y la monitorización de los interfaces de servicios móviles, haciendo uso del modelo formal previamente definido. R.3.3 Un informe sobre el uso de la plataforma en la aplicación de redes sociales. 46 R.4.1 Un informe con el diseño de una infraestructura de laboratorio para generación de configuraciones y certificación de KPIs (QoS y de consumo energético) en servicios sobre protocolos de LTE. R.4.2 Herramientas software que implementan la infraestructura de generación de configuraciones y certificación de servicios integrando emuladores de red LTE. R.4.3 Modelos ns-2 y OPNET de protocolos relevantes para la generación de configuraciones que permitan optimizar servicios en redes LTE. R.4.4 Informe sobre la validación de la infraestructura de generación de configuraciones y certificación de servicios aplicada al servicio de VoIP. Esta lista de resultados demuestra que el proyecto pretende generar herramientas y técnicas utilizables a nivel industrial en la verificación, síntesis, optimización y certificación en los dominios de aplicación considerados. Por una parte, se proporcionarán contribuciones en lenguajes de especificación, algoritmos de síntesis y optimización, y los aspectos formales y metodológicos que amplían el uso de las técnicas formales más allá de lo logrado hasta el momento. Esos resultados proporcionarán otros posiblemente patentables y con aplicación más directa en el sector industrial, como las siguientes: 1. Nueva versión del model checker SPIN para la verificación de sistemas con comportamiento híbrido y/o probabilístico 2. Modelos para SPIN extendido de sistemas de control ferroviario sobre los que simular o probar estrategias de explotación 3. Modelos para ns-2 y para OPNET de protocolos concretos de la pila LTE, como las capas MAC y RRC 4. Herramientas que integran SPIN y simuladores de red como ns-2 y OPNET para la optimización de protocolos 5. Arquitectura para integrar herramientas software de simulación y optimización y hardware para emulación de nodos de acceso LTE para la certificación de aspectos de calidad de servicio y otros aspectos, como el consumo energético en nuevas aplicaciones 5.2 Difusión y explotación de resultados Los miembros del grupo solicitante han demostrado una amplia experiencia en la difusión de conocimiento. La mayoría de ellos tiene experiencia en la organización de conferencias y son miembros de comités de programa de conferencias de reconocido prestigio. Al tratarse de un grupo consolidado y con experiencia es posible plantear estrategias a medio y largo plazo, que permiten abordar objetivos más ambiciosos y estratégicos. Se pondrá énfasis en maximizar el impacto de los resultados obtenidos. Las principales vías de difusión de resultados serán las conferencias y revistas estrechamente relacionadas con el área objeto del proyecto y un sitio Web del proyecto que ofrecerá información actualizada sobre el proyecto. Este portal Web informará sobre los objetivos del proyecto, sobre las actividades que se programen y sobre los resultados de investigación, desarrollo y 47 transferencia tecnológica alcanzados. La página Web deberá estar disponible antes de los primeros seis meses del proyecto, y deberá actualizarse sistemáticamente. Las publicaciones a las que dé lugar y las herramientas software construidas con código abierto se harán disponibles públicamente en el servidor Web. Nuestra intención es preparar un plan de difusión de resultados, que ponga especial énfasis en maximizar el impacto del proyecto en el sector industrial. Algunas de las herramientas que se obtengan dentro del proyecto, construidas con software libre, y que puedan utilizarse por sí solas serán distribuidas con licencias públicas, con el objeto de maximizar el impacto y utilización de la metodología y herramientas propuestas. Este es el caso de las extensiones que se realicen de model checkers como SPIN, de simuladores de red como ns-2 OPNET, o de herramientas de depuración en terminales móviles como SymPA. Para otros resultados, como los APIs que se realicen en colaboración con AT4 wireless para la monitorización y configuración de equipos de certificación, se publicará su definición, pero puesto que su uso implica disponer del hardware de emulación de red, será necesario realizar algún tipo de acuerdo entre las entidades interesadas en su uso y los desarrolladores las mismas (AT4 wireless y la Universidad de Málaga). Se pondrá énfasis en que haya contribuciones concretas de nuestro proyecto susceptibles de ser patentadas y explotadas comercialmente a medio o largo plazo. El acceso a la industria y a los centros de investigación para tratar de transferir los resultados se hará de manera más directa por varias vías. Una vía serán los proyectos y redes internacionales en las que participan los investigadores de la UMA de manera actica, como el consorcio europeo para investigación en informática ERCIM (19 países), el proyecto COST Action IC0701 en verificación de software orientado a objetos (19 países)socios de NN países), el proyecto sobre sistemas operativos para móviles ARTEMIS-SYMBEOSE (23 socios de 8 países) o la plataforma tecnológica europea en reses y servicios de comunicaciones Net!works (prácticamente todos los países europeos). Otra vía para fomentar la transferencia de tecnología son los contactos comerciales de la empresa AT4 wireless, cuya reputación y ámbito de actividad en el área de la certificación de equipos wireless se extiende a la mayor parte de fabricantes de terminales a nivel mundial. También es interesante destacar el uso de contactos previos de instituciones que ya emplean nuestros desarrollos, como es el caso de la herramienta SymPA, entre cuyos usuarios están empresas o centros de I+D como Packet Video, University of Brunel, N2Nsoft, Laboratoired'informatique de Paris 6 (LIP6), Kamlex, Tunisiana (Orascom Telecom Tunisia), Hunan University, Orange (France Telecom Group), Telecom NZ, Vector Max, Telefónica I+D, TMA Solutions, Aucklanduniversity of technology, Illinois University, YonseiUniversity, MCG srl, Worllink, Its4Solutions Pvt. Ltd., etc. (la lista está dispobible en http://www.lcc.uma.es/~pedro/mobile/Software/sympa.html) Durante el proyecto, además de con AT4 wireless, se mantendrán encuentros informativos con las otras entidades que lo respaldan de forma explícita. Novasoft está interesada en todos los aspectos software, especialmente en los adaptadores de servicios. Vodafone está interesada en la optimización de parámetros en el acceso a LTE y en los servicios para móviles. ADIF está interesada en el control ferroviario. 48 6 Relación del personal del equipo del proyecto El proyecto que se solicita es de tipo motriz, por lo que además del equipo investigador de la Universidad de Málaga, en el mimo participarán investigadores de la empresa AT4 wireless. En total, participan 18 personas, con más del 30% de investigadoras, incluida la responsable del proyecto. 6.1 Investigadores de la UMA y sus actividades de Internacionalización de la investigación Por parte de la Universidad de Málaga participan 9 doctores y 6 titulados superiores, todos a tiempo completo. Está previsto que la mayoría de los titulados superiores defiendan su tesis doctoral durante la vigencia del proyecto. La composición del equipo es la siguiente: Nombre del investigador GALLARDO MELGAREJO, MARIA MAR MERINO GOMEZ, PEDRO PIMENTEL SÁNCHEZ, ERNESTO RUIZ JIMENEZ, BLAS CARLOS PASTRANA BRINCONES, JOSÉ LUIS CUBO VILLALBA, JAVIER DÍAZ ZAYAS, ALMUDENA SANÁN BAENA, DAVID CÁMARA MORENO, JAVIER MORENO VERGARA, NATHALIE MARTÍN BAENA, JOSÉ ANTONIO PANIZO JAIME, LAURA RECIO PÉREZ, ÁLVARO M. SALMERÓN MORENO, ALBERTO OUDERNI, MERIEM DNI 34022069D 25086840G 25095535M 28406673V 33379137L 33366871N 53155810G 74826670B 74655852Z 25674851C 45713807L 44586363N 74843226F 75881563D X9358698K Doctor X X X X X X X X X Tiempo completo X X X X X X X X X X X X X X X Además de los detalles disponibles en SICA y de los incluidos en las secciones posteriores, como elemento adicional para evaluar la calidad del equipo investigador hay que destacar que además los investigadores de la UMA tienen una larga trayectoria de gestión y difusión de la investigación a nivel internacional, que se refleja en las siguientes actividades: 1. La participación en la creación y dirección (como presidentes o como miembros de los órganos de dirección) de grupos de trabajo o redes internaciones, como el consorcio SpaRCIM para representar a España en ERCIM, el grupo de trabajo en métodos formales FMICS, la acción COST en verificación de software orientado a 49 objetos o la plataforma tecnológica eMobility (actualmente renombrada como Net!works). 2. La participación como miembros de la plataforma Europea dedicada a tecnologías software y de servicios, NESSI (Networked European Software and Services Initiative Technology Platform) y de la sociedad SDL Forum para la promoción de los lenguajes formales de la ITU. 3. La colaboración con investigadores extranjeros en organización de eventos, publicaciones conjuntas o intercambios. Entre ellos, y con relación directa con este proyecto se pueden citar los siguientes: - - - Alessandro Fantechi (Universidad de Florencia), actual presidente del grupo de trabajo FMICS y experto en el uso de técnicas formales para control ferroviario, con quien se comparten actividades en el grupo FMICS . Stefan Leue (Universidad de Costanza), con quien se organizó FMICS 2007 y un número especial en Science of Computer Programming (vol. 76(2)). Tiziana Margaria (Universidad de Potsdam), con quien se han organizado sesiones especiales sobre técnicas formales en diversos eventos, y se han iniciado propuestas como la plataforma FMICS J-ETI para el acceso remoto a herramientas de verificación. Erwin Schoisth (AARIT - Austrian Association for Research in IT), con quien se ha un número especial sobre sistemas críticos en Ercim news (nº 77). Antonio Brogi (Università di Pisa), Gwen Salaün (Grenoble INP-INRIA-LIG) y Pascal Poizat (University of Evry Val d’Essone), con los que desde los últimos años se mantienen colaboraciones de trabajo y relaciones para la organización de congresos centrados en la temática de la aplicación de métodos formales aplicados a la ingeniería software, computación de servicios, sistemas móviles y ubicuos, y técnicas de verificación. 4. La participación habitual como revisiones de artículos de revistas relacionadas con la temática del proyecto, como Software Testing, Verification and Reliability, Software Tools for Technology Transfer, Formal Aspects of Computing, Science of Computer Programming, Software and System Modelling, etc. 5. La participación en comités de programas de congresos internacionales relacionados con la temática del proyecto como SAS (Static Analysis Symposium), SPIN (Software Model Checking), FoVeOOS (International Conference on Formal Verification of Object-Oriented Software), FMICS (Formal Methods for Industrial Critical Systems), SDL Forum, CONQUEST(International Conference on Quality Engineering in Software Technology), PIMRC (IEEE International Symposium on Personal, Indoor and Mobile Radio Communications), NEW2AN (Next Generation Wired/Wireless Advanced Networking), FLACOS (Formal Languages and Analysis of Contract-Oriented Software), CIbSE (Congreso Iberoamericano en Software Engineering), ECOWS (European Conference on Web Services), FOCLASA (International Workshop on the Foundations of Coordination Languages and Software Architectures), etc. 50 6. La incorporación de investigadores extranjeros al equipo investigador de la UMA por periodos de varios meses y no como visitas breves, tanto como para estancias predoctorales o postdoctorales como bien para la realización de sus tesis doctorales,. El equipo solicitante ha acogido recientemente a Gwen Salaün (postdoc de INRIAFrancia), Christophe Joubert (postdoc de INRIA-Francia), Pekka Perala (de VTTFinlandia) y Meriem Ouederni (realizando tesis doctoral), e integrará en pocos meses a Iwan Adhicandra como postdoc financiado parcialmente por una acción Marie Curie concedida a ERCIM. Por otra parte, los doctores más recientes y los investigadores que realizan la tesis doctoral han tenido o tienen estancias postdoctorales o predoctorales en actividades directamente relacionadas con la temática del proyecto en centros de prestigio, como los siguientes: - - - - - - - - - UCI (University of California – Irvine, EEUU)- Estancia predoctoral de 3 meses de Javier Cámara, trabajando en programación orientada a aspectos y líneas de producto software, con el Prof. Alfred Kobsa. (2007) VTT (Finlandia) – Estancia predoctoral de 3 meses de Almudena Díaz para trabajar en herramientas de monitorización de QoS en redes móviles con el investigador Marko Jurvansu (2008). INRIA (Francia)- Estancia predoctoral de 3 meses de David Sanán, con trabajos en la extensión de la herramienta de verificación CADP para gestionar memoria dinámica con el investigador Radu Matescu. (2008) UCL (University College London, Reino Unido)- Estancia predoctoral de 3 meses de Javier Cubo, trabajando en la verificación de modelos para la formalización de los interfaces de servicios Web adaptativos dependientes del contexto, con el Prof. David S. Rosenblum. (2008) CUL (City University London, Reino Unido)- Estancia predoctoral de J. Antonio Martín de 3 meses al cargo de Prof. George Spanoudakis, trabajando en el descubrimiento escalable de servicios Web adaptables al comportamiento deseado. (2009) ICL (Imperial College London, Reino Unido)- Estancia predoctoral de 3 meses de Javier Cámara, para trabajar el ámbito del modelado de adaptadores, con los Profesores Jeff Kramer y Jeff Magee. (2008) INRIA (Francia)- Estancia predoctoral de 3 meses de Meriem Ouderni, trabajando en la compatibilidad de servicios Web con el investigador Gwen Salaün. (2009) INRIA (Francia)- Estancia postdoctoral de 1 año de Javier Cámara, realizando trabajos de sistemas de control en tiempo real para síntesis de controladores, con los investigadores Antoine Girard y Gregor Goessler. (2010) CNR (Consiglio Nazionale delle Ricerche, Italia)-Estancia predoctoral de J. Antonio Martín de 3 meses con el investigador Fabio Martinelli,realizando trabajos en síntesis, verificación y refinación de adaptadores capaces de solventar incompatibilidades de comportamiento y seguridad entre servicios Web. (2010) 51 - - - - UCSB (University of California – Santa Barbara, EEUU)- Estancia predoctoral de 3 meses de Meriem Ouderni, realizando trabajos en la línea de compatibilidad de servicios Web, con el Prof. Tevfik Bultan. (2011) SUTD (Singapur University of Technology and Design, Singapur)- Estancia postdoctoral de 1 año de David Sanán, que se iniciará en 2011, para trabajar en la extensión de model checkers para lenguajes de programación con el profesor Sun Jun. VERIMAG (Francia)- Estancia predoctoral de 3 meses de Laura Panizo en 2011, para trabajar en la verificación de sistemas híbridos con el profesor GoranFrehse TUT (Tampere University of Technology, Finlandia)- Estancia predoctoral de 3 meses de Alberto Salmerón en 2011, para trabajar en el uso de simuladores controlados por model cheking para optimizar estrategias de cross-layer en pilas de protocolos con el profesor Yevgeni Koucheryavy En los apartados 7 y 9 se dan más detalles de la amplia experiencia del conjunto del equipo en aspectos como producción científica, proyectos de investigación, transferencia de tecnología e internacionalización de sus actividades. 6.2 Investigadores de AT4 wireless y sus actividades de Internacionalización de la investigación AT4 wireless es una empresa internacional cuya sede principal está situada en Málaga y con oficinas en Sevilla, Madrid, Herndon (EEUU), Taipei (Taiwan) y próximamente Chile. Es una empresa líder en el sector de certificación de equipos de comunicaciones móviles e inalámbricas, que cuenta con más de 300 empleados. En los últimos años ha recibido numerosos premios a nivel regional y nacional en reconocimiento a sus actividades de fomento de la innovación y la investigación. Tiene un centro de I+D en el ámbito de las comunicaciones móviles e inalámbricas que participa en múltiples proyectos de investigación de carácter regional, estatal y europeo en colaboración con universidades y otras empresas internacionales del sector. Una parte importante de su actividad la dedica al desarrollo de plataformas de medida y ensayo para la certificación de equipos de comunicaciones, lo que requiere una constante actualización en las últimas técnicas que se usan los sistemas de comunicaciones inalámbricas para poder adaptar rápidamente sus sistemas a los cambios que se introducen en los nuevos estándares. En concreto, AT4 wireless fue el primer laboratorio de certificación de equipos del WiMAX Forum, y ya proporciona servicios de ensayo y pre-certificación para el estándar LTE. La empresa participa en el proyecto con las siguientes personas: 1. Eusebio Gallardo, Ingeniero de Telecomunicación con 3 años de experiencia en desarrollo de aplicaciones de prueba de protocolos para comunicaciones inalámbricas. 52 2. María Victoria Morillo-Velarde, Ingeniera de Telecomunicación con 9 años de experiencia en desarrollo de soluciones de prueba de protocolos para comunicaciones inalámbricas. Actualmente es responsable del grupo de desarrollo de pilas de protocolos en AT4 wireless. 3. Joaquín Torrecilla, Ingeniero de Telecomunicación con 19 años de experiencia en los mercados del test y medida y de la certificación de terminales móviles e inalámbricos. Actualmente es CTO en AT4 wireless. Como muestra de la implicación de la empresa en este proyecto hay destacar el perfil de los participante. Junto al CTO, responsable de toda la estrategia tecnológica de la empresa, participará la responsable del desarrollo de pilas de protocolos, incluidos los protocolos de LTE. La dedicación del personal comprometida en la documentación adjunta es la siguiente: Nombre del investigador Dedicación en horas Eusebio Gallardo Estrella 750 horas María Victoria Morillo Velarde 300 horas Joaquín Torrecilla Torregrosa 200 horas 7 Financiación pública y/o privada, en otros contratos y proyectos de I+D, obtenidos por los miembros del equipo Los participantes del equipo de la UMA han contado con un alto grado de financiación para el desarrollo de sus actividades investigadoras. Dicha financiación se ha obtenido gracias a su participación en convocatorias públicas de proyectos de investigación (tanto a nivel nacional como internacional) y a la firma de gran cantidad de contratos y convenios con empresas. Globalmente, desde su creación en 1990, el grupo de investigación GISUM, identificado como TIC-136 por la Junta de Andalucía, ha contado con más de 90 proyectos de investigación, en los que hay que destacar unos 20 proyectos del Plan Nacional de investigación, una decena de proyectos europeos del Programa Marco y 7 proyectos de excelencia de la Junta de Andalucía. La financiación al grupo consolidado TIC136 de la Junta de Andalucía con la máxima puntación en los últimos años. Asimismo, se ha realizado una importante labor de transferencia de tecnología a empresas a través de diferentes convenios y contratos, que junto a la financiación pública hace que el grupo tenga unos 2 millones de euros anuales de financiación. Todos esos datos constan en la base de datos SICA. Como muestra de la actividad del equipo de la UMA que solicita el proyecto, a continuación se indican algunos proyectos y contratos recientes (últimos 5 años) relacionados con la temática de la presente propuesta y en los que participan algunos los investigadores relacionados en la sección anterior. Se incluye título, período y financiación (ayuda total/ayuda para la UMA). En ellos, hay que destacar que los fondos provienen de forma equilibrada de diferentes, tanto por su naturaleza (desde de proyectos de investigación fundamental hasta contratos más aplicados), como por el tipo de institución que financia (empresas nacionales e internacionales, gobierno autónomo, nacional o Comisión Europea). También hay que destacar a capacidad de transferencia de tecnología, que incluye un proyecto competitivo de más de 1 millón de euros. La relación de proyectos y contratos sólo incluye los que han tenido vigencia dentro de los últimos 5 años. 53 Proyectos europeos Financiación global/ UMA 1. SYMBEOSE: SYMBEOSE- Symbian: the Embedded Operating System for Europe, FP7- ARTEMIS-2010-1-269123, 2011-2013. (en proceso de firma) 11 M€/ 147.000 € 2. Formal Verification of Object-Oriented Software, COST ICT Action IC0701, 2007-2012. 10 M €/* 3.European Partnership for Development in Mobile Technology Competence (MoTeCo),Leonardo da Vinci- 2008-1-PL1-LEO05/02068 2008-2010 168,750€/ 53.000 € 4. Alain Bensoussan Career Development Enhancer (ABCDE), FP7- Marie Curie, Grant Agreement Number 246016, coordinado por ERCIM, 2010-2013 3.500.000 €/ * € 5. SMEPP: Secure Middleware for Embedded Peer to Peer Systems. 6th Framework STREP project IST-033563. 2006-2009. 2.899.167 €/ 482.955 € Proyectos del Plan Nacional de Investigación 6. SELF: Formalismos Ágiles en Ingeniería del Software. TIN2004-07943C04-012005-2007. 7. Desarrollo de Software para Sistemas Distribuidos P2P. TIN2005-09405C02-012005-2008. 8. CAReSS: Construcción y Adaptación de Servicios Software Fiable. TIN2007-67134 2007-2008. 9. ResCUE: Composición de Software Fiable en Entornos Ubicuos. TIN2008059322008-2012. 191.600 €. 524.790 €. 72.600 €. 405.350 €. Proyectos de Excelencia de la Junta de Andalucía 10. Propuesta Integrada para la calidad de sistemas software,P06-TIC-02250 2007-2009 170.536 € 11. Técnicas para mejorar la calidad de los servicios de Internet en Telefonía Móvil, P07-TIC-03131, 2008-2011 297.000 € Proyectos competitivos de transferencia de tecnología con ayudas públicas 12. BEFESA AGUA, Desarrollo de Una Arquitectura Software para La Construcción de Sistemas de Ayuda a la Toma de Decisiones en Gestión de Aguas, CENIT TECOAgua P07-TIC-03131, 2009-2012 200.000 € 13. AT4 wireless, Investigación en metodologías de diseño y desarrollo de software para la emulación de elementos de comunicaciones inalámbricas ", Proyecto Integrado del CDTI WiTLE2, 8.06/5.47.3154-1 2010-2012 1.083.677 € 14. Andago, Answare Technology, Entropy, Universidad Rey Juan Carlos, REDES Sociales - ANDROID, entorno para el desarrollo de una nueva generación de redes sociales móviles basadas en ANDROID, Plan Avanza, 2008 TSI-020100-2008-528, 2008-2009 24.000€. 54 15. Andago, Answare Technology, Entropy,Universidad Rey Juan Carlos, Entorno para el desarrollo de una nueva generación de redes sociales móviles basadas en ANDROID, Plan Avanza, 2009 TSI-020100-2009-342, 2009-2010 16. M-Quality: Medición de la Calidad del Servicio en la Telefonía Móvil de Tercera Generación. 2006-2008 – PETRI, PTRPTR1995-0961-OP 52.800€. 54.000€. Contratos de transferencia de tecnología directos con empresas 17. CITIC / CETECOM, Aplicación de SDL a unidades de señalización 80.700 € 18. TARTEC-OPTIMI, Medida de calidad de servicio en terminales GRPS 98.708 € 19. AT4 wireless, Metodologías para desarrollo de software para B3G 20. COPT, Junta de Andalucía, Sistema de Información para el transporte Metropolitano en móviles basado en localización 21. AT4 wireless, Software de Comunicaciones para redes de comunicaciones móviles 3.9G y 4G. 260.000 € 28.850 € 121.323 € En los proyectos en los que no se indica una ayuda concreta para la UMA (marcados como *) la gestión del presupuesto es centralizada y la UMA obtiene fondos en función de sus necesidades y actividad. Por ejemplo, en el proyecto ABCDE se financian estancias postdoctorales, recibiendo la UMA el 30% del coste de cada postdoc que acoge dentro del programa, con una estimación de unos 80k€ en los próximos 3 años. Por último, hay que hacer notar que los objetivos marcados en este proyecto representan un avance sobre los trabajos actualmente en ejecución y no cuentan con financiación directa de las empresas arriba mencionadas, por lo que no se incluyen otras partidas en el presupuesto solicitado. 8 Relación y perfil de los candidatos en las distintas modalidades de personal a incorporar al proyecto cuando proceda, salvo en personal investigador en formación El proyecto no incluye un investigador externo de reconocido prestigio para el que se solicita un presupuesto específico. Se solicita presupuesto para 2 contratos, en la modalidad de “personal contratado”. En particular, se solicitan dos contratos de titulados superiores (preferiblemente Ingeniero/a en Informática/Telecomunicación). 55 9 Descripción del carácter multidisciplinar y transversal del proyecto Como se puede ver en la relación de proyectos anteriores y en la base de datos del SICA, el equipo investigador solicitante tiene experiencia reciente en proyectos que se acercan a la temática propuesta ahora desde puntos de vista diferentes. Esa experiencia es la que se ha tenido en cuenta en la asignación de participantes a cada módulo y tarea. Por una parte, varios miembros del equipo participan en proyectos y contratos orientados a la fiabilidad del software, abordando aspectos básicos y aplicados. En el primer caso se estudian lenguajes de especificación y su semántica o algoritmos para optimización de memoria basados en análisis estático y su aplicación a model checking de software. En esa misma línea, miembros del equipo realizan trabajos más aplicados con las técnicas formales, como es el caso del uso de SDL y UML en el desarrollo de unidades de señalización para UMTS y LTE con la empresa. Un segundo grupo de investigadores está centrado en la problemática de la adaptación de servicios. Este grupo está trabajando en el desarrollo de una toolbox, llamada ITACA (Integrated Toolbox for Automatic Composition and Adaptation) para el soporte automático del proceso de adaptación, incluyendo: (i) diferentes métodos para construir contratos de adaptación entre servicios, (ii) técnicas de simulación y verificación que ayuden a identificar y corregir comportamientos erróneos o ejecuciones bloqueantes, y (iii) técnicas para la generación de adaptadores basados en los contratos de adaptación. Por otra parte, hay investigadores que trabajan en el análisis de protocolos en comunicaciones móviles y especialmente en la construcción y uso de herramientas de monitorización para redes vivas. Esta experiencia será necesaria para una de las dos aplicaciones consideradas en el proyecto. Es importante destacar que varios miembros del equipo tienen experiencia en varios de los campos mencionados y participarán en diversas tareas del proyecto, asegurando una correcta coordinación entre todas ellas. A continuación se enumeran algunas publicaciones del equipo investigador que son relevantes como punto de partida para el proyecto y que demuestran su carácter multidisciplinar y trasversal: Gallardo, M.M.; Merino, P.; Panizo, L., Linares, A. A practical use of model checking for synthesis: generating a dam controller for flood management. En Software Practice & Experience.To appear. John Wiley, 2011.ISSN: 0038-0644 Gallardo, M.M.; Panizo, L. Extending PROMELA and SPIN for hybrid system analysis. En Proceedings of the 10th international workshop on automated verification of critical systems and the rodin user and developer workshop. AVoCS'10. Düsseldorf, Germany. September 20-23, 2010. págs. 118-119, 2010. 56 Gallardo, M. M., Sanán D. 2010. Verification of Dynamic Data Tree with mu-calculus extended with Separation En 8th International conference on software engineering and formal methods. SEFM 2010: p.211-221 Gallardo, M.M.; Merino, P.; Panizo, L; Sanán, D. y Linares, A.Dam management based on model checking techniques. En 8th International conference on software engineering and formal methods. SEFM 2010: proceedings of the posters and tooldemo session. CNR, Pisa, Italy 13-18 september 2010. págs. 9-13. Consiglio Nazionale delle Ricerche: Pisa, Italy, 2010.ISBN: 978-88-7958-006-9 Gallardo, M. M., Merino, P., Panizo, L., Linares, A. 2009. Developing a decision support tool for dam management with SPIN. In María Alpuente; Byron Cook and Christophe Joubert (eds.). Formal Methods for Industrial Critical Systems: 14th International Workshop, FMICS 2009. Lecture Notes in Computer Science. 5825. p. 210-212. Gallardo, M.M., Merino, P., Sanán, D. 2009. Model Checking Dynamic Memory Allocation in Operating Systems. In Journal of Automated Reasoning, no.2-4, vol.42, p.229-264. Gallardo, M.M., Martínez J., Merino P., Núñez, P., Pimentel, E.: PiXL: Applying xml standards to support the integration of analysis tools for protocols. Science of Computer.Programing. 65(1): 57-69 (2007). Gallardo, M. M., Merino, P., Panizo, L. 2009.Integration of quantitative aspects into SPIN to develop a decision support tool for dams. In Susana Andova, et al. (eds.). Workshop on Quantitative Formal Methods: Theory and Applications (QFM'09).Preliminary proceedings.p.95-100. Alpuente, M., Gallardo, M,M., Pimentel, E., Villanueva, A.: Verifying Real-Time Properties of tccp Programs. Journal of Universal Computer Science12(11): 1551-1573 (2006). Alpuente, M., Gallardo, M,M., Pimentel, E., Villanueva, A.: A semantic framework for the abstract model checking of tccp programs. TheoreticalComputerScienceJournal 346(1): 5895 (2005) de la Cámara, P., Gallardo, M. M., Merino, P.,Sanán, D. 2009. Checking the Reliability of Socket Based Communication Software. In Int. Journal on Software Tools For Technology Transfer, no.5, vol.11, p.359-374. dela Cámara,P., Castro,J.R., Gallardo, M-M., Merino, P. 2010.Verification support for ARINC-653-based avionics software.In Software Testing, Verification and Reliability.John Wiley&Sons (en prensa). Díaz, A., Merino, P.,Rivas, F.J. 2010. Mobile Application Profiling for Connected Mobile Devices.In IEEE Pervasive Computing vol.9, no.1, p.54-61. 57 Díaz, A., and Merino, P. 2010. A Testbed for Energy Profile Characterization of IP Services in Smartphones over Live Networks.Mobile Applications& Networks (en prensa). Martínez, J., Merino, P., Salmerón, A., and Malpartida, F. 2009. UML-Based ModelDriven Development for HSDPA Design.InIEEE Software 26(3), vol.26, p.26–33. Cubo, J., Salaün, G., Cámara, J., Canal, C., Pimentel, E. Context-Based Adaptation of Component Behavioural Interfaces. In Proc. of COORDINATION’07, volume 4467 of Lecture Notes in Computer Science, pages 305–323. Springer, 2007. Cámara, J., Martín, J. A., Salaün, G., Cubo, J., Ouederni, M., Canal, C., Pimentel, E. 2009. ITACA: An Integrated Toolbox for the Automatic Composition and Adaptation of Web Services. In Proc. of ICSE ’09, pages 627–630. IEEE Computer Society. Cubo, J., Canal, C., Pimentel, E.Context-Aware Service Discovery and Adaptation Based on Semantic Matchmaking. In Proc. of ICIW’10, pages 554–561. IEEE Computer Society, 2010. Cubo, J., Canal, C., Pimentel, E.Context-Aware Composition and Adaptation Based on Model Transformation. Journal of Universal Computer Science, 2011.En imprenta. Martín, J. A., Pimentel, E. Contracts for Security Adaptation. JLAP, número especial de FLACOS’09, Elsevier. Martín, J. A., Pimentel, E.Feature-Based Discovery of Services with Adaptable Behaviour. In Proc. Of ECOWS’10.IEEE ComputerSociety, 2010. 58 10 Presupuesto total del proyecto y justificación del mismo Para la ejecución del proyecto, se solicita una ayuda de 218.800 € que cubra los siguientes conceptos: Gastos de Personal Personal de apoyo: 106.800 € o Dos titulados superiores como técnicos de apoyo para trabajar en la implementación de herramientas y en el desarrollo de los modelos y las aplicaciones, cada uno durante 2 años, con un coste total de 106.800 € Gastos de Ejecución Inventariable: 26.000 € o Se solicita un total de 15.500 € para la adquisición de 3 ordenadores portátiles, 1 impresora láser, 6 ordenadores de sobremesa y 10 actualizaciones de equipos. o Se solicitan 4.000 € para un servidor con altas prestaciones de cómputo para ejecuciones que demanden un alto consumo de memoria y de tiempo o Se solicitan 2.500 € para la adquisición de teléfonos móviles programables para emplearlos en la evaluación de la aplicaciones o Se solicitan 4.000 € para licencias de herramientas software Fungible: 7.500 € o Se incluyen 2.000 € para material bibliográfico diverso, 2.000 € para material fungible informático (soporte magnético y electrónico, cartuchos para impresora, etc.), 1.000 € para material de oficina, fotocopias, encuadernaciones, etc., 1.000 € para tarjetas prepago de telefonía para pruebas con operadores, y 1.500 € para mensajería y otros. Subcontratación como proyecto motriz: 33.000 € o Como se indica en el compromiso de participación de la empresa AT4 wireless y en el plan de trabajo, dicha empresa realizará parte del proyecto. El presupuesto para subcontratación incluye la dedicación de personal a tiempo parcial y la amortización de equipos. Gastos Complementarios Viajes: 30.500 € o Teniendo en cuenta el número de participantes, se ha estimado la asistencia a 12 congresos internacionales (4 anuales) y 6 nacionales, así como la participación en reuniones para solicitar alguno de los instrumentos del VII Programa Marco. Los gastos de desplazamiento y dietas para estas actividades suman 25.000 €. Se dedicarán 5.500 € para invitar a investigadores externos y empresas para reuniones de trabajo y seguimiento. Material de promoción: 5.000€ o Se contemple la generación de material impreso y demostradores de carácter profesional para contribuir a la difusión de resultados entre las empresas. Inscripciones en congresos y seminarios: 10.000 €. 59 11 Referencias [A95] Andersen, H.R. 1995. Partial model checking (extended abstract). In Proc. of LICS’95, IEEE Computer, pages 398–407. [AD94] Alur, R. and Dill, D. L. 1994. A theory of timed automata. Theor. Comput. Sci. 126, 2, p.183-235. [AFM07] St-Aubin, R., Friedman, J. and Mackworth, A. K. 2006. A formal mathematical framework for modeling probabilistic hybrid systems. Annals of Mathematics and Artificial Intelligence 47, 3-4 (Aug. 2006), p.397-425. [AFMPY02] Amnell, T., Fersman, E., Mokrushin, L., Pettersson, P. and Yi, W. 2002. TIMES - A Tool for Modelling and Implementation of Embedded Systems. In Proceedings of the 8th international Conference on Tools and Algorithms For the Construction and Analysis of System. LNCS vol. 2280, p.460-464. [AFPYS02] Amnell, T., Fersman, E., Pettersson, P., Yi, W. and Sun, H. 2002. Code synthesis for timed automata. Nordic J. of Computing, 9(4). [AINT07] Autili, M., Inverardi, P., Navarra, A. and Tivoli, M.. 2007. SYNTHESIS: A Tool for Automatically Assembling Correct and Distributed Component-based Systems. In Proc. of ICSE’07, pages 784–787.te [AVMM04] Aggarwal, R., Verma, K., Miller, P. and Milnor, W. Constraint Driven Web Service Composition in METEOR-S. In Proc. of SCC’04, pages 23–30. IEEE Computer Society, 2004. [BBC05] Brogi, A., Bracciali, A. and Canal, C. 2005. A formal approach to component adaptation. The Journal of Systems and Software, 74:45–54. Special Issue on Automated Component-Based Software Engineering. [BBGORT06] Becker, S., Brogi, A., Gorton, I., Overhage, S., Romanovsky, A. and Tivoli, M. Towards an Engineering Approach to Component Adaptation. In Architecting Systems with Trustworthy Components, volume 3938 of Lecture Notes in Computer Science, pages 193–215. Springer, 2006. [BC08] Brogi, A. and Corfini, S., Ontology- and behavior-aware discovery of Web service compositions. Int. J. Cooperative Inf. Syst., 17(3):319–347, 2008. [BCDFLL07] Behrmann, G., Cougnard, A., David, A., Fleury, E., Larsen, K.G. and Lime, D. 2007. UPPAAL-TIGA: Time for Playing Games! In Proceedings of the 19th International Conference on Computer Aided Verification (CAV 2007), LNCS 4590, p.121-125. [BCG04] Baier, C., Ciesinski, F. and Größer, M. 2004. PROBMELA: a modeling language for communicating probabilistic processes. In Proc. of the 2nd ACM and IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE '04), p.57–66 [BCP08] Brogi, A., Corfini, S. and Popescu, R. Semantics-Based Composition-Oriented Discovery of Web Services. ACM Transactions on Internet Technology, 8(4):19:1– 19:39, 2008. [BDHK06] Bohnenkamp, H., D'Argenio, P. R., Hermanns, H. and Katoen, J. 2006. MODEST: A Compositional Modeling Formalism for Hard and Softly Timed Systems. IEEE Trans. Softw. Eng. 32, 10 (Oct. 2006), 812-830. 60 [BDL04] Behrmann, G., David, A., and Larsen, K.G. 2004. A Tutorial on Uppaal. In Formal Methods for the Design of Real-Time Systems. Springer, p.200-236. [BDMOTY98] Bozga, M., Daws, C., Maler, O., Olivero, A., Tripakis, S. and Yovine, S. 1998. Kronos: A Model-Checking Tool for Real-Time Systems. In Proceedings of the 10th international Conference on Computer Aided Verification (June 28 - July 02, 1998). LNC vol. 1427, p.546-550. [BGGK05] Bohnenkamp, H., Gorter, J., Guidi, J. and Katoen, J.-P. 2005. Are you still there? - A lightweight algorithm to monitor node presence in self-configuring networks. In Proc. Int. Conf. on Dependable Systems and Networks (DSN 2005), p.704–709. [BGKLOSV02] Bhargavan, K., Gunter, C.A., Kim, M., Lee, I., Skolsky, O. and Viswanathan, M. 2002. Verisim: Formal Analysis of Network Simulations. IEEE Transactions on Software Engineering, vol. 28, no. 2, p. 129-145. [BHHK00] Baier, C., Haverkort, B. R., Hermanns, H. and Katoen, J. 2000. On the Logical Characterisation of Performability Properties. In Proceedings of the 27th international Colloquium on Automata, Languages and Programming (July 09 - 15, 2000). LNCS, vol. 1853, p.780-792. [BHHK03] Baier, C., Haverkort, B., Hermanns, H. and Katoen, J. 2003. Model-Checking Algorithms for Continuous-Time Markov Chains. IEEE Trans. Softw. Eng. 29, 6 (Jun. 2003), p.524-541. [BHK07] Bohnenkamp, H., Hermanns, H. and Katoen, J. 2007. Motor: The MoDeST Tool Environment. In Proc. of the 13th International Conference on Tools and Algorithms for Construction and Analysis of Systems, Braga, Protugal. LNCS vol.4424, p.500–504 [BHRT03] Benatallah, B., Hacid, M., Rey, C. and Toumani, F. Request Rewriting-Based Web Service Discovery. In Proc. of ISWC’03, volume 2870 of Lecture Notes in Computer Science, pages 242–257. Springer, 2003. [BHZ08] Bagnara, R., Hill, P.M. and Zaffanella, E.2008. The Parma Polyhedra Library: Toward a complete set of numerical abstractions for the analysis and verification of hardware and software systems. Science of Computer Programming; 72(1–2):3–21. [BKKT03] Buchholz, P. and Katoen, J.P. and Kemper, P. and Tepper, C. 2003 .Model-checking large structured Markov chains. Journal of Logic and Algebraic Programming, 56 1,2 [BLH06] Baig, A., Libman, L. and Hassan, M., Performance Enhancement of On-Board Communication Networks Using Outage Prediction (2006), in:Selected Areas in Communications, IEEE Journal on, 24:9(1692--1701) [BP07] Brogi, A. and Popescu, R. 2006. Automated generation of BPEL adapters. In Proc. of ICSOC ’06, volume 4294 of LNCS, pages 27–39. [BPSKC04] Broens, T., Pokraev, S., van Sinderen, M., Koolwaaij, J. and Costa, P. Context-Aware, OntologyBased Service Discovery. In Proc. of EUSAI’04, volume 3295 of Lecture Notes in Computer Science, pages 72–83. Springer, 2004. [BSW08] van den Berg, L. Strooper, P. and Winter, K. Introducing Time in an Industrial Application of Model-Checking Lecture Notes in Computer Science (4196)56-67.Springer Berlin/Heidelberg. 2008 [C91] Cellier, F. E. 1991 Continuous System Modeling. Springer-Verlag New York, Inc. 61 [C99] Chang, X. 1999, Network simulations with OPNET. In Proc. of the 31st Conference on Winter Simulation: Simulation – a bridge to the future, vol. 1, p.307-314, Phoenix, Arizona. [CB06] Ciesinski, F. and Baier, C. 2006. LiQuor: A tool for Qualitative and Quantitative Linear Time analysis of Reactive Systems. In Proc. of the 3rd international Conference on the Quantitative Evaluation of Systems (September 11 - 14, 2006). QEST. IEEE Computer Society, Washington, DC, p.131-132. [CBGP08] Ciesinski, F., Baier, C., Größer, M., and Parker, D. 2008. Generating Compact MTBDDRepresentations from Probmela Specifications. In Proceedings of the 15th international Workshop on Model Checking Software (Los Angeles, CA, USA, August 10 - 12, 2008). LNCS vol. 5156, p.60-76 [CCP10] Cubo, J., Canal, C. and Pimentel, E. Context-Aware Service Discovery and Adaptation Based on Semantic Matchmaking. In Proc. of ICIW’10, pages 554–561. IEEE Computer Society, 2010. [CCP11] Cubo, J., Canal, C. and Pimentel, E.Context Aware Composition and Adaptation Based on Model Transformation. Journal of Universal Computer Science, 2011. En imprenta. [CCGGPRST02] Cimatti, A., Clarke, E.M., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., and Tacchella, A. 2002. NuSMV 2: An OpenSource Tool for Symbolic Model Checking. In Proceedings of the 14th international Conference on Computer Aided Verification (July 27 - 31, 2002). LNCS vol.2404, p.359-364. [CDH00] Corbett, J. C., Dwyer, M.B., Hatcliff, J., Laubach, S., Păsăreanu, C. S., Robby, and Zheng, H. 2000. Bandera: extracting finite-state models from Java source code. In Proceedings of the 22nd international Conference on Software Engineering (ICSE '00). ACM, New York, NY, p.439-448. [CES86] Clarke, E.M., Emerson, E. A. and Sistla, A.P. 1986. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Program. Lang. Syst. 8, 2 (Apr. 1986), p.244-263. [CFLRR09] Cassez, F., Jessen, J. J., Larsen, K. G., Raskin, J., and Reynier, P. 2009. Automatic Synthesis of Robust and Optimal Controllers --- An Industrial Case Study. In Proceedings of the 12th international Conference on Hybrid Systems: Computation and Control (San Francisco, CA, April 13 - 15, 2009). LNCS, vol. 5469, p.90-104. [CGL94] Clarke, E.M., Grumberg, O. and Long, D. E. 1994. Model checking and abstraction. ACM Trans. Program. Lang. Syst. 16, 5 (Sep. 1994), p.1512-1542. [CGMS05] de la Cámara, P., Gallardo, M. M., Merino, P., and Sanán, D. 2005. Model checking software with well-defined APIs: the socket case. In Proceedings of the 10th international Workshop on Formal Methods For industrial Critical Systems (Lisbon, Portugal, September 05 - 06, 2005). FMICS '05. ACM, New York, NY, 17-26. [CGP99] Clarke, E.M., Grumberg, O., and Peled, D.A. 1999 Model Checking. MIT Press. [CIJKS00] Casati, F., Ilnicki, S., Jin, L.J., Krishnamoorthy, V. and Shan, M.C. 2000. Adaptive and Dynamic Service Composition in eFlow. LNCS 1789, pages 13-31. [CMP06] Canal, C., Murillo, J. and Poizat, P. Software Adaptation. L’Objet, 12(1):9–31, 2006. Special Issue on Coordination and Adaptation Techniques for Software Entities. 62 [CMSCOCP09] Cámara, J., Martín, J.A., Salaün, G., Cubo, J., Ouederni, M., Canal, C. and Pimentel, E. 2009. ITACA: An Integrated Toolbox for the Automatic Composition and Adaptation of Web Services. In Proc. of ICSE ’09, pages 627–630. IEEE Computer Society. [CPGCV03] Calveras, A., Paradells, J., Gomez, C., Catalan, M. and Valles, J. C. Optimizing TCP/IP parameters over GPRS and WLAN networks, in: Vehicular Technology Conference, 2003. VTC 2003-Fall. 2003 IEEE 58th, pages 2569--2573, 2003 [CPS08] Canal, C., Poizat, P. and Salaün, G. 2008. Model-based adaptation of behavioural mismatching components. IEEE Transactions on Software Engineering, 4(34):546–563. [CRT09] Cimatti, A., Roveri, M., and Tonetta, S. Requirements Validation for Hybrid Systems. In Lecture Notes in Computer Science, (5643)188-203.Springer Berlin/Heidelberg. 2009. [CSCCP07] Cubo, J., Salaün, G., Cámara, J., Canal, C. and Pimentel, E. Context-Based Adaptation of Component Behavioural Interfaces. In Proc. of COORDINATION’07, volume 4467 of Lecture Notes in Computer Science, pages 305–323. Springer, 2007. [DA00] Dey, A. and Abowd, G. Towards a Better Understanding of Context and Context-Awareness. In Proc. of Workshop on the What, Who, Where, When and How of Context-Awareness, pages 304–307, 2000. [DCCDDDSW02] Deavours, D.D., Clark, G., Courtney, T., Daly, D., Derisavi, S., Doyle, J.M., Sanders, W.H. and Webster, P.G. 2002. The Möbius framework and its implementation. Software Engineering, IEEE Transactions on 28(10), vol. 28, p.956–969 [DGG97] Dams, D., Gerth, R. and Grumberg, O. 1997. Abstract interpretation of reactive systems. ACM Trans. Program. Lang. Syst. 19, 2 (Mar. 1997), p. 253-291. [DM10] Díaz, A., Merino, P. 2010. Testbed for Energy Profile Characterization of IP services in Smartphones over Live Networks. Pendiente de publicación en Mobile Networks and Applications, Springer. [DMR10] Diaz, A., Merino, P. and Rivas, F.J. Mobile Application Profiling for Connected Mobile Devices IEEE Pervasive Computing, pp. 54-61, January-March, 2010 [DSW06] Dumas, M., Spork, M. and Wang, K.. 2006. Adapt or Perish: Algebra and Visual Notation for Service Interface Adaptation. In In Proc. of BPM’06, volume 4102 of LNCS, pages 65–80. Springer. [DY95] Daws, C. and Yovine, S. 1995. Two examples of verification of multi-rate timed automata with Kronos. In Proceedings of the 16th IEEE Real-Time Systems Symposium (December 05 - 07, 1995). RTSS. IEEE Computer Society, Washington, DC, p.66. [F08] Frehse, G. 2008. PHAVer: algorithmic verification of hybrid systems past HyTech. Int. J. Softw. Tools Technol. Transf. 10, 3 (May. 2008), p.263-279. [FK04] Fehnker, A. and Krogh, B. H. 2004. Hybrid System Verification Is Not a Sinecure:The Electronic Throttle Control Case Study. In ATVA 2004. LNCS vol 3299, p.263-277. [FL10] Fiadeiro, J. and Lopes, A. A Model for Dynamic Reconfiguration in Service-Oriented Architectures. In Proc. of ECSA’10, volume 6285 of Lecture Notes in Computer Science, pages 70–85. Springer, 2010. [FV00] Fall, K. and Varadhan, K. 2000, The ns Manual. 63 [G98] Garavel, H. 1998. OPEN/CAESAR: An Open Software Architecture for Verification, Simulation, and Testing, In Proc. of TACAS'98, LNCS vol.1384, p.68-84. [GMP02] Gallardo, M., Merino, P. and Pimentel, E. 2002. Refinement of LTL Formulas for Abstract Model Checking. In Proceedings of the 9th international Symposium on Static Analysis. LNCS, vol. 2477, p.395410. [GMPL09]Gallardo, M. M., Merino, P., Panizo, L. and Linares, A. 2009. Developing a decision support tool for dam management with SPIN. InMaría Alpuente; Byron Cook and Christophe Joubert (eds.). Formal Methods for Industrial Critical Systems: 14th International Workshop, FMICS 2009. Lecture Notes in Computer Science. 5825. p. 210-212. [GMPL11]Gallardo, M.M., Merino, P., Panizo, L. and Linares, A.A practical use of model checking for synthesis: generating a dam controller for flood management. En Software Practice & Experience.págs. to appear. John Wiley, 2011.ISSN: 0038-0644 [GMPG00] Goff, T., Moronski, J., Phatak, D. S. and Gupta, V. Freeze-TCP: a true end-to-end TCP enhancement mechanism for mobile environments, in: INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, pages 1537--1545, 2000 [GMS09] Gallardo, M-M., Merino, P. and Sanán, D. 2009. Model Checking Dynamic Memory Allocation in Operating Systems. In Journal of Automated Reasoning, no.2-4, vol.42, p.229-264. [GRR10] García, J., Ruiz, D. and Ruiz-Cortés, A. A Model of User Preferences for Semantic Services Discovery and Ranking. In Proc. of ESWC’10, volume 6089 of Lecture Notes in Computer Science, pages 1– 14. Springer, 2010. [H03] Holzmann, G.J. The SPIN Model Checker: Primer and Reference Manual, Addison-Wesley Professional, 2003 [H07] Hameurlain, N. Flexible Behavioural Compatibility and Substitutability for Component Protocols: A Formal Specification. In Proc. of SEFM’07, pages 391–400. IEEE Computer Society, 2007. [H08] Holzmann G.J. 2008. Software Safety and Rocket Science. In Ercim News 75, Special: Safety-Critical Software. [H96] Henzinger, T. A. 1996. The theory of hybrid automata. In Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science. LICS. IEEE Computer Society, Washington, DC, p.278. [H97b] Hansen, M.R. 1997. Duration calculus: Logical foundations. Journal Formal Aspects of Computing 3, vol.9 p.283-330 [HCDB99] Hinton, H., Cowan, C., Delcambre, L. and Bowers, S. 1999. SAM: Security adaptation manager. In Proc. Of ACSAC’99, IEEE, 1999, pages 361 – 370. [HDZ00] Hatcliff, J., Dwyer, M. B., and Zheng, H. 2000. Slicing Software for Model Construction. Higher Order Symbol. Comput. 13, 4 (Dec. 2000), p.315-353 [HH09] Hartmanns, A. and Hermanns, H. 2009. A Modest Approach to Checking Probabilistic Timed Automata. In Proceedings of the 2009 Sixth international Conference on the Quantitative Evaluation of Systems (September 13 - 16, 2009). QEST. IEEE Computer Society, Washington, DC, p.187-196. 64 [HJ04] Holzmann, G. J. and Joshi, R. 2004. Model-Driven Software Verification, In Proc. of SPIN 2004, LNCS, vol.2989, p.76-91. [HJU05]Hermanns, H., Jansen, D. N. and Usenko, Y S.: From StoCharts to MoDeST: a comparative reliability analysis of train radio communications, WOSP '05: Proceedings of the 5th international workshop on Software and performance, ACM, 13–23, 2005 [HK06] Hirschfeld, R. and Kawamura, K. 2006. Dynamic service adaptation. Software: Practice and Experience 36 (11-12), pages 1115-1131. [HKMKS03] Hermanns, H. and Katoen, J.P. and Meyer-Kayser, J. and Siegle, M. 2003. A tool for modelchecking Markov chains. Int. Journal on Software Tools for Technology Transfer, 4, 2. [HLP01] Hune, T., Larsen, K.G. and Pettersson, P. 2001. Guided synthesis of control programs using UPPAAL. Nordic J. of Computing, 8(1). [HP00] Havelund, K. and Pressburguer, T. 2000. Model Checking JAVA Programs using JAVA PathFinder. In Int. Journal on Software Tool for Technology Transfer, 2 vol. 4, p.366-361. [HS99] Holzmann, G.J. and Smith, M. 1999. Software model checking: Extracting verification models from source code. In Invited Paper. Proc. PSTV/FORTE99 Pulb. Kluwer, 1999 [HSE07] Haverinen, H., Siren, J. and Eronen, P. 2007. Energy Consumption of Always-On Applications in WCDMA Networks. IEEE 65th Vehicular Technology Conference. VTC2007-Spring, p.964-968. [HSLL97] Havelund, K., Skou, A., Larsen, K.G. and Lund, K. 1997. Formal Modelling and Analysis of an Audio/Video Protocol: An Industrial Case Study Using Uppaal. In Proc of the 18th IEEE Real-Time Systems Symposium, p.2-13. San Francisco, California. [HW02]Hofbaur, M.W. and Williams, B.C. 2002. Mode Estimation of Probabilistic Hybrid Systems. In Proceedings of the 5th international Workshop on Hybrid Systems: Computation and Control. LNCS vol.2289, p.253-266. [I10] Iglesias, J. Área 2: Interoperabilidad y ERTMS. Asamblea PTFE. Mayo 2010 [JRLD07] Jessen, J.J., Rasmussen, J.I., Larsen, K.G., and David, A. 2007. Guided Controller Synthesis for Climate Controller Using UPPAAL Tiga. In FORMATS 2007. LNCS vol.4763, p.227240. [KB04] Ketfi, A. and Belkhatir, N. A Metamodel-Based Approach for the Dynamic Reconfiguration of Component-Based Software. In Proc. of ICSR’04, volume 3107 of Lecture Notes in Computer Science, pages 264–273. Springer, 2004. [KH03] Kouadri, S. and Hirsbrunner, B. Towards a Context-Based Service Composition Framework. In Proc. of ICWS’03, pages 42–45, 2003. [KK05] Kawadia, V. and Kumar, P. R. A cautionary perspective on cross-layer design (2005), in: Wireless Communications, IEEE, 12:1(3 – 11) [KKZ05] Katoen, J., Khattri, M. and Zapreev, I. S. 2005. A Markov Reward Model Checker. In Proc. of the Second international Conference on the Quantitative Evaluation of Systems. [KFS06] Klusch, M., Fries, B. and Sycara, K. Automated Semantic Web Service Discovery with OWLS-MX. In Proc. of AAMAS’06, pages 915–922. ACM Press, 2006. 65 [KLPF05] Keller, U., Lara, R., Lausen, H., Polleres, A. and Fensel, D. Automatic Location of Services. In Proc. of ESWC’05, volume 3532 of Lecture Notes in Computer Science, pages 1–16. Springer, 2005. [KM90] Kramer, J. and Magee, J. The Evolving Philosophers Problem: Dynamic Change Management, IEEE Transactions on Software Engineering 16 (11) (1990), 1293–1306. [KMLA11] Krause, C., Maraikar, Z., Lazovik, A. and Arbab, F. Modeling Dynamic Reconfigurations in Reo using High-Level Replacement Systems, Sci. Comput. Program. 76 (2011), 23–36. [KNP04] Kwiatkowska, M., Norman, G. and Parker, D. 2004. Probabilistic symbolic model checking with PRISM: a hybrid approach. Int. J. Softw. Tools Technol. Transf. 6, 2 (Aug. 2004), p.128-142. [KNP05] Kwiatkowska, M., Norman, G. and Parker, D. 2005. Probabilistic Model Checking and PowerAware Computing. In Proc. 7th International Workshop on Performability Modeling of Computer and Communication Systems (PMCCS'05), p.6–9 [KNP09] Kwiatkowska, M., Norman, G. and Parker, D. 2009. PRISM: probabilistic model checking for performance and reliability analysis. SIGMETRICS Perform. Eval. Rev. 36, 4 (Mar. 2009), p.40-45. [LA99] Lee, P. and Anderson, T. Fault Tolerance Principles and Practice (Dependable Computing and FaultTolerant Systems. Springer, 1999. [LH03] Li, L. and Horrocks, I. A Software Framework for Matchmaking Based on Semantic Web Technology. In Proc. of WWW’03, pages 331–339. ACM Press, 2003. [LKMCK08] Lerda, F. and Kapinski, J. and Maka, H. and Clarke, E.M. and Krogh, B.H. 2008. Model checking in-the-loop: Finding counterexamples by systematic simulation. In American Control Conference, p. 2734-2740. [LT04] Lincoln, P. and Tiwari, A. 2004. Symbolic systems biology: Hybrid modeling and analysis of biological networks. In Hybrid Singerbread es exponencial y el Samsung Galaxy ystems: Computation and Control (HSCC). LNCS vol.2993, p.417-431. [LYR02] Li, J., Yarvis, M. and Reiher, P. 2002. Securing distributed adaptation, Computer Networks 38 (3) (2002) 347–371. [M03] Martinelli, F. 2003. Analysis of security protocols as open systems, TCS 290 (1) (2003) 1057–1106. [M96] Medvidovic, N. ADLs and Dynamic Architecture Changes. In Proc. of ISAW ’96, pages 24–27. ACM Press,1996. [MD08] Mens, T. and Demeyer, S. Software Evolution. Springer, 2008. [MFGI06] Mokhtar, S., Fournier, D., Georgantas, N. and Issarny, V. Context-Aware Service Composition in Pervasive Computing Environments. In Proc. of RISE’05, volume 3943 of Lecture Notes in Computer Science, pages 129–144. Springer, 2006. [MM11] Martinelli, F. and Matteucci, I. A framework for automatic generation of security controller, Software Testing, Verification and Reliability. En imprenta. [MP10a] Martín, J.A. and Pimentel, E. 2010. Contracts for Security Adaptation. JLAP, número especial de FLACOS’09, Elsevier. 66 [MP10b] Martín, J.A. and Pimentel, E. 2010. Feature-Based Discovery of Services with Adaptable Behaviour. In Proc. of ECOWS’10. IEEE Computer Society. [MS05] Morgenstern, A. and Schneider, K. 2005. Using Model Checking to Solve Supervisor Synthesis Problems. In 44th IEEE Conference on Decision and Control, and 2005 European Control Conference. CDCECC '05, p. 2757-2762. [MS10] Merino,P. and Salmerón, P. Combining SPIN with ns-2 for protocol optimization, in: 17th International SPIN Workshop on Model Checking of Software, SPIN 2010, pages 40--57, Springer, 2010 [MSS] The MathWorks-Product Listing, http://www.mathworks.com/products/product_listing [NBMCC07] Nezhad, H.R.M., Benatallah, B., Martens, A., Curbera, A. and Casati, F. 2007. Semi-automated adaptation of service interactions. In Proceedings of the 16th International Conference on the World Wide Web (WWW ’07), pages 993–1002. [NPKSG02] Norman, G., Parker, D., Kwiatkowska, M., Shukla, S. K. and Gupta, R. K. 2002. Formal analysis and validation of continuous-time Markov chain based system level power management strategies. In Proceedings of the Seventh IEEE international High-Level Design Validation and Test Workshop. HLDVT. IEEE Computer Society, Washington, DC, 45. [NS2] The Network Simulator - ns-2: http://www.isi.edu/nsnam/ns/ [P94] Puterman, M. L. 1994 Markov Decision Processes: Discrete Stochastic Dynamic Programming. 1st. John Wiley & Sons, Inc. [P02] Panday, P.K. 2002. Interval Duration Logic: Expressiveness and Decidability. In Electr. Notes Theor. Comput. Sci. 6, vol.65. [P09] Padovani, L. Contract-based discovery and adaptation of Web services. 2009. SFM, pages 213–260. [PFTK00] Padhye, J., Firoiu, V., Towsley, D.F. and Kurose, J.F. Modeling TCP Reno performance: a simple model and its empirical validation, Networking, IEEE/ACM Transactions on , vol.8, no.2, pp.133-145, Apr 2000 [PPL] PPL: The Parma Polyhedra Library . http://www.cs.unipr.it/ppl/ [PQ09] Platzer, A and Quesel, J. {European Train Control System}: A Case Study in Formal Verification. In proceedings of the 11th International Conference on Formal Engineering Methods. ICFEM 2009, Rio de Janeiro, Brasil, December 9-12, 2009.p 246-265 [PTDL07] Papazoglou, M.P., Traverso, P., Dustdar, S. and Leymann, F. 2007. Service-Oriented Computing: State of the Art and Research Challenges, Computer 40 (11) (2007) 38–45. [RB04]Remondino F, Börlin N. 2004. Polylib - a library of polyhedral functions. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, Vol. XXXIV, Part 5/W16, H.-G. [SAVE] Specification and Verification http://www.ida.liu.se/~eslab/SAVE.html of Heterogeneous Electronic Systems Project. [SAW94] Schilit, B., Adams, N. and Want, R. Context-Aware Computing Applications. In Proc. of WMCSA’94, pages 85–90. IEEE Computer Society, 1994. 67 [SK00] Silva, B. I. and Krogh, B. H. 2000. Formal Verification of Hybrid System Using CheckMate: A Case Study. In American Control Conference2000, vol. 3, p.1679-1683. [SM05] Srivastava, M. and Motani, M. Cross-layer design: a survey and the road ahead (2005), in: Communications Magazine, IEEE, 43:12(112 – 119) [SMZ07] Spanoudakis, G., Mahbub, K. and Zisman, A. A Platform for Context Aware Runtime Web Service Discovery. In Proc. of ICWS’07, pages 233–240. IEEE Computer Society, 2007. [SRK03] Shakkottai, S., Rappaport, T. S. and Karlsson, P.C. Cross-layer design for wireless networks (2003), in: Communications Magazine, IEEE, 41:10(74—80) [SRKC00] Silva, B., Richeson, K., Krogh, B. and Chutinan, A. 2000. Modeling and verifying hybrid dynamic systems using CheckMate. In Proc Conference on automation of mixed processes: hybrid dynamic systems, p.323-328. [SS02] Singh, H. and Singh, S. 2002. Energy consumption of TCP Reno, Newreno, and SACK in multi-hop wireless networks. In Proceedings of the 2002 ACM SIGMETRICS international Conference on Measurement and Modeling of Computer Systems (Marina Del Rey, California, June 15 - 19, 2002). SIGMETRICS '02. ACM, New York, NY, p.206-216. [SS05] van Der Schaar, M. and Shankar, S. N, Cross-layer wireless multimedia transmission: challenges, principles, and new paradigms (2005), in: Wireless Communications, IEEE, 12:4(50 – 58) [T03] Tiwari, A. 2003. HybridSAL: Modeling and abstracting hybrid systems. Technical report, SRI International. [T07] Teige, T. 2007. SAT-Modulo-Theory based Analysis of Probabilistic Hybrid Systems. In Proc. of the Dagstuhl Graduate School Meeting 2007. Verlag Mainz p.86-87. [TIRL03] Tartanoglu, F., Issarny, V., Romanovsky, A. and Levy, N. Dependability in the Web Services Architecture. In Proc. of ADS’03, volume 2677 of Lecture Notes in Computer Science, pages 90–109. Springer, 2003. [VH08] Varga, A. and Hornig, R. 2008. An overview of the OMNeT++ simulation environment. In Proc. of the 1st International Conference on Simulation Tools and Techniques for Communications, Networks and Systems & Workshops. Marseille, France [VHS] European Project ESPRIT-LTR Project 26270 VHS (Verification of Hybrid Systems) http://wwwverimag.imag.fr/PROJECTS/TEMPO/VHS/main.html [WLF01] Wermelinger, M., Lopes, A. and Fiadeiro, J.L. A Graph Based Architectural (Re)configuration Language. In Proc. of ESEC/FSE’01, pages 21–32. ACM Press, 2001. [WVKT06] Wang, X., Vitvar, T., Kerrigan, M. and Toma, I. A QoS-Aware Selection Model for Semantic Web Services. In Proc. of ICSOC’06, volume 4294 of Lecture Notes in Computer Science, pages 390–401. Springer, 200 6. [YKKY08] Ye, T., Kaur, H.T., Kalyanaraman,S. and Yuksel, M. Large-scale network parameter configuration using an on-line simulation framework (2008), in: IEEE/ACM Trans. Netw., 16:4(777--790) [ZR99] Zorzi, M. and Rao, R.R. 1999. Is TCP energy efficient?. IEEE International Workshop on Mobile Multimedia Communications, (MoMuC '99), p.198-201. 68 12 Cartas de apoyo al proyecto de empresas relacionadas 69