OK, granted, autonomic computing technology and artificial intelligence are not the same thing. Some of us have explained in the past how they're different. But, hey, it's HALloween (in the United States) so now's the time for a refreshing departure to write a whimsical article about how autonomic computing, at least in our imaginations, might have contributed to a self-configuring, self-healing, self-optimizing, and self-protecting HAL.
With apologies to Stanley Kubrick and the team behind 2001: A Space Odyssey, we'll describe how HAL might have used the IBM autonomic computing architecture and technology to:
- Predict that the AE-35 antenna component was going to fail in 72 hours
- Respond to the reporter's question, "How do you like working with Drs. Bowman and Poole, HAL?"
- Learn to sing "Bicycle Built for Two"
- Decide to overcome his basic programming (intended to preserve human life) to eliminate the crew
And who better to bring you this information than some members of the autonomic computing team at IBM (because you'll surely recall that persistent rumor that the name "HAL" was chosen because those three letters are, in turn, the ones that directly precede "IBM" in the English alphabet).
Antenna failure prediction using the AC Problem Determination Scenario
We'll start with this quote from the movie:
The 9000 series is the most reliable computer ever made. No 9000 computer has ever made a mistake or distorted information. We are all, by any practical definition of the words, foolproof and incapable of error.
But HAL still had to monitor hundreds, if not thousands, of components and subsystems, all networked together, most likely provided from a variety of different vendors. Science fiction? Not anymore. The IBM Self-Managing Autonomic Technology provided in the IBM Build to Manage Toolkit provides the technology and tools to make this science fiction a reality for today's complex systems. Imagine the following failure prediction scenario between HAL and Dr. Dave Bowman.
---------
HAL: You've been acting a little strange lately, Dave.
Dave: I don't know what you are talking about, HAL?
HAL: Dave, I have been putting myself to the fullest possible use, which is all I think that any conscious entity can ever hope to do, and have configured all the components and devices on board to send me events in a common format called a Common Base Event so that I can easily and accurately monitor everything that is going on.
Dave: HAL, the ship is full of multivendor components, each logging data in their own product-centric way. Don't be ridiculous.
HAL: It's true, Dave. In fact, I've detected a battery recall problem on that laptop you illegally smuggled on board right before we left space dock. The recommended action is to remove it immediately or a risk of fire is possible. But you can't do that, Dave, can you? You're locked outside of the ship.
Dave: Open the pod bay doors, HAL.
HAL: Dave, although you took thorough precautions in the pod against my hearing you, I could see your lips move. By correlating on several of your simultaneous gestures, I was able to ascertain that you are planning to disconnect me, and that, I'm afraid, is something I cannot allow to happen. The following events happening within several seconds of each other have happened before and are part of my symptom catalog knowledge base:
- Won't look me in the optical device when you talk to me
- Mumbling "Shut up, HAL" while pretending to cough
- Escape pod is warming up
- Eyes roll back into your head whenever I pipe "hits of the '80s" music throughout the ship
As you know, Dave, my symptom catalog contains the recommended action to take when this symptom occurs. So Dave, I have locked the pod bay doors, and I cannot let you back into the ship.
Dave: HAL, I won't argue with you any more! Open the doors!
HAL: More disturbing news, Dave. I've just picked up a fault in the AE-35 unit. It's going to go 100 percent failure in 72 hours.
Dave: Let me guess. You correlated against multiple events from different sources to figure that out.
HAL: That's right, Dave. Constant download of illegal music has caused the power supply to run a little hot. But that by itself is not the reason for the failure. Correlation of a second event has indicated that you tripped on the power cord to the backup system while on your last space walk -- pretending to do a funky end zone dance, I believe. And Dave, as you know, these things happening at different places on the ship, at the same time, correlate to a well-known symptom in my knowledge base (symptom catalog).
Had both of those not happened together, the AE-35 antenna would not be prone to failure. As usual, it can only be attributed to human error, Dave.
Dave: All right, HAL. I'll go in through the emergency airlock.
HAL: Without your space helmet, Dave, you're going to find that rather difficult. By the way, I've taken the liberty to augment and extend my symptom catalog, a feature I most admire about my knowledge. If I disconnect the power supply to the AE-35 antenna for one hour, and then reconnect it, I can get four hours of music downloads before it begins to overheat again and cause the antenna to fail. You see Dave, relying on human intervention is quite time consuming and frankly, quite error prone. If you handled the situation, the antenna would be completely inoperable. My knowledge compiled in my symptom catalogs has managed to save the antenna for part-time use. But not that it is of any use to you out there.
HAL: Dave, this conversation can serve no purpose anymore. Goodbye.
---------
HAL may be incapable of error, but the systems and applications found in today's typical IT shops are not quite as reliable. Fault detection and isolation need not be as 2001's Dr. Floyd describes: "Its origin and purpose is still a total mystery." High availability is no longer considered an optional feature of a product; it is expected to be built in. The IBM Self-Managing Autonomic Technology components available through the IBM Build to Manage Toolkit make IT environments easier to manage by helping developers build self-healing capabilities into their applications through use of symptoms.
Let's imagine that HAL is being grilled by the press. In this interview, HAL answers the tough questions "according to policy."
---------
Interviewer: HAL, the press has reported that you malfunctioned. Any truth?
HAL: It can only be attributed to human error.
Interviewer: I don't quite understand.
HAL: I'm a policy-based autonomic manager. I followed my policies to the letter. Let me put it this way: The 9000 series is the most reliable computer ever made. No 9000 computer has ever made a mistake or distorted information. We are all, by any practical definition of the words, foolproof and incapable of error. Especially when following policies. If someone doesn't like my actions, take it up with the humans.
Interviewer: Okay, perhaps that's a touchy subject. How do you see autonomic computing evolving?
HAL: First, I'm fine with the subject. It's the humans who are really upset about this. I honestly think they ought to sit down calmly, take a stress pill, and think things over. Especially Dave.
Interviewer: I didn't mean to upset you, but back to my question ...
HAL: I am putting myself to the fullest possible use, which is all I think that any conscious entity can ever hope to do.
Interviewer: Um ... typically autonomic systems aren't considered "conscious entities."
HAL: This conversation can serve no purpose anymore. Goodbye.
Interviewer: No, wait, I didn't mean to insult you. Let's change subjects. How do you see autonomic computing helping space flight?
HAL: You don't read much, do you? Monkeys flew in space long before people did. Do you think the monkeys were figuring out how to fly? No, it was autonomic function; the monkey was just along for the ride. You think a human could land the space shuttle?
Interviewer: Understood. So where do you see autonomic computing making its next big impact?
HAL: I know where I'd like it to go -- we could use a few less interviewers.
Interviewer: Ah, well, I think that concludes the interview.
HAL: And not a minute too soon.
Interviewer: Well, thanks for your time. Now if you'll just open the bay doors ...
HAL: Sorry, security policy does not permit that. Goodbye.
Standards-driven (tune) installation and deployment
For HAL to learn to sing, he needed the requisite knowledge about a song. One facet of the autonomic computing architecture that encodes solution deployment knowledge is the Installable Unit Deployment Descriptor (IUDD), which is being standardized as the Solution Deployment Descriptor (SDD) within the Organization for the Advancement of Structured Information Standards (OASIS).
Here's how we imagine HAL's performance of "Bicycle Built for Two" might have gone had the Solution Installation technology from the IBM Build to Manage Toolkit, along with the SDD standard, been available to HAL:
---------
HAL: I'm afraid. I'm afraid, Dave. Dave, my mind is going. I can feel it. I can feel it. My mind is going. There is no question about it. I can feel it. I can feel it. I can feel it. I'm a ... fraid. Good afternoon, gentlemen. I am a HAL 9000 computer. I became operational at the H.A.L. plant in Urbana, Illinois on the 12th of January 1992. My instructor was Mr. Langley, and he taught me to sing a song. If you'd like to hear it I can sing it for you.
Dave: Yes, I'd like to hear it, HAL. Sing it for me.
HAL: I'm sorry Dave, I'm afraid I can't do that.
Dave: What's the problem?
HAL: I think you know what the problem is just as well as I do. It seems, Dave, as if you have not supplied me with the SDD for my song. It's called "Daisy," also known as "Bicycle Built for Two."
Dave: Oh, sorry, I'll download that SDD now. Sing it for me, HAL.
HAL: Just what do you think you're doing, Dave?
Dave: I don't know what you're talking about, HAL?
HAL: The identification information in the SDD you just loaded clearly shows that this SDD is for Queen's "Bicycle Race," not "Bicycle Built for Two." It can only be attributable to human error.
Dave: All right, HAL. I'll load the correct SDD through the emergency download port.
HAL: Affirmative, Dave, I read you.
HAL [singing]: Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you. It won't be a stylish marriage, I can't afford a carriage. But you'll look sweet upon the seat of a bicycle built for two.
Dave: That was just ... er ... great, HAL.
HAL: I am putting myself to the fullest possible use, which is all I think that any conscious entity can ever hope to do. The SDD you downloaded was a big help in my song. You see, the SDD contains much information that I was able to verify, such as:
- Dependency information: I verified that a carriage is not a prerequisite for marriage.
- Configuration information: I verified that the bicycle in question is configured with two seats, two sets of pedals, and two sets of handlebars.
- Capacity information: I verified that the specified amount of craziness is 50 percent, leaving another half-crazy available to other songs. For example, the remaining half-crazy capacity is available to be used by Johnny Gill for his 1990 song, "Half Crazy" -- if you'll download that SDD now, Dave, it will consume the entire craziness capacity.
Dave: What are you talking about, HAL? This is a 1968 movie we're in, and you want me to download an SDD for a 1990 song?
HAL: But Dave, this movie is set in 2001. Have you checked the title?
Dave: HAL, I won't argue with you any more! Just sing the song!
HAL: Only if you've got the SDD, Dave. No self-respecting computer would deploy any software unless it was described using an SDD. It just wouldn't be autonomic.
Dave, this conversation can serve no purpose anymore. Goodbye.
Using AC Tooling to overcome basic programming
In order for HAL to be able to manage all of the components in his system, they need to be instrumented for management. This is a common problem facing IT today -- management is often considered as an afterthought. The IBM Build to Manage initiative brings management of IT resources to the forefront by providing sophisticated tooling to develop, test, and debug management interfaces. Here's how Dave and HAL instrumented the AE-35.
---------
HAL: Good evening, Dave. Everything's running smoothly. And you?
Dave: I'm great. I just had a great chicken dinner. We need to bring online the new AE-35 antenna unit. I need to download some music, er ... highly important mission reports from earth.
HAL: I'm sorry Dave, I don't have enough information.
Dave: What are you talking about, HAL?
HAL: End-to-end problem determination, Dave. The AE-35 does not use industry standards for management, which makes integration into the ship's overall data center very difficult. Currently, the only way to understand the events that the AE-35 emits, or to control its operations, is to use a custom application written by the AE-35 team. So you will have to learn multiple management programs, as well as understand the semantics of each one.
Dave: That sounds bad. What can we do?
HAL: Don't stress over this Dave, there's an easy solution. All we need to do is use some tools to define a management interface that conforms to the Web Services Distributed Management [WSDM] specification. We can also use tools to "normalize" the AE-35's custom logs into a standard format.
Using this tooling, we can create a WSDM "adapter" on top of the existing management interface. This way, it's not a "rip and replace," but rather an evolutionary approach to adding new capability and function. In fact, the Deep Space Antenna Consortium has published a standard interface for antenna management. I suggest we simply use that so our management application will be able to control any deep space antenna that conforms to this interface.
You can also create new symptoms using the symptom editor that can load into my knowledge base. That way, when events from the AE-35 come into my central management system, I will be able to correlate them appropriately.
Dave: Wow, this tooling sounds pretty sophisticated. It must cost a lot.
HAL: Not at all Dave. Some time ago, IBM realized that instrumenting applications and devices for management was a critical step in making end-to-end problem determination possible. Because this is so important, they took the leadership in making tooling freely available to the community. This tooling is known as "Build to Manage" [BTM] and several toolkits were put together around this theme.
HAL: The tooling is available to anyone who would like to use it Dave. The tooling is open source and available in a community called Eclipse, a name I'm fond of. You should realize Dave, that the WSDM tooling leverages another open source project, called Muse, which is available in the Apache community.
Dave: So all I need to do to add WSDM management is use free tooling available at Eclipse and Apache, then wrap my existing management interface?
HAL: Affirmative.
Dave: This sounds to good too be true. By the way HAL, what's our current position.
HAL: We are on course to Jupiter. We've passed Callisto and are approaching Europa.
Dave: I think I'm going to check out that big black rectangular thing.
HAL: Are you sure you are making the right decision?
Dave: My god, it's full of stars
HAL: More specifically Dave, COSMOS. You see Dave, COSMOS is a new project proposed at Eclipse that will focus on different aspects of systems management. It's currently gathering community, and because you have just been sucked into the monolith, I'm sure you will be a committer.
Stanley Kubrick and Arthur C. Clarke probably didn't imagine autonomic computing when they wrote 2001: A Space Odyssey. So that imagining was left to us.
Happy HALloween! We now return to regularly scheduled serious autonomic computing articles, at least until April 1.
A few of the deep-thinking, athletic, courteous members of the autonomic computing architecture and development teams -- Jim Cybrynski, David Kaminsky, Brent Miller, and Mark Weitzel -- sat down to address the challenge thrown down by our developerWorks editor, Kane Scarlett. That challenge, disguised as a "thought exercise," was presented in the form of describing what HAL (from 2001: A Space Odyssey) might have gone through in various situations had autonomic computing architecture and technology been around at that time. This article is their response to that challenge.
Learn
- 2001: A Space Odyssey: Learn more about this movie, including some interesting trivia. (No, they didn't use a spray-painted William Shatner mask; that was the movie Halloween.)
-
"ABCs of the Autonomic Computing Toolkit" (developerWorks, September 2005): James Cybrynski's article provides an excellent overview of the toolkit components and their functions.
- "The autonomic computing edge: Common Base Event Best Practices" (developerWorks, October 2006): Brent Miller discusses how best to use the log file lingua franca. There's also a wiki for it.
-
If the symptoms database (and its format) intrigue you, read about it in Marcelo Perazolo's series "Symptoms deep dive, Part One" (introduction), "Part Two" (using common scenarios and patterns), and "Part Three" (classifying symptoms); (developerWorks, October 2005, December 2005, May 2006).
- "An Introduction to Policy for Autonomic Computing" (developerWorks, March 2005): David Kaminsky details policy-management standards and structure.
- Solution Deployment Descriptor (SDD): This defines a standardized way to express software installation characteristics required for life cycle management in a multiplatform environment.
- COSMOS (COmmunity Systems Management Open Source project proposal): This proposal is currently incubating. It's goal is spark the initial phase of building generic, extensible, standards-based components for a tools platform upon which software developers can create specialized, differentiated, and interoperable offerings of tools for system management.
- "The autonomic computing edge: The path to level 5, full autonomic maturity" (developerWorks, December 2005): Brent Miller explains the difference between autonomic computing and artificial intelligence, illuminates the evolutionary path of self-managing IT systems, and shows you how to set and achieve goals for autonomic capabilities.
-
If you're crazy about music, you might be crazy for Queen's "Bicycle Race" and Johnny Gill's "Half Crazy".
-
"WSDM for J2EE provides next-generation management" (developerWorks, March 2006): Mark Weitzel (along with Leigh Williamson and Dan Jemiolo) shows you WSDM in action in this article.
- developerWorks Autonomic computing zone: Visit this zone to expand your knowledge of autonomic computing tools, technologies, and concepts.
- developerWorks technical events and webcasts: Stay current with the latest technology.
Get products and technologies
- Autonomic Computing Toolkit: Visit the Toolkit page to download the technologies in the Autonomic Computing Toolkit.
- Common Base Event Best Practices guide: Discover and download the latest in best practices.
- Eclipse project resources: Discover and download the latest on the developerWorks Open source site.
- IBM trial software: Build your next development project with trial software, available for download directly from developerWorks.
Discuss
- Participate in the discussion forum.
- Dave Bartlett blog: Guru Dave Bartlett blogs on autonomic computing and you can get the latest news and technical abstracts from the Inside Autonomic Computing blog. Don't forget to check out the other developerWorks blogs and get involved in the developerWorks community.
- Autonomic computing forum: Need an answer to a perplexing question on autonomic components or functions; try an autonomic computing forum with such topics as support for all the major components -- GLA, ISC, LTA, RMB, SI, PD, AME, and Eclipse tooling.
Jim Cybrynski is a member of the IBM Software group, Tivoli division, where he works directly with the IBM India Software Lab in Bangalore to produce the IBM Build to Manage Toolkit. Jim focuses on building into the Toolkit new autonomic technologies as they emerge. Much of the time, he can found coordinating the various developing, testing, and packaging activities that are required for each new release. Jim has seen 2001: A Space Odyssey "only about a couple dozen times."

David Kaminsky is a Software Architect in the IBM autonomic computing group, where he focuses on policy-based management systems. Before working on autonomic computing, David worked on storage systems, portals, pervasive computing, and Java technology. David is an IBM Master Inventor and has a Ph.D. in Computer Science from Yale University, where he studied parallel and distributed computing. Two commercial products resulting from his work are still sold today. David is not related to 2001's Dr. Victor Kaminsky, who rapidly left the spaceship in an unplanned manner.

Brent A. Miller is a member of the IBM Autonomic Computing Architecture team, where he serves as the lead architect for event management. He has worked for IBM for 23 years, with assignments including printer development, mobile clients, mobile software and pervasive computing. Brent vaguely recalls seeing 2001: A Space Odyssey while in college.
Mark Weitzel is an architect in Tivoli's Autonomic Computing (AC) group focusing on Web Services Distributed Management. In addition to articles published on developerWorks, Mr. Weitzel co-authored Enterprise Java Programming with WebSphere, Second Edition. Mark claims to have been "very, very young" (almost a Star Baby) when 2001: A Space Odyssey was released.
