WO2012086217A1 - 稼働ログ収集方法および装置 - Google Patents

稼働ログ収集方法および装置 Download PDF

Info

Publication number
WO2012086217A1
WO2012086217A1 PCT/JP2011/051950 JP2011051950W WO2012086217A1 WO 2012086217 A1 WO2012086217 A1 WO 2012086217A1 JP 2011051950 W JP2011051950 W JP 2011051950W WO 2012086217 A1 WO2012086217 A1 WO 2012086217A1
Authority
WO
WIPO (PCT)
Prior art keywords
event
operation log
operation information
log
acquired
Prior art date
Application number
PCT/JP2011/051950
Other languages
English (en)
French (fr)
Inventor
弘充 中川
友洋 中村
友隆 塩野谷
隆雄 櫻井
幸久 藤田
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/819,970 priority Critical patent/US20130263156A1/en
Publication of WO2012086217A1 publication Critical patent/WO2012086217A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Definitions

  • the present invention relates to a web application operation log collection method and apparatus, and more particularly to a method and apparatus for reducing the operation log collection amount.
  • service quality is important. For example, when the service quality is low, such as the response time of the web application is slow and the service menu is difficult to find, the user moves to another online service and loses business opportunities. Therefore, companies need to maintain and improve service quality. In order to maintain and improve service quality, measures to monitor service quality and measures to immediately improve when service quality is low are required.
  • the present invention relates to a measure for monitoring service quality.
  • Measures for monitoring service quality include a method of collecting and analyzing access logs of web application servers that provide web applications, and a method of collecting and analyzing client web application operation logs.
  • the present invention collects the web application operation log of the client, reproduces the client screen on the service provider side, and performs the operation performed by the user and the application. It is related to the operation log collection and playback device that analyzes whether or not it has responded.
  • the operation log collection / playback device creates and collects operation logs by collecting operation log scripts on the client, acquiring event messages for application operations, in collecting operation logs required for screen playback. At this time, if the operation logs of all events are simply collected, the amount of logs increases, causing a problem that the recording medium of the service provider performing the analysis is compressed.
  • Patent Document 1 sets a flag for determining whether or not to record various types of events that occur on a client's web browser as a log.
  • this technique is used for reproducing a client screen, the following problems occur.
  • all events related to user operations and application responses that change the screen in some way must be collected.
  • the events that need to be collected in order to reproduce the client screen are a part of all tens to hundreds.
  • the types of events required to play back the client screen vary from application to application. For this reason, it is difficult for an analyst to accurately grasp which of tens to hundreds of events must be collected.
  • the person who performs the analysis can only determine that all events other than those that can be determined as unnecessary from the implementation of the application are collected, and the log amount reduction effect cannot be expected.
  • a program that detects and records the occurrence of an event is connected, but if this is operated for the occurrence of all events, the load on the client May increase and hinder the user's operation.
  • the necessary and sufficient amount for screen reproduction is the amount when an event related to a user operation or application response in which the screen is changed in some form is recorded.
  • an event handler for acquiring an event related to a user operation or an application response is connected.
  • the event handler detects the occurrence of an event, if the event has never been recorded in the past, it is recorded as a log. If it is any other event, if the script is executed, or if the data has been changed, it is recorded as a log.
  • a necessary event type is registered in advance as a policy, and the occurrence detection and recording of the event is performed only for the event. Further, a list of event types recorded in the past by the application to be analyzed is acquired as operation information and used as the initial value of the policy.
  • the present invention it is possible to acquire and collect a sufficient amount of logs necessary for reproducing client operations while reducing the amount of collected logs.
  • the user can accurately set the log collection policy for determining whether or not log recording is required with little effort.
  • FIG. 3 is an example of an event log used for generating an operation log in the operation log recording unit of FIG. 2. It is an example of the operation log produced
  • generated by the operation log recording part of FIG. 3 is a flowchart illustrating an example of a process of reading an operation log in order to transmit the operation log to a web server in the operation log reading unit of FIG. 2.
  • FIG. 9 is a diagram illustrating an example of a table configuration of a log collection policy for generating the operation log collection code of FIG. 8.
  • 9 is a flowchart illustrating an example of processing for setting a log collection policy in the operation log collection code setting program of FIG. 8.
  • 9 is a flowchart showing an example of processing for inserting an operation log collection code into an application code in the script selection insertion program of FIG.
  • FIG. 10 is a diagram illustrating an example of a user interface for setting the log collection policy of FIG. 9.
  • FIG. 9 is an example of a flowchart illustrating an example of processing of an operation log recording / operation information recording unit in FIG. 8.
  • FIG. 9 It is the figure showing an example of the table structure of the application operation information produced
  • generation part of FIG. 9 is a flowchart illustrating an example of processing for updating operation information in the application operation information generation unit in FIG. 8.
  • 9 is a flowchart illustrating an example of processing for reading application operation information in order to transmit application operation information to a web server in the application operation information reading unit in FIG. 8.
  • FIG. 1 is a system configuration diagram illustrating an example of a hardware configuration and a software configuration of a system that executes a web application targeted by the present invention.
  • the hardware includes a client device 100, a web server device 120, and a network 110 that connects these devices.
  • the hardware of each apparatus may be implement
  • a plurality of client devices may be connected to one web server device.
  • the client device 100 and the web server device 120 are all processors (104, 124), memories (106, 126), input devices (102, 122), output devices (101, 121), network interfaces (103, 123), and storage.
  • the devices (105, 125) are connected to each other. However, some devices may lack some of these components. Further, the storage device 105 may be included in the memory 106, and the storage device 125 may be included in the memory 126.
  • the input device 102 is connected to a keyboard, a mouse, and the like, and is used to instruct execution or stop of the program.
  • a monitor, a printer, or the like is connected to the output device 101 and is used to display the execution result of the program.
  • the processor 104 reads a program from the memory 106 and executes processing.
  • the network interface 103 is a device used to connect the client device 100 to an external device, and transmits and receives web page requests and responses to and from the web server device 120 via the network 110.
  • the browser program 233 is stored in the memory 106 of the client device 100.
  • a script engine program 234 is stored in the browser program 233. These programs may be inclusive of each other or independent. These programs are read into the processor 104 and executed.
  • the browser program 233 has a function of requesting a web page, receiving a response of the requested web page, interpreting the response, and generating a display screen.
  • the script engine program 234 has a function of interpreting the script code included in the response of the web page and executing the processing written in the script code by the processor 104.
  • the web server program 203 is stored in the memory 126 of the web server device 120.
  • the web server program 203 includes an application code 202. These programs and codes may be inclusive of each other or independent. These programs and codes are read into the processor 124 and executed.
  • the web server program 203 has a function of returning a web page response in response to a request from an external device such as the client device 100.
  • the application code 202 is a code executed by the browser program 233 of the client device 100 and is included in a response returned from the web server program 203.
  • the storage device 105 stores an operation log transmitted and received between the client device 100 and the web server device 120.
  • the output device 121, the input device 122, the processor 124, and the network interface 123 have the same function as the device having the same name in the client device 100.
  • FIG. 2 is a configuration diagram showing a software configuration for selectively transmitting a necessary and sufficient amount of logs for reproducing client operations from event logs.
  • a script insertion program 200 is stored in the memory 126 of the web server device 120. Further, the script insertion program 200 includes an operation log collection code 201. These programs and codes may be inclusive of each other or independent.
  • the script insertion program 200 receives a response including the application code 202 from the web server program 203, inserts the operation log collection code 201 into the application code 202, and then sends a response to the client via the web application transmission unit 210. Has the ability to reply.
  • the operation log collection code 201 has a function of recording an event log on the client device 100 and transmitting the recorded log to the web server device 120.
  • the network interface 123 of the web server device 120 includes an operation log reception unit 211 and a web application transmission unit 210.
  • the operation log reception unit 211 has a function of receiving the operation log 250 from the operation log transmission unit 221 of the client device 100 via the network 110 and storing it in the storage device 125.
  • the web application transmission unit 210 has a function of receiving a response of the web application from the script insertion program 200 and transmitting the response to the web application reception unit 220 of the client device 100 via the network 110.
  • the operation log collection code 201 is stored in addition to the browser program 233 and the script engine program 234.
  • the operation log collection code 201 includes a program initialization unit 230, an operation log recording unit 231, and an operation log reading unit 232, and is executed by the processor 104 in FIG. Note that these programs may be composed of a plurality of programs having equivalent roles.
  • the program initialization unit 230 has a function of giving the script engine program 234 processing for acquiring an event that occurs on the browser program 233 and generating an event log, and processing for acquiring execution of an event-driven script.
  • An event here is an event in application execution, such as a mouse click or a value input on a web page. This function is executed only once by the browser program 233 immediately before the content included in the response from the web server program 203 is displayed.
  • the operation log recording unit 231 determines whether there is data update among events generated on the browser program 233, determines whether there is data update, or whether there is script execution, and only logs the event of script execution. 250 has a function of recording in the storage device 105 in chronological order.
  • the operation log collection code 201 is realized as a script code that can be executed by the script engine program 234, and is executed each time an event occurs in the browser program 233.
  • the operation log reading unit 232 has a function of reading all the operation logs 250 stored in the recording device 105 and passing them to the operation log transmission unit 221.
  • the transmitted operation log 250 is recorded in the storage device 125 on the web server device 120.
  • the network interface 103 of the client device 100 includes an operation log transmission unit 221 and a web application reception unit 220.
  • the operation log transmission unit 221 has a function of receiving the operation log 250 from the operation log reading unit 232 and transmitting the operation log 250 to the operation log reception unit 211 of the web server device 120 via the network 110.
  • the web application reception unit 220 has a function of receiving a response of the web application from the web application transmission unit 210 of the web server device 120 via the network 110 and passing it to the browser program 233.
  • FIG. 3 is a diagram showing a processing flow of the program initialization unit 230.
  • an event handler for recording the ID 501, the time 502, the event 503, the target 504, and the data 505 is assigned to the event of the DOM element.
  • the assignment of the event handler can be realized, for example, by a function of the DOM object that provides the event handler.
  • step S303 the script assignment function for the event of the DOM element is overridden.
  • the script assignment function can be overridden, for example, by overwriting an attach event function or an add event listener function of the DOM object with a function having the same name.
  • FIG. 4 is a diagram showing a processing flow of the operation log recording unit 231.
  • step S400 an event that has occurred is acquired and an event log record is generated.
  • step S401 it is determined whether the acquired event is a screen transition event.
  • the screen transition event represents an event in which a request transmission to the web server program 203 or a response reception from the web server program 203 occurs when the event occurs.
  • the event to be determined need not be a screen transition event, but may be any event such as a mouse operation event or a key operation event.
  • the branch to step S410 may be branched every time a certain time has elapsed since the start of recording of the operation log instead of acquiring the screen transition event.
  • step S410 If the generated event is a screen transition event, the operation log transmission unit 221 is called in step S410, and the process is terminated.
  • the generated event is not a screen transition event, it is determined whether or not a record having an event with the same name as the acquired event exists in the operation log 250 in step S402. By this determination, it is possible to leave a record of the time at which each event first occurs, which is necessary for screen reproduction. If the record having the event name 503 having the same name as the acquired event does not exist in the operation log 250, the record is created in the operation log 250 in step S406, and then this process ends.
  • step S404 it is determined whether the acquired record data 505 is equal to the record data 505 generated in step S400. At this time, whether or not the data is equal may be determined not to be equal if the values are slightly different, or may be determined to be not equal if a certain difference occurs.
  • the mouse coordinates at the time of the event occurrence are recorded in the x-coordinate and y-coordinate formats as data of the mouseover, mouseemove, and mouseout events. For these events, it is determined that the case where the x coordinate or the y coordinate differs by 10 or more is not equal. Also, if the focus, cookie, and userdata event data differ slightly, it is determined that they are not equal.
  • the time when the data change required for screen reproduction can be left as a record. If the acquired record data 505 and the record data 505 generated in step S400 are not equal, a record is created in the operation log in step S406, and the process is terminated.
  • step S405 If the acquired record data 505 is equal to the record data 505 generated in step S400, it is determined in step S405 whether or not the acquired event-driven script has been executed.
  • the determination of whether or not an event-driven script is executed can be realized by acquiring a predefined message in step S303 in FIG. As a result of this determination, it is possible to leave as a record the time at which an event that triggers the script operation, which is necessary for screen reproduction. If the acquired event-driven script has not been executed, the record generated in step S400 is deleted in step S420, and the process ends.
  • a record is created in the operation log 250 in step S406.
  • a record that is not required for screen reproduction is a record that is created by the occurrence of an event that has already been recorded, has no data change, and is not triggered by a script operation.
  • the event has already been recorded in the operation log is recorded in S402, and among the types of events that have already been recorded in the operation log, it is recorded in the operation log that the data is not changed in S404. It is determined in S405 that the event is not triggered by the script operation among the types of events that have not been changed.
  • the web server device can reproduce the operation of the client while reducing the log amount stored in the client device for transmission to the web server device.
  • FIG. 5 is a diagram showing an example of an event log temporarily generated by the operation log recording unit 231.
  • the event log is generated as records shown in records 511 to 526 every time an event occurs.
  • Each record 511 to 526 has an ID 501, a time 502, an event 503, a target 504, and data 505 as columns.
  • ID 501 uniquely identifies each record in the event log. Although a three-digit integer value is used in the figure, a character string or a symbol may be used as long as it can be uniquely identified.
  • Time 502 represents the time when the event occurred.
  • hh mm: ss representation format is used in the figure, other representation formats may be used as long as the time can be correctly identified.
  • the event name 503 represents the name of the event that has occurred. Other expression formats may be used as long as the event name can be correctly identified. Although the event having the same name is described in the description of FIG. 4, in FIG. 5, for example, 512, 515, 516, 517, 518, 521, 522, 523, 524, and 525 are events having the same name.
  • the target 504 represents the target where the event occurred.
  • the DOM and data of the web page are given as examples, but other objects may be recorded, and other representation formats may be used as long as the object can be correctly identified.
  • Data 505 represents input / output data associated with the event.
  • the coordinates where the event occurred and the data changed by the event are given as an example, but other input / output data may be recorded, and other representation formats may be used as long as the data can be correctly identified. Good.
  • FIG. 6 is a diagram showing an example of the operation log 250 generated after selecting a sufficient amount of logs necessary for reproducing client operations from the event log according to the flow of FIG.
  • ID 501, time 502, event name 503, target 504, and data 505 indicate the same matters as the same numbers in FIG. 5.
  • the example shown in the figure is an example in which the records 511, 512, 513, 514, 515, 519, 523, 524, and 526 are selected from the records 511 to 526 shown in FIG. This shows that the amount of collected logs has been reduced.
  • 516 to 518 in FIG. 5 are determined in S402 in FIG. 5 that a record having the same event mousemove exists in 515 of the operation log 250 in FIG. 6, and in S404, it is determined that the record has the same data as 515. It is determined that there is no driven script execution and is deleted.
  • 519 in FIG. 5 is determined that a record having the event cookie having the same name exists in S402 of FIG. 5 in the operation log 250 of FIG. 6, and it is determined in S404 that the data is not equal to 513 and recorded.
  • 520 in FIG. 5 is determined in S402 in FIG. 5 that a record having the event userdata of the same name exists in 514 of the operation log 250 in FIG. 6, it is determined in S404 that it has data equal to 514, and an event-driven It is determined that there is no script execution and is deleted.
  • 521 and 522 in FIG. 5 are determined in S402 in FIG. 5 that a record having the same event mousemove exists in 515 of the operation log 250 in FIG. 6, and in S404, it is determined that the record has the same data as 515. It is determined that there is no driven script execution and is deleted.
  • 523 in FIG. 5 is determined in S402 in FIG. 5 that the record having the same event mousemove exists in 515 of the operation log 250 in FIG. 6, it is determined in S404 that it has data equal to 515, and the event-driven It is determined that there is script execution and is recorded. In this example, it was assumed that a mousemove event-driven script was executed at 12:30:08.
  • FIG. 7 is a diagram showing a processing flow of the operation log reading unit 232.
  • step S700 all records of the operation log 250 are acquired.
  • step S ⁇ b> 701 the acquired record is transmitted to the web server device 120 via the operation log transmission unit 221.
  • step S702 all records in the operation log 250 are deleted.
  • FIG. 8 is a block diagram showing a software configuration for selectively transmitting a necessary and sufficient amount of logs for reproducing a client operation from an event log after setting a policy for collecting logs.
  • FIG. 1 The component with the same name as FIG. 1 has the same function as that shown in FIG.
  • the memory 126 of the web server device 120 stores an operation log collection code setting program 800 and a script selection insertion program 801 in addition to the web server program 203, application code 202, and operation log collection code 201.
  • the operation log collection code setting program 800 generates a policy setting screen based on the log collection policy 850 stored in the storage device 125 and displays it on the output device 121 of FIG. It has a function of accepting setting input and updating the log collection policy 850.
  • the script selection / insertion program 801 receives the response of the web application from the web server program 203, generates a DOM element information from the response, and logs the collection target in the log collection policy 850. After generating event handlers for all the sets, it has a function of inserting it into the response of the web application and transmitting it to the client device 100 via the web application transmission unit 210.
  • the network interface 123 of the web server device 120 includes an application operation information reception unit 810 in addition to the web application transmission unit 210 and the operation log reception unit 211.
  • the application operation information receiving unit 810 has a function of receiving the application operation information 840 from the application operation information transmitting unit 820 of the client device 100 via the network 110 and storing it in the storage device 125.
  • the memory 106 of the client device 100 stores a browser program 233, a script engine program 234, and an operation log collection code 201 after receiving a web page response.
  • the operation log collection code 201 includes an application operation information generation unit 830, an operation log / operation information recording unit 831, and an application operation information reading unit 832 in addition to the program initialization unit 230 and the operation log reading unit 232. It is executed by the processor 104 of FIG. Note that these programs may be composed of a plurality of programs having equivalent roles.
  • the application operation information generation unit 830 displays the determination result for the event determined to have data update or the event determined to have event-driven script execution among the events generated on the browser program 233 as the application operation information.
  • 840 has a recording function.
  • the operation log / operation information recording unit 831 determines whether there is data update by determining whether there is data update among events that have occurred on the browser program 233, or whether there is script execution by determining whether there is event-driven script execution. It has a function to record the log as the operation log 250 in the time series in the storage device 105 and a data update, or a function to call the application operation information generation unit 830 when it is determined that there is event-driven script execution.
  • the application operation information reading unit 832 has a function of reading the application operation information 840 stored in the recording device 105 and passing it to the application operation information transmission unit 820.
  • the application operation information 840 transmitted by the application operation information transmission unit 820 is recorded in the storage device 125 on the web server device 120.
  • the network interface 103 of the client device 100 includes an application operation information transmission unit 820 in addition to the web application reception unit 220 and the operation log transmission unit 221.
  • the application operation information transmitting unit 820 has a function of receiving the application operation information 840 from the application operation information reading unit 832 and transmitting it to the application operation information receiving unit 810 of the web server device 120 via the network 110.
  • FIG. 9 is a diagram showing an example of a log collection policy 850 that is updated by the operation log collection code setting program 800.
  • the log collection policy 850 is a set of records 911 to 918 representing policies, and each record 911 to 918 has a page id 901, an event name 902, a target 903, and a collection flag 904 as columns.
  • the page id 901 uniquely identifies a web page that is an operation log collection target. Although a three-digit integer value is used in the figure, a character string or a symbol may be used as long as it can be uniquely identified. This value can be realized, for example, using the hash value of the URL of the web page.
  • the event name 902 is the name of the event to be collected. Other expression formats may be used as long as the event name can be correctly identified.
  • Target 903 represents a target where an event occurs.
  • the DOM and data of the web page are given as examples, but other objects in which an event occurs may be used, and other representation formats may be used as long as the object can be correctly identified.
  • the collection flag 904 is a true / false value used when the script selection insertion program 801 selects a combination of a DOM element and an event to which an event handler is attached.
  • the value of “true” or “false” is illustrated, but other representation formats may be used as long as the true / false value can be determined.
  • FIG. 10 is a diagram showing a processing flow of the operation log collection code setting program 800. *
  • steps S1001 and S1002 are repeated for all records of the application operation information 840 as in steps S1000 and S1003.
  • step S1001 the application operation information 840 record is read in one line.
  • step S1002 a record storing the value of page id 1401 in page id 901, the value of event name 1402 in event name 902, the value of target 1403 in target 903, and the value of operation flag 1404 in collection flag 904 is added.
  • step S ⁇ b> 1004 a policy setting screen 1100 is generated based on the records stored in the log collection policy 850 and output by the output device 121. Finally, the setting input of the input device 122 is accepted, and the value of the collection flag 904 of the log collection policy 850 is updated.
  • the user can set a log collection policy to be collected in order to reproduce client operations from applications running on the client device. .
  • FIG. 11 is a diagram showing a processing flow of the script selection insertion program 801.
  • step S1101 an application response is received from the web server program 203, and DOM element information is generated.
  • This process can be realized by, for example, a node acquisition function possessed by the DOM object. Then, the following processing is repeated for all generated DOM elements as in steps S1102 and S1107.
  • step S1103 a record having a target 903 equal to the DOM element is extracted from the log collection policy 850.
  • the processing of step S1105 is repeated for all the extracted records as in steps S1104 and S1106.
  • step S1105 an event handler that records the ID 501, the time 502, the event 503, the target 504, and the data 505 for the event with the event name 902 is generated.
  • the process of recording the target 504 can be realized by using, for example, a target path acquisition function possessed by the event.
  • the process of recording the data 505 can be realized by referring to, for example, a property of the event.
  • step S1108 the generated event handler is inserted into the response of the application, and transmitted to the client apparatus 100 via the web application transmission unit 210.
  • the client device collects the log of the event specified by the log collection policy.
  • FIG. 12 is a policy setting screen 1200 showing a user interface for setting the log collection policy 850.
  • the policy setting screen 1200 is a window in which user interfaces for policy setting are aggregated. Each record from record 1221 to record 1228 is the same as each record in the log collection policy.
  • the event 1211 indicates the event name 902 and the target 1212 indicates the target 903.
  • the past occurrence 1213 is true / false indicating whether the event represented by the event name 1211 has occurred for the object represented by the object 1212 and the event has been saved as an operation log in step S1306 in FIG. Value.
  • the record 1224 indicates that an event “mouseover” has occurred in the past for “BUTTON [1]” and was recorded as an operation log.
  • the collection setting 1214 indicates the value of the collection flag 904 set after the setting on this screen.
  • the collection setting 1214 indicates a value of “ ⁇ ”, and indicates that the collection flag 904 becomes “true” after the end of this setting.
  • “O” and “X” are used as the expression format of the past occurrence 1213 and the collection setting 1214, but other expression formats may be used as long as the true / false value can be determined.
  • the confirmation display 1204 is a character string for requesting confirmation of execution when the value of the collection setting 1214 is changed by a user input. After the present character string is presented, the user may press the confirm button 1201 when actually changing, or the cancel button 1202 when not changing. It should be noted that the confirmation display 1204, the confirmation button 1201, and the cancel button 1202 may be in other expression forms as long as there is a function that asks the user for confirmation and obtains consent. If the function for requesting confirmation is not required, the confirmation display 1204, the confirmation button 1201, and the cancel button 1202 may not be provided.
  • the close button 1230 or the end button 1203 may be pressed. As long as the close button 1230 and the end button 1203 have the same function, other forms may be used.
  • FIG. 13 is a diagram showing a processing flow of the operation log / operation information recording unit.
  • step S1300 an event that has occurred is acquired and an event log record is generated.
  • step S1301 it is checked whether the acquired event is a screen transition event.
  • the operation log transmission unit 221 is called in step S1310, and the operation information transmission unit 820 is called in step S1311, and this process ends.
  • step S1302 If the generated event is not a screen transition event, it is determined in step S1302 whether or not a record having an event having the same name as the acquired event exists in the operation log 250. If there is no record having an event with the same name as the acquired event, in step S1306, the application operation information generation unit 830 is called with the generated record as an argument, and the process ends.
  • step S1303 If there is a record having an event with the same name as the acquired event, in step S1303, the latest record is acquired.
  • step S1304 it is determined whether the acquired record data 505 is equal to the record data 505 generated in step S1300. If they are not equal, in step S1306, the application operation information generation unit 830 is called with the generated record as an argument, and the process ends.
  • step S1305 it is determined in step S1305 whether or not the acquired event-driven script has been executed. If event-driven script execution has occurred, in step S1306, the application operation information generation unit 830 is called with the generated record as an argument, and the process ends.
  • step S1320 If there is no event-driven script execution, the record generated in step S1320 is deleted. As described above, by determining in steps S1302, S1304, and S1305, it is possible to delete a record that is not necessary for the reproduction of the client operation in S1320.
  • S1302 it is determined whether the event has already been recorded in the operation log. Further, in S1304, it is determined that the event has not been changed from among the types of events that have already been recorded. It is determined in step S1305 that the event is an event that has not been changed and is not triggered by a script operation. Thereby, the web server device can reproduce the operation of the client while reducing the log amount stored in the client device for transmission to the web server device.
  • FIG. 14 is a diagram illustrating an example of the application operation information 840 generated by the application operation information generation unit 830.
  • the application operation information 840 is a set of records 1411 to 1414 indicating the presence / absence of data update or event-driven script execution.
  • Each record 1411 to 1414 includes a page id 1401, an event name 1402, a target 1403, and an operation flag 1404 in a column. Have as.
  • the page id 1401 is for uniquely identifying the web page in which the application operation information is recorded, and is created in the same manner as the page id 903 of the log collection policy 850. Although a three-digit integer value is used in the figure, a character string or a symbol may be used as long as it can be uniquely identified.
  • the event name 1402 represents the name of the event that has occurred, and is generated in the same manner as the event name 503 when the operation log 250 is generated. Other expression formats may be used as long as the event name can be correctly identified.
  • the target 1403 represents a target where an event has occurred, and is generated in the same manner as the target 504 when the operation log 250 is generated.
  • the DOM and data of the web page are given as examples, but other objects may be recorded, and other representation formats may be used as long as the object can be correctly identified.
  • the operation flag 1404 is a true / false value used by the operation log collection code setting program 800 to generate the policy setting screen 1200, and indicates whether data is updated in the record or whether an event-driven script is executed. .
  • the value of “true” or “false” is illustrated, but other representation formats may be used as long as the true / false value can be determined.
  • FIG. 15 is a diagram showing a processing flow for updating operation information in the application operation information generation unit 830.
  • step S1500 it is determined whether a record having an event with the same name as the record generated in S1300 exists in the application operation information 840. If it exists, this process ends.
  • step S1501 a record that stores the hash value of the URL in id 1401, the value of event name 503 in event name 1402, the value of target 504 in target 1403, and true in operation flag 1404 is added.
  • FIG. 16 is a diagram showing a processing flow of the application operation information output unit 832.
  • step S1600 all records of the application operation information 840 are acquired.
  • step S1601 the acquired record is transmitted to the web server device 120 via the application operation information transmission unit 820.
  • the web server apparatus 120 can know an application running on the client apparatus. Accordingly, the user can set a log collection policy to be collected for reproducing a client operation from among applications running on the client device.
  • step S1602 all records of the application operation information 840 are deleted.
  • the above is one example of the processing of the second embodiment of the present invention. In this way, it is possible to acquire and collect a sufficient amount of logs necessary for reproducing client operations, which has been difficult in the past.
  • Client device 120 Web server device 101, 121 Output device 102, 122 Input device 103, 123 Network interface 104, 124 Processor 105, 125 Storage device 106, 126 Memory 110 Network 200 Script insertion program 201 Operation log collection code 202 Application code 203 Web server program 210 Web application transmission unit 211 Operation log reception unit 220 Web application reception unit 221 Operation log transmission unit 230 Program initialization unit 231 Operation log recording unit 232 Operation log output unit 233 Browser program 234 Script engine program 235 Operation log collection code 240 Event log 250 Operation log 800 Operation log collection code setting program 801 Script selection insertion Program 810 Application operation information reception unit 820 Application operation information transmission unit 830 Application operation information generation unit 831 Operation log recording unit 832 Application operation information output unit 840 Application operation information 850 Log collection policy 1200 Log collection policy setting window 1201 Confirm button 1202 Cancel button 1203 End button 1204 Confirmation display 1230 Close button

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 アプリケーションのサービス品質を評価するために、アプリケーションが動作しているウェブブラウザ上で起きる様々な種類のイベントを取得して分析をする方法がある。この際、全てのイベントを取得・収集すると、ウェブブラウザやイベントを記録するサーバに負荷をかける。ウェブブラウザがアプリケーションを開始するときにユーザ操作やアプリケーション応答に係わるイベントを取得するイベントハンドラを接続する。イベントハンドラがイベントの発生を検知したとき、過去に記録したことがないイベントであった場合はログとして記録する。その他のイベントであった場合、スクリプトの実行があった場合か、データが変更されていた場合はログとして記録する。

Description

稼働ログ収集方法および装置
本発明は、ウェブアプリケーションの稼働ログ収集方法および装置に係わり、特に稼働ログ収集量を削減するための方法および装置に関するものである。
 近年、金融や小売業など様々な業種でウェブアプリケーションによるオンラインサービスが普及している。オンラインサービスを実施する企業は年々増加傾向にあり、ウェブアプリケーションは企業活動にとって欠かせないものとなった。オンラインサービスを実施する理由のひとつに、広範囲に新規顧客を獲得できるということがある。どの企業も時間や場所に捕らわれずサービスすることができ、ユーザにも選択の幅が広がっている。
 このような背景においては、サービス品質が重要となる。例えば、ウェブアプリの応答時間が遅い、サービスメニューが見つけにくいというように、サービス品質が低い場合、ユーザは別のオンラインサービスへと移動してしまい、ビジネスの機会を喪失してしまうこととなる。よって、企業はサービス品質の維持、向上を行う必要がある。サービス品質の維持、向上には、サービス品質をモニタリングする施策と、サービス品質が低い場合すぐに高めるための施策が必要となる。
本発明は、サービス品質をモニタリングする施策に係わる。
 サービス品質をモニタリングする施策には、ウェブアプリを提供するウェブアプリサーバのアクセスログを収集して分析する方法や、クライアントのウェブアプリ稼働ログを収集して分析する方法などがある。本発明は、後者の方法のなかでも特に、クライアントのウェブアプリ稼働ログを収集し、サービス提供者側でクライアントの画面を再生し、ユーザがどのような操作をしたか、また、アプリケーションがどのように応答したかを分析する、稼働ログ収集再生装置に係わる。
 稼働ログ収集再生装置は、画面の再生に必要となる操作ログ収集において、クライアントに操作記録スクリプトを配置し、アプリケーション操作のイベントメッセージを取得して稼働ログを生成、収集する。このとき、単純に全てのイベントの稼働ログを収集してしまうと、ログ量が増大し、分析を行うサービス提供者の記録媒体を圧迫するという問題が生じてしまう。
 そこで収集するログの量を削減する従来技術として、分析を行う者が対象となるシステムにログ収集ポリシを設定し、収集するログのイベントの種類をカスタマイズできる技術(例えば特許文献1)が提案されている。
特開2009-25977号公報
 特許文献1に記載の従来技術は、クライアントのウェブブラウザ上で起きる様々な種類のイベントを、ログとして記録するか否かを判断するフラグを立てている。この技術をクライアント画面の再生に用いる場合、以下の問題が発生する。クライアント画面を再生するためには、何らかの形で画面が変更されるユーザの操作やアプリケーションの応答に関わるイベントは全て収集しなければならない。ここで、クライアント画面を再生するために収集が必要なイベントは全数十~数百種の中の一部である。しかし、クライアント画面を再生するために必要なイベントの種類は、アプリケーションごとに異なる。そのため、分析を行う者は、全数十~数百種のイベントのうちどのイベントを収集しなければならないかを正確に把握することが難しい。その結果、分析を行う者は、アプリケーションの実装から必要ないと判断できるイベント以外のイベントは、全て収集すると判断するしかなくなり、ログ量の削減効果は見込めない。また、一般にウェブブラウザで発生したイベントの取得のために、イベントの発生を検知し、記録するプログラム(イベントハンドラ)を接続するが、これを全てのイベントの発生に対して動作させるとクライアントの負荷が増加し、ユーザの操作を妨げる場合がある。
 よって、クライアント画面の再生に必要なイベントの種類を自動的に判断すること、及び、画面の再生に必要十分な量のログを取得・収集する手段の確立が課題となる。画面の再生において必要十分な量とは、何らかの形で画面が変更されるユーザの操作やアプリケーションの応答に関わるイベントを記録した場合の量のことである。
 ウェブブラウザがアプリケーションを開始するときにユーザ操作やアプリケーション応答に係わるイベントを取得するイベントハンドラを接続する。イベントハンドラがイベントの発生を検知したとき、過去に記録したことがないイベントであった場合はログとして記録する。その他のイベントであった場合、スクリプトの実行があった場合か、データが変更されていた場合はログとして記録する。
また、上記におけるイベントハンドラの接続において、あらかじめ必要となるイベントの種類をポリシとして登録しておき、そのイベントに対してのみイベントの発生検知や記録を実施する。さらに、分析の対象となるアプリケーションで過去に記録したイベントの種類の一覧を稼働情報として取得し、ポリシの初期値とする。
 本発明によれば、収集ログ量を削減しつつ、クライアントの操作を再生する上で必要十分な量のログの取得・収集が可能となる。また、ユーザは、ログ記録要否の判断のログ収集ポリシを、少ない手間で正確に設定できる。
本発明が対象とするウェブシステムに関する基本的な構成を示すブロック図である。 本発明の第1の実施形態の稼働ログ収集装置の構成機能の一例を示すブロック図である。 図2のプログラム初期化部の処理の一例を表すフローチャートである。 図2の稼働ログ記録部の処理の一例を表すフローチャートである。 図2の稼働ログ記録部において、稼働ログを生成するために利用されるイベントログの一例である。 図2の稼働ログ記録部によって生成された稼働ログの一例である。 図2の稼働ログ読出部における、稼働ログをウェブサーバへ送信するために稼働ログを読み出す処理の一例を表すフローチャートである。 本発明の第2の実施形態の稼働ログ収集装置の構成機能の一例を示すブロック図である。 図8の稼働ログ収集コードを生成するための、ログ収集ポリシのテーブル構成の一例を表した図である。 図8の稼働ログ収集コード設定プログラムにおける、ログ収集ポリシを設定する処理の一例を表したフローチャートである。 図8のスクリプト選択挿入プログラムにおける、アプリケーションコードに稼働ログ収集コードを挿入する処理の一例を表したフローチャートである。 図9のログ収集ポリシを設定するためのユーザーインタフェースの一例を表した図である。 図8の稼働ログ記録/稼働情報記録部の処理の一例を表したフローチャートの一例である。 図8のアプリ稼働情報生成部から生成されるアプリ稼働情報のテーブル構成の一例を表した図である。 図8のアプリ稼働情報生成部において、稼働情報を更新する処理の一例を表したフローチャートである。 図8のアプリ稼働情報読出部において、アプリ稼働情報をウェブサーバへ送信するためにアプリ稼働情報を読み出す処理の一例を表したフローチャートである。
 以下、本発明の実施形態について図1~図16を順に参照して説明する。
 ≪第1の実施形態≫
 図1は、本発明が対象とするウェブアプリケーションを実行するシステムのハードウェア構成と、ソフトウェア構成の例を示すシステム構成図である。
 ハードウェアは、クライアント装置100、ウェブサーバ装置120、これらの装置を接続するネットワーク110から構成される。なお、各装置のハードウェアは同一のハードウェアで実現されても、複数台で構成されてもよい。また、1台のウェブサーバ装置に対して、接続するクライアント装置は複数台でもよい。
 クライアント装置100、ウェブサーバ装置120は、すべてプロセッサ(104、124)、メモリ(106、126)、入力装置(102、122)、出力装置(101、121)、ネットワークインタフェース(103、123)、記憶装置(105、125)をもち、相互に接続されている。ただし、一部の装置ではこれらの構成要素の一部が欠けてもよい。また、記憶装置105はメモリ106に含まれていてもよいし、記憶装置125はメモリ126に含まれていてもよい。
 入力装置102には、キーボードやマウスなどが接続され、プログラムの実行や停止の指示を行うのに利用される。出力装置101にはモニタやプリンタなどが接続され、プログラムの実行結果を表示するのに利用される。プロセッサ104は、メモリ106からプログラムを読み込んで処理を実行する。ネットワークインタフェース103は、クライアント装置100と外部の装置とを接続するために利用される装置であり、ネットワーク110を介してウェブサーバ装置120と、ウェブページのリクエストや、レスポンスなどの送受信を行う。
 クライアント装置100のメモリ106には、ブラウザプログラム233が格納されている。また、ブラウザプログラム233の中には、スクリプトエンジンプログラム234が格納されている。これらのプログラムは、お互いに包含関係にあっても、独立していてもよい。これらのプログラムは、プロセッサ104に読み込まれて実行される。
 ブラウザプログラム233は、ウェブページをリクエストしたり、リクエストしたウェブページのレスポンスを受信し、レスポンスを解釈して表示画面を生成する機能などを持つ。スクリプトエンジンプログラム234は、ウェブページのレスポンスに含まれるスクリプトコードを解釈してスクリプトコードに書かれている処理をプロセッサ104で実行する機能を持つ。
 ウェブサーバ装置120のメモリ126には、ウェブサーバプログラム203が格納されている。また、ウェブサーバプログラム203の中には、アプリケーションコード202が含まれている。これらのプログラムおよびコードは、お互いに包含関係にあっても、独立していてもよい。これらのプログラムおよびコードは、プロセッサ124に読み込まれて実行される。
 ウェブサーバプログラム203は、クライアント装置100などの外部の装置からのリクエストに応じてウェブページのレスポンスを返信する機能を持つ。アプリケーションコード202はクライアント装置100のブラウザプログラム233で実行されるコードであり、ウェブサーバプログラム203が返信するレスポンスの中に含まれる。
 記憶装置105にはクライアント装置100とウェブサーバ装置120の間で送受信される稼働ログなどが保管されている。
 出力装置121、入力装置122、プロセッサ124、ネットワークインタフェース123は、記憶装置125は、クライアント装置100にある同名の装置と同じ機能を持つ。
 図2は、イベントログからクライアントの操作を再生する上で必要十分な量のログを選択送信するためのソフトウェア構成を示した構成図である。
 ウェブサーバ装置120のメモリ126には、ウェブサーバプログラム203、アプリケーションコード202の他に、スクリプト挿入プログラム200が格納されている。また、スクリプト挿入プログラム200の中には、稼働ログ収集コード201が含まれている。これらのプログラムおよびコードは、お互いに包含関係にあっても、独立していてもよい。
 スクリプト挿入プログラム200は、ウェブサーバプログラム203からアプリケーションコード202を含むレスポンスを受信して、アプリケーションコード202に対して稼働ログ収集コード201を挿入した後、ウェブアプリ送信部210を介してクライアントへレスポンスを返信する機能を持つ。稼働ログ収集コード201は、クライアント装置100上でイベントのログを記録したり、記録したログをウェブサーバ装置120に送信する機能を持つ。
 ウェブサーバ装置120のネットワークインタフェース123は、稼働ログ受信部211、ウェブアプリ送信部210から構成される。
 稼働ログ受信部211はクライアント装置100の稼働ログ送信部221からネットワーク110を介して稼働ログ250を受信し、記憶装置125へと保管する機能を持つ。ウェブアプリ送信部210はスクリプト挿入プログラム200からウェブアプリのレスポンスを受信し、ネットワーク110を介してクライアント装置100のウェブアプリ受信部220へと送信する機能を持つ。
 クライアント装置100のメモリ106には、ウェブページのレスポンス受信後、ブラウザプログラム233、スクリプトエンジンプログラム234の他、稼働ログ収集コード201が格納されている。稼働ログ収集コード201は、プログラム初期化部230、稼働ログ記録部231、稼働ログ読出部232によって構成されており、それぞれ図1のプロセッサ104で実行される。なお、これらのプログラムは同等の役割を持つ複数のプログラムによって構成されてもよい。
 プログラム初期化部230は、ブラウザプログラム233上で発生するイベントを取得してイベントログを生成する処理と、イベントドリブンのスクリプトの実行を取得する処理をスクリプトエンジンプログラム234に付与する機能を持つ。ここでいうイベントとは、例えばマウスのクリックやウェブページ上での値の入力といった、アプリケーション実行上の出来事である。この機能は、ブラウザプログラム233により、ウェブサーバプログラム203からのレスポンスに含まれるコンテンツが表示される直前に一度だけ実行される。
 稼働ログ記録部231は、ブラウザプログラム233上で発生したイベントのうち、データ更新の有無を判定しデータ更新の有るイベント、またはスクリプト実行の有無を判定しスクリプト実行の有るイベントのログのみを稼働ログ250として、時系列順に記憶装置105へと記録する機能を持つ。なお、稼働ログ収集コード201はスクリプトエンジンプログラム234によって実行可能なスクリプトコードとして実現されており、ブラウザプログラム233でイベントが発生するごとに実行される。
 稼働ログ読出部232は、記録装置105に格納されている稼働ログ250を全て読み出し、稼働ログ送信部221へと渡す機能を持つ。送信された稼働ログ250はウェブサーバ装置120上の記憶装置125に記録される。
 クライアント装置100のネットワークインタフェース103は、稼働ログ送信部221、ウェブアプリ受信部220から構成される。
 稼働ログ送信部221は稼働ログ読出部232から稼働ログ250を受信し、ネットワーク110を介してウェブサーバ装置120の稼働ログ受信部211へと送信する機能を持つ。ウェブアプリ受信部220はウェブサーバ装置120のウェブアプリ送信部210からネットワーク110を介してウェブアプリのレスポンスを受信し、ブラウザプログラム233へと渡す機能を持つ。
 図3はプログラム初期化部230の処理フローを示した図である。
 プログラム初期化部230では、ステップS300、S301、S304、S305のとおり、稼働ログ収集コードに記載のDOM(Document Object Model)要素全てに対して、また、稼働ログ収集コードに記載のイベント全てに対して、ステップS302、S303を繰り返す。
 ステップS302ではDOM要素のイベントに対してID501、時刻502、イベント503、対象504、データ505を記録するイベントハンドラを付与する。イベントハンドラの付与は、例えばDOMオブジェクトが持つ、イベントハンドラを付与する関数により実現できる。
 ステップS303では、DOM要素のイベントに対するスクリプト付与関数をオーバーライドする。スクリプト付与関数のオーバーライドは、例えばDOMオブジェクトが持つ、アタッチイベント関数やアッドイベントリスナー関数を同名の関数で上書きすることにより実現できる。これにより、アプリケーションがイベントドリブンのスクリプト動作を定義する際に、定義した動作が実行されると何らかのメッセージを発生させる処理を追加することが可能となり、その後のアプリケーション動作において、イベントが発生した際に、イベントドリブンのスクリプト実行があったかどうかを判断することが可能となる。
 図4は稼働ログ記録部231の処理フローを示した図である。
 まず、ステップS400において、発生したイベントを取得してイベントログのレコードを生成する。そして、ステップS401において、取得したイベントが画面遷移イベントかどうかを判別する。なお、画面遷移イベントとは、当該イベントが発生することで、ウェブサーバプログラム203へのリクエスト送信やウェブサーバプログラム203からのレスポンス受信が発生するイベントを表す。ここで、判別するイベントは、画面遷移イベントでなくてもよく、マウス操作イベントやキー操作イベントといったいずれかのイベントであればよい。このとき、画面遷移イベントで判別すると、メモリ106に格納されているイベントログのレコードが、ページ遷移により解放されて失われることを防ぐことができる。また、ステップS410への分岐は画面遷移イベントの取得ではなく、稼働ログの記録を開始してから、一定時間経過するごとに分岐してもよい。
 発生したイベントが画面遷移イベントであった場合、ステップS410において稼働ログ送信部221を呼び出し、本処理を終える。
 発生したイベントが画面遷移イベントではなかった場合、ステップS402において、取得したイベントと同名のイベントを持つレコードが稼働ログ250に存在するかどうかを判別する。この判別により、画面の再生において必要となる、各々のイベントが最初に発生した時刻をレコードとして残すことができる。取得したイベントと同名のイベント名503を持つレコードが稼働ログ250に存在しない場合、ステップS406において稼働ログ250にレコードを作成した後、本処理を終える。
 取得したイベントと同名のイベントを持つレコードが稼働ログ250に存在した場合、ステップS403において、当該同名のイベントを持つレコードの中で直近のレコードを取得する。
 次にステップS404において、取得したレコードのデータ505とステップS400で生成したレコードのデータ505が等しいか判別する。このとき、データが等しいかどうかの判別は、値が少しでも異なれば等しくないと判別してもよいし、一定以上差が発生すると等しくないと判別してもよい。実施例では、mouseover,mousemove,mouseoutイベントのデータとして、イベント発生時のマウス座標をx座標,y座標の形式で記録している。これらのイベントについてはx座標あるいはy座標が10以上異なる場合を等しくないと判別する。また、focus,cookie,userdataイベントのデータは少しでも異なれば等しくないと判別する。この判別により、画面の再生において必要となる、データの変更があった時刻をレコードとして残すことができる。取得したレコードのデータ505とステップS400で生成したレコードのデータ505が等しくない場合は、ステップS406において稼働ログにレコードを作成した後、本処理を終える。
 取得したレコードのデータ505とステップS400で生成したレコードのデータ505が等しい場合は、ステップS405において、取得したイベントドリブンのスクリプト実行があったかどうかを判別する。イベントドリブンのスクリプト実行有無の判断は、図3のステップS303において、あらかじめ定義しておいたメッセージを取得することで実現できる。この判別により、画面の再生において必要となる、スクリプト動作の契機となるイベント発生があった時刻をレコードとして残すことができる。取得したイベントドリブンのスクリプト実行が無かった場合、ステップS420において、ステップS400で生成したレコードを削除し、本処理を終える。
 取得したイベントドリブンのスクリプト実行があった場合、ステップS406において稼働ログ250にレコードを作成する。
