Ingeniería Basada en Modelos Aplicada a Sistemas Dinámicamente Reconfigurables

July 8, 2017 | Autor: Elisabet Estévez | Categoría: Component-Based Software Engineering (CBSE), Middleware, MDE, CBSE
Share Embed


Descripción

INGENIERÍA BASADA EN MODELOS APLICADA A SISTEMAS DINÁMICAMENTE RECONFIGURABLES Aintzane Armentia*, Aitor Agirre†, Rafael Priego*, Elisabet Estévez**, Darío orive*, Marga Marcos* * ETSI de Bilbao, Universidad del País Vasco UPV/EHU {aintzane.armentia, rpriego001, dario.orive, marga.marcos}@ehu.es ** Escuela Politécnica Superior de Ingeniería de Jaén, Universidad de Jaén [email protected] † Ikerlan-IK4 Research Alliance, Arrasate, España [email protected]

1. INTRODUCCIÓN Las arquitecturas software son cada vez más complejas, demandando el desarrollo de aplicaciones más adaptables. Se imponen, por lo tanto, nuevos requisitos tales como sistemas embebidos distribuidos en entornos abiertos y heterogéneos. Actualmente, las aplicaciones también demandan más dinamismo, en el sentido de asegurar que sus requisitos no funcionales (requisitos temporales, de seguridad, de tolerancia a fallos, etc.) se cumplen por medio de una buena asignación de recursos. Los requisitos no funcionales suelen conocerse como calidad de servicio (QoS). El dinamismo de las aplicaciones se puede obtener a través de dos tipos de reconfiguraciones. Por un lado, para poder conseguir una buena gestión de los recursos de un sistema resulta de vital importancia el poder establecer qué QoS se espera para las aplicaciones en ejecución. De este modo, si en un determinado instante se detecta que el sistema no va a ser capaz de garantizar dicha QoS (ej. Un nodo del sistema se cae) la aplicación puede ser reconfigurada. Este tipo de reconfiguración es especialmente ventajosa en el caso de los sistemas empotrados de tiempo real debido a sus especiales características y a sus limitados recursos. Por otro lado, la decisión de reconfiguración puede ser iniciada como resultado de la ejecución de la propia aplicación (por ejemplo, la decisión de tomar datos a más frecuencia cuando la respuesta se hace más inestable), de forma que la funcionalidad de una aplicación pueda experimentar cambios que pueden llevar incluso a su propia parada. Para poder hacer frente a estos exigentes requisitos se utilizan cada vez más las arquitecturas basadas en componentes. La división en componentes facilita la definición de la reconfiguración necesaria intercambiando, añadiendo o eliminando componentes. Por otro lado, la ingeniería de software basada en componentes propone la elaboración de sistemas abiertos y distribuidos mediante el ensamblaje de piezas de software reutilizables (componentes), es decir, propone la construcción de sistemas complejos a partir de componentes básicos. Se consigue, por lo tanto, reducir los costes y tiempos de desarrollo de las aplicaciones, aumentando su 1

fiabilidad, flexibilidad y reutilización [1], además de facilitar la descripción de nuevas arquitecturas de reconfiguración. Existe la creencia de que por el simple hecho de utilizar estas tecnologías se mejora la calidad y fiabilidad de las aplicaciones. Pero nada más lejos de la realidad, ya que el empleo de componentes reutilizables debe ir acompañado de buenas técnicas de diseño que permitan, entre otras cosas, una correcta definición de los componentes, de sus conexiones para formar aplicaciones, y del entorno en el que dichos componentes se ejecutarán. Debido a que estos complejos sistemas son difíciles de diseñar y desarrollar, la consolidación de metodologías de modelado resulta beneficiosa. De hecho, en el desarrollo de aplicaciones software, en los últimos años se ha experimentado una clara tendencia a pasar de aproximaciones centradas en el código a aproximaciones centradas en modelos. Estas metodologías se basan en la utilización de lenguajes de modelado que permitan una completa descripción de dichos sistemas antes de su construcción, posibilitando la detección temprana de errores en fase de diseño. El Desarrollo Basado en Modelos (MDD, Model-Driven Development) es un emergente paradigma que permite resolver muchos de los problemas asociados con la composición e integración de grandes sistemas. Se basa en el uso de modelos para representar los elementos de un sistema y sus relaciones. Estos modelos se emplean como entradas y salidas de todos los estados del ciclo de desarrollo del sistema hasta su generación [2], [3]. En este contexto, la Ingeniería Basada en Modelos (MDE, Model-Driven Engineering) es una metodología que promueve el uso intensivo de modelos para hacer frente a la complejidad inherente al diseño de aplicaciones. MDE va más allá que las simples actividades de desarrollo, de hecho combina otras tecnologías como por ejemplo el uso de lenguajes de modelado específicos de dominio y generadores o transformadores. Por un lado, los lenguajes de modelado se basan en meta-modelos, permitiendo la descripción de la estructura, comportamiento y requisitos de un sistema. Por otro lado, las transformaciones de modelos permiten el análisis de los modelos para la obtención bien de código (transformaciones modelotexto) bien de otros modelos (transformaciones modelo-modelo) [4]. En sistemas de estas características (sistemas distribuidos reconfigurables construidos en base a un elevado número de componentes) resulta casi imprescindible la utilización de un framework que se encargue de la gestión global del sistema en aspectos tales como el registro y despliegue inicial de las aplicaciones, el control de ejecución de las mismas, la reconfiguración dinámica, la gestión de recursos y control de admisión basado en parámetros de QoS o los mecanismos de balance de carga y tolerancia a fallos. Con un soporte adecuado de estas funcionalidades el sistema podrá adaptarse a cambios en el entorno a la vez que garantiza el cumplimiento de ciertos requisitos no funcionales especificados en fase de diseño. Esto requiere que la plataforma de gestión sea flexible y modular, pudiéndose adaptar a las necesidades concretas de las aplicaciones. En este sentido, la plataforma debe soportar el uso de diferentes middlewares de distribución, lenguajes de implementación y de descripción de interfaces, o componentes genéricos que den respuesta a aspectos no funcionales como la seguridad, fiabilidad, traza de eventos o transacciones El trabajo de investigación presentado en este artículo se engloba en una de las líneas de investigación del Grupo de Control e Integración de Sistemas (GCIS) del Departamento de Ingeniería de Sistemas y Automática de la Universidad del País Vasco. Concretamente, se encuadra dentro de uno de sus objetivos prioritarios: el establecimiento de metodologías y desarrollo de herramientas de soporte al diseño de sistemas distribuidos. Teniendo en cuenta todo lo explicado anteriormente, se pueden distinguir dos ideas principales: por un lado, resulta necesaria la captura de los requisitos de las aplicaciones y la generación del correspondiente código que asegure 2

el cumplimiento tanto de los requisitos funcionales (incluyendo la reconfiguración dependiente del comportamiento de la aplicación) como de los requisitos no funcionales (para el aseguramiento de una calidad de servicio); por otro lado, el desarrollo de una plataforma que ofrezca los servicios necesarios para llevar a cabo la gestión y reconfiguración de las aplicaciones distribuidas. De hecho, el desarrollo de este trabajo de investigación da lugar a tres tesis en curso relacionadas, de forma que el trabajo de cada una de ellas se basa en los resultados de las otras: Una de ellas centrada en el modelado de aplicaciones distribuidas en base al paradigma MDE. Pretende proporcionar las herramientas de modelado funcional y no funcional de aplicaciones distribuidas, así como la generación de código específico de los componentes de aplicación. Todas estas herramientas se engloban en un entorno de desarrollo integrado (IDE, Integrated Development Environment) Otra de ellas centrada en el desarrollo de la plataforma de gestión de aplicaciones distribuidas encargada de gestionar el despliegue, ejecución y reconfiguración dinámica de las aplicaciones, a la vez que monitoriza el sistema y gestiona recursos para garantizar que los requisitos de QoS especificados en fase de diseño se cumplen en tiempo de ejecución. La tercera tesis consiste en una personalización del IDE para la problemática concreta de sistemas de control industrial, adaptándolo al dominio y definiendo los requisitos de QoS que este tipo de aplicaciones deben soportar. Por otro lado, será necesario desarrollar los componentes del middleware para la monitorización de QoS y decisión de reconfiguración, teniendo en cuenta que dichas decisiones afectarán a sistemas de control basados en PLC.

