Tuesday, January 1, 2013





Autonomic Computing









 : Student work
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


Monday, October 1, 2012