以上のように、ステップS402、S404、S405の判別をすることで、S420において画面の再生において必要ないレコードを消去することができる。画面の再生において必要ないレコードとは、既に記録した種類のイベントであり、かつデータの変更もなく、かつスクリプト動作の契機となっていないイベントの発生により、作成されるレコードのことである。既に稼働ログに記録した種類のイベントであるかをS402で、さらに、既に稼働ログに記録した種類のイベントのうち、データの変更がないイベントであることをS404で、さらに、既に稼働ログに記録した種類のイベントかつデータの変更がないイベントのうち、スクリプト動作の契機となっていないイベントであることをS405で判定している。これにより、ウェブサーバ装置に送信するためにクライアント装置で記憶するログ量を削減しつつも、ウェブサーバ装置はクライアントの操作を再生することができる。
 図5は、稼働ログ記録部231によって一時的に生成されるイベントログの一例を示した図である。イベントログはイベントが発生するごとにレコード511~526に示すようなレコードとして生成される。各レコード511~526はID501、時刻502、イベント503、対象504、データ505をカラムとして持つ。
 ID501はイベントログの各レコードを一意に識別するものである。図中では3桁の整数値を用いているが、一意に識別可能であれば文字列や記号でもよい。
 時刻502はイベントが発生した時刻を表したものである。図中ではhh:mm:ssの表現形式を用いているが、時刻が正しく判別できるのであれば、他の表現形式でもよい。
 イベント名503は発生したイベントの名称を表したものである。イベント名が正しく判別できるのであれば他の表現形式でもよい。図4の説明で同名のイベントと説明しているが、図5において、例えば、512、515、516、517、518、521、522、523、524、525は同名のイベントである。
 対象504は、イベントが発生した対象を表したものである。図中では、ウェブページのDOMやデータを例として挙げているが、他の対象を記録してもよいし、対象が正しく判別できるのであれば、他の表現形式でもよい。
 データ505は、イベントに付随する入出力データを表したものである。図中では、イベントが発生した座標やイベントによって変更されたデータを例として挙げているが、他の入出力データを記録してもよいし、データが正しく判別できるのであれば他の表現形式でもよい。
 図6は、図4のフローにより、イベントログからクライアントの操作を再生する上で必要十分な量のログを選択した後に生成される稼働ログ250の一例を示した図である。
 図6中のID501、時刻502、イベント名503、対象504、データ505は、図5中の同番号と同様の事柄を示している。図の例は、図5に示した511~526のレコードから、図4のフローにより、511、512、513、514、515、519、523、524、526のレコードが選択された例である。これにより収集ログ量が削減されていることがわかる。
 図5の511は、図4のS402において同名のイベントを持つレコードfocusが図6の稼働ログ250に存在しないと判断され、記録される。図5の512は、図4のS402において同名のイベントを持つレコードmouseoverが図6の稼働ログ250に存在しないと判断され、記録される。図5の513は、図4のS402において同名のイベントを持つレコードcookieが図6の稼働ログ250に存在しないと判断され、記録される。図5の514は、図4のS402において同名のイベントを持つレコードuserdataが図6の稼働ログ250に存在しないと判断され、記録される。図5の515は、図4のS402において同名のイベントを持つレコードが図6の稼働ログ250に存在しないと判断され、記録される。
 図5の516~518は、図5のS402において同名のイベントmousemoveを持つレコードが図6の稼働ログ250の515に存在すると判断され、S404において515と等しいデータを持つと判断され、S405においてイベントドリブンのスクリプト実行はないと判断され、消去される。
 図5の519は、図5のS402において同名のイベントcookieを持つレコードが図6の稼働ログ250の513に存在すると判断され、S404において513とデータが等しくないと判断され、記録される。図5の520は、図5のS402において同名のイベントuserdataを持つレコードが図6の稼働ログ250の514に存在すると判断され、S404において514と等しいデータを持つと判断され、S405においてイベントドリブンのスクリプト実行はないと判断され、消去される。図5の521、522は、図5のS402において同名のイベントmousemoveを持つレコードが図6の稼働ログ250の515に存在すると判断され、S404において515と等しいデータを持つと判断され、S405においてイベントドリブンのスクリプト実行はないと判断され、消去される。
 図5の523は、図5のS402において同名のイベントmousemoveを持つレコードが図6の稼働ログ250の515に存在すると判断され、S404において515と等しいデータを持つと判断され、S405においてイベントドリブンのスクリプト実行はあると判断され、記録される。この例は、時刻12:30:08にmousemoveイベントドリブンのスクリプト実行があった場合を想定した。
 図5の524は、図4のS402において同名のイベントを持つレコードmouseoutが図6の稼働ログ250に存在しないと判断され、記録される。図5の525は、図5のS402において同名のイベントmouseoverを持つレコードが図6の稼働ログ250の512に存在すると判断され、S404において512と等しいデータを持つと判断され、S405においてイベントドリブンのスクリプト実行はないと判断され、消去される。
 図5の526は、図4のS402において同名のイベントを持つレコードmouseoutが図6の稼働ログ250に存在しないと判断され、記録される。
 図7は稼働ログ読出部232の処理フローを示した図である。
 まず、ステップS700において、稼働ログ250の全レコードを取得する。次に、ステップS701において、稼働ログ送信部221を介して、取得したレコードをウェブサーバ装置120へ送信する。最後に、ステップS702において稼働ログ250の全レコードを削除する。
 以上が本発明の第1の実施例の処理の一例である。
 イベントを取得した時に取得したイベントの記録の要否を判定し、必要なイベントのみを稼働ログとして記録することで、ログ量の削減が可能となる。
 ≪第2の実施形態≫
 図8は、ログを収集するためのポリシを設定した上で、イベントログからクライアントの操作を再生する上で必要十分な量のログを選択送信するためのソフトウェア構成を示した構成図である。
 図1と同名の構成要素は、図1に記載の機能と同様の機能を持つ。
 ウェブサーバ装置120のメモリ126には、ウェブサーバプログラム203、アプリケーションコード202、操作ログ収集コード201の他に、操作ログ収集コード設定プログラム800、スクリプト選択挿入プログラム801が格納されている。
 操作ログ収集コード設定プログラム800は、記憶装置125に格納されているログ収集ポリシ850をもとに、ポリシ設定画面を生成して図1の出力装置121で表示し、図1の入力装置122の設定入力を受け付けて、ログ収集ポリシ850を更新する機能を持つ。
 スクリプト選択挿入プログラム801は、ウェブサーバプログラム203からウェブアプリのレスポンスを受信して、レスポンスからDOM要素の情報を生成する機能およびログ収集ポリシ850で収集対象と記載している、DOM要素とイベントの組全てに対するイベントハンドラを生成した後に、ウェブアプリのレスポンスへ挿入し、ウェブアプリ送信部210を介してクライアント装置100へ送信する機能を持つ。
 ウェブサーバ装置120のネットワークインタフェース123は、ウェブアプリ送信部210、稼働ログ受信部211の他にアプリ稼働情報受信部810から構成される。
 アプリ稼働情報受信部810は、クライアント装置100のアプリ稼働情報送信部820からネットワーク110を介してアプリ稼働情報840を受信し、記憶装置125へと保管する機能を持つ。
 クライアント装置100のメモリ106には、ウェブページのレスポンス受信後、ブラウザプログラム233、スクリプトエンジンプログラム234、稼働ログ収集コード201が格納されている。
 稼働ログ収集コード201は、プログラム初期化部230、稼働ログ読出部232の他、アプリ稼働情報生成部830、稼働ログ/稼働情報記録部831、アプリ稼働情報読出部832によって構成されており、それぞれ図1のプロセッサ104で実行される。なお、これらのプログラムは同等の役割を持つ複数のプログラムによって構成されてもよい。
 アプリ稼働情報生成部830は、ブラウザプログラム233上で発生したイベントのうち、データ更新が有ると判定されたイベント、またはイベントドリブンのスクリプト実行があると判定されたイベントについて、判定結果をアプリ稼働情報840として記録する機能を持つ。
 稼働ログ/稼働情報記録部831はブラウザプログラム233上で発生したイベントのうち、データ更新の有無を判定しデータ更新が有るイベント、またはイベントドリブンのスクリプト実行の有無を判定しスクリプト実行があるイベントのログを稼働ログ250として、時系列順に記憶装置105へと記録する機能およびデータ更新が有る、またはイベントドリブンのスクリプト実行が有ると判定した場合にアプリ稼働情報生成部830を呼び出す機能を持つ。
 アプリ稼働情報読出部832は、記録装置105に格納されているアプリ稼働情報840を読み出し、アプリ稼働情報送信部820へと渡す機能を持つ。アプリ稼働情報送信部820により送信されたアプリ稼働情報840はウェブサーバ装置120上の記憶装置125に記録される。
 クライアント装置100のネットワークインタフェース103は、ウェブアプリ受信部220、稼働ログ送信部221の他に、アプリ稼働情報送信部820から構成される。
 アプリ稼働情報送信部820は、アプリ稼働情報読出部832からアプリ稼働情報840を受信し、ネットワーク110を介してウェブサーバ装置120のアプリ稼働情報受信部810へと送信する機能を持つ。
 図9は、稼働ログ収集コード設定プログラム800によって更新されるログ収集ポリシ850の一例を示した図である。
 ログ収集ポリシ850はポリシを表すレコード911~918の集合であり、各レコード911~918はページid901、イベント名902、対象903、収集フラグ904をカラムとして持つ。
 ページid901は稼働ログ収集対象となるウェブページを一意に識別するものである。図中では3桁の整数値を用いているが、一意に識別可能であれば文字列や記号でもよい。この値は、例えばウェブページのURLのハッシュ値を用いて実現できる。
 イベント名902は収集対象となるイベントの名称である。イベント名が正しく判別できるのであれば他の表現形式でもよい。
 対象903はイベントが発生する対象を表したものである。図中では、ウェブページのDOMやデータを例として挙げているが、イベントが発生する他の対象としてもよいし、対象が正しく判別できるのであれば、他の表現形式でもよい。
 収集フラグ904は、スクリプト選択挿入プログラム801がイベントハンドラを付与するDOM要素とイベントの組を選択する際に用いられる真偽値である。図中では、”true”または”false”の値を例示しているが、真偽値が判定できれば他の表現形式であってもよい。
 図10は、稼働ログ収集コード設定プログラム800の処理フローを示した図である。 
 稼働ログ収集コード設定プログラム800では、まずステップS1000、S1003のとおり、アプリ稼働情報840の全てのレコードに対して、ステップS1001、S1002を繰り返す。
 ステップS1001では、アプリ稼働情報840のレコードを1行読み込む。ステップS1002では、ページid901へページid1401の値を、イベント名902へイベント名1402の値を、対象903へ対象1403の値を、収集フラグ904へ稼働フラグ1404の値をそれぞれ格納したレコードを追加する。次に、S1004において、ログ収集ポリシ850に格納されているレコードをもとに、ポリシ設定画面1100を生成し、出力装置121で出力する。最後に、入力装置122の設定入力を受け付け、ログ収集ポリシ850の収集フラグ904の値を更新する。アプリ稼働情報840を用いてポリシ設定画面1100を生成することにより、ユーザは、クライアント装置で稼働しているアプリケーションの中から、クライアント操作を再生するために収集するログ収集ポリシを設定することができる。
 図11は、スクリプト選択挿入プログラム801の処理フローを示した図である。
 まず、ステップS1101においてウェブサーバプログラム203からアプリケーションのレスポンスを受け取りDOM要素の情報を生成する。この処理は、例えばDOMオブジェクトが持つノード取得関数により実現することができる。そして、生成された全てのDOM要素に対して、ステップS1102、S1107のとおり以下の処理を繰り返す。
 まず、ステップS1103においてログ収集ポリシ850からDOM要素と等しい対象903を持つレコードを抽出する。次に抽出した全てのレコードに対しステップS1104、S1106のとおりステップS1105の処理を繰り返す。ステップS1105では、イベント名902のイベントに対してID501、時刻502、イベント503、対象504、データ505を記録するイベントハンドラを生成する。対象504を記録する処理は、例えばイベントが持つターゲットパス取得関数を用いれば実現できる。データ505を記録する処理は、例えばイベントが持つプロパティを参照すれば実現できる。最後に、ステップS1108において、生成したイベントハンドラをアプリケーションのレスポンスに挿入し、ウェブアプリ送信部210を介してクライアント装置100へと送信する。 
 これにより、ログ収集ポリシで指定されたイベントのログをクライアント装置が収集する。 図12はポリシ設定画面1200であり、ログ収集ポリシ850を設定するユーザーインタフェースを示す図である。
 ポリシ設定画面1200はポリシ設定を行うための各ユーザーインタフェースを集約したウィンドウである。レコード1221~レコード1228までの各レコードはログ収集ポリシの各レコードと同様である。イベント1211はイベント名902を、対象1212は対象903を示している。また、過去発生1213は、イベント名1211で表されるイベントが、対象1212で表される対象に対して発生し、当該イベントが図13のステップS1306で稼働ログとして保存されたかどうかを示す真偽値である。例えば、レコード1224は、過去に”mouseover”というイベントが”BUTTON[1]”を対象に発生し、稼働ログとして記録されたことを示している。収集設定1214は、本画面における設定以降に設定される収集フラグ904の値を示している。例えば、レコード1224では収集設定1214は“○”の値を示しており、本設定終了後は収集フラグ904が“true”となることを示している。なお、ここでは過去発生1213、収集設定1214の表現形式として“○”、“×”を用いているが、真偽値が判定できれば他の表現形式でも良い。
 確認表示1204は、収集設定1214の値がユーザの入力により変更される場合に、変更実施の確認を求める文字列である。ユーザは、本文字列が提示された後、実際に変更を行う場合は確定ボタン1201を、変更を行わない場合はキャンセルボタン1202を押下すればよい。なお、確認表示1204、確定ボタン1201、キャンセルボタン1202は、ユーザに確認を求め承諾を得る機能があれば他の表現形式でもよい。また、確認を求める機能が不要な場合は、確認表示1204、確定ボタン1201、キャンセルボタン1202がなくてもよい。
 ユーザがログ収集ポリシ850の設定を終える場合、クローズボタン1230、あるいは終了ボタン1203を押下すればよい。クローズボタン1230、終了ボタン1203は同様の機能を有するのであれば、他の形式でも良い。
 図13は稼働ログ/稼働情報記録部の処理フローを示した図である。
 まず、ステップS1300において、発生したイベントを取得してイベントログのレコードを生成する。そして、ステップS1301において、取得したイベントが画面遷移イベントかどうかを調べる。発生したイベントが画面遷移イベントであった場合、ステップS1310において稼働ログ送信部221を、ステップS1311において稼働情報送信部820を呼び出し、本処理を終える。
 発生したイベントが画面遷移イベントではなかった場合、ステップS1302において、取得したイベントと同名のイベントを持つレコードが稼働ログ250に存在するかどうかを判別する。取得したイベントと同名のイベントを持つレコードが存在しない場合、ステップS1306において、生成したレコードを引数にアプリ稼働情報生成部830を呼び出し、本処理を終える。
 取得したイベントと同名のイベントを持つレコードが存在した場合、ステップS1303において、当該の中で直近のレコードを取得する。
 次にステップS1304において、取得したレコードのデータ505とステップS1300で生成したレコードのデータ505が等しいか判別する。等しくない場合は、ステップS1306において、生成したレコードを引数にアプリ稼働情報生成部830を呼び出し、本処理を終える。
 等しい場合は、ステップS1305において、取得したイベントドリブンのスクリプト実行があったかどうかを判別する。イベントドリブンのスクリプト実行があった場合は、ステップS1306において、生成したレコードを引数にアプリ稼働情報生成部830を呼び出し、本処理を終える。
 イベントドリブンのスクリプト実行が無かった場合、ステップS1320で生成したレコードを削除する。以上のように、ステップS1302、S1304、S1305の判別をすることで、S1320においてクライアント操作の再生において必要ないレコードを消去することができる。既に稼働ログに記録した種類のイベントであるかをS1302で、さらに、既に記録した種類のイベントのうち、データの変更がないイベントであることをS1304で、さらに、既に稼働ログに記録した種類のイベントかつデータの変更がないイベントのうち、スクリプト動作の契機となっていないイベントであることをS1305で判定している。 これにより、ウェブサーバ装置に送信するためにクライアント装置で記憶するログ量を削減しつつも、ウェブサーバ装置はクライアントの操作を再生することができる。
 図14は、アプリ稼働情報生成部830により生成される、アプリ稼働情報840の一例を示した図である。
 アプリ稼働情報840はデータ更新の有無、またはイベントドリブンのスクリプト実行の有無を表すレコード1411~1414の集合であり、各レコード1411~1414はページid1401、イベント名1402、対象1403、稼働フラグ1404をカラムとして持つ。
 ページid1401はアプリ稼働情報を記録したウェブページを一意に識別するためのもので、ログ収集ポリシ850のページid903と同様にして作成される。図中では3桁の整数値を用いているが、一意に識別可能であれば文字列や記号でもよい。
 イベント名1402は発生したイベントの名称を表したものであり、稼働ログ250を生成する際にイベント名503と同様に生成される。イベント名が正しく判別できるのであれば他の表現形式でもよい。
 対象1403はイベントが発生した対象を表したものであり、稼働ログ250を生成する際に対象504と同様に生成される。図中では、ウェブページのDOMやデータを例として挙げているが、他の対象を記録してもよいし、対象が正しく判別できるのであれば、他の表現形式でもよい。
 稼働フラグ1404は稼働ログ収集コード設定プログラム800が、ポリシ設定画面1200を生成するために用いられる真偽値であり、当該レコードにおけるデータ更新の有無、またはイベントドリブンのスクリプト実行の有無を表している。図中では、”true”または”false”の値を例示しているが、真偽値が判定できれば他の表現形式であってもよい。
 図15は、アプリ稼働情報生成部830における稼働情報更新の処理フローを示した図である。
 ステップS1500では、S1300で生成したレコードと同名のイベントを持つレコードがアプリ稼働情報840に存在するかどうかを判定する。存在する場合は、本処理を終了する。
 存在しない場合は、ステップS1501において、id1401へURLのハッシュ値を、イベント名1402へイベント名503の値を、対象1403へ対象504の値を稼働フラグ1404へtrueをそれぞれ格納したレコードを追加する。 図16は、アプリ稼働情報出力部832の処理フローを示した図である。
 まず、ステップS1600において、アプリ稼働情報840の全レコードを取得する。次に、ステップS1601において、アプリ稼働情報送信部820を介して、取得したレコードをウェブサーバ装置120へ送信する。これにより、ウェブサーバ装置120は、クライアント装置で稼働しているアプリケーションを知ることができる。従って、ユーザは、クライアント装置で稼働しているアプリケーションの中から、クライアント操作を再生するために収集するログ収集ポリシを設定することができる。最後に、ステップS1602において、アプリ稼働情報840の全レコードを削除する。
 以上が本発明の第2の実施例の処理の一例である。
