skip to main content
research-article

A Formal Approach to Autonomic Systems Programming: The SCEL Language

Published: 01 July 2014 Publication History

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.
[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.
[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.
[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.
[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.
[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.
[7]
Jean-Pierre Banâtre, Yann Radenac, and Pascal Fradet. 2004. Chemical specification of autonomic systems. In IASSE. ISCA, 72--79.
[8]
Fabio L. Bellifemine, Giovanni Caire, and Dominic Greenwood. 2007. Developing Multi-Agent Systems with JADE. John Wiley & Sons.
[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.
[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.
[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.
[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.
[13]
Dave Clarke, Pascal Costanza, and Éric Tanter. 2009. How should context-escaping closures proceed?. In COP. ACM, 1:1--1:6.
[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.
[15]
Mehdi Dastani. 2008. 2APL: A practical agent programming language. Autonomous Agents and Multi-Agent Systems 16, 3 (2008), 214--248.
[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.
[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.
[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.
[19]
Pierpaolo Degano, GianLuigi Ferrari, Letterio Galletta, and Gianluca Mezzetti. 2012. Types for coordinating secure behavioural variations. In COORDINATION (LNCS 7274). Springer, 261--276.
[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.
[21]
Robert Hirschfeld, Pascal Costanza, and Oscar Nierstrasz. 2008. Context-oriented programming. J. Object Technol. 7, 3 (2008), 125--151.
[22]
Robert Hirschfeld, Atsushi Igarashi, and Hidehiko Masuhara. 2011. ContextFJ: A minimal core calculus for context-oriented programming. In FOAL. ACM, 19--23.
[23]
IBM. 2005. An Architectural Blueprint for Autonomic Computing (3rd ed). Technical Report.
[24]
Jeffrey O. Kephart and David M. Chess. 2003. The vision of autonomic computing. Computer 36, 1 (2003), 41--50.
[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.
[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.
[27]
Marco Mamei and Franco Zambonelli. 2009. Programming pervasive and mobile computing applications: The TOTA approach. ACM Trans. Softw. Eng. Methodol. 18, 4 (2009).
[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.
[29]
Nicola Mezzetti and Davide Sangiorgi. 2006. Towards a calculus for wireless systems. Electr. Notes Theor. Comput. Sci. 158 (2006), 331--353.
[30]
Robin Milner. 1989. Communication and Concurrency. Prentice Hall. I--XI, 1--260 pages.
[31]
Luca Mottola and Gian Pietro Picco. 2006. Logical neighborhoods: A programming abstraction for wireless sensor networks. In DCOSS (LNCS 4026). Springer, 150--168.
[32]
Luca Mottola and Gian Pietro Picco. 2012. Middleware for wireless sensor networks: an outlook. J. Internet Serv. Appl. 3, 1 (2012), 31--39.
[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.
[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.
[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.
[36]
Gordon D. Plotkin. 2004. A structural approach to operational semantics. J. Log. Algebr. Program. 60--61 (2004), 17--139.
[37]
Project InterLink. 2007. Homepage. Available at http://interlink.ics.forth.gr. (2007).
[38]
Anand S. Rao. 1996. AgentSpeak(L): BDI agents speak out in a logical computable language. In MAAMAW (LNCS 1038). Springer, 42--55.
[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.
[40]
Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. 2011. Context-Oriented programming: A programming paradigm for autonomic systems. CoRR abs/1105.0069 (2011).
[41]
Guido Salvaneschi, Carlo Ghezzi, and Matteo Pradella. 2012. Context-oriented programming: A software engineering perspective. J. Syst. Softw. 85, 8 (2012), 1801--1817.
[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.
[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.
[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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

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
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: 01 July 2014
Accepted: 01 January 2014
Revised: 01 December 2013
Received: 01 August 2013
Published in TAAS Volume 9, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Autonomic computing
  2. formal methods
  3. programming languages

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)MacroSwarm: A scala framework for swarm programmingScience of Computer Programming10.1016/j.scico.2024.103182239(103182)Online publication date: Jan-2025
  • (2024)SibillaScience of Computer Programming10.1016/j.scico.2024.103095235:COnline publication date: 1-Jul-2024
  • (2024)The eXchange Calculus (XC)Journal of Systems and Software10.1016/j.jss.2024.111976210:COnline publication date: 1-Apr-2024
  • (2024)Dynamic IoT deployment reconfiguration: A global-level self-organisation approachInternet of Things10.1016/j.iot.2024.10141228(101412)Online publication date: Dec-2024
  • (2024)A general framework and decentralised algorithms for collective computational processesFuture Generation Computer Systems10.1016/j.future.2024.04.020158:C(11-27)Online publication date: 1-Sep-2024
  • (2024)Klaim in the MakingLeveraging Applications of Formal Methods, Verification and Validation. REoCAS Colloquium in Honor of Rocco De Nicola10.1007/978-3-031-73709-1_3(27-49)Online publication date: 9-Oct-2024
  • (2024)Code-Centric Code GenerationLeveraging Applications of Formal Methods, Verification and Validation. REoCAS Colloquium in Honor of Rocco De Nicola10.1007/978-3-031-73709-1_21(340-355)Online publication date: 27-Oct-2024
  • (2024)Function-as-a-Service Allocation Policies Made FormalLeveraging Applications of Formal Methods, Verification and Validation. REoCAS Colloquium in Honor of Rocco De Nicola10.1007/978-3-031-73709-1_19(306-321)Online publication date: 27-Oct-2024
  • (2024)Emerging Synchrony in Applauding Audiences: Formal Analysis and SpecificationLeveraging Applications of Formal Methods, Verification and Validation. REoCAS Colloquium in Honor of Rocco De Nicola10.1007/978-3-031-73709-1_16(253-270)Online publication date: 27-Oct-2024
  • (2024)Analysing Collective Adaptive Systems by Proving TheoremsLeveraging Applications of Formal Methods, Verification and Validation. REoCAS Colloquium in Honor of Rocco De Nicola10.1007/978-3-031-73709-1_14(223-237)Online publication date: 27-Oct-2024
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media