Skip to main content

Build a HAL 9000 with IBM autonomic computing technology

How did 2001's HAL learn to sing, answer questions, predict equipment failure, and go insane?

James R Cybrynski (dwinfo@us.ibm.com), Software Engineer, Federated Integration Test team, IBM China Development Lab 
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 (dlk@us.ibm.com), Software Architect, Federated Integration Test team, IBM China Development Lab 
Photo fo David Kaminsky
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 Miller, Senior Technical Staff Member, Autonomic Computing Architecture, Federated Integration Test team, IBM China Development Lab 
Author photo
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 (weitzelm@us.ibm.com), Software Architect, Federated Integration Test team, IBM China Development Lab 
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.

Summary:  In this article (which could have been titled "2006: An Autonomic Odyssey"), see how HAL 9000, the computer in the 2001: A Space Odyssey movie, the smartest believable artificial intelligence so far in fiction, could predict equipment failure, answer personal questions, learn to sing "Bicycle built for Two," and go insane, based on IBM® Build to Manage Toolkit components. By the end of this article, you'll see how autonomic computing can be implemented today; determine if there is such a thing as a Hofstadter-Moebius loop in programming; and discover if HAL stands for Heuristic ALgorithmic computer, Heuristic Autonomic Learner, or is simply the first three letters of a prankster holiday that occurs about this time of the year.

Date:  31 Oct 2006
Level:  Introductory
Comments:  

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:

  1. Won't look me in the optical device when you talk to me
  2. Mumbling "Shut up, HAL" while pretending to cough
  3. Escape pod is warming up
  4. 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.

Policy-driven press interview

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.

Conclusion

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.

How this article was written

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.


Resources

Learn

Get products and technologies

Discuss

About the authors

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."

Photo fo David Kaminsky

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.

Author photo

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.

Comments



Trademarks

static.content.url=/developerworks/js/artrating/
SITE_ID=1
Zone=Tivoli
ArticleID=171706
ArticleTitle=Build a HAL 9000 with IBM autonomic computing technology
publish-date=10312006
author1-email=dwinfo@us.ibm.com
author1-email-cc=
author2-email=dlk@us.ibm.com
author2-email-cc=
author3-email=bamiller@us.ibm.com
author3-email-cc=robin_langford@us.ibm.com
author4-email=weitzelm@us.ibm.com
author4-email-cc=