# Patent

## Title
Method for monitoring and managing a client device in a distributed autonomic computing environment

## Abstract

A stale of a managed client device in a distributed autonomic computing environment is attached to an event occurring on the managed client device. The event is sent, with the attached state of the managed client device, to a server. The state of the managed client device is saved at the server. The event is analyzed for identifying a problem at the client device. An action for solving the problem is generated based on a state of the managed client device at the time the event is analyzed. An execution condition is dynamically generated based on the saved state of the managed client device. The execution condition is added to the action to be executed and sent to the managed client device. At the managed client device, a determination is made whether to execute the action based on the execution condition and a current state of the managed client device.

## Background
TRADEMARKS
IBM® is a registered trademark of International Business Machines Corporation, Armonk, N.Y., U.S.A. Other names used herein may be registered trademarks, trademarks or product names of International Business Machines Corporation or other companies.
BACKGROUND
This invention relates to monitoring and managing actions in a computing environment, and, in particular, to monitoring and managing a client device in a distributed autonomic computing environment.
Autonomic computing technology has widely come into use. The concept of autonomic monitoring for analyzing an occurred event by knowledge (symptom) and deriving a coping strategy for a problem has been standardized. As for application for a real system, operations of current autonomic monitoring technology cannot cope with various environments and are limited to applications in large-scale systems.
In the current autonomic monitoring process, an occurred event and knowledge (symptom) are put together and analyzed. As such, a server-centralized model is predicated on a substantial intranet or a large-scale Web server, and it cannot be applied to an actual device environment. As information technology systems advance, an autonomic monitoring technique is desired to be applicable to a device, such as an electric home appliance, a cellular phone, etc. A far more flexible technology with wider coverage is needed lo realize an autonomic system on devices under various environments.
SUMMARY
According to an exemplary embodiment, a method is provided for monitoring and managing a client device in a distributed autonomic computing environment. A state of a managed client device in the distributed autonomic environment is monitored, and the state of the managed client device is attached to an event occurring on the managed client device. The event is sent, with the attached state of the managed client device, to a server in the distributed autonomic environment, and the state of the managed client device is saved at the server. The event is analyzed, and a problem occurring at the client device is identified. An action to be performed by the managed client device for solving the problem is generated based on a state of the managed client device at the time the event is analyzed. An execution condition is dynamically generated for the action to be performed by the managed client device based on the saved state of the managed client device. The execution condition is added to the action to be executed, and the execution condition is sent with the action to be performed from the server to the managed client device. At the managed client device, a determination is made whether to execute the action based on the execution condition and a current state of the managed client device.



BRIEF DESCRIPTION OF THE DRAWINGS
The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
FIG. 1 illustrates a system for monitoring and managing a client device in a distributed autonomic computing environment according to an exemplary embodiment.
FIG. 2 illustrates a method for monitoring and managing a client device in a distributed autonomic computing environment according to an exemplary embodiment.



