Model-Based Recovery and Adaptation Connectors: Design and Experimentation

  • Emad Albassam
  • Hassan GomaaEmail author
  • Daniel A. Menascé
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 743)


This paper describes the design of model-based Recovery and Adaptation Connectors (RAC) that handle recovery and adaptation concerns of services in service-oriented architectures. When a service needs to be dynamically adapted, RAC ensures that the service first transitions to a quiescent state before it is replaced with a new service. When a service recovers from a run-time failure, RAC ensures that transactions that have been interrupted due to service failure are aborted and then restarted with the recovered service. Thus, RAC ensures that no transactions are lost due to dynamic service adaptation or failure. The design of the RAC is based on the autonomic computing MAPE-K loop model and handles both stateless and stateful services. Our approach has been validated through experimentation of planned failure and adaptation scenarios.


Self-adaptation Self-configuration Self-healing Dynamic Software adaptation Autonomic computing Component recovery Recovery patterns Adaptation patterns Mape-K loop model Recovery connectors Adaptation connectors State machines 



This work is partially supported by the AFOSR award FA9550-16-1-0030.


  1. 1.
    Gomaa, H.: Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge University Press, Cambridge (2011)CrossRefGoogle Scholar
  2. 2.
    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, pp. 462–469. ACM, New York (2010)Google Scholar
  3. 3.
    Gomaa, H., Hashimoto, K.: Dynamic self-adaptation for distributed service-oriented transactions. In: Proceedings of the 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. IEEE Press, Piscataway (2012)Google Scholar
  4. 4.
    Albassam, E., Gomaa, H., Menascé, D.A.: Model-based recovery connectors for self-adaptation and self-healing. In: Maciaszek, L.A., Cardoso, J.S., Ludwig, A., van Sinderen, M., Cabello, E. (eds.) Proc of the 11th International Joint Conference on Software Technologies (ICSOFT 2016) - ICSOFT-EA, Lisbon, Portugal, 24–26 July 2016, vol. 1. SciTePress (2016)Google Scholar
  5. 5.
    Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing, 2nd edn. Morgan Kaufmann, Burlington (2009)zbMATHGoogle Scholar
  6. 6.
    Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer. 36, 41–50 (2003)CrossRefGoogle Scholar
  7. 7.
    Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)Google Scholar
  8. 8.
    Gomaa, H., Hussein, M.: Software reconfiguration patterns for dynamic evolution of software architectures. In: Fourth Working IEEE/IFIP Conference on Software Architecture (2004)Google Scholar
  9. 9.
    Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16, 1293–1306 (1990)CrossRefGoogle Scholar
  10. 10.
    Avizienis, A., Laprie, J.-C., Randell, B., Landwehr, C.: Basic concepts and taxonomy of dependable and secure computing. IEEE Trans. Dependable Secure Comput. 1, 11–33 (2004)CrossRefGoogle Scholar
  11. 11.
    Lemos, R., Giese, H., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: Lemos, R., Giese, H., Müller, Hausi A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-35813-5_1CrossRefGoogle Scholar
  12. 12.
    Krupitzer, C., Roth, F.M., VanSyckel, S., Schiele, G., Becker, C.: A survey on engineering approaches for self-adaptive systems. Pervasive Mob. Comput. 17, 184–206 (2015)CrossRefGoogle Scholar
  13. 13.
    Schneider, C., Barker, A., Dobson, S.: A survey of self-healing systems frameworks. Softw. Pract. Exp. 45, 1375–1398 (2015)CrossRefGoogle Scholar
  14. 14.
    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, pp. 49–58. ACM, New York (2010)Google Scholar
  15. 15.
    Li, G., Han, Y., Zhao, Z., Wang, J., Wagner, R.M.: Facilitating dynamic service compositions by adaptable service connectors. Int. J. Web Serv. Res. 3, 68–84 (2006)CrossRefGoogle Scholar
  16. 16.
    Huebscher, M.C., McCann, J.A.: A survey of autonomic computing-degrees, models, and applications. ACM Comput. Surv. 40, 7:1–7:28 (2008)CrossRefGoogle Scholar
  17. 17.
    Silva, L.M., Alonso, J., Torres, J.: Using Virtualization to Improve Software Rejuvenation. IEEE Trans. Comput. 58, 1525–1538 (2009)MathSciNetCrossRefGoogle Scholar
  18. 18.
    Magalhães, J.P., Silva, L.M.: SHÕWA: a self-healing framework for web-based applications. ACM Trans. Auton. Adapt. Syst. 10, 4:1–428 (2015)CrossRefGoogle Scholar
  19. 19.
    Bruning, S., Weissleder, S., Malek, M.: A fault taxonomy for service-oriented architecture. In: 10th IEEE High Assurance Systems Engineering Symposium, HASE 2007 (2007)Google Scholar
  20. 20.
    Danilecki, A., Hołenko, M., Kobusińska, A., Szychowiak, M., Zierhoffer, P.: Applying message logging to support fault-tolerance of SOA systems. Found. Comput. Decis. Sci. 38, 145–158 (2013)CrossRefGoogle Scholar
  21. 21.
    Subramanian, S., Thiran, P., Narendra, N.C., Mostefaoui, G.K., Maamar, Z.: On the Enhancement of BPEL engines for self-healing composite web services. In: International Symposium on Applications and the Internet. SAINT 2008, pp. 33–39 (2008)Google Scholar
  22. 22.
    Modafferi, S., Conforti, E.: Methods for enabling recovery actions in Ws-BPEL. In: Meersman, R., Tari, Z. (eds.) OTM 2006. LNCS, vol. 4275, pp. 219–236. Springer, Heidelberg (2006). doi: 10.1007/11914853_14CrossRefGoogle Scholar
  23. 23.
    Angarita, R., Rukoz, M., Cardinale, Y.: Modeling dynamic recovery strategy for composite web services execution. World Wide Web 19, 89–109 (2016)CrossRefGoogle Scholar
  24. 24.
    Salatge, N., Fabre, J.-C.: Fault tolerance connectors for unreliable web services. In: 37th IEEE/IFIP International Conference on Dependable Systems and Networks (2007)Google Scholar
  25. 25.
    Candea, G., Kiciman, E., Zhang, S., Fox, A., Keyani, P., Fox, O.: JAGR: An Autonomous Self-Recovering Application Server (2003)Google Scholar
  26. 26.
    Porter, J., Menasce, D., Gomaa, H.: DeSARM: a decentralized software architecture discovery mechanism for distributed systems. In: Presented at the 11th International Workshop on Models@run.time (MODELS 2016), Saint-Malo, France, 4 October 2016Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Emad Albassam
    • 1
  • Hassan Gomaa
    • 1
    Email author
  • Daniel A. Menascé
    • 1
  1. 1.Department of Computer ScienceGeorge Mason UniversityFairfaxUSA

Personalised recommendations