The preferred embodiments will be described below referring to the drawings.
A publicly known application server 160 reads an application program 170 from a publicly known program storage device (not shown) to execute it. This embodiment will be described by taking an example where the application server 160 is an application server of Java 2 enterprise edition (J2EE) (Java is a registered trademark), and the application program 170 is an application program implemented by using the J2EE. According to this embodiment, the application server 160 has a function of rewriting the application program 170 to be executed by using a bytecode instrumentation technique during execution, and an interface (not shown) for controlling the rewriting function.
A user interface 110 is a user interface for setting and managing monitoring of the application program executed by the system.
A correspondence retrieval module 115 retrieves a correspondence between components of design information created in an application development process, which are stored in a design information storage module 120, by using information stored in a design correspondence storage module 130.
The design information is a generic term of model diagrams or the like used for developing the application program 170. The components of the design information are points (places), data, or the like of the design information. For example, the component of the design information may be an activity or connection flow in a business process diagram, a message in a UML sequence diagram, a class, method, or field in a class diagram, or a class, method, or field in a program code.
A management module 141 generates a program module for executing monitoring of the application program 170 in the application server 160 according to settings, and inserts the generated program module into the application program 170. The program module that executes this monitoring is called a probe.
A condition control module 143 controls a monitoring operation by the probe based on predetermined conditions.
A load balance module 145 measures and controls an influence of a load of the monitoring operation by the probe on the application program 170.
A publicly known monitor event output module 180 provides an application programming interface (API) for outputting a monitored event to the application program 170. As an example of the monitor event output module 180, there is a Java logging API or Log4J which is a logging API in Java. The monitor event output module 180 outputs a monitor event in a format designated by a user to a publicly known monitor event storage module 190. For example, the monitor event storage module 190 may be a file system, a database, or the like.
Specifically,
The CPU 2703 is a processor for executing a program stored in the main memory 2705. In the description below, processing executed by the program stored in the main memory 2705 is actually executed by the CPU 2703.
The main memory 2705 is, for example, a semiconductor device. The main memory 2705 stores a software program read from the external storage device 2707, and information or the like referred to by the program.
The input device 2709 is, for example, a keyboard or a mouse.
The output device 2711 is, for example, a display device.
The external storage device 2707 is, for example, a hard disk device. The design information storage module 120, the design correspondence storage module 130, and the monitor event storage module 190 shown in
Specifically, the software programs constituting the application program monitoring system includes the user interface 110, the correspondence retrieval module 115, the management module 141, the condition control module 143, the load balance module 145, and the monitor event output module 180. These software programs are read into the main memory 2705, and executed by the CPU 2703, thereby realizing the system shown in
When the system shown in
The application program monitoring system shown in
Next, referring to
The management module 141 includes a probe definition storage module 1601, a program generation module 1604, and a probe insertion module 1608. The probe definition storage module 1601 is a storage area secured in the main memory 2705 or the external storage device 2707. The probe generation module 1604 and the probe insertion module 1608 are program modules included in the management module 141. The user interface 110, the application sever 160, the application program 170, the monitor event output module 180, and the monitor event storage module 190 are the same as those shown in
The application program 170 is read by the application server 160 to be executed.
The probe 1610 is a program module inserted into the application program 170 to execute monitoring of the application program 170.
The probe definition storage module 1601 stores probe definition, which is monitoring settings of the application program 170 described at a program code level. Based on the probe definition, a “place (point)” of executing monitoring in the application program and an “item” to be monitored are explicitly designated by using components of a program code.
The probe definition stored in the probe definition storage module 1601 contains a probe ID 1001, a probe subID 1002, a probe name 1003, a probe insertion point 1012, and monitor data 1021.
The probe ID 1001 is an ID for uniquely identifying the probe 1610, and used for identifying the probe 1610 and monitor data output from the probe 1610.
The probe subID 1002 is a serial number used for identifying a plurality of probe definitions having the same probe ID 1001. According to this embodiment, as there is only one probe definition having one probe ID, the probe subID 1002 is always “1”. Thus, according to this embodiment, the probe subID 1002 is not an essential item.
The probe name 1003 is a name given to the probe 1610.
The probe insertion point 1012 designates a place (point) of inserting the probe 1610. Specifically, the probe insertion point 1012 is designated by designating a component of the application program.
The monitor data 1021 is obtained by the probe 1610, and designates data to be output. The data obtained and output by the probe 1610 is normally obtained as a so-called application log. For example, the probe 1610 obtains and outputs data such as an I/O parameter processed by the application program 170, processing time of the application program 170, or the like, as the application log (refer to S305 of
In the example of
According to this embodiment, the probe 1610 is realized as an advice in aspect-oriented programming which is a publicly known technique. The probe insertion module 1608 inserts the probe 1610 into the application program 170 by incorporating a program code of the probe 1610 defined as the advice in the application program 170 by an aspect-oriented programming framework. A point of inserting the probe 1610 is designated by inputting a point cut created based on a probe insertion point 1012 designated by the probe definition to the aspect-oriented programming framework.
The insertion of the probe 1610 into the application program 170 can be dynamically executed by using the aspect-oriented programming framework (e.g., dynamic AOP framework) for supporting dynamic advice incorporation during execution of the application program 170. An example of the dynamic AOP framework is JBoss AOP.
By using an optional technique of dynamically updating the program code during the execution of the application program 170, a form of the probe 1610 and the insertion of the probe 1610 into the application program 170 can be realized.
The probe 1610 may be inserted while the application program 170 is not executed. However, if the probe insertion module 1608 has no function of inserting the probe 1610 during the execution of the application program 170, the entire or a part of the application program 170 must be stopped to insert or remove the probe 1610 and subsequently started again.
Next, referring to
A publicly known automatic program code generation technique is used for generating code of the probe 1610. Specifically, the probe generation module 1604 which has received the probe insertion point 1012 and the monitor data 1021 as inputs automatically generates a program code of the probe 1610 according to the inputs. The program code generated at this time is a program code for obtaining data corresponding to the input monitor data 1021 at a point of a code of the application program 170 corresponding to the input probe insertion point 1012, and outputting the data by using the API of the monitor event output module 180 (S305 and S306).
A method invoke of a probe advice is a code for executing monitoring of the application program. The code of the invoke method is inserted into a designated point of the application program 170 by the Dynamic AOP framework (S304).
According to the invoke method, first, an object of a first argument of the method into which the probe has been inserted is obtained (8th line). A value of a specific field is obtained from the object (9th line), and monitor data designated in the probe definition is obtained. Then, a monitor event object event to be output is generated (10th line). A probe ID is set in the monitor event object. This probe ID is used for identifying the monitor data. The generated event object is output to the monitor event output module 180 by using the logger interface (11th line). Subsequently, processing of the method main body into which the probe 1610 has been inserted is executed (12th line).
The probe insertion module 1608 dynamically inserts the probe 1610 generated by the probe generation module 1604 into the application program 170 by the Dynamic AOP framework (refer to S303 and S304 of
To insert the probe 1610, the probe insertion module 1608 provides the class object, the point cut, and the probe ID of the probe aspect which have been generated to an aspect administrator provided by the JBoss AOP (refer to
First, an AdviseBinding object “binding” of a point cut designating a position of inserting the probe 1610 is generated (1st line).
A probe ID is set as a name of the generated AdviseBinding object (2nd line), and a class of a probe advice is set (3rd line).
Then, this AdviseBinding object is registered in the aspect manager (4th line).
The aspect manager inserts the program code of the probe advice by rewriting the bytecode of the application program 170 according to the point cut and the advice class set in the registered AdviseBinding object.
The probe insertion module 1608 can remove the probe 1610 inserted into the application program 170 from the same by using the function of the Dynamic AOP framework in response to a request from the outside. The removal of the probe 1610 is executed by loading a removeBinding method of the aspect manager as an ID argument of the probe 1610 to be removed. The aspect manager removes the program code of the advice set in the AdviseBinding object where the probe ID supplied as the argument is a name by rewriting the bytecode of the application program 170.
Next, description will be made of a flow of processing where the correspondence retrieval module 115 retrieves a point of the program code, in other words, a probe insertion point of the probe definition, corresponding to designation of a “monitoring execution point” of the design information by using a design correspondence.
First, referring to an example of
The design correspondence is stored in the design correspondence storage module 130. The design correspondence includes a correspondence source element 601 and a correspondence destination element 603. Components of design information created at an optional stage of the application program development process are stored in the correspondence source element 601. Components set in design correspondence to the components stored in the correspondence source element 601 are stored in the correspondence destination element 603. The components set in design correspondence are components of design information created at a more progressed stage of the development process. For example, as a design correspondence 611 of
One or more components may have a design correspondence to one component. This embodiment will be described by way of case where only one component corresponds to one component. A case where a plurality of components corresponds to one component will be described in a second embodiment.
To specify optional components in a plurality of pieces of design information, and to represent a design correspondence between the components, an ID for unique identification is added to each component of the design information. This ID is stored as design correspondence information. According to this embodiment, this ID is called an object ID.
According to this embodiment, the object ID includes an ID of design information containing a component which it identifies, and an ID of each component. For example, in the example of
The object ID is required only to uniquely identify a component of the design information. It is only necessary to specify the design information containing the designated component from the object ID. Accordingly, a part of the object ID should preferably contain an ID of the design information.
An object ID of each input data is used for showing a design correspondence of input data of processings. The object ID of the input data is configured by concatenating a processing name with a representation of the input data. For example, a design correspondence 615 indicates that input data “X.a” of a method “Function1.Processing1” in design information B02 corresponds to input data d1 of a method “FuncA.method1” in design information C02.
Design correspondences 631 and 632 indicate that components of the design information C02 correspond to specific methods of the implemented application program 170.
According to this invention, generation of design correspondence information and its storage in the design correspondence information storage module 130 can be carried out by an optional method. However, proper design correspondence information must be stored beforehand for each design information created in the development process of the application program 170.
The generation of design correspondence information and the storage thereof in the design correspondence information storage module 130 should preferably be executed for each creation of design information of a progressed stage of the development process in the development process of the application program 170. Thus, an application design tool used for the development process of the application program 170 should preferably include a function of executing generation and storage of design correspondence information.
Next, referring to
In the description of
The user (e.g., the business or operation administrator) designates a component of design information, thereby designating a monitoring point. An object ID of the designated component is input to the correspondence retrieval module 115.
First, in a step 1201, the correspondence retrieval module 115 initializes a variable “oid” based on the input object ID.
In a step 1202, the correspondence retrieval module 115 accesses the design correspondence storage module 130 by using the oid as a key to retrieve a design correspondence where the oid is a correspondence source element 601. The correspondence retrieval module 115 stores an object ID stored in a correspondence destination element 603 of the design correspondence obtained as a result of this retrieval in a variable “nextOid”.
In a step 1203, the correspondence retrieval module 115 judges whether the nextOid is a special object ID indicating a correspondence to a component of an implemented program code of the application program 170. The component of the implemented program code is, for example, a specific method or the like.
If it is judged in the step 1203 that the nextOid is a special ID for identifying the component of the implemented program code of the application program 170, the retrieved component corresponds to the specific method or the like. In this case, the process proceeds to a step 1205, and the correspondence retrieval module 115 outputs the program code component indicated by the nextOid as a retrieval result to finish the process.
On the other hand, if it is judged in the step 1203 that the nextOid is not a special ID for identifying the component of the implemented program code of the application program 170, the component of the implemented program code corresponding to the designated component has not been retrieved. In this case, the correspondence retrieval module 115 updates the oid based on a value of the retrieved nextOid in a step 1204, and returns to the step 1202.
By repeating the process of the steps 1202 to 1204, components of design information of stages of the development process are gradually retrieved from the components of initial highly-abstract design information of the development process, and the component of the program code is retrieved at the end.
As an example, a case is explained where the activity “Function1” of the business process diagram “A01” in the example of the design correspondence of
As a result of the retrieval, “B02.Function1.Processing1(data 1X)” corresponding to the “A01.Function1” is obtained (correspondence 611), “C02.FuncA.method1 (String d1, String d2)” corresponding to the “B02.Function1.Processing1 (data 1X)” is obtained (correspondence 614), and “CODE.FuncA.method1(String d1, String d2)” corresponding to the “C02.FuncA.method1(String d1, String d2)” is obtained (correspondence 631).
As the “CODE.FuncA.method1(String d1, String d2)” is a component of the program code (step 1203), it is retrieved that the method “FuncA.method1(String d1, String d2)” is a component of the program code corresponding to the function 1 (step 1205). By inserting the probe 1610 into this method, monitoring of the “Function1” is executed. When a target to be monitored at the designated point does not necessitate generation of each probe to be inserted, the designated monitoring is executed by inserting a probe advice prepared beforehand into the retrieved point of the program code. The monitoring target that does not necessitate generation of each probe to be inserted is, for example, processing time.
Through the aforementioned processing, a point of the program code corresponding to the designated “monitoring point” of the design information is retrieved by using the stored design correspondence. Then, monitoring of the retrieved point is executed. As a result, without awareness of the implemented program code, designation of monitoring of the application program 170 in the design information created in the development process of the application program is realized.
The retrieval of the “data to be monitored” is executed by the same processing as that of the “monitoring point”.
The design correspondence includes not only a correspondence of “processing” between pieces of design information but also correspondences of “data structure” and “I/O parameter”. For example, in
Design correspondences 620 to 622 indicate correspondences between a data structure “data 1” and fields of a data structure “Data1”.
For example, when in the class diagram “B02” of a certain stage of the development process of the application program, for the I/O parameter “X” of the method “Processing 1” of the class “function 1”, its field “b” is designated to be monitored, the operation or business administrator provides an object ID “B02.Function1.Processing1#X.b” as an input to the correspondence retrieval module 115. Thereafter, by tracing the design correspondences according to the flow of
The design correspondence storage module 130 may store design correspondences of all components which can be designated as points of executing monitoring and data to be monitored. However, if another design correspondence can be inferred by combining data regarding a plurality of deign correspondences or pieces of design information, it is possible to reduce costs of storing the design correspondences by omitting storage of the inferable design correspondences.
The example of the design correspondence 617 of
This processing corresponds to the processing of the step 1202 in the flow of specifying the program code component by using the design correspondence shown in
First, in a step 1301, the correspondence retrieval module 115 stores the input object ID in the variable “oid”. In the example, as the object ID, “B02.Function2.Processing2#X.a”, i.e., a field “a” of a parameter “X” of “processing 2”, is input.
In a step 1303, the correspondence retrieval module 115 accesses the design correspondence storage module 130 by using the oid as a key to retrieve a design correspondence where the oid is a correspondence source element 601.
Then, in a step 1305, the correspondence retrieval module 115 judges whether a design correspondence regarding the oid is present. Specifically, judgment is made as to whether the design correspondence where the correspondence source element 601 is the oid has been stored in the design correspondence storage module 130.
If it is judged in the step 1305 that the design correspondence regarding the oid is present, the process of the correspondence retrieval module 115 proceeds to a step 1307.
In the step 1307, the correspondence retrieval module 115 outputs a correspondence destination element 603 of the retrieved design correspondence as a retrieval result to finish the process.
If it is judged in the step 1305 that the design correspondence regarding the oid is not present, the process of the correspondence retrieval module 115 proceeds to a step 1309. For example, if the oid is “B02.Function2.Processing2#X.a”, a design correspondence where the oid is held as the correspondence source element 601 is not present. In this case, the process proceeds to a step 1309.
In the step 1309, the correspondence retrieval module 115 specifies an upper-level component of components designated by the oid. For example, if the oid is “B02.Function2.Processing2#X.a”, “B02.Function2.Processing2#X” obtained by removing the field “a” is an upper-level component. In this case, the correspondence retrieval module 115 retrieves a design correspondence by using the “B02.Function2.Processing2#X” as a new oid in place of the “B02.Function2.Processing2#X.a”.
Then, in a step 1311, the correspondence retrieval module 115 judges whether a design correspondence regarding the oid (i.e., upper-level component specified in the step 1309) has been stored. This judgment is executed as in the case of the step 1305.
If it is judged in the step 1311 that the design correspondence regarding the oid has not been stored, the correspondence retrieval module 115 returns to the step 1309 to specify and retrieve a further upper-level component.
If it is judged in the step 1311 that the design correspondence regarding the oid has been stored, the correspondence retrieval module 115 proceeds to a step 1313.
In the step 1313, the correspondence retrieval module 115 obtains a component set in design correspondence to the upper-level component. For example, if the upper-level component is “B02.Function2.Processing2#X”, this component is processing “B02.Function2.Processing2” which has one parameter X. This corresponds to “B02.Function2.Processing2(data 1X)” which is a correspondence source element of the design correspondence 617, and the design correspondence 617 regarding this has been stored. In this case, “C02.FuncB.method2#d1” is obtained as a component corresponding to the upper-level component.
In a step 1315, the correspondence retrieval module 115 infers a design correspondence of a lower-level component based on the design correspondence of the upper-level component retrieved in the step 1313. For example, if the “C02.FuncB.method2#d1” is obtained in the step 1313, the correspondence retrieval module 115 retrieves a design correspondence of its field “a” for a data structure “B11.data1” of the parameter “X”. As a result, a correspondence of “fielda” in a data structure “C11.Data1” of a parameter “D1” is retrieved (refer to the design correspondence 621). Accordingly, the correspondence retrieval module 115 infers “C02.FuncB.method2#d1.fieldA” as a component set in design correspondence to the “B02.Function2.Processing2#X.a”, and outputs it as a retrieval result of the design correspondence.
The specifying of the upper-level component and the inference of the design correspondence based on the same in the above-mentioned flow are executed according to a rule defined beforehand according to design information where the component is present, and a type of the component. According to this rule, it is possible to reduce storage costs by omitting a part of the design correspondence information stored in the design correspondence storage module 130.
Next, the user interface 110 shown in
The user interface 110 of
A design information display window 550 displays design information where the user inputs contents to be monitored. The user selects a component 551 of design information 552 displayed on the window by an operation such as clicking of the component to designate a monitoring point.
Upon designation of the monitoring point, the user interface 110 displays a list 562 of items that can be monitored at the designated monitoring point on a monitor data selection window 560. The user can select data to be monitored at the designated monitoring point by checking a radio button 561 corresponding to each data item displayed in the item list 562.
After the selection of the monitor data, the user operates a decide button 563 to decide the designated monitoring point and the monitor data, and retrieval is executed by the correspondence retrieval module 115.
If data not unique to the monitoring point, for example, processing time or the like, is designated as the monitor data, the retrieval of the correspondence retrieval module 115 is executed by using an object ID of the designated monitoring point as a key (refer to
If the designated monitor data is an I/O parameter or the like unique to the monitoring point, the retrieval of the correspondence retrieval module 115 is executed by using an object ID indicating its data as a key (refer to
When storing the probe definition, the user interface 110 displays an interface for enabling the user to input a name to be added to the input monitoring setting. Then, the user interface 110 stores the input name in a probe name 1003 of the probe definition. The user interface 110 generates an ID for uniquely identifying the probe definition, and stores the ID as an ID 1001 of the probe definition.
The monitoring setting table is a table for managing the monitoring setting input by the user and the probe 1610 generated based on the input monitoring setting. The monitoring setting table may be a part of the user interface 110, or a part of one of the storage modules (e.g., design information storage module 120) accessed by the user interface 110. In any case, the monitoring setting table is stored in the main memory 2705 or the external storage device 2707.
An ID for uniquely identifying each monitoring setting is stored in an ID 901.
A name added to monitoring setting is stored in a monitor setting name 903.
An object ID of an input monitoring place is stored in a monitoring point 912.
An object ID for input monitor data or a symbol of a predefined monitor data item is stored in monitor data 921. The symbol of the predefined monitor data item is, for example, “_responseTime” or the like.
The ID 901 and the monitor setting name 903 of the monitor setting table store the same as those of the ID 1001 and the probe name 1003 of the generated probe definition. By using the same ID in the monitoring setting and the probe definition, the monitoring setting and the probe definition are correlated with each other.
The user interface 110 refers to pieces of information on the monitoring point 912 and the monitor data 921 stored in the monitor setting table to display information of the set probe 1610, and enables the user to select it.
For example, when the user operates a screen shown in
In this case, the correspondence retrieval module 115 executes processings shown in
As design information displayed on the design information display window 550 to designate a monitoring point and monitor data, optional design information created at an optional stage of the application development process according to an input from the user can be used. In this case, design information containing a component set in design correspondence with a component of the displayed design information may be retrieved by using design correspondence information, the retrieved design information may be displayed as a candidate of design information to be displayed, and the user may select one of the displayed candidates.
The user interface 110 may include a user interface for inputting a monitoring definition ID to be added to monitor definition to be set and a value of a monitor item ID added to each monitor item set in the monitor definition in setting of the monitor definition. Alternatively, the user interface 110 may automatically generate a monitor definition ID and a monitor item ID to set them.
A configuration of the user interface 110 and an input procedure for monitoring setting are not limited to the examples of this embodiment. It is possible to use any interface that can input a monitoring point, and an item to be monitored at the monitoring point, and a monitor definition ID and a monitor item ID if necessary.
As described above, by using the system shown in
Next, a configuration and an operation of a system for controlling a monitoring operation of the probe 1610 inserted into the application program 170 according to designated conditions will be described.
A condition control module 143 includes a probe control definition storage module 1602, a setting module 1609, a condition judgment module 1606, and a probe control module 1607. A management module 141 is the same as that shown in
The probe control definition storage module 1602 is a storage area secured in the main memory 2705 or the external storage device 2707. The condition judgment module 1606, the probe control module 1607, and the setting module 1609 are program modules included in the condition control module 143.
The probe 1610 is a program module inserted into the application program 170 by the management module 141 shown in
A monitor event output module 180a is formed by adding a collector 1620 to the publicly known monitor event output module 180 shown in
The collector 1620 is a program module for obtaining data output from the probe 1610 and transferring the data to the condition judgment module 1606 if necessary.
A data acquisition module 1630 is a program module arranged in the application server 160 or the like to obtain state monitor data and external information.
The data acquisition module 1630 obtains information other than data monitored by the probe 1610. Specifically, for example, the data acquisition module 1630 obtains state monitor data of the application program 170, the application server 160, an OS and hardware for executing the application server 160, or a system itself for monitoring the application program. For example, the data acquisition module 1630 may obtain a load of the CPU 2703 as state monitor data.
The data acquisition module 1630 may obtain external information such as time in addition to the stage monitor data.
The probe control definition storage module 1602 stores probe control definition. The probe control definition is information for designating conditions for controlling the monitoring operation of the probe 1610 inserted into the application program 170, and an operation for controlling the monitoring operation of the probe 1610. The monitoring operation of the probe 1610 is, for example, acquisition or outputting of monitor data.
Based on this probe control definition, the setting module 1609 sets each module to control the monitoring operation of the probe 1610.
First, a flow of processing for controlling the monitoring operation of the probe 1610 based on the probe control definition will be described.
The probe control definition stored in the probe control definition storage module 1602 contains an ID 1801, a control condition 1803, and a control operation 1805. The ID 1801 identifies each probe control definition. The control condition 1803 designates a condition for controlling the monitoring operation of the probe 1610. The control operation 1805 designates an operation for controlling the monitoring operation of the probe 1610.
The control of the monitoring operation of the probe 1610 is described in an IF-THEN format. Specifically, an IF part corresponds to the control condition 1803, and a THEN part corresponds to the control operation 1805. In other words, when a condition stored in the control condition 1803 is satisfied, an operation stored in the control operation 1805 is executed.
The control condition 1803 is described in a conditional equation which includes data used for condition judgment. As the data used for condition judgment, monitor data obtained by the probe 1610 inserted into the application program 170 can be designated. Alternatively, information obtained by the data acquisition module 1630 prepared beforehand in the system may be used.
The data used for the condition judgment are called judgment information. Each judgment information is identified by a unique ID. The conditional equation representing the control condition is described by using the ID of the judgment information. When the monitor data obtained by the probe 1610 is used as judgment information, the probe ID 1001 of the probe definition shown in
The control operation 1805 stores a control method executed when the control condition 1803 is satisfied, and the probe 1610 whose monitoring operation is controlled by this method. Further, a control parameter is stored if necessary.
The method of controlling the monitoring operation of the probe 1610 is, for example, a start or a stop of the monitoring operation of the probe 1610. Alternatively, the monitoring operation of the probe 1610 may be controlled by executing acquisition and outputting of monitor data at a predetermined interval set based on time or the number of times of executing the application program 170.
The probe insertion module 1608 inserts the probe 1610 into the application program 170 or removes the probe from the application program 170, whereby the start or the stop of the monitoring operation of the probe 1610 can be executed. Alternatively, an operation control code (not shown) for controlling the execution of the monitoring operation of the probe 1610 may be incorporated, and a variable may be allocated to control the operation control code. This variable is called an operation control variable. The operation control code refers to the operation control variable to judge permission/inhibition of execution of the monitoring operation, whereby the monitoring operation of the probe can be controlled (disabled or enabled). The operation control variable is stored in a memory area accessed from both of the probe 1610 and the probe control module 1607.
The 1st row of
A flow of processing for controlling the monitoring operation of the probe 1610 by the system will be described.
First, according to execution of the application program 170, the probe 1610 inserted into the application program 170 outputs monitor data (S1201). The output monitor data is output via the monitor event output module 180a. At this time, the collector 1620 of the monitor event output module 180a judges whether the monitor data is data used as judgment information. If it is judged that the monitor data is data used as judgment information, the monitor event output module 180a transfers the monitor data to the condition judgment module 1606 (S1202).
On the other hand, if judgment information is data other than the monitor data of the probe 1610, the data acquisition module 1630 periodically obtains data, and transmits the obtained data to the condition judgment module 1606 (S1203). Alternatively, the condition judgment module 1606 may obtain data to be used as judgment information by periodically calling the data acquisition module 1630.
The condition judgment module 1606 evaluates a conditional equation stored in the control condition 1803 by using the judgment information obtained from the collector 1620 or the data acquisition module 1630, and transmits an evaluated result to the probe control module 1607 (S1204). The probe control module 1607 controls the monitoring operation of the probe 1610 by executing the operation stored in the control operation 1805 according to a result of condition judgment received from the control judgment module 1606 (S1205).
Next, referring to
The setting module 1609 sets the condition judgment module 1606 by executing the flow of
First, in a step 2001, the setting module 1609 obtains probe control definition from the probe control definition storage module 1602.
In a step 2003, the setting module 1609 analyzes the control condition 1803 of the probe control definition to extract designation of judgment information.
Then, the setting module 1609 executes processing of steps 2005 to 2008 for all the pieces of judgment information extracted in the step 2003.
In the step 2005, the setting module 1609 judges whether data is data obtained by the probe 1610 based on an ID of data designated as judgment information. If it is judged in the step 2005 that the designated data is data obtained by the probe 1610, the process proceeds to the step 2006. On the other hand, if it is judged in the step 2005 that the designated data is not data obtained by the probe 1610, the process proceeds to the step 2007.
In the step 2006, the setting module 1609 registers an ID of the designated data in the collector 1620 of the monitor event output module 180a.
In the step 2007, the setting module 1609 specifies a data acquisition module 1630 which obtains data based on the ID of the data designated as the judgment information, and sets the specified data acquisition module 1630 to obtain data.
After the execution of the step 2006 or 2007, in the step 2008, the setting module 1609 judges whether processing of all the pieces of judgment information extracted in the step 2003 has been completed.
If it is judged in the step 2008 that the processing has been completed for all the pieces of judgment information, the setting module 1609 finishes the process. On the other hand, if it is judged in the step 2008 that the processing has not been completed for all the pieces of judgment information, there is unprocessed judgment information. In this case, to process the unprocessed judgment information, the setting module 1609 returns to the step 2005.
The collector 1620 judges whether an ID added to the monitor data is an ID registered in the step 2006 when the probe 1610 obtains the monitor data and outputs it via the monitor event output module 180a. If it is judged that the ID has been registered, the collector 1620 transmits the monitor data to the condition judgment module 1606.
The condition judgment module 1606 interprets and executes a condition judgment equation described as the control condition 1803 by using a value of the judgment information. Specifically, a publicly known interpreter disposed in the condition judgment module 1606 may interpret and execute the condition judgment equation. Alternatively, a program module for executing the condition judgment equation is generated and managed beforehand by a publicly known compiler, and this program module may interpret and execute the condition judgment equation.
In place of the condition judgment equation, a condition judgment program code described in a program language which the condition judgment module 1606 can interpret and execute may be stored as the control condition 1803. In this case, the condition judgment module 1606 loads the condition judgment program code by inputting judgment information necessary for condition judgment. The condition judgment program code returns a condition judgment result to execute condition judgment.
The setting module 1609 sets the probe control module 1607 by executing the flow of
In a step 2101, the setting module 1609 obtains probe control definition from the probe control definition storage module 1602.
In a step 2102, the setting module 1609 analyzes the control operation 1805 of the probe control definition to specify an ID of the probe 1610 to be controlled, and an operation for controlling the monitoring operation of the probe 1610.
In a step 2104, the setting module 1609 judges whether the monitoring operation control of the probe 1610 has been designated to be executed by inserting the probe 1610 into the application program 170 or removing the probe 1610 from the application program. If it is judged in the step 2104 that the control is executed by inserting or removing the probe 1610, the process is finished. If it is judged that the control is not executed by inserting or removing the probe 1610, the process proceeds to a step 2105.
In the step 2105, the setting module 1609 controls the management module 141 to generate a new probe 1610 which incorporates an operation control code for controlling the probe 1610 in the probe 1610 specified in the step 2102. The management module 141 generates a program code of the specified probe 1610 based on the probe control definition. In this case, the control module 142 incorporates the operation control code in the probe 1610 to be generated.
In a step 2106, the management module 141 inserts the probe 1610 which includes the operation control code generated in the step 2105 incorporated therein into the application program 170. If the probe 1610 specified in the step 2102 has been inserted, the program code of the old probe 1610 is replaced by a program code of the probe generated in the step 2105.
Through the processing, a function necessary for controlling the monitoring operation of the probe 1610 is set.
In a step 1901, the probe control module 1607 judges whether to execute control of the monitoring operation of the probe 1610 by inserting or removing the probe 1610. For this judgment, for example, a table (not shown) where an ID 1801 of probe control definition is a key may be disposed in the probe control module 1607. In the table, a method of controlling the monitoring operation of the probe 1610 is stored. The probe control module 1607 can execute judgment of the step 1901 by referring to this table.
If it is judged in the step 1901 that the monitoring operation control of the probe 1610 is executed by inserting or removing the probe 1610, the process proceeds to a step 1902. On the other hand, if it is judged that the monitoring operation control of the probe 1610 is not executed by inserting or removing the probe 1610, the process proceeds to a step 1903.
In the step 1902, the probe control module 1607 designates an ID of the probe 1610 of a control target, and instructs the management module 141 to insert or remove the probe 1610. According to this instruction, the management module 141 executes designated insertion or removal of the probe 1610. As a result, the monitoring operation of the application program by the probe 1610 is started or stopped. Then, the control process of the probe operation is finished.
In a step 1903, the probe control module 1607 sets a value of an operation control variable allocated to the probe 1610 of the control target according to contents of the control.
In a step 1904, when the program code of the probe 1610 of the control target is executed, an operation control code is executed before an execution of a code for the monitoring operation. This operation control code is a code incorporated in the probe 1610 of the control target in the step 2105 of the flow shown in
According to this embodiment, collection of pieces of judgment information from the probes 1610 is executed via the collector 1620 of the monitor event output module 180a. However, data obtained by each probe 1610 may be directly output to the condition judgment module 1606 not via the collector 1620. In this case, in the step 2006 of the setting processing of the judgment information shown in the flow of
According to this embodiment, the condition judgment module 1606 and the probe control module 1607 are both configured as parts of the condition control module 143. However, all or a part of the processing executed by the condition judgment module 1606 or the probe control module 1607 may be executed by the program code which the management module 141 incorporates during program code generation of the probe 1610 to control conditions.
In this case, a program code for executing processing such as acquisition and transfer of judgment information, condition judgment using the judgment information and transfer of the judgment result, and control of the probe monitoring operation based on the judgment result is generated in response to an instruction of the setting module 1609. Then, the generated program code is incorporated into the probe 1610 which outputs the judgment information or the probe 1610 of the control target of the monitoring operation.
The setting window 1850 of monitoring operation control is displayed in the output device 2711 to allow the user (e.g., operation or business administrator) to input the probe control definition.
The setting window 1850 of the monitoring operation control includes a setting name input section 1852, a control condition input section 1854, a control operation input section 1856, a decide button 1858, and a cancel button 1859.
The setting name input section 1852 is a section for inputting a name which is to be added to the input probe control definition, and is to be used by the user for management and identification.
A conditional equation for controlling the monitoring operation of the probe 1610 is input to the control condition input section 1854. Data used as judgment information in the conditional equation is designated by an ID of the probe 1610 and a predefined ID of the data acquisition module 1630.
An operation executed to control the monitoring operation of the probe 1610 when the condition input to the control condition input section is satisfied is input to the control operation input section 1857. In the control operation, an ID of the probe 1610 of a control target of a monitoring operation is designated.
The button 1855 is a button for displaying an interface for assisting the user to input a control condition. By a user interface (not shown) displayed as a result of operating the button 1855, a list of operators or functions that can be used for describing the control condition may be displayed. Further, a list of probes 1610 and data acquisition modules 1630 that can be used for the judgment information may be displayed. The user can select optional one from the displayed contents. The selected content is reflected in the control condition input section.
The button 1857 is a button for displaying an interface for assisting the user to input of a control condition. By a user interface (not shown) displayed as a result of operating the button 1857, a list of control operations that can be used for describing the control condition may be displayed. Further, a list of probes 1610 used as the control target of the monitoring operation may be displayed. The user can select optional one from the displayed contents. The selected content is reflected in the control condition input section.
After the user has input the setting name, the control condition, and the control operation, and the decide button 1858 is operated, the user interface 110 generates the probe control definition according to contents of the input items, and stores them in the probe definition storage module 1602.
The condition control of the monitoring operation of the probe 1610 of the system shown in
In this case, when inputting the probe control definition, to designate the probe 1610 set as judgment information in the user interface shown in
For example, to designate the probe 1610, the probe 1610 to be monitored may be displayed as “probe for monitoring first argument “d1” of FuncA.method1(String d1, String d2)” by using the probe definition. In this case, however, the user who has no knowledge of program implementation cannot understand a meaning of data obtained by the probe 1610. On the other hand, if it is displayed as “probe for monitoring input data “a” of function “1” of design information” by using the information of the monitoring setting, the user can easily understand its meaning.
When setting control of the monitoring operation of the probe 1610, the user can execute the setting without being aware of implementation of the application program 170 by using not the information of the probe definition but the information of the monitoring setting to designate the probe 1610.
When inputting a control condition, the user can input a monitoring point and data to be monitored in the design information by using the user interface shown in
At this time, checking is made as to whether the same probe definition as the newly generated probe definition is present in the probe definition storage module. If the same probe 1610 is present, the probe 1610 is designated and the existing probe definition is used. On the other hand, if the same probe 1610 is not present, according to the newly generated probe definition, a probe 1610 for obtaining judgment information or a probe 1610 of a control target of a monitoring operation is newly generated to be inserted into the application program 170.
In setting of condition control of the probe 1610, when monitoring setting is executed in the design information by using the user interface shown in
Next, a configuration and an operation of the system for controlling the monitoring operation of the probe 1610 according to a probe load will be described. The probe load is a load generated when the probe 1610 inserted into the application program 170 executes monitoring of the application program 170. To prevent an influence such as a performance reduction of the probe load on execution of the application program 170, the probe load is measured, and the monitoring operation of the probe is controlled according to a measured value.
A load control module 140 includes a measurement module 2202, a control module 2203, a setting module 2205, and a probe log storage module 2209. The management module 141 is the same as that shown in
The probe log storage module 2209 is a storage area secured in the main memory 2705 or the external storage device 2707. The measurement module 2201, the control module 2203, and the setting module 2205 are program modules included in the management module 141. The probe 1610 is a program module inserted into the application program 170 by the management module 141 shown in
First, processing of measuring the probe load will be described.
Upon reception of instruction of measuring the probe load, the setting module 2205 controls the probe 1610 inserted into the application program 170 to output a log of a monitoring operation of the probe 1610 (referred to as “probe log” hereinafter) during the measuring period of the probe load (S1801).
The probe log is information regarding a monitoring operation executed by the probe 1610, is output for each operation of the probe 1601, and is stored in the probe log storage module 2209. The probe log contains at least information indicating that the probe 1610 has been operated (i.e., probe 1610 has been executed). The probe log may further contain various pieces of information regarding processing executed by the probe 1610.
Processing for outputting the probe log may be executed by generating a probe 1610 which has a code for outputting a probe log incorporated therein and by inserting the generated probe 1610 again into the application program 170. Alternatively, the processing may be executed by incorporating a function of outputting a probe log beforehand in the probe 1610, and validating the function.
Otherwise, when information necessary for measuring the probe load can be obtained based on a monitor event output from the probe 1610, instead of outputting a probe log, the monitor event output module 180 may capture a monitor event output from each probe 1610. In this case, the monitor event output module 180 specifies a probe 1610 which has been operated based on a probe ID added to the monitor event, and extracts information equivalent to the probe log to output it to the probe log storage module 2209.
The measurement module 2201 obtains probe logs output from the probes 1610 from the probe log storage module 2209, and totals the probe logs to calculate a load of each probe 1610. For calculation of the probe load, the number of operation times (i.e., number of execution times) of each probe 1610 or the like is used. A description will be made below as to a case where the number of operation times of the probe is used as an example. The measurement module 2201 totals the probe logs, calculates the number of operation times of each probe 1610 per module time, and sets this value as a probe load.
After an end of the measuring period of the probe load, the setting module 2205 controls each probe 1610 to stop outputting of a probe log. If the probe 1610 having a code incorporated therein to output a probe log is generated to output the probe log, the setting module 2205 regenerates a probe 1610 from which an output code of the probe log has been removed. The setting module 2205 inserts the generated probe 1610 again into the application program 170 by using the management module 141.
Through the processing, a load of a monitoring operation of each probe 1610 is measured.
To reduce a load of measuring processing itself of the probe load, each probe 1610 may temporarily store a probe log, and output the probe logs en bloc at a predetermined interval instead of outputting the probe log for each operation of the probe 1610. Alternatively, the probe log temporarily stored in the probe 1610 may be totaled by each probe 1610, and only a statistically processed value may be output at a predetermined interval.
First, in a step 2401, the load control module 140 starts measurement of a probe load. As described above, the probe 1610 having the code for outputting the probe log incorporated therein may be inserted into the application program 170, or a function of outputting a probe log may be validated.
In a step 2402, the load control module 140 measures a load of the probe 1610.
In a step 2403, the load control module 140 compares the measured probe load with a preset reference value of a probe load.
If it is judged in the step 2403 that the probe load satisfies the reference (i.e., probe load is within a range of the reference value), the process proceeds to a step 2407. On the other hand, if it is judged in the step 2403 that the probe load does not satisfy the reference, the probe load must be reduced to reduce an influence of the probe load on execution of the application program 170. Thus, the process proceeds to a step 2405.
In a step 2405, the load control module 140 controls a monitoring operation of the probe 1610 to reduce the probe load.
In a step 2407, the load control module 140 judges whether the set measurement period of the probe load has come to an end.
If it is judged in the step 2407 that the measurement period has not come to an end, the process returns to the step 2402 to continue the measurement of the probe load and the control of the monitoring operation.
On the other hand, if it is judged in the step 2407 that the measurement period has come to an end, the load control module 140 finishes the measurement of the probe load to terminate the process in a step 2409.
The reference value of the probe load compared in the step 2403 may be set based on an absolute value of a load of each probe 1610, or may be set based on a relative value with a load of the other probe 1610.
If the absolute value of the load is used, in the step 2403, the load control module 140 compares the load of each probe 1610 with the set reference value to judge whether the load is within the reference range. The reference value of the probe load is stored beforehand in the storage area of the load control module 140.
On the other hand, if the relative value of the load is used, in the step 2403, the load control module 140 calculates a relative value between a reference load of a probe 1610 and a load of a probe 1610 of a measuring target. Then, the load control module 140 compares the calculated relative value with the set reference value. When a probe load is evaluated by using the relative value, irrespective of the entire load of the application program 170, it is possible to discover a probe 1610 of an especially high load as compared with the other probes 1610.
If there is a probe 1610 whose load exceeds the reference value as a result of comparison with the reference value, the load control module 140 controls a monitoring operation of the probe 1610. As methods of controlling monitoring operations, for example, there are a method (1) of removing the probe 1610 from the application programs 170, a method (2) of thinning outputs of monitor data of the probe 1610, and the like.
According to the method (1), monitoring of the probe 1610 is completely stopped, and a program code of the probe 1610 is removed from the application program 170. Thus, an influence on execution of the application program is completely removed.
According to the method (2), by setting the number of outputting times of monitor data of the probe 1610 per a several number of processing times, the number of processing times for obtaining and outputting monitor data of the probe 1610 is reduced. As a result, a load of the probe 1610 is reduced.
The load control module 140 measures a probe load again after the execution of control of the monitoring operation.
In the case of executing control of the method (2) during measurement of a monitoring load of the probe 1610, irrespective of whether the probe 1610 has actually output monitor data, it is possible to more accurately measure a probe load by outputting a probe log every time the probe 1610 is operated. The probe log to be output at this time contains information indicating whether the monitor data has been output.
Alternatively, if a sum total of all the probe loads exceeds a reference value, the load control module 140 can control the entire load not to exceed the reference value by adjusting a value of each probe load through the processing. In this case, the load control module 140 calculates a target value of a load of each probe 1610 to control a monitoring operation of the probe 1610 by taking a load balance of each probe 1610 and importance of monitor data output from each probe 1610 into consideration.
Measurement and control of the probe load are executed when a new probe 1610 is added to the application program 170 or when instructed by the user.
When the new probe 1610 is added to the application program 170, the user interface 110 instructs the management module 141 to insert the new probe 1610 into the application program 170 and instructs the load control module 140 to measure a probe load.
The load control module 140 starts measurement and control of loads of the probes 1610 including the new probe 1610 in association with the insertion of the new probe 1610 into the application program 170 executed by the management module 141. Then, the load control module 140 executes the measurement and the control of probe loads for a preset period, and displays the measured probe loads and a state of the control of the monitoring operation to the user interface 110.
Additionally, the user may use the user interface 110 to optionally instruct execution of measurement and control of probe loads, and may set the reference value of the probe load and a control method or the like implemented when the load exceeds the reference value.
Specifically, the user interface 110 of
A measurement probe setting window 2600 displays a list of probes 1610 stored in the probe definition storage module 1601 of the management module 141. Further, the measurement probe setting window 2600 displays a value of the measured probe load in a section 2605 when a load of the monitoring operation of each probe 1610 has been measured.
A check box 2601 is disposed in each line indicating each probe 1610. The user operates the check box 2601 to select a probe 1610 of a measuring target of a monitoring operation load.
A reference value of a load of each probe is displayed in a reference value input section 2604. The user can input a value into the reference value input section 2604.
When the user operates a measurement button 2607, the measurement and the control of the probe load are executed, the measured probe load is displayed in a probe load display section 2605, and a state of control of the monitoring operation is displayed in a control state display section 2606.
For each probe 1610 or all the probes 1610, an interface for inputting a permissible reference value of a probe load may be disposed, and measurement of the probe 1610 and control of a monitoring operation of a high-load probe may be executed in the flow shown in
Alternatively, instead of controlling each probe 1610 to output a probe load, the probe load may be measured by measuring a performance index of the system or the application program 170.
In a step 2301, the load control module 140 starts measurement of an index indicating execution performance of the application program 170. The performance index may be measured by a function of the application server 160 or the like to measure the performance index. This embodiment will be described by way of a case where processing throughput of the application program 170 measurable in the application server 160 is set as a performance index used for measuring a probe load.
In a step 2303, the load control module 140 measures processing throughput of a state where the measuring target probe 1610 has not been inserted. Specifically, the application program 170 is executed in a state where the measuring target probe 1610 has not been inserted into the application program 170 to obtain average processing throughput for a predetermined period.
In a step 2304, the probe insertion module 1608 inserts the measuring target probe 1610 into the application program 170 to execute monitoring by the probe 1610.
In a step 2305, the application program 170 is executed in a state where the measuring target probe 1610 has been inserted to measure the average processing throughput for a predetermined period as in the case of the step 2303.
In a step 2306, the load control module 140 calculates a value of a probe load by using the values of the processing throughput measured in the steps 2303 and 2305.
Then, in a step 2308, the load control module 140 stops the measurement of the performance index set in the step 2301 to finish the measurement processing of the probe load.
Through the processing, a probe load of the measuring target probe 1610 is measured.
The performance index used for measuring the probe load is not limited to the processing throughput. By measuring a plurality of performance indexes, it is possible to measure a probe load more accurately.
In the flow of
According to this embodiment, in the step 2303, the performance index is measured in the noninserted state of the measuring target probe 1610 for each measuring of a probe load. Then, in the step 2306, the influence of the probe 1610 is calculated by using the measured value. However, a performance index measured in the past may be recorded, and the calculation of the step 2306 may be executed by using the recorded value.
According to this embodiment, the measurements of the performance indexes in the inserted and noninserted states of the measuring target probe 1610 are separately carried out. If possible, however, both may be simultaneously executed. For example, when processing time of the method of inserting the measuring target probe 1610 is set as a performance index, the function of the load measuring probe 1610 may be incorporated in the program code of the measuring target probe 1610, and processing time including processing of the monitoring operation of the measuring target probe 1610, and processing time not including processing of the monitoring operation of the measuring target probe 1610 may be simultaneously measured. As a result, it is possible to obtain a load of the measuring target probe by simultaneously measuring both the processing times.
The first embodiment of this invention is based on the premise that one component of the design information has a design correspondence with only one component of the program code. A second embodiment will be described below by way of an example where a plurality of components of a program code corresponds to one component of design information.
Only differences of the second embodiment of this invention from the first embodiment will be described below. Components of the second embodiment not described below are similar to those of the first embodiment.
Specifically,
As in the case of the first embodiment, the correspondence retrieval module 115 of this embodiment executes retrieval processing of a component of a corresponding program code as shown in
For example, in the example of
Specifically,
A management module 141 designates a probe 1610 which becomes a target by using the probe ID 1001, generates probes 1610 based on all probe definitions having the designated probe ID 1001, and executes insertion and removal. In the example shown in
According to embodiments of this invention, even the business or operation administrator having no knowledge of program implementation can designate monitoring of the application program on upstream application design information understandable from a viewpoint of a business. A program module for realizing the designated monitoring is immediately added to the application program or changed without requiring any work on a designer or a programmer. Further it is possible to easily realize proper monitoring according to an execution state of the application program by operating a plurality of monitoring functions in cooperation without any programming work. Furthermore, it is possible to prevent casual monitoring setting from causing serious performance deterioration in execution of the application program to thereby safely set application monitoring.
Representative aspects of this invention outside the scope of claims are as follows.
(1) A computer system, including an application server for executing an application program, which is configured to:
hold an operation to be executed to control program modules for monitoring the application program, and a condition used for judging whether to execute the operation; and
execute the operation when the condition is satisfied.
(2) The computer system according to the above-mentioned item (1), which is configured to:
execute at least one of the program modules for monitoring the application program; and
judge whether the condition is satisfied based on data obtained by one of the program modules.
(3) The computer system according to the above-mentioned item (1), in which the operation to be executed to control the program module for monitoring the application program is one of insertion of the program module into the application program and removal of the program module from the application program.
(4) The computer system according to the above-mentioned item (1), which is configured to generate a program code for executing all or a part of judgment as to whether to execute the operation, and the operation to be executed as a result of the judgment.
(5) The computer system according to the above-mentioned item (1), further including a user interface for inputting an operation to be executed to control the program module for monitoring the application program and the condition used for judging whether to execute the operation.
(6) The computer system according to the above-mentioned item (5), which is configured to:
hold information indicating a correspondence between a component of design information at one stage of a development process of the application program and a component of design information at a more advanced stage than the one stage; and
designate, when information indicating one of a point and data of a business process is input, one of a program module for executing the operation and a program module for obtaining data used for judging whether to execute the operation based on the input information and the information indicating the correspondence.
(7) The computer system according to the above-mentioned item (6), which is configured to generate a new designated program module when the designated program module is not present.
(8) A computer system, including an application server for executing an application program, which is configured to measure a load generated by inserting and executing a program module for monitoring the application program in the application program.
(9) The computer system according to the above-mentioned item (8), which is configured to measure the load based on a log of a monitoring operation of the program module for monitoring the application program.
(10) The computer system according to the above-mentioned item (8), which is configured to measure the load based on a performance index in execution of the application program.
(11) The computer system according to the above-mentioned item (8), which is configured to control the operation of the program module for monitoring the application program when the measured load does not satisfy a predetermined condition.
(12) The computer system according to the above-mentioned item (11), which is configured to control the operation of the program module for monitoring the application program by removing the program module when the measured load does not satisfy a predetermined condition.
(13) The computer system according to the above-mentioned item (8), which is configured to:
measure the load generated by the program module for monitoring the application program when the program module is inserted into the application program; and
control an operation of the program module when the measured load does not satisfy a predetermined condition.
(14) The computer system according to the above-mentioned item (13), which is configured to control the operation of the program module for monitoring the application program by removing the program module when the measured load does not satisfy a predetermined condition.
(15) The computer system according to the above-mentioned item (8), further including a user interface for inputting the program module of a load measuring target and a condition, and displaying the measured load.
By using this invention, it is possible to easily set and execute application monitoring without being conscious of the implementation of the application program.
While the present invention has been described in detail and pictorially in the accompanying drawings, the present invention is not limited to such detail but covers various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2006-145199 | May 2006 | JP | national |