skip to main content
research-article

A Formal Approach to Autonomic Systems Programming: The SCEL Language

Published:01 July 2014Publication History
Skip Abstract Section

Abstract

The autonomic computing paradigm has been proposed to cope with size, complexity, and dynamism of contemporary software-intensive systems. The challenge for language designers is to devise appropriate abstractions and linguistic primitives to deal with the large dimension of systems and with their need to adapt to the changes of the working environment and to the evolving requirements. We propose a set of programming abstractions that permit us to represent behaviors, knowledge, and aggregations according to specific policies and to support programming context-awareness, self-awareness, and adaptation. Based on these abstractions, we define SCEL (Software Component Ensemble Language), a kernel language whose solid semantic foundations lay also the basis for formal reasoning on autonomic systems behavior. To show expressiveness and effectiveness of SCEL;’s design, we present a Java implementation of the proposed abstractions and show how it can be exploited for programming a robotics scenario that is used as a running example for describing the features and potential of our approach.

References

  1. Gul A. Agha. 1990. ACTORS—A Model of Concurrent Computation in Distributed Systems. MIT Press. I--IX, 1--144 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Oana Andrei and Hélène Kirchner. 2009. A higher-order graph calculus for autonomic computing. In Graph Theory, Computational Intelligence and Thought. Springer, 15--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Tomoyuki Aotani, Tetsuo Kamina, and Hidehiko Masuhara. 2011. Featherweight EventCJ: A core calculus for a context-oriented language with event-based per-instance layer transition. In COP. ACM, 1:1--1:7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Malte Appeltauer, Robert Hirschfeld, Michael Haupt, Jens Lincke, and Michael Perscheid. 2009. A comparison of context-oriented programming languages. In COP. ACM, 6:1--6:6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Michael P. Ashley-Rollman, Seth Copen Goldstein, Peter Lee, Todd C. Mowry, and Padmanabhan Pillai. 2007. Meld: A declarative approach to programming ensembles. In IROS. IEEE, 2794--2800.Google ScholarGoogle Scholar
  6. Michael P. Ashley-Rollman, Peter Lee, Seth Copen Goldstein, Padmanabhan Pillai, and Jason Campbell. 2009. A language for large ensembles of independently executing nodes. In ICLP (LNCS 5649). Springer, 265--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Jean-Pierre Banâtre, Yann Radenac, and Pascal Fradet. 2004. Chemical specification of autonomic systems. In IASSE. ISCA, 72--79.Google ScholarGoogle Scholar
  8. Fabio L. Bellifemine, Giovanni Caire, and Dominic Greenwood. 2007. Developing Multi-Agent Systems with JADE. John Wiley & Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Rafael H. Bordini, Jomi F. Hübner, and Renata Vieira. 2005. Jason and the golden fleece of agent-oriented programming. In Multi-Agent Programming. Multiagent Systems, Artificial Societies, and Simulated Organizations, Vol. 15. Springer, 3--37.Google ScholarGoogle Scholar
  10. Eric Bruneton, Thierry Coupaye, Matthieu Leclercq, Vivien Quéma, and Jean-Bernard Stefani. 2006. The FRACTAL component model and its support in Java. Softw. Pract. Exper. 36, 11--12 (2006), 1257--1284. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Roberto Bruni, Andrea Corradini, Fabio Gadducci, Alberto Lluch-Lafuente, and Andrea Vandin. 2012. A conceptual framework for adaptation. In FASE (LNCS 7212). Springer, 240--254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Miguel Castro, Peter Druschel, Anne-Marie Kermarrec, and Antony I. T. Rowstron. 2003. Scalable application-level anycast for highly dynamic groups. In ICQT (LNCS 2816). Springer, 47--57.Google ScholarGoogle Scholar
  13. Dave Clarke, Pascal Costanza, and Éric Tanter. 2009. How should context-escaping closures proceed?. In COP. ACM, 1:1--1:6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Paolo Costa, Luca Mottola, Amy L. Murphy, and GianPietro Picco. 2009. Tuple space middleware for wireless networks. In Middleware for Network Eccentric and Mobile Applications. Springer, 245--264.Google ScholarGoogle Scholar
  15. Mehdi Dastani. 2008. 2APL: A practical agent programming language. Autonomous Agents and Multi-Agent Systems 16, 3 (2008), 214--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Rocco De Nicola, GianLuigi Ferrari, Michele Loreti, and Rosario Pugliese. 2012. A language-based approach to autonomic computing. In FMCO 2011 (LNCS 7542). Springer, 25--48.Google ScholarGoogle Scholar
  17. Rocco De Nicola, GianLuigi Ferrari, and Rosario Pugliese. 1998. KLAIM: A kernel language for agents interaction and mobility. IEEE Trans. Software Eng. 24, 5 (1998), 315--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Rocco De Nicola, Michele Loreti, Rosario Pugliese, and Francesco Tiezzi. 2013. SCEL: A Language for Autonomic Computing. Technical Report. Available at http://rap.dsi.unifi.it/scel/pdf/SCEL-TR.pdf.Google ScholarGoogle Scholar
  19. Pierpaolo Degano, GianLuigi Ferrari, Letterio Galletta, and Gianluca Mezzetti. 2012. Types for coordinating secure behavioural variations. In COORDINATION (LNCS 7274). Springer, 261--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Edmond Gjondrekaj, Michele Loreti, Rrosario Pugliese, and Francesco Tiezzi. 2012. Modeling adaptation with a tuple-based coordination language. In Proceedings of the ACM Symposium on Applied Computing (SAC’12), Sascha Ossowski and Paola Lecca (Eds.). ACM, 1522--1527. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz. 2008. Context-oriented programming. J. Object Technol. 7, 3 (2008), 125--151.Google ScholarGoogle ScholarCross RefCross Ref
  22. Robert Hirschfeld, Atsushi Igarashi, and Hidehiko Masuhara. 2011. ContextFJ: A minimal core calculus for context-oriented programming. In FOAL. ACM, 19--23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. IBM. 2005. An Architectural Blueprint for Autonomic Computing (3rd ed). Technical Report.Google ScholarGoogle Scholar
  24. Jeffrey O. Kephart and David M. Chess. 2003. The vision of autonomic computing. Computer 36, 1 (2003), 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Narges Khakpour, Saeed Jalili, Carolyn L. Talcott, Marjan Sirjani, and Mohammad Reza Mousavi. 2012. Formal modeling of evolving self-adaptive systems. Sci. Comput. Program. 78, 1 (2012), 3--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Boon Thau Loo, Tyson Condie, Minos Garofalakis, David E. Gay, Joseph M. Hellerstein, Petros Maniatis, Raghu Ramakrishnan, Timothy Roscoe, and Ion Stoica. 2009. Declarative networking. Commun. ACM 52, 11 (2009), 87--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Marco Mamei and Franco Zambonelli. 2009. Programming pervasive and mobile computing applications: The TOTA approach. ACM Trans. Softw. Eng. Methodol. 18, 4 (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. K. McKinley, S. M. Sadjadi, E. P. Kasten, and B. H. C. Cheng. 2004. Composing adaptive software. Computer 37, 7 (2004), 56--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Nicola Mezzetti and Davide Sangiorgi. 2006. Towards a calculus for wireless systems. Electr. Notes Theor. Comput. Sci. 158 (2006), 331--353. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Robin Milner. 1989. Communication and Concurrency. Prentice Hall. I--XI, 1--260 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Luca Mottola and Gian Pietro Picco. 2006. Logical neighborhoods: A programming abstraction for wireless sensor networks. In DCOSS (LNCS 4026). Springer, 150--168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Luca Mottola and Gian Pietro Picco. 2012. Middleware for wireless sensor networks: an outlook. J. Internet Serv. Appl. 3, 1 (2012), 31--39.Google ScholarGoogle ScholarCross RefCross Ref
  33. NIST. 2009. A Survey of Access Control Models. Available at http://csrc.nist.gov/news_events/privilege- management-workshop/PvM-Model-Survey-Aug26-2009.pdf.Google ScholarGoogle Scholar
  34. Erik Nordström, Per Gunningberg, and Christian Rohner. 2009. A Search-based Network Architecture for Mobile Devices. Technical Report 2009-003. Uppsala University, Computer Systems.Google ScholarGoogle Scholar
  35. OASIS-TC. 2005. eXtensible Access Control Markup Language (XACML) version 2.0. Available at http://docs.oasis-open.org/xacml/2.0/XACML-2.0-OS-NORMATIVE.zip.Google ScholarGoogle Scholar
  36. Gordon D. Plotkin. 2004. A structural approach to operational semantics. J. Log. Algebr. Program. 60--61 (2004), 17--139.Google ScholarGoogle Scholar
  37. Project InterLink. 2007. Homepage. Available at http://interlink.ics.forth.gr. (2007).Google ScholarGoogle Scholar
  38. Anand S. Rao. 1996. AgentSpeak(L): BDI agents speak out in a logical computable language. In MAAMAW (LNCS 1038). Springer, 42--55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Antony I. T. Rowstron and Peter Druschel. 2001. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In Middleware (LNCS 2218). Springer, 329--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. 2011. Context-Oriented programming: A programming paradigm for autonomic systems. CoRR abs/1105.0069 (2011).Google ScholarGoogle Scholar
  41. Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. 2012. Context-oriented programming: A software engineering perspective. J. Syst. Softw. 85, 8 (2012), 1801--1817. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Anu Singh, C. R. Ramakrishnan, and Scott A. Smolka. 2010. A process calculus for mobile ad hoc networks. Sci. Comput. Program. 75, 6 (2010), 440--469. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Ian Sommerville, Dave Cliff, Radu Calinescu, Justin Keen, Tim Kelly, Marta Z. Kwiatkowska, John A. McDermid, and Richard F. Paige. 2012. Large-scale complex IT systems. Commun. ACM 55, 7 (2012), 71--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Michael Winikoff. 2005. JACK#8482; intelligent agents: An industrial strength platform. In Multi-Agent Programming. Multiagent Systems, Artificial Societies, and Simulated Organizations, Vol. 15. Springer, 175--193.Google ScholarGoogle Scholar

Index Terms

  1. A Formal Approach to Autonomic Systems Programming: The SCEL Language

          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 9, Issue 2
            July 2014
            146 pages
            ISSN:1556-4665
            EISSN:1556-4703
            DOI:10.1145/2642710
            Issue’s Table of Contents

            Copyright © 2014 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 July 2014
            • Accepted: 1 January 2014
            • Revised: 1 December 2013
            • Received: 1 August 2013
            Published in taas Volume 9, 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
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!