Neptune : Supporting Semantics-Based Runtime Software Refactoring to Achieve Assured System Autonomy

We consider language support for the domain of runtime software adaptation from the perspective of codebase analysis and self-adaptation, whilst guaranteeing predictable autonomic software behaviours. The paper reviews the current state-of-the-art mechanisms employed to actuate runtime analysis and adaptation, followed by the definition of a set of language requirements to support the development of assured autonomic systems. A supporting framework and language Neptune is defined to meet these goals, which is here illustrated using a set of examples taken from a case study that highlights the behavioural and architectural autonomy produced by Neptune. The discussion concludes with further examples that highlight the manner in which Neptune can ensure constraints and requirements are met during adaptation processes.

[1]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[2]  Philip Miseldine,et al.  A Programmatic Approach to Applying Sympathetic and Parasympathetic Autonomic Systems to Software Design , 2005, SOAS.

[3]  Cristiano Castelfranchi,et al.  Guarantees for Autonomy in Cognitive Agent Architecture , 1995, ECAI Workshop on Agent Theories, Architectures, and Languages.

[4]  Paul L. Bergstein,et al.  Managing the Evolution of Object-Oriented Systems , 1994 .

[5]  Elke Pulvermüller,et al.  Aspect-Oriented Programming and Component Weaving: Using XML Representations of Abstract Syntax Trees , 2002 .

[6]  Yves Caseau,et al.  Self-adaptive middleware: Supporting business process priorities and service level agreements , 2005, Adv. Eng. Informatics.

[7]  Joachim Peer,et al.  A Proposal for a Semantic Web Service Description Format , 2004, ECOWS.

[8]  Andrian Marcus,et al.  Supporting document and data views of source code , 2002, DocEng '02.

[9]  M. Salehie,et al.  Autonomic computing , 2005, ACM SIGSOFT Softw. Eng. Notes.

[10]  David A. Schmidt,et al.  Type Inference for Action Semantics , 1990, ESOP.

[11]  S BlairGordon,et al.  A reflective framework for discovery and interaction in heterogeneous mobile environments , 2005 .

[12]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[13]  Deborah Estrin,et al.  On supporting autonomy and interdependence in distributed systems , 1988, EW 3.

[14]  Tobias Nipkow,et al.  Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods Revisited , 2002, FME.

[15]  Salim Hariri,et al.  Autonomic Computing: An Overview , 2004, UPP.

[16]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[17]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[18]  Alaa A. Kharbouch,et al.  Three models for the description of language , 1956, IRE Trans. Inf. Theory.

[19]  R. Juric,et al.  A survey of acceptance of e-government services in the UK , 2004, 26th International Conference on Information Technology Interfaces, 2004..

[20]  Colette Rolland,et al.  A Comprehensive View of Process Engineering , 1998, CAiSE.

[21]  Bernd Freisleben,et al.  Supporting autonomic computing functionality via dynamic operating system kernel aspects , 2005, AOSD '05.

[22]  Theo Tryfonas,et al.  Frontiers in Artificial Intelligence and Applications , 2009 .

[23]  Philip Miseldine,et al.  Addressing the Signal Grounding Problem for Autonomic Systems , 2006, International Conference on Autonomic and Autonomous Systems (ICAS'06).

[24]  Zhen Li,et al.  AutoMate: Enabling Autonomic Applications on the Grid , 2006, Cluster Computing.

[25]  Ying Zou,et al.  Towards A Portable XML-based Source Code Representation , 2001 .

[26]  J. Grimshaw,et al.  Practice based, longitudinal, qualitative interview study of computerised evidence based guidelines in primary care , 2003, BMJ : British Medical Journal.

[27]  Gordon S. Blair,et al.  A reflective framework for discovery and interaction in heterogeneous mobile environments , 2005, MOCO.

[28]  Ian Welch,et al.  Kava - Using Byte code Rewriting to add Behavioural Reflection to Java , 2001, COOTS.

[29]  Philip Miseldine,et al.  Retrofitting Zeroconf to Type-Safe Self-Organising Systems , 2006, 17th International Workshop on Database and Expert Systems Applications (DEXA'06).

[30]  Michael Haupt,et al.  Axon | Dynamic AOP through Runtime Inspection and Monitoring , 2003 .

[31]  Karl Kurbel,et al.  Towards multi-agent electronic marketplaces: what is there and what is missing? , 2003, The Knowledge Engineering Review.

[32]  Young-Koo Lee,et al.  A Component-based Architecture for an Autonomic Middleware Enabling Mobile Access to Grid Infrastructure , 2005, EUC Workshops.

[33]  Greg J. Badros JavaML: a markup language for Java source code , 2000, Comput. Networks.

[34]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[35]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[36]  E. Schmidt,et al.  Lex—a lexical analyzer generator , 1990 .

[37]  David A. Carrington,et al.  A formal denotational semantics of UML in Object-Z , 2001, Obj. Logiciel Base données Réseaux.

[38]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[39]  Nabor C. Mendonça,et al.  Software Architecture Recovery and Modelling [ WCRE 2001 Discussion Forum Report ] , 2001 .

[40]  Arie van Deursen Software architecture recovery and modelling: [WCRE 2001 discussion forum report] , 2002, SIAP.