• Autonomic computing describes the idea of designing large, complex systems to have certain characteristics that enable the systems to be largely self-managed
• How can building networks with self-management principles be beneficial to achieving desired performance outcomes? Applicability questions to think about:
- What potential benefits exist from applying autonomic computing principles to a future Chainlink metalayer architecture?
- Can existing Chainlink network functions and characteristics be generalized into an autonomic computing self-management framework?
- What are the characteristics of an autonomic computing system? How have these characteristics been implemented in existing computing systems?
- Huebscher, M. C., & McCann, J. A. (2008). A survey of autonomic computing—degrees, models, and applications. ACM Computing Surveys (CSUR) , 40 (3), 1-28.
- Although the concepts in this paper have been around for decades now, the overview of autonomous computing that it provides may be useful in future blockchain-related systems design
- “Computing systems have reached a level of complexity where the human effort required to get the systems up and running and keeping them operational is getting out of hand. Autonomic computing seeks to improve computing systems with a similar aim of decreasing human involvement.”
- This paper provides an overview of IBM’s 2001 autonomic computing self-management principles and provides case studies on how these principles have been implemented into various systems.
- IBM’s autonomic computing idea described autonomic systems which have four main properties:
- Self-configuration : An autonomic system configures itself according to high-level goals.
- Self-optimization : An autonomic system optimizes its use of resources, which can include proactive change to adapt to service or environment challenges.
- Self-healing : An autonomic system detects and diagnoses problems, and can be reactive to failures or early signs of failure.
- Self-protection : An autonomic system protects itself from malicious attacks and end-users. The system autonomously tunes itself to achieve security, data privacy, and data protection.
- The MAPE-K autonomic loop describes how a managing element within an autonomic system interacts with a wider subsection of the system:
- “In the MAPE-K autonomic loop, the managed element represents any software or hardware resource that is given autonomic behaviour by coupling it with an autonomic manager. Thus, the managed element can for example be a web server or database, a specific software component in an application (e.g. the query optimizer in a database), the operating system, a cluster of machines in a grid environment, a stack of hard drives, a wired or wireless network, a CPU, a printer, etc.”
autonomic manager: monitors the managed element and executes changes
- “The autonomic manager is a software component that ideally can be configured by human administrators using high-level goals and uses the monitored data from sensors and internal knowledge of the system to plan and execute, based on these high-level goals, the low-level actions that are necessary to achieve these goals. The internal knowledge of the system is often an architectural model of the managed element”
- The MAPE-K loop components can be structured in a hierarchical fashion with many levels of abstraction.
The paper then describes what it calls levels of autonomicity, and the characteristics of each:
Support: We describe this as work that focuses on one particular aspect or component of an architecture to help improve the performance of the complete architecture using autonomicity. For example, focus on resource management or network support or administration tools that contain self-management properties.
Core: This is where the self-management function is driving the core application itself. That is, if the application’s focus is to deliver multi-media data over a network and the work describes an end-to-end solution including network management and display, audio, etc., then we describe the self-management as core.
Autonomous: There is again where a full end-to-end solution is produced, but typically the solution concerns more emergent intelligence and agent-based technologies where the system self-adapts to the environment to overcome challenges that can produce failure, but it is not measuring its own performance and adapting how it carries out its task to better fit some sort of performative goals.
Autonomic: At this level, work concerns a full architecture and describes the work in terms of that architecture. However, the interest is in higher-level human based goals, e.g. business goals or SLAs are taken into account. This level involves a system that reflects its own performance and adapts itself accordingly.
When considering the potential future scale of the proposed Chainlink metalayer, it may be useful to be aware of design principles of autonomous systems. It may be useful to generalize both the administration of the metalayer and existing Chainlink network features into a complete autonomic computing framework. This framework may be beneficial when considering design parameters to achieve desired network characteristics and resiliency.
(this may fit better in the Mechanism Design section, please move the thread if so)