Introduction to Autonomic Computing

Figure1: Human nervous system

Abstract: Autonomic computing is inspired by the human autonomic nervous system that has developed strategies and algorithms to handle complexity and uncertainties, and aims at realizing computing systems and applications capable of managing themselves with minimum human intervention.

By reading this paper you can gain the knowledge about Autonomic Computing. I will detail it under the following sub topics.

 1.0 Introduction
2.0 Why need Autonomic?
 3.0 Major Researches 
           3.1 Research projects in Autonomic computing.
           3.2 University research projects in autonomic computing 
4.0 Four basic elements of autonomic computing
           4.4 self-protecting 
5.0 Autonomic computing architecture 
6.0. Autonomic computing today 
           6.1. Initiatives of autonomic computing 
           6.2. Benefits
           6.3. Applications
7.0 What happen if does not have autonomic in the future?
8.0 Autonomic Computing Research Issues and Challenges
9.0 Future direction of Autonomic computing
10.0 Conclusion

1. Introduction

Think for a moment about one such system at work in our bodies, one so seamlessly embedded we barely notice it, the autonomic nervous system. It tells your heart how fast to beat, checks your blood’s sugar and oxygen levels, and controls your pupils so the right amount of light reaches your eyes as you read a book. It monitors your temperature and adjusts your blood flow and skin functions to keep it at 98.6ºF. It controls the digestion of your food and your reaction to stress; it can even make your hair stand on end if you are sufficiently frightened. It carries out these functions across a wide range of external conditions, always maintaining a steady internal state called homeostasis while readying your body for the task at hand[10]. 

But most significantly, it does all this without any conscious recognition or effort on your part. This allows you to think about what you want to do, and not how you will do it.For example you can run for the train without having to calculate how much faster to breathe and pump your heart, or if you will need that little dose of adrenaline to make it through the doors before they close. It’s as if the autonomic nervous system says to you, don’t think about it. I have got it all covered. That precisely how we need to build computing systems, an approach we propose as autonomic computing.
The term and technology of autonomic computing is unfamiliar to most IT people. However, it will become familiar and understood after reading this paper. Today, IT organizations are faced with the growing challenge of supporting the needs of the corporate enterprise with a reduced budgets and persistent or growing computing demands. For many enterprises, the challenge is compounded by complex architectures and distributed computing infrastructures that were developed over the last 20 years. This situation has caused system management costs to escalate while budgets and corporate spending are shrinking.
Solving this problem requires a new computing model, one that allows for efficiencies in IT infrastructure and resources. Indeed one such model is now emerging. IBM calls it autonomic computing. This is a new methodology for managing enterprise computing environments. Autonomic computing is a new approach that enables software to operate intelligently and dynamically, basing decisions on IT policies and service requirements. Top hardware vendors, such as IBM, Microsoft, Hewlett Packard and others are looking at how to develop servers, operating systems and system management tools and services that encompass the fundamental requirements of autonomic computing.
This paper describe about the autonomic computing by first describing the need of autonomic nature in section 2.0 and the major researches of autonomic computing in section 3.0. This section basically describe about the researches of IBM and the main characteristics introduce by them and finally about the research projects in Autonomic computing. Next section (4.0) about the four basic elements of autonomic computing, Self-configuring (4.1), Self-optimizing (4.2), Self-healing (4.3) and Self-protecting (4.4). Then you can get knowledge about the autonomic computing architecture in section 5.0, then about the current situation in autonomic computing in section 6.0, Autonomic computing today. Then section 7.0 describes the importance of autonomic computing by describing the situation if not having this sort of concept. Next section (8.0) is about autonomic computing research issues and challenges. After that you can see the future direction of autonomic computing in section 9.0. Then you can get the overall idea about autonomic computing by reading the conclusion part. So read carefully and get the clear idea.

2.0 Why need Autonomic?
In the evolution of humans and human society automation has always been the foundation for progress. If human can handle one of his needs automatically, then he has free mind and resources to concentrate on another task. So step by step he can get ability to concentrate on more complex problems. For example few of people worry about harvesting the grain to grind the flour to bake bread; other people even eat bread but do not worry about producing they can simply buy it at a nearby store. Therefore they have relaxed mind for do another job. Farmer’s also having the benefit of autonomic by using machines for their work. It causes to save their time and cost and also increase the amount of harvest get by unit of land.[7].

