7 research outputs found

    A Component Framework for Java-based Real-time Embedded Systems

    Get PDF
    Rank (CORE): A.International audienceThe Real-Time Specification for Java (RTSJ) is becoming a popular choice in the world of real-time and embedded programming. However, RTSJ introduces many non-intuitive rules and restrictions which prevent its wide adoption. Moreover, current state-of-the-art frameworks usually fail to alleviate the development process into higher layers of the software development life-cycle. In this paper we extend our philosophy that RTSJ concepts need to be considered at early stages of software development, postulated in our prior work, in a framework that provides continuum between the design and implementation process. A component model designed specially for RTSJ serves here as a cornerstone. As the first contribution of this work, we propose a development process where RTSJ concepts are manipulated independently from functional aspects. Second, we mitigate complexities of RTSJ-development by automatically generating execution infrastructure where real-time concerns are transparently managed. We thus allow developers to create systems for variously constrained real-time and embedded environments. Performed benchmarks show that the overhead of the framework is minimal in comparison to manually written object-oriented approach, while providing more extensive functionality. Finally, the framework is designed with the stress on dynamic adaptability of target systems, a property we envisage as a fundamental in an upcoming era of massively developed real-time systems

    A Generic Component-based Approach for Programming, Composing and Tuning Sensor Software

    Get PDF
    International audienceWireless sensor networks (WSNs) are being extensively deployed today in various monitoring and control applications by enabling rapid deployments at low cost and with high flexibility. However, high-level software development is still one of the major challenges to wide-spread WSN adoption. The success of high-level programming approaches in WSNs is heavily dependent on factors such as ease of programming, code well-structuring, degree of code reusability, required software development effort and the ability to tune the sensor software for a particular application. Component-based programming has been recognized as an effective approach to satisfy such requirements. However, most of the componentization efforts in WSNs were ineffective due to various reasons, such as high resource demand or limited scope of use. In this article, we present Remora, a novel component-based approach to overcome the hurdles of WSN software implementation and configuration. Remora offers a well-structured programming paradigm that fits very well with resource limitations of embedded systems, including WSNs. Furthermore, the special attention to event handling in Remora makes our proposal more practical for embedded applications, which are inherently event-driven. More importantly, the mutualism between Remora and underlying system software promises a new direction towards separation of concerns in WSNs. This feature also offers a practical way to develop sensor middleware services which should be generic and developed close to the operating system. Additionally, it allows the customization of sensor software--deploying only application-required system-level services on nodes, instead of installing a fixed large system software image for any application. Our evaluation results show that the deployed Remora applications have an acceptable memory overhead and a negligible CPU cost compared with the state-of-the-art development models

    Plataforma de gestión para aplicaciones IIoT con requisitos de calidad de servicio

    Get PDF
    El contenido de los capítulos 3, 4, 5 y 6 está sujeto a confidencialidad. 82 p.La Internet Industrial de las Cosas (IIoT) plantea una serie de retos tecnológicos que suponen la motivación de esta tesis. Por una parte es necesario gestionar aplicaciones geográficamente distribuidas y muy heterogéneas en cuanto a plataformas hardware, redes y protocolos de comunicación. Por otra parte, la naturaleza de las aplicaciones es intrínsecamente dinámica, y por tanto requiere de soporte para la reconfiguración dinámica y autónoma de los sistemas. Finalmente, existen una serie de requisitos no funcionales que son claves desde un enfoque industrial y que contemplan aspectos tales como la calidad de servicio, la tolerancia a fallos o la seguridad funcional.En este contexto, desde la perspectiva de la ingeniería del software y con el objetivo de facilitar el desarrollo y soporte de aplicaciones IIoT, se ha concebido una plataforma de gestión de aplicaciones distribuidas basadas en componentes, que soporta la reconfiguración dinámica y autónoma de las mismas en base a criterios de optimización de los recursos y de calidad de servicio. La plataforma soporta una serie de paradigmas de comunicación y modelos de ejecución que abarcan una amplia tipología de aplicaciones. Para su validación, se ha diseñado y desarrollado un demostrador en el campo de los almacenes automatizados

    Plataforma de gestión para aplicaciones IIoT con requisitos de calidad de servicio

    Get PDF
    El contenido de los capítulos 3, 4, 5 y 6 está sujeto a confidencialidad. 82 p.La Internet Industrial de las Cosas (IIoT) plantea una serie de retos tecnológicos que suponen la motivación de esta tesis. Por una parte es necesario gestionar aplicaciones geográficamente distribuidas y muy heterogéneas en cuanto a plataformas hardware, redes y protocolos de comunicación. Por otra parte, la naturaleza de las aplicaciones es intrínsecamente dinámica, y por tanto requiere de soporte para la reconfiguración dinámica y autónoma de los sistemas. Finalmente, existen una serie de requisitos no funcionales que son claves desde un enfoque industrial y que contemplan aspectos tales como la calidad de servicio, la tolerancia a fallos o la seguridad funcional.En este contexto, desde la perspectiva de la ingeniería del software y con el objetivo de facilitar el desarrollo y soporte de aplicaciones IIoT, se ha concebido una plataforma de gestión de aplicaciones distribuidas basadas en componentes, que soporta la reconfiguración dinámica y autónoma de las mismas en base a criterios de optimización de los recursos y de calidad de servicio. La plataforma soporta una serie de paradigmas de comunicación y modelos de ejecución que abarcan una amplia tipología de aplicaciones. Para su validación, se ha diseñado y desarrollado un demostrador en el campo de los almacenes automatizados

    Contributions to the safe execution of dynamic component-based real-time systems

    Get PDF
    Traditionally, real-time systems have based their design and execution on barely dynamic models to ensure, since design time, the temporal guarantees in the execution of their functionality. Great effort is being applied nowadays to progressively develop more dynamic systems, with the target of changing during their execution and to adapt themselves to their environment. The capability to change and to reconfigure themselves represents remarkable advantages as the capability to fix errors and to add new functionality with on-line updates. This means to be able to be updated without needing to stop the service, that may imply monetary losses in many cases. Design and development techniques based on components have become popular due to the use of components, which allows simplifying the system design, code reusability and updates through the substitution of components. The target of this thesis work is to provide certain degree of dynamism to real-time systems allowing them to replace components, incorporating new functionality of fixing existing bugs. On that purpose, a component-based framework is proposed, as well as the corresponding task in charge of providing dynamism to the system. The main contribution is to provide a framework to allow safe component replacements. Safe meaning that incorrect executions of tasks are avoided even y multiple tasks are executing concurrently and making use of the same data. Also that temporal guarantees are provided for every task. This framework incorporates a generic component model with real-time threads, a components replacement model with execution times that are known and bounded, and different strategies to apply such component replacement model. Some mechanisms to maintain a seamless and safe execution, regarding concurrency, before, during, and after applying the processes in charge of replacing running components are also described. Seamless execution means that components themselves do not perform the replacements, and safe means that temporal guarantees are provided and components are not affected in their execution. Part of these mechanisms are the system schedulability analysis and the framework tasks as well as reserving the needed resources for such scheduling to be correct. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Los sistemas de tiempo real han basado tradicionalmente su desarrollo en modelos altamente predecibles ya que estos requieren garantías temporales en su ejecución. A lo largo de los años, la technología de tiempo real ha ido penetrando en diferentes campos de aplicación y ajustándose a paradigmas de desarrollo software más novedosos. Esto ha presentado y presenta en la actualidad un tremendo reto ya que estas aplicaciones suelen tener un alto grado de dinamismo, lo que entra en conflicto con la predictibilidad temporal y, en general la ejecución segura de los mismos. Hoy en dia se esta realizando un gran esfuerzo en el desarrollo de sistemas cada vez más dinamicos que permitan adaptar su estructura en tiempo de ejecución para adaptarse a entornos que presentan condiciones cambiantes. La capacidad de soportar este tipo de dinamismo presenta ventajas descatables como permitir corregir fallos y anadir funcionalidad mediante actualizaciones en caliente, es decir, poder actualizarse sin necesidad de realizar paradas en su servicio, lo que podria implicar costes monetarios en muchos casos o perdidas temporales de servicio. Por otro lado, las técnicas de diseño y desarrollo basadas en componentes se han hecho muy populares y su aplicación a los sistemas de tiempo real gana terreno día a día. Uno de los principales motivos de ellos es que el uso de componentes permite simplificar el diseño del sistema, la reutilizacion de codigo e incluso la actualizacion del mismo mediante la substitucion de componentes. En esta tesis se aborda el objetivo de proveer a los sistemas de tiempo real de cierto grado de dinamismo para poder reemplazar componentes de forma segura, que permita incorporar nuevas funcionalidades o corregir errores existentes. Para ello, en esta tesis se ha elaborado de un marco de trabajo para dar soporte a reemplazos de componentes de forma segura, entendiendo como tal que el hecho de que no se produzcan ejecuciones incorrectas debido a la ejecución concurrente de multiples tareas, asi como el garantizar los tiempos de ejecucion de cada tarea y acotar la duración temporal de los reemplazos. El marco de trabajo propuesto está basado, pues, en componentes de tiempo real, que tiene en cuenta los requisitos temporales en la ejecución de los componentes del sistema y de las tareas propias del marco que dan soporte a estos mecanismos de reemplazo. Este marco de trabajo incorpora un modelo generico de componente con tareas de tiempo real, un modelo de reemplazo de componentes cuyos tiempos de ejecucion son conocidos y limitados en tiempo y diferentes estrategias de aplicacion de dicho modelo de reemplazo de componente. Las contribuciones propuestas integran el analisis de la planificabilidad de los componentes del sistema y de las tareas del marco de componentes para permitir establecer los parámetros de reserva de los recursos necesarios para las tareas del marco. Por último, se realiza una validación empírica en la que se comprueba experimentalmente la validez del modelo tanto de forma genérica como en un escenario específico y determinando también los recursos necesarios para su implementación

    Component Framework for supporting safe and dynamic replacement in real-time systems

    Get PDF
    [EN] In the last decades solutions have been provided for the real- time component-based systems development as a base to increase productivity and reliability of their development as well as their maintenance. Solutions are increasingly appearing that allow controlled flexibility in these systems, aiming to support dynamic execution through the component replacement at run-time. So, component models are adapted trying to minimize conflicts integrating real-time and dynamic behaviors, and achieving components replacements in a bounded time. One of the main challenges for this is to calculate the required times by the different operations needed in a component replacement. The other issue is to know the operating times of the component in the system when their implementations change along the life of the system. In this work the implementation of a component framework implementation is described providing a partial solution for these problems. A component model is provided together with the corresponding algorithms to assure that components can be loaded and replaced at run-time without interfering in their execution deadlines. The model is designed to avoid failures during component replacements. Finally a validation of the presented concepts is provided.[ES] En las últimas décadas se han aportado soluciones para el desarrollo de sistemas de tiempo real basados en componentes como base para aumentar la productividad y la fiabilidad de su desarrollo así como su posterior mantenimiento. De modo más reciente están apareciendo soluciones que permiten cierta flexibilidad en estos sistemas con miras a soportar ejecución dinámica a través de reemplazos de componentes en tiempo de ejecución. Para ello se adaptan los modelos de componentes intentando minimizar los conflictos que aparecen al integrar tiempo real y comportamiento dinámico y conseguir reemplazos de componentes en un tiempo acotado. Uno de los principales retos para esto es el cálculo de los tiempos requeridos por las diferentes operaciones necesarias para realizar un reemplazo de componente. El otro gran obstáculo es conocer los tiempos de operación de los componentes del sistema cuando la implementación de éstos puede cambiar durante la vida del sistema. En este trabajo se describe la implementación de un marco de componentes que aporta una solución parcial a estos problemas. Se proporciona un modelo de componentes junto con sus correspondientes algoritmos para asegurar que los componentes pueden ser cargados y reemplazados en tiempo de ejecución sin interferir en el cumplimiento de sus plazos de ejecución. El modelo está diseñado para evitar fallos en los reemplazos de componente. Finalmente se aporta la validación de los conceptos presentados.Cano, J.; García Valls, M.; Basanta Val, P. (2014). Marco de Componentes con soporte para reemplazo dinámico y seguro en sistemas de tiempo real. Revista Iberoamericana de Automática e Informática industrial. 11(1):98-108. https://doi.org/10.1016/j.riai.2013.11.007OJS98108111Almeida, J., Wegdam, M. 2001. Transparent dynamic reconfiguration for CORBA, in: Blair, G., Schmidt, D., Tar, Z. (Eds.), 3rd International Symposium on Distributed Objects and Applications. Rome, pp. 197-207.Bini, E., Thi Huyen Chau Nguyen, Richard, P., & Baruah, S. K. (2009). A Response-Time Bound in Fixed-Priority Scheduling with Arbitrary Deadlines. IEEE Transactions on Computers, 58(2), 279-286. doi:10.1109/tc.2008.167Bollella, G., & Gosling, J. (2000). The real-time specification for Java. Computer, 33(6), 47-54. doi:10.1109/2.846318Bures, T., Hnetynka, P., Plasil, F. 2006. Sofa 2.0: Balancing advanced features in a hierarchical component model, in: Software Engineering Research, Management and Applications, 2006. Fourth International Conference On. IEEE, pp. 40-48.Crnkovic, I., Sentilles, S., Vulgarakis, A., & Chaudron, M. R. V. (2011). A Classification Framework for Software Component Models. IEEE Transactions on Software Engineering, 37(5), 593-615. doi:10.1109/tse.2010.83Valls, M. G., Alonso, A., Ruiz, J., & Groba, A. (2002). An Architecture of a Quality of Service Resource Manager Middleware for Flexible Embedded Multimedia Systems. Software Engineering and Middleware, 36-55. doi:10.1007/3-540-38093-0_3García Valls, M., Alonso, A., & de la Puente, J. A. (2012). A dual-band priority assignment algorithm for dynamic QoS resource management. Future Generation Computer Systems, 28(6), 902-912. doi:10.1016/j.future.2011.10.005Garcia-Valls, M., Basanta-Val, P., & Estevez-Ayres, I. (2011). Real-time reconfiguration in multimedia embedded systems. IEEE Transactions on Consumer Electronics, 57(3), 1280-1287. doi:10.1109/tce.2011.6018885Garcia Valls, M., Lopez, I. R., & Villar, L. F. (2013). iLAND: An Enhanced Middleware for Real-Time Reconfiguration of Service Oriented Distributed Real-Time Systems. IEEE Transactions on Industrial Informatics, 9(1), 228-236. doi:10.1109/tii.2012.2198662García-Valls, M., Basanta-Val, P., 2013a. A real-time perspective of service composition: Key concepts and some contributions. Journal of Systems Architecture. Elsevier, http://dx.doi.org/10.1016/j.sysarc.2013.06.008.García-Valls, M., Basanta-Val, P., Marcos, M., Estévez, E., 2013b. A bi- dimensional QoS model for SOA and real-time middleware. International Journal of Computer Systems Science and Engineering, CLR Publishing,ISSN 0267-6192(To appear).Kramer, J., & Magee, J. (1990). The evolving philosophers problem: dynamic change management. IEEE Transactions on Software Engineering, 16(11), 1293-1306. doi:10.1109/32.60317Li, W. (2012). QoS Assurance for Dynamic Reconfiguration of Component-Based Software Systems. IEEE Transactions on Software Engineering, 38(3), 658-676. doi:10.1109/tse.2011.37McKinley, P. K., Sadjadi, S. M., Kasten, E. P., & Cheng, B. H. C. (2004). Composing adaptive software. Computer, 37(7), 56-64. doi:10.1109/mc.2004.48Nilsen, K. (1998). Adding real-time capabilities to Java. Communications of the ACM, 41(6), 49-56. doi:10.1145/276609.276619OMG, 2006. CORBA Component Model Specification, Management.OMG, 2009. UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems.OSGi Alliance, 2009. OSGi Service Platform Release 4 Service Compendium Version 4.2, Access.Plšek, A., Loiret, F., Merle, P., Seinturier, L. 2008. A component framework for java-based real-time embedded systems, in: Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware. Springer- Verlag New York, Inc., Leuven (Belgium), pp. 124-143.Sha, L., 1998. Dependable system upgrade, in: Real-Time Systems Symposium,. Madrid, Spain, pp. 440-449.Siebert, F. (2007). Realtime garbage collection in the JamaicaVM 3.0. Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems - JTRES ’07. doi:10.1145/1288940.1288954Wiki, https://rt.wiki.kernel.org/index.php/Main_Page, February, 2013
    corecore