WO2012049863A1 - 操作ログ格納システム、装置、およびプログラム - Google Patents

操作ログ格納システム、装置、およびプログラム Download PDF

Info

Publication number
WO2012049863A1
WO2012049863A1 PCT/JP2011/052878 JP2011052878W WO2012049863A1 WO 2012049863 A1 WO2012049863 A1 WO 2012049863A1 JP 2011052878 W JP2011052878 W JP 2011052878W WO 2012049863 A1 WO2012049863 A1 WO 2012049863A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
operation log
client device
code
code table
Prior art date
Application number
PCT/JP2011/052878
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/820,227 priority Critical patent/US20130198272A1/en
Publication of WO2012049863A1 publication Critical patent/WO2012049863A1/ja

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/3409Recording 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 for performance assessment
    • 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/3452Performance evaluation by statistical analysis
    • 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/3495Performance evaluation by tracing or monitoring for systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Definitions

  • the present invention relates to an application operation log acquisition and storage system, and more particularly to a technology for reducing the amount of communication between devices constituting a system.
  • a web application is a particularly remarkable example. This is an application form realized by processing an application interpretable by the browser device provided by the server device on the client side and transmitting data from the client device to the server device as necessary.
  • the simplest way to solve this is compression of operation logs using a coding method such as zip compression.
  • encoding for the purpose of compression has many of the same code string as the compression target.
  • the code efficiency that does not overlap does not increase. In other words, this requires the premise that the code length of the operation log is sufficiently long, but in order to realize this, the client device is forced to store a long but large operation log.
  • Patent Literature 1 describes a technique for reducing the network load or the processing load of the other device by preprocessing the information transmitted by the other.
  • Patent Document 1 realizes transmission of information effective for preprocessing because processing executed by the other apparatus is always equivalent.
  • a web application usually includes a plurality of pages, and the processing performed on each page is greatly different. Therefore, in the method described in Patent Document 1, effective preprocessing information cannot be generated, and the effect of reducing the network load cannot be obtained. In some cases, the load may be improved.
  • the present invention has been made in view of the above problems, and even when the processing executed by the other device is diverse, the operation log can be obtained with a light network load. It is an object to provide a storage system, apparatus, and program.
  • an operation log storage system including a client device that acquires an operation log and a server device for storing the operation log, the client device and the server device are respectively A storage unit for storing the program and data, a processing unit for processing the program, and a communication interface unit.
  • the storage unit of the server device includes an operation log transmitted from the client device via the communication interface unit, , Estimating a state of a program processed on the client device based on a plurality of encoding methods for encoding the operation log and the received operation log, and generating a code table based on the estimated program state
  • the code table generation program is stored, and the storage unit of the client device includes the code table transmitted from the server device.
  • the processing unit of the client device transmits the operation log encoded by the code conversion program to the server device, and the processing unit of the server device reversely converts the received encoded operation log into the storage unit of the server device.
  • An operation log storage system that sequentially stores data is provided.
  • the processing unit and the communication interface unit are configured.
  • the storage unit receives the operation log transmitted from the client device via the communication interface unit, and a plurality of encoding methods for encoding the operation log.
  • a code table generation program that estimates the state of a program processed on the client device based on the operation log, generates a code table based on the estimated program state, and a target program that collects the operation log on the client device
  • An application is stored, and the processing unit executes the received code operation by executing a code table generation program. It estimates the program state to be processed on the client device based on the log, based on the estimated program state, to generate a code table, to provide a server device configured to transmit to said client device.
  • the present invention includes a storage unit for storing a program and data, and a processing unit for processing the program, and a server that collects and stores an operation log of the program acquired by the client.
  • An operation log storage program executed by the processing unit, the processing unit receiving and storing the operation log transmitted from the client device via the communication interface unit, and the client device based on the received operation log
  • an operation storage program that estimates a state of a program processed above, generates a code table based on the estimated program state, and executes the generated code table to be transmitted to a client device.
  • a preferred embodiment of the present invention is an operation log storage system comprising a server device for storing operation logs and a client device for acquiring operation logs.
  • the server device includes a memory device that stores a program or data, a processor device that loads and processes the program stored in the memory device, and a communication interface that transmits and receives information to and from the client device.
  • the memory device of the apparatus has an operation log storage area for storing an operation log transmitted from the client apparatus, and a statistic recording area for recording statistical information of the operation log and its encoding method, based on the operation log ,
  • a program state estimation program that estimates the state of the program being processed on the client device
  • a code efficiency evaluation program that evaluates the encoding efficiency of the operation log transmitted from the client device, and a code table that is estimated to have the highest efficiency based on the program state estimated by the program state estimation program.
  • a client device includes a memory device that stores a program or data, a processor device that loads and processes the program stored in the memory device, an output device that outputs an output result of the program, and an input device that operates the program And a communication interface for transmitting / receiving information to / from the server device.
  • the memory device of the host device has an operation log area for temporarily storing an operation log and a code table area for storing a code table generated by a code table generation program transmitted from the server apparatus.
  • the target application for acquiring the above operation, the operation log acquisition program for acquiring the operation for the target application, and the code conversion for encoding the operation log acquired by the operation log acquisition program using the encoding method specified by the server device An operation log storage system configured to store programs is configured.
  • the operation log refers to a log of all events generated on the application, and includes one or both of an operation history by a user operation and an event history that is a change in the state of the application.
  • the database is a data management function for managing a table that is a set of records, which is a data group configured by ruled one or more data.
  • FIG. 1 is a diagram showing a configuration example of an operation log storage system according to the first embodiment.
  • an operation log storage system 1 includes a server device 2 that stores an operation log, and a client device 3 that stores an operation log acquisition target application 110 and processes the operation log acquisition target application 110.
  • the communication line 4 may be realized by a physical cable or may be realized by using wireless technology. Further, it may be realized using a network such as a LAN (Local Area Network) or a WAN (Wide Area Network).
  • LAN Local Area Network
  • WAN Wide Area Network
  • the server device 2 functions as a device that semipermanently records an operation log on the target application 110 running on the client device 3 or extracts and semipermanently records an operation log statistic.
  • the server device 2 has a normal computer configuration, and includes a communication interface 10, a processor device 12 that is a processing unit, a memory device 14 and a storage device 16 that are storage units, and a communication bus 18 that connects these components. It is the apparatus comprised from these.
  • the communication interface 10 of the server device 2 is a device for transmitting commands and data to other devices connected via the communication line 4 or receiving commands and data from the other devices.
  • the communication interface 10 does not necessarily have to be a single device, and when there are a wide variety of types of communication lines 4, a plurality of communication interfaces 10 corresponding to them may be installed, and the purpose is to secure a dedicated communication path.
  • a plurality of communication interfaces 10 may be connected to the same communication line 4. Thereafter, when there is no particular notice in the transmission / reception of data across the server device 2 and the client device 3, the transmission / reception is implicitly realized via the communication interface 10 and the communication line 4.
  • the processor device 12 is a device such as a central processing unit (CPU) that executes a program stored in the memory device 14 or reads / writes data from / to the memory device 14 or the storage device 16.
  • the server device 2 may be equipped with a plurality of processor devices 12. An operation that reads various programs from the memory device 14 into the processor device 12 and processes the processor device 12 is hereinafter referred to as “execute a program”.
  • the memory device 14 is a device for storing processing means used by the server device 2 and storing information.
  • the memory device 14 refers to a high-speed memory device 14 composed of a nonvolatile memory such as a dynamic RAM (Dynamic RAM: DRAM). If the latency of the application permits, a hard disk drive (Hard Disk Drive) : HDD) and solid state drive (Solid State Drive: SSD), or a large capacity recording medium such as CD-Recordable (CD-R).
  • the memory device 14 is not necessarily composed of a single device, and a plurality of memory devices 14 are arranged in parallel like RAID (Redundant Arrays of Inexpensive Disks) or like JBOD (Just a Bunch Of Disks). It may be realized by connecting in series.
  • the memory device 14 is divided into a program area 14p and a data area 14d. However, it should be noted that these areas do not necessarily have to be divided with a clear boundary in the logical memory space, and the area division itself is for convenience.
  • the program area 14p includes an application state determination program 100 for determining the state of the operation log acquisition target application 110 operating on the client device 3 based on the operation log transmitted from the client device 3, and an operation log.
  • Code efficiency evaluation program 102 that evaluates code efficiency
  • code table generation program 104 that generates a code table from the specified coding scheme 500 and sequence appearance frequency, and reverse conversion of the encoded operation log based on the code table
  • the code reverse conversion program 106 is stored.
  • the source file may be converted into a native code that can be interpreted by the processor device 12 at the time of execution and arranged in the memory device 14.
  • two or more encoding methods 500 are stored, and a session management area 600 for managing the current state and code table in the target application 110 operation log acquisition session is arranged.
  • these encoding methods 500 may be loaded from the storage device 16 or another device via the communication line 4 as necessary, and if they have a dedicated conversion program, When referred to by another program, the program may be dynamically converted from another language to native code.
  • the session management area 600 in the data area 14d is an area for managing a state until a certain target application 110 is started and terminated, and manages the state ID and code table of the target application 110 used in the session. ing.
  • the current state of the application in the server device 2 and the reference to the code table are implicitly inquired of the session management area 600.
  • the application state determination program 100 is a program that takes an operation log as an input and outputs a previous state and a rear state when an event indicating a state change included in the operation log is detected.
  • the code efficiency evaluation program 102 receives an operation log as an input, and based on the function for updating the statistics of the operation log on the statistics DB 22 and the updated statistics, the code efficiency of the coding method 500 of the server device 2 is the highest.
  • This is a program having a function for evaluating the high coding method 500 and a function for updating the coding method 500 determined by the code efficiency evaluation function on the statistics DB 22.
  • the code table generation program 104 is a program that receives an operation log statistic and a code method 500 and outputs a code table that is a pair of codes corresponding to an operation group according to an operation or order.
  • a group of operations according to the order is referred to as a sequence.
  • the code reverse conversion program 106 is a program that receives an encoded operation log and a code table and outputs a code reverse conversion, that is, a decoded operation log.
  • the encoded operation log is referred to as an encoded log.
  • the storage device 16 is a device for storing the operation log transmitted from the client device 3 and the statistics extracted therefrom in a database in a semi-permanent manner.
  • a database is a data management function for managing a table that is a set of records (a group of data composed of one or more data), and adding / deleting records to / from a specific table -A data management function consisting of four functions of extraction and editing.
  • the storage device 16 refers to a large-scale non-volatile recording medium such as an HDD or SSD, but if it can be semi-permanently stored as permitted by the application, it may be a non-volatile memory such as a high-speed DRAM, If the database function can be realized within the required time, an updatable optical recording medium such as a Blu-ray Disc (BD) may be used. If the database can be managed, a CD-R or the like can be used. You may use write-once media. Further, if the memory device 14 has a sufficient capacity, a database area may be arranged in the memory device 14 and the operation log and its statistics may be arranged in a database. Alternatively, an external storage device 16 connected using the communication interface 10 may be used.
  • BD Blu-ray Disc
  • the storage device 16 is not necessarily configured from a single device, and a plurality of storage devices 16 may be realized in parallel or in series.
  • the communication bus 18 is a device for realizing data transmission / reception between components in the device, and connects an internal bus such as a CPU bus or an address bus and an expansion bus such as a serial ATA (Serial ATA) or PCI Express. It is the apparatus comprised as follows. The above is generally a wired communication bus 18, but may be configured with a wireless communication bus 18 for the purpose of simplifying wiring and the like. Thereafter, when there is no particular notice in communication between devices in the server device 2 or the client device 3, transmission / reception is implicitly realized via the communication bus 18.
  • the client device 3 is a device in which an application for which an operation log is to be acquired is operating, and has a normal computer configuration, and includes a communication interface 10, a processor device 12, a memory device 14, an input device 200, and an output. This is a device composed of the device 220.
  • the communication interface 10, the processor device 12 that is a processing unit, and the memory device 14 that is a storage unit are the same components as the server device 2.
  • the input device 200 is a device that converts a user input into a physical signal such as electricity that can be understood by the device, and examples thereof include a keyboard, a mouse, a microphone, and a sensor.
  • the input device 200 does not need to be provided in the device, and may be connected via the communication line 4.
  • the output device 220 is a device that converts the output of the device into information that can be understood by humans such as images and sound waves. Examples thereof include a display, a printer, a plotter, a speaker, and a motor. Similarly, the output device 220 does not need to be provided in the device and may be connected via the communication line 4.
  • the program area 14p on the memory device 14 includes a target application 110 program that is an operation log acquisition target, an operation that monitors the target application 110, acquires an operation log of the application, encodes the log, and transmits the operation log to the server device 2.
  • a log acquisition program 108 is arranged. There may be one target application 110 program or a plurality of target application 110 programs. These programs need not always be stored in the memory device 14 like the programs of the server device 2.
  • the data area 14 d on the memory device 14 stores an operation log area 602 in which an operation log acquired from the target application 110 is stored, and a code table for each target application 110 received from the server apparatus 2. 604 is arranged.
  • FIG. 2 is an example of a diagram illustrating a path from operation log acquisition to storage in the operation log storage system according to the present embodiment.
  • PG indicates a program.
  • the operation in the target application 110 on the client device 3 is acquired by the operation log acquisition program 108.
  • the acquired operation log 42 is temporarily stored in the operation log area 604.
  • the operation log acquisition program 108 encodes the operation log 42 with reference to the code table corresponding to each application stored in the code table area 604, and the encoded log 42e.
  • the operation log 42 that has been encoded is deleted from the operation log area 602.
  • the accumulation amount of the operation log 42 for starting the encoding is a value determined by the setting of the operation log acquisition program 108.
  • each operation log 42 is stored. Encoding is performed.
  • the operation log acquisition program 108 transmits the encoding log 42 e to the server device 2 via the communication interface 10.
  • the encoded log 42e of the operation log transmitted to the server device 2 is first received by the code reverse conversion program 106 of the server device 2.
  • the code reverse conversion program 106 performs reverse conversion on the encoding log 42 e with reference to the code table 40.
  • the code table 40 is a code table similar to the code table transmitted to the client apparatus 3, and management for each session is realized by the code table generation program 104 using the session management area 600.
  • the code reverse conversion program 106 transmits the reversely converted operation log 42 to the optimum code generation mechanism 900.
  • the optimal code generation mechanism 900 is a processing mechanism that determines the optimal code system 500, generates the code table 40, and records the operation log 42 and its statistics.
  • the code efficiency evaluation program 102 of the optimum code generation mechanism 900 evaluates the code efficiency when applied to the received operation log 42 for each encoding method 500, extracts statistics from the operation log 42, and responds to them.
  • the table in the statistics DB 22 to be updated is updated. Thereafter, the code efficiency evaluation program 102 transmits the operation log 42 to the application state determination program 100.
  • the application state determination program 100 determines a change in application state from the event history included in the received operation log 42. When there is a change, a suitable coding method 500 is extracted from the statistics DB 22 and notified to the code table generation program 104.
  • the code table generation program 104 Upon receiving the notification, the code table generation program 104 selects an appropriate code method 500 from the code method 500 group if necessary, regenerates the code table 40, and transmits it to the client apparatus 3.
  • the code table 40 received by the client device 3 is updated in the code table area 604 by the operation log acquisition program 108.
  • the application state determination program 100 stores the operation log 42 in the operation log DB 20, and the storage of the operation log 42 is completed.
  • FIG. 3 is a diagram showing a specific example of implementation of the optimum code generation mechanism 900. Details of the configuration of the main part will be described below.
  • ⁇ Operation of code efficiency evaluation program 102> The code efficiency evaluation program 102 that has received the operation log 42 transmitted from the code reverse conversion program 106 extracts a statistic from the operation log 42 in a statistic extraction step 780, and records an operation appearance posterior probability recording table in the statistic DB 22. In 306, the records corresponding to the current state are updated in the sequence appearance posterior probability recording table 308 and the sequence management table 304, respectively.
  • the code system 500 that can encode the statistics updated with the highest code efficiency is determined from among the code systems 500 of the server device 2.
  • FIG. 4 shows an implementation example of the code efficiency evaluation step 782 of the operation log 42. Steps S401 to S406 will be described sequentially. First, the optimal code efficiency R is initialized to 1 and the counter i is initialized to 1. (S401) This counter i is a counter used for referring to each coding method 500 of the server apparatus 2, and the range is set from 1 to n.
  • the operation log 42 received by the encoding method 500 of the server apparatus 2 is encoded, and the code length is divided by the code length of the operation log 42 based on the code.
  • the result of the division is the code efficiency r by the coding system 500, and the code efficiency evaluation step 782 is an algorithm for detecting the minimum r from all the coding systems 500.
  • r is compared with the current R, and if r is smaller than R, the optimum code efficiency R is updated with r.
  • the coding method 500 is set to the optimum coding method (not shown).
  • the counter i is compared with the number n of the encoding schemes 500 included in the server apparatus 2, and if they are not equal, that is, if all the encoding schemes 500 have not been compared, the counter i is advanced and the next encoding
  • the code efficiency r of method 500m (i + 1) is calculated.
  • the code efficiency evaluation program 102 updates the record corresponding to the current state in the code system management table 300 managed by the statistic DB 22 for the optimal code system determined in the code efficiency evaluation step 782. Thereafter, the operation log 42 is transmitted to the application state determination program 100.
  • the application state determination program 100 shown in FIG. 3 first scans the received operation log 42 in the state transition detection step 700 to detect whether the state of the target application 110 has changed. And the current state pair 48 is output.
  • the state transition detection step 700 will be described with reference to FIG.
  • FIG. 5 shows an implementation example of the state transition detection step 700 of the target application 110.
  • the counter i is first initialized with 1.
  • S501 This counter is a counter used for referring to each log included in the operation log 42, and the range is 1 to n.
  • State transition detection step 700 detects whether or not the operation log 42 referred to by the counter i is a state transition event.
  • This state transition event is, for example, a check state change such as a check box of an application, or an ID change if an application has an ID on the screen. It is regarded as an ID, and a URL change, that is, a page transition is a state transition event.
  • a flag indicating that a state transition event has been detected is first set. (C500-YES, S502) That is, when the target application is a Web application, the page transition is a state transition.
  • the operation log 42 is inquired of the application state management table 302 of the statistics DB 22 to acquire the current state ID.
  • S503 If this state is an unknown state that has never appeared, the state is newly registered in the statistics DB 22, and the assigned ID is acquired.
  • C501-NO, S504 Thereafter, the current state ID stored in the session management area 600 is held as a previous state ID, and the current state ID acquired from the statistics DB 22 is stored in the session management area 600 as a new current state ID.
  • S505 When the above operation is executed for all the operation logs 42 and the state transition detection flag is set when the operation is completed, the current state ID and the previous state ID acquired in the above steps are determined as a coding method.
  • the coding method determination step 702 of the application state determination program 100 inquires the received current state ID and previous state ID 48 from the coding method management table 300 of the statistic DB 22 and extracts a coding method. After that, the extracted encoding method 46 is transmitted to the code table generation program 104 to notify the change of the encoding method.
  • the communication load reduction amount due to the change of the code efficiency is more than the communication load amount due to the code table transmission than the code efficiency of the encoding method used in the previous state ID and the encoding efficiency of the encoding method to be used in the current state ID. If it is not possible to reduce the communication load by exchanging the code tables, the coding method determination step 702 need not notify the change of the coding method.
  • the operation log 42 that has been analyzed is stored in the operation log DB 20.
  • a code table 40 is generated in a code amount calculation step 740.
  • FIG. 6 shows an example of the code table 40 generated by the code table generation program 104.
  • the code table 40 is a table in which a plurality of processes correspond to one unique code. In this embodiment, a code in binary notation is assigned, but another code may be used as long as it uniquely corresponds to the sequence.
  • FIG. 7 shows an example of a coding method, which is a coding method generally called a Huffman code.
  • FIG. 8 is a variant of a coding scheme generally called Range Coder, which differs from the original Range Coder in that the code generation is interrupted at a constant sequence length.
  • the sequence appearance posterior probability table S in the statistics DB 22 is referenced to extract the sequence appearance posterior probability list S in the current state.
  • the appearance posterior probability list S is a set composed of a sequence and a pair s of appearance probabilities.
  • the code table generation program 104 generates a code table 40E having the same size as S. (S702)
  • the code table 40E is a set composed of a sequence and a pair c of codes corresponding thereto.
  • the code table generation program 104 initializes codes corresponding to all sequences with null characters. (S703) Then, the appearance posterior probability list S is sorted in descending order based on the appearance probability. (S704) From here, the procedure for generating the code table 40 is entered. First, the code table generation program 104 selects s (i-1) having the lowest appearance probability and s (i) for the next element (not the element with the next lowest appearance probability) on the list. (S705) Since the elements are sorted in descending order in the initial state, the first element s (0) and the next element s (1) are selected.
  • FIG. 8 is a variant of the coding method 500 generally called Range Coder, and differs from the original Range Coder in that the code generation is interrupted with a constant sequence length.
  • the encoding sequence length L is extracted with reference to the encoding method management table 300 of the statistics DB 22.
  • L may be a constant value given by the user, or the code efficiency evaluation program 102 may evaluate the code efficiency for several L and find the optimum L among them.
  • the operation posterior probability list O is a set composed of a pair o of operations and their appearance probabilities.
  • the operation appearance posterior probability list O is sorted in descending order based on the appearance probability.
  • the code table generation program 104 raises the operation appearance information to the Lth power.
  • the code table generation program 104 then generates a code table 40E having the same size as S.
  • the code table 40E is a set composed of a sequence and a pair c of codes corresponding to the sequence.
  • the code table generation program 104 initializes codes corresponding to all sequences with null characters.
  • o (a) ( ⁇ Operation A, Operation B ⁇ , 0.1)
  • o (b) ( ⁇ Operation C ⁇ , 0.05)
  • the multiplication operation o (a) * o (b) of o (a) * o (b) ( ⁇ Operation A, Operation B, Operation C ⁇ , 0.005) It becomes. It should be noted that ( ⁇ operation A, operation B, operation C ⁇ , 0.005) ⁇ ( ⁇ operation A, operation C, operation B ⁇ , 0.005) is different o.
  • the operation group having this order is a sequence, and the Lth power of the operation appearance information assumes that the appearance probabilities of all operations in a certain state are independent, This is a calculation operation.
  • any number included in the appearance probability p (i) and the cumulative appearance probability P (i + 1) up to the next element o (i + 1) is c (i).
  • '01' which is an effective number after the decimal point, is assigned as a code corresponding to the sequence (operation A, operation B, operation C).
  • the coding method 2 (500b) is a coding method that assumes that all operations that occur in that state are independent. Therefore, it is known that coding scheme 2 (500b) generally has higher coding efficiency than coding scheme 1 (500a) for applications and use cases that meet this assumption. On the other hand, for example, when many constraints such as “operation A and operation B are exclusive” or when the sequence appearance probability list S is very long, the coding efficiency of coding method 1 (500a) is coding method 2 It approaches or improves (500b).
  • the analysis of the actual target application 110 is not sufficient, and the essence of the present embodiment is that it cannot be detected unless it is acquired from an actual operation and evaluated.
  • FIG. 9 is a diagram illustrating an example of the operation of the operation log storage system 1.
  • P1 indicates an initialization procedure
  • P2 indicates a log acquisition procedure
  • P3 indicates a code table update procedure.
  • the operation log acquisition program 108 of the client device 3 starts monitoring the target application 110 (S900).
  • the operation log acquisition program 108 detects the start of the target application 110. (S901, S902)
  • the operation log acquisition program 108 extracts the initial state and notifies the server device 2 (S903).
  • the initial state information transmitted to the server device 2 is received by the application state determination program 100. Thereafter, the coding method to be used is extracted by inquiring of the statistics DB 22. At this time, the previous state is inquired as “no state”. Thereafter, the application state determination program 100 notifies the code table generation program 104 of the extracted code method (S904, S905).
  • the code table generation program 104 generates a code table 505 according to the received code method 500 and transmits the code table to the client device 3 (S906).
  • the operation log acquisition program 108 completes the preparation for acquiring the operation log, encoding it, and transmitting it.
  • a procedure for acquiring a log and transmitting it to the server device 2 will be described.
  • the log acquisition procedure sequence after the initialization procedure is described.
  • the operation log acquisition program 108 acquires an operation log every time the user operates the target application 110 or an event occurs on the application (S907).
  • the operation log acquisition program 108 refers to the previously received code table and encodes the acquired operation log (S908).
  • the encoded operation log is transmitted to the server device 2 (S909).
  • This transmission timing may be transmitted when the amount of information of the encoded operation log exceeds a predetermined threshold value in the operation log area 602 of the client device 3, or every time encoding is successful. If the operation log area 602 of the client device 3 is sufficiently prepared, it may be transmitted at the timing when the state transition occurs.
  • the code reverse conversion program 106 on the server device 2 receives the log from the client device 3, refers to the code table stored in the session management area 600, reversely converts the encoded log 42 e, and converts the original operation log 42 into the original operation log 42. Generate. (S910). Thereafter, the operation log 42 is transmitted to the code efficiency evaluation program 102.
  • the code efficiency evaluation program 102 evaluates the code efficiency to be applied to the operation log 42.
  • the code efficiency evaluation program 102 first calculates the statistic of the operation log 42 and updates the statistic DB 22 (S911). Next, as an efficiency evaluation, the code efficiency when each code method is used is calculated while referring to the code method group 500, the highest code efficiency method is determined, and the statistics DB 22 is updated (782, S912). ).
  • the operation log 42 is transmitted to the application state determination program, determines the state of the application based on the operation log 42, and detects whether the state has changed from the previous state (S913, 700). Further, the application state determination program stores the operation log 42 in the operation log DB 20 (S914).
  • the above procedure shows that the operation log can be stored after the operation log is encoded on the client device 3 and the reverse conversion and the optimization of the encoding method are realized on the server device 2.
  • a procedure for updating the updated encoding method on the client will be described.
  • the code table update procedure P3 is called.
  • the application state determination program 100 inquires the statistic DB 22 about the previous state and the current state, and extracts a matching encoding method. Thereafter, the code system is notified to the code table generation program 104 (S904, S905).
  • the code table generation program 104 regenerates the code table 506 according to the received code method, and transmits the code table to the client device 3 (S906).
  • the code table is updated when the application state transition occurs.
  • the code table may be updated each time the code method with the highest code efficiency changes. It may be triggered by this event.
  • the network load between the server device and the client device can be reduced with the code efficiency suitable for the state of the target application.
  • the target application 110 is stored in the client device 3 in advance. However, in a Web application or the like, the target application 110 is on the server device 2 side, and a request for an application processing program included in the client device 3 is requested. Accordingly, there may be a mode in which the target application 110 is transmitted from the server device 2. Such an embodiment will be described below as a second example.
  • FIG. 10 is a diagram illustrating an example of a mode in which the target application 110 is transmitted from the server device 2 in the operation log storage system 1 according to the second embodiment.
  • the operation log storage system 1 includes an operation log target application 110, a server device 2 that stores the operation log, and a client device 3 that processes the operation log acquisition target application 110.
  • the device configurations of the server device 2 and the client device 3 are the same as the example shown in FIG. 1 of the first embodiment.
  • the application state determination program 100 for determining the state of the operation log acquisition target application 110 based on the operation log transmitted from the client device 3, and the code efficiency of the operation log are stored.
  • Code efficiency evaluation program 102 to be evaluated a specified coding method 500, a code table generation program 104 that generates a code table from the appearance frequency of a sequence, and a code that reversely converts an encoded operation log based on the code table
  • An inverse conversion program 106 is arranged.
  • two or more encoding methods 500 are stored in the data area 14d.
  • the program of the target application 110 that is the operation log acquisition target, the target application 110 is monitored, the operation log of the application is acquired, the log is encoded, and the server An operation log acquisition program 108 to be transmitted to the apparatus 2 is stored.
  • these programs are used by being transmitted to the client side when there is a request from the client device 3 to the server device 2. Therefore, unlike the first embodiment, these programs are used on the server device 2. It is stored in the data area 14d.
  • the storage device 16 and the DBs 20 and 22 held in the storage device 16 are the same as in the first embodiment.
  • an application processing program 112 that makes a request to the operation log acquisition target application 110 of the server device 2 is arranged.
  • the application processing program 112 is a program that reads and operates another target application 110, and is specifically a Web browser or the like. Taking a Web browser as an example, a Web page expressed in HTML (Hyper Text Markup Language) or JavaScript (Java is a registered trademark) possessed by another device or the client device 3 itself is HTTP (Hyper Text Transfer Protocol) or the like. This is a program that is obtained according to the above protocol, visualizes a web page using a rendering engine or script engine of a web browser, and provides it to the user. Even if the application processing program itself is not modified, the behavior changes depending on the target application 110 to be read. In this embodiment, the operation log acquisition program 108 and the code table 40 are embedded in the target application 110 and transmitted, A mode for acquiring the operation log 42 on the client device 3 will be described.
  • FIG. 11 is an example of a diagram showing a route of the operation log 42 from acquisition to storage of the operation log 42 in the operation log storage system 1 according to the second embodiment.
  • the application processing program 112 on the client device 3 requests the server device 2 to acquire the target application 110.
  • the server apparatus 2 that has received the acquisition request uses the target application 110 in the target application group 110 as the target application 110 using the operation log acquisition program 108 and the code table 40 generated by the encoding method suitable for the initial state of the target application 110 as the target application. It is embedded in 110 and transmitted.
  • the application processing program 112 receives the target application 110 in which the operation log acquisition program 108 and the code table 40 are embedded from the server device 2 and is held on a memory managed by the application processing program 112. Start operation with.
  • a user operation on the application processing program 112 is an operation log acquisition program 108 loaded on the memory device 14 on the client device 3 is an operation on the target application 110a, 110b loaded on the memory device 14 of the client device 3. Is obtained based on the code tables 40a and 40b according to the application, and transmitted to the server device 2 via the communication interface 10.
  • the generated and transmitted encoded log 42e is received by the code reverse conversion program 106 of the server device 2, and the encoded log 42e is reverse converted with reference to the code table 40 and decoded into the operation log 42. Thereafter, the code inverse conversion program 106 transmits the operation log 42 subjected to the inverse conversion to the optimum code generation mechanism 900.
  • the code efficiency evaluation program 102 of the optimum code generation mechanism 900 evaluates the code efficiency when applied to the received operation log 42 for each code system obtained by referring to the code system 500 group, and from the operation log 42. The statistics are extracted, and the table in the statistics DB 22 corresponding to them is updated. Thereafter, the code efficiency evaluation program 102 transmits the operation log 42 to the application state determination program 100.
  • the application status determination program 100 determines a change in application status from the event history included in the operation log 42. When there is a change, a suitable code system is extracted from the statistics DB 22 and notified to the code table generation program 104. Upon receiving the notification, the code table generation program 104 selects an appropriate code method from the group of code methods 500 if necessary, regenerates the code table 40, and transmits the code table 40 to the client apparatus 3. The code table 40 received by the client device 3 is updated in the code table area by the operation log acquisition program 108.
  • the application state determination program 100 stores the operation log 42 in the operation log DB 20, and the storage of the operation log 42 is completed.
  • the above is a rough process from the request of the target application 110 to the generation and storage of the operation log 42 in the second mode.
  • the remaining steps are the first and second implementations except for the initial operation log acquisition program 108 and code table 40 embedding and the load of the target application 110. It can be said that it is completely equal in the example. This means that each program can be used in any of the embodiments, and shows the versatility of the present invention.
  • FIG. 12 shows an operation example of the operation log storage system 1 in the second embodiment.
  • the application processing program 112 of the client device 3 makes an acquisition request to the log acquisition target application in the target application group 110 of the server device 2 (S1200).
  • the target application that has received the request notifies the application state determination program 112, and the application state determination program 112 that has received the notification detects the state of the target application based on the notification, and inquires the statistics DB 22 for the current state.
  • a code system that matches the current state is extracted, and the code system generation program 104 is notified of the code system (S903, S904, S905).
  • the code table generation program 104 generates 505 the code table 40 according to the notified code method, and embeds the code table 40 in the target application 110 (S1201). Further, the operation log acquisition program 108 is embedded in the target application 110, and the target application 110 is transmitted to the client device 3 (S1202, S1203).
  • the state of the program running on the client device 3 and the server device 2 becomes equivalent to that of the first embodiment. Therefore, regarding the log acquisition procedure, the target application 110, the operation log acquisition program 108, and the code table 40 sent to the client device 3 side are similar to the log acquisition procedure P2 shown in FIG. 7 of the first embodiment. Log acquisition procedure can be implemented.
  • the code table generation program 104 regenerates 506 the code table 40 according to the notified code method.
  • the server apparatus 2 sends the target application 110 in which the generated code table 40 and the operation log acquisition program 108 are embedded to the client apparatus 3 so that the log can be acquired. (S1201, S1202, S1203).
  • the operation log storage of the light communication path load can be realized by the same operation as the first embodiment, and the target application group is held on the server device side. Can be planned.
  • the present invention is useful as a technique for acquiring an operation log of an application, a communication amount between devices constituting a storage system, and a load reduction technique.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 クライアントの対象アプリケーションの状態をサーバで記録し、状態変化ごとに符号効率を評価し、常に最適な符号効率を実現する。 クライアント装置3とその操作ログを格納するサーバ装置2で操作ログ格納システム1が構成され、サーバ装置のメモリ装置14とストレージ装置16は、通信インタフェース10を介して、クライアント装置3から送信されてくる操作ログと、操作ログを符号化するための符号方式群500と、操作ログに基づき推定したクライアント装置上のプログラム状態に基づいて、符号表を生成する符号表生成プログラム104等を記憶する。クライアント装置3のメモリ装置14は、サーバ装置2から送信された符号表と、対象アプリケーション群110と、操作ログを取得する操作ログ取得プログラム108を記憶する。サーバ装置2は、クライアント装置3から受信した操作ログを操作ログとして順次ストレージ装置16に格納する。