But computing systems have proved that evolution via automation also produces complexity as an unavoidable byproduct. Follow the evolution of computers from single machines to modular systems to personal computers networked with larger machines and an unmistakable pattern emerges. Compare with pervious machines incredible progress in almost every aspect of computing, for example microprocessor power up by a factor of 10,000, storage capacity by a factor of 45,000, communication speeds by a factor of 1,000,000 [7]. Along with that growth has become increasingly sophisticated architectures governed by software whose complexity now demands tens of millions of lines of code. Some operating environments weigh in at over 30 million lines of code created by over 4,000 programmers. [7]
In fact, the growing complexity of the IT infrastructure threatens to undermine the very benefits information technology aims to provide. Until now the computer systems relied mainly on human intervention and administration to manage this complexity. When considering about current rates of expansion, there will not be enough skilled IT people to keep the world’s computing systems running. Even in uncertain economic times, still have high demand for skilled IT workers. Even if people could somehow come up with enough skilled people, the complexity is growing beyond human ability to manage it. As computing evolves, the overlapping connections, dependencies, and interacting applications call for administrative decision-making and responses faster than any human can deliver. Identifying root causes of failures becomes more difficult, while finding ways of increasing system efficiency generates problems with more variables than any human can hope to solve. Without new approaches, things will only get worse. To solve the problem people need computer systems with autonomic behavior
3.0 Major Researches

“IBM believes that we are at just such a threshold right now in computing. The millions of businesses, billions of humans that compose them, and trillions of devices that they will depend upon all require the services of the IT industry to keep them running. And it's not just a matter of numbers. It's the complexity of these systems and the way they work together that is creating a shortage of skilled IT workers to manage all of the systems. It's a problem that's not going away, but will grow exponentially, just as our dependence on technology has. In short, we can't keep computing as we have for years.

But as Mr. Whitehead so eloquently put it nearly a century ago, the solution may lie in automation, or creating a new capacity where important computing operations can run without the need for human intervention. On October 15th, 2001 Paul Horn, senior vice president of IBM Research addressed the Agenda conference, an annual meeting of the preeminent technological minds, held in
Arizona. In his speech, and in a document he distributed there, he suggested a solution: build computer systems that regulate themselves much in the same way our autonomic nervous system regulates and protects our bodies.’’ [15] This is a quotation from the research web site of the IBM about autonomic computing. It shows the idea of IBM about autonomic computing.
According to the research of IBM about Autonomic Computing, they introduce eight basic characteristics the autonomic system should have.

To be autonomic, a computing system needs to “know itself”
An autonomic system will need detailed knowledge of its components, current status, ultimate capacity, and all connections with other systems to govern itself. It will need to know the extent of its "ownership" of resources, they can borrow or lend, and those that can be shared or must be isolated.

An autonomic computing system must configure and reconfigure itself under different and unpredictable conditions.
System configuration or “setup” must occur automatically, as must dynamic adjustments to that configuration to best handle changing environments.

An autonomic computing system always looks for ways to optimize its workings.
Autonomic computing system should have capability of optimizing its tasks. Optimizing means it should prioritize the tasks and also it should use optimum path to complete the goal. And the autonomic system should have ability to manage it’s resources in other word s get more product by using less resources. 

Autonomic computing system must be able to recover from extraordinary events that might cause some of its parts to malfunction.
It must be able to discover problems or potential problems, then find an alternate way of using resources or reconfiguring the system to keep functioning smoothly.
Initially, “healing” responses taken by an autonomic system will follow rules generated by human experts. But as we embed more intelligence in computing systems, they will begin to discover new rules on their own that help them use system redundancy or additional resources to recover and achieve the primary objective, completing the task. 
An autonomic computing system must be an expert in self-protection.
It must detect, identify and protect itself against various types of attacks to maintain overall system security and integrity.
Before the Internet, computers operated as stand alone machines. So it was fairly easy to protect computer systems from attacks such as “viruses.”
By mimicking the human immune system, autonomic system should have a “digital immune system” that can detect suspicious code, automatically send it to a central analysis center, and distribute a cure to the computer system. The whole process takes place without the user being aware such protection is in process.
To deal with malicious attacks by hackers, intrusion systems must automatically detect and alert system administrators to the attacks.
As the scale of computer networks and systems keeps expanding and the likelihood of hacker attacks increases, we will need to automate the process even further. There won’t be enough experts to handle each incident.

An autonomic computing system knows its environment and the context surrounding its activity, and acts accordingly.
This is almost self-optimization turned outward; an autonomic system will find and generate rules for how best to interact with neighboring systems. It will tap available resources; even negotiate the use by other systems of its underutilized elements, changing both itself and its environment in the process.

An autonomic computing system can not exist in a hermetic environment.
While independent in its ability to manage itself, an autonomic computing system must function in a heterogeneous world and implement open standards.

Autonomic computing system will anticipate the optimized resources needed while keeping its complexity hidden.
This is the ultimate goal of autonomic computing: the marshaling of IT resources to shrink the gap between the business or personal goals of our customers, and the IT implementation necessary to achieve those goals, without involving the user in that implementation.

3.1 Research projects in Autonomic computing.
Listed below are selections of brief descriptions of some of the projects underway at IBM. These projects are at different stages of development or progress. Some of them have already appeared in products. Some are just beginning. This list of projects will grow as new areas of research emerge.

1. Gryphon: Pub/Sub (Middleware)

This middleware for Publish/Subscribe is used to distribute large volumes of data/content in real time to thousands of clients distributed throughout a large "public" network, such as a wide area extranet or intranet that is too large or complex to be centrally administered to support specific applications.
Gryphon has already been tested and deployed over the Internet for real-time sports score distribution at the U.S. Open, and Australian Open in tennis and Ryder Cup in golf, and for monitoring and statistics reporting at the Sydney Olympics. [4]

2. HWLM: Heterogeneous WorkLoad Management (Total System)

Workload management, a function of the IBM OS/390 operating system base control program, allows installations to define business objectives for a clustered environment. This business policy is expressed in terms that relate to business goals and importance, rather than the internal controls used by the operating system. The IBM OS/390 ensures that system resources are assigned to achieve the specified business objectives. [17]

3. LEO: DB2's Learning Optimizer

LEO is a comprehensive way to repair incorrect statistics and cardinality estimates from a query execution plan (QEP). By monitoring previously executed queries, LEO compares the optimizer's estimates with actual at each step in a QEP and computes adjustments to cost estimates and statistics that may be used during future query optimizations.
In practice, LEO actually learns from its past mistakes such as accelerating, sometimes drastically, future executions of similar queries, while incurring a negligible monitoring overhead on query compilation and execution. [18]

4. SMART: Self-Managing and Resource Tuning DB2 (Middleware)

IBM will be building a SMART (Self-Managing and Resource Tuning) database into upcoming versions of DB2. This database is designed to reduce the human intervention needed to run and maintain a database. For example, the user can opt not to be involved and the database will automatically detect failures when they occur and correct them. The database will also configure itself by installing operating systems and data automatically to cope with the changing demands of e-business and the Internet.
The long-term vision is to offer customers the option of preventative maintenance or zero administration/zero maintenance to reduce the total cost of ownership. LEO is one look at the future of "SMART" databases and how they will operate more effectively. [19]

5. Storage Tank

Storage Tank is a new file system for storage area networks that is being developed at the IBM Almaden Research lab, located in Silicon Valley in California. Major features of this system include heterogeneous file sharing, policy-based file and storage management, high performance, and scalability. This technology is currently used in IBM's Tivoli's Storage Manager Product. [6]

6. UFiler: Facilitating Enterprise File Access/Sharing

IBM developed and demonstrated the first Web-based enterprise file system solution with the UFiler project. This solution facilitates access and sharing of files that can be geographically distributed over an entire enterprise or the Internet. It allows access to files anytime and anywhere, and files are protected through fine-grained access-control lists. UFiler desktop clients allow applications to access files stored in UFiler as if they were on a local disk. WebDAV integration is prototyped to allow Windows users to access their UFiler files through WebFolder and other WebDAV-enabled applications such as Office 2000. UFiler's automated backup ensures the integrity of user data. UFiler's back-end design includes SAN-based server clustering. Failover and load balancing among servers can be achieved without moving data. [21]

3.2 University research projects in autonomic computing 
IBM Research contributes to university research in a number of ways, including awarding money and equipment grants. The following projects are funded and co-managed by IBM research and other units within IBM.

1. OceanStore by Berkeley University of California

OceanStore is a global persistent data store designed to scale to billions of users. It provides a consistent, highly available, and durable storage utility atop an infrastructure comprised of untrusted servers. Any computer can join the infrastructure, users need only subscribe to a single OceanStore service provider, although they may consume storage and bandwidth from many different providers. Researchers at Berkeley are exploring the space of Introspective Computing—systems that perform continuous, online adaptation. Applications include on-chip tolerance of flaky components and continuous optimization to adapt to server failures and denial of service attacks as well as autonomic computing. [23]

2. Recovery-Oriented Computing by Berkeley University of California

Recovery-Oriented Computing (ROC) project is a joint Berkeley/Stanford research project that is investigating novel techniques for building highly dependable Internet services. ROC emphasizes recovery from failures rather than failure-avoidance. This philosophy is motivated by the observation that even the most robust systems still occasionally encounter failures due to human operator error, transient or permanent hardware failure, or software anomalies resulting from software aging. [21]

3. Anthill project by University of Bologna, Italy

Anthill is a framework built to support the design, implementation, and evaluation of peer-to-peer (P2P) applications. P2P systems are characterized by decentralized control, large scale, and extreme dynamism of their operating environment and can be seen as instances of Complex Adaptive Systems, typically found in biological and social sciences. Anthill exploits this analogy and advocates a methodology whereby the desired application properties correspond to the "emergent behavior" of the underlying complex adaptive system. An Anthill system consists of a dynamic network of peer nodes; societies of adaptive agents travel through this network, interacting with nodes and cooperating with other agents in order to solve complex problems. Anthill can be used to construct different classes of P2P services that exhibit resilience, adaptation, and self-organization properties. [5]

4. Software Rejuvenation by Duke University:

Software rejuvenation is a proactive fault management technique aimed at cleaning up a system's internal state to prevent the occurrence of more severe crash failures in the future. It involves occasionally terminating an application or a system, cleaning its internal state, and restarting it. Current methods of software rejuvenation include system restart, application restart (partial rejuvenation), and node/application failover (in a cluster system). Software rejuvenation is a cost-effective technique for dealing with software faults that include protection not only against hard failures, but against performance degradation as well. Duke University collaborated with IBM to develop the IBM Director Software Rejuvenation tool. [6]

5. Bio-Inspired Approaches to Autonomous Configuration of Distributed Systems, University College London, England

Next generation networks require new control techniques to increase automation and deal with complexity. Active networks in particular will require the management and control systems to evolve extremely rapidly, since users will be continuously adding new applications, services, and virtual configurations. This research is exploring novel ad-hoc distributed control algorithms and architectures derived from biological and geophysical systems and measurements of fabricated systems such as the World Wide Web. [16]

4.0 Four basic elements of autonomic computing
By examine the above eight characteristics researches identifies that autonomic computing has four basic elements: self-configuring, self-healing, self-optimizing, and self-protecting.

4.1 Self-Configuring
An autonomous computing system must be able to install and set up software automatically. To do so, it will utilize dynamic software configuration techniques, which means applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configurable item. Also to control changes to those characteristics, to record and report change processing and implementation status, and to verify compliance with specified service levels. Also, downloading new versions of software and installing regular service packs are required. When working with other autonomous components, an autonomous system will update new signatures for virus protection and security levels. Self-configuration will use adaptive algorithms to determine the optimum configurations.
1. Updating Web pages dynamically with software changes, testing those changes, analyzing the results, releasing the system back into production, and reporting back to self-management whether the procedure was successful.
2. Installation, testing, and release of regular vendor service packs.
3. Installation of vendor patches, corrections, and modifications together with the necessary testing and release.
4. Installation of new software releases—automatically and seamlessly.

4.2 Self-optimizing

An autonomous system will never settle for the status quo. It will be constantly monitoring predefined system goals or performance levels to ensure that all systems are running at optimum levels. With the business constantly changing and demands from customers and suppliers changing equally fast, self-adapting requirements will be needed.

Self-optimization will be the key to allocating e-utility-type resources, determining when an increase in processing cycles is needed, how much in needed, where they are needed, and for how long. To be effective, autonomous self-optimization will need advanced data and feedback. The metrics need to be in a form where rapid analysis can take place. Many new and innovative techniques are needed for optimization to be successful. For example, control theory is needed in new autonomous infrastructures. New algorithms to process control decisions will be needed.[y]
1. Calling for additional processing power from the e-utility when needed. Releasing those additional cycles when peaks are over.
2. Working with outside vendor software.
3. Interfacing with other autonomic modules to exchange data and files.
4. Optimum sub-second response times for all types of access devices, such as personal computers, handheld devices, and media phones.

4.3 Self-healing

Present computer systems are very weak. They fail at the smallest amount problem. If a period, a comma, or a bracket is not correct, the software will fail. We still have much to do in designing tolerant systems. Autonomous computing systems will have the ability to discover and repair potential problems to ensure that the systems run smoothly.

With today's complex IT architectures, it can be hours before a problem is identified at the root cause level. System staff members need to pore over listings of error logs and memory dumps, tracing step-by-step back to the point of failure. The cost of downtime to the business is too expensive. For example, in large-scale banking networks, the cost can be as much as $2,600,000 per hour. Self-healing systems will be able to take immediate action to resolve the issue, even if further analysis is required. Rules for self-healing will need to be defined and applied. As autonomous systems become more sophisticated, embedded intelligence will be applied to discover new rules and objectives. For example, recall from the pervious section IBM will be building SMART (Self-Managing and Resource Tuning) databases into upcoming versions of their DB2 database product. This database is designed to run with less need for human intervention. For example, the user can opt not to be involved, and the database will automatically detect failures when they occur and configure itself by installing operating systems and data automatically to cope with the changing demands of e-business and the Internet [19].
1. Self-correcting Job Control Language (JCL): when a job fails, the errors or problems are identified and jobs rerun without human intervention.
2. An application error forces the entire system to halt. After root cause analysis, the error is corrected, recompiled, tested, and moved back into production.
3. A database index fails. The files are automatically re-indexed, tested, and loaded back into production.
4. Automatically extend file space and database storage, according to previous data on growth and expansion.

4.4 Self-protecting

In an increasingly hostile corporate world, autonomous systems must identify, detect, and protect valuable corporate assets from numerous threats. They must maintain integrity and accuracy and be responsible for overall system security. For years before the Internet, each corporation was an isolated island where threats usually came from within.

Now, outside threats come daily, and security and protection are paramount. Threats must be identified quickly and protective action taken.

Autonomic system solutions must address all aspects of system security at the platform, operating system, network, application, Internet, and infrastructure levels. This involves developing new cryptographic techniques and algorithms, their secure implementation, and designing secure networking protocols, operating environments, and mechanisms to monitor and maintain overall system integrity. Such security solutions need to be standardized to provide/preserve interoperability and to ensure that these techniques are used in a correct way.

To achieve this will require continuous sensors feeding data to a protection center. A log of events will be written and accessed when appropriate for audit purposes. To manage the threat levels, we might expect a tiered level. Threats can be escalated through the tiers for increasing action and priority.
1. Confirm the ability of backup and recovery resources that may be needed.
2. Implement tiered security levels.
3. Focus resources on network monitoring and immediately disconnect computer systems with suspicious network traffic.
4. Verify that network configurations inventories are correct and, if not, take action.
5. Contact system administrators outside of autonomous system and other offices that may be affected by the increasing threat levels.
6. Have the system verify that all computer systems are at the appropriate version levels, including "patches." Update automatically as needed.
7. Resolve any open security concerns.
8. Implement any special software for additional security protection according to the threat level.
9. Contact offsite vendors to determine if any preventive measures (patches, etc.) to be applied to both hardware and software.

Table 4.1 compares the four states of autonomic computing with how we manage today and what it will be like with full autonomic systems.
Current Computing
Autonomic Computing
Corporate data centers have multiple vendors and platforms. Installing, configuring, and integrating systems is time-consuming and error prone
Automated configuration of components and systems follows high-level policies. Rest of system adjusts automatically and seamlessly
Systems have hundreds of manually set nonlinear tuning parameters, and their number increases with each release
Components and systems continually seek opportunities to improve their own performance and efficiency
Problem determination in large, complex systems can take a team of programmers weeks
System automatically detects, diagnoses, and repairs localized software and hardware problems
Detection of and recovery from attacks and cascading failures is manual
System automatically defends against malicious attacks or cascading failures. It uses early warning to anticipate and prevent systemwide failures

Table 4.1 A Comparison of current Computing Systems, with autonomic computing

5.0 Autonomic computing architecture 
In an autonomic computing architecture, the basic management element is a control loop, depicted in Figure 5.1. This acts as manager of the resource through monitoring, analysis, and actions taken on a set of predefined system policies. These control loops, or managers, can communicate and eventually will negotiate with each other and other types of resources within and outside of the autonomic computing architecture [14].

Figure 5.1 An example of a basic autonomic control loop.
This collects information from the system and makes decisions based on that data and then issues instructions to make adjustments to the system. An intelligent control loop can provide functionality of autonomous computing, such as the following:
  •  Requesting additional processing cycles when needed.
  •  Installing software and upgrades.
  •  Restarting a system after a failure.
  •  Initiating backups after daily processing.
  •  Shutting down systems after detection of an intrusion.
These are many of the self-managing functions that we have been discussing so far. They will be available in embedded software or system tools. An alternative approach is to install control loops in runtime environments for faster responses and actions. When fully operational, control loops will hide complexity from end-users and IT professionals.

In Figure 5.1, we see the control loop is divided into two basic sub elements:
1. The Managed Element— This can be any component in the autonomous system, such as a server, a database, or a file, or it can be numerous related larger elements, such as a cluster of servers, a complete software application, or even a business unit. This means that managed elements are highly scalable. The sensors and effectors control the managed element.
2. The Autonomic Manager— This manages the collection, filtering, and reports of the data collected from the element from the sensors. It also analyzes, models if necessary, and learns about the element, gaining knowledge. With this knowledge, it can predict future situations. The planning part provides the structure the mechanism needs for the actions it takes to achieve the desired goals and objectives of the autonomous system. The planning part also uses the predefined policies that establish the goals and objectives. These policies are described in the system. The execute part of the autonomic manager provides control of the commands being accomplished. It will establish whether the commands completed their required actions.

The sensors provide the mechanisms to collect data on the state of the element. To trigger the sensors will require a "get" instruction—for example, "get the information of the customer database"—or for the element to change in a material fashion, such as volume or time. An example of the last trigger would be "get the transaction information when the database completes the daily update."

The effectors are the mechanisms that change the state of an element. In other words, they act or alter the configuration of the element from the data provided from the sensors. The effectors are a set of software commands, or application programming interfaces (APIs), that alter the element's configuration.

6.0. Autonomic computing today
It is possible to find some aspects of autonomic computing already in today’s software products .This section describes the current initiatives (section 6.1.), benefits (section 6.2.), applications which are using autonomic concept (section 5.3.).

6.1. Initiatives of autonomic computing

In today’s various computer vendors and research institutions are involved in autonomic computing. The technology is not only applicable to servers, but also extends to databases, software applications, and Grid Computing networks.
Perhaps the first elements of autonomous computing were ‘software agents’ that made waves around 1999. A prime example is Computer Associates’ Neugents. According to Computer Associates, Neugents look for patterns in data and can extrapolate from the patterns to predict future events[8].

‘Spiders’ or software agents from search engines are another example. Also called ‘Bots’, these agents scour the Web looking for new websites and then return to the search engine and update its database with the new URLs[8].
Windows XP also incorporates self-management technology. When an application crashes, the user can shut it down systematically, thereby preventing the entire system from freezing or hanging. Further, Windows XP looks out for updates and automatically downloads these when available.
Recent versions of Microsoft Office include a Repair feature. So if key program file (such as Winword.exe) gets corrupted or accidentally deleted, the software can reinstall it. Such features will soon be present in other desktop software.
Plug-and-play is another element of autonomous computing. Plug in a new device to your PC and the system will automatically detect it. The operating system will then fire up its hardware wizard, which guides you through the process of installing the appropriate drivers for the new device.

Figure 6.1- plug and play devices
One company that is actively working towards fully autonomous systems is IBM, which has an initiative named Project eLiza .IBM has incorporated some elements of eLiza in its servers. The company is demonstrating software called Enterprise Workload Manager, which monitors groups of servers, managing the machines and moving work between them without the aid of human administrators [8].
An initiative similar to eLiza is Project Oceano. It will enable a group of Linux servers to share jobs, and reassign jobs when new servers are added or removed from the cluster.
Compaq is also pursuing autonomic computing. It is offering a suite of tools collectively called Proliant Essentials. The tool with autonomic characteristics is Compaq Insight Manager. This software delivers pre-failure alerts for Compaq ProLiant servers, thereby proactively detecting potential server failures before they result in unplanned system downtime. Another tool in the suite is ActiveUpdate, an advanced Web-based application that provides proactive notification and automatic download of software updates for all Compaq systems that range from handhelds to servers.
Another example of an autonomic system is the Adaptive data flow engine, a technology used to scan ‘Deep Web’ databases and collect information. Deep Web refers to information on the Internet that cannot be found using traditional search engines by using Telegraph software. Telegraph does much more than traditional search engines. It fetches data from Web-accessible databases, analyses it, does cross-referencing, collates data and presents it all on one screen.
Research in autonomic computing is also taking place in labs at MIT, University of Texas, University of Michigan and other universities.
6.2. Benefits

The main benefit of autonomic computing is reduced TCO (Total Cost of Ownership). Breakdowns will be less frequent, thereby drastically reducing maintenance costs. Fewer personnel will be required to manage the systems.
According to IBM studies, approximately 80 percent of the cost of major computer systems revolved around hardware and software procurement earlier. Now, the cost of trained personnel required to manage these systems is roughly equivalent to the equipment costs. IBM feels the cost of personnel will double that of equipment in the next five to six years.
The most immediate benefit of autonomic computing will be reduced deployment and maintenance cost and increased stability of IT systems through automation. IBM also says that autonomic systems can reduce the time for deploying new systems.
The challenge for a customer today is that his IT infrastructure is most likely heterogeneous, meaning it’s comprised of hardware from multiple vendors. This makes it increasingly difficult to add systems and manage them autonomically. Customers spend three-fourths of their application deployment time and costs on the integration equation. We need autonomic capabilities so that IT infrastructures can be self-configuring, self-healing, self-optimizing and self-protecting.
Another benefit of this technology is that it provides server consolidation to maximize system availability, and minimizes cost and human effort to manage large server farms.
6.3. Applications
Autonomic computing promises to simplify the management of computing systems. But that capability will provide the basis for much more: from seamless e-sourcing and Grid Computing, to dynamic e-business and the ability to translate business decisions that managers make to the IT processes and policies that make those decisions a reality.
E-sourcing is the ability to deliver IT as a utility, when you need it, in the amount you must have to accomplish the task at hand. Autonomic computing will create huge opportunities for these kinds of services.
Other applications include server load balancing, process allocation, monitoring power supply, automatic updating of software and drivers, pre-failure warning, memory error-correction, automated system backup and recovery, etc.

One area where autonomic computing can contribute significantly is Grid Computing. Grids, empowered with the self-managing capabilities of autonomics can revolutionize computing. And the applications are not just restricted to the IT industry alone.
There are several Grid Computing initiatives underway. The University of Pennsylvania, for instance, is building a powerful grid that aims to bring advanced methods of breast cancer diagnosis and screening to patients, while reducing costs. The Grid is a utility-like service delivered over the Internet, enabling thousands of hospitals to store mammograms in digital form. The Grid will provide analytical tools that help physicians diagnose individual cases and identify cancer ‘clusters’ in the population.
Another example is the North Carolina Biometrics Grid, accessible to thousands of researchers and educators to help accelerate the pace of genomic research that could lead to new medicines to combat diseases and develop more nutritious foods to feed the world’s population.
But autonomic computing development faces some challenges too and it may be some time before we see its implementation in applications like Grid Computing.
7.0 What happen if does not have autonomic in the future?
What if the unthinkable happens and we do not adopt autonomic computing or similar technology?
Mixtures of the following events will happen with different severity.
1. Complexity will continue to increase, reaching unmanageable proportions.
2. Further pressures will increase on IT staff to fix unfixable problems.
3. Reliability of systems and performance will deteriorate. Businesses will suffer.
4. Corporations will lose their competitive edge and lose substantial markets and profits.
5. Corporations will be required to increase their IT budgets to astronomical proportions.
6. Senior management will reject these astronomical budget requests—the cycle of problems will continue.
7. More and more skilled IT staff will be needed at substantial costs.
8. The health of many IT staff will suffer.

The IT industry has lingered too long in the religion of overspecialization, in which integration was just another specialty. The IT industry has made spectacular progress in almost every aspect of computing. But it has not made enough in the one area that now counts most: dealing with the complexity generated by all the systems we have installed so far. In this heady rush, there is a danger of losing sight of the very people who use IT and who have come to depend on us for increased productivity and improvement in many aspects of their daily lives. We've made it unnecessarily difficult for them to tap the potential we've promised them. It's time for this to change. It must change. Chaos is not an option.

This next era of computing will enable progress and abilities we can barely envision today. But the best measure of our success will be when our customers do not think about the functioning of computing systems.

8.0 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. [13] Key research issues and challenges are presented below.

Conceptual Challenges:
Conceptual research issues and challenges include
Defining appropriate abstractions and models for specifying, understanding, controlling, and implementing autonomic behaviors.
Adapting classical models and theories for machine learning, optimization and control to dynamic and multi agent system
Providing effective models for negotiation that autonomic elements can use to establish multilateral relationships among themselves
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 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 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. Further the middleware itself should be secure, reliable and robust against new and insidious forms of attack that use self-management based on high-level policies to their own advantage.

Application Challenges:
The key challenges at the application level are the formulation and development of systems and applications that are capable of managing 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.

9.0 Future direction of Autonomic computing
Realistically, 100 percent autonomic systems will be very difficult to build and will require significant exploration of new technologies and innovations. That’s why researches view this as a Grand Challenge for the entire IT industry. People will need to make progress along two tracks:
First, making individual system components autonomic and achieving autonomic behavior at the level of global enterprise IT systems.

That second track may prove to be extremely challenging. Unless each component in a system can share information with every other part and contribute to some overall system awareness and regulation, the goal of autonomic computing will not really be reached. So one huge technical challenge entails figuring how to create this “global” system awareness and management. Or to put it another way, how do we optimize the entire stack of computing layers as a whole? It’s not something we currently know how to do.

We know there are also many interim challenges: how to create the proper “adaptive algorithms”—sets of rules that can take previous system experience and use that information to improve the rules or how to balance what these algorithms “remember” with what they ignore. We humans tend to be very good at the latter—we call it “forgetting”—and at times it can be a good thing: we can retain only significant information and not be distracted by extraneous data.

Still another problem to solve: how to design an architecture for autonomic systems that provides consistent interfaces and points of control while allowing for a heterogeneous environment. We could go on, as the list of problems is actually quite long, but it is not so daunting as to render autonomic computing another dream of science fiction. In fact, we’re beginning to make progress in key areas.

Many established fields of scientific study will contribute to autonomic computing.
What we’ve learned in artificial intelligence, control theory, complex adaptive systems and catastrophe theory, as well as some of the early work done in cybernetics, will give us a variety of approaches to explore. Current research projects at laboratories and universities include self-evolving systems that can monitor themselves and adjust to some changes, “cellular” chips capable of recovering from failures to keep long-term applications running, heterogeneous workload management that can balance and adjust workloads of many applications over various servers, and traditional control theory applied to the realm of computer science, to name just a few.

The following list is a select number of recommendations and observations that have come to light during the research and writing of this book. These recommendations are not in any specific order—rather they are a list of thoughts, suggestions, and recommendations that may make autonomic computing more functional.
  • Develop autonomic tools and technologies on top of existing standards.
  • Develop autonomic-based systems using multivendor approaches.
  •  Develop metrics to assess the relative strengths and weakness of different approaches.
  •  Provide mature software development methodologies and tools for autonomic-based systems.
  •  Develop sophisticated yet easy-to-use autonomic environments to include support for design, test, maintenance, and visualization of autonomic-oriented systems.
  •  Develop libraries of interaction protocols designed for specific autonomic behavior interactions.
  •  Develop the ability for autonomics to collectively evolve languages and protocols specific to the application domain and the autonomics involved.
  •  Work toward autonomic-enabled semantic Web services.
  •  Develop tools for effective sharing and negotiation strategies.
  •  Develop computational models of norms and social structure.
  •  Develop sophisticated organizational views of autonomic systems.
  •  Advance the state of the art in the theory and practice of negotiation strategies.
  •  Develop an enhanced understanding of autonomic society dynamics.
  •  Advance the state of the art in the theory and practice of argumentation strategies.
  •  Develop autonomic-based eScience systems for the scientific community.
  •  Develop techniques for allowing users to specify their preference and desired outcome of negotiation in complex environments.
  •  Develop techniques to enable autonomic to identify, create, and dissolve coalitions in multiautonomic negotiation and argumentation contexts.
  •  Work on enhancing autonomic abilities to include appropriate adaptation mechanisms.
  •  Develop techniques for autonomic personalization.
  •  Develop distributed learning mechanisms.
  • Develop techniques to enable automatic runtime reconfiguration and redesign of autonomic systems.
  •  Develop techniques for testing the reliability of autonomics.
  •  Undertake research on methods for ensuring security and verifiability of autonomic systems.
  •  Develop and implement trust and reputation mechanisms.
  •  Engage in related-research standardization activities (e.g., UDDI, WDL, WSFL, XLANG, OMG, CORBA, and other widely used industrial-strength open standards).
  •  Build autonomic prototypes spanning organizational boundaries (potentially conflicting).
  •  Encourage early adopters of autonomic technology, especially those who take some risk. Provide incentives.
  •  Develop a catalog of early adopter case studies, both successful and unsuccessful.
  •  Provide analysis and publish reasons for success and failure cases.
  •  Identify and publish best practices for autonomic-oriented development and deployment.
  •  Support open standardization efforts.

10.0 Conclusion

In this paper, 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 use autonomic strategies and algorithms to handle complexity and uncertainties with minimum human intervention.

Several research efforts focused on enabling the autonomic properties address four main areas: self-healing, self-protection, self-configuration, and self-optimization. Projects in both industry and academia, have addressed autonomic behaviors at all levels, from the hardware level to software systems and applications. At the hardware level, systems may be dynamically upgradable, while at the operating system level, active operating system code may be replaced dynamically. Efforts have also focused on autonomic middle-ware, programming systems and run-time. At the application level, self optimizing databases and web servers dynamically reconfigure to adapt service performance.

However, achieving overall autonomic behaviors remains an open and significant challenge, which will be accomplished through a combination of process changes, skills evolution, new technologies and architecture, and open industry standards.


Thanks to researchers who are researches about autonomic computing.

[1] Autonomic Computing: An Overview_ Manish Parashar and Salim Hariri
[2]Autonomous Computing Systems by Neil Joseph Steiner
[7]P. Horn, Autonomic Computing: IBM’s Perspective on the State of Information Technology, IBM Corporation (October 15, 2001); available at http://www.research.ibm.com/autonomic/manifesto/autonomic_computing.pdf.
[9]Research Challenges in Autonomic Computing by Jeff Kephart IBM Research
High Performance Distributed Computing Laboratory, University of Arizona
The Applied Software Systems Laboratory, Rutgers, The State University of New Jersey
[11]Evaluation issues in Autonomic Computing, Julie A. McCann, Markus Huebscher
Department Of Computing, Imperial College London
[12]The Vision of Autonomic Computing, Jeffrey O. Kephart, David M. Chess,IBM Thomas J.Watson Research Center
[13]Learning Procedures for Autonomic Computing by Tessa Lau, Daniel Oblinger, Lawrence Bergman, and Vittorio Castelli
[14]The dawning of the autonomic computing era
by A. G. Ganek ,T. A. Corbi
[18] http://www.research.ibm.com/

By K.H.L.R. Perera

You can leave a comment   :)