Browse Prior Art Database

Application Autonomic Agent to enable application programs exploit autonomic computing functions Disclosure Number: IPCOM000020103D
Original Publication Date: 2003-Oct-27
Included in the Prior Art Database: 2003-Oct-27
Document File: 3 page(s) / 19K

Publishing Venue



Introducing "Application Autonomic Agent" with which application programs can produce "situation information" to be passed to the autonomic manager, which in turn can tune the system resource and/or adjust the runtime environment to improve the throughput and performance of application processing.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 42% of the total text.

Page 1 of 3

  Application Autonomic Agent to enable application programs exploit autonomic computing functions

There are several "autonomic computing" designs published by vendors. One major contributor is IBM whose "An Architectual Blueprint for Autonomic Computing" (2003, IBM Hawthorne) clearly describes its architecture. The autonomic manager consumes information about a situation, analyze it, then determine the appropriate action based on the policies.

If an application program can detect a situation, such as resource contention on user class, or memory constraint in user objects, and can produce information to be passed to the autonomic manager, then the autonomic manager can alleviate the congested situation in the process (in which the threads run) and make the application processing more stable with higher throughput and/or better performance.

Currently there is no standard or specification to define such "information of application situation detected by application program", thus if a programmer wants to produce a situation information, he has to write a program by himself to produce the information. Such information is formed in unique format with non-standardized content which can not effectively be monitored and analyzed by autnomic manager thus can not effectively used to implement autonomic function.

Another idea to produce the situation information is to use printStackTrace() in java.lang.Throwable class, which can produce a stacktrace of the current thread. There is no information of the other threads in the same process, nor any information about other system resources, such as monitor(lock) or memory usage. With such limited information, the autonomic manager can't make a comprehensive monitoring and analysis to take an effective action to optimize the resource usage in the process. The dumpStack() method in java.lang.Thread class can only produce similar information thus not effective for autonomic analysis, either.

The use of JSR47 or log4j can produce better (more comprehensive) information, but still the information is limited to be the current thread thus not effective for the autonomic manager to make comprehensive analysis anyway.

One can try to use core (binary dump) which contains not only the current thread's information but also the other threads' information in a given process. This may sounds appropriate to be used as the situation information to be passed to the autonomic manager for comprehensive monitoring and analysis of the process, but unfortunately taking a core often disrupts (takes down) the current process, thus can never be used for monitoring purpose. The other problems to use core are its size and non-standardized content. If the process runs with several Giga Bytes heap, then the size of the core becomes the same size, which is too big to be used for monitoring purpose. The core is by nature in binary format, which makes it difficult to use the common autonomic manager code. These reasons make the co...