Autonomic Computing Now You See It, Now You Don't

With the rapid growth of web services and socio-technical ecosystems, the management complexity of these modern, decentralized, distributed computing systems presents significant challenges for businesses and often exceeds the capabilities of human operators. Autonomic computing is an effective set of technologies, models, architecture patterns, standards, and processes to cope with and reign in the management complexity of dynamic computing systems using feedback control, adaptation, and self-management. At the core of an autonomic system are control loops which sense their environment, model their behavior in that environment, and take action to change the environment or their own behavior. Computer science researchers often approach the design of such highly dynamical systems from a software architecture perspective whereas engineering researchers start with a feedback control perspective. In this article, we argue that both design perspectives are needed and necessary for autonomic system design.

[1]  A. Marcus Dashboards in your future , 2006, INTR.

[2]  E. Gat On Three-Layer Architectures , 1997 .

[3]  Katsuhiko Ogata,et al.  Discrete-time control systems (2nd ed.) , 1995 .

[4]  B. Pasik-Duncan,et al.  Adaptive Control , 1996, IEEE Control Systems.

[5]  Yijun Yu,et al.  Towards requirements-driven autonomic systems design , 2005, ACM SIGSOFT Softw. Eng. Notes.

[6]  Paola Inverardi,et al.  The Future of Software: Adaptation and Dependability , 2008, ISSSE.

[7]  Hausi A. Müller,et al.  Monitoring in adaptive systems using reflection , 2008, SEAMS '08.

[8]  Hausi A. Müller,et al.  Bits of History, Challenges for the Future and Autonomic Computing Technology , 2006, 2006 13th Working Conference on Reverse Engineering.

[9]  Kumpati S. Narendra,et al.  Adaptation and learning in automatic systems , 1974 .

[10]  David L. Cohn,et al.  Autonomic Computing , 2003, ISADS.

[11]  Raymond Reiter,et al.  Characterizing Diagnoses and Systems , 1992, Artif. Intell..

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

[13]  Marcelo Perazolo,et al.  IT service management architecture and autonomic computing , 2007, IBM Syst. J..

[14]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[15]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[16]  Julie A. McCann,et al.  A survey of autonomic computing—degrees, models, and applications , 2008, CSUR.

[17]  Hoi Chan,et al.  An approach to monitor application states for self-managing (autonomic) systems , 2003, OOPSLA '03.

[18]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[19]  Vijay Tewari Standards for Autonomic Computing , 2006 .

[20]  Karl Johan Åström,et al.  Adaptive Control (2 ed.) , 1995 .

[21]  Karl Johan Åström,et al.  Adaptive Control , 1989, Embedded Digital Control with Microcontrollers.

[22]  Dewayne E. Perry,et al.  Exploiting architectural prescriptions for self-managing, self-adaptive systems: a position paper , 2004, WOSS '04.

[23]  Mary Shaw,et al.  Visibility of control in adaptive systems , 2008, ULSSIS '08.

[24]  Katsuhiko Ogata,et al.  Discrete-time control systems , 1987 .

[25]  Lin Chao Preface: Autonomic Computing , 2006 .

[26]  Manfred Nagl,et al.  Manifest*: Strategische Bedeutung des Software Engineering in Deutschland , 2006, Informatik-Spektrum.

[27]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[28]  Márk Jelasity,et al.  The Self-Star Vision , 2005, Self-star Properties in Complex Information Systems.

[29]  Carlos Fernández-Balandrón ITIL: Information Technology Infrastructure Library , 2007 .

[30]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[31]  Richard Murch,et al.  Autonomic Computing , 2004 .

[32]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.

[33]  Mary Shaw,et al.  Beyond objects: a software design paradigm based on process control , 1995, SOEN.

[34]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[35]  Claudio Gutierrez,et al.  Survey of graph database models , 2008, CSUR.

[36]  Gail E. Kaiser,et al.  Kinesthetics eXtreme: an external infrastructure for monitoring distributed legacy systems , 2003, 2003 Autonomic Computing Workshop.

[37]  Hausi A. Müller,et al.  Characterizing maintainability concerns in autonomic element design , 2008, 2008 IEEE International Conference on Software Maintenance.

[38]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[39]  Gail E. Kaiser,et al.  A control theory foundation for self-managing computing systems , 2005, IEEE Journal on Selected Areas in Communications.

[40]  Richard Baskerville,et al.  Growing systems in emergent organizations , 1999, CACM.

[41]  Robin R. Murphy,et al.  Artificial intelligence and mobile robots: case studies of successful robot systems , 1998 .

[42]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[43]  Dewayne E. Perry,et al.  Architectural Styles for Adaptable Self-Healing Dependable Systems , 2005 .

[44]  J. A. Tanner Feedback control in living prototypes: A new vista in control engineering , 1963, Medical electronics and biological engineering.

[45]  Roland S. Burns,et al.  Advanced control engineering , 2001 .

[46]  Hausi A. Müller,et al.  Quality Criteria and an Analysis Framework for Self-Healing Systems , 2007, International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07).

[47]  Yixin Diao,et al.  Feedback Control of Computing Systems , 2004 .

[48]  Marin Litoiu,et al.  Hierarchical model-based autonomic control of software systems , 2005, ACM SIGSOFT Softw. Eng. Notes.

[49]  Peyman Oreizy,et al.  Runtime software adaptation: framework, approaches, and styles , 2008, ICSE Companion '08.

[50]  Franco Zambonelli,et al.  A survey of autonomic communications , 2006, TAAS.

[51]  Thomas A. Corbi,et al.  The dawning of the autonomic computing era , 2003, IBM Syst. J..

[52]  Rick Kazman,et al.  The metropolis model a new logic for development of crowdsourced systems , 2009, CACM.

[53]  Barry Boehm,et al.  A view of 20th and 21st century software engineering , 2006, ICSE.

[54]  Guy A. Dumont,et al.  Concepts, methods and techniques in adaptive control , 2002, Proceedings of the 2002 American Control Conference (IEEE Cat. No.CH37301).

[55]  Alan Ganek,et al.  Overview of Autonomic Computing: Origins, Evolution, Direction , 2006 .

[56]  Kenny Wong,et al.  The reverse engineering notebook , 1999 .