Skip to main content

On Patterns for Decentralized Control in Self-Adaptive Systems

  • Chapter
Software Engineering for Self-Adaptive Systems II

Abstract

Self-adaptation is typically realized using a control loop. One prominent approach for organizing a control loop in self-adaptive systems is by means of four components that are responsible for the primary functions of self-adaptation: Monitor, Analyze, Plan, and Execute, together forming a MAPE loop. When systems are large, complex, and heterogeneous, a single MAPE loop may not be sufficient for managing all adaptation in a system, so multiple MAPE loops may be introduced. In self-adaptive systems with multiple MAPE loops, decisions about how to decentralize each of the MAPE functions must be made. These decisions involve how and whether the corresponding functions from multiple loops are to be coordinated (e.g., planning components coordinating to prepare a plan for an adaptation). To foster comprehension of self-adaptive systems with multiple MAPE loops and support reuse of known solutions, it is crucial that we document common design approaches for engineers. As such systematic knowledge is currently lacking, it is timely to reflect on these systems to: (a) consolidate the knowledge in this area, and (b) to develop a systematic approach for describing different types of control in self-adaptive systems. We contribute with a simple notation for describing interacting MAPE loops, which we believe helps in achieving (b), and we use this notation to describe a number of existing patterns of interacting MAPE loops, to begin to fulfill (a). From our study, we outline numerous remaining research challenges in this area.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andersson, J., de Lemos, R., Malek, S., Weyns, D.: Modeling Dimensions of Self-Adaptive Software Systems. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Self-Adaptive Systems. LNCS, vol. 5525, pp. 27–47. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  2. Arkin, R.: Bahavior-Based Robotics (1998)

    Google Scholar 

  3. Babaoglu, O., Canright, G., Deutsch, A., Caro, G.A.D., Ducatelle, F., Gambardella, L.M., Ganguly, N., Jelasity, M., Montemanni, R., Montresor, A., Urnes, T.: Design patterns from biology for distributed computing. ACM Trans. Auton. Adapt. Syst. 1, 26–66 (2006)

    Article  Google Scholar 

  4. Brittenham, P., Cutlip, R.R., Draper, C., Miller, B.A., Choudhary, S., Perazolo, M.: It service management architecture and autonomic computing. IBM Syst. J. 46, 565–581 (2007), http://dx.doi.org/10.1147/sj.463.0565

    Article  Google Scholar 

  5. Brun, Y., Medvidovic, N.: An architectural style for solving computationally intensive problems on large networks. In: Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2007), Minneapolis, MN, USA (May 2007)

    Google Scholar 

  6. Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing, vol. 4. Wiley, Chichester (2007)

    Google Scholar 

  7. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture, A System of Patterns, vol. 1. Wiley, Chichester (1996)

    Google Scholar 

  8. Cardellini, V., Casalicchio, E., Grassi, V., Lo Presti, F.: Adaptive Management of Composite Services under Percentile-Based Service Level Agreements. In: Maglio, P.P., Weske, M., Yang, J., Fantinato, M. (eds.) ICSOC 2010. LNCS, vol. 6470, pp. 381–395. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  9. Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J., Andersson, J., Becker, B., Bencomo, N., Brun, Y., Cukic, B., Di Marzo Serugendo, G., Dustdar, S., Finkelstein, A., Gacek, C., Geihs, K., Grassi, V., Karsai, G., Kienle, H.M., Kramer, J., Litoiu, M., Malek, S., Mirandola, R., Müller, H.A., Park, S., Shaw, M., Tichy, M., Tivoli, M., Weyns, D., Whittle, J.: Software Engineering for Self-Adaptive Systems: A Research Roadmap. In: Cheng, B.H.C., de Lemos, R., Giese, H., Inverardi, P., Magee, J. (eds.) Software Engineering for Self-Adaptive Systems. LNCS, vol. 5525, pp. 1–26. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  10. Cheng, S.W., Garlan, D., Schmerl, B.R.: Evaluating the effectiveness of the rainbow self-adaptive system. In: SEAMS, pp. 132–141 (2009)

    Google Scholar 

  11. Dobson, S., Denazis, S., Fernndez, A., Gati, D., Gelenbe, E., Massacci, F., Nixon, P., Saffre, F., Schmidt, N., Zambonelli, F.: A survey of autonomic communications. ACM Transactions Autonomous Adaptive Systems (TAAS) 1(2), 223–259 (2006)

    Article  Google Scholar 

  12. Dowling, J., Cahill, V.: The K-Component Architecture Meta-model for Self-Adaptive Software. In: Matsuoka, S. (ed.) Reflection 2001. LNCS, vol. 2192, pp. 81–88. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  13. Esfahani, N., Kouroshfar, E., Malek, S.: Taming uncertainty in self-adaptive software. In: SIGSOFT FSE, pp. 234–244 (2011)

    Google Scholar 

  14. Esfahani, N., Malek, S.: On the Role of Architectural Styles in Improving the Adaptation Support of Middleware Platforms. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 433–440. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  15. Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. Journal of the ACM 32(2), 374–382 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  16. Gambi, A., Pezzè, M., Young, M.: SLA protection models for virtualized data centers. In: Proc. of the Int. Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS (2009)

    Google Scholar 

  17. Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37, 46–54 (2004)

    Article  Google Scholar 

  18. Georgiadis, I., Magee, J., Kramer, J.: Self-Organising Software Architectures for Distributed Systems. In: 1st Workshop on Self-Healing Systems. ACM, New York (2002)

    Google Scholar 

  19. Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 51–59 (2002), http://doi.acm.org/10.1145/564585.564601

    Article  Google Scholar 

  20. Goeschka, K.M., Froihofer, L., Dustdar, S.: What soa can do for software dependability. In: Workshop on Architecting Dependable Systems (WADS 2008), Supplemental Proceedings of the 38th IEEE International Conference on Dependable Systems and Networks (DSN 2008), pp. D4–D9. IEEE Computer Society (2008)

    Google Scholar 

  21. Gomaa, H., Hussein, M.: Software reconfiguration patterns for dynamic evolution of software architectures. In: Proceedings of Fourth Working IEEE/IFIP Conference on Software Architecture, WICSA 2004, pp. 79–88 (2004)

    Google Scholar 

  22. Gomaa, H., Hashimoto, K., Kim, M., Malek, S., Menascé, D.A.: Software adaptation patterns for service-oriented architectures. In: Proceedings of the 2010 ACM Symposium on Applied Computing, SAC 2010, pp. 462–469. ACM, New York (2010)

    Google Scholar 

  23. Hebig, R., Giese, H., Becker, B.: Making control loops explicit when architecting self-adaptive systems. In: Proceeding of the Second International Workshop on Self-organizing Architectures, SOAR 2010, pp. 21–28. ACM, New York (2010)

    Google Scholar 

  24. Huebscher, M.C., McCann, J.A.: A survey of autonomic computing–degrees, models, and applications. ACM Computing Surveys 40, 7:1–7:28 (2008), http://doi.acm.org/10.1145/1380584.1380585

  25. IBM: An architectural blueprint for autonomic computing. Tech. rep., IBM (January 2006)

    Google Scholar 

  26. Jackson, M.: The meaning of requirements. Ann. Softw. Eng. 3, 5–21 (1997), http://dl.acm.org/citation.cfm?id=590564.590577

    Article  Google Scholar 

  27. Jung, G., Hiltunen, M.A., Joshi, K.R., Schlichting, R.D., Pu, C.: Mistral: Dynamically managing power, performance, and adaptation cost in cloud infrastructures. In: Proceedings of the 2010, IEEE 30th International Conference on Distributed Computing Systems, ICDCS 2010, pp. 62–73 (2010)

    Google Scholar 

  28. Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)

    Article  MathSciNet  Google Scholar 

  29. Kircher, M., Jain, P.: Pattern-Oriented Software Architecture. Patterns for Resource Management, vol. 3. Wiley, Chichester (2004)

    Google Scholar 

  30. Kramer, J., Magee, J.: The evolving philosophers problem: Dynamic change management. IEEE Trans. Softw. Eng. 16, 1293–1306 (1990), http://dl.acm.org/citation.cfm?id=93658.93672

    Article  Google Scholar 

  31. Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: FOSE 2007: 2007 Future of Software Engineering, pp. 259–268. IEEE Computer Society, Washington, DC (2007)

    Google Scholar 

  32. Leymann, F.: Combining Web Services and the Grid: Towards Adaptive Enterprise Applications. In: Castro, J., Teniente, E. (eds.) First International Workshop on Adaptive and Self-Managing Enterprise Applications (ASMEA 2005) - CAiSE Workshop, pp. 9–21. FEUP Edi cões (June 2005)

    Google Scholar 

  33. Litoiu, M., Woodside, M., Zheng, T.: Hierarchical model-based autonomic control of software systems. In: Proceedings of the 2005 Workshop on Design and Evolution of Autonomic Application Software, DEAS 2005, pp. 1–7. ACM (2005)

    Google Scholar 

  34. Maes, P.: Computional reflection. Ph.D. thesis, Vrije Universiteit (1987)

    Google Scholar 

  35. Malek, S., Beckman, N., Mikic-Rakic, M., Medvidovíc, N.: A Framework for Ensuring and Improving Dependability in Highly Distributed Systems. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds.) Architecting Dependable Systems III. LNCS, vol. 3549, pp. 173–193. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  36. Malek, S., Mikic-Rakic, M., Medvidovic, N.: A decentralized redeployment algorithm for improving the availability of distributed systems. In: 3rd International Conference on Component Deployment, Grenoble, France (November 2005)

    Google Scholar 

  37. Manson, S.M.: Simplifying complexity: a review of complexity theory. Geoforum 32(3), 405–414 (2001)

    Article  Google Scholar 

  38. Müller, H., Pezzè, M., Shaw, M.: Visibility of control in adaptive systems. In: Proceedings of the 2nd International Workshop on Ultra-large-scale Software-intensive Systems, ULSSIS 2008, pp. 23–26. ACM, New York (2008), http://doi.acm.org/10.1145/1370700.1370707

    Chapter  Google Scholar 

  39. OASIS, http://www.oasis-open.org

  40. Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. IEEE Intelligent Systems 14, 54–62 (1999), http://dx.doi.org/10.1109/5254.769885

    Article  Google Scholar 

  41. Pereira, J., Oliveira, R.: The mutable consensus protocol. In: Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems, pp. 218–227. IEEE Computer Society (October 2004)

    Google Scholar 

  42. Ramirez, A.J., Cheng, B.H.C.: Design patterns for developing dynamically adaptive systems. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2010, pp. 49–58. ACM, New York (2010)

    Chapter  Google Scholar 

  43. Salehie, M., Tahvildari, L.: Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst. 4(2), 1–42 (2009)

    Article  Google Scholar 

  44. Schloss Dagstuhl Seminar 10431, Wadern, Germany: Software Engineering for Self-Adaptive Systems (October 2010), http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=10431

  45. Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture. Patterns for Concurrent and Networked Objects, vol. 2. Wiley, Chichester (2000)

    MATH  Google Scholar 

  46. Shaw, M.: Beyond objects. ACM SIGSOFT Software Engineering Notes (SEN) 20(1), 27–38 (1995)

    Article  Google Scholar 

  47. Shaw, M., Clements, P.: The golden age of software architecture. IEEE Softw. 23, 31–39 (2006), http://dl.acm.org/citation.cfm?id=1128592.1128707

    Article  Google Scholar 

  48. Sykes, D., Magee, J., Kramer, J.: Flashmob: distributed adaptive self-assembly. In: Proceeding of the 6th International Symposium on Software Engineering for Adaptive and Self-managing Systems, SEAMS 2011, pp. 100–109. ACM, New York (2011), http://doi.acm.org/10.1145/1988008.1988023

    Google Scholar 

  49. Tanenbaum, A.S., van Steen, M.: Distributed Systems: Principles and Paradigms, 2nd edn. Prentice-Hall, Inc., Upper Saddle River (2006)

    MATH  Google Scholar 

  50. Toffetti, G., Gambi, A., Pezzè, M., Pautasso, C.: Engineering Autonomic Controllers for Virtualized Web Applications. In: Benatallah, B., Casati, F., Kappel, G., Rossi, G. (eds.) ICWE 2010. LNCS, vol. 6189, pp. 66–80. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  51. Van Dyke Parunak, H., Brueckner, S.A., Sauter, J.A., Matthews, R.: Global convergence of local agent behaviors. In: Proceedings of the Fourth International Joint Conference on Autonomous Agents and Multiagent Systems, AAMAS 2005, pp. 305–312. ACM, New York (2005)

    Chapter  Google Scholar 

  52. Villegas, N.M., Müller, H.A., Tamura, G., Duchien, L., Casallas, R.: A framework for evaluating quality-driven self-adaptive software systems. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2011, pp. 80–89. ACM, New York (2011), http://doi.acm.org/10.1145/1988008.1988020

    Google Scholar 

  53. Vromant, P., Weyns, D., Malek, S., Andersson, J.: On interacting control loops in self-adaptive systems. In: Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2011), Honolulu, Hawaii (2011)

    Google Scholar 

  54. Wegner, P.: Why interaction is more powerful than algorithms. Commun. ACM 40(5), 80–91 (1997)

    Article  Google Scholar 

  55. Weyns, D., Iftakhir, M.U., Malek, S., Andersson, J.: Claims and supporting evidence for self-adaptive systems: A literature review. In: Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2012. ACM, New York (2012)

    Google Scholar 

  56. Weyns, D., Malek, S., Andersson, J.: On decentralized self-adaptation: lessons from the trenches and challenges for the future. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, SEAMS 2010, pp. 84–93. ACM, New York (2010), http://doi.acm.org/10.1145/1808984.1808994

    Chapter  Google Scholar 

  57. Weyns, D., Malek, S., Andersson, J.: Forms: Unifying reference model for formal specification of distributed self-adaptive systems. ACM Transactions on Autonomous and Adaptive Systems, Special Issue on Formal Methods for Pervasive, Self-Aware, and Context-Aware Systems 7(1) (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Weyns, D. et al. (2013). On Patterns for Decentralized Control in Self-Adaptive Systems. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds) Software Engineering for Self-Adaptive Systems II. Lecture Notes in Computer Science, vol 7475. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35813-5_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35813-5_4

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35812-8

  • Online ISBN: 978-3-642-35813-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics