Autonomic Computing: A Fuzzy Control Approach towards Application Development

Autonomic Computing: A Fuzzy Control Approach towards Application Development

Harish S. Venkatarama (Manipal Institute of Technology, India) and Kandasamy Chandra Sekaran (National Institute of Technology Karnataka, India)
DOI: 10.4018/978-1-60960-845-3.ch005

Abstract

Autonomic computing (Salehie & Tahvildari, 2005) is a new paradigm to design, develop, deploy, and manage systems by taking inspiration from strategies used by biological systems. An autonomic system has four major characteristics: self-configure, self-heal, self-optimize, and self-protect. The autonomic computing architecture provides a blueprint for developing feedback control loops for self-managing systems. This observation suggests that control theory might provide guidance as to the structure of and requirements for autonomic managers. E-commerce is an area where an Autonomic Computing system could be very effectively deployed. E-commerce has created demand for high quality information technology services, and businesses seek ways to improve the quality of service in a cost-effective way. Properly adjusting tuning parameters for best values is time-consuming and skills-intensive. This chapter describes simulation environments to implement approaches to automate the tuning of MaxClients parameter of Apache web server using fuzzy controllers. These are illustrations of the self-optimizing characteristic of an autonomic computing system.
Chapter Preview
Top

Introduction

Autonomic computing is a new paradigm to design, develop, deploy and manage systems by taking inspiration from strategies used by biological systems. The advantage of autonomic computing is that all of the complexity gets hidden from the user. Consider the autonomic nervous system: It tells your heart how many times to beat, checks your blood's sugar and oxygen levels. It adjusts your blood flow and skin functions to maintain the body temperature at the required level. Most important factor is that it does all this without any conscious recognition or effort on our part.

An autonomic system has four major characteristics: self-configure, self-heal, self-optimize and self-protect (Salehie & Tahvildari, 2005).

Self-configuring is the capability of adapting automatically and dynamically to environmental changes. This characteristic has two aspects

  • 1.

    Installing, (re-)configuring and integrating large, complex network intensive systems

  • 2.

    Adaptability in architecture or component level to re-configure the system for achieving the desired quality factors.

Self-healing is the capability of discovery, diagnosing and reacting to disruptions. Such a system must be able to recover by detecting a failed component, taking it off-line to be fixed, and replacing the fixed component into the system without any apparent disruption.

Self-optimizing is the capability to efficiently maximize resource allocation and utilization for satisfying requirements of different users. While, in a short term, self-optimizing can address the complexity of managing system performance, in a long run its components will automatically and proactively seek ways to tune their operations and make themselves more cost efficient.

Self-protecting is the capability of reliably establishing trust, and anticipating, detecting and recovering from the effects of attacks with two aspects

  • 1.

    Defending the system against correlated problems arising from malicious attacks or cascading failures that remain uncorrected by self-healing measures

  • 2.

    Anticipating problems based on early reports from sensors and taking steps to avoid or mitigate them.

Briefly, an autonomic system needs to “know itself”, must always look for ways to improve itself, must configure and reconfigure itself under varying and unpredictable conditions, must be its own doctor, must be an expert in self-protection, must know its environment and the context surrounding its activity and act accordingly, must adhere to open standards and finally, must anticipate the optimized resources needed to meet a user's information needs while keeping its complexity hidden from the user.

Figure 1 depicts the components and key interactions for a single autonomic manager and a single resource (Diao et al., 2005). The resource, sometimes called a managed element, is what is being made more self-managing. This could be a single system (or even an application within a system), or it may be a collection of many logically related systems. Sensors provide a way to obtain measurement data from resources, and effectors provide a means to change the behavior of the resource. Autonomic managers read sensor data and manipulate effectors to make resources more self-managing. The autonomic manager contains components for monitoring, analysis, planning, and execution. Common to all of these is knowledge of the computing environment, service level agreements, and other related considerations. The monitoring component filters and correlates sensor data. The analysis component processes these refined data to do forecasting and problem determination, among other activities. Planning constructs workflows that specify a partial order of actions to accomplish a goal specified by the analysis component. The execute component controls the execution of such workflows and provides coordination if there are multiple concurrent workflows. In essence, the autonomic computing architecture provides a blue print for developing feedback control loops for self-managing systems. This observation suggests that control theory might provide guidance as to the structure of and requirements for autonomic managers.

Figure 1.

Autonomic computing architecture

978-1-60960-845-3.ch005.f01

Complete Chapter List

Search this Book:
Reset