1.1.

Escenario general

El escenario general correspondiente al trabajo de investigación presentado se muestra en la Figura 1. El entorno de desarrollo integrado engloba todas las herramientas necesarias para poder especificar los requisitos funcionales y no funcionales de las aplicaciones en fase de diseño, así como las necesarias para la generación del esqueleto del código de los componentes de la aplicación. Finalmente, también incluye los mecanismos necesarios para la interacción con el middleware que a su vez se encarga de la gestión, composición, reconfiguración y monitorización de las aplicaciones en tiempo de ejecución, garantizando que la calidad de servicio especificada se cumple.

3

Figura 1 Escenario general

1.2.

Tecnologías implicadas

Tal y como se ha comentado anteriormente, MDE resulta una buena aproximación para hacer frente a la complejidad de las plataformas, proporcionando una metodología de desarrollo software que promueve un uso intensivo de modelos. Se pueden destacar dos estándares basados en modelos para el diseño de sistemas: Model Driven Architecture (MDA) propuesta por el Object Management Group (OMG) [5], y el Model Integrated Computing (IMC) de ISIS (Universidad de Vanderbilt [6]). En MDA se define un modelo independiente de la plataforma (PIM, Platform Independent Model) que describe el sistema con un alto nivel de abstracción, es decir, se define lo que el sistema tiene que hacer en términos de funcionalidad. Utilizando transformaciones de modelos, a partir del PIM se pueden obtener modelos específicos de la plataforma (PSM, Platform Specific Model) que constituyen el punto de partida para la generación de código. Por otro lado, el MIC emplea lenguajes de modelado específicos de dominio (DSML, Domain Specific Modeling Languages) así como transformaciones de modelos para integrar el análisis y otros tipos de herramienta en el proceso MDD. La generación de código mediante transformaciones de modelos es uno de los puntos más importantes del MDE. Existen un gran número de métodos y herramientas que permiten realizar la transformación de modelos a texto. Unas de las transformaciones más usadas son las llamadas transformaciones en base a plantillas. Estas transformaciones se basan en un conjunto de plantillas que, siguiendo un determinado meta-modelo, definen la estructura del código o texto a generar. Por lo tanto, en las plantillas se distingue una parte estática y una parte que tiene que ser sustituida por información extraída del modelo. Algunas de las herramientas que se basan en plantillas son JET, MOFScript, XPand, Acceleo, Velocity, MTL, entre otras. Dos son los lenguajes de meta-modelado más usados: Unified Modeling Language (UML) [7] y eXtensible Markup Language (XML) Schema [8]. Actualmente, 4

es común el uso de UML para describir sistemas software que pertenecen a diferentes dominios. Destacar como sus principales ventajas su independencia con respecto a los lenguajes de programación usados en la fase de codificación, así como la existencia de mecanismos como los perfiles UML, que permiten extender el lenguaje para modelar dominios específicos. UML 2.0 proporciona diagramas de restricciones que los modelos deben cumplir, de forma que una aplicación externa pueda ser capaz de realizar análisis sobre los modelos y sus restricciones. El Object Constraint Language (OCL) [9] es un lenguaje de notaciones que puede ser usado para la definición de las reglas que los modelos deben cumplir. Una alternativa al uso de UML y OCL es la de las tecnologías XML. W3C schema [10] y las reglas schematron [11] también pueden ser usadas para definir lenguajes de dominio incluyendo el léxico, el estilo arquitectónico y las reglas de composición que los modelos deben cumplir. Otras tecnologías XML tales como XML style sheets [12], Document Object Model (DOM) [13] and Simple API of XML (SAX) [14] son muy utilizadas para el acceso, transformación y manipulación de modelos. Tecnologías como Scalable Vector Graphic (SVG) pueden ser empleadas para generar una capa de abstracción gráfica que asocie iconos gráficos a los elementos del lenguaje. El framework GMF-Graphical Modeling Framework [15] proporciona una aproximación basada en modelos para la generación de editores gráficos en Eclipse, estableciendo un proceso de desarrollo de herramientas de modelado muy específico. En relación a la plataforma de gestión de componentes distribuidos, existen diversas tecnologías y herramientas de soporte que pretenden facilitar el diseño, desarrollo, test, administración y posterior mantenimiento de estos sistemas distribuidos. Dichas tecnologías abordan distintos aspectos del problema que, de una forma u otra, se deben tener en cuenta al abordar el diseño de sistemas empotrados distribuidos con requisitos de calidad de servicio. Podemos citar tres pilares tecnológicos fundamentales: 1. Arquitecturas de gestión de la calidad de servicio. De forma general los requisitos de calidad de servicio se pueden considerar como requisitos no funcionales de un sistema. Entre ellos se encuentran los requisitos de eficiencia energética, de rendimiento, de tolerancia a fallos (fault-tolerance), de seguridad (safety / security), de confiabilidad (dependability), etc. La plataforma propuesta enfoca la QoS desde dos perspectivas claramente diferenciadas: La relativa a la QoS a nivel de transporte (nivel 4 OSI), en la cual se están considerando middlewares de distribución orientados a sistemas críticos o de tiempo real (DDS – Data Distribution Service) [16], FTT-SE – Flexible Time Triggered over Switched Ethernet [17][18][19]), y la relativa al nivel de aplicación, en la que se barajan aspectos tales como la monitorización de recursos disponibles (CPU, memoria) de cara al control de admisión de nuevas aplicaciones [20][21]. 2. Arquitecturas de soporte para reconfiguración dinámica de aplicaciones distribuidas. En algunos casos esta problemática ha sido abordada desde la óptica de los modelos de componentes [22][23] y del soporte que éstos brindan para la reconfiguración de las dependencias o enlaces (wiring) entre los componentes de una aplicación, ya sea de forma estática, como por ejemplo en el caso de SCA (Service Component Architecture) [23][24], o dinámica, como en el caso de Fractal [25][26]. En otros casos se ha abordado desde la perspectiva de las plataformas de gestión de aplicaciones, como por ejemplo OSGi [27] o FraSCAti [22]. Otro ejemplo es el middleware desarrollado dentro del proyecto iLAND-Artemis (mIddLewAre for deterministic dynamically reconfigurable NetworkeD embedded systems) 5

[28], se trata de un middleware con soporte para la composición y reconfiguración dinámica de aplicaciones distribuidas deterministas con requisitos de QoS [29][30]. 3. Modelos de componentes. Fundamentalmente persiguen los siguientes objetivos: i.

Desacoplar la especificación funcional de los requisitos no funcionales: Los modelos de componentes como Fractal [25], SCA [24] o CCM (CORBA Component Model) [31], separan claramente el código funcional (lógica de negocio) del código relativo a aspectos no funcionales (distribución, seguridad, disponibilidad, tolerancia a fallos, etc.).

ii.

Promover la reutilización de código: Mediante la separación del código funcional del código no funcional (gestión del ciclo de vida, QoS,…).

iii.

Estandarizar el despliegue de aplicaciones: Abstraer al desarrollador de tareas tales como el despliegue y alojamiento de aplicaciones. Un modelo de componentes avanzados (EJB, CCM, Fractal…) permite, de forma más sencilla y portable, alojar las aplicaciones en servidores genéricos

iv.

Configuración declarativa de la aplicación: La posibilidad de definir la interconexión entre componentes fuera del código de la aplicación permite flexibilizar la reconfiguración de aplicaciones, sin necesidad de recompilar la aplicación.

2. PLATAFORMA DE GESTIÓN DE COMPONENTES DISTRIBUIDOS El principal objetivo de la plataforma de gestión de componentes distribuidos (DCMP-Distributed Component Management Platform) es asegurar el cumplimiento de los requisitos de calidad de servicio que se están observando en tiempo de ejecución. Los componentes software de esta aplicación se distribuyen sobre los distintos nodos que conforman la infraestructura hardware del sistema, la cual puede soportar la ejecución simultánea de distintas aplicaciones. Asimismo, dichas aplicaciones pueden ser dinámicamente reconfiguradas en base a distintos criterios, tanto funcionales como no funcionales (tolerancia a fallos, balanceo de carga, prioridades, etc.). Este escenario refleja algunas de las características que actualmente presentan los sistemas distribuidos embebidos (DES): Heterogeneidad, flexibilidad, capacidad de reconfiguración dinámica y cumplimiento de un amplio abanico de parámetros de calidad de servicio (QoS), entre los cuales se pueden citar los requisitos de seguridad, de fiabilidad, o las restricciones temporales y energéticas, por citar algunos ejemplos. A partir de estas necesidades, se puede concluir que DCMP debe ofrecer una serie de servicios que posibiliten la ejecución de sistemas distribuidos reconfigurables, asegurando requisitos de QoS.

6

Para la consecución de dicho objetivo, se aborda el diseño de DCMP a partir de técnicas y tecnologías existentes integradas bajo el paradigma MDE. Más concretamente basado en el estándar SCA (Service Component Architecture). SCA propone un modelo de componentes jerárquico que proporciona una gran flexibilidad basada en la abstracción y en la extensión a plataformas heterogéneas. La plataforma DCMP estará compuesta por un conjunto de componentes SCA que, entre otros, debe ofrecer los siguientes servicios: Gestión del ciclo de vida de las aplicaciones: Despliegue (local/remoto), control de ejecución, desinstalación, etc. Distribución de datos con soporte para QoS, enfatizando ciertos aspectos de seguridad (“Safety Communication Layer” de la norma IEC 61508 [32]), determinismo temporal o plazo (deadline). Monitorización y control, en tiempo de ejecución, de parámetros de calidad de servicio y de recursos del sistema. Gestión de la reconfiguración dinámica tanto a demanda de la aplicación como iniciada por la propia plataforma, como respuesta al cumplimiento de QoS. Garantizar la calidad de servicio establecida para las aplicaciones en fase de diseño. La arquitectura inicial se ilustra en la Figura 2.

Figura 2 Servicios de la DCMP Para asegurar el cumplimiento de la QoS de las aplicaciones es necesario realizar una gestión adecuada de los recursos del sistema, que permita analizar la viabilidad de una eventual reconfiguración a partir de los datos relativos a la 7

monitorización de recursos del sistema (cpu, memoria) y de la demanda de los mismos por parte de las aplicaciones. En esta gestión de recursos del sistema intervienen el servicio de configuración de la QoS junto con el de control de admisión y el de monitorización de recursos del sistema (Health Monitor). Como pruebas de concepto, el objetivo es desarrollar dos prototipos basados en un middleware de distribución con soporte de parámetros de QoS, para sistemas software con requisitos de tiempo real flexibles y estrictos, DDS y FTT-SE respectivamente.

3. INGENIERÍA BASADA EN MODELOS PARA RECONFIGURACIÓN DINÁMICA Las aplicaciones de interés se pueden especificar como un conjunto de componentes que interaccionan. Cada componente encapsula una determinada funcionalidad que puede ser reutilizable, y que está caracterizada por su interfaz y un conjunto de propiedades. Es, por lo tanto, la cooperación entre componentes lo que permite la consecución de la funcionalidad de la aplicación, de manera que un mismo componente puede ser reutilizado en diferentes aplicaciones. La implementación de estos componentes se realiza en unidades software reutilizables que pueden estar desplegadas en uno o más nodos. Con el objetivo de facilitar el desarrollo de estas aplicaciones que además de distribuidas son dinámicamente reconfigurables se estudia la aplicación de la ingeniería basada en modelos en las distintas fases del ciclo de desarrollo: desde la captura y especificación de requisitos funcionales y no funcionales (especificados en calidades de servicio concretas) hasta la generación automática de código e interacción con el middleware de soporte a la ejecución y reconfiguración de aplicaciones. Por lo tanto, el estudio se focaliza principalmente en la lógica de la aplicación y la capacidad que debe exhibir de reconfigurarse dinámicamente como resultado del comportamiento de la propia aplicación. Otro aspecto importante del trabajo se centra en la especificación de los requisitos no funcionales en base a calidad de servicio y cómo transformar dichos requisitos en información para el middleware de soporte a la ejecución. Resulta necesario definir una aproximación basada en modelos que se apoya en la plataforma de gestión de componentes descrita en el apartado anterior. El modelo definido debe contener la información que el middleware necesita para la composición, reconfiguración, gestión y monitorización de aplicaciones, es decir, debe permitir caracterizar tanto los requisitos funcionales de las aplicaciones (cómo se conectan los componentes que las componen y qué casos de reconfiguración dirigida por el comportamiento de la aplicación se contemplan) así como sus requisitos no funcionales (qué calidad de servicio se espera). Para el cumplimiento de dicha calidad de servicio es necesaria una buena asignación de recursos lo cual implica que el modelo propuesto también contemple una completa caracterización de los recursos disponibles en el sistema. La aproximación propuesta consiste en la definición del sistema como un conjunto de vistas complementarias, de forma que cada vista contenga la caracterización de los elementos del sistema relevantes para dicho punto de vista.

