skip to main content
research-article

Self-adaptive software: Landscape and research challenges

Published:21 May 2009Publication History
Skip Abstract Section

Abstract

Software systems dealing with distributed applications in changing environments normally require human supervision to continue operation in all conditions. These (re-)configuring, troubleshooting, and in general maintenance tasks lead to costly and time-consuming procedures during the operating phase. These problems are primarily due to the open-loop structure often followed in software development. Therefore, there is a high demand for management complexity reduction, management automation, robustness, and achieving all of the desired quality requirements within a reasonable cost and time range during operation. Self-adaptive software is a response to these demands; it is a closed-loop system with a feedback loop aiming to adjust itself to changes during its operation. These changes may stem from the software system's self (internal causes, e.g., failure) or context (external events, e.g., increasing requests from users). Such a system is required to monitor itself and its context, detect significant changes, decide how to react, and act to execute such decisions. These processes depend on adaptation properties (called self-* properties), domain characteristics (context information or models), and preferences of stakeholders. Noting these requirements, it is widely believed that new models and frameworks are needed to design self-adaptive software. This survey article presents a taxonomy, based on concerns of adaptation, that is, how, what, when and where, towards providing a unified view of this emerging area. Moreover, as adaptive systems are encountered in many disciplines, it is imperative to learn from the theories and models developed in these other areas. This survey article presents a landscape of research in self-adaptive software by highlighting relevant disciplines and some prominent research projects. This landscape helps to identify the underlying research gaps and elaborates on the corresponding challenges.

