Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

ETTK self-healing and optimizing demo

An autonomic experience in self-healing and self-optimizing

Alfredo Silva (afdasilv@us.ibm.com), Advisory Software Engineer, IBM
Alfredo da Silva is a software developer at IBM. He is a member of the team responsible for the IBM Emerging Technologies Toolkit (ETTK). You can contact him at afdasilv at us.ibm.com.

Summary:  Autonomic computing is one of the new hot buzzwords. However, not much has been done to provide an actual demonstration of what this technology is about in order to explain the hype. In this article, Alfredo Da Silva discusses an implementation that shows how practical autonomic computing can be.

Date:  01 Jul 2003
Level:  Introductory

Activity:  3847 views
Comments:  

Autonomic computing 101

Complexity and high installation and maintenance costs are a reality of today's computer systems. This is mostly due to the fact that they are created to meet the specific needs of their owners and users. Once these systems are composed of several different components -- hardware, middleware (for example, Tomcat, WebSphere Application Server), applications -- and their management costs are higher them the costs of the components themselves.

These issues are addressed by the autonomic computing paradigm. It proposes systems that are environment and workload changes resilients, that heal themselves over failures and errors and proactively defend against attacks, bringing that way the overall management costs significantly down.

In order to achieve the proposed goals autonomic systems can be broken down in four different fronts, as depicted in Figure 1.


Figure 1: Autonomic computing attributes
Figure1:  Autonomic computing attributes

The envisioned environment used to deploy an autonomic solution would have a feedback control system that is capable of monitoring and collecting data, analyzing the collected data, planning the requisite changes, and effecting the changes on the underlying components of the system.

To make such a system feasible, a common representation of the data flowing inside the system must be used. That is when Common Base Event (CBE) (see Resources), comes into play. CBE provides a consistent way of transferring common information amongst disparate enterprise applications that support logging, management, problem determination, autonomic computing, and e-business functions. Its design offers the following benefits: data is presented in a common and understandable format, common set of messages, and simple standard interface. For a more thorough discussion of this subject please see the Resources section.


Grabbing two pieces of the pie

The featured demo implements two aspects of autonomic computing shown in Figure 1: self-healing and self-optimizing. Figure 2 shows the first aspect.


Figure 2: Self-healing View
Figure 2: Self-healing View

Self-healing aspect

Starting with the App server component at the bottom and moving clockwise. The numbers close to the events indicate their order.

  • App server -- This element hosts all the running applications. It is also responsible for starting and stopping them (this particular feature can be controlled externally).
  • Log file -- This stores events generated by the App server, every time an application either starts or stops. The format used for these entries is the one defined by the WebSphere showlog file.
  • Sensor -- This performs the monitoring of the log file and publishes a StateChange topic with the broker, every time a new state change entry is added to the log file. It performs its duties using a component called acadapter (see Resources).
  • Broker -- This presents a topic-based pub/sub notification engine. The way it works is that topics are published with the broker. In this scenario the Sensor and the M.A.P.E. Loop are publishers (they publish StateChange and Restart topics, respectively). If a component wishes to receive a notification every time a particular topic is published, it should subscribe with the broker. The broker is responsible for keeping the list of subscribers and making sure they receive the appropriate notification every time a topic is published.
  • M.A.P.E. loop -- This is the brain of the system. This acronym stands for: Monitor, Analyze, Plan, and Execute. Subscribes with the broker to receive StateChange notifications. Analyzes the data received and decides whether or not to publish a Restart topic. It is based upon the ABLE framework (see Resources).
  • Effector -- This element interacts with the App server to restore the fault application back to its running state. Subscribes to receive restart notifications and for each one received sends a Restart message to the App server.

This design supports the autonomic computing self-healing capability. Every time a stopped application is detected the system is able to take the necessary steps to get it to run again.

Figure 3 depicts the self-optimizing aspect.


Figure 3: Self-optimizing view
Figure 3: Self-optimizing view

Self-optimizing aspect

In the Figure 3 diagram the AppNotBusy flow is depicted in green and the AppTooSlow one in red. As in the previous diagram the numbers indicate the order of the events. The requests created by the stress generator can be present at any time.

The above mentioned components maintain their main behavior described previously with the following differences:

  • App server -- responsible for removing and adding applications according to the received commands. It also monitors how busy the hosted applications are and issues an AppNotBusy based on the number of requests sent by the stress generator element.
  • Broker -- in this scenario the App server, the EPP, and the M.A.P.E. Loop are publishers (they publish AppNotBusy, AppTooSlow, Add App, and Remove App topics, respectively).
  • M.A.P.E. Loop -- subscribes with the broker to receive AppNotBusy and AppTooSlow notifications. Analyze the data received and decides whether or not to publish a Add App or Remove App topics respectively.
  • Effector -- interacts with the App server to add or remove applications. Subscribes to receive Add App and Remove App notifications and for each one received sends either an Add App or Remove App message to the App Server.
  • Stress Generator -- simulates load for the applications hosted by the App server.
  • End-to-End Problem Platform (EPP) -- measures the response time of a request that it sent to the App server. It generates AppTooSlow notifications in case the response time is above a preset threshold (1 second).