8

Dos son los conceptos sobre los que se fundamenta MDE, el concepto de modelo y el de transformación. En esta última cabe distinguir los denominados “transformadores” (de modelo a modelo) y los “generadores” (de modelo a texto). El objetivo último de MDE es automatizar la definición de modelos y las transformaciones a lo largo del ciclo de desarrollo de las aplicaciones. Por lo tanto, con la información contenida en la aproximación de modelado propuesta, debe ser posible generar el esqueleto del código de los componentes así como todo aquel código necesario para el arranque y reconfiguración de las aplicaciones. Este código debe contener la lógica de aplicación y la lógica de reconfiguración descrita en la especificación para dicho componente. Más concretamente, para cada componente de la aplicación el esqueleto del código encapsula su inicialización, la recepción de datos junto su correspondiente lógica de entrada, y el envío de datos junto con su correspondiente lógica de salida. También se incluyen todas las llamadas al middleware necesarias bien para la comunicación entre componentes bien para el lanzamiento de eventos de reconfiguración. De este modo, la plataforma de middleware desarrollada puede ser capaz de gestionar la ejecución de las aplicaciones, en base a la información contenida en el modelo, asegurando que la QoS definida se cumple, y haciendo uso del código generado. También se espera proporcionar un conjunto de herramientas de soporte a la metodología de diseño. Este conjunto de herramientas conformará un entorno de desarrollo (Figura 1) que, mediante una interfaz gráfica amigable, permita: (1) la especificación guiada y validada de las aplicaciones y los recursos necesarios siguiendo la aproximación de modelado propuesta, (2) la generación automática del esqueleto del código de los componentes de una aplicación, (3) la gestión de dichas aplicaciones apoyándose en la plataforma de middleware desarrollada en la otra tesis en curso y (4) la monitorización del cumplimiento de requisitos de QoS. Para la implementación de este IDE se deben tener en cuenta plataformas abiertas que permitan la integración de todas estas herramientas de una forma sencilla y eficaz, y que estén basadas en el paradigma MDE.

REFERENCIAS [1] C. Szyperski, “Component Software: Beyond Object-Oriented Programming”, Addison-Wesley, 1998. [2] B. Selic, “The pragmatics of model-driven development”, IEEE Software, Vol. 20 (5), pp. 19 – 25, 2003. [3] K. Balasubramanian, A. Gokhale, G. Karsai, J. Sztipanovits, S. Neema, “Developing applications using model-driven design environments”, Computer, Vol. 39 (2), pp. 33-40. 2006. [4] Douglas D. Schmidt, “Model Driven Engineering”, IEEE Computer Society, pp 2531, Feb 2006. [5] J. Miller, J. Mukerji, “Model Driven Architecture (MDA)”, OMG, ormsc/2001-07-01, Architecture Board ORMSC1, July 2001. [6] J. Sztipanvits and G. Karsai, “Model-Integrated Computing”, IEEE Computer, Vol. 20, pp:110-112. 1997. [7] Grady Booch, James Rumbaugh, Ivar Jacobson, “The Unified Modeling Language User Guide”, ISBN: 9780321267979, Addison-Wesley Educational Publishers Inc. 2005. 9

[8] W3C. 2004. XML Schema Part 0: Primer (Second Edition), W3C REC-xmlschema0-20041028. Available on-line at: http://www.w3.org/TR/2004/REC-xmlschema-020041028/ [9] OCL. 2005. Available on-line at: http://www.klasse.nl/ocl/index.html [10] W3C. 2004. XML Schema Part 0: Primer (Second Edition), W3C RECxmlschema-0-20041028. Available on-line at: http://www.w3.org/TR/2004/RECxmlschema-0-20041028/ [11] R. Jelliffe, 2006. Resource Directory (RDDL) for Schematron 1.5. Available online at: http://xml.ascc.net/schematron/ [12] W3C. 2007. XSL Transformations (XSLT) Version 2.0. Available on-line at: http://www.w3.org [13] W3C. 1998. Document Object Model (DOM) Level 1 Specification, W3C RECDOM-Level-1-19981001. Available on-line at: http://www.w3.org/TR/1998/RECDOM-Level-1-19981001/ [14] D. Megginson, 1998. http://www.saxproject.org/

Simple

[15] GMF Graphical Modeling http://www.eclipse.org/modeling/

API

for

XML“.

Framework,

Available Available

on-line on-line

at: at:

[16] OMG, "Data Distribution Service for Real-time Systems v1.2," ed, 2007. [17] P. Pedreiras and A. Luis, "The flexible time-triggered (FTT) paradigm: an approach to QoS management in distributed real-time systems," in Parallel and Distributed Processing Symposium, 2003. Proceedings. International, 2003, p. 9 pp. [18] R. Marau, L. Almeida, M. Sousa, and P. Pedreiras, "A middleware to support dynamic reconfiguration of real-time networks," Bilbao, 2010. [19] R. Marau, "Real-time communications over switched Ethernet supporting dynamic QoS management," University of Aveiro, 2008. [20] B. Shirazi, M. Kumar, and B. Y. Sung, "QoS middleware support for pervasive computing applications," in System Sciences, 2004. Proceedings of the 37th Annual Hawaii International Conference on, 2004, p. 10 pp. [21] I. Estevez-Ayres, P. Basanta-Val, M. Garcia-Valls, J. A. Fisteus, and L. Almeida, "QoS-Aware Real-Time Composition Algorithms for Service-Based Applications," Industrial Informatics, IEEE Transactions on, vol. 5, pp. 278-288, 2009. [22] L. Seinturier, P. Merle, R. Rouvoy, D. Romero, V. Schiavoni, and J.-B. Stefani, "A component-based middleware platform for reconfigurable service-oriented architectures," Software: Practice and Experience, pp. n/a-n/a, 2011. [23] P. Hnetynka, L. Murphy, and J. Murphy, "Comparing the service component architecture and fractal component model," Computer Journal, vol. 54, pp. 10261037, 2011. [24] OASIS, "Service Component Architecture," ed, 2007. [25] T. O. Consortium, "The Fractal Component Model Specification," ed, 2004. [26] E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J. B. Stefani, "The FRACTAL component model and its support in Java," Software - Practice and Experience, vol. 36, pp. 1257-1284, 2006. [27] T. O. Alliance, "OSGi Service Platform Core Specification, Version 4.3," ed, 2011. [28] ILAND Technical Annex, 2010. [29] M. García-Valls, I. Rodríguez López, L. Fernández Villar, iLAND: An Enhanced Middleware for Real-Time Reconfiguration of Service Oriented Distributed RealTime Systems, IEEE Transaction on Industrial Informatics 9 (1) (2013) 228-236. 10

[30] M. García-Valls, F. Gómez-Molinero, iLAND: mIddLewAre for deterministic dynamically reconfigurable NetwokeD embedded systems, Embedded World Conference (2010). [31] OMG, "OMG Corba Component Model Specification," ed, 2011. [32] IEC, "61508-Functional safety of electrical/electronic/programmable electronic safety-related systems," ed: IEC, 2010.

11

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.