References

  1. Abdelwahed, S., Kandasamy, N., and Neema, S. 2004. A control-based framework for self-managing distributed computing systems. In Proceedings of the Workshop on Self-Healing Systems. 3--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Al-Nashif, Y., Kumar, A., Hariri, S., Luo, Y., Szidarovsky, F., and Qu, G. 2008. Multi-Level Intrusion Detection System (ML-IDS). In Proceedings of the International Conference on Autonomic Computing. 131--140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Alur, D., Crupi, J., and Malks, D. 2001. Core J2EE Patterns: Best Practices and Design Strategies. Prentice-Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Aly, W. H. F. and Lutfiyya, H. 2007. Dynamic adaptation of policies in data center management. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems & Networks. 266--272. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Amoui, M., Salehie, M., Mirarab, S., and Tahvildari, L. 2008. Adaptive action selection in autonomic software using reinforcement learning. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 175--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Appleby, K., Fakhouri, S., Fong, L., Goldszmidt, G., Kalantar, M., Krishnakumar, S., Pazel, D., Pershing, J., and Rochwerger, B. 2001. Oceano—SLA-based management of a computing utility. In Proceedings of the IFIP/IEEE International Symposium on Integrated Network Management. 855--868.Google ScholarGoogle Scholar
  7. Arshad, N., Heimbigner, D., and Wolf, A. 2003. Deployment and dynamic reconfiguration planning for distributed software systems. In Proceedings of the IEEE Conference on Tools with Artificial Intelligence. 39--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Asadollahi, R., Salehie, M., and Tahvildari, L. 2009. Starmx: A framework for developing self-managing java-based systems. In Proceedings of the ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems. TBA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Babaoglu, O., Canright, G., Deutsch, A., Caro, G. A. D., Ducatelle, F., Gambardella, L. M., Ganguly, N., Jelasity, M., Montemanni, R., Montresor, A., and Urnes, T. 2006. Design patterns from biology for distributed computing. ACM Trans. Autonom. Adapt. Syst. 1, 1, 26--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Babaoglu, O., Jelasity, M., Montresor, A., Fetzer, C., Leonardi, S., van Moorsel, A., and van Steen, M. 2005. Self-Star Properties in Complex Information Systems: Conceptual and Practical Foundations (Lecture Notes in Computer Science). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Badr, N., Taleb-Bendiab, A., and Reilly, D. 2004. Policy-based autonomic control service. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems and Networks. 99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Bantz, D. F., Bisdikian, C., Challener, D., Karidis, J. P., Mastrianni, S., Mohindra, A., Shea, D. G., and Vanover, M. 2003. Autonomic personal computing. IBM Syst. J. 42, 1, 165--176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Bernon, C., Gleizes, M., Peyruqueou, S., and Picard, G. 2003. Adelfe: A methodology for adaptive multi-agent systems engineering. Engineering Societies in the Agents World III. Lecture Notes in Computer Science, vol. 2577. 156--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Bhat, V., Parashar, M., Liu, H., Khandekar, M., Kandasamy, N., and Abdelwahed, S. 2006. Enabling self-managing applications using model-based online control strategies. In Proceedings of the IEEE International Conference on Autonomic Computing. 15--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Bigus, J. P., Schlosnagle, D. A., Pilgrim, J. R., Mills, W. N., and Diao, Y. 2002. Able: A toolkit for building multiagent autonomic systems. IBM Syst. J. 41, 3, 350--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Birman, K., van Renesse, R., and Vogels, W. 2004. Adding high availability and autonomic behavior to web services. In Proceedings of the International Conference on Software Engineering. 17--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Boutilier, C., Das, R., Kephart, J. O., and Walsh, W. E. 2003. Towards cooperative negotiation for decentralized resource allocation in autonomic computing systems. In Proceedings of the International Joint Conference on Artificial Intelligence. 1458--1459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Bradbury, J. S., Cordy, J. R., Dingel, J., and Wermelinger, M. 2004. A survey of self-management in dynamic software architecture specifications. In Proceedings of the ACM Workshop on Self-Managed Systems. 28--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Brown, A., Kar, G., and Keller, A. 2001. An active approach to characterizing dynamic dependencies for problem determination in a distributed environment. In Proceedings of the Integrated Network Management. 377--390.Google ScholarGoogle Scholar
  20. Buckley, J., Mens, T., Zenger, M., Rashid, A., and Kniesel, G. 2005. Towards a taxonomy of software change. J. Softw. Maint. Evol. Res. Prac. 309--332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. 1996. A System of Patterns—Pattern Oriented Software Architecture. Wiley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Candea, G., Cutler, J., and Fox, A. 2004. Improving availability with recursive microreboots: a soft-state system case study. Perform. Eval. 56, 1--4, 213--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Candea, G., Kiciman, E., Kawamoto, S., and Fox, A. 2006. Autonomous recovery in componentized internet applications. Cluster Comput. 9, 1, 175--190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Cardellini, V., Colajanni, M., and Yu, P. 1999. Dynamic load balancing on Web-server systems. IEEE Intern. Comput. 3, 3, 28--39. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Carzaniga, A., Rosenblum, D. S., and Wolf, A. L. 2001. Design and evaluation of a wide-area event notification service. ACM Trans. Comput. Syst. 19, 3, 332--383. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Cheng, S.-W., Garlan, D., and Schmerl, B. 2006. Architecture-based self-adaptation in the presence of multiple objectives. In Proceedings of the Workshop on Self-Adaptation and Self-Managing Systems. 2--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Cim. Common information model standard. http://www.dmtf.org/standards/cim/.Google ScholarGoogle Scholar
  28. de Lemos, R. and Fiadeiro, J. L. 2002. An architectural support for self-adaptive software for treating faults. In Proceedings of the Workshop on Self-healing Systems. 39--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Diaconescu, A., Mos, A., and Murphy, J. 2004. Automatic performance management in component based software systems. In Proceedings of the International Conference on Autonomic Computing. 214--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Dilman, M. and Raz, D. 2002. Efficient reactive monitoring. IEEE J. Select. Areas Comm. 20, 4, 668--676. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Dobson, S., Denazis, S., Fernández, A., Gaïti, D., Gelenbe, E., Massacci, F., Nixon, P., Saffre, F., Schmidt, N., and Zambonelli, F. 2006. A survey of autonomic communications. ACM Trans. Autonom. Adapt. Syst. 1, 2, 223--259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Dowling, J. 2004. The decentralised coordination of self-adaptive components for autonomic distributed systems. Ph.D. thesis, Department of Computer Science, Trinity College Dublin.Google ScholarGoogle Scholar
  33. Dowling, J. and Cahill, V. 2004. Self-managed decentralised systems using K-components and collaborative reinforcement learning. In Proceedings of the ACM Workshop on Self-Managed Systems. 39--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Duzan, G., Loyall, J. P., Schantz, R. E., Shapiro, R., and Zinky, J. A. 2004. Building adaptive distributed applications with middleware and aspects. In Proceedings of the International Conference on Aspect-Oriented Software Development. 66--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Floch, J., Hallsteinsen, S., Stav, E., Eliassen, F., Lund, K., and Gjørven, E. 2006. Using architecture models for runtime adaptability. IEEE Softw. 62--70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Ganek, A. G. and Corbi, T. A. 2003. The dawning of the autonomic computing era. IBM Syst. J., Special Issue on Autonomic Computing 42, 5--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Garlan, D., Cheng, S.-W., Huang, A.-C., Schmerl, B., and Steenkiste, P. 2004. Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37, 10, 46--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Garlan, D. and Schmerl, B. 2002. Model-based adaptation for self-healing systems. In Proceedings of the Workshop on Self-Healing Systems. 27--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Georgas, J. C., van der Hoek, A., and Taylor, R. N. 2005. Architectural runtime configuration management in support of dependable self-adaptive software. In Proceedings of the Workshop on Architecting Dependable Systems. 1--6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Gjorven, E., Eliassen, F., and Aagedal, J. O. 2006. Quality of adaptation. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 9--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Greenwood, P. and Blair, L. 2004. Using dynamic aspect-oriented programming to implement an autonomic system. In Proceedings of the Dynamic Aspects Workshop. 76--88.Google ScholarGoogle Scholar
  43. Hinchey, M. G. and Sterritt, R. 2006. Self-managing software. IEEE Comput. 39, 2, 107--109. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Horn, P. 2001. Autonomic computing: IBM's perspective on the state of information technology. http://www-1.ibm.com/industries/government/doc/content/bin/auto.pdf.Google ScholarGoogle Scholar
  45. Howe, A. E. 1995. Improving the reliability of artificial intelligence planning systems by analyzing their failure recovery. IEEE Trans. Knowl. Data Engin. 7, 1, 14--25. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Huebscher, M. C. and McCann, J. A. 2008. A survey of autonomic computing—degrees, models, and applications. ACM Comput. Surv. 40, 3, 1--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Hutchison, D., Coulson, G., Campbell, A., and Blair, G. S. 1994. Quality of service management in distributed systems. MPG 94-02, Lencater U. 273--302.Google ScholarGoogle Scholar
  48. Ibm. 2005. Autonomic computing toolkit: Developers guide. Tech. Rep. SC30-4083-03.Google ScholarGoogle Scholar
  49. Ibm-ac. 2001. Autonomic computing 8 elements. http://www.research.ibm.com/autonomic/overview/elements.html.Google ScholarGoogle Scholar
  50. Ibm btm. Build to manage tool. http://www.ibm.com/developerworks/eclipse/btm.Google ScholarGoogle Scholar
  51. Ibm ref. arch. 2005. An architectural blueprint for autonomic computing. IBM white paper. http://www-03.ibm.com/autonomic/pdfs/ACBlueprintWhitePaperV7.pdf.Google ScholarGoogle Scholar
  52. Ieee-iso/iec 14764. 2006. Standard for software maintenance - IEEE 14764-2006 - ISO/IEC 14764. URL = http://ieeexplore.ieee.org/iel5/11168/35960/01703974.pdf.Google ScholarGoogle Scholar
  53. Iso/Iec 9126-1. 2001. ISO/IEC 9126-1 Standard: Software Eng. -Product quality - Part 1: Quality model, International Standard Organization, 2001.Google ScholarGoogle Scholar
  54. Jelasity, M., Babaoglu, O., Laddaga, R., Nagpal, R., Zambonelli, F., Sirer, E. G., Chaouchi, H., and Smirnov, M. 2006. Interdisciplinary research: Roles for self-organization. IEEE Intel. Syst. 21, 2, 50--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Kaiser, G. E., Parekh, J., Gross, P., and Valetto, G. 2003. Kinesthetics extreme: An external infrastructure for monitoring distributed legacy systems. In Proceedings of the Active Middleware Services. 22--31.Google ScholarGoogle Scholar
  56. Karamanolis, C., Karlsson, M., and Zhu, X. 2005. Designing controllable computer systems. In Proceedings of the Hot Topics in Operating Systems Workshop. 49--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Karsai, G., Lédeczi, Á., Sztipanovits, J., Péceli, G., Simon, G., and Kovácsházy, T. 2001. An approach to self-adaptive software based on supervisory control. In Proceedings of the International Workshop on Self-Adaptive Software. 24--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Karsai, G. and Sztipanovits, J. 1999. A model-based approach to self-adaptive software. IEEE Intel. Syst. 14, 3, 46--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Keeney, J. and Cahill, V. 2003. Chisel: A policy-driven, context-aware, dynamic adaptation framework. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems and Networks. 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Keeney, R. L. and Raiffa, H. 1976. Decisions with Multiple Objectives. Wiley.Google ScholarGoogle Scholar
  61. Kephart, J. O. 2005. Research challenges of autonomic computing. In Proceedings of the International Conference on Software Engineering 15--22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. IEEE Comput. 36, 1, 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Kephart, J. O. and Walsh, W. 2004. An artificial intelligence perspective on autonomic computing policies. In Proceedings of the IEEE International workshop on Policies for Distributed Systems and Networks. 3--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. King, T. M., Babich, D., Alava, J., Clarke, P. J., and Stevens, R. 2007. Towards self-testing in autonomic computing systems. In Proceedings of the 8th International Symposium on Autonomous Decentralized Systems. 51--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Kokar, M. M., Baclawski, K., and Eracar, Y. A. 1999. Control theory-based foundations of self-controlling software. IEEE Intel. Syst. 14, 3, 37--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Kon, F., Costa, F., Blair, G., and Campbell, R. 2002. The case for reflective middleware. Comm. ACM 45, 6, 33--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Kramer, J. and Magee, J. 1990. The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Engin. 16, 11, 1293--1306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Kramer, J. and Magee, J. 2007. Self-managed systems: an architectural challenge. In Proceedings of the ICSE—Future of Software Engineering. 259--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Kumar, V., Cooper, B., Cai, Z., Eisenhauer, G., and Schwan, K. 2007. Middleware for enterprise scale data stream management using utility-driven self-adaptive information flows. Cluster Comput. 10, 4, 443--455. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Laddaga, R. 1997. Self-adaptive software. Tech. Rep. 98-12, DARPA BAA.Google ScholarGoogle ScholarCross RefCross Ref
  71. Laddaga, R. 1999. Guest editor's introduction: Creating robust software through self-adaptation. IEEE Intel. Syst. 14, 3, 26--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Laddaga, R. 2000. Active software. In Proceedings of the International Workshop on Self-Adaptive Software. 11--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Laddaga, R. 2006. Self adaptive software problems and projects. In Proceedings of the IEEE Workshop on Software Evolvability. 3--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Laddaga, R., Robertson, P., and Shrobe, H. 2000. Introduction to self-adaptive software: Applications. In Proceedings of the International Workshop on Self-Adaptive Software. Lecture Notes in Computer Science, vol. 2614. 1--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Laddaga, R., Robertson, P., and Shrobe, H. E. 2001. Results of the 2nd International workshop on self-adaptive software. In Proceedings of the International Workshop on Self-Adaptive Software. 281--290. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Landauer, C. and Bellman, K. L. 2001. New architectures for constructed complex systems. Appl. Mathe. Comput. 120, 149--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Lapouchnian, A., Liaskos, S., Mylopoulos, J., and Yu, Y. 2005. Towards requirements-driven autonomic systems design. In Proceedings of the Workshop on Design and Evolution of Autonomic App. Software. 1--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Lehman, M. M. 1996. Laws of software evolution revisited. In Proceedings of the European Workshop on Software Process Technology. 108--124. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Lieberherr, K. J. and Palsberg, J. 1993. Engineering adaptive software. Projest Proposal, ftp://ftp.ccs.neu.edu/pub/people/lieber/proposal.ps.Google ScholarGoogle Scholar
  80. Litoiu, M., Woodside, M., and Zheng, T. 2005. Hierarchical model-based autonomic control of software systems. In Proceedings of the Workshop on Design and Evolution of Autonomic Applications Software. 27--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Liu, H., Parashar, M., and Hariri, S. 2004. A component-based programming model for autonomic applications. In Proceedings of the International Conference on Autonomic Computing. 10--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Loyall, J. P., Bakken, D. E., Schantz, R. E., Zinky, J. A., Karr, D. A., Vanegas, R., and Anderson, K. R. 1998. QoS aspect languages and their runtime integration. In Proceedings of the International Workshop on Languages, Compilers, and Run-Time for Scalable Computers. 303--318. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Lutfiyya, H., Molenkamp, G., Katchabaw, M., and Bauer, M. A. 2001. Issues in managing soft QoS requirements in distributed systems using a policy-based framework. In Proceedings of the IEEE International Workshop on Policies for Distributed Systems & Networks. 185--201. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Maes, P. 1990. Situated agents can have goals. Robot. Auton. Syst. 6, 49--70.Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Magee, J. and Kramer, J. 1996. Dynamic structure in software architectures. ACM SIGSOFT Softw. Engin. Notes 21, 6, 3--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. McCann, J. A. and Huebscher, M. C. 2004. Evaluation issues in autonomic computing. In Proceedings of the Conference on Grid and Cooperative Computing Workshops. 597--608.Google ScholarGoogle Scholar
  87. McCann, J. A., Lemos, R. D., Huebscher, M., Rana, O. F., and Wombacher, A. 2006. Can self-managed systems be trusted? some views and trends. Knowl. Engin. Rev. 21, 3, 239--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. McKinley, P. K., Sadjadi, M., Kasten, E. P., and Cheng, B. H. C. 2004. Composing adaptive software. IEEE Comput. 56--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Menascé, D. A. and Bennani, M. N. 2006. Autonomic virtualized environments. In Proceedings of the International Conference on Autonomic and Autonomous Systems. 28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Klein, M., Kazman, R., Bass, L., Carriere, N., Berbacci, H., and Lipson, H. 1999. Attribute-based architectural styles. In Proceedings of the IEEE/IFIP 1st Workshop Conference on Software Architecture. 225--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Morandini, M., Penserini, L., and Perini, A. 2008. Towards goal-oriented development of self-adaptive systems. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. 9--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Mukhija, A. and Glinz, M. 2005. Runtime adaptation of applications through dynamic recomposition of components. In Proceedings of the International Conference on Architecture of Computing Systems. 124--138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Muller, H. A. 2006. Bits of history, challenges for the future and autonomic computing technology. In Proceedings of the Working Conference on Reverese Eng. 9--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Murch, R. 2004. Autonomic Computing. Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Northrop, L. 2006. Ultra-large-scale systems: The software challenges of the future. Tech. rep., Carnegie Mellon University. July. http://www.sei.cmu.edu/uls/.Google ScholarGoogle Scholar
  96. Nowicki, T., Squillante, M. S., and Wu, C. W. 2005. Fundamentals of dynamic decentralized optimization in autonomic computing systems. In Lecture Notes in Computer Science, vol. 3460. 204--218. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Oreizy, P., Gorlick, M. M., Taylor, R. N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D. S., and Wolf, A. L. 1999. An architecture-based approach to self-adaptive software. IEEE Intel. Syst. 14, 3, 54--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. Oreizy, P., Medvidovic, N., and Taylor, R. N. 1998. Architecture-based runtime software evolution. In Proceedings of the International Conference on Software Engineering. 177--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. Parashar, M. and Hariri, S. 2005. Autonomic computing: An overview. Hot Topics, Lecture Notes in Computer Science, vol. 3566, 247--259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Parekh, J., Kaiser, G., Gross, P., and Valetto, G. 2006. Retrofitting autonomic capabilities onto legacy systems. Cluster Comput. 9, 2, 141--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Parnas, D. L. 1985. Software aspects of strategic defense systems. Comm. ACM 28, 12, 1326--1335. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Patrascu, R., Boutilier, C., Das, R., Kephart, J. O., Tesauro, G., and Walsh, W. E. 2005. New approaches to optimization and utility elicitation in autonomic computing. In Proceedings of the Conference on Artificial Intelligence. 140--145. Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Pavlovic, D. 2000. Towards semantics of self-adaptive software. In Proceedings of the International Workshop on Self-Adaptive Software. Lecture Notes in Computer Science, vol. 1936. 65--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Pawlak, R., Seinturier, L., Duchien, L., and Florin, G. 2001. JAC: A flexible solution for aspect-oriented programming in Java. In Proceedings of the Metalevel Architectures and Separation of Crosscutting Concerns. 1--24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. Peltz, C. 2003. Web services orchestration and choreography. IEEE Comput. 36, 10, 46--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Pinto, M., Fuentes, L., Fayad, M., and Troya, J. 2002. Separation of coordination in a dynamic aspect oriented framework. In Proceedings of the International Conference on Aspect-Oriented Software Development. 134--140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. Poladian, V., Sousa, J. P., Garlan, D., and Shaw, M. 2004. Dynamic configuration of resource-aware services. In Proceedings of the 26th International Conference on Software Engineering. IEEE Computer Society, 604--613. Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. Popovici, A., Gross, T., and Alonso, G. 2002. Dynamic weaving for aspect-oriented programming. In Proceedings of the International Conference on Aspect-Oriented Software Development. 141--147. Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. Porcarelli, S., Castaldi, M., Giandomenico, F. D., Bondavalli, A., and Inverardi, P. 2003. A framework for reconfiguration-based fault-tolerance in distributed systems. In Proceedings of the ICSE Workshop on Architecting Dependable Systems II. 167--190.Google ScholarGoogle Scholar
  110. Qu, G. and Hariri, S. 2007. Autonomic Computing: Concepts, Infrastructures, and Applications. CRC, Chapter Anomaly-based self-protection against network attacks, 493--521.Google ScholarGoogle Scholar
  111. Ramadge, P. J. and Wonham, W. M. 1987. Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25, 1, 206--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. Robertson, P. and Laddaga, R. 2005. Model based diagnosis and contexts in self adaptive software. In Proceedings of the Conference on Self-* Properties in Complex Information Systems. 112--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. Robertson, P. and Williams, B. 2006. Automatic recovery from software failure. Comm. ACM 49, 3, 41--47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Russell, D. M., Maglio, P., Dordick, R., and Neti, C. 2003. Dealing with ghosts: Managing the user experience of autonomic computing. IBM Syst. J. 42, 1, 177--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  115. Russell, S. J. and Norvig, P. 1995. Artificial Intelligence: a Modern Approach. Prentice-Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  116. Saab, C. B., Bonnaire, X., and Folliot, B. 2002. Phoenix: A self adaptable monitoring platform for cluster management. Cluster Comput. 5, 1, 75--85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  117. Sadjadi, S. M. and McKinley, P. K. 2004. ACT: An adaptive CORBA template to support unanticipated adaptation. In Proceedings of the International Conference on Distributed Computing Systems. 74--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. Sadjadi, S. M., McKinley, P. K., Cheng, B. H. C., and Stirewalt, R. E. K. 2004. TRAP/J: Transparent generation of adaptable Java programs. Lecture Notes in Computer Science, vol. 3291. 1243--1261.Google ScholarGoogle ScholarCross RefCross Ref
  119. Salehie, M., Li, S., Asadollahi, R., and Tahvildari, L. 2009. Change support in adaptive software: A case study for fine-grained adaptation. In Proceedings of the IEEE Conference and Workshops on Engineering of Autonomic and Autonomous Systems. 35--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  120. Salehie, M., Li, S., and Ladan, T. 2009. Employing aspect composition in adaptive software systems: A case study. In Proceedings of the ACM Practices of Linking Aspect Technology and Evolution Workshop. 17--21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  121. Salehie, M. and Tahvildari, L. 2005a. Autonomic computing: emerging trends and open problems. In Proceedings of the Workshop on Design and Evolution of Autonomic Applications Software. 82--88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. Salehie, M. and Tahvildari, L. 2005b. A policy-based decision making approach for orchestrating autonomic elements. In Proceedings of the IEEE International Workshop on Software Technology and Engineering Practice 173--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  123. Salehie, M. and Tahvildari, L. 2007. A weighted voting mechanism for action selection problem in self-adaptive software. In Proceedings of the IEEE International Conference on Self-Adaptive and Self-Organizing Systems. 328--331. Google ScholarGoogle ScholarDigital LibraryDigital Library
  124. Schmidt, D. C. 2002. Middleware for real-time and embedded systems. Comm. ACM 45, 6, 43--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  125. Schmidt, D. C. and Cleeland, C. 1999. Applying patterns to develop extensible orb middleware. IEEE Comm. Mag. 37, 54--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  126. Scott, J., Neema, S., Bapty, T., and Abbott, B. 2000. Hardware/software runtime environment for dynamically reconfigurable systems. Tech. Rep. ISIS-2000-06, Vanderbilt Univ.Google ScholarGoogle Scholar
  127. Serugendo, G. D. M., Foukia, N., Hassas, S., Karageorgos, A., Mostéfaoui, S. K., Rana, O. F., Ulieru, M., Valckenaers, P., and van Aart, C. 2003. Self-organisation: Paradigms and app. In Proceedings of the Engineering Self-Organising Applications Workshop. 1--19.Google ScholarGoogle Scholar
  128. Shiftone jrat. JRat (Java Runtime Analysis Toolkit). http://jrat.sourceforge.net/.Google ScholarGoogle Scholar
  129. Sloman, M. 1994. Policy driven management for distributed systems. J. Netw. Syst. Manage. 2, 4.Google ScholarGoogle ScholarCross RefCross Ref
  130. Smith, D., Morris, E., and Carney, D. 2005. Interoperability issues affecting autonomic computing. In Proceedings of the Workshop on Design and Evolution of Autonomic App. Software. 89--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  131. Srivastava, B. and Kambhampati, S. 2005. The case for automated planning in autonomic computing. In Proceedings of the International Conference on Automatic Computing. 331--332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  132. Sterritt, R. 2003. Autonomic computing: the natural fusion of soft computing and hard computing. In Proceedings of the IEEE International Conference on Systems, Management and Cybernetics. vol. 5. 4754--4759.Google ScholarGoogle ScholarCross RefCross Ref
  133. Sterritt, R. and Bustard, D. W. 2003. Autonomic computing—a means of achieving dependability? In Proceedings of the IEEE Symposium and Workshops on Engineering of Computer-Based Systems 247--251.Google ScholarGoogle Scholar
  134. Sterritt, R., Parashar, M., Tianfield, H., and Unland, R. 2005. A concise introduction to autonomic computing. Adv. Eng. Informatics 19, 181--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  135. Subramanian, N. and Chung, L. 2001. Software architecture adaptability: An nfr approach. In Proceedings of the International Workshop on Principles of Software Evolution. 52--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  136. Suvée, D., Vanderperren, W., and Jonckers, V. 2003. JAsCo: an aspect-oriented approach tailored for component based software development. In Proceedings of the 2nd International Conference on Aspect-Oriented Software Development. 21--29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  137. Tanenbaum, A. S. and Woodhull, A. S. 2006. Operating Systems: Design and Implementation, Third ed. Pearson Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  138. Tesauro, G. 2007. Reinforcement learning in autonomic computing: A manifesto and case studies. IEEE Inter. Comput. 11, 1, 22--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  139. Tesauro, G., Chess, D. M., Walsh, W. E., Das, R., Segal, A., Whalley, I., Kephart, J. O., and White, S. R. 2004. A multi-agent systems approach to autonomic computing. In Proceedings of the International Conference on Autonomous Agents and Multiagent Systems. 464--471. Google ScholarGoogle ScholarDigital LibraryDigital Library
  140. Tuttle, S., Batchellor, V., Hansen, M. B., and Sethuraman, M. 2003. Centralized risk management using tivoli risk manager 4.2. Tech. rep., IBM Tivoli Software.Google ScholarGoogle Scholar
  141. Tziallas, G. and Theodoulidis, B. 2004. A controller synthesis algorithm for building self-adaptive software. Inform. Softw. Tech. 46, 11, 719--727.Google ScholarGoogle ScholarCross RefCross Ref
  142. Valetto, G. and Kaiser, G. 2003. Using process technology to control and coordinate software adaptation. In Proceedings of the International Conference on Software Engineering 262--273. Google ScholarGoogle ScholarDigital LibraryDigital Library
  143. Verma, K. and Sheth, A. P. 2005. Autonomic web processes. In Proceedings of the International Conference on Service-Oriented Computing. Lecture Notes in Computer Science, vol. 3826. 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  144. Walsh, W. E., Tesauro, G., Kephart, J. O., and Das, R. 2004. Utility functions in autonomic systems. In Proceedings of the IEEE Conference on Autonomic Computing. 70--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  145. Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., Quinn, B., Perry, J., Herzog, S., Huynh, A.-N., and Carlson, M. 2000. Policy terminology. IETF, Internet Draft draftietf-policy-terminology-00.txt.Google ScholarGoogle Scholar
  146. Weyns, D., Schelfthout, K., and Holvoet, T. 2005. Architectural design of a distributed application with autonomic quality requirements. SIGSOFT Softw. Engin. Notes 30, 4, 1--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  147. White, J., Schmidt, D. C., and Gokhale, A. S. 2005. Simplifying autonomic enterprise java bean applications via model-driven development: A case study. In Proceedings of the International Conference on Model Driven Engineering Languages and Systems 601--615. Google ScholarGoogle ScholarDigital LibraryDigital Library
  148. Willebeek-LeMair, M., Reeves, A., Center, I., and Heights, Y. 1993. Strategies for dynamic load balancing on highly parallel computers. IEEE Trans. Parall. Distrib. Syst. 4, 9, 979--993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  149. Woodside, C. M. and Menascé, D. A. 2006. Guest editors' introduction: Application-level QoS. IEEE Intern. Comput. 10, 3, 13--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  150. Zhang, J. 2007. A formal approach to providing assurance to dynamically adaptive software. Ph.D. thesis, Michigan State University. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Self-adaptive software: Landscape and research challenges

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Autonomous and Adaptive Systems
                  ACM Transactions on Autonomous and Adaptive Systems  Volume 4, Issue 2
                  May 2009
                  155 pages
                  ISSN:1556-4665
                  EISSN:1556-4703
                  DOI:10.1145/1516533
                  Issue’s Table of Contents

                  Copyright © 2009 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 21 May 2009
                  • Accepted: 1 March 2009
                  • Revised: 1 January 2008
                  • Received: 1 May 2007
                  Published in taas Volume 4, Issue 2

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article
                  • Research
                  • Refereed

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader