WO2017179163A1 - アプリケーション分析システム、方法、及び、プログラム - Google Patents

アプリケーション分析システム、方法、及び、プログラム Download PDF

Info

Publication number
WO2017179163A1
WO2017179163A1 PCT/JP2016/061971 JP2016061971W WO2017179163A1 WO 2017179163 A1 WO2017179163 A1 WO 2017179163A1 JP 2016061971 W JP2016061971 W JP 2016061971W WO 2017179163 A1 WO2017179163 A1 WO 2017179163A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
application
analysis
information
data
Prior art date
Application number
PCT/JP2016/061971
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 JP2018511829A priority Critical patent/JPWO2017179163A1/ja
Priority to PCT/JP2016/061971 priority patent/WO2017179163A1/ja
Publication of WO2017179163A1 publication Critical patent/WO2017179163A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Definitions

  • the present invention relates generally to computer systems, for example, application analysis.
  • Patent Document 1 discloses a method of automatically extracting a difference in the processing method that is a cause of a decrease in business efficiency from history data obtained by a business system.
  • Patent Document 1 reads out execution history data of a process related to one case from a history database, calculates a work efficiency index for the case, and relates to a plurality of features indicating how to proceed the process for each category that is a classification destination. Determine the classification ratio of the project, perform these for all projects, and calculate the distribution of business efficiency index before and after classification for each feature from the business efficiency index for all projects and the classification ratio for each category for each feature. Then, the amount of change in the variation of the business efficiency index before and after the classification for each feature is calculated from the classification ratio for each category for each feature and the distribution of the business efficiency index before and after the classification for each feature.
  • an object of the present invention is to make it possible to easily identify a module that affects an index related to an application.
  • An application analysis system is a system that analyzes an application including a plurality of modules, and includes a processor and a memory.
  • the memory includes module information including information related to data input / output by each module during execution of the application, and analysis information including information related to data accessed by an analysis program that calculates an index related to the application.
  • the processor Based on the module information and the analysis information, the processor identifies a module of interest that affects the index variation from among the plurality of modules.
  • FIG. 1 shows a configuration example of an application analysis system according to a first embodiment.
  • history table is shown.
  • the structural example of a log collection setting table is shown.
  • the structural example of a module access history table is shown.
  • 4 shows a configuration example of a module relation table according to the first embodiment. It is a flowchart which shows the process example of a module specific
  • An example of the analysis screen is shown.
  • 9 shows a configuration example of an application analysis system according to a second embodiment. It is a structural example of a KPI (Key Performance Indicator) change table. It is an example of the module related table which concerns on Example 2.
  • FIG. It is an example of a structure of an effective countermeasure table. It is a flowchart which shows the example of a production
  • information may be described using the expression “xxx table” or “xxx list”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” or the “xxx list” can be called “xxx information”.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using at least one of a storage resource (for example, a memory) and a communication interface device, the subject of the processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit.
  • the computer program may be installed from a program source.
  • the program source may be a program distribution server or a storage medium (for example, a portable storage medium).
  • FIG. 1 shows a configuration example of an application analysis system 1 according to the first embodiment.
  • the execution device 100 executes an application related to business execution.
  • the execution device 100 may be called a business system.
  • the application may be composed of a plurality of modules 111 (for example, modules A, B, and C).
  • the plurality of modules 111 may be configured on the application middleware 112.
  • the execution device 100 manages application data 122 accessed from the plurality of modules 111.
  • the application data 122 may be managed on the data management middleware 121.
  • the execution device 100 manages the log data 123 output from the plurality of modules 111.
  • the log data 123 may be managed on the data management middleware 121.
  • the plurality of modules 111 may read / write and delete the application data 122 via the application middleware 112 and the data management middleware 121 in order to realize the function of the application. Further, the plurality of modules 111 may output (write) the log data 123 via the application middleware 112 or the data management middleware 121 so that the execution state of the application can be confirmed.
  • the execution apparatus 100 executes an analysis job 101 that analyzes the execution result of the application (a plurality of modules 111).
  • the analysis job 101 may be configured on the analysis middleware 102.
  • the analysis job 101 may analyze application execution results with reference to the application data 122, the log data 123, and the like.
  • the analysis apparatus 160 may submit the analysis job 101 to the execution apparatus 100 for execution. Further, the analysis device 160 may collect information related to the execution result of the application in the execution device 100 (such as application data 122 and log data 123) and information related to the analysis result of the analysis job 101. Further, the analysis device 160 may identify a module (referred to as “attention module”) that affects the fluctuation of an index (for example, KPI) related to the performance of an application based on the collected information.
  • a module referred to as “attention module” that affects the fluctuation of an index (for example, KPI) related to the performance of an application based on the collected information.
  • the execution device 100 and the analysis device 160 may each be a computer having a CPU, a memory, a storage device, and the like. Various functions of the execution device 100 and the analysis device 160 may be realized by executing a program stored in the memory or the storage device by the CPU. Examples of the memory are DRAM (Dynamic Random Access Memory), MRAM (Magnetic Responsive Random Access Memory), and FeRAM (Ferroelectric Random Access Memory). Examples of storage devices are SSD (Solid State Drive) and HDD (Hard Disk Drive).
  • the analysis device 160 includes a collection unit 150 that collects various data from the execution device 100, a storage unit 141 that stores data collected by the collection unit 150, and a module 111 and a KPI based on the data stored in the storage unit 141. It has a relation identifying unit 130 that identifies the relation.
  • the collection unit 150 may include a change history management unit 151, a log collection unit 152, an analysis access history acquisition unit 154, and a module access history acquisition unit 153.
  • the change history management unit 151 manages the change history of each module 111 using the application change history table 200 (see FIG. 2).
  • the log collection unit 152 collects log data 123 output by each module 111 at the time of execution based on the setting contents of the log collection setting table 250 (see FIG. 3).
  • the log collection unit 152 may operate as an independent process.
  • the analysis access history acquisition unit 154 acquires a history of accessing data in the data management middleware 121 when the analysis job 101 performs analysis (referred to as “analysis access history”) and stores it in the analysis access history table 350 (see FIG. 5). To do.
  • the analysis job 101 may be executed in response to an instruction from the input unit 131.
  • the SQL statement issued to the data management middleware 121 by the analysis job 101 may be recorded in the analysis access history.
  • the module access history acquisition unit 153 acquires a history of accessing data in the data management middleware 121 when the module 111 is executed (referred to as “module access history”) and stores it in the module access history table 300 (see FIG. 4). .
  • the SQL statement issued by the module 111 to the data management middleware 121 may be recorded in the module access history.
  • the method for the analysis job 101 or the module 111 to access the data management middleware 121 is not limited to SQL, and may be, for example, access by a predetermined program or access by an XML (Extensible Markup Language) parser.
  • the application change history table 200, the log collection setting table 250, the analysis access history table 350, and the module access history table 300 may be held in the storage unit 141.
  • the association identification unit 130 may include an input unit 131, a module identification unit 132, a matching unit 133133, and an output unit 134.
  • the input unit 131 receives an input from a user of the analysis device 160 (see FIG. 9).
  • the module identification unit 132 identifies a module (a module of interest) that affects the KPI variation based on the module access history table 350 and the analysis access history table 300. This makes it possible to know which module is affecting the variation of KPI.
  • the matching unit 133 generates a module association table 700 (see FIG. 6) that associates the module of interest identified by the module identification unit 132 with the change history of the module of interest. As a result, it is possible to know which change of which module has an influence on the variation of the KPI.
  • the output unit 134 presents the execution results of the module specifying unit 132 and the matching unit 133, that is, information indicating the relationship between the module and the KPI to the user (see FIG. 9).
  • FIG. 2 shows a configuration example of the application change history table 200.
  • the application change history table 200 may include a date 201, a module management ID 202, a module name 203, and a change type 204 as data items.
  • the module management ID 202 stores an identifier of an entry in the table 200.
  • the date and time 201 stores the date and time when the change type 204 was changed in the module with the module name 203.
  • the date and time 201 may store the date and time when the entry of the module management ID 202 is registered in the table 200.
  • the module name 203 stores the name of the changed module.
  • the change type 204 stores information indicating what changes have been made to the module with the module name 203.
  • the change type 204 “code” indicates that the program code of the module having the module name 203 has been changed.
  • the change type 204 “parameter” indicates that the parameter of the module having the module name 203 has been changed.
  • the application change history table 200 may be held in the storage unit 141 and managed by the change history management unit 151.
  • the change history management unit 151 may add an entry to the application change history table 200 each time the module 111 is deployed.
  • the entries of the application change history table 200 may be arranged in the order of date / time 201.
  • the modules executed on the application middleware 112 at the time of entry 207 are module A (entry 207) and module B (entry 206). Further, it can be seen that module A has been modified (corrected) at the time of entry 205 and then further modified at the time of entry 207.
  • FIG. 3 shows a configuration example of the log collection setting table 250.
  • the log collection setting table 250 may include a module management ID 251, a file name 252, a format 253, a table name 254, and a column name 255 as data items.
  • the module management ID 251 stores the module management ID 202 of the application change history table 200.
  • the file name 252 stores the name of the file output by the module with the module management ID 251.
  • the format 253 stores information for dividing the data of each line described in the file with the file name 252 into a plurality of column data. For this information, a regular expression or the like may be used.
  • the name of the table that stores the column data divided based on the format 253 is stored.
  • the column name 255 the column name of the storage destination of each column data divided based on the format 253 in the table of the table name 254 is stored.
  • the log collection unit 152 may divide the data of each line of the file (252) output by the module (251) into a plurality of column data based on the format (213).
  • the log collection unit 152 may store the column data in each column (255) of the table (254) of the data management middleware 121.
  • the entry 256 in FIG. 3 indicates that the character string up to the first blank specified in the format 253 is stored in the column name 255 “user” of the table name 254 “access log”.
  • FIG. 4 shows a configuration example of the module access history table 300.
  • the module access history table 300 may include a date and time 301, a module management ID 302, and an SQL statement 303 as data items.
  • the date and time 301 stores the date and time when the module with the module management ID 302 executed the contents of the SQL statement 303.
  • the module management ID 302 stores the module management ID 202 of the application change history table 200.
  • an SQL statement indicating information regarding which data the module of the module management ID 302 has accessed at the time of execution is stored.
  • the module management ID “ID002” (module B) refers to the column name “purpose type” of the table name “user” included in the application data 122 (access). Indicates that
  • FIG. 5 is an example of the analysis access history table 300.
  • the analysis access history table 350 may include a date and time 351, an analysis job ID 352, a KPI 353, and an SQL sentence 354 as data items.
  • the date and time 351 stores the date and time when the analysis job 101 with the analysis job ID 352 executed the contents of the SQL statement 354.
  • an identifier of the analysis job 101 is stored.
  • the name of the KPI is stored.
  • the KPI 352 may store a name input by the user.
  • an SQL statement indicating information regarding which data the analysis job 101 of the analysis job ID 352 accessed at the time of analysis is stored.
  • FIG. 6 shows a configuration example of the module related table 700.
  • the module relation table 700 may have an analysis job ID 701, a module management ID 702, and a matching type 703 as data items.
  • the analysis job ID 352 of the analysis access history table 300 is stored.
  • the module management ID 702 of the module access history table 300 is stored.
  • the matching type 703 stores information indicating how the analysis job 101 with the analysis job ID 701 and the module 111 with the module management ID 702 are accessing the same data. For example, the following “W”, “R”, and “P” information may be stored in the matching type 702.
  • the analysis job 101 with the analysis job ID 701 refers to the data written by the module 111 with the module management ID 702.
  • the data referred to by the module management ID 702 is also referred to by the analysis job ID 701.
  • the module 111 with the module management ID 702 and the analysis job 101 with the analysis job ID 701 refer to the same data with the same access pattern. For example, there is a case where the SQL statement of the analysis job 101 and the SQL statement of the module 111 designate the same data item as “GROUP BY” for the same table.
  • the degree of influence may be determined for the entries in the module relation table 700 based on the matching type 703.
  • the priority of the matching type 703 may be “P”> “W”> “R” in descending order.
  • FIG. 7 is a flowchart showing a processing example of the module specifying unit 132.
  • the module identification unit 132 extracts the entry designated from the input unit 131 from the analysis data access history 350 (step 402). For example, the module identification unit 132 extracts the entry 355 corresponding to the analysis job ID 352 “001” designated from the input unit 131 from the analysis access history table 350 of FIG.
  • the module identification unit 132 extracts the module management ID 202 of each module at the time of analysis from the application change history table 200 (step 403).
  • the module specifying unit 132 refers to the entry before the date and time 351 of the entry 355 extracted above from the application change history table 200 of FIG. 2, and the module management ID 202 “ID003” corresponding to the module A at the time of analysis, The module management ID 202 “ID002” corresponding to the module B is extracted.
  • the module specifying unit 132 extracts an entry in which the module management ID extracted in step 403 is stored in the module management ID 302 from the module access history table 300 (step 404). For example, the module specifying unit 132 extracts the entries 305, 306, and 307 in which the module management IDs 302 “ID002” and “ID003” extracted above are stored from the module access history table 300 of FIG.
  • the module identification unit 132 extracts an entry in which the module management ID extracted in step 403 is stored in the module management ID 251 from the log collection setting table 250 (step 405). For example, the module specifying unit 132 extracts the entry 257 in which the module management ID 251 “ID003” extracted above is stored from the log collection setting table 250 of FIG.
  • the module specifying unit 132 passes the entry information extracted in steps 402, 404, and 405 to the matching unit 133 (step 406).
  • the module specifying unit 132 passes the entries 355, 305, 306, 307, and 257 extracted in the above example to the matching unit 133.
  • the entry group extracted in step 402 is expressed as “EL1”
  • the entry group extracted in step 404 is expressed as “EL2”
  • the entry group extracted in step 405 is expressed as “EL3”. .
  • FIG. 8 is a flowchart showing a processing example of the matching unit 133.
  • the matching unit 133 collates the data access pattern (SQL sentence) between the analysis job 101 and the module 111, and specifies the relationship between the two. For example, the matching unit 133 may specify the relevance based on data accessed by the both, the type of access to the data, and the like.
  • the matching unit 133 may store the identified relationship in the module relationship table 700. Hereinafter, an example of the processing will be described.
  • the matching unit 133 selects one unprocessed entry from the entry group “EL1” (step 502). This selected entry is expressed as “selection EL1”.
  • the matching unit 133 selects one unprocessed entry from the entry group “EL2” (step 503). This selected entry is expressed as “selection EL2”.
  • the matching unit 133 determines whether the analysis job 101 of the selection EL1 and the module 111 of the selection EL2 are accessing the same data ( Step 504).
  • the determination result is “YES”
  • the matching unit 133 proceeds to the process of step 505
  • the determination result is “NO”
  • the matching unit 133 proceeds to the process of step 506.
  • the selection EL1 is the entry 355 and the selection EL2 is the entry 305 or the entry 306, since both access the data item “purpose type” of the table “user information”, the determination result is “YES”. Become.
  • the matching unit 133 identifies the type of access matching determined in step 504 (for example, “W”, “R”, or “P” above). Then, the matching unit 133 adds to the module association table 700 an entry storing the analysis job ID 352 of the selected EL1 in the analysis job ID 701, the module management ID 302 of the selected EL2 in the module management ID 702, and the specified matching type in the matching type 703. (Step 505), the process proceeds to Step 506. For example, when the selection EL1 is the entry 355 and the selection EL2 is the entry 305, since the SQL statement 303 of the entry 305 indicates data reference, the matching type is specified as “R”, and the entry 704 is entered in the module relation table 700. Is added.
  • the type of access matching determined in step 504 for example, “W”, “R”, or “P” above.
  • the matching unit 133 adds the identified matching type to the matching type 703 of the existing entry. That's fine. For example, when the selection EL1 is the entry 355 and the selection EL2 is the entry 306, since the SQL statement 303 of the entry 306 indicates data update, the matching type is specified as “W”, and the entry 704 of the module relation table 700 is entered. “W” is added to the matching type 703.
  • the matching unit 133 executes the processing of steps 503 to 506 until selection of all of the entry group EL2 is completed, and when selection of all is completed, the processing proceeds to the processing of the next step 507 (step 506).
  • the matching unit 133 selects one unprocessed entry from the entry group EL3 (step 507). This selected entry is referred to as “selection EL3”.
  • the matching unit 133 determines whether the log data accessed by the SQL statement 354 of the selection EL1 is the same as the log data collected based on the format 253, the column name 255, and the like of the selection EL3. (Step 508).
  • the matching unit 133 proceeds to the process of step 509 when the determination result is “YES”, and proceeds to the process of step 510 when the determination result is “NO”. For example, when the selection EL1 is the entry 356 and the selection EL3 is the entry 256, since both are accessing the table “access log”, the determination result is “YES”.
  • the matching unit 133 adds, to the module association table 700, an entry in which the analysis job ID 352 of the selection EL1 is stored in the analysis job ID 701, the module management ID 251 of the selection EL3 is stored in the module management ID 702, and “R” is stored in the matching type 703 (step 509), the process proceeds to step 510.
  • the matching unit 133 executes the processing of Steps 507 to 510 until selection of all of the entry group EL3 is completed, and when selection of all is completed, the processing proceeds to the next processing of Step 511 (Step 510).
  • the matching unit 133 executes the processing of steps 502 to 511 until selection of all of the entry group EL1 is completed, and when the selection of all is completed, this processing is ended (step 511).
  • the module related table 700 is generated. Note that information including which application data 122 the module 111 has accessed (for example, the module access history table 300) and information including which log data 123 the module 111 has output are collectively referred to as module information. You may call it. Also, information including which application data 122 the analysis job 101 has accessed and information including which log data 123 the analysis job 101 has accessed are collectively collected as analysis information (in the analysis access history table 350). Equivalent).
  • FIG. 9 shows an example of the analysis screen 801.
  • the user may input the KPI name to be calculated in the KPI 810, the analysis target data in the target data 811, the analysis target type in the analysis axis 812, and click the analysis execution button 814 via the analysis screen 801. .
  • the analysis job 101 corresponding to the input parameter is generated and executed on the analysis middleware 102.
  • the execution result is displayed in the graph display area 814 as a graph, for example.
  • the user may click the module specifying execution button 822.
  • the module specifying unit 132 and the matching unit 133 are executed, and a list of modules affecting the KPI of the current analysis job 101 is extracted.
  • the output unit 134 may display the extracted module list in the module list display area 822 in descending order of influence (priority) on the KPI 810.
  • the output unit 134 may display the extracted topology of the module in the module topology display area 823 and may add a mark 824 to a module having a high influence degree (the influence degree is equal to or greater than a threshold).
  • the influence level of the module may be determined based on the matching type 703. For example, it may be “P”, “W”, “R” in descending order of influence. In this case, in the module relation table 700 of FIG. 8, the entry 704 having the matching type 703 “W” has a higher influence than the entry 705 having only the matching type 703 “R”. 9, module B (module management ID 702 “ID002”) and module A (module management ID 702 “ID003”) may be displayed in this order.
  • a module having a relatively high influence on KPI can be presented to the user.
  • the user can narrow down the modules to be preferentially modified in order to improve the KPI based on the presented contents. That is, the KPI can be improved quickly.
  • the data for finding a module that affects the KPI is not limited to the application data 122 or the log data 123.
  • performance data or statistical data observed by the monitoring system may be used.
  • the setting for the monitoring target module may be configured in the same manner as the log collection setting table 250, and the processing similar to that in step 507 to step 510 may be executed after the processing in step 510 in FIG.
  • whether or not the same data is accessed is determined by whether or not the same table in the database is accessed. Whether or not the access pattern for the data is the same, whether or not the same data is grouped with the same data item in the SELECT statement (that is, the same data item is specified in “GROUP BY”). Judgment by However, the determination method is not limited to these.
  • accessing the same data may mean accessing a series of table groups based on a predetermined dependency relationship or accessing a specific column of the table. Also good.
  • the fact that the access patterns for the data are the same may be that the data items to be grouped match completely, or the data items to be grouped are in the same series (date, month, day, etc.) The like).
  • Example 2 is an example in which it is determined whether or not a module change (modification) contributes to the improvement (improvement) of the KPI in an environment where a plurality of applications and a plurality of analysis jobs corresponding to the applications are executed.
  • FIG. 10 shows a configuration example of the application analysis system 2 according to the second embodiment.
  • the related identification unit 130 includes a KPI identification unit 932.
  • the collection unit 150 includes a KPI extraction unit 904.
  • the storage unit 141 has a KPI change table 1100 (see FIG. 11).
  • the KPI specifying unit 932 specifies the module that contributed to the improvement of the KPI value and the contents of the correction, and generates an effective measure table 1250 (see FIG. 13).
  • the KPI extraction unit 904 records the change of the KPI value in the KPI change table 1100.
  • FIG. 11 is a configuration example of the KPI change table 1100.
  • the KPI change table 1100 may have a date and time 1101, a KPI name 1102, and a KPI value 1103 as data items.
  • the date / time or the period when the KPI value 1103 is measured is stored in the date / time 1101.
  • the KPI name 1102 stores the name of the measured KPI.
  • the KPI value 1103 stores the measured KPI value. By sorting the same KPI name 1102 in order of date and time 1101, changes in the KPI value 1103 can be known.
  • FIG. 12 is an example of the module relation table 1200 according to the second embodiment.
  • the module relation table 1200 may have an analysis job ID 1201, a module management ID 1202, and a matching type 1203 as data items. Values stored in these data items are the same as those in the module management table 700 of FIG.
  • entries 1204 and 1205 may be the same as the entries 704 and 705 in the module management table 700 of FIG.
  • the entry 1206 may be registered by matching the entry 355 of the analysis access history table 350 of FIG. 5 and the entry 308 of the module access history table 300 of FIG. 4 in the process of step 504 of FIG.
  • the entry 1207 may be registered by matching the entry 355 of the analysis access history table 350 of FIG. 5 and the entry 309 of the module access history table 300 of FIG. 4 in the processing of step 504 of FIG.
  • the entry 1208 is registered by matching the entry 356 of the analysis access history table 350 of FIG. 5 with the log data corresponding to the entry 257 of the log collection setting table 250 of FIG. 3 in the processing of step 508 of FIG. It may be.
  • FIG. 13 is a configuration example of the effective measure table 1250.
  • the effective measure table 1250 stores information indicating which module is changed and how effective to improve the KPI.
  • the effective measure table 1250 may have a KPI name 1251, a module management ID 1252, a module name 1253, and a change type 1254 as data items.
  • the name of the KPI is stored.
  • the module management ID 1252 stores a module management ID 202 corresponding to a modification effective for improving the KPI of the KPI name 1251.
  • the module name 1253 stores the module name 203 associated with the module management ID 252 in the application change history table 200.
  • the change type 1254 the change type 204 associated with the module management ID 252 in the application change history table 200 is stored.
  • FIG. 14 is a flowchart showing an example of generation processing of the effective measure table 1250.
  • the module specifying unit 132 performs the same processing as in FIG. 7, extracts EL1, EL2, and EL3, and passes the extracted entry groups EL1, EL2, and EL3 to the matching unit 133.
  • the matching unit 133 executes processing similar to that in FIG. 8 and generates a module association table 1200 (see FIG. 12) (step 1002).
  • the KPI specifying unit 932 excludes entries other than the matching type 1203 “P” from the entries in the module relation table 1200 (step 1003). For example, in the module relation table 1200 of FIG. 12, entries 1204, 1205, and 1208 are excluded, and entries 1206 and 1207 remain.
  • the KPI specifying unit 932 excludes entries whose KPI has not improved in a predetermined period after the module correction from the module relation table 1200 after the process of Step 1003 (Step 1004).
  • the KPI specifying unit 932 may calculate the predetermined period after the module correction with reference to the application change history table 200.
  • the KPI specifying unit 932 may refer to the KPI change table 1100 and determine whether or not the KPI value 1103 has improved in a predetermined period after module correction. For example, when the KPI value 1103 corresponding to the entry 1207 of the analysis job ID 1201 “002” and the module management ID 1202 “ID 101” is not improved in the module relation table 1200 of FIG. 12, the entry 1207 is excluded and the entry 1206 Remain.
  • the KPI specifying unit 932 generates an effective measure table 1250 including the entries finally left by the above processing (step 1005).
  • the effective measure table 1250 can be provided to the user.
  • the user can easily know from the contents of the effective measure table 1250 whether the modification of the module contributed to the improvement of the KPI. Further, the user can make a plan as to which module should be modified in order to improve a desired KPI from the contents of the effective measure table 1250. That is, the KPI can be improved quickly.
  • Example 1 The contents of Example 1 and Example 2 may be combined in any way.
  • the KPI is merely an example of an index related to business execution, and may be any other index.
  • Application analysis system 100 Execution device 160: Analysis device 101: Analysis job 111: Module 130: Related identification unit 141: Storage unit 150: Collection unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

アプリケーション分析システムは、アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報とを有し、モジュール情報と分析情報とに基づいて、複数のモジュールの中から指標の変動に影響を与える注目モジュールを特定する。

Description

アプリケーション分析システム、方法、及び、プログラム
 本発明は、概して、計算機システムに関し、例えば、アプリケーションの分析に関する。
 市場環境の激動を受けて、業務を支えるアプリケーションの開発及び運用を継続的に改善する手法が注目されている。特許文献1には、業務システムによって得られた履歴データから業務効率低下の原因侯補となる処理の進め方の違いを自動的に抽出する方法が開示されている。
特許第4376887号
 特許文献1は、履歴データベースから一の案件に関する処理の実行履歴データを読み出し、当該案件に対する業務効率指標を算出するとともに、処理の進め方を表す複数の特徴についてそれぞれの分類先である各カテゴリに対する当該案件の分類割合を決定し、これらを全ての案件について行い、全ての案件に関する業務効率指標と特徴毎の各カテゴリに対する分類割合とから、特徴毎の分類前および分類後の業務効率指標分布を算出し、全ての案件に関する特徴毎の各カテゴリに対する分類割合と特徴毎の分類前および分類後の業務効率指標分布とから、各特徴毎の分類前後の業務効率指標のばらつきの変化量を算出する。
 しかし、特許技術1は、ユースケースとそれを実現するアプリケーション(モジュール)とを静的に対応付けているため、業務の改善サイクルの中でユースケースの変化やアプリケーション(モジュール)の変更が発生する開発では、変更の度にユースケースとモジュールとを対応付けし直す必要がある。これは手間のかかる作業であり、改善に要する時間も長くなる。
 そこで本発明の目的は、アプリケーションに係る指標に影響を与えるモジュールを容易に特定可能とすることにある。
 本発明の一実施例に係るアプリケーション分析システムは、複数のモジュールを含むアプリケーションを分析するシステムであって、プロセッサ及びメモリを有する。メモリは、アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、を有する。プロセッサは、モジュール情報と分析情報とに基づいて、複数のモジュールの中から指標の変動に影響を与える注目モジュールを特定する。
 本発明によれば、アプリケーションに係る指標に影響を与えるモジュールを容易に特定することができる。