Description

操作ログ格納システム、装置、およびプログラム
 本発明はアプリケーションの操作ログの取得、格納システムに係り、特にシステムを構成する装置間の通信量削減技術に関する。
 近年、ネットワークを介した装置同士の通信が普及し、通信を利用した装置同士の連携が一般化してきている。特に顕著な例として、Webアプリケーションが挙げられる。これはサーバ装置が提供するブラウザ装置が解釈可能なアプリケーションをクライアント側で処理し、必要に応じてクライアント装置からサーバ装置へデータを送信することで、実現されるアプリケーション形態である。
 このWebアプリケーションにおいては、多種多様なクライアント装置上でアプリケーションが動作するため、そのユーザビリティや性能はユーザ環境ごとで異なる。そのため、クライアント装置上のWebアプリケーションに対して行われた操作あるいはイベントからWebアプリケーションの利便性を評価したいという要求が多く出てきている。
 そこで、サーバ装置のWebアプリケーションに一定間隔でクライアント装置の操作をサーバ装置に送信し、その操作ログを格納するアプリケーションが登場している。しかしながら、このアプリケーションの導入により、ネットワーク負荷が増加してしまうため、Webアプリケーションの元来の応答性能が低下してしまうという問題がある。
 これを解決するもっとも単純な方法は、ジップ(zip)圧縮などの符号方式を利用した操作ログの圧縮があるが、一般的に圧縮を目的とした符号化はその圧縮対象に同符号列が多く重複しないその符号効率(符号化前の符号長と符号化後の符号長の比)が高まらない。これは言い換えれば、操作ログの符号長が十分に長いという前提を必要としているが、これを実現するにはクライアント装置に一時的とはいえ長大な操作ログの格納を強要してしまう。
 このネットワーク負荷低減問題を軽クライアント負荷で解決するため、他方が送信する情報を前処理加工することで、ネットワーク負荷あるいは他方の装置の処理負荷を軽減する技術が特許文献1に記載されている。