The detailed description explains exemplary embodiments, together with advantages and features, by way of example with reference to the drawings.
DETAILED DESCRIPTION
It is practically impossible for a device with small throughput and small storage to perform actions for storing past states, analyzing, identifying and solving a problem only by itself. Therefore, a distributed model for transferring a symptom of the problem or an analysis to another node needs to be adopted.
When monitoring and management is performed in the distributed model, a time lag always occurs until the event is analyzed and the action is identified. It is impossible to perform the action immediately after the problem occurs. If a state changes when the time lag occurs, and the action is received by the device, that action may be unneeded or change of behavior of the action may be required. Therefore, a technique for detecting an unneeded action and deciding whether the action can be performed or not according to the state of the device is needed. The problem is outstanding particularly in an environment in which a device communicates at regular intervals with the device being disconnected at the time of no communication.
According to an exemplary embodiment, a method and a system are provided for monitoring a managing a client device in a distributed autonomic environment. This enables validation of whether a program (action) for solving a problem sent from a managed client device can be performed or not in a distributed autonomic environment, to which an autonomic system with various autonomic monitoring processes implemented is connected and which needs no integrated large-scale server.
FIG. 1 illustrates a system for monitoring and managing a client device in a distributed autonomic computing environment FIG. 1 depicts a server side 100 and a client side 150. The client side includes a device monitored and managed by the server side 150. A state history of the client device is monitored, and the state of managed client device is attached to an event occurring on the client device. The event, with the attached state of the client device, is sent from an event handler on the client side 150 to an event handler on the server side 150. The server side maintains a state history of the device, including a general-purpose value, such as a CPU usage, a parameter unique to the device, and set item, etc. This state history may be received from a status management function in the server side and saved in a state repository at the server side.
The event is analyzed, and a problem occurring at the client device is determined by an event analyzing engine in the server side. An action to be performed by the managed client device for solving the problem is dynamically generated by an execution condition analyzing engine based on a state of the managed client device at the time the event is analyzed. The action, including the execution condition and action/program script for the action to be performed is sent from an action handler in the server side 100 to an action handler in the client side 150.
Whether the action can be executed or not is determined by referencing the stale inside the device and the execution condition on the device based on the action sent from the server side. A determination is made, by an execution condition validation engine at the client side 150, whether to execute the action based on the execution condition and a current state of the managed client device. A difference between the state of the client device when the event that occurred on the client device was analyzed on the server side and the current state of the client device, detected after the event that previously occurred was sent to the server side, can be detected based on the dynamically generated execution condition. Thus, a determination may be made whether the action for solving a problem on the client device is still needed, based on the change in state of the client device. As noted above, this determination may be made by the execution validation engine at the client side 150. The execution validation engine may determine to execute the action, execute an alternative action, re-execute an action, stop execution of an action, or notify the server side of an event based on the execution condition and the current state of the managed client device. The results of this determination are sent to an action executing engine in the client side 150, which causes the action suggested by the execution validation engine to be performed.
FIG. 2 illustrates a method for monitoring and managing a client device in a distributed autonomic computing environment. The method begins at step 205 at which a state of a managed client device in the distributed autonomic environment is monitored. At step 210, the stale of the managed client device is attached to an event occurring on the managed client device. At step 215, the event, with the attached state of the managed client device, is sent to a server in the distributed autonomic environment. The stale of the managed client device is saved at the server at step 220. The event is analyzed, and a problem occurring at the client device is determined at step 225. At step 230, an action to be performed by the managed client device for solving the problem is generated based on a state of the managed client device at the time the event is analyzed. At step 235, an execution condition for the action to be performed by the managed client device is dynamically generated based on the saved stale of (he managed client device. At step 240, the execution condition is added to the action to be executed. At step 245, the execution condition is sent with the action to be performed from the server to the managed client device. At step 250, a determination is made, at the managed client device, whether to execute the action based on the execution condition and a current state of the managed client device.
The capabilities of the present invention can be implemented in software, firmware, hardware or some combination thereof.
As one example, one or more aspects of the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately.
Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
While exemplary embodiments have been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.

## Claims

1. A method for monitoring and managing a client device in a distributed autonomic computing environment, comprising:
monitoring a state of a managed client device in the distributed autonomic computing environment;
attaching the state of the managed client device to an event occurring on the managed client device;
sending the event, with the attached state of the managed client device, to a server in the distributed autonomic computing environment;
saving the state of the managed client device at the server;
analyzing the event and identifying a problem occurring at the client device;
generating an action to be performed by the managed client device for solving the problem, wherein the action is generated based on a state of the managed client device at the time the event is analyzed;
dynamically generating an execution condition for the action to be performed by the managed client device based on the saved state of the managed client device;
adding the execution condition to the action to be executed;
sending the execution condition with the action to be performed from the server to the managed client device; and
determining, at the managed client device, whether to execute the action based on the execution condition and a current slate of the managed client device.

2. The method of claim 1, wherein the step of determining includes:
detecting a difference between the state of the managed client device at the time the server analyzes the event and the current state of the managed client device based on the execution condition; and
determining whether the action is needed based on the detected difference.

3. The method of claim 1, wherein the step of determining includes deciding to execute the action, execute an alternative action, re-execute an action, stop execution of an action, or notify the server of an event based on the execution condition and the current state of the managed client device.

4. The method of claim 1, wherein the state of the managed client device includes at least one of CPU usage, a parameter unique to the managed client device, and a set item.