実施例1に係るアプリケーション分析システムの構成例を示す。 アプリケーション変更履歴テーブルの構成例を示す。 ログ収集設定テーブルの構成例を示す。 モジュールアクセス履歴テーブルの構成例を示す。 分析アクセス履歴テーブルの一例である。 実施例1に係るモジュール関連テーブルの構成例を示す。 モジュール特定部の処理例を示すフローチャートである。 マッチング部の処理例を示すフローチャートである。 分析画面の例を示す。 実施例2に係るアプリケーション分析システムの構成例を示す。 KPI(Key Performance Indicator)変化テーブルの構成例である。 実施例2に係るモジュール関連テーブルの例である。 有効対策テーブルの構成例である。 有効対策テーブルの生成処理の例を示すフローチャートである。
 以下、実施例を説明する。
 以下の説明では、「xxxテーブル」又は「xxxリスト」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」又は「xxxリスト」を「xxx情報」と呼ぶことができる。
 さらに、各情報の内容を説明する際に、「識別子」、「名」、「名称」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェイスデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
 図1は、実施例1に係るアプリケーション分析システム1の構成例を示す。
 実行装置100は、業務遂行に関するアプリケーションを実行する。実行装置100は業務システムと呼ばれてもよい。アプリケーションは複数のモジュール111(例えばモジュールA、B、C)から構成されてよい。複数のモジュール111は、アプリケーションミドルウェア112上に構成されてよい。実行装置100は、複数のモジュール111からアクセスされるアプリケーションデータ122を管理する。アプリケーションデータ122は、データ管理ミドルウェア121上で管理されてよい。また、実行装置100は、複数のモジュール111から出力されるログデータ123を管理する。ログデータ123は、データ管理ミドルウェア121上で管理されてよい。
 複数のモジュール111は、アプリケーションの機能を実現するために、アプリケーションミドルウェア112やデータ管理ミドルウェア121を介して、アプリケーションデータ122を読み書き及び削除等してよい。また、複数のモジュール111は、アプリケーションの実行状態を確認できるように、アプリケーションミドルウェア112やデータ管理ミドルウェア121を介して、ログデータ123を出力(書き込み)してよい。
 実行装置100は、アプリケーション(複数のモジュール111)の実行結果を分析する分析ジョブ101を実行する。分析ジョブ101は分析ミドルウェア上102に構成されてよい。分析ジョブ101は、アプリケーションデータ122やログデータ123等を参照して、アプリケーションの実行結果を分析してよい。
 分析装置160は、実行装置100に分析ジョブ101を投入し実行させてよい。また、分析装置160は、実行装置100におけるアプリケーションの実行結果に関する情報(アプリケーションデータ122やログデータ123など)や分析ジョブ101の分析結果に関する情報を収集してよい。また、分析装置160は、その収集した情報に基づき、アプリケーションの業務遂行に関する指標(例えばKPI)の変動に影響を与えるモジュール(「注目モジュール」という)を特定してよい。
 実行装置100及び分析装置160は、それぞれ、CPU、メモリ及び記憶デバイス等を有する計算機であってよい。そして、実行装置100及び分析装置160がそれぞれ有する各種機能は、メモリ又は記憶デバイスに格納されているプログラムがCPUで実行されることにより、実現されてよい。メモリの例は、DRAM(Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)である。記憶デバイスの例は、SSD(Solid State Drive)、HDD(Hard Disk Drive)である。
 分析装置160は、実行装置100から各種データを収集する収集部150、収集部150が収集したデータを保持する記憶部141、及び、記憶部141に保持されたデータに基づきモジュール111とKPIとの関連性を特定する関連特定部130を有する。
 収集部150は、変更履歴管理部151、ログ収集部152、分析アクセス履歴取得部154、及び、モジュールアクセス履歴取得部153を含んでよい。
 変更履歴管理部151は、各モジュール111の変更履歴を、アプリケーション変更履歴テーブル200(図2参照)によって管理する。
 ログ収集部152は、各モジュール111が実行時に出力するログデータ123を、ログ収集設定テーブル250(図3参照)の設定内容に基づいて収集する。ログ収集部152は、独立したプロセスとして動作してよい。
 分析アクセス履歴取得部154は、分析ジョブ101が分析の際にデータ管理ミドルウェア121のデータにアクセスした履歴(「分析アクセス履歴」という)を取得し、分析アクセス履歴テーブル350(図5参照)に格納する。分析ジョブ101は、入力部131から指示を受けて実行されてよい。分析アクセス履歴には、分析ジョブ101がデータ管理ミドルウェア121に対して発行したSQL文が記録されてよい。
 モジュールアクセス履歴取得部153は、モジュール111が実行の際にデータ管理ミドルウェア121のデータにアクセスした履歴(「モジュールアクセス履歴」という)を取得し、モジュールアクセス履歴テーブル300(図4参照)に格納する。モジュールアクセス履歴には、モジュール111がデータ管理ミドルウェア121に対して発行したSQL文が記録されてよい。
 なお、分析ジョブ101又はモジュール111がデータ管理ミドルウェア121にアクセスする方法は、SQLに限られず、例えば所定のプログラムによるアクセスや、XML(Extensible Markup Language)パーサによるアクセスなどであってもよい。また、上記のアプリケーション変更履歴テーブル200、ログ収集設定テーブル250、分析アクセス履歴テーブル350、及び、モジュールアクセス履歴テーブル300は、記憶部141に保持されてよい。
 関連特定部130は、入力部131、モジュール特定部132、マッチング部133133、及び、出力部134を含んで良い。
 入力部131は、分析装置160の利用者からの入力を受け付ける(図9参照)。
 モジュール特定部132は、モジュールアクセス履歴テーブル350及び分析アクセス履歴テーブル300に基づいて、KPIの変動に影響を与えるモジュール(注目モジュール)を特定する。これにより、何れのモジュールが、KPIの変動に影響を与えているのかを知ることができる。
 マッチング部133は、モジュール特定部132が特定した注目モジュールと、その注目モジュールの変更履歴とを対応付ける、モジュール関連テーブル700(図6参照)を生成する。これにより、何れのモジュールの何れの変更が、KPIの変動に影響を与えているのかを知ることができる。
 出力部134は、モジュール特定部132及びマッチング部133の実行結果、すなわち、モジュールとKPIとの関係を示す情報を、利用者に提示する(図9参照)。
 図2は、アプリケーション変更履歴テーブル200の構成例を示す。
 アプリケーション変更履歴テーブル200は、データ項目として、日時201、モジュール管理ID202、モジュール名203、及び、変更種別204を有してよい。
 モジュール管理ID202には、当該テーブル200のエントリの識別子が格納される。
 日時201には、モジュール名203のモジュールに変更種別204の変更が行われた日時が格納される。又は、日時201には、モジュール管理ID202のエントリが当該テーブル200に登録された日時が格納されてもよい。
 モジュール名203には、変更されたモジュールの名称が格納される。
 変更種別204には、モジュール名203のモジュールにどのような変更がされたかを示す情報が格納される。例えば、変更種別204「コード」は、モジュール名203のモジュールのプログラムコードが変更されたことを示す。変更種別204「パラメータ」は、モジュール名203のモジュールのパラメータが変更されたことを示す。
 アプリケーション変更履歴テーブル200は、記憶部141に保持され、変更履歴管理部151によって管理されてよい。変更履歴管理部151は、モジュール111がデプロイされる度に、アプリケーション変更履歴テーブル200にエントリを追加してよい。
 アプリケーション変更履歴テーブル200のエントリは、日時201の古い順に並べられてよい。その場合、図2のアプリケーション変更履歴テーブル200から、エントリ207の時点においてアプリケーションミドルウェア112上で実行されているモジュールは、モジュールA(エントリ207)とモジュールB(エントリ206)であることがわかる。また、モジュールAは、エントリ205の時点で変更(修正)された後、エントリ207の時点でさらに修正されたことがわかる。
 図3は、ログ収集設定テーブル250の構成例を示す。
 ログ収集設定テーブル250は、データ項目として、モジュール管理ID251、ファイル名252、フォーマット253、テーブル名254、及び、カラム名255を有して良い。
 モジュール管理ID251には、アプリケーション変更履歴テーブル200のモジュール管理ID202が格納される。
 ファイル名252には、モジュール管理ID251のモジュールが出力するファイルの名称が格納される。
 フォーマット253には、ファイル名252のファイルに記載されている各行のデータを、複数のカラムデータに分割するための情報が格納される。この情報には、正規表現等が用いられてよい。
 テーブル名254には、フォーマット253に基づいて分割された各カラムデータの格納先のテーブルの名称が格納される。
 カラム名255には、テーブル名254のテーブルにおける、フォーマット253に基づいて分割された各カラムデータの格納先のカラム名が格納される。
 ログ収集部152は、モジュール(251)が出力するファイル(252)の各行のデータを、フォーマット(213)に基づいて複数のカラムデータに分割してよい。そして、ログ収集部152は、それらのカラムデータを、データ管理ミドルウェア121のテーブル(254)の各カラム(255)に格納してよい。例えば、図3のエントリ256は、フォーマット253で指定された最初の空白までの文字列を、テーブル名254「アクセスログ」のカラム名255「ユーザ」に格納することを示す。
 図4は、モジュールアクセス履歴テーブル300の構成例を示す。
 モジュールアクセス履歴テーブル300は、データ項目として、日時301、モジュール管理ID302、及び、SQL文303を有して良い。
 日時301には、モジュール管理ID302のモジュールがSQL文303の内容を実行した日時が格納される。
 モジュール管理ID302には、アプリケーション変更履歴テーブル200のモジュール管理ID202が格納される。
 SQL文303には、モジュール管理ID302のモジュールが、実行時にどのデータにアクセスしたかに関する情報を示すSQL文が格納される。
 例えば、図4のモジュールアクセス履歴テーブル300のエントリ305は、モジュール管理ID「ID002」(モジュールB)が、アプリケーションデータ122に含まれるテーブル名「ユーザ」のカラム名「目的種別」を参照(アクセス)していることを示す。
 図5は、分析アクセス履歴テーブル300の一例である。
 分析アクセス履歴テーブル350は、データ項目として、日時351、分析ジョブID352、KPI353、及び、SQL文354を有して良い。
 日時351には、分析ジョブID352の分析ジョブ101がSQL文354の内容を実行した日時が格納される。
 分析ジョブID352には、分析ジョブ101の識別子が格納される。
 KPI352には、KPIの名称が格納される。KPI352には、ユーザによって入力された名称が格納されてよい。
 SQL文354には、分析ジョブID352の分析ジョブ101が、分析時にどのデータにアクセスしたかに関する情報を示すSQL文が格納される。
 図6は、モジュール関連テーブル700の構成例を示す。
 モジュール関連テーブル700は、データ項目として、分析ジョブID701、モジュール管理ID702、及び、マッチング種別703を有してよい。
 分析ジョブID701には、分析アクセス履歴テーブル300の分析ジョブID352が格納される。
 モジュール管理ID702には、モジュールアクセス履歴テーブル300のモジュール管理IDが202が格納される。
 マッチング種別703には、分析ジョブID701の分析ジョブ101、及び、モジュール管理ID702のモジュール111が、同じデータにどのようにアクセスしているかを示す情報が格納される。マッチング種別702には、例えば次の「W」、「R」、「P」の情報が格納されてよい。
 (W)モジュール管理ID702のモジュール111が書き込んだデータを、分析ジョブID701の分析ジョブ101が参照している。
 (R)モジュール管理ID702のモジュールが参照したデータを、分析ジョブID701の分析ジョブも参照している。
 (P)モジュール管理ID702のモジュール111と分析ジョブID701の分析ジョブ101とが、同じデータを同じアクセスパターンで参照している。例えば、分析ジョブ101のSQL文とモジュール111のSQL文とが、同じテーブルに対して同じデータ項目を「GROUP BY」に指定している場合などである。
 モジュール関連テーブル700のエントリは、マッチング種別703に基づいて影響度(優先度)が決定されてよい。例えば、マッチング種別703の優先度は、高い順に「P」>「W」>「R」であってよい。
 図7は、モジュール特定部132の処理例を示すフローチャートである。
 モジュール特定部132は、分析データアクセス履歴350から、入力部131から指定されたエントリを抽出する(ステップ402)。例えば、モジュール特定部132は、図5の分析アクセス履歴テーブル350から、入力部131から指定された分析ジョブID352「001」に対応するエントリ355を抽出する。
 モジュール特定部132は、アプリケーション変更履歴テーブル200から、分析時における各モジュールのモジュール管理ID202を抽出する(ステップ403)。例えば、モジュール特定部132は、図2のアプリケーション変更履歴テーブル200から、上記で抽出したエントリ355の日時351より以前のエントリを参照し、分析時におけるモジュールAに対応するモジュール管理ID202「ID003」、モジュールBに対応するモジュール管理ID202「ID002」を抽出する。
 モジュール特定部132は、モジュールアクセス履歴テーブル300から、モジュール管理ID302に、ステップ403で抽出したモジュール管理IDが格納されているエントリを抽出する(ステップ404)。例えば、モジュール特定部132は、図4のモジュールアクセス履歴テーブル300から、上記で抽出したモジュール管理ID302「ID002」、「ID003」が格納されているエントリ305,306,307を抽出する。
 モジュール特定部132は、ログ収集設定テーブル250から、モジュール管理ID251に、ステップ403で抽出したモジュール管理IDが格納されているエントリを抽出する(ステップ405)。例えば、モジュール特定部132は、図3のログ収集設定テーブル250から、上記で抽出したモジュール管理ID251「ID003」が格納されているエントリ257を抽出する。
 モジュール特定部132は、ステップ402、404、405で抽出したエントリの情報を、マッチング部133に渡す(ステップ406)。例えば、モジュール特定部132は、上述の例において抽出したエントリ355、305、306、307、257を、マッチング部133に渡す。なお、下記図8の説明において、ステップ402で抽出されたエントリ群を「EL1」、ステップ404で抽出されたエントリ群を「EL2」、ステップ405で抽出されたエントリ群を「EL3」と表現する。
 図8は、マッチング部133の処理例を示すフローチャートである。
 マッチング部133は、分析ジョブ101とモジュール111とのデータアクセスパターン(SQL文)を照合し、両者の関連性を特定する。例えば、マッチング部133は、両者がアクセスするデータや、そのデータに対するアクセスの種別などに基づいて、関連性を特定してよい。マッチング部133は、その特定した関連性を、モジュール関連テーブル700に格納してよい。以下、当該処理の例を説明する。
 マッチング部133は、エントリ群「EL1」から、未処理の1つのエントリを選択する(ステップ502)。この選択されたエントリを「選択EL1」と表現する。
 マッチング部133は、エントリ群「EL2」から、未処理の1つのエントリを選択する(ステップ503)。この選択されたエントリを「選択EL2」と表現する。
 マッチング部133は、選択EL1のSQL文354と、選択EL2のSQL文303とに基づき、選択EL1の分析ジョブ101と選択EL2のモジュール111とが同じデータにアクセスしているか否かを判定する(ステップ504)。マッチング部133は、当該判定結果が「YES」の場合、ステップ505の処理へ進み、「NO」の場合、ステップ506の処理へ進む。例えば、選択EL1がエントリ355、選択EL2がエントリ305又はエントリ306である場合、何れもがテーブル「ユーザ情報」のデータ項目「目的種別」にアクセスしているので、当該判定結果は「YES」となる。
 マッチング部133は、ステップ504で判定したアクセスのマッチング種別(例えば上記の「W」、「R」、「P」の何れであるか)を特定する。そして、マッチング部133は、分析ジョブID701に選択EL1の分析ジョブID352、モジュール管理ID702に選択EL2のモジュール管理ID302、マッチング種別703に当該特定したマッチング種別を格納したエントリを、モジュール関連テーブル700に追加し(ステップ505)、ステップ506の処理へ進む。例えば、選択EL1がエントリ355、選択EL2がエントリ305である場合、エントリ305のSQL文303はデータの参照を示しているので、マッチング種別は「R」と特定され、モジュール関連テーブル700にエントリ704が追加される。
 なお、モジュール関連テーブル700に、同一の分析ジョブID701及びモジュール管理ID702が格納されているエントリが存在する場合、マッチング部133は、その既存のエントリのマッチング種別703に当該特定したマッチング種別を追記すればよい。例えば、選択EL1がエントリ355、選択EL2がエントリ306である場合、エントリ306のSQL文303はデータの更新を示しているので、マッチング種別は「W」と特定され、モジュール関連テーブル700のエントリ704のマッチング種別703に「W」が追記される。
 マッチング部133は、エントリ群EL2の全てを選択し終えるまでステップ503~506の処理を実行し、全てを選択し終えたら、次のステップ507の処理へ進む(ステップ506)。
 マッチング部133は、エントリ群EL3から、未処理の1つのエントリを選択する(ステップ507)。この選択されたエントリを「選択EL3」という。
 マッチング部133は、選択EL1のSQL文354によってアクセスされるログデータと、選択EL3のフォーマット253及びカラム名255等に基づいて収集されたログデータと、が同じものであるか否かを判定する(ステップ508)。マッチング部133は、当該判定結果が「YES」の場合、ステップ509の処理へ進み、「NO」の場合、ステップ510の処理へ進む。例えば、選択EL1がエントリ356、選択EL3がエントリ256である場合、何れもがテーブル「アクセスログ」にアクセスしているので、当該判定結果は「YES」となる。
 マッチング部133は、分析ジョブID701に選択EL1の分析ジョブID352、モジュール管理ID702に選択EL3のモジュール管理ID251、マッチング種別703に「R」が格納されたエントリを、モジュール関連テーブル700に追加し(ステップ509)、ステップ510の処理へ進む。
 マッチング部133は、エントリ群EL3の全てを選択し終えるまでステップ507~510の処理を実行し、全てを選択し終えたたら、次のステップ511の処理へ進む(ステップ510)。
 マッチング部133は、エントリ群EL1の全てを選択し終えるまでステップ502~511の処理を実行し、全てを選択し終えたら、本処理を終了する(ステップ511)。
 以上の処理により、モジュール関連テーブル700が生成される。なお、モジュール111が何れのアプリケーションデータ122にアクセスしたかを含む情報(例えばモジュールアクセス履歴テーブル300)と、モジュール111が何れのログデータ123を出力したかを含む情報とを、まとめてモジュール情報と呼んでもよい。また、分析ジョブ101が何れのアプリケーションデータ122にアクセスしたかを含む情報と、分析ジョブ101が何れのログデータ123にアクセスしたかを含む情報と、をまとめて分析情報(分析アクセス履歴テーブル350に相当)と呼んでもよい。
 図9は、分析画面801の例を示す。
 ユーザは、分析画面801を介して、KPI810に算出したいKPI名を、対象データ811に分析対象のデータを、分析軸812に分析の目的種別を入力して、分析実行ボタン814をクリックしてよい。これにより、分析ミドルウェア102上に、その入力されたパラメータに対応する分析ジョブ101が生成および実行される。その実行結果は、例えばグラフとして、グラフ表示領域814に表示される。
 ユーザは、その分析結果が有意義であると判断した場合、モジュール特定実行ボタン822をクリックしてよい。これにより、モジュール特定部132及びマッチング部133が実行され、現在の分析ジョブ101のKPIに影響を及ぼしているモジュールの一覧が抽出される。
 出力部134は、その抽出されたモジュールの一覧を、KPI810に対する影響度(優先度)の高い順にモジュールリスト表示領域822に表示してよい。また、出力部134は、その抽出されたモジュールのトポロジーをモジュールトポロジ表示領域823に表示すると共に、影響度の高い(影響度が閾値以上である)モジュールに対してマーク824を付与してよい。
 モジュールの影響度は、マッチング種別703に基づいて決定されてよい。例えば、影響度の高い順に「P」、「W」、「R」であってよい。この場合、図8のモジュール関連テーブル700において、マッチング種別703「W」を有するエントリ704の方が、マッチング種別703「R」のみのエントリ705よりも影響度が高いので、モジュールリスト表示領域822に、図9に示すように、モジュールB(モジュール管理ID702「ID002」)、モジュールA(モジュール管理ID702「ID003」)の順に表示されてよい。
 なお、複数のエントリが同一の影響度の場合、さらにデータアクセス頻度、データアクセス量などの情報を取得し、それらの値が大きい程、影響度が高いとしてもよい。
 本実施例によれば、KPIに対して影響度の比較的高いモジュールを、ユーザに提示することができる。ユーザは、この提示内容に基づいて、KPIを向上させるために優先的に修正すべきモジュールを絞り込むことができる。すなわち、KPIの改善を迅速に行うことができる。
 なお、KPIに影響を及ぼすモジュールを発見するためのデータは、アプリケーションデータ122、又は、ログデータ123に限られない。例えば、監視システムによって観測されるパフォーマンスデータ、又は、統計データも用いられてよい。この場合、監視対象モジュールに対する設定をログ収集設定テーブル250と同様に構成し、図8のステップ510の処理の後に、ステップ507からステップ510と同様の処理を実行してよい。
 本実施例では、同じデータにアクセスしているか否かを、データベースの同じテーブルにアクセスしているか否かによって判定している。また、データに対するアクセスパターンが同じであるか否かを、SELECT文において、同じデータに対して同じデータ項目でグループ化しているか(つまり、「GROUP BY」に同じデータ項目が指定されているか)否かによって判定している。しかし、判定方法はこれらに限られない。
 例えば、同じデータにアクセスしているとは、所定の依存関係に基づいた一連のテーブル群にアクセスしていることであってもよいし、テーブルの特定のカラムにアクセスしていることであってもよい。
 例えば、データに対するアクセスパターンが同じであることは、グループ化されるデータ項目が完全に一致していることであってもよいし、グループ化されるデータ項目が日時、月、日など同系列(同類)であることであってもよい。
 実施例2は、複数のアプリケーションと、それに対する複数の分析ジョブが実行される環境において、モジュールの変更(修正)がKPIの良化(向上)に寄与したか否かを判定する例である。この結果を用いることにより、同様の改善を行いたい場合に実績のある対策を提供することが可能となり、KPIの改善を迅速化できる。
 図10は、実施例2に係るアプリケーション分析システム2の構成例を示す。
 アプリケーション分析システム2において、図1と同様の構成要素については、同一の参照符号を付して説明を省略する。
 関連特定部130は、KPI特定部932を有する。収集部150は、KPI抽出部904を有する。記憶部141は、KPI変化テーブル1100(図11参照)を有する。
 KPI特定部932は、KPI値の向上に寄与したモジュール及びその修正内容を特定し、有効対策テーブル1250(図13参照)を生成する。
 KPI抽出部904は、KPI値の変化を、KPI変化テーブル1100に記録する。
 図11は、KPI変化テーブル1100の構成例である。
 KPI変化テーブル1100は、データ項目として、日時1101、KPI名1102、KPI値1103を有してよい。
 日時1101には、KPI値1103が測定された日時又は期間が格納される。KPI名1102には、測定されたKPIの名称が格納される。KPI値1103には、測定されたKPIの値が格納される。同一のKPI名1102について日時1101の順にソートすることにより、KPI値1103の変化がわかるようになる。
 図12は、実施例2に係るモジュール関連テーブル1200の例である。
 モジュール関連テーブル1200は、データ項目として、分析ジョブID1201、モジュール管理ID1202、及び、マッチング種別1203を有してよい。これらのデータ項目に格納される値は、図6のモジュール管理テーブル700と同様である。
 図12において、エントリ1204,1205は、図6のモジュール管理テーブル700のエントリ704、705と同じであってよい。
 エントリ1206は、図8のステップ504の処理において、図5の分析アクセス履歴テーブル350のエントリ355と、図4のモジュールアクセス履歴テーブル300のエントリ308とのマッチングによって登録されたものであってよい。
 エントリ1207は、図8のステップ504の処理において、図5の分析アクセス履歴テーブル350のエントリ355と、図4のモジュールアクセス履歴テーブル300のエントリ309とのマッチングによって登録されたものであってよい。
 エントリ1208は、図8のステップ508の処理において、図5の分析アクセス履歴テーブル350のエントリ356と、図3のログ収集設定テーブル250のエントリ257に対応するログデータとのマッチングによって登録されたものであってよい。
 図13は、有効対策テーブル1250の構成例である。
 有効対策テーブル1250には、どのモジュールをどのように変更することが、KPIの向上に有効であるかを示す情報が格納される。
 有効対策テーブル1250は、データ項目として、KPI名1251、モジュール管理ID1252、モジュール名1253、及び、変更種別1254を有してよい。
 KPI名1251には、KPIの名称が格納される。
 モジュール管理ID1252には、KPI名1251のKPIの向上に有効である修正に対応するモジュール管理ID202が格納される。
 モジュール名1253には、アプリケーション変更履歴テーブル200において、モジュール管理ID252と対応付けられているモジュール名203が格納される。
 変更種別1254には、アプリケーション変更履歴テーブル200において、モジュール管理ID252と対応付けられている変更種別204が格納される。
 図13の例は、KPI名1251「再訪問率」を向上させるには、モジュール管理ID1252「ID010」において行われた、「モジュールC」(1253)のコード修正(1254)が有効である旨を示す。
 図14は、有効対策テーブル1250の生成処理の例を示すフローチャートである。
 モジュール特定部132は、図7と同様の処理を実行し、EL1、EL2、EL3を抽出し、その抽出したエントリ群EL1、EL2、EL3を、マッチング部133に渡す。マッチング部133は、図8と同様の処理を実行し、モジュール関連テーブル1200(図12参照)を生成する(ステップ1002)。
 KPI特定部932は、モジュール関連テーブル1200のエントリから、マッチング種別1203「P」以外のエントリを除外する(ステップ1003)。例えば、図12のモジュール関連テーブル1200においては、エントリ1204、1205及び1208が除外され、エントリ1206及び1207が残る。
 KPI特定部932は、ステップ1003の処理後のモジュール関連テーブル1200から、モジュール修正後から所定期間においてKPIが向上していないエントリを除外する(ステップ1004)。KPI特定部932は、アプリケーション変更履歴テーブル200を参照し、モジュール修正後から所定期間を算出してよい。KPI特定部932は、KPI変化テーブル1100を参照し、モジュール修正後から所定期間において、KPI値1103が向上しているか否かを判定してよい。例えば、図12のモジュール関連テーブル1200において、分析ジョブID1201「002」及びモジュール管理ID1202「ID101」のエントリ1207に対応するKPI値1103が向上していない場合、当該エントリ1207は除外され、エントリ1206が残る。
 KPI特定部932は、上述の処理よって最終的に残ったエントリを含む有効対策テーブル1250を生成する(ステップ1005)。
 以上の処理によれば、有効対策テーブル1250をユーザに提供することができる。ユーザは、有効対策テーブル1250の内容から、モジュールの修正がKPIの向上に寄与したか否かを容易に知ることができる。また、ユーザは、有効対策テーブル1250の内容から、所望のKPIを向上させるには、どのモジュールを修正すれば良いかの目処を立てることができる。すなわち、KPIの改善を迅速に行うことができる。
 上述した実施例は、本発明の説明のための例示であり、本発明の範囲を実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
 実施例1と実施例2の内容は、どのように組み合わせてもよい。また、KPIはあくまで業務遂行に関する指標の一例であり、他のどのような指標であってもよい。
 1:アプリケーション分析システム 100:実行装置 160:分析装置 101:分析ジョブ 111:モジュール 130:関連特定部 141:記憶部 150:収集部

Claims (11)

  1.  複数のモジュールを含むアプリケーションを分析するシステムであって、プロセッサ及びメモリを有し、
     前記メモリは、
      前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、
      前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、を有し、
     前記プロセッサは、
      前記モジュール情報と前記分析情報とに基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定する
    アプリケーション分析システム。
  2.  データは、データベースのテーブルに格納されており、
     前記プロセッサは、
      前記モジュール情報から、モジュールがアクセスしたデータの格納先のテーブルを特定し、
      前記分析情報から、分析プログラムがアクセスしたデータの格納先のテーブルを特定し、
      これら特定した2つのテーブルが同じ場合、当該モジュールを、前記注目モジュールとする
    請求項1に記載のアプリケーション分析システム。
  3.  前記プロセッサは、前記データベースのテーブルに対する、注目モジュール及び分析プログラムのアクセス方法に基づいて、当該注目モジュールが指標に影響を与える可能性の大きさを示す影響度を判定する
    請求項2に記載のアプリケーション分析システム。
  4.  前記データベースのテーブルに対する注目モジュール及び分析プログラムのアクセス方法は、SQLで表現されており、
     前記テーブルに対して、分析プログラムと同じデータ項目をSQL文「GROUP BY」に指定する注目モジュールの影響度は、SQL文「GROUP BY」を指定しない注目モジュールの影響度よりも、大きい
    請求項3に記載のアプリケーション分析システム。
  5.  前記アプリケーションは、業務遂行に関するアプリケーションであり、
     前記指標は、前記業務遂行に関するKPI(Key Performance Indicator)である
    請求項4に記載のアプリケーション分析システム。
  6.  前記プロセッサは、KPIの変化と、影響度の比較的大きい注目モジュールと、を合わせて表示する
    請求項5に記載のアプリケーション分析システム。
  7.  前記アプリケーション情報は、各モジュールが出力したログデータに関する情報を含み、
     前記分析情報は、分析プログラムがアクセスした前記ログデータに関する情報を含む
    請求項1に記載のアプリケーション分析システム。
  8.  前記メモリは、各モジュールの変更に関する情報を含むモジュール変更情報を更に有し、
     前記プロセッサは、前記モジュール変更情報に基づいて、前記注目モジュールの変更内容を特定する
    請求項1に記載のアプリケーション分析システム。
  9.  前記プロセッサは、前記分析情報において指標を良化させているモジュールを、注目モジュールとする
    請求項8に記載のアプリケーション分析システム。
  10.  複数のモジュールを含むアプリケーションを分析する方法であって、
     前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、に基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定する
    アプリケーション分析方法。
  11.  コンピュータを、複数のモジュールを含むアプリケーションを分析する装置として機能させるコンピュータプログラムであって、コンピュータに、
     前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、に基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定させる
    コンピュータプログラム。
PCT/JP2016/061971 2016-04-14 2016-04-14 アプリケーション分析システム、方法、及び、プログラム WO2017179163A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018511829A JPWO2017179163A1 (ja) 2016-04-14 2016-04-14 アプリケーション分析システム、方法、及び、プログラム
PCT/JP2016/061971 WO2017179163A1 (ja) 2016-04-14 2016-04-14 アプリケーション分析システム、方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/061971 WO2017179163A1 (ja) 2016-04-14 2016-04-14 アプリケーション分析システム、方法、及び、プログラム

Publications (1)

Publication Number Publication Date
WO2017179163A1 true WO2017179163A1 (ja) 2017-10-19

Family

ID=60042127

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/061971 WO2017179163A1 (ja) 2016-04-14 2016-04-14 アプリケーション分析システム、方法、及び、プログラム

Country Status (2)

Country Link
JP (1) JPWO2017179163A1 (ja)
WO (1) WO2017179163A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020181437A (ja) * 2019-04-26 2020-11-05 三菱電機株式会社 監視制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009505218A (ja) * 2005-08-09 2009-02-05 オラクル・システムズ・コーポレイション 汎用のワークフローベースの経路指定
JP2011221770A (ja) * 2010-04-08 2011-11-04 Panasonic Corp 業務改善活動支援方法および業務改善活動支援装置
JP2013246529A (ja) * 2012-05-24 2013-12-09 Hitachi Ltd 業務課題分析支援システム
JP2014157605A (ja) * 2013-02-14 2014-08-28 Aktana Inc システムレベル・ワークフロー戦略および個々のワークフロー活動を管理するシステムおよび方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009505218A (ja) * 2005-08-09 2009-02-05 オラクル・システムズ・コーポレイション 汎用のワークフローベースの経路指定
JP2011221770A (ja) * 2010-04-08 2011-11-04 Panasonic Corp 業務改善活動支援方法および業務改善活動支援装置
JP2013246529A (ja) * 2012-05-24 2013-12-09 Hitachi Ltd 業務課題分析支援システム
JP2014157605A (ja) * 2013-02-14 2014-08-28 Aktana Inc システムレベル・ワークフロー戦略および個々のワークフロー活動を管理するシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020181437A (ja) * 2019-04-26 2020-11-05 三菱電機株式会社 監視制御装置

Also Published As

Publication number Publication date
JPWO2017179163A1 (ja) 2019-02-14

Similar Documents

Publication Publication Date Title
US8930303B2 (en) Discovering pivot type relationships between database objects
CA2957674C (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US20150066987A1 (en) Method and system for accessing a set of data tables in a source database
KR102213627B1 (ko) 분석 소프트웨어 관리 시스템 및 분석 소프트웨어 관리 방법
CN106293891B (zh) 多维投资指标监督方法
US20150213066A1 (en) System and method for creating data models from complex raw log files
CN110619000A (zh) 时序数据的查询方法、装置、存储介质及电子设备
WO2019085463A1 (zh) 部门需求的推荐方法、应用服务器及计算机可读存储介质
CN110580253B (zh) 时序数据组的加载方法、装置、存储介质及电子设备
CN106776704A (zh) 统计信息收集方法和装置
CN111143356B (zh) 报表检索方法及装置
WO2017179163A1 (ja) アプリケーション分析システム、方法、及び、プログラム
CN117093556A (zh) 日志分类方法、装置、计算机设备及计算机可读存储介质
US20130124484A1 (en) Persistent flow apparatus to transform metrics packages received from wireless devices into a data store suitable for mobile communication network analysis by visualization
KR101640870B1 (ko) 업무이력 로그 관리 시스템 및 방법
JP2020160494A (ja) 情報処理装置、文書管理システム及びプログラム
CN117743316A (zh) 数据处理方法、装置、存储介质及电子设备
US11636421B1 (en) Model driven reporting
JP2019101829A (ja) ソフトウェア部品管理システム、計算機および方法
JPWO2009008129A1 (ja) 開発書類データ管理装置、開発書類データ管理システム、開発書類データ管理方法及び、そのプログラム並びに記憶媒体
US20160232187A1 (en) Dump analysis method, apparatus and non-transitory computer readable storage medium
JPWO2019012674A1 (ja) プログラムの統合解析管理装置及びその統合解析管理方法
US10268730B2 (en) Focus-driven user interface
US9710774B2 (en) Configuration of embedded intelligence
JPWO2014192072A1 (ja) 計算機、関連性算出方法及び記憶媒体

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018511829

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 16898623

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16898623

Country of ref document: EP

Kind code of ref document: A1