特開2006-259811号公報
 特許文献1記載の技術は、常に他方の装置で実行される処理が同等であるが故に、前処理に効果的な情報の送信を実現している。Webアプリケーションは通常、複数のページを含んでおり、それぞれのページで行われる処理は大きく異なる。そのため特許文献1記載の方法では、効果的な前処理情報を生成できず、ネットワーク負荷軽減効果が得られない、場合によっては負荷を向上させてしまう可能性がある。
 本発明は上記課題を鑑みて為されたものであって、他方の装置で実行される処理が多岐に渡る場合においても、その操作ログの取得を軽ネットワーク負荷で実現することが可能な操作ログ格納システム、装置、およびプログラムを提供することを目的としている。
 上記の目的を達成するため、本発明においては、操作ログを取得するクライアント装置と操作ログを格納するためのサーバ装置とから構成される操作ログ格納システムであって、クライアント装置とサーバ装置はそれぞれ、プログラム、データを格納する記憶部と、プログラムを処理する処理部と、通信インタフェース部とを備え、サーバ装置の記憶部は、通信インタフェース部を介して、クライアント装置から送信されてくる操作ログと、操作ログを符号化するための複数の符号方式と、受信した操作ログに基づいてクライアント装置上で処理されるプログラムの状態を推定し、推定されたプログラム状態に基づいて、符号表を生成する符号表生成プログラムを記憶し、クライアント装置の記憶部は、サーバ装置から送信された符号表と、プログラムとしての対象アプリケーションと、対象アプリケーションに対する操作ログを取得する操作ログ取得プログラムと、操作ログ取得プログラムが取得した操作ログを、サーバ装置から受信した符号表を用いて符号化する符号変換プログラムとを記憶し、クライアント装置の処理部は、符号変換プログラムにより符号化した操作ログをサーバ装置に送信し、サーバ装置の処理部は、受信した符号化操作ログを逆変換してサーバ装置の記憶部に順次格納する操作ログ格納システムを提供する。
 また、上記の目的を達成するため、本発明においては、クライアント装置で取得された操作ログを収集、格納するためのサーバ装置であって、プログラム、データを格納する記憶部と、プログラムを処理する処理部と、通信インタフェース部とから構成され、記憶部は、通信インタフェース部を介して、クライアント装置から送信されてくる操作ログと、操作ログを符号化するための複数の符号方式と、受信した操作ログに基づいてクライアント装置上で処理されるプログラムの状態を推定し、推定されたプログラム状態に基づいて、符号表を生成する符号表生成プログラムと、クライアント装置で操作ログを収集する対象プログラムであるアプリケーションを記憶し、処理部は、符号表生成プログラムを実行することにより、受信した操作ログに基づいてクライアント装置上で処理されるプログラム状態を推定し、推定されたプログラム状態に基づいて、符号表を生成して、前記クライアント装置に送信する構成のサーバ装置を提供する。
 更に、上記の目的を達成するため、本発明においては、プログラム、データを格納する記憶部と、プログラムを処理する処理部を備え、クライアントで取得されたプログラムの操作ログを収集、格納するサーバの処理部で実行される操作ログ格納プログラムであって、処理部を、通信インタフェース部を介して、クライアント装置から送信されてくる操作ログを受信して格納し、受信した操作ログに基づいてクライアント装置上で処理されるプログラムの状態を推定し、推定したプログラム状態に基づいて、符号表を生成し、生成した符号表をクライアント装置に送信するよう実行させる操作格納プログラムを提供する。
 すなわち、上記の目的を達成するため、本発明の好適な実施態様にあっては、操作ログを格納するためのサーバ装置と操作ログを取得するクライアント装置とから構成される操作ログ格納システムであって、サーバ装置は、プログラムあるいはデータを格納するメモリ装置と、メモリ装置に格納されたプログラムをロードして処理するプロセッサ装置と、クライアント装置と情報を送受信するための通信インタフェースとから構成され、サーバ装置のメモリ装置は、クライアント装置から送信されてくる操作ログを格納する操作ログ格納領域と、操作ログの統計情報及びその符号方式を記録する統計量記録領域とを有し、操作ログに基づいて、クライアント装置上で処理されているプログラムの状態を推定するプログラム状態推定プログラムと、クライアント装置より送信されてきた操作ログの符号化効率を評価する符号効率評価プログラムと、操作ログをプログラム状態推定プログラムにより推定されたプログラム状態に基づいて、最高効率と推定される符号表を生成する符号表生成プログラムと、符号化されて送信されてくる操作ログを逆変換する符号逆変換プログラムと、2つ以上の前記操作ログを符号化するための符号方式とを格納しており、クライアント装置は、プログラムあるいはデータを格納するメモリ装置と、メモリ装置に格納されたプログラムをロードして処理するプロセッサ装置と、プログラムの出力結果を出力する出力装置と、プログラムを操作するための入力装置と、サーバ装置と情報を送受信するための通信インタフェースとから構成され、クライアント装置のメモリ装置は、操作ログを一時的に格納する操作ログ領域と、サーバ装置より送信されてくる符号表生成プログラムによって生成された符号表を格納する符号表領域とを有し、1つ以上の操作を取得する対象アプリケーションと、対象アプリケーションに対する操作を取得する操作ログ取得プログラムと、サーバ装置により指定された符号方式を用いて、操作ログ取得プログラムが取得した操作ログを符号化する符号変換プログラムとを格納している構成の操作ログ格納システムを構成する。
 本発明によれば、アプリケーション操作ログの高効率な収集を軽ネットワーク負荷、更には低クライアント負荷で実現できる。
第一の実施例に係る、操作ログ格納システムの全体構成を示す図である。 第一の実施例に係る、操作ログ格納フローの一例を示す図である。 第一の実施例に係る、最適符号生成機構の一構成例を示す図である。 第一の実施例に係る、符号効率評価ステップのフローチャートの一例を示す図である。 第一の実施例に係る、状態遷移検知ステップのフローチャートの一例を示す図である。 第一の実施例に係る、符号表の一例を示す図である。 第一の実施例に係る、符号方式の一例を示す図である。 第一の実施例に係る、符号方式の他の例を示す図である。 第一の実施例に係る、操作ログ格納システムの動作例を示すシーケンス図である。 第二の実施例に係る、操作ログ格納システムの一構成例を示す図である。 第二の実施例に係る、操作ログ格納フローの一例を示す図である。 第二の実施例に係る、操作ログ格納システムの動作例を示すシーケンス図である。
 本明細書においては、同じ符号が割り当てられている構成要素は同様の構成要素である。また、操作ログとは、アプリケーション上で生成されるイベント全般のログを指し、ユーザ操作による操作履歴とアプリケーションの状態変化であるイベント履歴の何れか一方あるいは両方を含むこととする。更に、本明細書においてデータベースとは、1つ以上のデータを規則づけて構成したデータ群であるレコードの集合であるテーブルを管理するためのデータ管理機能であるとする。
  [実施例1]
 図1は第一の実施例による操作ログ格納システムの一構成例を示す図である。同図において、操作ログ格納システム1は、操作ログを格納するサーバ装置2と、操作ログ取得対象アプリケーション110を格納し、操作ログ取得対象アプリケーション110を処理するクライアント装置3から構成され、それぞれの装置は通信線4によって接続されている。この通信線4は、物理的なケーブルで実現してもよいし、無線技術を用いて実現してもよい。また、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワークを利用して実現してもよい。さらにはクライアント装置3、サーバ装置2の何れも一台で構成されている必要はなく、負荷分散などを目的としてそれぞれ複数台配置しても構わない。
 本実施例において、サーバ装置2はクライアント装置3で動作している対象アプリケーション110上での操作ログを半永続的に記録、あるいは操作ログの統計量を抽出及び半永続的に記録する装置として機能する。サーバ装置2は、通常の計算機の構成を備え、通信インタフェース10と、処理部であるプロセッサ装置12と、記憶部であるメモリ装置14とストレージ装置16と、これらの構成要素を接続する通信バス18とから構成される装置である。
 サーバ装置2の通信インタフェース10は、通信線4を介して接続された他の装置に対して命令及びデータを送信、或いは当該他の装置からの命令及びデータを受信するための装置である。通信インタフェース10は必ずしも装置に1台である必要はなく、通信線4の種類が多岐に渡る場合、それらに対応した通信インタフェース10を複数搭載しても構わないし、専用通信路の確保などを目的として、同一通信線4に複数の通信インタフェース10を接続しても構わない。以降、サーバ装置2とクライアント装置3をまたぐデータの送受信において特に断りが無い場合は、暗黙的に通信インタフェース10と通信線4を介して送受信を実現することとする。
 プロセッサ装置12はメモリ装置14に格納されているプログラムを実行し、あるいはメモリ装置14やストレージ装置16に対するデータの読み書きする、中央処理部(Central Processing Unit:CPU)などの装置である。サーバ装置2は、このプロセッサ装置12は複数台搭載していても構わない。メモリ装置14から各種のプログラムをプロセッサ装置12に読み込み、プロセッサ装置12が処理する動作を、以降「プログラムを実行する」と表現する。
 メモリ装置14は、サーバ装置2が使用する処理手段を格納および情報を記憶するための装置である。一般的にメモリ装置14と言えばダイナミックラム(Dynamic RAM:DRAM)などの不揮発メモリによって構成される読み書きが高速なメモリ装置14を指すが、アプリケーションのレイテンシが許すならば、ハードディスクドライブ(Hard Disk Drive:HDD)やソリッドステートドライブ(Solid State Drive:SSD)などの大容量記録メディアでもよいし、またはシーディーアール(CD-Recordable:CD-R)などのライトワンスメディアでも構わない。またメモリ装置14は必ずしも単一の装置から構成されているわけではなく、複数台のメモリ装置14をRAID(Redundant Arrays of Inexpensive Disks)のように並列、あるいはJBOD(Just a Bunch Of Disks)のように直列に接続して実現しても構わない。
 メモリ装置14はプログラム領域14pとデータ領域14dに分割されている。ただしこれらの領域は論理メモリ空間上で必ずしも明確な境界を持って分割されている必要はなく、この領域分け自体が便宜上であることに注意するべきである。
 このプログラム領域14pには、クライアント装置3から送信されてくる操作ログに基づいて、クライアント装置3で動作している操作ログ取得対象アプリケーション110の状態を判定するアプリ状態判定プログラム100と、操作ログの符号効率を評価する符号効率評価プログラム102と、指定された符号方式500およびシーケンスの出現頻度から符号表を生成する符号表生成プログラム104と、符号化された操作ログを符号表に基づいて逆変換する符号逆変換プログラム106とが格納されている。
 これらのプログラムはメモリ装置14に常に格納されている必要はなく、実行する際にストレージ装置16やあるいは通信線4を介して接続された別の装置からロードしてきても構わないし、コンパイルプログラムを有する様態であれば、実行する際にプロセッサ装置12が解釈できるネイティブコードにソースファイルから変換して、メモリ装置14に配置しても構わない。
 データ領域14dには、2つ以上の符号方式500が格納され、対象アプリケーション110操作ログ取得セッションにおける現在状態や符号表を管理するためのセッション管理領域600が配置されている。これらの符号方式500に関しては、他のプログラムと同様にストレージ装置16あるいは通信線4を介した別の装置から必要に応じてロードしてきても構わないし、専用の変換プログラムを有する様態であれば、他のプログラムに参照される際、動的に他の言語からネイティブコードに変換しても構わない。
 データ領域14d中のセッション管理領域600は、ある対象アプリケーション110が起動され、終了するまでの状態を管理するための領域で、セッションで使われている対象アプリケーション110の状態IDと符号表を管理している。以降、サーバ装置2におけるアプリケーションの現在状態および符号表の参照は、暗黙的にセッション管理領域600に問合せしているものとする。
 アプリ状態判定プログラム100は、操作ログを入力とし、その操作ログに含まれる状態変化を示すイベントを検知した際に前状態と後状態を出力するプログラムである。
 符号効率評価プログラム102は操作ログを入力とし、その操作ログの統計量を統計量DB22上で更新する機能と更新した統計量に基づいて、サーバ装置2が有する符号方式500のうち最も符号効率が高い符号方式500を評価する機能と、その符号効率評価機能により決定される符号方式500を統計量DB22上で更新する機能とを有するプログラムである。
 符号表生成プログラム104は操作ログの統計量と符号方式500を入力とし、操作あるいは順序に従った操作群と対応する符号の対である符号表を出力するプログラムである。以降順序に従った操作群をシーケンスと表記する。
 符号逆変換プログラム106は符号化された操作ログと符号表を入力とし、符号逆変換すなわち復号された操作ログを出力するプログラムである。以降、符号化された操作ログを符号化ログと表記する。
 ストレージ装置16は、クライアント装置3から送信されてくる操作ログとそこから抽出される統計量をデータベース化して半永続的に格納するための装置である。本明細書においてデータベースとは、レコード(1つ以上のデータを規則づけて構成したデータ群)の集合であるテーブルを管理するためのデータ管理機能であって、特定のテーブルに対するレコードの追加・削除・抽出・編集の4つの機能から構成されるデータ管理機能とする。
 一般的にストレージ装置16と言えば、HDDやSSDなどの大規模不揮発記録メディアを指すが、アプリケーションが許容する半永続保存が可能であれば、高速なDRAMなどの不揮発メモリでもよいし、アプリケーションが要求する時間内にデータベースの機能を実現できるならば、ブルーレイディスク(Bru-lay Disc:BD)などの更新可能光記録メディアを用いても構わないし、データベースが管理できるならば、CD-Rなどのライトワンスメディアを用いても構わない。さらには、メモリ装置14の容量に余裕があれば、メモリ装置14内にデータベース領域を配置して、そこに操作ログとその統計量をデータベース化して配置してもよい。あるいは通信インタフェース10を用いて接続された外部のストレージ装置16を利用してもよい。
 また、メモリ装置14と同様にストレージ装置16も必ずしも単一の装置から構成されている必要はなく、複数台のストレージ装置16を並列あるいは直列化して実現しても構わない。
 通信バス18は装置内の構成要素間でのデータ送受信を実現するための装置であり、CPUバスやアドレスバスなどの内部バスと、シリアルATA(Serial ATA)やPCI Expressなどの拡張バスなどを接続して構成される装置である。上記は一般的に有線の通信バス18であるが、配線の簡素化などを目的として無線の通信バス18で構成しても構わない。以降、サーバ装置2あるいはクライアント装置3内の装置間での通信において特に断りが無い場合は、暗黙的に通信バス18を介して送受信を実現することとする。
 クライアント装置3は、操作ログの取得対象となるアプリケーションが動作している装置であり、通常の計算機構成を備え、通信インタフェース10と、プロセッサ装置12と、メモリ装置14と、入力装置200と、出力装置220から構成される装置である。通信インタフェース10、処理部であるプロセッサ装置12、記憶部であるメモリ装置14については、サーバ装置2と同様の構成要素である。
 入力装置200はユーザの入力を装置が理解可能な電気などの物理信号に変換する装置であり、例えばキーボード、マウス、マイク、センサが挙げられる。入力装置200は、装置に備え付けである必要はなく、通信線4を介して接続してもよい。出力装置220は装置の出力を画像・音波などの人間が理解できる情報へ変換する装置である。例えばディスプレイ、プリンタ、プロッタ、スピーカ、モータが挙げられる。出力装置220も同様に、装置に備え付けである必要はなく、通信線4を介して接続してもよい。
 メモリ装置14上のプログラム領域14pには、操作ログ取得対象となる対象アプリケーション110プログラムと、対象アプリケーション110を監視してアプリケーションの操作ログを取得してログを符号化してサーバ装置2に送信する操作ログ取得プログラム108とが配置されている。対象アプリケーション110プログラムは一つでも良いし、複数個あっても構わない。またこれらのプログラムはサーバ装置2のプログラムと同様にメモリ装置14に常に格納されている必要はない。
 メモリ装置14上のデータ領域14dには、対象アプリケーション110から取得した操作ログが格納される操作ログ領域602と、サーバ装置2から受け取った対象アプリケーション110毎の符号表が格納されるまた符号表領域604とが配置されている。
 以上が第1の実施例による操作ログ格納システムの構成である。これらの構成要素の関連を示すため、図2を用いて、操作ログの生成から格納までの経路について説明する。図2は本実施例による操作ログ格納システムにおける操作ログの取得から格納までの経路を示す図の一例である。なお本明細書の図面においてPGとはプログラム(program)を指す。
 まず、図2において、クライアント装置3上の対象アプリケーション110での操作は、それぞれ操作ログ取得プログラム108によって取得される。この取得された操作ログ42は操作ログ領域604に一時的に格納される。操作ログ42が蓄積された時点で、操作ログ取得プログラム108は、符号表領域604に格納されている、それぞれのアプリケーションに応じた符号表を参照して操作ログ42を符号化し、符号化ログ42eを生成するとともに、符号化が完了した操作ログ42を操作ログ領域602から消去する。この符号化を開始する操作ログ42の蓄積量は、操作ログ取得プログラム108の設定によって決定される値で、クライアント装置3が操作ログ42の一時格納を許可しない様態においては、1操作ログ42ごとに符号化を実施する。符号化が完了した時点で、操作ログ取得プログラム108は通信インタフェース10を介して、符号化ログ42eをサーバ装置2へと送信する。
 サーバ装置2に送信された操作ログの符号化ログ42eはまず、サーバ装置2の符号逆変換プログラム106によって受信される。符号逆変換プログラム106は符号表40を参照して符号化ログ42eを逆変換する。この符号表40はクライアント装置3に送信した符号表と同様の符号表であり、セッションごとの管理は符号表生成プログラム104がセッション管理領域600を用いて実現している。符号逆変換プログラム106は逆変換した操作ログ42を最適符号生成機構900に送信する。
 最適符号生成機構900は最適符号方式500の決定ならびに符号表40の生成、操作ログ42とその統計量の記録を行う処理機構である。最適符号生成機構900の符号効率評価プログラム102は、各符号方式500について、受信した操作ログ42に対して適用した場合の符号効率を評価、また操作ログ42から統計量を抽出し、それらに対応する統計量DB22内のテーブルを更新する。その後、符号効率評価プログラム102はアプリケーション状態判定プログラム100に操作ログ42を送信する。
 アプリケーション状態判定プログラム100は受信した操作ログ42に含まれるイベント履歴より、アプリケーション状態の変更を判定する。変更があった場合、統計量DB22より適合する符号方式500を抽出し、符号表生成プログラム104に通知する。
 通知を受けた符号表生成プログラム104は、必要があれば符号方式500群から適切な符号方式500を選択し、符号表40を再生成してクライアント装置3に送信する。クライアント装置3が受信した符号表40は操作ログ取得プログラム108によって、符号表領域604で更新される。最後に、アプリケーション状態判定プログラム100は、操作ログ42を操作ログDB20に格納し、操作ログ42の格納が完了する。
 以上が操作ログ42の生成から格納までの大まかな過程である。以降、本実施例における、最適符号生成機構900での処理を、図3~図8を用いて詳しく説明する。
 図3は最適符号生成機構900の実装の一具体例を示す図である。以下、その要部構成の詳細について説明する。
<符号効率評価プログラム102動作>
 符号逆変換プログラム106から送信されてくる操作ログ42を受信した符号効率評価プログラム102は、統計量抽出ステップ780にて操作ログ42より統計量を抽出し、統計量DB22の操作出現事後確率記録テーブル306、シーケンス出現事後確率記録テーブル308およびシーケンス管理テーブル304の中で現在状態に対応するレコードをそれぞれ更新する。また符号効率評価ステップ782でサーバ装置2が有する符号方式500のうち、最高符号効率で更新した統計量を符号化可能な符号方式500を決定する。
 図4は操作ログ42の符号効率評価ステップ782の実装例であり、順次ステップS401~S406を説明する。まず、最適符号効率Rを1、カウンタiを1で初期化する。(S401)このカウンタiはサーバ装置2が有する各符号方式500の参照に使用するカウンタであり、変域を1からnとする。
 その後、サーバ装置2が有する符号方式500で受信した操作ログ42を符号化し、その符号長を基の操作ログ42の符号長で除算する。(S402)この除算結果が符号方式500による符号効率rであり、符号効率評価ステップ782はすべての符号方式500の中から最小のrを検出するアルゴリズムである。
 その後、rを現在のRと比較し、rがRより小さければ最適符号効率Rをrで更新する。(C400-YES,S403)また、符号方式500を最適符号方式(図示せず)とする。(S404)その後、カウンタiとサーバ装置2が有する符号方式500の数nと比較し、等しくなければ、すなわち全ての符号方式500の比較が終了していなければ、カウンタiを進め、次の符号方式500m(i+1)の符号効率rを算出する。(C401-NO,S405)
 全ての符号方式500の符号効率算出が完了していれば、符号効率評価ステップ782を終了し、最適符号方式を出力する。(S406)
 符号効率評価プログラム102は、符号効率評価ステップ782にて決定した最適符号方式を統計量DB22が管理している符号方式管理テーブル300で現在の状態に対応するレコードを更新する。その後、操作ログ42をアプリ状態判定プログラム100へ送信する。
<アプリ状態判定プログラム100の動作>
 図3に示したアプリ状態判定プログラム100はまず、状態遷移検知ステップ700にて、受信した操作ログ42を走査して、対象アプリケーション110の状態が変化したか検知し、変化があれば、前状態と現在状態のペア48を出力する。この状態遷移検知ステップ700について図5を用いて説明する。
 図5は対象アプリケーション110の状態遷移検知ステップ700の実装例である。同図において、まずカウンタiを1で初期化する。(S501)このカウンタは操作ログ42が含む各ログの参照に使用するカウンタであり、変域は1からnである。
 状態遷移検知ステップ700はカウンタiにより参照される操作ログ42が状態遷移イベントかどうか検知する。(C500)この状態遷移イベントとは、たとえばアプリケーションが有するチェックボックスなどのチェック状態の変化や、画面にIDが振られているアプリケーションならばそのIDの変化などであるし、アプリケーションなどにおいてはURLをIDとみなし、URLの変化すなわちページ遷移を状態遷移イベントとなる。状態遷移イベントを検知した場合、まず状態遷移イベントを検知したことを示すフラグを立てる。(C500-YES,S502)すなわち、対象アプリケーションがWebアプリケーションの場合、ページ遷移が状態遷移となる。
 その後、操作ログ42を統計量DB22のアプリ状態管理テーブル302に問い合わせて現在状態IDを取得する。(S503)もし、この状態が今まで出現したことがない未知の状態であったならば、統計量DB22に状態を新規に登録し、割り当てられたIDを取得する。(C501-NO,S504)
 その後、セッション管理領域600に格納された現在状態IDを前状態IDとして保持し、統計量DB22から取得した現在状態IDを新しい現在状態IDとしてセッション管理領域600に格納する。(S505)上記の操作を全ての操作ログ42に対して実行し、完了した時点で状態遷移検知フラグが立っている場合は、以上のステップで取得した現在状態IDと前状態IDを符号方式決定ステップ702へと送信し、状態遷移検知ステップ700を終了する。(C503-YES,S507,S508)
 図3の最適符号生成機構900の説明に戻る。アプリ状態判定プログラム100の符号方式決定ステップ702は、受信した現在状態IDと前状態ID48を、統計量DB22の符号方式管理テーブル300に問い合わせて符号方式を抽出する。その後、抽出した符号方式46を符号表生成プログラム104に送信し、符号方式の変更を通知する。
 ただしこのとき、前状態IDで使用していた符号方式の符号効率と現在状態IDで使用するべき符号方式の符号効率より、符号効率の変更による通信負荷軽減量が符号表送信による通信負荷量よりも大きいことを検知できる様態において、符号表交換による通信負荷軽減が見込めない場合は、符号方式決定ステップ702は、符号方式の変更を通知しなくてもよい。なお、解析が完了した操作ログ42は操作ログDB20に格納する。
 図3に示すように、符号方式の変更通知を受けた符号表生成プログラム104は、統計量DB22の操作出現事後確率テーブル306、シーケンス出現事後確率テーブル308およびシーケンス管理テーブル304と、変更された符号方式を参照して、符号量計算ステップ740において、符号表40を生成する。
 図6は符号表生成プログラム104によって生成される符号表40の一例である。符号表40は複数の処理が一つのユニークな符号に対応する表である。本実施例においては、2進表記の符号を割り当てているが、シーケンスと一意に対応するのであれば、別の符号でも構わない。
 ここで、図7および図8を用いて符号表を生成するための符号方式のアルゴリズムについて説明する。図7は符号方式の一例で、一般的にハフマン符号と呼ばれる符号方式である。図8は一般的にRange Coderと呼ばれる符号方式の亜種であり、一定のシーケンス長で符号の生成を中断する点で、元々のRange Coderと異なる。
 図7の符号方式のアルゴリズムにおいて、まず、統計量DB22のシーケンス出現事後確率テーブルを参照し、現在状態におけるシーケンスの出現事後確率リストSを抽出する。(S701)出現事後確率リストSはシーケンスとその出現確率のペアsから構成される集合である。
 その後符号表生成プログラム104はSと同サイズの符号表40Eを生成する。(S702)符号表40Eはシーケンスとそれに対応する符号のペアcから構成される集合である。
 まず、符号表生成プログラム104は全てのシーケンスに対応する符号を空文字で初期化する。(S703)その後、出現事後確率リストSをその出現確率に基づいて降順ソートする。(S704)
 ここから符号表40の生成手順に入る。まず、符号表生成プログラム104は最も小さい出現確率を有するs(i-1)とリスト上で次の要素(出現確率が次に小さい要素ではない)をs(i)選択する。(S705)初期状態においては降順ソートされているため、先頭の要素s(0)とその次の要素s(1)が選択される。そして、s(i-1)に含まれるシーケンスに対応するE内の符号cに’0’、s(i)に含まれるシーケンスに対応するE内の符号cに'1’をそれぞれ追記する。(S706)
 この「sに含まれるシーケンス」の意味を明らかにするため、ここでシーケンス出現情報加算操作S707について説明する。2つのsの加算は、sのシーケンスは集合として、sの出現確率は数値としてそれぞれ加算する。
 すなわち、
s(a)=({シーケンスA},0.1)
s(b)=({シーケンスB},0.05)
の加算操作s(a)+s(b)は
s(a)+s(b)=({シーケンスA,シーケンスB},0.15)
となる。このとき、「s(a)+s(b)に含まれるシーケンス」はシーケンスAとシーケンスBであるので、符号表40EのシーケンスAとシーケンスBに対応するそれぞれの符号に対して操作を行う。
 符号方式1(500a)の説明に戻る。s(i-1)に含まれるシーケンスに対応する符号に’0’,s(i)に含まれるシーケンスに対応する符号に’1’を付与した後、s(i-1)にs(i)をシーケンス出現情報加算操作により、加算する。(S707)
その後、s(i)を出現事後確率リストSより除外する。(S708)この操作により、Sのサイズは1小さくなる。この操作をSのサイズが1になるまで繰り返す。(C700)
 そして、最後に符号表40Eを出力すれば、それぞれのシーケンスに対してハフマン符号が割り当てられており、符号方式1(500a)による符号表の生成を終了する。(S709,S710)
 次に図8を用いて符号方式2(500b)による符号表生成について説明する。上述したように、図8は一般的にRange Coderと呼ばれる符号方式500の亜種であり、一定のシーケンス長で符号の生成を中断する点で、元々のRange Coderと異なる。
 まず、統計量DB22の符号方式管理テーブル300を参照して符号化シーケンス長Lを抽出する。(S801)Lはユーザによって与えられる一定の値でもよいし、符号効率評価プログラム102が数個のLに関して符号効率を評価し、その中で最適なLを見出すようにしてもよい。
 次に、統計量DB22の操作現事後確率テーブルを参照し、現在状態における操作の出現事後確率リストOを抽出する。(S802)操作事後確率リストOは操作とその出現確率のペアoから構成される集合である。
 その後操作出現事後確率リストOを出現確率に基づいて降順ソートする。(S803)その後符号表生成プログラム104は操作出現情報をL乗する。(S804)
 この操作について説明する。O同士の乗算操作(=2乗)はOに含まれるすべてのo同士を乗算する操作である。この操作を1度実行するたびにそのサイズはOに含まれる要素数倍になる。また、o同士の乗算操作は、操作は順序を維持して、集合として加算され、その出現確率は数値として乗算される。
 すなわち、その後符号表生成プログラム104はSと同サイズの符号表40Eを生成する。符号表40Eはシーケンスとそれに対応する符号のペアcから構成される集合である。
 まず、符号表生成プログラム104は全てのシーケンスに対応する符号を空文字で初期化する。
o(a)=({操作A,操作B},0.1)
o(b)=({操作C},0.05)
の乗算操作o(a)*o(b)は、
o(a)*o(b)=({操作A,操作B,操作C},0.005)
となる。ここで({操作A,操作B,操作C},0.005)≠({操作A,操作C,操作B},0.005)は異なるoであることに注意するべきである。
 この順序を有する操作群とはすなわちシーケンスであり、操作出現情報のL乗はある状態における全ての操作の出現確率が独立であると仮定して、発現しうる長さLのシーケンスの出現確率を計算する操作である。
 符号方式2(500b)の説明に戻る。OのL乗が含む全てのo(i)について、その出現確率p(i)とその次の要素o(i+1)までの累積出現確率P(i+1)に含まれる任意の数のうち、最小の符号長で表現できる数をc(i)とする。
 たとえば、
o(i)=({操作A,操作B,操作C},0.2)
o(i+1)=({操作A,操作C,操作B},0.1)であったならば、区間[p(i),P(i+1)]は[0.2,0.3]となり、その中で最小符号長で表現できる数は0.25=0.01(2進表記)である。本方式においては、全ての符号は小数で示されるため、小数点以下の有効数である’01’がシーケンス(操作A,操作B,操作C)に対応する符号として割り当てられる。
 上記の操作を全てのoに対して実施すれば、現在状態で発生しうる全ての長さLのシーケンスに対して符号が割り当てられ、符号表が完成する。(C800,S809、S810)
 符号方式2(500b)の説明の中で触れたが、符号方式2(500b)はその状態において、発生する全ての操作が独立であることを仮定した符号方式である。そのため、この仮定に沿うアプリケーションおよびユースケースならば、符号方式2(500b)は符号方式1(500a)に比べて一般的に高符号効率であることが知られている。その一方でたとえば、「操作Aと操作Bが排他である」などの制約を多く含む場合やシーケンス出現確率リストSが非常に長大である場合、符号方式1(500a)の符号効率は符号方式2(500b)に近づくあるいは良くなる。
 このようなユースケースは実際の対象アプリケーション110の解析だけでは、十分ではなく、実際の操作から取得してそれを評価しなければ検知できない点に本実施例の本質がある。
 以上、本実施例において、操作ログの統計から最適な符号方式を選択し、符号表を生成する方法について説明した。以降、図9を用いて本実施例による操作ログ格納システム1の全体の動作について説明する。
 図9は操作ログ格納システム1の動作の一例を示す図である。同図において、P1は初期化手続き、P2はログ取得手続き、P3は符号表更新手続きを示している。
<初期化手続きP1の処理>
 まずクライアント装置3の操作ログ取得プログラム108は対象アプリケーション110の監視を開始する(S900)。次にクライアント装置3において、対象アプリケーション110がユーザによって起動されると、操作ログ取得プログラム108は対象アプリケーション110の起動を検知する。(S901,S902)
 操作ログ取得プログラム108は初期状態を抽出して、サーバ装置2へと通知する(S903)。
 サーバ装置2へ送信された初期状態情報は、アプリケーション状態判定プログラム100が受信する。その後、統計量DB22に問い合わせて使用する符号方式を抽出する。このとき前状態は「状態なし」として問い合わせる。その後、アプリケーション状態判定プログラム100は、符号表生成プログラム104に抽出した符号方式を通知する(S904、S905)。
 符号表生成プログラム104は、通知を受けた符号方式500に従って符号表を生成505し、クライアント装置3に対して符号表を送信する(S906)。以上の初期化手続きにより、操作ログ取得プログラム108が操作ログを取得し、符号化して送信する準備が完了する。引き続き、ログを取得して、サーバ装置2へ送信する際の手続きについて説明する。
<ログ取得手続きP2の処理>
 次に初期化手続き終了後における、ログ取得手続きシーケンスについて述べる。クライアント装置3において、ユーザによって対象アプリケーション110の操作もしくはアプリケーション上でイベントが発生する度に、操作ログ取得プログラム108は操作ログを取得する (S907)。操作ログ取得プログラム108は、先に受信した符号表を参照し、取得した操作ログを符号化する(S908)。その後符号化した操作ログをサーバ装置2に対して送信する(S909)。この送信のタイミングは符号化した操作ログの情報量がクライアント装置3の操作ログ領域602において、予め決定しておいた閾値を超えるときに送信するようにしても良いし、符号化が成功するごとに送ってもよいし、クライアント装置3の操作ログ領域602が十分に用意された様態ならば、状態遷移が発生したタイミングで送信するようにしてもよい。
 サーバ装置2上の符号逆変換プログラム106は、クライアント装置3からログ受信し、セッション管理領域600に格納されている符号表を参照して符号化ログ42eを逆変換し、元の操作ログ42を生成する。(S910)。その後、この操作ログ42は、符号効率評価プログラム102へ送信される。
 符号効率評価プログラム102では、この操作ログ42に適用するべき符号効率の評価を行う。符号効率評価プログラム102は、まず、操作ログ42の統計量を計算し、統計量DB22を更新する(S911)。次に、効率評価として、符号方式500群を参照しながら、各符号方式を利用した場合の符号効率を計算し、もっとも高符号効率な方式を決定し、統計量DB22を更新する(782,S912)。
 次に操作ログ42は、アプリケーション状態判定プログラムに送信され、操作ログ42を元にアプリケーションの状態を判定し、状態が前状態から変化したかどうかを検知する(S913,700)。さらにアプリケーション状態判定プログラムは、操作ログ42を操作ログDB20に格納する(S914)。
 以上の手続きにより、操作ログをクライアント装置3上で符号化し、サーバ装置2上で逆変換と符号方式の最適化を実現したうえで操作ログを格納できることを示した。以降、更新した符号方式をクライアント上で更新する手続きについて説明する。
<符号表更新手続きP3の処理>
 上記の操作ログ取得手続きP2において、対象アプリケーション110の状態変化を検知した場合、符号表更新手続きP3が呼び出される。
この手続きにおいては、まずアプリ状態判定プログラム100が、前状態と現在状態を統計量DB22に問い合わせて、合致した符号方式を抽出する。
その後、符号方式を符号表生成プログラム104に通知する(S904,S905)。符号表生成プログラム104は、通知を受けた符号方式に従って符号表を再生成506し、クライアント装置3に対して符号表を送信する(S906)。
 なお上記の手続きは符号表の更新をアプリ状態遷移発生時に行っているが、より最適な符号効率を求めるアプリケーションにおいては、最高符号効率な符号方式が変化する度に更新しても良いし、別の事象を契機にしても良い。
 以上詳述した、第一の実施例による操作ログ格納システムによれば、対象アプリケーションの状態に適した、符号効率でサーバ装置とクライアント装置間のネットワーク負荷を低減できる。
  [実施例2]
 第一の実施例においては、対象アプリケーション110はクライアント装置3に予め格納されていたが、Webアプリケーションなどにおいては、サーバ装置2側に対象アプリケーション110があり、クライアント装置3が有するアプリケーション処理プログラムの要求に応じて、サーバ装置2から対象アプリケーション110を送信する様態もありうる。そのような実施態様を第二の実施例として以下説明する。
 図10は第二の実施例における操作ログ格納システム1において、サーバ装置2から対象アプリケーション110を送信する態様の一例を示す図である。
 同図において、操作ログ格納システム1は、操作ログの対象アプリケーション110と操作ログを格納するサーバ装置2と、操作ログ取得対象アプリケーション110を処理するクライアント装置3から構成される。本実施例において、サーバ装置2とクライアント装置3の装置構成は、第一の実施例の図1に示した例と同様である。
 すなわち、サーバ装置2のプログラム領域14pには、クライアント装置3から送信されてくる操作ログに基づいて、操作ログ取得対象アプリケーション110の状態を判定するアプリ状態判定プログラム100と、操作ログの符号効率を評価する符号効率評価プログラム102と、指定された符号方式500と、シーケンスの出現頻度から符号表を生成する符号表生成プログラム104と、符号化された操作ログを符号表に基づいて逆変換する符号逆変換プログラム106とが配置されている。本実施例においても、データ領域14dには、2つ以上の符号方式500が格納されている。
 また、本実施例のサーバ装置2のデータ領域14dには、操作ログ取得対象となる対象アプリケーション110のプログラムと、対象アプリケーション110を監視してアプリケーションの操作ログを取得してログを符号化してサーバ装置2に送信する操作ログ取得プログラム108とが格納されている。本実施例において、これらのプログラムは、クライアント装置3からサーバ装置2に要求がある場合にクライアント側に送信されることで利用されるため、第一の実施例とは異なり、サーバ装置2上のデータ領域14dに格納されている。なお、ストレージ装置16及びストレージ装置16内で保持されるDB20、22については第一の実施例と同様である。
 また、本実施例のクライアント装置3のメモリ装置14内のプログラム領域14pには、サーバ装置2の操作ログ取得対象アプリケーション110に対して要求を行うアプリケーション処理プログラム112が配置されている。
 このアプリケーション処理プログラム112は、他の対象アプリケーション110を読込み、動作させるプログラムであり、具体的にはWebブラウザなどである。Webブラウザを例にとれば、別の装置あるいはクライアント装置3自身が有する、HTML(Hyper Text Markup Language)やJavaScript(Javaは登録商標)などで表現されるWebページをHTTP(Hyper Text Transfer Protocol)などのプロトコルに従って取得し、Webブラウザが有するレンダリングエンジンやスクリプトエンジンを用いて、Webページを可視化、ユーザに提供するプログラムである。アプリケーション処理プログラム自体に改変がなくとも、読込む対象アプリケーション110によって振る舞いが変わることが特徴であり、本実施例は、対象アプリケーション110に操作ログ取得プログラム108と符号表40を埋込んで送信し、クライアント装置3上での操作ログ42を取得することを目的とした様態について説明する。
 以上、図10を用いて説明したシステム構成は、初期状態を示しているため、クライアント装置3のメモリ装置14上にはアプリケーション処理プログラム以外の構成要素は無い。以降、図11を用いてアプリケーション処理プログラムによる、サーバ装置2に対して対象アプリケーション110要求後の操作ログ取得から格納までの経路について説明する。
 図11は第二の実施例による操作ログ格納システム1における操作ログ42の取得から格納までの操作ログ42の経路を示す図の一例である。
 まず、クライアント装置3上のアプリケーション処理プログラム112は、サーバ装置2側に対象アプリケーション110の取得を要求する。
 取得要求を受信したサーバ装置2は、対象アプリケーション群110中の該当する対象アプリケーション110に、操作ログ取得プログラム108と対象アプリケーション110の初期状態に適した符号方式で生成された符号表40を対象アプリケーション110に埋め込んで送信する。アプリケーション処理プログラム112は、サーバ装置2から、操作ログ取得プログラム108と符号表40が埋め込まれた対象アプリケーション110を受信し、アプリケーション処理プログラム112が管理するメモリ上に保持され、アプリケーション処理プログラム112の内部で動作を開始する。
 以降、アプリケーション処理プログラム112に対するユーザの操作は、クライアント装置3のメモリ装置14にロードされた対象アプリケーション110a、110bでの操作は、クライアント装置3上のメモリ装置14にロードされた操作ログ取得プログラム108によって取得され、アプリケーションに応じた符号表40a、40bを基に符号化され、通信インタフェース10を介して、サーバ装置2へと送信される。
 生成、送信された符号化ログ42eはサーバ装置2の符号逆変換プログラム106で受信され、符号化ログ42eを、符号表40を参照して逆変換し、操作ログ42へと復号する。その後、符号逆変換プログラム106は逆変換した操作ログ42を最適符号生成機構900に送信する。
 最適符号生成機構900の符号効率評価プログラム102は、符号方式500群を参照して得た各符号方式について、受信した操作ログ42に対して適用した場合の符号効率を評価、また操作ログ42から統計量を抽出し、それらに対応する統計量DB22内のテーブルを更新する。その後、符号効率評価プログラム102はアプリケーション状態判定プログラム100に操作ログ42を送信する。
 アプリケーション状態判定プログラム100は操作ログ42に含まれるイベント履歴より、アプリケーション状態の変更を判定する。変更があった場合、統計量DB22より適合する符号方式を抽出し、符号表生成プログラム104に通知する。通知を受けた符号表生成プログラム104は、必要があれば符号方式500群から適切な符号方式を選択し、符号表40を再生成してクライアント装置3に送信する。クライアント装置3が受信した符号表40は操作ログ取得プログラム108によって、符号表領域で更新される。
 最後に、アプリケーション状態判定プログラム100は、操作ログ42を操作ログDB20に格納し、操作ログ42の格納が完了する。以上が第二の様態における対象アプリケーション110の要求から、操作ログ42の生成、格納までの大まかな過程である。
 本実施例においては、第一の実施例と比較すると、初期の操作ログ取得プログラム108および符号表40の埋め込みおよび対象アプリケーション110のロードを除けば、残りの過程は第一、第二それぞれの実施例で完全に等しいといえる。これは、各プログラムがいづれの実施例においても利用可能であることを意味しており、本発明の汎用性を示すものである。
 以降、図12を用いて、第一の実施例と動作が異なる、対象アプリケーション110への操作ログ取得プログラム108および符号表40の埋め込みを含む処理について説明する。
 図12は第二の実施例における操作ログ格納システム1の動作例である。
<初期化手続き P1の処理>
 まずクライアント装置3のアプリケーション処理プログラム112はサーバ装置2の対象アプリケーション群110中のログ取得対象アプリケーションに対して、取得要求を実施する(S1200)。要求を受けた対象アプリケーションはアプリケーション状態判定プログラム112に通知を行い、通知を受けたアプリケーション状態判定プログラム112は、通知を基に対象アプリケーションの状態を検知し、現在の状態を統計量DB22に問い合わせて現在の状態に合致した符号方式を抽出し、符号表生成プログラム104に符号方式を通知する(S903,S904,S905)。
 符号表生成プログラム104は、通知を受けた符号方式に従って符号表40を生成505し、符号表40を対象アプリケーション110に埋め込む(S1201)。さらに操作ログ取得プログラム108を対象アプリケーション110に埋め込み、クライアント装置3に対して対象アプリケーション110を送信する(S1202、S1203)。
 以上の手続きにより、クライアント装置3およびサーバ装置2で動作しているプログラムの状態は第一の実施例と同等になる。そのため、ログ取得手続きに関しては、クライアント装置3側に送られた対象アプリケーション110及び操作ログ取得プログラム108及び符号表40によって、第一の実施例の図7に示されるログ取得手続きP2と同様に、ログ取得手続きを実施できる。
 以降、符号表40の更新手続きP3について説明する。
<符号表更新手続きP3の処理>
 本実施例においては、対象アプリケーション110の状態遷移時には、サーバ装置2に再度対象アプリケーション110の取得要求が実施されるものとする。状態遷移時にこのような手法をとらない様態においては、第一の実施例と同じ方法で符号表40を更新すればよい。
 ログ取得手続きP2の処理において、アプリ状態判定プログラム100が状態遷移を検知した場合には、前状態と現在状態を統計量DB22に問い合わせて、合致した符号方式500を抽出する。(S904)その後、抽出した符号方式を符号表生成プログラム104に通知する。(S905)。
 符号表生成プログラム104は、通知を受けた符号方式に従って符号表40を再生成506する。次にサーバ装置2は、生成した符号表40と操作ログ取得プログラム108を埋め込んだ対象アプリケーション110をクライアント装置3に送信し、ログ取得が可能な状態にする。(S1201,S1202,S1203)。
 上記の手続きにより、第二の実施例においても第一の実施例と同じ操作で軽通信路負荷の操作ログ格納を実現でき、また対象アプリケーション群をサーバ装置側で保持するため、低クライアント負荷を図ることができる。
 本発明はアプリケーションの操作ログの取得、格納システムを構成する装置間の通信量、負荷削減技術として有用である。
1 操作ログ格納システム
2 サーバ装置
3 クライアント装置
4 通信線
10 通信インタフェース
12 プロセッサ装置
14 メモリ装置
16 ストレージ装置
18 通信バス
20 操作ログデータベース
22 統計量データベース
40 符号表
42 操作ログ
200 入力装置
220 出力装置
500 符号方式群
900 最適符号生成機構

Claims (15)

  1. 操作ログを取得するクライアント装置と前記操作ログを格納するサーバ装置とから構成される操作ログ格納システムであって、
    前記クライアント装置と前記サーバ装置はそれぞれ、プログラム、データを格納する記憶部と、前記プログラムを処理する処理部と、通信インタフェース部とから構成され、
    前記サーバ装置の前記記憶部は、前記通信インタフェース部を介して、前記クライアント装置から送信されてくる前記操作ログと、前記操作ログを符号化するための複数の符号方式と、受信した前記操作ログに基づいて前記クライアント装置上で処理される前記プログラムの状態を推定し、推定されたプログラム状態に基づいて、符号表を生成する符号表生成プログラムを記憶し、
    前記クライアント装置の前記記憶部は、前記サーバ装置から送信された前記符号表と、前記プログラムとしての対象アプリケーションと、前記対象アプリケーションに対する操作ログを取得する操作ログ取得プログラムと、前記操作ログ取得プログラムが取得した前記操作ログを、前記サーバ装置から受信した前記符号表に基づき符号化する符号変換プログラムを記憶し、
    前記クライアント装置の前記処理部は、前記符号変換プログラムにより符号化した前記操作ログを前記サーバ装置に送信し、
    前記サーバ装置の前記処理部は、受信した前記操作ログを前記サーバ装置の前記記憶部に格納する、
    ことを特徴とする操作ログ格納システム。
  2. 請求項1に記載の操作ログ格納システムであって、
    前記対象アプリケーションは、前記サーバ装置から、前記クライアント装置に送信されたものである、
    ことを特徴とする操作ログ格納システム。
  3. 請求項1に記載の操作ログ格納システムであって、
    前記サーバ装置の前記記憶部は、前記操作ログに基づいて、前記クライアント装置上で処理されている前記プログラムの前記プログラム状態を推定するプログラム状態推定プログラムを記憶し、
    前記サーバ装置の前記処理部は、前記プログラム状態推定プログラムを実行することにより、前記プログラム状態を推定する、
    ことを特徴とする操作ログ格納システム。
  4. 請求項1に記載の操作ログ格納システムであって、
    前記サーバ装置の前記記憶部は、前記操作ログの符号化効率を評価する符号効率評価プログラムを記憶し、
    前記サーバ装置の前記処理部は、前記符号化効率評価プログラムを実行することに、前記符号化方式の効率を評価し、前記符号表生成プログラムを実行する際に、当該評価結果を用いて前記符号表を生成する、
    ことを特徴とする操作ログ格納システム。
  5. 請求項1に記載の操作ログ格納システムであって、
    前記プログラムとして前記対象アプリケーションは、Webアプリケーションであり、
    前記サーバ装置の前記処理部は、前記プログラム状態の遷移を示す前記Webアプリケーションのページ遷移時に、前記符号表生成プログラムを実行して前記符号表を生成する、
    ことを特徴とする操作ログ格納システム。
  6. 請求項1に記載の操作ログ格納システムであって、
    前記サーバ装置の前記記憶部に、前記クライアント装置から送信されてくる、符号化された前記操作ログを逆変換する符号逆変換プログラムを備え、
    前記サーバ装置の前記処理部は、受信した、符号化された前記操作ログに対し前記符号逆変換プログラムを実行して逆変換する、
    ことを特徴とする操作ログ格納システム。
  7. クライアント装置で取得された操作ログを収集、格納するためのサーバ装置であって、
    プログラム、データを格納する記憶部と、前記プログラムを処理する処理部と、通信インタフェース部とから構成され、
    前記記憶部は、前記通信インタフェース部を介して、前記クライアント装置から送信されてくる前記操作ログと、前記操作ログを符号化するための複数の符号方式と、前記操作ログに基づいて前記クライアント装置上で処理される前記プログラムの状態を推定し、推定されたプログラム状態に基づいて、符号表を生成する符号表生成プログラムと、前記クライアント装置で前記操作ログを収集する対象アプリケーションを記憶し、
    前記処理部は、前記符号表生成プログラムを実行することにより、前記操作ログに基づいて前記クライアント装置上で処理される前記プログラムの状態を推定し、推定されたプログラム状態に基づいて、複数の前記符号方式の一つを選定して符号表を生成し、前記クライアント装置に前記符号表を送信し、前記クライアント装置から受信した前記操作ログを前記記憶部に順次格納する、
    ことを特徴とするサーバ装置。
  8. 請求項7に記載のサーバ装置であって、
    前記処理部は、前記クライアント装置からの取得要求に対応し、前記記憶部に記憶する前記対象アプリケーションを前記クライアント装置に送信する、
    ことを特徴とするサーバ装置。
  9. 請求項8に記載のサーバ装置であって、
    前記処理部は、前記クライアント装置から、前記対象アプリケーションの取得要求を受信した際、前記対象アプリケーションの前記プログラム状態に合致する前記符号方式を抽出する、
    ことを特徴とするサーバ装置。
  10. 請求項8に記載のサーバ装置であって、
    前記処理部は、前記クライアント装置から、前記対象アプリケーションの取得要求を受信した際、前記対象アプリケーションの前記プログラム状態に従い前記符号方式を抽出し、抽出した前記符号方式に基づき前記符号表を生成し、前記クライアント装置に前記対象アプリケーションを送信する際、生成した前記符号表を埋込んで送信する、
    ことを特徴とするサーバ装置。
  11. 請求項8に記載のサーバ装置であって、
    前記サーバ装置の前記記憶部は、前記操作ログに基づいて、前記クライアント装置上で処理されている前記プログラムの前記プログラム状態を推定するプログラム状態推定プログラムを記憶し、
    前記サーバ装置の前記処理部は、前記プログラム状態推定プログラムを実行することにより、前記プログラム状態を推定する、
    ことを特徴とするサーバ装置。
  12. 請求項8に記載のサーバ装置であって、
    前記サーバ装置の前記記憶部は、前記操作ログの符号化効率を評価する符号効率評価プログラムを記憶し、
    前記サーバ装置の前記処理部は、前記符号化効率評価プログラムを実行することに、前記符号化方式の効率を評価し、前記符号表生成プログラムを実行する際に、当該評価結果を用いて前記符号表を生成する、
    ことを特徴とするサーバ装置。
  13. プログラム、データを格納する記憶部と、前記プログラムを処理する処理部を備え、クライアントで取得されたプログラムの操作ログを収集、格納するサーバの前記処理部で実行される操作ログ格納プログラムであって、
    前記処理部を、
    前記通信インタフェース部を介して、前記クライアント装置から送信される前記操作ログを受信し、
    受信した前記操作ログに基づいて前記クライアント装置上で処理される前記プログラムの状態を推定し、
    推定されたプログラム状態に基づいて、前記操作ログを符号化する符号表を生成し、
    生成した前記符号表を前記クライアント装置に送信し、
    受信した前記操作ログを順次格納する、
    よう実行させることを特徴とする操作ログ格納プログラム。
  14. 請求項13に記載の操作ログ格納プログラムであって、
    前記クライアント装置で前記操作ログを収集する前記プログラムがWebアプリケーションの場合、
    前記処理部を、
    前記Webアプリケーションのページ遷移時に、前記符号表を生成する、
    よう実行させることを特徴とする操作ログ格納プログラム。
  15. 請求項13に記載の操作ログ格納プログラムであって、
    前記処理部を、
    前記クライアント装置から、前記操作ログを収集する前記プログラムである対象アプリケーションの取得要求を受信した際、前記対象アプリケーションの前記プログラム状態に合致する前記符号方式を抽出し、
    抽出した前記符号方式に基づき、前記符号表を生成し、
    前記クライアント装置に前記対象アプリケーションを送信する際、前記符号表を埋込んで送信する、
    よう実行させることを特徴とする操作ログ格納プログラム。
PCT/JP2011/052878 2010-10-14 2011-02-10 操作ログ格納システム、装置、およびプログラム WO2012049863A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/820,227 US20130198272A1 (en) 2010-10-14 2011-02-10 Operation log storage system, device, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-231771 2010-10-14
JP2010231771A JP5525410B2 (ja) 2010-10-14 2010-10-14 操作ログ格納システム、装置、およびプログラム

Publications (1)

Publication Number Publication Date
WO2012049863A1 true WO2012049863A1 (ja) 2012-04-19

Family

ID=45938103

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/052878 WO2012049863A1 (ja) 2010-10-14 2011-02-10 操作ログ格納システム、装置、およびプログラム

Country Status (3)

Country Link
US (1) US20130198272A1 (ja)
JP (1) JP5525410B2 (ja)
WO (1) WO2012049863A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013187105A1 (ja) * 2012-06-14 2013-12-19 日本電気株式会社 ファイルアクセスログ通信システム、ファイルアクセスログ通信方法、及びプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9740883B2 (en) * 2011-08-24 2017-08-22 Location Labs, Inc. System and method for enabling control of mobile device functional components
US9407492B2 (en) 2011-08-24 2016-08-02 Location Labs, Inc. System and method for enabling control of mobile device functional components
US9819753B2 (en) 2011-12-02 2017-11-14 Location Labs, Inc. System and method for logging and reporting mobile device activity information
US9489531B2 (en) 2012-05-13 2016-11-08 Location Labs, Inc. System and method for controlling access to electronic devices
JP2014016758A (ja) * 2012-07-09 2014-01-30 Nippon Telegr & Teleph Corp <Ntt> ログデータ解凍装置、ログデータ圧縮装置、ログデータ解凍プログラム及びログデータ圧縮プログラム
US9591452B2 (en) 2012-11-28 2017-03-07 Location Labs, Inc. System and method for enabling mobile device applications and functional components
US9554190B2 (en) 2012-12-20 2017-01-24 Location Labs, Inc. System and method for controlling communication device use
US10560324B2 (en) 2013-03-15 2020-02-11 Location Labs, Inc. System and method for enabling user device control
KR102168212B1 (ko) * 2014-04-15 2020-10-21 엘에스일렉트릭(주) 어플리케이션 로그 데이터의 처리 장치 및 그 방법
US10148805B2 (en) 2014-05-30 2018-12-04 Location Labs, Inc. System and method for mobile device control delegation
US9661126B2 (en) 2014-07-11 2017-05-23 Location Labs, Inc. Driving distraction reduction system and method
US9749458B2 (en) 2014-08-11 2017-08-29 Location Labs, Inc. Driving without distraction support system
JP6460961B2 (ja) * 2015-11-19 2019-01-30 日本電信電話株式会社 データ圧縮収集システムおよび方法
US11055273B1 (en) * 2016-11-04 2021-07-06 Amazon Technologies, Inc. Software container event monitoring systems
JP7159016B2 (ja) * 2018-11-20 2022-10-24 キヤノン株式会社 ネットワーククライアント及びその制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333943A (ja) * 1997-05-27 1998-12-18 Mitsubishi Electric Corp 計算機システムのトレース・ログ処理方法とその処理装置
JP2002333998A (ja) * 2001-05-09 2002-11-22 Fujitsu Ltd 仮想マシン内部情報取得システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3490256B2 (ja) * 1997-06-12 2004-01-26 三菱電機株式会社 エージェント方式
EP1705562A1 (en) * 2005-03-18 2006-09-27 Orange SA Applications server and method of providing services
GB2427803A (en) * 2005-06-29 2007-01-03 Symbian Software Ltd E-mail/text message compression using differences from earlier messages or standard codebooks with specific message supplements
US20080195748A1 (en) * 2007-02-09 2008-08-14 Melodeo Inc. Data delivery
JP2011002870A (ja) * 2009-06-16 2011-01-06 Hitachi Ltd ウェブアプリケーションの操作性評価・改善方法およびウェブシステム
US8615703B2 (en) * 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory
JP5531362B2 (ja) * 2010-06-11 2014-06-25 株式会社日立製作所 Webページ供給システム、Webページ供給方法、及び制御プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10333943A (ja) * 1997-05-27 1998-12-18 Mitsubishi Electric Corp 計算機システムのトレース・ログ処理方法とその処理装置
JP2002333998A (ja) * 2001-05-09 2002-11-22 Fujitsu Ltd 仮想マシン内部情報取得システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013187105A1 (ja) * 2012-06-14 2013-12-19 日本電気株式会社 ファイルアクセスログ通信システム、ファイルアクセスログ通信方法、及びプログラム

Also Published As

Publication number Publication date
JP2012084074A (ja) 2012-04-26
US20130198272A1 (en) 2013-08-01
JP5525410B2 (ja) 2014-06-18

Similar Documents

Publication Publication Date Title
JP5525410B2 (ja) 操作ログ格納システム、装置、およびプログラム
CN103098035B (zh) 存储系统
CN101488104B (zh) 一种实现高效安全存储的系统和方法
US20130179413A1 (en) Compressed Distributed Storage Systems And Methods For Providing Same
CN102737205B (zh) 保护包括可编辑元数据的文件
US11424760B2 (en) System and method for data compaction and security with extended functionality
CN110879807A (zh) 用于快速地并且有效地访问数据的文件格式
US11385794B2 (en) System and method for data compaction and security using multiple encoding algorithms
US11868616B2 (en) System and method for low-distortion compaction of floating-point numbers
US11928335B2 (en) System and method for data compaction utilizing mismatch probability estimation
US12061794B2 (en) System and method for multiple pass data compaction utilizing delta encoding
CN110874346B (zh) 浮点值的压缩方案
US12019532B2 (en) Distributed file system performance optimization for path-level settings using machine learning
US20240080040A1 (en) System and method for data storage, transfer, synchronization, and security using automated model monitoring and training
CN110188160B (zh) 数据存储方法和数据读取方法
US20230283292A1 (en) System and method for data compaction and security with extended functionality
JP2021111882A (ja) ストレージシステム、及び、記憶制御方法
CN112054805B (zh) 一种模型数据压缩方法、系统及相关设备
CN108241640B (zh) 一种分布式的文件存储方法
JP7534239B2 (ja) 演算装置、圧縮方法
US20240248602A1 (en) System and method for codebook management based on data source grouping
US20240275400A1 (en) Event-driven data transmission using codebooks with protocol adaption
CN116384497B (zh) 量子计算实验结果的读写系统、相关方法、装置及设备
US11967974B2 (en) System and method for data compression with protocol adaptation

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: 11832306

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13820227

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11832306

Country of ref document: EP

Kind code of ref document: A1