Abstract
Recomposable software enables a system to change its structure and behavior during execution, in response to a dynamic execution environment. This paper proposes an approach to ensure that such adaptations are safe with respect to system consistency. The proposed method takes into consideration dependency analysis for target components, specifically determining viable sequences of adaptive actions and those states in which an adaptive action may be applied safely. We demonstrate that the technique ensures safe adaptation (insertion, removal, and replacement of components) in response to changing external conditions in a wireless multicast video application.
This work has been supported in part by NSF grants EIA-0000433, EIA-0130724, ITR-0313142, and CCR-9901017, and the Department of the Navy, Office of Naval Research under Grant No. N00014-01-1-0744.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
McKinley, P.K., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: Composing adaptive software. IEEE Computer 37(7), 56–64 (2004)
Adve, V., Lam, V.V., Ensink, B.: Language and compiler support for adaptive distributed applications. In: Proceedings of the ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems, OM 2001 (2001)
Kasten, E., McKinley, P.K., Sadjadi, S., Stirewalt, R.: Separating introspection and intercession in metamorphic distributed systems. In: Proceedings of the IEEE Workshop on Aspect-Oriented Programming for Distributed Computing, with ICDCS 2002 (2002)
Redmond, B., Cahill, V.: Supporting unanticipated dynamic adaptation of application behaviour. In: Proceedings of the 16th European Conference on Object-Oriented Programming (2002)
Fickas, S., Kortuem, G., Segall, Z.: Software organization for dynamic and adaptable wearable systems. In: Proceedings First International Symposium on Wearable Computers, ISWC 1997 (1997)
Sousa, J.P., Garlan, D.: Aura: An architectural framework for user mobility in ubiquitous computing environments. In: Proceedings of the 3rd Working IEEE/IFIP Conference on Software Architecture (2000)
Blair, G.S., Coulson, G., Robin, P., Papathomas, M.: An architecture for next generation middleware. In: Proceedings of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, Middleware 1998 (1998)
Kon, F., Roman, M., Liu, P., Mao, J., Yamane, T., Magalhaes, L.C., Campbell, R.H.: Monitoring, security, and dynamic configuration with the dynamictao reflective orb. In: Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware 2000) (April 2000)
Bershad, B.N., Savage, S., Pardyak, P., Sirer, E.G., Fiuczynski, M.E., Becker, D., Chambers, C., Eggers, S.: Extensibility safety and performance in the SPIN operating system. In: Proceedings of the fifteenth ACM symposium on Operating systems principles, pp. 267–283. ACM Press, New York (1995)
Appavoo, J., Wisniewski, R.W., Soules, C.A.N., et al.: An infrastructure for multiprocessor run-time adaptation. In: Proceedings of the ACM SIGSOFT Workshop on Self-Healing Systems (WOSS 2002) (November 2002)
Engler, D.R., Kaashoek, M.F., O’Toole, J.: Exokernel: An operating system architecture for application-level resource management. In: Symposium on Operating Systems Principles, pp. 251–266 (1995)
Sadjadi, S.M., McKinley, P.K., Kasten, E.P.: Architecture and operation of an adaptable communication substrate. In: Proceedings of the Ninth International Workshop on Future Trends of Distributed Computing Systems (FTDCS 2003) (May 2003)
Yang, Z., Cheng, B.H.C., Stirewalt, K., Sadjadis, M., Sowell, J., McKinley, P.: An aspect-oriented approach to dynamic adaptation. In: Proceedings of the ACM SIGSOFT Workshop on Self-Healing Systems (2002)
Sadjadi, S.M., McKinley, P.K.: ACT: An adaptive CORBA template to support unanticipated adaptation. In: Proceedings of the 24th IEEE International Conference on Distributed Computing Systems (ICDCS 2004), Tokyo, Japan (March 2004)
Sadjadi, S.M., McKinley, P.K., Cheng, B.H., Stirewalt, R.E.: TRAP/J: Transparent generation of adaptable java programs. In: Proceedings of the International Symposium on Distributed Objects and Applications, Agia Napa, Cyprus (October 2004)
Maes, P.: Concepts and experiments in computational reflection. In: Proceedings of the ACM Conerfence on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), December 1987, pp. 147–155 (1987)
McKinley, P.K., Kasten, E.P., Sadjadi, S.M., Zhou, Z.: Realizing multi-dimensional software adaptation. In: Proceedings of the ACM Workshop on Self-Healing, Adaptive and self-MANaged Systems (SHAMAN), held in conjunction with the 16th Annual ACM International Conference on Supercomputing, New York City (June 2002)
McKinley, P.K., Sadjadi, S.M., Kasten, E.P.: An adaptive software approach to intrusion detection and response. In: Proceedings of the 10th International Conference on Telecommunication Systems, Modeling and Analysis, Monterey, California (October 2002)
Arora, A., Gouda, M.G.: Distributed reset. IEEE Transactions on Computers (1994)
Kulkarni, S.S., Biyani, K.N., Arumugam, U.: Composing distributed fault-tolerance components. In: Proccedings of the International Conference on Dependable Systems and Networks (DSN), Workshop on Principles of Dependable Systems, vol. Supplemental, June 2003, pp. W127–W136 (2003)
Gray, J.: Notes on data base operating systems. In: Operating Systems, An Advanced Course, pp. 393–481. Springer, Heidelberg (1978)
Kulkarni, S., Biyani, K.: Correctness of component-based adaptation. In: Proceedings of International Symposium on Component-based Software Engineering (May 2004)
Kramer, J., Magee, J.: The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)
Chen, W.-K., Hiltunen, M.A., Schlichting, R.D.: Constructing adaptive software in distributed systems. In: Proc. of the 21st International Conference on Distributed Computing Systems, Mesa, AZ, April 16-19 (2001)
Appavoo, J., Hui, K., Soules, C.A.N., et al.: Enabling autonomic behavior in systems software with hot swapping. IBM System Journal 42(1), 60 (2003)
Amano, N., Watanabe, T.: A software model for flexible and safe adaptation of mobile code programs. In: Proceedings of the international workshop on Principles of software evolution, pp. 57–61. ACM Press, New York (2002)
Kramer, J., Magee, J., Sloman, M.: Configuring distributed systems. In: Proceedings of the 5th workshop on ACM SIGOPS European workshop, pp. 1–5. ACM Press, New York (1992)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I. Information and Computation 100(1), 1–40 (1992)
Kramer, J., Magee, J.: Analysing dynamic change in software architectures: a case study. In: Proc. of 4th IEEE international conference on configuratble distributed systems, Annapolis (May 1998)
Taylor, R.N., Medvidovic, N., Anderson, K.M., Whitehead Jr., E.J., Robbins, J.E.: A component- and message-based architectural style for GUI software. In: Proceedings of the 17th international conference on Software engineering, pp. 295–304. ACM Press, New York (1995)
Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: Proceedings of the 20th international conference on Software engineering, pp. 177–186. IEEE Computer Society, Los Alamitos (1998)
Zhang, J., Cheng, B.H.: Specifying adaptation semantics. In: Proceedings of ICSE 2005 Workshop on Architecting Dependable Systems, St. Louis, Missouri (May 2005), accepted for publication
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zhang, J., Cheng, B.H.C., Yang, Z., McKinley, P.K. (2005). Enabling Safe Dynamic Component-Based Software Adaptation. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems III. Lecture Notes in Computer Science, vol 3549. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11556169_9
Download citation
DOI: https://doi.org/10.1007/11556169_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28968-5
Online ISBN: 978-3-540-31648-0
eBook Packages: Computer ScienceComputer Science (R0)