このようにして、従来困難であった、クライアントの操作を再生する上で必要十分な量のログの取得・収集が可能となる。
 イベントを取得した時に取得したイベントの記録の要否を判定し、必要なイベントのみを稼働ログとして記録することで、ログ量の削減が可能となる。さらに、取得するイベントを設定する手段を提供し、稼働情報から得られた要否判断結果を設定者(ユーザ)に提供することで、少ない手間で正確な設定を実施できる。
100 クライアント装置
120 ウェブサーバ装置
101、121 出力装置
102、122 入力装置
103、123 ネットワークインタフェース
104、124 プロセッサ
105、125 記憶装置
106、126 メモリ
110 ネットワーク
200 スクリプト挿入プログラム
201 稼働ログ収集コード
202 アプリケーションコード
203 ウェブサーバプログラム
210 ウェブアプリ送信部
211 稼働ログ受信部
220 ウェブアプリ受信部
221 稼働ログ送信部
230 プログラム初期化部
231 稼働ログ記録部
232 稼働ログ出力部
233 ブラウザプログラム
234 スクリプトエンジンプログラム
235 稼働ログ収集コード
240 イベントログ
250 稼働ログ
800 稼働ログ収集コード設定プログラム
801 スクリプト選択挿入プログラム
810 アプリ稼働情報受信部
820 アプリ稼働情報送信部
830 アプリ稼働情報生成部
831 稼働ログ記録部
832 アプリ稼働情報出力部
840 アプリ稼働情報
850 ログ収集ポリシ
1200 ログ収集ポリシ設定ウィンドウ
1201 確定ボタン
1202 キャンセルボタン
1203 終了ボタン
1204 確認表示
1230 クローズボタン

Claims (12)

  1.  ウェブアプリケーションの稼働情報を記録する稼働ログ収集方法であって、
     ウェブアプリケーションを読み込む際にイベント発生を検知し前記イベントを取得するイベント取得手段をブラウザに組込むプログラム初期化手順と、
     前記イベント取得手段によって前記イベントを取得した時に、取得したイベントの記録の要否を判定し、記録が必要と判断されたイベントのログを記録する稼働ログ記録手順と、
     前記稼働ログ記録手順によって記録されたイベントのログを外部に出力する稼働ログ出力手順と、
    を含むことを特徴とする稼働ログ収集方法。
  2.  請求項1に記載の稼働ログ収集方法であって、
     前記稼働ログ記録手順は、
     前記イベントを取得した時に、データ更新の有無を判定しデータ更新の有るイベント、のログを記録する
    ことを特徴とする稼働ログ収集方法。
  3.  請求項1に記載の稼働ログ収集方法であって、
     前記稼働ログ記録手順は、
     前記イベントを取得した時に、前記イベントを契機としたスクリプト実行の有無を判定しスクリプト実行の有るイベントのログを記録する
    ことを特徴とする稼働ログ収集方法。
  4. 請求項1に記載の稼働ログ収集方法であって、
     前記プログラム初期化手順は、
     取得対象となる前記イベントの種類が保持された取得対象イベントリストに基づいて、前記取得対象イベントリストに保持された前記イベントの種類を取得対象とし、
     さらに、
     前記稼働ログ記録手順において記録されたイベントの種類を稼働情報として記録する稼働情報生成手順と、
     前記稼働情報生成手段によって記録された稼働情報を
    外部に出力する稼働情報出力手順と、
     前記稼働情報出力手順から出力された1以上の前記稼働情報に基づいて、前記取得対象イベントリストを生成する取得対象イベントリスト設定手順と、
    を含むことを特徴とする稼働ログ収集方法。
  5.  請求項4に記載の稼働ログ収集方法であって、
     前記取得対象イベントリスト設定手順は、
     1以上の前記稼働情報の中に少なくとも1つ含まれるイベントの種類を含むリストを前記取得対象イベントリストの初期値とし、
     前記稼働情報出力手順から出力された1以上の前記稼働情報に基づいて、前記取得対象のイベントの種類を拡充することを特徴とする稼働ログ収集方法。
  6.  ウェブアプリケーションの稼働ログを記録する稼働ログ収集装置であって、
     ウェブアプリケーションを読み込む際にイベント発生を検知し前記イベントを取得するイベント取得手段をブラウザに組込むプログラム初期化部と、
     前記イベント取得手段によって前記イベントを取得した時に、取得したイベントの記録の要否を判定し、記録が必要と判定されたイベントのログを記録する稼働ログ記録部と、 前記稼働ログ記録部において記憶されたイベントのログを外部に出力する稼働ログ出力部と、
    を備えることを特徴とする稼働ログ収集装置。
  7.  請求項6に記載の稼働ログ収集装置であって、
     前記稼働ログ記録部は、
    前記イベントを取得時にデータ更新の有無を判定しデータ更新の有るイベントのログを記録することを特徴とする稼働ログ収集装置。
  8.  請求項6に記載の稼働ログ収集装置であって、
     前記稼働ログ記録部は、
     前記イベントを取得時に前記イベントを契機としたスクリプト実行の有無を判定し、スクリプト実行の有るイベントのログを記録することを特徴とする稼働ログ収集装置。
  9.  請求項6に記載の稼働ログ収集装置であって、
     前記プログラム初期化部は、
     取得対象となる前記イベントの種類を保持する取得対象イベントリストに基づいて前記取得対象イベントリストに保持前記イベントの種類を取得対象とし、
     さらに、前記イベント記録部において記録されたイベントの種類を稼働情報として記録する稼働情報生成部と、
     前記稼働情報生成部で記録された前記稼働情報を外部に出力する稼働情報出力部と、
    を備えることを特徴とする稼働ログ収集装置。
  10.  請求項7に記載の稼働ログ収集装置であって、
     前記プログラム初期化部は、
     取得対象となる前記イベントの種類を保持する取得対象イベントリストに基づいて前記取得対象イベントリストに保持前記イベントの種類を取得対象とし、
     さらに、前記イベント記録部において記録されたイベントの種類を稼働情報として記録する稼働情報生成部と、
     前記稼働情報生成部で記録された前記稼働情報を外部に出力する稼働情報出力部と、
    を備えることを特徴とする稼働ログ収集装置。
  11.  ウェブアプリケーションの稼働ログを収集するサーバ装置であって、
     取得対象となるログのイベントの種類を保持する取得対象イベントリストを保持し、
     ウェブアプリケーションの稼働情報に基づいて、前記取得対象イベントリストとする取得対象イベントリスト設定部を備えることを特徴とするサーバ装置。
  12. 請求項11に記載のサーバ装置であって、
    前記取得対象イベントリスト設定部は、
    1つもしくは複数の前記稼働情報の中に少なくとも1つは含まれるイベントの種類をリスト化したものを前記取得対象イベントリストの初期値とし、
    さらに取得対象のイベントの種類を拡充することを特徴とするサーバ装置。
