ABSTRACT
Software systems have to face evolutions of their running context and users. Therefore, the so-called dynamic reconfiguration has been commonly adopted for modifying some components and/or the architecture at runtime. Traditional approaches typically stop the needed components, apply the changes, and restart the components. However, this scheme is not suitable for critical systems and degrades user experience. This paper proposes to switch from the stop/restart scheme to dynamic software updating (DSU) techniques. Instead of stopping a component, its implementation is replaced by another one specifically built to apply the modifications while maintaining the best quality of service possible. The major contributions of this work are: (i) the integration of DSU techniques in a component model, and; (ii) a reconfiguration development process including specification, proof of correctness using Coq, and a systematic method to produce the executable script. In this perspective, the use of DSU techniques brings higher quality of service when reconfiguring component-based software and the formalization allows ensuring the safety and consistency of the reconfiguration process.
- R. Bialek and E. Jul. A framework for evolutionary, dynamically updatable, component-based systems. In Proc. of the Workshops at the 24th International Conference on Distributed Computing Systems, ICDCS 2004, pages 326--331, USA, 2004. IEEE. Google ScholarDigital Library
- F. Boyer, O. Gruber, and D. Pous. Robust reconfigurations of component assemblies. In Proc. of the 35th International Conference on Software Engineering, ICSE'13, pages 13--22, Piscataway, NJ, USA, 2013. IEEE Press. Google ScholarDigital Library
- P. Brada. Enhanced type-based component compatibility using deployment context information. Electronic Notes in Theoretical Computer Science, 279(2):17--31, Dec. 2011. Google ScholarDigital Library
- 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, 36(11--12):1257--1284, 2006. Google ScholarDigital Library
- J. Buisson and F. Dagnat. ReCaml: Execution state as the cornerstone of reconfigurations. In Proc. of the 15th ACM SIGPLAN International Conference on Functional Programming, ICFP'10, pages 27--38, New York, NY, USA, 2010. ACM. Google ScholarDigital Library
- K. Gama, W. Rudametkin, and D. Donsez. Resilience in dynamic component-based applications. In Proc. of the 26th Brazilian Symposium on Software Engineering, SBES 2012, pages 191--195, Piscataway, NJ, USA, 2012. IEEE. Google ScholarDigital Library
- M. Ghafari, P. Jamshidi, S. Shahbazi, and H. Haghighi. An architectural approach to ensure globally consistent dynamic reconfiguration of component-based systems. In Proc. of the 15th ACM SIGSOFT Symposium on Component-Based Software Engineering, CBSE'12, pages 177--182, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- P. J. Hayes. The frame problem and related problems in Artificial Intelligence. Technical report, Stanford University, Stanford, CA, USA, 1971. Google ScholarDigital Library
- J. Kramer and J. Magee. The evolving philosophers problem: Dynamic change management. IEEE Trans. on Software Engineering, 16(11):1293--1306, Nov. 1990. Google ScholarDigital Library
- W. Li. QoS assurance for dynamic reconfiguration of component-based software systems. IEEE Trans. on Software Engineering, 38(3):658--676, 2012. Google ScholarDigital Library
- K. Makris and R. A. Bazzi. Immediate multi-threaded dynamic software updates using stack reconstruction. In Proc. of the 2009 Conference on USENIX Annual Technical Conference, USENIX'09, page 31, Berkeley, CA, USA, 2009. USENIX Association. Google ScholarDigital Library
- V. P. L. Manna. Local dynamic update for component-based distributed systems. In Proc. of the 15th ACM SIGSOFT Symposium on Component-Based Software Engineering, CBSE'12, pages 167--176, New York, NY, USA, 2012. ACM. Google ScholarDigital Library
- S. Martinez, F. Dagnat, and J. Buisson. Prototyping DSU techniques using Python. In Proc. of the 5th Workshop on Hot Topics in Software Upgrades, HotSWUp'13, Berkeley, CA, USA, 2013. USENIX.Google Scholar
- E. Miedes and F. D. Mu\ noz-Escoí. A survey about dynamic software updating. Technical Report ITI-SIDI-2012/003, Instituto Universitario Mixto Tecnológico de Informática, Universitat Politècnica de València, Valencia, Spain, May 2012.Google Scholar
- P. Pissias and G. Coulson. Framework for quiescence management in support of reconfigurable multi-threaded component-based systems. IET Software, 2(4):348--361, 2008.Google ScholarCross Ref
- H. Seifzadeh, H. Abolhassani, and M. S. Moshkenani. A survey of dynamic software updating. Journal of Software: Evolution and Process, 25(5):535--568, Apr. 2012.Google ScholarCross Ref
- 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 & Experience, 42(5):559--583, May 2012. Google ScholarDigital Library
- Y. Vandewoude, P. Ebraert, Y. Berbers, and T. D'Hondt. Tranquility: A low disruptive alternative to quiescence for ensuring safe dynamic updates. IEEE Trans. on Software Engineering, 33(12):856--868, Dec. 2007. Google ScholarDigital Library
Index Terms
- Coqcots & pycots: non-stopping components for safe dynamic reconfiguration
Recommendations
Safe reconfiguration of Coqcots and Pycots components
Dynamic reconfiguration without suspending components.Integration of dynamic software updating and dynamic architecture reconfiguration.Coq proof mode as an interactive development environment for reconfigurations.Bidirectional translation between ...
Dynamic software updating: a systematic mapping study
Dynamic software updating (DSU) is shifting gears to modify software systems without a halt. Even though extensive research has been conducted on DSU, it is necessary to synthesise and map the results of recent studies on DSU for prospective research ...
Developing dynamic-reconfigurable communication protocol stacks using Java: Research Articles
This paper proposes the development of a dynamic-reconfigurable protocol stack, which allows the programmer to create, to remove, and to replace protocol modules during their operation. Moreover, this protocol stack also aims to preserve the module ...
Comments