Skip to main content


developerWorks  >  Autonomic computing  >

New to Autonomic computing

developerWorks


What is autonomic computing anyway?
Do you just put autonomic parts on your system, then you're finished?
I see. Are there other key concepts to autonomic computing?
Why is autonomic computing important?
What are the core technologies used to enable autonomic computing?
How does autonomic computing relate to the On Demand concept?
How can I apply autonomic computing principles to an application, system, or network?
How can I improve my autonomic computing skills?
The individual developer resources are excellent, but I run the IT department of a business. We've got experienced programmers -- how can I introduce autonomic computing concepts to our internal systems and our products?
What IBM tools and products are available for autonomic computing?



The developerWorks Autonomic computing zone is filled with articles, tutorials, and tips that can help a developer understand the principles of autonomic computing and implement self-managing features in their applications, systems, and networks. However, the volumes of resources can be overwhelming for users trying to discover where to start learning about autonomic computing. With that daunting task in mind, developerWorks offers this page to provide an overview, or starting point, for users to learn about autonomic computing, illustrating the basics within the overall context of the technology, especially as it pertains to application development and e-business. This resource delivers starting points in the form of relevant developerWorks articles, tutorials and tips, IBM learning services education, webcasts, workshops, and IBM products for further investigation.


What is autonomic computing anyway?

Autonomic computing is a phrase IBM uses to describe the set of concepts, technologies, and tools that enable applications, systems, and entire networks to become more self-managing. Self-management involves four qualities which are often referred to as Self-CHOP characteristics -- self-configure, self-heal, self-optimize, and self-protect. (Brent Miller explains CHOP in The autonomic computing edge: Can you CHOP up autonomic computing?.) The word autonomic is borrowed from physiology; as a human body knows when it needs to breathe, software is being developed to enable a computer system to know when it needs to repair itself, configure itself, and so on.

  • An autonomic computing roadmap points you in the right direction by leading you down a path that introduces the major autonomic computing concepts. This roadmap gives you an idea of just how to go about the process of implementing self-managing attributes.
  • After the roadmap article, you may want to Take a quick tour of autonomic computing. Survey the autonomic computing landscape for major concepts, then spend a few minutes learning how the technology might help you automate some of those pesky tasks that fritter away your time. Learn how you might simplify problem determination, streamline common systems administration, and automate routine system maintenance.

Back to top



Do you just put autonomic parts on your system, then you're finished?

Excellent question! Integrating autonomic features into your system would be an overwhelming task if you thought you had to go from the concept to a full-blown implementation in one motion. Let's back up a step and emphasize that autonomic computing is really an evolution; there are components and technologies that can enable autonomic computing features on existing systems, but autonomic computing is really an evolutionary process of enhancing the self-managing capabilities of an IT system toward a more ideal state in your computing environment.

That said, products, systems, and IT environments can be classified as meeting one of five levels of maturity that show how a business is evolving its use of autonomic capabilities and supporting processes and skills:

  • Basic, where IT professionals manage each infrastructure element independently and set it up, monitor it, and eventually replace it.
  • Managed, where systems management technologies are used to collect information from disparate systems onto fewer consoles, helping to reduce the time it takes to collect and synthesize information as the IT environment becomes more complex.
  • Predictive, where analysis capabilities are introduced in the system to monitor situations that arise and analyze them to provide possible courses of actions. The IT professional makes a determination on what course of action to take.
  • Adaptive, where the IT environment can automatically take actions based on the available information and the knowledge of what is happening in the environment.
  • Autonomic, where business policies and objectives govern the IT infrastructure operation. IT professionals interact with the autonomic technology tools to monitor business processes and alter the objectives.

See, the good news is that without doing anything, your environment is probably already at the managed/predictive level. Some good resources for more on this way of looking at implementing autonomic computing features:


Back to top



I see. Are there other key concepts to autonomic computing?

An autonomic computing system can be divided into the layers/parts; these parts are defined by the Autonomic Computing Architecture connected using a distributed infrastructure that allows the components to collaborate using standard mechanisms such as Web services. This architecture distributed infrastructure (described in An architectural blueprint for autonomic computing) can be thought of as a service bus that integrates the various components, which include:

  • Managed resources, any type of resource (hardware or software) that may have embedded self-managing attributes, form the lowest layer of the system.
  • Touchpoints come next: They are the interfaces to an instance of a managed resource, such as an operating system or a server. A touchpoint implements sensor (receives and responds to a stimulus) and effector (causes an action in response to a stimulus) behavior for the managed resource and maps the sensor and effector interfaces to existing interfaces. (See The autonomic computing edge: Keeping in touch with touchpoints for more on touchpoints.)
  • Autonomic managers automate some portion of the IT process, including orchestrating other managers.
  • An Integrated Solutions Console is a centralized, common system-management interface for the IT staff. (More information on this can be found in the section on core technologies.)

A major key to your understanding how the autonomic computing system works is the idea of an autonomic manager, the structure that contains the control loop that handles events. A particular resource may have one or more touchpoint autonomic managers, each implementing a relevant control loop. Some autonomic managers orchestrate other autonomic managers -- it is these orchestrating autonomic managers that deliver the system-wide autonomic computing capability by incorporating control loops that have the broadest view of the overall IT infrastructure.

Understand the autonomic manager concept explains it all, with diagrams and examples of a working autonomic manager, so you can better grasp the critical role of the autonomic manager in a self-managing system.


Back to top



Why is autonomic computing important?

