The present application claims priority from Japanese patent application JP2010-060122 filed on Mar. 17, 2010 and Japanese patent application JP2010-164433 filed on Jul. 21, 2010, the contents of which are hereby incorporated by reference into this application.
The present invention relates to a system, a recording medium and a maintenance support system, and particularly to a system for acquiring execution information of a process in a computer, a recording medium storing a program for causing the system to execute the process and a maintenance support system.
In a life cycle of an information system, a person in charge of the information system comes across a situation where a large number of man-hours have to be invested to understand the operation of the information system. Particularly, a person in charge of maintenance/improvement by adding a function to the information system in a maintenance phase and carrying out a task such as dealing with a correction in the event of a trouble has to invest man-hours in analyzing a cause of the trouble of the information system due to problems such as obsolescence of a design document caused by repeated corrections and complexity of a source code in some cases.
To understand the operation of an information system, a technology for generating specification information such as a class/method call relationship is thought to support the work of a person in charge of the information system. For example, Patent literature 1 discloses a method for hierarchizing analysis information of a source code of software to be analyzed and successively storing it in a recording medium such as a database to support a reduction of cumbersome works of the person in charge associated with software analysis such as having to carry out an analysis again after taking a certain measure such as when a memory capacity in a computer system to be analyzed is insufficient.
Further, conventionally, there has been a method for manually extracting related information from various individually output logs (web server log, task application log, database access log, etc.) based on temporal proximity and attempting to understand the operation of an information system and analyze a cause of a trouble in a server. Such a method often requires a great deal of time and efforts. Particularly, in Patent literature 2, a method for generating dynamic design information such as a sequence diagram from execution sequence information acquired by analyzing a source code and internally executing a program is cited as a method for understanding the operation of the program. Further, since the above logs are constantly output, they place a burden on a hard disk and a great deal of time is required in manually analyzing the logs due to a huge volume of data. In Patent literature 3, a function capable of reading information described in a source code (e.g. as a comment) in advance at a server side and customizing whether or not to acquire an input operation of a candidate to be acquired is realized to reduce the recording volume of a screen input operation history of a web application.
In the case of Java language, there are cases where an operation is not determined until a program is executed. Information obtained by statically analyzing a source code as in Patent literature 1 alone may be insufficient to understand the operation of a program.
In a web application having a characteristic that a plurality of users can simultaneously access to a server using client PCs and use the same program and other characteristics, the operation of the web application cannot be understood only by using dynamic design information of the program (in the server) mentioned in Patent literature 2 and it is also necessary to match data operation contents on a request transmitter page, a database (hereinafter, abbreviated as DB) with the above execution information of the program and visualize them as a series of operations.
Further, in Patent literature 2, it takes time to decipher a source code in advance to set information (e.g. parameter transmitted by a form tag of an HTML file) necessary for an event to be executed.
Further, there is no method for selectively acquiring information at the time of execution without reconfiguring a source code. A means for selecting information to be acquired at the time of execution at a server side based on information added to a source code is thought as in Patent literature 3, but it is necessary to compile the source code and reallocate a web application each time in the case of correcting information added to the source code such as addition of a candidate for an input operation acquired at the time of execution.
In view of the situation described above, a main object of the present invention is to control the output of information system internal information based on information included in a request from the outside such as a client.
In order to solve the problems, an aspect of the invention is a system for acquiring execution information of a process executed in a computer, including: a client part for issuing an execution request for a process; and a server part including an application execution part for executing a process according to an execution request from the client and an execution information acquirement control part for controlling acquirement of execution information. The client part receives and stores a request to start acquiring execution information. The client part transmits a request to acquire execution information to the server part together with an execution request based on the stored request to start acquiring execution information upon receiving the execution request for the application execution part after receiving the request to start acquiring execution information. The application execution part executes a process based on the execution request. The execution information acquirement control part stores execution information of the process executed by the application execution part in a storage device based on the request to acquire execution information.
In maintenance and improvement of an information system, it is possible to dynamically acquire execution time information of web applications and enable a user himself to determine the start and end of acquirement of the execution time information. This contributes to a reduction of lead time to investigate a cause in the event of a trouble and to understand the existing information system.
Hereinafter, an embodiment of the invention is described.
Note that only the client 100 is described below to simplify the description.
In the system, concerning acquirement of information at the time of executing a web application, it is controlled to acquire execution time information for each user or each request of the web application.
The server 120 includes web applications 130, middleware 140 and a program execution platform 150. The substance of these web applications 130, middleware 140 and program execution platform 150 is software of the server 120 to be described later and realized by a CPU 201 of the server 120 reading software stored in an external storage device 204 into a main storage device 202 and executing it.
The web applications 130 indicate a set of applications allocated on the server 120. In this embodiment, the allocated web applications 130 include a task application 131, an execution time information acquirement information setting application 132, and an execution time information reference application 133. Note that a plurality of task applications may be allocated as the task application 131.
The execution time information acquirement information setting application 132 has a function of adding/updating execution time information acquirement information C001 to a request transmitted to the server from the client.
The execution time information reference application 133 has a function of referring to the recorded execution time information.
The middleware 140 includes an execution time information acquirement control device 141, an execution time information acquiring device 142 and execution time information files 143. The substance of the execution time information acquirement control device 141 and the execution time information acquiring device 142 is also software allocated on the middleware 140.
The execution time information acquirement control device 141 has a function of referring to the execution time information acquirement information added to a request transmitted from the client 100 via the network, and instructing the execution time information acquiring device 142 to start/stop acquiring the execution time information. The execution time information acquirement control device 141 also has such a function of transferring a received request to an application represented by an application server.
The execution time information acquiring device 142 acquires information at the time of executing the web application 130 allocated on the server 120. Although the execution time information acquiring device 142 includes a request execution time information acquiring device 142a, a program execution time information acquiring device 142b and a DB access execution time information acquiring device 142c in this embodiment, the configuration thereof is not limited to this.
The request execution time information acquiring device 142a has a function of acquiring information (request target URL, data input in a client PC, etc.) of a request transmitted from the client PC.
The program execution time information acquiring device 142b has a function of acquiring information on a program call relationship read into the main storage device 202 for the substance of the web applications 130 stored in the external storage device 204 by the program execution platform 150. For example, in the case of a web application written in Java language, a call relationship such as information on the package name, class name and method name of a caller object and those of a call target object is acquired for an object allocated to the main storage device 202 by JavaVM.
The DB access execution time information acquiring device 142c has a function of referring to/updating data in the DB in accordance with an SQL sentence issued by the web application 130 and a function of acquiring information such as in referring to/updating the data in the DB. For example, an SQL sentence issued by the web application 130 for a task DB 161, the value of data acquired by referring to a table of the task DB 161 and the like can be obtained.
The execution time information files 143 are files for storing the execution time information acquired in the execution time information acquiring device 142. In this embodiment, the execution time information files 143 include a request execution time information file 143a, a program execution time information file 143b and a DB access execution time information 143c. The execution time information files 143 may be mounted in the external storage device 204 of the server machine 120 to be described later or may be mounted in another storage device connected to the server machine 120. Further, a storage destination of the execution time information may be DBs and the like in addition to the files.
The program execution platform 150 has a function of inserting a machine code used to acquire the execution time information in reading the substance of the web applications 130 into the main storage device 202. For example, if the program execution platform 150 is JavaVM, a java.lang.instrument package is known and a function of embedding an arbitrary byte code is provided in instantiating a class file and allocating an object on a memory.
The task DB 161 is a database for the task application 131. The task DB 161 may be mounted in the external storage device 204 of the server 120 to be described later or may be mounted in another storage device connected to the server 120.
An execution time information acquirement target list 171 is a list of the names of recorded programs for which the execution time information is to be acquired. Although the execution time information acquirement target list 171 is stored in a file in this embodiment, there is also a method for storing it in a DB or the like. The execution time information acquirement target list 171 may also be mounted in the external storage device 204 of the server 120 to be described later or may be mounted in another storage device connected to the server 120.
The respective constituent elements are described in detail below.
The server includes the CPU 201, the main storage device 202, a network connection device 203, the external storage device 204, a display 205, a data input device 206, the network 207 and the like. Note that the client PC 100 also has a hardware configuration similar to that of the server 120.
Note that although only the case where the “user” operates the client 100 to communicate with the server 120 is shown in the flows in
In
Subsequently, the client 100 instructs the server to display the execution time information acquirement information setting page P001 (
Subsequently, the client 100 instructs the server to start acquiring the execution time information in accordance with an input operation by the “user” performed via the execution time information acquirement information setting page P001 (S303). Specifically, a “record ID” is entered in an input form 401 by the “user”, and the type of the execution time information desired to be acquired is selected by graphical user interfaces (GUIs) 402, 403 and 404 such as check boxes. Thereafter, a GUI 405 such as a “Start” button is pressed down by the “user”, thereby instructing the server 120 to start acquiring the execution time information.
The value of the “record ID” in the input form 401 is an ID indicating the execution time information to be recorded thereafter, and used in specifying the execution time information in various managements (e.g. execution time information reference process S310 to be described later) thereafter.
Here, when the “Start” button 405 is pressed down by the “user”, the client 100 instructs to start acquiring the execution time information by setting the value of a key “isRecordingOperation” of execution time information acquirement information 501 to “true”. Simultaneously, the client 100 indicates the types of the execution time information desired to be acquired to the server 120 by respectively setting the value of a key “isRecordedRequestInfo” of request execution time information acquirement information 502, that of a key “isRecordedProgramOperation” of program execution time information acquirement information 503 and that of a key “isRecordedDBAccessInfo” of DB access execution time information acquirement information (504) to “true” in correspondence with the contents of the GUIs 402, 403 and 404 checked by the “user” on the execution time information acquirement information setting page P001.
Further, if the “user” removes a check from the check box, the client 100 can set the value of the corresponding key on the execution time information acquirement information setting page P001 to “false”, thereby being able to instruct the server to remove the set execution time information from the acquirement target.
Subsequently, the client 100 instructs a specified task process to the server 120 in accordance with an input operation from the user via the task page P002 (S304). Specifically, the value of a “product ID” is entered in an input form 411 of the task page P002 (
Subsequently, the client 100 instructs the server 120 to stop acquiring the execution time information in accordance with an input operation from the “user” via the execution time information acquirement information setting page P001 (S304). Specifically, when a “Finish” button 406 is pressed by the “user” via the execution time information acquirement information setting page P001 (
In this way, the “user” performs a series of operations from the operation of starting acquirement of the execution time information (302) to the operation of ending acquirement of the execution time information (304), whereby the execution time information can be acquired only for the process of the task operated by the “user” himself.
The execution time information acquirement information C001 includes the execution time information acquirement information 501, the request execution time information acquirement information 502, the program execution time information acquirement information 503, the DB access execution time information acquirement information 504 and a record ID 505.
The execution time information acquirement information 501 is expressed in a key-value format and indicates the start of acquiring the execution time information when the value for the key “isOnRecordingOperation” is “true”. On the other hand, it indicates the end of acquiring the execution time information if the value is “false”.
The request execution time information acquirement information 502 is expressed in a key-value format, and the request execution time information acquiring device 143 acquires the execution time information in a request if the value for the key “isRecordedRequestInfo” is “true”. On the other hand, if the value is “false”, it indicates the end of acquiring the execution time information in the request and the request execution time information acquiring device 143 stops acquiring the execution time information in the request.
The program execution time information acquirement information 503 is expressed in a key-value format and the program execution time information acquiring device 144 acquires the execution time information of a program if the value for a key “isRecordedProgramOperation” is “true”. On the other hand, if the value is “false”, it indicates the end of acquiring the execution time information of the program and the program execution time information acquiring device 144 stops acquiring the execution time information of the program.
The DB access execution time information acquirement information 504 is expressed in a key-value format and the DB access execution time information acquiring device 145 acquires the execution time information of a DB access if the value for the key “isRecordedDBAccessInfo” is “true”. On the other hand, if the value is “false”, it indicates the end of acquiring the execution time information of the DB access and the DB access execution time information acquiring device 145 stops acquiring the execution time information of the DB access.
The record ID 505 is an item uniquely specifying the recorded execution time information and expressed in a key-value format. In this embodiment, a character string or the like entered by the user himself on the execution time information acquirement information setting page P001 is set as a value for a key “RecordID”.
Writing into a cookie and the like can be cited as a specific means for giving certain information to a request from a page displayed on a browser such as the execution time information acquirement information setting page P001 in this way. That is, when the user instructs to start/stop acquiring the execution time information using the execution time information acquirement information setting page P001, the client PC stores the execution time information acquirement information C001 generated based on the instruction in a memory. At this time, every time the user issues a request using the task page P002, the client 100 having received this adds the execution time information acquirement information C001 stored in the memory to the request and transmits the resultant to the server 120.
Next, the execution time information reference process S311, which is a process of referring to the execution time information acquired by the above execution time information acquiring process S300, is described using
The client 100 displays the execution time information reference page P003 used to refer to the recorded execution time information on the display in accordance with an input operation from the “user” (S311). The execution time information reference page P003 is so displayed as to relate the “record IDs” and “acquirement orders” in time at which acquirement of the execution time information was started. GUIs 601, 602 such as check boxes are displayed for the “record IDs” and the “acquirement orders” in a correspondence relationship.
Subsequently, the client 100 displays the execution time information P004 (
Note that although an example of displaying a list of requests included in the “testid” of “record ID” is shown in
Subsequently, the client 100 graphically displays the execution time information per selected request in accordance with a selection operation of GUIs 701, 702 which are check boxes corresponding to the “request IDs” and pressing of a “Display” button 703 (S313).
By performing the execution time information reference process 310 in this way, the user can refer to the execution time information of only the process of the task designated by himself.
Processes of the server 120 in response to the processes in the client 100 shown in
First, a process at the server machine 120 in response to the execution time information acquiring process S300 (
The web application memory area 810 is a memory area used by the web applications 130. In this embodiment, the web applications written in Java language are supposed, and objects 811, 812 and 813 instantiated from the class file are assumed to be allocated. Particularly, the object 812 is an instance of the class file listed in the execution time information acquirement target list 171 and a machine code used to acquire the execution time information is inserted by the program execution platform 150.
The execution time information acquirement control device memory area 820 is a memory area used by the execution time information acquirement control device 141.
The request execution time information acquiring device memory area 830 is a memory area used by the request execution time information acquiring device 142a.
The program execution time information acquiring device memory area 840 is a memory area used by the program execution time information acquiring device 142b.
The DB access execution time information acquiring device memory area 850 is a memory area used by the DB access execution time information acquiring device 142c.
This flow is started when the server 120 receives a request transmitted from the client 100.
The execution time information acquirement control device 141 acquires the value of the “record ID” from the execution time information acquirement information C001 added to the request and generates a “request ID” uniquely specifying the request transmitted from the client 100 (S1001).
Subsequently, the execution time information acquirement control device 141 transmits the values of the “record ID” and the “request ID” to the request execution time information acquiring device 142a together with an instruction message to start acquiring the request execution time information in accordance with the execution time information acquirement information C001 added to the request (S1002). In this embodiment, if the example of the execution time information acquirement information C001 of
Subsequently, the request execution time information acquiring device 142a acquires the request execution time information and stores it together with the values of the “record ID” and the “request ID” in the request execution time information file 143a (S1003) when receiving a message to start acquiring the request execution time information from the execution time information acquirement control device 141.
Subsequently, the execution time information acquirement control device 141 transmits the values of the “record ID” and the “request ID” to the program execution time information acquiring device 142b together with an instruction message to start acquiring the execution time information in accordance with the content of the execution time information acquirement information C001 added to the request and received from the client 100 (S1004). In this embodiment, if the example of the execution time information acquirement information C001 of
Subsequently, the program execution time information acquiring device 142b sets a program execution time information acquirement start flag and stores the values of the “record ID” and the “request ID” in the program execution time information acquiring device memory area 840 (S1005) when receiving the message to start acquiring the program execution time information from the execution time information acquirement control device 141.
Subsequently, the execution time information acquirement control device 141 transmits the values of the “record ID” and the “request ID” to the DB access execution time information acquiring device 142c together with an instruction message to start acquiring the DB access execution time information in accordance with the content of the execution time information acquirement information C001 added to the request (S1006). In this embodiment, if the example of the execution time information acquirement information C001 of
Subsequently, the DB access execution time information acquiring device 142c sets a DB access execution time information acquirement start flag and stores the values of the “record ID” and the “request ID” in the DB access execution time information acquiring device memory area 850 (S1007) when receiving the message to start acquiring the DB access execution time information from the execution time information acquirement control device 141.
Subsequently, the execution time information acquirement control device 141 calls the web application corresponding to the request received by the server 1008. In this embodiment, the object 811 in the web application memory area 810 is called.
Subsequently, the object 811 in the web application memory area 810 calls the object 812 (S1009).
Subsequently, the object 812 in the web application memory area 810 calls the object 813 (S1010).
Subsequently, the object 812 in the web application memory area 810 transmits the program execution time information to the program execution time information acquiring device 142b in accordance with the machine code embedded by the program execution device 150 (S1011).
Subsequently, the program execution time information acquiring device 142b refers to the execution time information acquirement start flag set in the program execution time information acquiring device memory area 840 when receiving the program execution time information from the object 812 in the web application memory area 810 (S1012).
Subsequently, the program execution time information acquiring device 142b acquires the received program execution time information and stores it together with the recorded “record ID” and “request ID” in the program execution time information file 143b (S1013) if the referred execution time information acquirement start flag is set.
Subsequently, the object 813 in the web application memory area 810 transmits a message requesting an operation such as reference to task data stored in the task DB 161 to the DB access execution time information acquiring device 142c (S1014).
Subsequently, the DB access execution time information acquiring device 142c establishes connection to the task DB 161 and performs the operation of the task data requested from the object 813 in the web application memory area 810 (S1015).
Subsequently, the DB access execution time information acquiring device 142c refers to the DB access execution time information acquirement start flag set in the DB access execution time information acquiring device memory area 850 (S1016).
Subsequently, the DB access execution time information acquiring device 142c acquires the DB access execution time information in S1015 and stores it together with the “record ID” and the “request ID” stored therein in the DB access execution time information file 143c (S1017) if the referred DB access execution time information acquirement start flag is set.
Subsequently, the execution time information acquirement control device 141 transmits a message to stop acquiring the DB access execution time information to the DB access execution time information acquiring device 142c (S1018).
Subsequently, the DB access execution time information acquiring device 142c clears the DB access execution time information acquirement start flag set in the DB access execution time information acquiring device memory area 850 (S1019) when receiving the message to stop acquiring the DB access execution time information.
Subsequently, the execution time information acquirement control device 141 transmits a message to stop acquiring the program execution time information to the program execution time information acquiring device 142b (S1020).
Subsequently, the program execution time information acquiring device 142b clears the program execution time information acquirement start flag set in the program execution time information acquiring device memory area 840 (S1021) when receiving the message to stop acquiring the program execution time information.
The “record ID” is an item specifying execution time information acquired for each user and, in this embodiment, the value of the “record ID” can be acquired when the request execution time information acquiring device 142a receives a message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “request ID” is an item uniquely specifying a request and mechanically given in the execution time information acquirement control device 141. The value of the “request ID” can be acquired when the request execution time information acquiring device 142a receives the message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “request URL” is an item specifying a resource in the web application requested by the request. For example, in the case of Java language, it can be mechanically acquired from a javax.servlet.http.HttpServletRequest object generated upon receiving the request.
The “referrer URL” is an item specifying a resource (of the web application displayed on the client PC) having transmitted the request. For example, in the case of Java language, it can be mechanically acquired from the javax.servlet.http.HttpServletRequest object generated upon receiving the request.
The “query string” is an item indicating user input data added to the request. For example, on a page written in HTML, the value entered in a form displayed by a form tag can be transmitted to the server by being added to the request. Further, in the case of Java language, it can be mechanically acquired from the javax.servlet.http.HttpServletRequest object generated upon receiving the request.
The “acquirement order” is an item indicating an order of storing the request execution time information acquired by the request execution time information acquiring device 142a in the request execution time information file 143a and can be mechanically acquired in the request execution time information acquiring device 142a. In this example, times displayed in a YYYY/MM/DD_HH:mm:SS format are listed.
The “record ID” is an item specifying execution time information acquired for each user. In this example, the value of the “record ID” can be acquired when the program execution time information acquiring device 142b receives a message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “request ID” is an item uniquely specifying a request and mechanically given in the execution time information acquirement control device 141. The value of the “request ID” can be acquired when the program execution time information acquiring device 142b receives the message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “caller object information” is an item indicating information possessed by the object that transmits a message to another object and can be acquired by the machine code inserted by the program execution device 150 and used to acquire the execution time information. In this embodiment, if 1201 of the example 1200 of the program execution time information is used, a character string “P002” corresponding to a Java language package and a character string “C001” corresponding to the class of the object are connected by a symbol such as “.” and the character string “C001” corresponding to the class and a character string “M001” corresponding to a method are connected by a symbol such as “#”.
The “call target object information” is an item indicating information on the object as a message transmission destination of a certain object and can be acquired by the machine code inserted by the program execution device 150 and used to acquire the execution time information when the object as a caller transmits a message. In this embodiment, similar to the above “caller object information”, the character string corresponding to the Java language package and the character string corresponding to the class of the object are connected by a symbol such as “.” and the character string corresponding to the class and the character string corresponding to the method are connected by a symbol such as “#”.
The “acquirement order” is an item indicating an order of acquiring call relationship information among the objects and can be acquired by the machine code inserted by the program execution platform 150. In this example, times displayed in a YYYY/MM/DD_HH:mm:SS format are listed.
The “record ID” is an item specifying execution time information acquired for each user and, in this example, the value of the “record ID” can be acquired when the DB access execution time information acquiring device 142c receives a message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “request ID” is an item uniquely specifying a request and mechanically given in the execution time information acquirement control device 141. The value of the “request ID” can be acquired when the DB access execution time information acquiring device 142c receives the message to start acquiring the execution time information from the execution time information acquirement control device 141.
The “SQL issuing object information” is an item indicating information on the object that receives a message to operate the task data from the web application 130 and executes a process of operating the data of the DB written in SQL or the like, and can be mechanically acquired in the DB access execution time information acquiring device 142c. In this embodiment, similar to the above “caller object information”, the character string corresponding to the Java language package and the character string corresponding to the class of the object are connected by a symbol such as “.” and the character string corresponding to the class and the character string corresponding to the method are connected by a symbol such as “#”.
The “SQL information” is an item indicating the content of the process such as a data operation of the task DB 161. In this embodiment, character strings such as the one “SELECT *FROM PRODUCT_TABLE WHERE ITEM=001” written in SQL language are listed.
The “acquirement order” is an item indicating an order of acquiring DB access execution time information in the DB access execution time information acquiring device 142c and can be mechanically acquired in the DB access execution time information acquiring device 142c. In this embodiment, times displayed in a YYYY/MM/DD_HH:mm:SS format are listed.
The above is the description of the process of the server 120 in the execution time information acquiring process S300 of the client 100.
Next, the operation of the server 120 in the execution time information reference process S310 of referring to the recorded execution time information is described.
The execution time information tracking key extracting module 1401 has a function of extracting an “execution time information tracking key” used to extract the execution time information acquired by the server 120. In this embodiment, a set of the “record ID” that can be obtained from the request execution time information file 143a and the “request ID” belonging thereto is used as the “execution time information tracking key”.
The execution time information display data acquiring module 1402 has a function of extracting execution time information display data based on the “execution time information tracking key” acquired in the execution time information tracking key extracting module 1401. In this embodiment, the execution time information display data is assumed to be extracted from the request execution time information file 143a, the program execution time information file 143b and the DB access execution time information file 143c based on the “execution time information tracking key”.
The execution time information display module 1403 has a function of graphically displaying the execution time information display data extracted in the execution time information display data acquiring module 1402.
The execution time information tracking key extracting module 1401 acquires all the “record IDs” stored in the request execution time information file 143a (S1501). In this embodiment, it is assumed that the “record IDs” acquired in Step S1501 can be displayed on the execution time information reference page P003 and the “user” can select one from a list of the displayed “record IDs”.
Subsequently, the execution time information tracking key extracting module 1401 acquires all “request IDs” belonging to the “record ID” selected by the “user” from the request execution time information file 143a (S1502). In this embodiment, it is assumed that the “request IDs” acquired in Step S1502 can be displayed on the execution time information reference page P004 and the “user” can select one from a list of the displayed “request IDs”.
Subsequently, the execution time information tracking key extracting module 1401 transmits the execution time information tracking key selected by the “user” to the execution time information display data acquiring module 1402 (S1503).
Subsequently, the execution time information display data acquiring module 1402 receives the execution time information tracking key (S1511) and extracts respective records including the received execution time information tracking key from the request execution time information file 143a, the program execution time information file 143b and the DB access execution time information file 143c (S1512).
Subsequently, the execution time information display data acquiring module 1402 transmits the extracted execution time information display data to the execution time information display module 1403 (S1513).
Subsequently, the execution time information display module 1403 receives the execution time information display data (S1521) and graphically displays the relationship of the execution time information (S1522).
Various pieces of execution time information extracted in Step S1512 of the process flow of the modules constituting the execution time information reference program 133 shown in
The “request URL” corresponds to the “request URL” of the request execution time information 1100. The “referrer URL” corresponds to the “referrer URL” of the request execution time information 1100. The “query string” corresponds to the “query string” of the request execution time information 1100. The “acquirement order” corresponds to the “acquirement order” of the request execution time information 1100.
The “caller object information” corresponds to the “caller object information” of the program execution time information 1200. The “call target object information” corresponds to the “call target object information” of the program execution time information 1200. The “acquirement order” corresponds to the “acquirement order” of the program execution time information 1200.
The “SQL issuing object information” corresponds to the “SQL issuing object information” of the DB access execution time information 1300. The “SQL information” corresponds to the “SQL information” of the DB access execution time information 1300. The “acquirement order” corresponds to the “acquirement order” of the DB access execution time information 1300.
This process flow is started such as when the execution time information display data is received from the execution time information display data acquiring module 1402.
The execution time information display module 1403 draws a page element and attaches the “acquirement order” of the request execution time information 1601 above the page element and the “referrer URL” of the request execution time information 1601 below the page element (S1701).
Subsequently, the execution time information display module 1403 draws an arrow starting from the page element drawn in S1701 and attaches the “request URL” of the request execution time information 1601 above the arrow and the “query string” of the request execution time information 1601 below the arrow.
Subsequently, the execution time information display module 1403 rearranges the records in a chronological order based on the “acquirement orders” of the program execution time information 1602 and selects the record with the earliest “acquirement order” (S1703).
Subsequently, the execution time information display module 1403 draws a method element at the tip of the arrow drawn in S1702 and draws a class element to include the method element and a package element to include the class element (S1704). The display names of the package element, the class element and the method element drawn in this Step are given based on character strings of the “caller object information” of the record selected in the program execution time information 1602.
Subsequently, the package element, the class element and the method element of the “call target object information” of the record selected in the program execution time information 1602 are so drawn as not to overlap (S1705).
Subsequently, the execution time information display module 1403 draws an arrow element connecting between the method element indicated by the “caller object information” of the record selected in the program execution time information 1602 and that indicated by the “call target object information” of the record selected in the program execution time information 1602 such that the arrow element does not overlap (S1706). At this time, the “acquirement order” of the record selected in the program execution time information 1602 is attached as a label to the arrow element.
Subsequently, the execution time information display module 1403 selects the next record of the program execution time information 1602 (S1707).
Subsequently, when judging that the record of the program execution time information 1602 selected in Step S1707 is present, the execution time information display module 1403 draws a package element, a class element and a method element of the “caller object information” of this record such that these elements do not overlap (S1708) and returns to Step S1705. On the other hand, when judging that the record of the program execution time information 1602 selected in Step S1707 is absent, the execution time information display module 1403 proceeds to next Step S1709 since it indicates that the drawing of the program execution time information 1602 has been finished.
Subsequently, the execution time information display module 1403 rearranges the records in a chronological order based on the “acquirement orders” of the DB access execution time information 1603 and selects the record with the earliest “acquirement order” (S1709).
Subsequently, the execution time information display module 1403 analyzes the “SQL information” of the record selected in the DB access execution time information 1603 to obtain a table name and draws the table name (S1710) only when there is no other table element having the same table name.
Subsequently, the execution time information display module 1403 draws an arrow element connecting between a method element indicated by the “SQL issuing object information” of the record selected in the DB access execution time information 1603 and the table element drawn in S1710 such that the arrow element does not overlap (S1711). At this time, the execution time information display module 1403 attaches the “SQL information” and the “acquirement order” of the selected record as labels to the arrow element
Subsequently, the execution time information display module 1403 selects the next record of the DB access execution time information 1603 (S1712). A return is made to Step S1710 if the selected record is judged to be present. On the other hand, when judging that the selected record is absent, the execution time information display module 1403 finishes the display of the execution time information display data since it indicates that the drawing of the DB access execution time information 1603 has been finished.
The process flow shown in
A label 1801 above a PC display-shaped element indicating a page corresponds to the “acquirement order” of the request execution time information 1601.
A label 1802 below the PC display-shaped element indicating the page corresponds to the “referrer URL” of the request execution time information 1601.
A label 1803 above an arrow extending from the PC display-shaped element indicating the page corresponds to the “request URL” of the request execution time information 1601.
A label 1804 below the arrow extending from the PC display-shaped element indicating the page corresponds to the “query string” of the request execution time information 1601.
A label 1811 of a rectangular element having a rectangle at the left upper corner corresponds to the character string indicating the package name out of the character strings of the “caller object information” or the “call target object information” of the program execution time information 1602.
A label 1812 of the rectangular element corresponds to the character string indicating the class name out of the character strings of the “caller object information” or the “call target object information” of the program execution time information 1602.
A label 1813 of an elliptical element corresponds to the character string indicating the method name out of the character strings of the “caller object information” or the “call target object information” of the program execution time information 1602.
A label 1814 of the arrow starting from the method element corresponds to the “acquirement order” of the program execution time information 1602. Although the “acquirement order” is not attached to all the arrows connecting the method elements to make the screen example easy to see in this embodiment, labels may be attached to all the arrows or some of them.
A label 1821 of a rectangular element partitioned by a lattice indicates the table name and can be obtained by analyzing the “SQL information” of the DB access execution time information 1603.
A right label 1822 of an arrow pointing to the rectangular element partitioned by the lattice corresponds to the character string of the “SQL information” of the DB access execution time information 1603.
A left label 1823 of the arrow pointing to the rectangular element partitioned by the lattice corresponds to the character string of the “acquirement order” of the DB access execution time information 1603.
There is also a method for displaying a part 1840 of the screen 1800 displaying the execution time information enclosed by a dotted line frame while omitting display contents as shown in a bottom part of
The “user” can close the window displaying the execution time information by an operation such as pressing of a Close button 1830 and move onto an operation of referring to another execution time information or the like.
As described above, according to this embodiment, it is possible to acquire the execution time information of the web applications for each user and enable the user himself to determine the start and end of acquirement of the execution time information in maintenance and improvement of the information system. Thus, a work of sorting the acquired execution time information into related information and unrelated information (e.g. uninterested execution time information and execution time information by the other users) can be reduced, and lead time to investigate a cause in the event of a trouble and to understand the existing information system can be shortened. Further, it is possible to reduce performance deterioration of the web applications and a burden on the storage capacity caused by acquirement of the execution time information. Furthermore, it is not necessary to embed information for selectively acquiring the execution time information in a source code in advance. Note that the present invention is not limited to various examples described above and various changes can be made without departing from the scope of the gist thereof.
Further, various programs and data disclosed in this embodiment can be stored in various magnetic or optic storage media and can be obviously downloaded via various electric and electronic communication lines such as Internet.
Number | Date | Country | Kind |
---|---|---|---|
2010-060122 | Mar 2010 | JP | national |
2010-164433 | Jul 2010 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2011/001523 | 3/16/2011 | WO | 00 | 2/16/2012 |