Autonomic Computing
khlood ali alawaji
3051118
Introduction
Advances in networking and computing technology and software tools
have resulted in an explosive growth in networked applications and information
services that cover all aspects of our life. These sophisticated applications
and services are extremely complex, heterogeneous and dynamic. Further, the
underlying information infrastructure
e.g., the Internet) globally aggregates large numbers of
independent computing and communication resources, data stores and sensor
networks, and is itself similarly large ) heterogeneous,
dynamic and complex. The combination has resulted in application development,
configuration and management complexities that break current computing paradigms
based on static requirements, behaviors, interactions and composition
Autonomic Computing
has been inspired by the human autonomic nervous system.
Its overarching goal is to
realize computer and software systems and applications that can manage themselves
in accordance with high-level guidance from humans. Meeting the grand
challenges of autonomic computing requires scientific and technological advances
in a wide variety of fields, as well as new programming paradigm and software
and system architectures that support the effective integration of the
constituent technologie
An autonomic computing paradigm, modeled after the autonomic
nervous system, must have a mechanism whereby changes in its essential variables
can trigger changes in the behavior of the computing system such that the
system is brought back into equilibrium with respect to the environment.
This state of stable equilibrium is a necessary condition for the
survivability of the organism. In the case of an autonomic computing system, we
can think of survivability as the system’s ability to protect itself, recover
from faults
reconfigure as required by changes in the environment, and always
maintain its operations at a near optimal performance. Its equilibrium is
impacted by both the internal environment (e.g., excessive memory/CPU
utilization) and the external environment( e.g., protection from an external
attack)
An autonomic computing system requires :
a) sensor channels to sense the changes in the internal and
external environment
b) motor channels to react to and counter the
effects of the changes in the environment by changing the system and
maintaining
fundamental
components of AC
Self
Configuring:
An autonomic
application/system should be able configure and reconfigure itself under varying
and unpredictable conditions.
Self
Optimizing:
An autonomic
application/system should be able to detect suboptimal behaviors and optimize
itself to improve its execution.
Self-Healing:
An autonomic
application/system should be able to detect and recover from potential problems
and continue to function smoothly.
Self
Protecting:
An autonomic
application/system should be capable of detecting and protecting its resources
from both internal and external attack and maintaining overall system security
and integrity.
Architecture of
an Autonomic Element:
An autonomic element (see Figure 4) is the smallest unit of an
autonomic application or system. It is a self-contained software or system
module with specified input/output interfaces and explicit context dependencies.
It also has embedded mechanisms for selfmanagement, which are responsible for
implementing its functionalities, exporting constraints, managing its behavior
in accordance with context and policies, and interacting with other elements.
Autonomic systems and applications are constructed from autonomic elements as
dynamic, opportunistic and/or ephemeral compositions. These compositions may be
defined by policies and context, and may be negotiated. The key parts of an
autonomic element are described below
Managed
Element:
This is the smallest
functional unit of the application and contains the executable code (program,
data structures) (e.g., numerical model of a physical process). It also exports
its functional interfaces, its functional and behavioral attributes and
constraints, and its control mechanisms
Environment:
The environment represents
all the factors that can impact the managed element. The environment and the
managed element can be viewed as two subsystems forming a stable system. Any
change in the environment causes the whole system to go from a stable state to
an unstable state. This change is then offset by reactive changes in the
managed element causing the system to move back from the unstable state to a
different stable state. Notice that the environment consists of two parts -
internal and external. The internal environment consists of changes
internal to the managed element, which reflects the state of the
application/system
The external
environment reflects the state of the execution environment
Control:
Each autonomic element has its own manager
that
(1) accepts userspecified
requirements (performance, fault tolerance, security, etc.),
(2) interrogates the element
and characterizes its state.
(3) senses the state of the overall lsystem/application.
(4) determines state of the environment
(5) uses this information to control the operation of the managed
element in order to effectivelyachieve the specified behaviors.
This control process repeats
continuously throughout the lifetime of the autonomic element. As shown in
Figure 4.
the control part consists of two
control loops:
a- local loop
b-global loop
Autonomic
Computing Research Issues and Challenges
Meeting the grand challenges of autonomic computing presents
fundamental and significant research challenges that span all levels, from the
conceptual level to architecture, middleware, and applications.
Conceptual
Challenges:
Conceptual research issues
and challenges
(1) defining appropriate abstractions and
models for specifying, understanding, controlling, and implementing autonomic
behaviors
(2) adapting classical models and
(3) providing effective models for negotiation
that autonomic elements can use to establish multilateral relationships among
themselves.
(4) designing statistical models of large networked systems that
will let autonomic elements or systems detect or predict overall problems from
a stream of sensor data from individual devices
Architecture
Challenges:
Autonomic applications and
systems will be constructed from autonomic elements that manage their internal
behavior and their relationships with other autonomic elements in accordance
with policies that humans or other elements have established. As a result,
system/application level self-managing behaviors will arise from the
self-managing behaviors of constituent autonomic elements and their
interactions. System and software architectures in which local as well as
global autonomic behaviors can be specified, implemented and controlled in a
robust and predictable manner remains a key research challenge
Middleware
Challenges:
The primary middleware level
research challenge is providing the core services required to realize autonomic
behaviors in a robust, reliable and scalable manner, in spite of the dynamism
and uncertainty of the system and the application. These include discovery,
messaging, security, privacy, trust, etc. Autonomic systems/applications will
require autonomic elements to identify themselves, discover and verify the
identities of other entities of interest, dynamically establish relationships with
these entities, and to interact in a secure manner.
Application
Challenges:
The key challenges at the
application level is the formulation and development of systems and
applications that are capable of managing (i.e., configuring,
adapting, optimizing, protecting, healing) themselves. This includes
programming models, frameworks and middleware services that support the
definition of autonomic elements, the development of autonomic applications as
the dynamic and opportunistic composition of these autonomic elements, and the
policy, content and context driven definition, execution and management of these
applications
Conclusion
we introduced the autonomic computing paradigm, which is inspired by
biological systems such as the autonomic human nervous system, and enables the development
of self-managing computing systems and applications. The systems/applications
use autonomic strategies and algorithms to handle complexity and uncertainties
with minimum human intervention. An autonomic application/system is a
collection of autonomic elements, which implement intelligent control loops t
Success doesn't come to you…you go to it
Reference