PCT/JP2011/051950 2010-12-24 2011-01-31 稼働ログ収集方法および装置 WO2012086217A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/819,970 US20130263156A1 (en) 2010-12-24 2011-01-31 Operation log collection method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010286909A JP5560180B2 (ja) 2010-12-24 2010-12-24 稼働ログ収集方法および装置
JP2010-286909 2010-12-24

Publications (1)

Publication Number Publication Date
WO2012086217A1 true WO2012086217A1 (ja) 2012-06-28

Family

ID=46313507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/051950 WO2012086217A1 (ja) 2010-12-24 2011-01-31 稼働ログ収集方法および装置

Country Status (3)

Country Link
US (1) US20130263156A1 (ja)
JP (1) JP5560180B2 (ja)
WO (1) WO2012086217A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186188A (zh) * 2023-04-21 2023-05-30 智道网联科技(北京)有限公司 地图引擎的日志数据处理方法及相关设备

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014229042A (ja) * 2013-05-22 2014-12-08 日本電気株式会社 利用者操作記録システム、操作記録集計装置、利用者操作記録方法およびそのプログラム
US10362090B2 (en) * 2014-06-25 2019-07-23 Tata Consultancy Services Limited Automating a process associated with a web based software application
WO2016027922A1 (ko) * 2014-08-22 2016-02-25 주식회사 앤벗 어플리케이션의 화면 이동 그래프 생성 장치 및 방법
WO2016137481A1 (en) * 2015-02-27 2016-09-01 Hewlett Packard Enterprise Development Lp Application event tracing
GB2565934B (en) 2016-04-27 2022-08-10 Coda Project Inc System, method, and apparatus for operating a unified document surface workspace
CN110309039B (zh) * 2019-05-16 2022-12-13 平安科技(深圳)有限公司 自动化获取应用程序日志的方法、装置、设备及存储介质
US11150919B2 (en) * 2020-01-20 2021-10-19 EMC IP Holding Company LLC Logging of scripts executed in an information technology workflow orchestration system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076266A (ja) * 1998-08-28 2000-03-14 Internatl Business Mach Corp <Ibm> ブラウザ操作自動実行システムおよびその方法
JP2001306499A (ja) * 2000-04-17 2001-11-02 Image Source:Kk ホームページの改良支援システム
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
JP2004110096A (ja) * 2002-09-13 2004-04-08 Nippon Telegr & Teleph Corp <Ntt> ユーザ操作ログ可視化方法、ユーザ操作ログ可視化装置、プログラム及びその記録媒体
JP2004287929A (ja) * 2003-03-24 2004-10-14 Hitachi Information Systems Ltd Webページ操作システムとプログラムおよびWebデータ伝送システム
JP2005258986A (ja) * 2004-03-15 2005-09-22 Dainippon Printing Co Ltd Webアプリケーションにおける複製システム、Webアプリケーションが動作するWebサーバ、プログラム、及び、記録媒体
JP2008117093A (ja) * 2006-11-02 2008-05-22 Hitachi Ltd ユーザ操作記録・再現方法及び装置
WO2008126796A1 (ja) * 2007-04-06 2008-10-23 International Business Machines Corporation サービス・プログラムを生成する技術
JP2010039901A (ja) * 2008-08-07 2010-02-18 Nomura Research Institute Ltd 動作検証装置および動作検証プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532023B1 (en) * 1999-08-12 2003-03-11 International Business Machines Corporation Recording selected applet events of a user interaction sequence
US8161053B1 (en) * 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
JP2005321910A (ja) * 2004-05-07 2005-11-17 Softbank Bb Corp ログデータ管理システム、方法、及びプログラム
US7627821B2 (en) * 2004-06-15 2009-12-01 Microsoft Corporation Recording/playback tools for UI-based applications
US7506318B1 (en) * 2005-06-28 2009-03-17 Replay Solutions, Inc. Recording and replaying computer programs
WO2010110245A1 (ja) * 2009-03-25 2010-09-30 日本電気株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2010271875A (ja) * 2009-05-20 2010-12-02 Hitachi Ltd ネットワーク管理システムおよびプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076266A (ja) * 1998-08-28 2000-03-14 Internatl Business Mach Corp <Ibm> ブラウザ操作自動実行システムおよびその方法
JP2001306499A (ja) * 2000-04-17 2001-11-02 Image Source:Kk ホームページの改良支援システム
JP2003044318A (ja) * 2001-08-02 2003-02-14 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法
JP2004110096A (ja) * 2002-09-13 2004-04-08 Nippon Telegr & Teleph Corp <Ntt> ユーザ操作ログ可視化方法、ユーザ操作ログ可視化装置、プログラム及びその記録媒体
JP2004287929A (ja) * 2003-03-24 2004-10-14 Hitachi Information Systems Ltd Webページ操作システムとプログラムおよびWebデータ伝送システム
JP2005258986A (ja) * 2004-03-15 2005-09-22 Dainippon Printing Co Ltd Webアプリケーションにおける複製システム、Webアプリケーションが動作するWebサーバ、プログラム、及び、記録媒体
JP2008117093A (ja) * 2006-11-02 2008-05-22 Hitachi Ltd ユーザ操作記録・再現方法及び装置
WO2008126796A1 (ja) * 2007-04-06 2008-10-23 International Business Machines Corporation サービス・プログラムを生成する技術
JP2010039901A (ja) * 2008-08-07 2010-02-18 Nomura Research Institute Ltd 動作検証装置および動作検証プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116186188A (zh) * 2023-04-21 2023-05-30 智道网联科技(北京)有限公司 地图引擎的日志数据处理方法及相关设备

Also Published As

Publication number Publication date
JP5560180B2 (ja) 2014-07-23
US20130263156A1 (en) 2013-10-03
JP2012133695A (ja) 2012-07-12

Similar Documents

Publication Publication Date Title
JP5560180B2 (ja) 稼働ログ収集方法および装置
JP5325169B2 (ja) ウェブアプリケーションの操作再現方法およびシステム
US7139978B2 (en) Recording user interaction with an application
US7739282B1 (en) Method and system for tracking client software use
US8930818B2 (en) Visualization of website analytics
JP4334232B2 (ja) クライアント側の性能を測定するための方法、およびそのための命令を保持するコンピュータ読取可能な媒体、ならびにクライアント側の性能に応答する方法
US9130975B2 (en) Generation of macros
CA2656539C (en) Method and apparatus for monitoring and synchronizing user interface events with network data
US20170199809A1 (en) Graphical transaction model
US20200357007A1 (en) Page data acquisition method, apparatus, server, electronic device and computer readable medium
US7330887B1 (en) Method and system for testing web-based applications
US20080126931A1 (en) System and method for recording and reproducing user operation
US20100042573A1 (en) Method and system for communication between a client system and a server system
US8335845B2 (en) Web application management method and web system
US9378472B2 (en) Systems and methods for enabling and configuring tracking of user interactions on computer applications
WO2021129335A1 (zh) 操作监控方法及装置、操作分析方法及装置
CN114692049A (zh) 基于浏览器的录屏方法及装置、电子设备、存储介质
CN112817817B (zh) 埋点信息查询方法、装置、计算机设备和存储介质
CN114531345B (zh) 流量比对结果存储方法、装置、设备及存储介质
CN112131085A (zh) 互联网业务过程记录与回放的方法、系统及装置
US20050097565A1 (en) Gathering message information
EP1210677A1 (en) Server-based instrumentation system for internet-enabled applications
JP6925590B1 (ja) 統合使用ログデータを生成するサーバー及びその動作方法
JP2006024021A (ja) 帳票自動作成システム、帳票自動作成方法、帳票自動作成サーバ、および帳票自動作成装置
JP2005293248A (ja) アノテーションルールデータ作成装置、及びアノテーションシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11850895

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13819970

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11850895

Country of ref document: EP

Kind code of ref document: A1