This design supports the autonomic computing self-optimizing capability, therefore response time is continuously measured, (when EPP is running), and applications are created or destroyed in order to maintain response time according to pre-established parameters.


Getting into the action

This demo is available as part of the IBM Emerging Technologies Toolkit (ETTK). (See Resources.) Once ETTK is installed and configured, the following steps get this application up and running:

  1. Start the chosen App server.
  2. Point your Web browser to http://host:port/actk/appHO/client/demo.html, replacing host and port with the values used when configuring the toolkit.

The demo is composed of a Web page with two frames, each one holding a Java Applet. The left Applet has a panel split in two pieces. The upper area has the Application Table that contains all the applications hosted by the App server. Each row represents an application and contains a stop button to allow for direct user interaction. The lower part presents a text box used to display the main events generated by the system, in a simple textual format.

One button, Clear history, and one check box, Randomly stop applications, are available to clear the text box and to put the demo in a loop mode which causes a random selection of one of the running applications to stop every 10 seconds, respectively. The remaining controls will be addressed during the self-healing discussion below.

The right Applet is called Event Viewer. It has two panels: Image Panel and Text Panel. The Image Panel shows the elements displayed in the diagram of Figure 2 as well as the flow of events. The Text Panel contents is discussed below. On the lower area a set of buttons are available: Clear Display, Set Delay ..., Record ..., Playback ... and Delete .... Three of them (Record, Playback and Delete) enable the creation, execution, and deletion of a file containing the captured events. Clear Display removes all the event flow displayed and all the information contained in the Text Panel as well. Set Delay sets the display refreshing interval (its default value is 2 seconds).

Exploring self-healing behavior

When the demo starts the Application Table is populated with appId 0 in the running state (green light), and idle -- the requests slot indicator, the little icon beside the light, is empty. Each application handles up to three simultaneous requests in this simulation.

If the corresponding stop button is then pressed a StateChange notification is generated and a Restart action is invoked to get the application back to the running state, as discussed previously. Similar behavior is triggered when the Start loop button is selected. The only difference is due to the fact that the application is then stopped automatically every 10 seconds. Figure 4 shows the described flow of events.


Figure 4: StateChange detection and Restart action
Figure 4: StateChange detection and Restart action

Exploring self-optimizing behavior

The controls related to this behavior are the ones on the lower half of the left Applet: the Enable EPP Performance monitor check box, the Number of Clients slider, and the Average client response time indicator. EPP measures the response time of a request that it sent to the App server and if this time is over 1 second, (displayed in red), due to the fact that the Number of Clients slider is moved to the right, an App Too Slow notification is generated and a corresponding Add App action is then sent to the App server in order to request the creation of additional applications to handle the load. Figure 5 shows this scenario.


Figure 5: App Too Slow detection and Add Application action
Figure 5: App Too Slow detection and Add Application action

When the load is decremented and the applications that were added become idle, as perceived by the requests slot indicator and also by the Average client response time indicator (now changed back to black) indicating values lesser or equal 1 second, the App Server senses this scenario and sends a AppNotBusy notification to the broker. As consequence a Remove app action is finally sent back to the App Server to remove the idle application. App id 0 is never removed, even if no load is present. This mechanism is illustrated by Figure 6.


Figure 6: App Not Busy detection and Remove action
Figure 6: App Not Busy detection and Remove action

At any time, if the Event Viewer - Text Panel tab is selected a list of all the exchanged CBE messages is displayed in an expandable tree format as shown in Figure 7.


Figure 7: CBEs - Event viewer text panel
Figure 7: CBEs - Event viewer text panel

Summary

It is certain that the complexity and high costs associated with computer systems will only increase with time. Autonomic computing seems to be a feasible solution to these problems. It addresses them at their very core, transferring the responsibility of handling configuration, optimization and protection to the computer system, where it belongs, not to mention the long desired capability of having self-aware systems.

The featured demo explores two key aspects of Autonomic Computing: self-healing and self-optimizing in a visual and practical way. It demonstrates that all the needed pieces to implement an Autonomic computing solution are already available and this technology can be a reality today.


Resources

About the author

Alfredo da Silva is a software developer at IBM. He is a member of the team responsible for the IBM Emerging Technologies Toolkit (ETTK). You can contact him at afdasilv at us.ibm.com.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=11828
ArticleTitle=ETTK self-healing and optimizing demo
publish-date=07012003
author1-email=afdasilv@us.ibm.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers