skip to main content
research-article

FORMS: Unifying reference model for formal specification of distributed self-adaptive systems

Published:04 May 2012Publication History
Skip Abstract Section

Abstract

The challenges of pervasive and mobile computing environments, which are highly dynamic and unpredictable, have motivated the development of self-adaptive software systems. Although noteworthy successes have been achieved on many fronts, the construction of such systems remains significantly more challenging than traditional systems. We argue this is partially because researchers and practitioners have been struggling with the lack of a precise vocabulary for describing and reasoning about the key architectural characteristics of self-adaptive systems. Further exacerbating the situation is the fact that existing frameworks and guidelines do not provide an encompassing perspective of the different types of concerns in this setting. In this article, we present a comprehensive reference model, entitled FOrmal Reference Model for Self-adaptation (FORMS), that targets both issues. FORMS provides rigor in the manner such systems can be described and reasoned about. It consists of a small number of formally specified modeling elements that correspond to the key concerns in the design of self-adaptive software systems, and a set of relationships that guide their composition. We demonstrate FORMS's ability to precisely describe and reason about the architectural characteristics of distributed self-adaptive software systems through its application to several existing systems. FORMS's expressive power gives it a potential for documenting reusable architectural solutions (e.g., architectural patterns) to commonly encountered problems in this area.