Take a look at this architectural blueprint for autonomic computing whitepaper. Not only will it describe the big push toward autonomic computing and why it is a critical component to on demand systems, but it is also truly a map to help you leap the first hurdle in autonomic computing -- understanding the big picture; the "why" it should happen and the "what with" to make it happen.

And if that paper is not enough to help you understand the importance of the concept, listen to a practitioner explain to forum participants:

And when you're through listening, jump into the fray and ask your questions and demonstrate your knowledge.


Back to top



What are the core technologies used to enable autonomic computing?

Here's a list of autonomic computing-enablement technologies to get you started:

  • For problem determination (PD), probably the most entertaining and exciting task that is tailor-made for autonomic computing, these technologies are available.
    • The Log Analyzer extends the capabilities of IBM Tivoli Monitoring by providing the ability to perform detailed problem diagnosis on occurring situations and events. It provides two main functions:
      • An event analysis tool, which provides the ability to gather, merge, filter, sort, display, and analyze contents of log files and events from a large number of products in a single view for problem isolation and triage to problem analysis.
      • A development work bench, which provides the ability to extend the event analysis tool to support additional products, non-IBM offerings, and log files through the creation of new adapters (to interpret the content of the log files) and correlation engines (to analyze log files).
    • The Symptom Editor enables you to create and maintain symptom catalogs and symptom definitions that comply with the Symptoms Reference Specification and the Symptoms Best Practices. You can run Symptom Editor as a stand-alone tool, or launch it from the Log Analyzer.

    Download information is located here.

  • For provisioning, the ability to predict when new capacities need to be allocated or deallocated, and orchestration, the ability to monitor the overall system and use autonomic computing concepts to determine when an action needs to be taken, use the following resources:
  • For optimization, there are two excellent resources available: Optimize on demand solutions with orchestration and automated provisioning presents a simple approach by using existing clustering concepts; Self-managing systems introduces the problem of optimization and a model that can be used to solve it.
  • The following core technologies are in early stages of development. The Autonomic Computing Roadmap includes a high-level description of:

Back to top



How does autonomic computing relate to the On Demand concept?

The simplest answer is by offering high-level access to improved infrastructure services. Service-level automation and orchestration provides services that facilitate the translation of QoS policy declarations associated with business services into reality by enabling services that can implement autonomic managers that monitor the execution of services in the On Demand Operating Environment (ODOE) according to the policy declarations they receive. They analyze their behavior, and if the analysis indicates problems, they plan a meaningful reaction to that problem and initiate the execution of that plan. This is a closed-feedback loop known as a MAPE (Monitor-Analyze-Plan-Execute) loop. . (The MAPE loop is the same as the control loop discussed in the section on key concepts.)

An on demand environment must be open, virtualized, and autonomic (therefore, autonomic is one characteristic of an On Demand Business). The implications for an autonomic, On Demand Business approach become quickly evident -- you have a network of organized, "intelligent" computing components that provide customers with what they need, when they need it, without mental or physical efforts by a human operator.

In Operating environment essentials for an on demand breakthrough, the authors discuss infrastructure management as a way of fulfilling On Demand. Automation enables your IT infrastructure to manage many day-to-day tasks itself. With a self-managing infrastructure, you increase efficiencies and simplify resource allocation. A fully automated IT infrastructure can sense changing conditions, like surges in demand or isolated application errors, and can spot trends that could lead to system downtime. The autonomic computing-enabled infrastructure automatically responds by taking corrective actions that ensure your IT resources remain aligned with your business goals.


Back to top



How can I apply autonomic computing principles to an application, system, or network?

First, make sure you understand the key concepts to autonomic computing. Then work with the resources provided in the core technologies section and exhaust the articles and (especially) the tutorials under improving your skills. Then, practice, practice, practice your way to the Carnegie Hall of autonomic computing integration.


Back to top



How can I improve my autonomic computing skills?

First try this: Make sure you have a concept of the big picture in autonomic computing. Why? After all, you don't need to know how the subway works to ride it -- but you do if you're going to drive it! Start at your own level of existing knowledge: No clue | A little knowledge is a dangerous thing | Show me the components | Let's write some code | I'm a coding monster.

Second, see what the developerWorks Autonomic computing technology zone has to offer:

After you've taken advantage of the self-learning avenues, even if there are still some fuzzy points, consider trying a free forum where you can get an overview of the core autonomic technologies from someone who's been there and a real-world brain dump from people who've actually experienced using autonomic computing concepts to build a system.

Finally, the ultimate step to becoming an autonomic computing coding guru is to participate in an expert exercise: Apply for an IBM residency to produce a Redbook. Just another step to putting your knowledge to practical use and testing your skills in a real-world environment.


Back to top



The individual developer resources are excellent, but I run the IT department of a business. We've got experienced programmers -- how can I introduce autonomic computing concepts to our internal systems and our products?

We're glad you asked that. We understand that when acquiring and integrating technology, the needs of an individual developer and the needs of a business usually differ in scope. With that in mind, we offer several resources to help your business build autonomic computing solutions:


Back to top



What IBM tools and products are available for autonomic computing?

You'll discover that at IBM, we think so highly of autonomic computing technology that we use it in our own products:


Back to top


Document options

Document options requiring JavaScript are not displayed


Register:  IBM Rational Software Development Conference:  June 1-5, Orlando, FL

Special offers
RSDC 2008 RU ready to save the day?
Make innovation happen with IBM Software Guide
Best practices in requirements management webcast

More offers