References

  1. Andersson, J., de Lemos, R., Malek, S., and Weyns, D. 2009a. Modeling dimensions of self-adaptive software systems. In Hot Topics on Software Engineering for Self-Adaptive Systems, B. H. C. Cheng et al., Eds., Lecture Notes in Computer Science, vol. 5525, Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andersson, J., de Lemos, R., Malek, S., and Weyns, D. 2009b. Reflecting on self-adaptive software systems. In Proceedings of the Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andrade, L. F., Fiadeiro, J. L., Gouveia, J., Lopes, A., and Wermelinger, M. 2000. Patterns for coordination. In Proceedings of the International Conference on Coordination Languages and Models. Lecture Notes in Computer Science, vol. 1906, Springer, 317--322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Arbab, F. 2004. Reo: A channel-based coordination model for component composition. Math. Struct. Comput. Sci. 14, 3, 329--366. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Blair, G., Coulson, G., and Grace, P. 2004. Research directions in reflective middleware: The Lancaster experience. In Proceedings of the 3rd Workshop on Adaptive and Reflective Middleware (ARM'04). ACM Press, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Braione, P. and Picco, G. P. 2004. On calculi for context-aware coordination. In Proceedings of the International Conference on Coordination Models and Languages. Lecture Notes in Computer Science, vol. 2949, Springer, 38--54.Google ScholarGoogle ScholarCross RefCross Ref
  7. Brewington, B. and Cybenko, G. 2000. Keeping up the changing Web. Comput. 33, 5, 52--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Capra, L., Emmerich, W., and Mascolo, C. 2001. Reflective middleware solutions for context-aware applications. In Proceedings of the International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. 126--133. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cardelli, L. and Gordon, A. D. 2000. Mobile ambients. Theor. Comput. Sci. 240, 1, 177--213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Carzaniga, A., Picco, G. P., and Vigna, G. 1997. Designing distributed applications with mobile code paradigms. In Proceedings of the International Conference on Software Engineering. ACM Press, New York, 22--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cazzola, W., Savigni, A., Sosio, A., and Tisato, F. 1999. Rule-Based strategic reflection: Observing and modifying behavior at the architectural level. In Proceedings of the International Conference on Automated Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cheng, B., de Lemos, R., Giese, H., Inverardi, P., and Mafee, J., et al. 2009. Software engineering for self-adaptive systems: A research road map. In Hot Topics on Software Engineering for Self-Adaptive Systems, B. H. C. Cheng et al., Eds., Lecture Notes in Computer Science, vol. 5525, Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. CZT. 2010. http://czt.sourceforge.net/.Google ScholarGoogle Scholar
  14. Dey, A. 2000. Providing architectural support for building context-aware applications. Ph.D. thesis, Atlanta, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Dowling, J. and Cahill, V. 2001. The k-component architecture meta-model for self-adaptive software. In Proceedings of the International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Edwards, G., Garcia, J., Tajalli, H., Popescu, D., Medvidovic, N., Sukhatme, G., and Petrus, B. 2009. Architecture-Driven self-adaptation and self-management in robotics systems. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Erickson, T. 2002. Some problems wit the notion of context-aware computing. Comm. ACM 45, 2, 102--104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Fok, C.-L., Roman, G.-C., and Hackmann, G. 2004. A lightweight coordination middleware for mobile computing. In Proceedings of the COORDINATION Conference. R. D. Nicola, G. L. Ferrari, and G. Meredith, Eds., Lecture Notes in Computer Science, vol. 2949, Springer, 135--151.Google ScholarGoogle Scholar
  19. 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, 46--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Geihs, K., et al. 2009. Software Engineering for Self-Adaptive Systems. Springer. Chapter Modeling of context-aware self-adaptive applications in ubiquitous and service-oriented environments. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Haque, M. and Ahamed, S. 2007. An omnipresent formal trust model (ftm) for pervasive computing environment. In Proceedings of the International Computer Software and Applications Conference. IEEE Computer Society, Los Alamitos, CA, 49--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Henricksen, K., Indulska, J., and Rakotonirainy, A. 2002. Modeling context information in pervasive computing systems. In Pervasive, F. Mattern and M. Naghshineh, Eds., Lecture Notes in Computer Science, vol. 2414, Springer, 167--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Hinchey, M. G. and Sterritt, R. 2006. Self-Managing software. Comput. 39, 107-. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Huebscher, M. C. and McCann, J. A. 2008. A survey of autonomic computing- Degrees, models, and applications. ACM Comput. Surv. 40, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. IBM. 2006. An architectural blueprint for autonomic computing. Tech. rep., IBM.Google ScholarGoogle Scholar
  26. Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. IEEE Comput. 36, 1, 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Kramer, J. and Magee, J. 2007. Self-Managed systems: An architectural challenge. In Proceedings of the International Conference on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Maes, P. 1987. Concepts and experiments in computational reflection. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'87). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Malek, S., Seo, C., Ravula, S., Petrus, B., and Medvidovic, N. 2007. Reconceptualizing a family of heterogeneous embedded systems via explicit architectural support. In Proceedings of the International Conference on Software Engineering. 591--601. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Malone, T. and Crowston, K. 1994. Toward an interdisciplinary theory of coordination. ACM Comput. Surv. 26, 1, 87--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Miller, B. 2005. The autonomic computing edge: The role of knowledge in autonomic systems. Tech. rep., IBM.Google ScholarGoogle Scholar
  32. Murphy, A., Picco, G. P., and Roman, G.-C. 2006. Lime: A coordination model and middleware supporting mobility of hosts and agents. ACM Trans. Softw. Engin. Methodol. 15, 3, 279--328. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Nahrstedt, K., Xu, D., Wichadakul, D., and Li, B. 2001. QOS-Aware middleware for ubiquitous and heterogeneous environments. IEEE Comm. Mag. 39, 11, 140--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Oreizy, P., Medvidovic, N., and Taylor, R. N. 1998. Architecture-Based runtime software evolution. In Proceedings of the International Conference on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ossowski, S. and Menezes, R. 2006. On coordination and its significance to distributed and multi-agent systems: Research articles. Concurr. Comput. Pract. Exper. 18, 4, 359--370. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Ranganathan, A. and Campbell, R. H. 2003. An infrastructure for context-awareness based on first order logic. Person. Ubiq. Comput. 7, 6, 353--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Román, M., Hess, C., Cerqueira, R., Ranganathan, A., Campbell, R. H., and Nahrstedt, K. 2002. A middleware infrastructure for active spaces. IEEE Pervas. Comput. 1, 4, 74--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Schilit, B., Adams, N., and Want, R. 1999. Context-Aware computing applications. In Proceedings of the 1st Workshop on Mobile Computing Systems and Applications. IEEE Computer Society, Los Alamitos, CA, 85--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Schmidt, A., Aidoo, K. A., Takaluoma, A., Tuomela, U., Van Laerhoven, K., and Van de Velde, W. 1999. Advanced interaction in context. Lecture Notes in Computer Science, vol. 1707, Springer, 89--101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Shaw, M. 1995. Beyond objects: A software design paradigm based on process control. ACM SIGSOFT Softw. Engin. Notes 20, 1, 27--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Sterritt, R. 2005. Autonomic computing. Innov. Syst. Softw. Engin. 1, 1, 79--88.Google ScholarGoogle ScholarCross RefCross Ref
  42. Tisato, F., Savigni, A., Cazzola, W., and Sosio, A. 2001. Architectural reflection: Realising software architectures via reflective activities. In Proceedings of the International Workshop on Engineering Distributed Objects. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Vassev, E. and Hinchey, M. 2011. The assl approach to specifying self-managing embedded systems. Concurr. Comput. Pract. Exper. doi: 10.1002/cpe.1758. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Weiser, M. 1993. Ubiquitous computing. Comput. 26, 71--72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Wermelinger, M. and Fiadeiro, J. L. 1999. Algebraic software architecture reconfiguration. In Proceedings of the European Software Engineering Conference and International Symposium on Foundations of Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Weyns, D., Malek, S., and Andersson, J. 2010a. On decentralized self-adaptation: Lessons from the trenches and challenges for the future. In Proceedings of the International Workshop on Software Engineering for Adaptive and Self-Managing Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Weyns, D., Haesevoets, R., Helleboogh, A., Holvoet, T., and Joosen, W. 2010b. The MACODO middleware for context-driven dynamic agent organizations. ACM Trans. Auton. Adapt. Syst. 5, 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Weyns, D., Malek, S., and Andersson, J. 2010c. FORMS: A formal reference model for self-adaptation. In Proceedings of the International Conference on Autonomic Computing and Communications. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Weyns, D., Malek, S., and Andersson, J. 2010d. Z specifications of FORMS. Tech. rep. CW 579, K.U. Leuven. www.cs.kuleuven.be/publicaties/rapporten/cw/CW579.abs.html.Google ScholarGoogle Scholar
  50. Wooldridge, M. and Jennings, N. 1995. Intelligent agents: Theory and practice. Knowl. Engin. Rev. 10, 2, 115--152.Google ScholarGoogle ScholarCross RefCross Ref
  51. Ye, J., Coyle, L., Dobson, S., and Nixon, P. 2007. Ontology-Based models in pervasive computing systems. Knowl. Engin. Rev. 22, 4, 315--347. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Zhang, J. and Cheng, B. H. C. 2006. Model-Based development of dynamically adaptive software. In Proceedings of the International Conference on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. FORMS: Unifying reference model for formal specification of distributed self-adaptive systems

    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 7, Issue 1
      Special section on formal methods in pervasive computing, pervasive adaptation, and self-adaptive systems: Models and algorithms
      April 2012
      365 pages
      ISSN:1556-4665
      EISSN:1556-4703
      DOI:10.1145/2168260
      Issue’s Table of Contents

      Copyright © 2012 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: 4 May 2012
      • Accepted: 1 August 2011
      • Revised: 1 June 2011
      • Received: 1 May 2010
      Published in taas Volume 7, Issue 1

      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