Job Management Device and Job Management Method

The job management device addresses resource constraints in multi-tenancy by scheduling jobs based on acquired execution conditions and analysis information, ensuring timely completion and optimized resource use.

JP7684345B2Active Publication Date: 2025-05-27HITACHI LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023066182
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-04-14
Publication Date
2025-05-27
Estimated Expiration
2043-04-14

AI Technical Summary

Technical Problem

In multi-tenancy environments, resource constraints occur due to simultaneous job executions by multiple tenants, leading to increased costs when scaling out resources, and users are unaware of the execution conditions of other tenants' jobs, resulting in suboptimal job scheduling.

Method used

A job management device and method that acquire execution conditions, including start and end times, and priority flags, along with job execution analysis information, to schedule jobs optimally, avoiding resource constraints and ensuring jobs meet their end times.

Benefits of technology

The solution effectively schedules jobs to prevent resource constraints in multi-tenant environments, ensures jobs complete by their designated end times, and reduces costs by optimizing resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007684345000001
    Figure 0007684345000001
  • Figure 0007684345000002
    Figure 0007684345000002
  • Figure 0007684345000003
    Figure 0007684345000003
Patent Text Reader

Abstract

To provide a job management apparatus and a job management method which are capable of scheduling a job so as not to burden a limited resource shared by each user in a multi-tenant environment and to maintain the end time of the job.SOLUTION: A job management apparatus acquires job execution conditions including execution time conditions relating to job execution start times and execution end times, priority flags indicating whether or not to give priority to job execution, job execution analysis information for analyzing a load amount of job execution when each tenant of multi-tenant servers executes the job, and power consumption results of each tenant, and schedules the job based on the job execution conditions and the job execution analysis information.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a job management apparatus and a job management method.

Background Art

[0002] In a multi-tenant environment, multiple customers (users) share and utilize the same hardware resources or software resources. A multi-tenant server (multi-tenant system) provides resources to each tenant of multiple users. In job operation on a multi-tenant server, the same resources may compete among multiple customers, resulting in resource constraints. For example, when multiple banks use the same multi-tenant server, it is conceivable that jobs of each bank, such as aggregation operations, will start simultaneously at the time when the bank counter service ends. In this case, in the prior art, the problem of resource constraints was solved by scaling out resources (see Patent Document 1). As a technology related to the present invention, Patent Document 2 exists. The technology of Patent Document 2 calculates the total power consumption of jobs, which is the sum of the power consumption of each job when jobs and similar jobs are executed at regular intervals shorter than the execution time of the job, based on a job information database, and creates a job schedule so as to improve the utilization efficiency of resources based on the total power consumption.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Patent Document 2

Summary of the Invention

Problems to be Solved by the Invention

[0004] When dealing with the problem of resource constraints like the technology in Patent Document 1 by scaling out, the cost (fixed cost / variable cost) will increase significantly. If multi-tenancy is operated with limited resources without scaling out the resources considering the cost, the users of each tenant do not know the execution conditions of the jobs requested by the users of other tenants, so they do not know the optimal time for job execution. For this reason, in multi-tenancy, the use of resources for processing the jobs of each tenant may concentrate at a specific time, resulting in resource constraints.

[0005] Also, when performing job scheduling, a certain degree of change in the start time of the jobs requested by each user is tolerated, but since the end time of the jobs requested by each user will interfere with the operations of each user, it is important to strictly adhere to it.

[0006] The technology in Patent Document 2 targets job scheduling, but it is not a technology that can solve the specific problems in multi-tenancy (for example, the problem that the users of each tenant do not know the execution conditions of the jobs of other tenants). Therefore, even when the technology in Patent Document 2 is applied to multi-tenancy, the execution conditions of the jobs of other tenants are not considered, and the jobs of each tenant are scheduled, so resource constraints may occur.

[0007] Therefore, one of the objectives of the present invention is to provide a job management device and a job management method that can schedule jobs so that the limited resources shared by each user in multi-tenancy are not constrained and the end time of the jobs is adhered to.

Means for Solving the Problem

[0008] In order to solve the above problems, a job management device of the present invention is a job management device including an information processing device that schedules jobs executed by each tenant of a multi-tenant server. The information processing device acquires an execution condition of a job including an execution time condition regarding an execution start time and an execution end time of the job of each tenant and a priority flag indicating whether to prioritize job execution, and job execution analysis information obtained by analyzing job execution results, and is configured to schedule jobs based on the execution condition of the job and the job execution analysis information.

[0009] A job management method of the present invention is a job management method using an information processing device that schedules jobs executed by each tenant of a multi-tenant server. The information processing device acquires an execution condition of a job including an execution time condition regarding an execution start time and an execution end time of the job of each tenant and a priority flag indicating whether to prioritize job execution, and job execution analysis information obtained by analyzing job execution results, and schedules jobs based on the execution condition of the job and the job execution analysis information.

Advantages of the Invention

[0010] According to the present invention, it is possible to schedule jobs so that limited resources shared by each user in a multi-tenant environment are not strained and the end time of the jobs is met.

Brief Description of the Drawings

[0011]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8A

Figure 8B

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In all the drawings of the embodiments, the same or corresponding parts may be denoted by the same reference numerals. In the following description, various information may be described in terms of expressions such as "records", but the various information may be expressed in other data structures. When explaining the identification information, expressions such as "ID", "name", "number", etc. are used, but these are mutually replaceable. In the following description, when explaining the process with the program or functional block as the subject, the subject of the process may be the CPU or the device (server) instead of the program or functional block.

[0013] <<EMBODIMENT>> FIG. 1 is a system configuration diagram of a system including a job management apparatus (job management server 300) according to an embodiment of the present invention. The system includes a multi-tenant server 100, user terminals 200a to 200c, and a job management server 300. The multi-tenant server 100, the user terminals 200a to 200c, and the job management server 300 are connected to each other via a network NW1 so as to be able to transmit and receive information. Note that the user terminals 200a to 200c may be referred to as "user terminal 200" when there is no need to particularly distinguish them. The user terminal 200 is, for example, a terminal equipped with a display (display device), for example, a PC (Personal Computer), and for example, a terminal used in a bank which is each tenant.

[0014] The multi-tenant server 100 includes tenants 1TN1 to 3TN3. Hereinafter, the tenants 1TN1 to 3TN3 may be referred to as "tenant TN" when there is no need to particularly distinguish them. Each tenant TN is a logically isolated computer resource space provided by the multi-tenant server 100 for each customer (user). In this example, the tenant TN in the multi-tenant server 100 is composed of one or more virtual servers constructed on a physical server.

[0015] FIG. 2 shows an example of the hardware configuration of the multi-tenant server 100. As shown in FIG. 2, the multi-tenant server 100 includes a CPU 111, a ROM 112, a RAM 113, a non-volatile storage device (HDD) 114 capable of reading and writing data, a network interface 115, an input / output interface 116, and the like. These are connected to each other via a bus 117 so as to be able to communicate with each other. The multi-tenant server 100 may be composed of a plurality of physical servers. The multi-tenant server 100 includes a storage battery 160 (not shown in FIG. 2) in which power is stored. Note that the storage battery 160 may be installed outside the multi-tenant server 100.

[0016] The CPU 111 loads various programs (not shown) stored in the ROM 112 and / or the HDD 114 into the RAM 113, and realizes various functions by executing the programs loaded in the RAM 113. As described above, the various programs executed by the CPU 111 are loaded into the RAM 113, and the data used when the CPU 111 executes the various programs is temporarily stored. The ROM 112 and / or the HDD 114 are non-volatile storage media in which various programs are stored. The network interface 115 is an interface for connecting the multi-tenant server 100 to the network NW1. The input / output interface 116 is an interface for connecting to operating devices such as keyboards and mice and a display (display device). Note that the virtual server has a configuration in which the above configuration of the physical server is virtualized.

[0017] FIG. 3 is a functional block diagram showing a configuration example of the multi-tenant server 100. As shown in FIG. 3, the multi-tenant server 100 includes a virtual server 120a included in tenant 1 TN1, a virtual server 120b included in tenant 2 TN2, and a virtual server 120c included in tenant 3 TN3. Further, the multi-tenant server 100 includes a power consumption analysis server 130 configured by virtual servers and a power management server 140 configured by virtual servers.

[0018] Each virtual server 120 of each tenant TN includes a power consumption information unit 121a (121b, 121c), a job execution registration unit 122a (122b, 122c), and an execution control unit 123a (123b, 123c). Note that the power consumption information units 121a to 121c are referred to as "power consumption information unit 121" when there is no need to particularly distinguish them. The job execution registration units 122a to 122c are referred to as "job execution registration unit 122" when there is no need to particularly distinguish them. The execution control units 123a to 123c are referred to as "execution control unit 123" when there is no need to particularly distinguish them.

[0019] The power consumption information unit 121 acquires and holds (stores, memorizes) information regarding the power consumption consumed by each tenant TN (analysis information 400 at the time of job execution in FIG. 4). The details of the analysis information 400 at the time of job execution will be described later.

[0020] In the job execution registration unit 122, jobs to be scheduled for execution in tenant TN input from the user terminal 200 are registered.

[0021] The execution control unit 123 controls the execution timing of the job so that the job is executed as scheduled.

[0022] The power consumption information unit 121 is composed of a virtualized HDD 114. The job execution registration unit 122 is composed of a program stored in a virtualized ROM 112 and / or HDD 114 executed by a virtualized CPU 111, and a virtualized HDD 114. The execution control unit 123 is composed of a program stored in a virtualized ROM 112 and / or HDD 114 executed by a virtualized CPU 111.

[0023] The power consumption analysis server 130 includes a power consumption information acquisition unit 131, an analysis unit 132, a billing unit 133, and a data storage unit 134.

[0024] The power consumption information acquisition unit 131 acquires information regarding power consumption from each tenant TN.

[0025] The analysis unit 132 analyzes the information acquired by the power consumption information acquisition unit 131.

[0026] The billing unit 133 calculates the billing amount for job execution. The billing unit 133 calculates the billing amount (yen) for job execution by multiplying the job unit price (yen) by the power consumption (kw).

[0027] The data storage unit 134 stores (memorizes, holds) the information acquired by the power consumption information acquisition unit 131, the information calculated by the analysis unit 132 and the charging unit 133 (the job execution analysis information 500 in FIG. 5, the power consumption analysis information 600 in FIG. 6, and the job power consumption prediction information 800 in FIG. 8A), and the information necessary for other analyses (the job unit price information 700 in FIG. 7). The details of the job execution analysis information 500, the power consumption analysis information 600, the job unit price information 700, and the job power consumption prediction information 800 will be described later.

[0028] The power consumption information acquisition unit 131 is configured by a program stored in the virtualized ROM 112 and / or HDD 114 executed by the virtualized CPU 111.

[0029] The analysis unit 132 is configured by a program stored in the virtualized ROM 112 and / or HDD 114 executed by the virtualized CPU 111. The charging unit 133 is configured by a program stored in the virtualized ROM 112 and / or HDD 114 executed by the virtualized CPU 111. The data storage unit 134 is configured by the HDD 114.

[0030] The power management server 140 includes a power type discrimination unit 141 and a power acquisition unit 142. The power type discrimination unit 141 discriminates the power type for each amount of power charged in the storage battery 160. The power type discrimination unit 141 holds (memorizes, stores) power management information for each power type (not shown), and manages the amount of power for each power type based on the power management information. The power management information includes information associating the amount of power charged in the storage battery 160 with the power type.

[0031] The power acquisition unit 142 determines from which power source among the power company supply power source 171, the power company supply power source 172, the renewable energy 173, and the self-generated power 174 to charge the storage battery 160, and controls the storage battery 160 by transmitting a command to the controller so that the storage battery 160 is charged with power from the determined power source. The power stored in the storage battery 160 is used as the power for operating the multi-tenant server 100.

[0032] The power type determination unit 141 includes a program stored in the virtualized ROM 112 and / or HDD 114 executed by the virtualized CPU 111, and the HDD 114. The power acquisition unit 142 is configured by a program stored in the virtualized ROM 112 and / or HDD 114 executed by the virtualized CPU 111.

[0033] The job management server 300 includes a scheduling unit 301 and a data storage unit 302. The scheduling unit 301 performs job scheduling to determine the execution timing of the jobs registered in the job execution registration unit 122 of each tenant TN. The data storage unit 302 stores (stores, holds) the condition information 900, determination condition information 1000, and scheduling determination information 1100 at the time of job creation, which are acquired by the scheduling unit 301 and registered in the job execution registration unit 122.

[0034] Note that the details of the condition information 900, determination condition information 1000, and scheduling determination information 1100 at the time of job creation will be described later. The job management server 300 is configured by a server similar to the hardware configuration shown in FIG. 2 above. The server may be composed of a plurality of servers, or may be a virtual server on the cloud. The server may sometimes also be referred to as an "information processing device".

[0035] The scheduling unit 301 is configured by a program stored in the ROM 112 and / or HDD 114 executed by the CPU 111. The data storage unit 302 is composed of the HDD 114.

[0036] The storage battery 160 is a battery module including a rechargeable secondary battery and a controller that controls charging and discharging of the secondary battery, selects a power source for charging, measures power, etc. The storage battery 160 functions as a power source that supplies power to the multi-tenant server 100. As described above, the power type discrimination unit 141 of the power management server 140 holds (stores, stores) power management information associating the amount of power charged in the storage battery 160 with the power type. The power type discrimination unit 141 virtually manages the power stored in the storage battery 160 by virtually classifying it into the amount of power for each power type according to the power management information.

[0037] For example, when the storage battery 160 is charged, the power type discrimination unit 141 increases the amount of power for each virtual power type according to the type of power source that supplies power to the storage battery 160. For example, when the power source type when charging the storage battery 160 is renewable energy, the power type discrimination unit 141 increases the amount of power associated with the power type: renewable energy in the power management information by the amount of power charged.

[0038] When a job with a specified power type is executed, the power type discrimination unit 141 acquires the power consumption amount per job unit when the job is executed. The power type discrimination unit 141 updates the power management information by regarding the power consumption amount per job unit consumed by job execution as the amount of power of the power type associated with the job, and reducing the amount of power of the corresponding power type in the power amount of the storage battery 160 by the amount of power consumption consumed by job execution.

[0039] In the multi-tenant server 100, each tenant TN is allocated the computing resources of the multi-tenant server 100 necessary for executing a job, and the job is executed. As the number of jobs executed simultaneously in the same time period increases, the amount of computing resources used in that time period increases, and the power consumption of the multi-tenant server 100 also increases. In this example, when each tenant TN of the multi-tenant server 100 is executing a large number of jobs and the resource utilization rate of the multi-tenant server 100 is 80%, it is assumed that the power consumption of the multi-tenant server 100 is 80 kw.

[0040] FIG. 4 is a diagram for explaining analysis information 400 at the time of job execution stored in the power consumption information unit 121 of each virtual server 120 of each tenant TN and an acquisition example thereof. The analysis information 400 at the time of job execution includes, as columns (columns) for storing information (values), #401, job name 402, execution start time 403, execution completion time 404, subsequent job 405, power type 406, power consumption (kw) 407, and charge amount (yen) 408. In the analysis information 400 at the time of job execution, information corresponding to each column when tenant TN1 to TN3 (tenant TN1 in this example) executes a job is associated with each other and stored as row unit information (record). Specifically, #401 stores a number associated with the information (record). The job name 402 stores the name of the job. The execution start time 403 stores the time when the associated job actually starts execution. The execution completion time 404 stores the time (time) when the associated job actually completes execution. The subsequent job 405 stores the subsequent job of the associated job. The power type 406 stores the power type when the associated job is executed. The power consumption (kw) 407 stores the power consumption (kw) when the associated job is executed. The charge amount (yen) 408 stores the charge amount (yen) when the associated job is executed.

[0041] For example, when the tenant TN1 executes Job11, Job12, and Job13, the power consumption information unit 121a acquires information corresponding to each column of the analysis information 400 at the time of job execution, creates the analysis information 400 at the time of job execution, and transmits the created analysis information 400 at the time of job execution to the power consumption analysis server 130. The power consumption information acquisition unit 131 of the power consumption analysis server 130 stores and accumulates the analysis information 400 at the time of job execution received from the virtual server 120a of the tenant TN1 in the data storage unit 134.

[0042] FIG. 5 is a diagram for explaining an example of job execution analysis information 500 stored in the data storage unit 134 of the power consumption analysis server 130. The job execution analysis information 500 is created (updated) based on the analysis information 400 at the time of job execution accumulated in the data storage unit 134. The job execution analysis information 500 is newly created or updated based on the analysis information 400 at the time of job execution in FIG. 4 sequentially accumulated in the data storage unit 134.

[0043] The job execution analysis information 500 includes, as columns (columns) for storing information (values), #501, job name 502, execution start time (condition 1) 503, execution end time (condition 2) 504, power type (condition 3) 505, priority flag 506, previous execution start time 507, previous execution completion time 508, average execution time (minutes) 509, subsequent job 510, tenant 511, average power consumption (kw) 512, and charge amount (yen) 513.

[0044] The job execution analysis information 500 stores information corresponding to each column of the information analyzed and created (updated) based on the analysis information 400 during job execution stored (accumulated) in the data storage unit 134, in association with each other, as row unit information (records). Specifically, in ♯501, a number associated with the information (record) is stored. In the job name 502, the identification information (name) of the job is stored. In the execution start time (condition 1) 503, the execution start time (condition 1) set as the execution condition of the associated job is stored. In the execution end time (condition 2) 504, the execution end time (condition 2) set as the execution condition of the associated job is stored. In the power type (condition 3) 505, the power type (condition 3) set as the execution condition of the associated job is stored. In the priority flag 506, information (ON or OFF) indicating the setting state of the priority flag 506 set as the execution condition of the associated job is stored. When the setting state of the priority flag 506 is "ON", it indicates that the job execution priority of the associated job is higher than the job execution priority when the setting state of the priority flag 506 is "OFF". Note that when the setting state of the priority flag 506 of the execution condition of a certain job is "ON", it is referred to as "priority is given to a certain job", etc. When the setting state of the priority flag 506 of the execution condition of a certain job is "OFF", it is referred to as "priority is not given to a certain job", etc.

[0045] The previous execution start time 507 stores the previous execution start time (execution start time) of the associated job. The previous execution completion time 508 stores the previous execution completion time of the associated job. The average execution time (minutes) 509 stores the average execution time (minutes) of the associated job. The subsequent job 510 stores the name of the subsequent job of the associated job. The tenant 511 stores the identification information (number) of the tenant of the associated job. The average power consumption (kw) 512 stores the average power consumption (kw) of the associated job. The charge amount (yen) 513 stores the charge amount (yen) of the associated job.

[0046] FIG. 6 is a diagram for explaining an example of power consumption analysis information 600 stored in the data storage unit 134 of the power consumption analysis server 130. The power consumption analysis information 600 includes, as columns (columns) for storing information (values), a time 601, a total power consumption (kw) 602, the power consumption of tenant 1 (kw) 603, the power consumption of tenant 2 (kw) 604, the power consumption of tenant 3 (kw) 605, and a job registration determination priority 606. In the power consumption analysis information 600, information corresponding to each column regarding the past power consumption of each tenant (for example, when the previous job was executed (for example, the day before the registration date)) is associated with each other and stored as row unit information (records). Specifically, the time 601 stores the time period of the analysis unit of the power consumption. The total power consumption (kw) 602 stores the total power consumption of tenants 1 TN1 to 3 TN3 in the associated time period. The power consumption of tenant 1 (kw) 603 stores the power consumption of tenant 1 TN1 in the associated time period. The power consumption of tenant 2 (kw) 604 stores the power consumption of tenant 2 TN2 in the associated time period. The power consumption of tenant 3 (kw) 605 stores the power consumption of tenant 3 TN3 in the associated time period. The job registration determination priority 606 stores the priority of the time period for assigning jobs.

[0047] FIG. 7 is a diagram for explaining an example of job unit price information 700 stored in the data storage unit 134 of the power consumption analysis server 130. The job unit price information 700 includes, as columns (columns) for storing information (values), #701, power type 702, and unit price (yen) per job 703. In the job unit price information 700, information corresponding to each column regarding the unit price per job for each power type is associated with each other and stored as row unit information (records). Specifically, in #701, a number associated with the information (record) is stored. In the power type 702, the type of power (power source) stored in the storage battery 160 is stored. In the unit price (yen) per job, the unit price (yen) per job for the associated power type is stored. Note that the unit price (yen) per job for a power type is calculated based on the electricity charge of the power type, the cost of power generation, etc., and the higher the electricity charge and cost of the power, the higher the unit price (yen) per job.

[0048] FIG. 8A illustrates an example of job power consumption prediction information 800 stored in the data storage unit 134 of the power consumption analysis server 130. The job power consumption prediction information 800 includes, as columns (columns) for storing information (values), time 801, predicted power consumption (kw) of the multi-tenant server 100, total number of jobs on the job registration date 803, predicted power consumption (kw) on the job registration date in tenant 1 804, predicted power consumption (kw) on the job registration date in tenant 2 805, predicted power consumption (kw) on the job registration date in tenant 3 806, number of jobs on the job registration date in tenant 1 807, number of jobs on the job registration date in tenant 2 808, and number of jobs on the job registration date in tenant 3 809.

[0049] In the job power consumption prediction information 800, information corresponding to each column regarding the power consumption prediction of the multi-tenant server 100 is associated with each other and stored as row-unit information (records). Specifically, at time 801, the time zone of the time range to be predicted is stored. In the multi-tenant power consumption prediction (kw) 802, the predicted power consumption in the multi-tenant server 100 for the associated time zone is stored. In the total number of jobs on the job registration date 803, the total number of jobs on the job registration date for the associated time zone is stored. In the power consumption prediction (kw) of tenant 1 on the job registration date 804, the predicted power consumption on the job registration date in tenant 1 TN1 for the associated time zone is stored. In the power consumption prediction (kw) of tenant 2 on the job registration date 805, the predicted power consumption on the job registration date of tenant 2 TN2 for the associated time zone is stored. In the power consumption prediction (kw) of tenant 3 on the job registration date 806, the predicted power consumption on the job registration date of tenant 3 TN3 for the associated time zone is stored. In the number of jobs on the job registration date in tenant 1 807, the number of jobs on the job registration date in tenant 1 TN1 is stored. In the number of jobs on the job registration date in tenant 2 808, the number of jobs on the job registration date in tenant 2 TN2 is stored. In the number of jobs on the job registration date in tenant 3 TN3 809, the number of jobs on the job registration date in tenant 3 is stored.

[0050] The job power consumption prediction information 800 is created and updated by the analysis unit 132. FIG. 8B is a flowchart showing the processing flow of "power consumption prediction" executed by the analysis unit 132 of the power consumption analysis server 130.

[0051] In response to a request from the job management server 300, the analysis unit 132 creates and updates the job power consumption prediction information 800. The analysis unit 132 starts "power consumption prediction" from step 820 in FIG. 8B, sequentially executes the processes of steps 821 to 825 described below, and then proceeds to step 830 to temporarily end this processing flow.

[0052] Step 821: The analysis unit 132 acquires job registration information (such as the number of jobs for each tenant TN) on the job registration date.

[0053] Step 822: The analysis unit 132 calculates the number of jobs on the job registration date in 10-minute units.

[0054] Step 823: The analysis unit 132 refers to the job execution analysis information 500 and acquires the average power consumption.

[0055] Step 824: The analysis unit 132 calculates the power consumption prediction for the job registration date in 10-minute units based on the average power consumption.

[0056] Step 825: The analysis unit 132 updates the power consumption prediction in the job power consumption prediction information 800.

[0057] FIG. 9 is a diagram for explaining an example of the condition information 900 at the time of job creation stored in the data storage unit 302 of the job management server 300. Note that the condition information 900 at the time of job creation is acquired from the job execution registration unit 122 of the virtual server 120 for each tenant TN and stored in the data storage unit 302.

[0058] The condition information 900 at the time of job creation includes, as columns (columns) for storing information (values), #901, job name 902, execution start time (condition 1) 903, execution end time (condition 2) 904, power type (condition 3) 905, priority flag 906, subsequent job 907, and tenant 908.

[0059] In the condition information 900 at the time of job creation, information corresponding to each column regarding the execution conditions of the job set by the user at the time of job creation is associated with each other and stored as row-unit information (record). Specifically, in #901, a number associated with the information (record) is stored. In the job name 902, the name of the job is stored. In the execution start time (condition 1) 903, the execution start time as condition 1 of the associated job is stored. In the execution end time (condition 2) 904, the execution end time (execution end time) as condition 2 of the associated job is stored. In the power type (condition 3) 905, the power type as condition 3 of the associated job is stored. In the priority flag 906, "ON" or "OFF" indicating the state of the priority flag assigned to the associated job is stored. In the subsequent job 907, the name of the subsequent job of the associated job is stored. The tenant 908 stores the identification information (number) of the tenant TN on which the job is executed.

[0060] FIG. 10 is a diagram for explaining an example of the determination condition information 1000 stored in the data storage unit 302 of the job management server 300. The determination condition information 1000 includes, as columns (columns) for storing information (values), #1001, the determination type 1002, and the error threshold (kw) 1003 between the total power consumption of the previous time and the predicted power consumption on the registration date.

[0061] In the determination condition information 1000, information corresponding to each column regarding the determination conditions in the assignment of jobs with low power consumption is associated with each other and stored as row-unit information (record). Specifically, in #1001, a number associated with the information (record) is stored. In the determination type 1002, information (〇, △, or ×) indicating the determination type is stored. In the error threshold (kw) 1003 between the total power consumption of the previous time and the predicted power consumption on the registration date, the determination conditions when determined according to the associated determination type are stored.

[0062] FIG. 11 is a diagram for explaining an example of scheduling determination information 1100 of the job registration date stored in the data storage unit 302 of the job management server 300. The scheduling determination information 1100 of the job registration date includes, as columns (columns) for storing information (values), a time 1101, a total previous power consumption (kw) 1102, a predicted power consumption on the registration date 1103, a job registration determination priority 1104, a determination 1105, and a scheduling decision 1106.

[0063] In the scheduling determination information 1100 of the job registration date, information corresponding to each column related to the predicted power consumption on the job registration date is associated with each other and stored as row unit information (records). Specifically, the time 1101 stores the time zone of the time range to be determined. The total previous power consumption (kw) 1102 stores the total power consumption of each tenant TN in the associated time zone in the previous time (for example, the day before the registration date). The predicted power consumption on the registration date stores the predicted power consumption on the job registration date in the associated time zone. The job registration determination priority 1104 stores the priority of the associated time zone (the priority when determining the time zone to which the job is assigned). The determination 1105 stores information indicating the determination result (the determination result according to the determination condition information 1000) of the error between the total previous power consumption and the predicted power consumption on the registration date in the associated time zone. The scheduling decision 1106 stores information (〇) indicating that the associated time zone has been determined.

[0064] <Outline of operation> The user of each tenant TN registers the job to be executed for each tenant TN in the job execution registration unit 122 by operating the job creation screen 1200 shown in FIG. 12, which is a GUI screen displayed on the display of the user terminal 200. The job creation screen 1200 is displayed on the display of the user terminal 200, for example. FIG. 12 is a diagram for explaining an example of the job creation screen 1200. The job creation screen 1200 includes an input box 1201 for the job name, an input box 1202 for the execution registration date, an input box 1203 for the execution start time (condition 1), an input box 1204 for the execution end time (condition 2), an input box 1205 for the power type (condition 3), an input box 1206 for the priority flag, and a setting button 1207.

[0065] After the user inputs information into each of the input boxes 1201 to 1206 of the job creation screen 1200, by operating the setting button 1207, the job to be scheduled is registered in the job execution registration unit 122 under the input execution conditions.

[0066] The job management server 300 acquires the condition information 900 at the time of job creation from the job execution registration unit 122 and stores it in the data storage unit 302. The job management server 300 refers to the condition information 900 at the time of job creation and performs scheduling for a plurality of jobs of each tenant TN that is the scheduling target. At this time, the job management server 300 optimally sets the start time of the job in the scheduling based on the job execution analysis information 500, the power consumption analysis information 600, the job unit price information 700, the job power consumption prediction information 800, the condition information 900 (execution start time, execution end time, priority flag, and power type), the determination condition information 1000, and the scheduling determination information 1100 on the job registration date. The details of this scheduling method will be described later. The job execution analysis information 500 and the power consumption analysis information 600 are information obtained by analyzing the actual results regarding the billing amount when the job is executed and the power consumption consumed by each tenant TN, and may be referred to as "job execution analysis information" for convenience.

[0067] Before determining the final schedule, the job management server 300 checks whether each job can be completed by the scheduled start time of the set job by the schedule before the execution end time (condition 2). If the job management server 300 can confirm that each job can be completed by the execution end time according to the set schedule, it determines the set schedule (determines it as the final schedule).

[0068] <Specific operation> FIG. 13 is a flowchart showing the processing flow of automatic scheduling of jobs executed by the scheduling unit 301 of the job management server 300.

[0069] The scheduling unit 301 starts processing from step 1300 in FIG. 13, executes the processing from step 1305 to step 1365 described below according to the flowchart, then proceeds to step 1395, and once ends this processing flow.

[0070] Step 1305: The scheduling unit 301 obtains the condition information 900 at the time of job creation shown in FIG. 9, thereby obtaining a plurality of jobs to be scheduled, the job execution time conditions (condition 1 and condition 2) of each job, the power type (condition 3), and the presence or absence of assignment of a priority flag (ON or OFF).

[0071] Step 1310: The scheduling unit 301 determines whether there is a job with a priority flag assigned among the plurality of jobs to be scheduled (hereinafter referred to as "scheduled jobs"). If there is a job with a priority flag assigned, the scheduling unit 301 determines "YES" and proceeds to step 1315. If there is no job with a priority flag assigned, the scheduling unit 301 determines "NO" and directly proceeds to step 1320.

[0072] Step 1315: The scheduling unit 301 sets the start time of the job in scheduling to the execution start time of Condition 1 for the jobs with priority flags among the jobs to be scheduled. As a result, the jobs with priority flags are preferentially set with the execution start time of Condition 1 as the start time of the jobs. Therefore, for example, for a job for which the user wants to prioritize the execution of the job (e.g., a job with high importance), if a priority flag is assigned by a setting operation by the user, the job is preferentially scheduled. Thus, the job management server 300 can schedule jobs to match the user's request to prioritize the execution of jobs with high importance.

[0073] Step 1320: The scheduling unit 301 acquires the job analysis information 500 from the power consumption analysis server 130, and refers to the job analysis information 500 to determine whether there is a new job among the jobs to be scheduled that do not have a priority flag and whose start time is not set. Note that a "new job" refers to a job for which "the same job" or "similar jobs" are not stored in the job execution analysis information 500. "The same job" refers to a job with exactly the same name, and "similar jobs" refer to jobs with the same or similar execution conditions, such as jobs with different names but at least most of the execution conditions overlapping.

[0074] If there is a new job whose start time is not set, the scheduling unit 301 determines "YES" and proceeds to step 1325. If there is no new job whose start time is not set, the scheduling unit 301 determines "NO" and proceeds to step 1330.

[0075] Step 1325: The scheduling unit 301 extracts new jobs among the jobs to be scheduled whose start times are not set, sets the start times of the extracted new jobs through the "process of determining the start time of the new job", and returns to step 1320. Note that the details of the "process of determining the start time of the new job" will be described later.

[0076] Step 1330: The scheduling unit 301 determines whether there are jobs with all the same conditions for condition 1 and condition 2 among the jobs other than the new jobs among the jobs to be scheduled and to which the priority flag is not assigned.

[0077] If there are jobs with all the same conditions for condition 1 and condition 2, the scheduling unit 301 determines "YES" in step 1330 and proceeds to step 1335. If there are no jobs with all the same conditions for condition 1 and condition 2 among the jobs to be scheduled, the scheduling unit 301 determines "NO" in step 1330 and proceeds to step 1345.

[0078] Step 1335: The scheduling unit 301 sets the job execution time for the jobs among the jobs to be scheduled with all the same conditions for condition 1 and condition 2 through the "process of determining the start time of the jobs with the same conditions for condition 1 and condition 2". Note that the details of the "process of determining the start time of the jobs with the same conditions for condition 1 and condition 2" will be described later.

[0079] Step 1340: The scheduling unit 301 determines whether there are jobs among the jobs to be scheduled whose start times are not set. If there are jobs whose start times are not set, among the jobs to be scheduled, there are remaining jobs whose start times are not set and whose condition 1 and condition 2 are different. Therefore, in this case, the scheduling unit 301 determines "YES" and proceeds to step 1345. If there are no jobs whose start times are not set, the scheduling unit 301 determines "NO" and proceeds to step 1350.

[0080] Step 1345: After the scheduling unit 301 sets the start time of a job that meets different conditions of Condition 1 and Condition 2 among the jobs to be scheduled by performing the process of "determining the start time of a job with different conditions of Condition 1 and Condition 2", it proceeds to Step 1350. The details of the process of "determining the start time of a job with different conditions of Condition 1 and Condition 2" will be described later.

[0081] Step 1350: The scheduling unit 301 refers to the power consumption analysis information 600 and determines whether there is a time period in which the resource utilization rate exceeds 80% (a time period in which the total power consumption (kw) for each time period exceeds 80 kw). If the scheduling unit 301 determines that there is no time period in which the resource utilization rate exceeds 80%, it determines "NO" and proceeds to Step 1365. If there is a time period in which the resource utilization rate exceeds 80%, the scheduling unit 301 determines "YES" and proceeds to Step 1355.

[0082] Step 1355: The scheduling unit 301 sets the jobs among the jobs to be scheduled that do not have a priority flag as "jobs with low priority".

[0083] Step 1360: The scheduling unit 301 executes the process of "determining the start time of a job with low priority" for the "jobs with low priority" set in Step 1355. The details of the process of "determining the start time of a job with low priority" will be described later. As a result, the start time of the job in the time period expected to be resource-constrained is set to the time changed from the execution start time of the job execution condition, thereby improving the resource constraint.

[0084] Step 1365: The scheduling unit 301 executes the process of "confirming that the job execution can be completed by the execution end time of Condition 2" for each job to be scheduled. The details of the process of "confirming that the job execution can be completed by the execution end time of Condition 2" will be described later.

[0085] Figure 14 is a flowchart showing the processing flow of "processing for determining the start time of a new job" executed by the scheduling unit 301 of the job management server 300.

[0086] When the scheduling unit 301 proceeds to step 1325 in FIG. 13, it starts the "processing for determining the start time of a new job" from step 1400 in FIG. 14, executes the processing from step 1405 to step 1435 described below according to the flowchart, and then proceeds to step 1495 to temporarily end this processing flow.

[0087] Step 1405: The scheduling unit 301 selects one new job whose start time is not set from among the jobs to be scheduled.

[0088] Step 1410: The scheduling unit 301 sets the start time in the scheduling of the selected new job to the time of condition 1.

[0089] Step 1415: The scheduling unit 301 refers to the power consumption analysis information 600 in FIG. 6 and determines whether the resource utilization rate exceeds 80% at the time of condition 1 (the time zone corresponding to condition 1) in the previous total power consumption. If the resource utilization rate exceeds 80% at the time of condition 1, the scheduling unit 301 determines "YES" and proceeds to step 1420. If the resource utilization rate does not exceed 80% at the time of condition 1, the scheduling unit 301 determines "NO" and proceeds to step 1435. In this case, the start time of the new job is set to the time of step 1410.

[0090] Step 1420: The scheduling unit 301 acquires prediction information on the power consumption of job execution (job power consumption prediction information 800) from the power consumption analysis server 300.

[0091] Step 1425: The scheduling unit 301 assigns the job to the time period with the lowest power consumption among the time periods within the ranges of condition 1 and condition 2 of the selected new job in the job power consumption prediction information 800. If there are multiple time periods with the same lowest power consumption, the job is assigned to the time period closest to the time of condition 1.

[0092] Step 1430: The scheduling unit 301 sets the start point of the time period assigned in Step 1425 as the start time of the job, instead of the time set in Step 1410. Thereby, the start time of the new job can avoid the time period expected to be resource - constrained.

[0093] Step 1435: The scheduling unit 301 determines whether the start time of the job has been set for all new jobs among the jobs to be scheduled. If the start time of the job has not been set for all new jobs, the scheduling unit 301 determines "NO" and returns to Step 1405. If the start time of the job has been set for all new jobs, the scheduling unit 301 determines "YES" and proceeds to Step 1495.

[0094] FIG. 15 is a flowchart showing the processing flow of "processing for determining the start time of jobs with the same condition 1 and condition 2" executed by the scheduling unit 301 of the job management server 300. In this processing flow, for jobs with the same execution start condition and execution end condition among the jobs to be scheduled, the determination of the priority indicating the order of priority for setting the start time of the job and executing the job is performed.

[0095] In this processing, for jobs other than new jobs in the jobs to be scheduled and having the same condition 1 and condition 2, the start time of the job is set, and further, a priority is assigned to each of the multiple jobs with the same condition.

[0096] When the scheduling unit 301 proceeds to step 1335 in FIG. 13, it starts the process of "determining the start time of jobs with the same conditions for condition 1 and condition 2" from step 1500 in FIG. 15, executes the processes of steps 1505 to 1550 described below according to the flowchart, and then proceeds to step 1595 to temporarily end this process flow.

[0097] Step 1505: The scheduling unit 301 selects a set of multiple jobs with the same condition 1 and condition 2 from among the jobs to be scheduled.

[0098] Step 1510: The scheduling unit 301 acquires the job unit price information 700 in FIG. 7 from the power consumption analysis server 130, acquires the unit price of one job for each power type from the job unit price information 700, and assigns priorities so as to give priority to the power type with the highest unit price among the multiple jobs with the same condition 1 and condition 2 selected. According to the job unit price information 700 in FIG. 7, since the unit price of one job is high in the order of renewable energy > self-generated power > power company-supplied power source > power supply power source (surplus power), priorities are assigned according to this order. That is, the power types with a high contribution to the environment (ecology) are assigned higher priorities.

[0099] Step 1515: The scheduling unit 301 determines whether there are multiple jobs with the same power type priority set among the multiple jobs with the same condition 1 and condition 2 selected. If there are no jobs with the same power type priority set, it determines "NO" and proceeds to step 1545. If there are multiple jobs with the same power type priority set among the multiple jobs with the same condition 1 and condition 2 selected, it determines "YES" and proceeds to step 1520.

[0100] Step 1520: For each of the multiple jobs with the same power type set, the scheduling unit 301 acquires the billing amount from the job execution analysis information 500.

[0101] Step 1525: The scheduling unit 301 assigns priorities to a plurality of jobs with the same power type in descending order of the charging amount.

[0102] Step 1530: The scheduling unit 301 determines whether there are jobs with a difference in job charging amount of less than 10% among the jobs with the same power type that have been assigned priorities. If there are no jobs with a difference in job charging amount of less than 10%, the scheduling unit 301 determines "NO" and proceeds to step 1545. If there are jobs with a difference in job charging amount of less than 10%, the scheduling unit 301 determines "YES" and proceeds to step 1535.

[0103] Step 1535: The scheduling unit 301 acquires information on the average power consumption from the job execution analysis information 500 for each of the plurality of jobs with a difference in job charging amount of less than 10%.

[0104] Step 1540: The scheduling unit 301 assigns priorities to the plurality of jobs with a difference in job charging amount of less than 10% so as to prioritize the one with the lower average power consumption.

[0105] Step 1545: For each of the plurality of jobs where condition 1 and condition 2 are the same condition, the scheduling unit 301 sets the start time of the job according to condition 1 and determines the final priority. Note that this priority is used in the step process of FIG. 17 described later.

[0106] Step 1550: The scheduling unit 301 determines whether there is a set consisting of a plurality of jobs with the same condition 1 and condition 2 for which the start time of the job is not set among the jobs to be scheduled. If there is a set consisting of a plurality of jobs with the same condition 1 and condition 2 for which the start time of the job is not set among the jobs to be scheduled, the scheduling unit 301 determines "YES" and returns to step 1505. If there is no set consisting of a plurality of jobs with the same condition 1 and condition 2 for which the start time of the job is not set among the jobs to be scheduled, the scheduling unit 301 determines "NO" and proceeds to step 1595.

[0107] FIG. 16 is a flowchart showing the processing flow of "processing for determining the start time of jobs with different condition 1 and condition 2" executed by the scheduling unit 301 of the job management server 300. When it is determined "NO" in step 1340 and the process proceeds to step 1345, in this "processing for determining the start time of jobs with different condition 1 and condition 2", scheduling is performed for the remaining jobs for which the start time of the jobs among the jobs to be scheduled is not set.

[0108] When the scheduling unit 301 proceeds to step 1345 in FIG. 13, it starts the "processing for determining the start time of jobs with different condition 1 and condition 2" from step 1600 in FIG. 16, executes the processing of steps 1605 to 1645 described below according to the flowchart, and then proceeds to step 1695 to temporarily end this processing flow.

[0109] Step 1605: The scheduling unit 301 selects one job for which the start time of the job is not set from among the jobs to be scheduled.

[0110] Step 1610: The scheduling unit 301 acquires the scheduling determination information 1100 of the job registration date. The scheduling unit 301 refers to the power consumption analysis information 600 and updates the value of the previous total power consumption (kw) 1102 of the scheduling determination information 1100 of the job registration date.

[0111] Step 1615: For the selected one job, the scheduling unit 301 assigns a job registration determination priority from 1 to 5 to the time zone within the time range of the execution conditions of the selected one job (the time range between Condition 1 and Condition 2) based on "Time of Condition 1 > Time with low power consumption". Note that among 1 to 5, the smaller the number, the higher the priority. That is, as shown in FIG. 11, the job registration determination priority is assigned (stored) to the row associated with the time zone of the job registration determination priority 1104 in the scheduling determination information 1100 on the job registration date. Assigning from 1 to 5 to the time zone based on "Time of Condition 1 > Time with low power consumption" means first assigning 1 to the time zone corresponding to the time of Condition 1. Next, 2 to 5 are assigned in the order of the time zones with smaller total power consumption (kw) of the power consumption total 602. At this time, if there are multiple time zones with the same power consumption, a higher priority is assigned to the time zone closer to the time zone of Condition 1.

[0112] Step 1620: The scheduling unit 301 acquires prediction information on the power consumption of job execution (prediction information on the power consumption of job execution (job power consumption prediction information 800)) from the power consumption analysis server 130. The scheduling unit 301 updates the value of the power consumption prediction 1103 on the registration date in the scheduling determination information 1100 on the job registration date based on the acquired prediction information on the power consumption of job execution.

[0113] Step 1625: The scheduling unit 301 refers to the scheduling determination information 1100 on the job registration date and calculates an error threshold value between the previous power consumption information and the power consumption prediction information on the registration date (= "Power consumption prediction on the registration date (kw)" - "Previous total power consumption (kw)").

[0114] Step 1630: The scheduling unit 301 determines whether the determination condition (determination type of the determination condition information 1000) of the error threshold for the time zone corresponding to the current job registration determination priority is "〇" and whether the power consumption is 80 kw or less. Note that the job registration determination priority in the first determination is "1". If the determination condition of the error threshold for the time zone corresponding to the job registration determination priority is not "〇", or the power consumption is not 80 kw or less, or both, the scheduling unit 301 determines "NO" and proceeds to step 1635. If the determination condition of the error threshold for the time zone corresponding to the current job registration determination priority is "〇" and the power consumption is 80 kw or less, the scheduling unit 301 determines "YES" and proceeds to step 1640.

[0115] Step 1635: The scheduling unit 301 increases the current job registration determination priority by only "1" and returns to step 1630.

[0116] Step 1640: The scheduling unit 301 sets the start point of the time zone where the determination condition is "〇" to the start time of the selected one job.

[0117] Step 1645: The scheduling unit 301 determines whether there is a job among the scheduling target jobs whose start time is not set. If there is a job whose start time is not set, the scheduling unit 301 determines "YES" and returns to step 1605. If there is no job whose start time is not set, the scheduling unit 301 determines "NO" and proceeds to step 1695.

[0118] Figure 17 is a flowchart for explaining the "processing for determining the start time of a job with low priority" executed by the scheduling unit 301.

[0119] Hereinafter, for convenience of explanation, jobs among the scheduling target jobs that have the same condition 1 and condition 2 are referred to as "duplicate jobs".

[0120] In this "process of determining the start time of low-priority jobs", in order to avoid resource congestion, for duplicate jobs without a priority flag (low priority) during the time period when the total power consumption (kw) 602 of the power consumption analysis information 600 exceeds 80 kw, the start time of the job is set based on the priority (the priority assigned (set) to the job in the process of FIG. 17).

[0121] When the scheduling unit 301 proceeds to step 1345 in FIG. 13, it starts the "process of determining the start time of low-priority jobs" from step 1700 in FIG. 17, executes the processes of step 1705 to step 1765 described below according to the flowchart, and then proceeds to step 1795 to temporarily end this process flow.

[0122] Step 1705: The scheduling unit 301 extracts duplicate jobs without a priority flag during the time period exceeding 80 kw.

[0123] Step 1710: The scheduling unit 301 selects an unselected set of duplicate jobs from the extracted duplicate jobs.

[0124] Step 1715: The scheduling unit 301 selects the job with the lowest priority among the selected duplicate jobs.

[0125] Step 1720: The scheduling unit 301 refers to the job execution analysis information 500 and changes the start time of the selected low-priority job to the time immediately after the previous execution completion time of the high-priority job.

[0126] Step 1725: The scheduling unit 301 refers to the power consumption analysis information 600 and determines (checks) whether the total power consumption during the time period of the start time of the changed job exceeds 80 kw of power consumption (resource utilization rate of 80%). If the resource utilization rate does not exceed 80%, the scheduling unit 301 determines "NO" and proceeds to step 1760. If the resource utilization rate exceeds 80%, the scheduling unit 301 determines "YES" and proceeds to step 1730.

[0127] Step 1730: The scheduling unit 301 acquires the scheduling determination information 1100 on the job registration date. The scheduling unit 301 refers to the power consumption analysis information 600 and updates the value of the previous total power consumption (kw) 1102 of the scheduling determination information 1100 on the job registration date.

[0128] Step 1735: The scheduling unit 301 assigns values from 1 to 5 in ascending order of power consumption for the time periods within the time range of the execution conditions for duplicate jobs (the time range between condition 1 and condition 2). The scheduling unit 301 updates the job registration determination priority 1104 of the scheduling determination information 1100 on the job registration date with the assigned value.

[0129] Step 1740: Obtain the predicted information on the power consumption of job execution (the predicted information on the power consumption of job execution (job power consumption prediction information 800)) from the power consumption analysis server 130. Based on the obtained predicted information on the power consumption of job execution, the scheduling unit 301 updates the value of the power consumption prediction 1103 on the registration date of the scheduling determination information 1100 on the job registration date.

[0130] Step 1745: The scheduling unit 301 refers to the scheduling determination information 1100 on the job registration date and calculates the error threshold value between the previous power consumption information and the power consumption prediction information on the registration date for the time period corresponding to the job registration priority (= "power consumption prediction on the registration date (kw)" - "previous total power consumption (kw)").

[0131] Step 1750: The scheduling unit 301 determines whether the determination condition (determination type of the determination condition information 1000) of the error threshold corresponding to the job registration determination priority is "〇". Note that the job registration determination priority in the first determination is "1". If the determination condition of the error threshold corresponding to the job registration determination priority is not "〇", the scheduling unit 301 determines "NO" and proceeds to step 1755. If the determination condition of the error threshold corresponding to the job registration determination priority is "〇", the scheduling unit 301 determines "YES" and proceeds to step 1760.

[0132] Step 1755: The scheduling unit 301 increases the current job registration determination priority by only "1" and returns to step 1750.

[0133] Step 1760: For the selected job with the lowest priority, the scheduling unit 301 sets the start point of the time period corresponding to "○" in the determination condition in step 1750 as the start time of the job. Note that when the scheduling unit 301 determines "NO" in step 1725 and proceeds to this step, for the job whose start time was changed in step 1720, the scheduling unit 301 sets the start time of the job as the changed start time.

[0134] Step 1765: The scheduling unit 301 determines whether all sets of duplicate jobs without a priority flag have been selected. If not all sets of duplicate jobs without a priority flag have been selected, it determines "NO" and returns to step 1705. If all sets of duplicate jobs without a priority flag have been selected, it determines "YES" and proceeds to step 1795.

[0135] FIG. 18 is a flowchart for explaining the "process of confirming that job execution can be completed by the execution end time of Condition 2" executed by the scheduling unit 301. In the "process of confirming that job execution can be completed by the execution end time of Condition 2", for each of the scheduling target jobs, it is confirmed whether each job can be completed by the execution end time of Condition 2 at the job start time set for each job by the above-described process. That is, for each of the scheduling target jobs scheduled by the above-described process, it is confirmed whether it can be completed by the execution end time of Condition 2.

[0136] When the scheduling unit 301 proceeds to step 1365 in FIG. 13, it starts the "process of confirming that job execution can be completed by the execution end time of Condition 2" from step 1800 in FIG. 18, executes the processes of steps 1805 to 1845 described below according to the flowchart, and then proceeds to step 1895 to temporarily end this process flow.

[0137] Step 1805: The scheduling unit 301 acquires the job registration time (the job start time set for each job of the scheduling target job). Step 1810: The scheduling unit 301 acquires the average execution time of the job from the job execution analysis information 500.

[0138] Step 1815: The scheduling unit 301 calculates the predicted time of the job execution end time on the job registration date based on the job registration time and the average execution time.

[0139] Step 1820: The scheduling unit 301 determines whether "the predicted job execution end time on the job registration date falls within the execution end time of Condition 2". If the predicted job execution end time on the job registration date does not fall within the execution end time of Condition 2, the scheduling unit 301 determines "NO" and proceeds to Step 1825. If the predicted job execution end time on the job registration date falls within the execution end time of Condition 2, the scheduling unit 301 determines "YES" and proceeds to Step 1835.

[0140] Step 1825: For the job that is determined not to fall within the execution end time of Condition 2, the scheduling unit 301 aborts the job registration.

[0141] Step 1830: The scheduling unit 301 notifies the user to change Condition 1 and Condition 2 for the job that is determined not to fall within the execution end time of Condition 2. The user can, for example, change at least one of Condition 1 and the condition of the target job to the changed time input by entering the changed time in the input screen displayed on the display of the user terminal 200, thereby causing the scheduling unit 301 to change it.

[0142] Step 1835: The scheduling unit 301 determines (finalizes) the job schedule at the set job start time.

[0143] FIG. 19 is a diagram for explaining an example of a report screen of job execution results. The report screen 1900 includes a date display column 1901, a billing amount display column 1902, a power consumption display column 1903, a selected option display input column 1904, a power type usage ratio graph 1905, a breakdown of charges table 1906, and an execution button 1907. The date display column 1901 displays the period for job execution analysis. The billing amount display column 1902 displays the job billing amount for the period for job execution analysis. The power consumption display column 1903 displays the power consumption for the period for job execution analysis. The selected option display input column 1904 displays the input selected option. The power type usage ratio graph 1905 is a graph showing the usage ratio of power types used in the execution of the job during the period for job execution analysis. The breakdown of charges table 1906 is a table showing the job billing amount for each power type, the job billing amount, the power consumption, and the power consumption ratio. The execution button 1907 is a button composed of an image and is operated (pressed) to cause the job management server 300 to execute a scheduling change.

[0144] When the execution button 1907 is operated, scheduling (rescheduling) is executed according to the option input and displayed in the selected option display input column 1904. In this example, three options can be input: (1) billing amount reduction, (2) power consumption reduction, and (3) power type eco mode. (1) When billing amount reduction is selected and executed, job scheduling (rescheduling) is executed so that the billing amount decreases, and a schedule as a result is proposed. (2) When power consumption reduction is selected and executed, job scheduling (rescheduling) is executed so that the power consumption decreases, and a schedule as a result is proposed. (3) When power type eco mode is selected and executed, job scheduling (rescheduling) is executed so that the contribution of eco increases, and a schedule as a result is proposed.

[0145] FIG. 20 is a diagram for explaining an example of a report screen displayed after selecting and executing the selection option ((1) Charge reduction) on the report screen of FIG. 19. The report screen 2000 includes a selection option display column 2001, a changed job display column 2002, a predicted charge reduction display column 2003, a job change details table 2004, and an execution button 2005.

[0146] In the selection option display column 2001, the executed selection option is displayed. In the changed job display column 2002, the name of the job whose execution conditions are changed by the execution of the selection option is displayed. In the predicted charge reduction display column 2003, the predicted amount of the charge reduced by the execution of the selection option is displayed. In the job change details table 2004, information such as the changed information regarding the job whose execution conditions are changed is displayed. The execution button 2005 is a button composed of an image and is operated to confirm (register) the schedule of the job after being changed by the job management server 300 in the job execution registration unit 122.

[0147] FIG. 21 is a diagram for explaining an example of a report screen displayed after selecting and executing the selection option ((2) Power consumption reduction) on the report screen of FIG. 19. The report screen 2100 includes a selection option display column 2101, a changed job display column 2102, a predicted power consumption reduction display column 2103, a job change details table 2104, and an execution button 2105.

[0148] In the selection option display column 2101, the executed selection option is displayed. In the changed job display column 2102, the name of the job whose execution conditions are changed by the execution of the selection option is displayed. In the predicted power consumption reduction display column 2103, the predicted amount of the power consumption reduced by the execution of the selection option is displayed. In the job change details table 2104, information such as the changed information regarding the job whose execution conditions are changed is displayed. The execution button 2105 is a button composed of an image and is operated to confirm (register) the schedule of the job after being changed by the job management server 300 in the job execution registration unit 122.

[0149] FIG. 22 is a diagram for explaining an example of a report screen displayed after selecting and executing the selection option ((3) power type eco-mode) on the report screen of FIG. 19. The report screen 2200 includes a selection option display column 2201, a changed job display column 2202, a changed power type display column 2203, a job change details table 2204, a changed power type usage ratio graph 2205, a changed power type usage ratio table 2206, and an execution button 2207.

[0150] The executed selection option is displayed in the selection option display column 2201. The name of the job whose execution conditions are changed by the execution of the selection option is displayed in the changed job display column 2202. The changed power type is displayed in the changed power type display column 2203. Information such as the information after the change regarding the job whose execution conditions are changed is displayed in the job change details table 2204. The changed power type usage ratio graph 2205 is a graph showing the changed power type usage ratio (prediction of the power type usage ratio for the next month). Information indicating the actual performance of the power type usage ratio (actual performance of the consumption power ratio for this month) and the predicted consumption power (prediction of the consumption power ratio for the next month) is displayed in the changed power type usage ratio table 2206. The execution button 2207 is a button composed of an image and is operated to confirm (register) the schedule of the job after being changed by the job management server 300 in the job execution registration unit 122.

[0151] FIG. 23 is a flowchart for explaining the selection option execution process executed by the scheduling unit 301 of the job management server 300. The scheduling unit 301 starts the process from step 1800 in FIG. 23, executes the processes of steps 2305 to 2340 described below according to the flowchart, and then proceeds to step 2395 to temporarily end this process flow.

[0152] Step 2305: The scheduling unit 301 acquires report information for creating the report screen 1900 of the tenant TN for which a report is to be created.

[0153] Step 2310: The scheduling unit 301 displays the report screen 1900 on the user terminal 200 of the user corresponding to the tenant TN for which the report is to be created.

[0154] Step 2315: The scheduling unit 301 determines whether the execution button 1907 has been operated with a proposed option selected (input). If the execution button 1907 has not been operated with a proposed option selected (input), it determines "NO" and proceeds to step 2320. If the execution button 1907 has been operated with a proposed option selected (input), the scheduling unit 301 determines "YES" and proceeds to step 2325.

[0155] Step 2320: The scheduling unit 301 temporarily ends this processing flow.

[0156] Step 2325: The scheduling unit 301 determines which proposed option has been selected (input) when the execution button 1907 is operated. If "(1) Billing amount reduction" has been selected (input), the scheduling unit 301 proceeds to step 2330. If "(2) Power consumption reduction" has been selected (input), the scheduling unit 301 proceeds to step 2335. If "(3) Power type eco mode" has been selected (input), the scheduling unit 301 proceeds to step 2340.

[0157] Step 2330: The scheduling unit 301 executes "processing for determining the start time of the job in (1) Billing amount reduction". Note that the details of "processing for determining the start time of the job in (1) Billing amount reduction" will be described later.

[0158] Step 2335: The scheduling unit 301 executes "processing for determining the start time of the job in (2) Power consumption reduction". Note that the details of "processing for determining the start time of the job in (2) Power consumption reduction" will be described later.

[0159] Step 2340: The scheduling unit 301 executes the process of determining the start time of the job in the "(3) Power type eco-mode". The details of the process of determining the start time of the job in the "(3) Power type eco-mode" will be described later.

[0160] FIG. 24 is a flowchart for explaining the process of determining the start time of the job in the "(1) Billing amount reduction" executed by the scheduling unit 301 of the job management server 300. When proceeding to step 2330 in FIG. 23, the scheduling unit 301 starts the process of determining the start time of the job in the "(1) Billing amount reduction" from step 2400 in FIG. 24, and after executing the processes of steps 2405 to 2450 described below according to the flowchart, proceeds to step 2495 to temporarily end this process flow.

[0161] Step 2405: The scheduling unit 301 acquires job execution analysis information 500 from the power consumption analysis server 130.

[0162] Step 2410: The scheduling unit 301 acquires the scheduled jobs from the job execution registration unit 122 corresponding to the tenant TN for which reports are to be created, and extracts the jobs without a priority flag from the scheduled jobs.

[0163] Step 2415: The scheduling unit 301 extracts the jobs whose power type of execution conditions is "renewable energy" from the jobs without a priority flag.

[0164] Step 2420: The scheduling unit 301 changes the power type of the execution conditions of the jobs without a priority flag extracted in step 2415 from "renewable energy" to "power company supply power" (that is, the power type with a lower unit price for the job).

[0165] Step 2425: The scheduling unit 301 acquires power consumption analysis information 600 from the power consumption analysis server 130.

[0166] Step 2430: The scheduling unit 301 assigns a job with modified execution conditions to a time zone with lower power consumption than the current time zone (that is, changes the job execution start time to the start point of the time zone with lower power consumption than the current time zone).

[0167] Step 2435: The scheduling unit 301 calculates a predicted billing amount (predicted billing amount reduction) and displays it on the report screen 2000 in FIG. 20.

[0168] Step 2440: The scheduling unit 301 displays on the report screen 2000 (for example, the change job display column 2002 and the job change details table 2004) a candidate job for changing the job start time (a job without a priority flag and with a power type of "renewable energy").

[0169] Step 2445: The scheduling unit 301 determines whether the execution button 2005 has been pressed (operated) on the report screen 2000. If the execution button 2005 has been pressed on the report screen 2000, the scheduling unit 301 determines "YES" and proceeds to step 2450. If the execution button 2005 has not been pressed on the report screen 2000, the scheduling unit 301 determines "NO" and proceeds to step 2495.

[0170] Step 2450: For a job without a priority flag, the scheduling unit 301 sets the job start time to the modified job execution start time and finalizes the schedule.

[0171] FIG. 25 is a flowchart for explaining the process of determining the start time of a job in the "(2) Power Consumption Reduction" executed by the scheduling unit 301 of the job management server 300. When the scheduling unit 301 proceeds to step 2335 in FIG. 23, it starts the process of "determining the start time of a job in the '(2) Power Consumption Reduction'" from step 2500 in FIG. 25, executes the processes of steps 2505 to 2540 described below according to the flowchart, and then proceeds to step 2595 to temporarily end this process flow.

[0172] Step 2505: The scheduling unit 301 acquires job execution analysis information 500 from the power consumption analysis server 130.

[0173] Step 2510: The scheduling unit 301 acquires the scheduled jobs from the job execution registration unit 122 corresponding to the tenant TN for which a report is to be created, and extracts the jobs without a priority flag from the scheduled jobs.

[0174] Step 2515: The scheduling unit 301 acquires power consumption analysis information 600 from the power consumption analysis server 130.

[0175] Step 2520: The scheduling unit 301 refers to the power consumption analysis information 600 and extracts the jobs corresponding to the time periods when the total power consumption of the multi-tenant server 100 is 50 kw or more (resource utilization rate 50% or more) from the jobs without a priority flag.

[0176] Step 2525: The scheduling unit 301 assigns the jobs extracted to a time period with lower power consumption than the current time period (that is, changes the job execution start time to the start point of the time period with lower power consumption than the current time period).

[0177] Step 2530: The scheduling unit 301 calculates the predicted power consumption after the change and displays it on the report screen 2100 in FIG. 21.

[0178] Step 2535: The scheduling unit 301 displays the candidate jobs for changing the start time of the job on the report screen 2100 (for example, the changed job display column 2102 and the job change details table 2104).

[0179] Step 2540: The scheduling unit 301 determines whether the execution button 2105 has been pressed (operated) on the report screen 2100. If the execution button 2105 has been pressed on the report screen 2100, the scheduling unit 301 determines "YES" and proceeds to step 2545. If the execution button 2105 has not been pressed on the report screen 2100, the scheduling unit 301 determines "NO" and proceeds to step 2595.

[0180] Step 2545: For the jobs without a priority flag, the scheduling unit 301 sets the start time of the job to the execution start time of the changed job and finalizes the schedule.

[0181] FIG. 26 is a flowchart for explaining the process of determining the start time of a job in the "(3) Power Type Eco-Mode" executed by the scheduling unit 301 of the job management server 300. When the scheduling unit 301 proceeds to step 2340 in FIG. 23, it starts the process of "determining the start time of a job in the '(3) Power Type Eco-Mode'" from step 2600 in FIG. 26, executes the processes of steps 2605 to 2645 described below according to the flowchart, and then proceeds to step 2695 to temporarily end this process flow.

[0182] Step 2605: The scheduling unit 301 acquires the job execution analysis information 500 from the power consumption analysis server 130.

[0183] Step 2610: The scheduling unit 301 acquires the scheduled jobs from the job execution registration unit 122 corresponding to the tenant TN for which the report is to be created, and extracts the jobs without a priority flag from the scheduled jobs.

[0184] Step 2615: The scheduling unit 301 acquires the power consumption analysis information 600 from the power consumption analysis server 130.

[0185] Step 2620: The scheduling unit 301 extracts jobs whose power type of execution conditions is "power company supply power" from jobs without a priority flag.

[0186] Step 2625: The scheduling unit 301 changes the power type of the execution conditions of the jobs without a priority flag extracted in Step 2620 from "power company supply power" to "renewable energy" (that is, the power type with a greater contribution to eco-friendliness than the current one).

[0187] Step 2630: The scheduling unit 301 calculates the predicted power consumption ratio of each power type after the change and displays it on the report screen 2200 (for example, the graph 2205 of the usage ratio by power type after the change and the table 2206 of the usage ratio by power type after the change).

[0188] Step 2635: The scheduling unit 301 displays on the report screen 2200 (for example, in the change job display column 2202 and the job change details table 2204) the jobs whose start time is a candidate for change (jobs without a priority flag and with a power type of "power company supply power").

[0189] Step 2640: The scheduling unit 301 determines whether the execution button 2207 has been pressed (operated) on the report screen 2200. If the execution button 2207 has been pressed on the report screen 2200, the scheduling unit 301 determines "YES" and proceeds to Step 2645. If the execution button 2207 has not been pressed on the report screen 2200, the scheduling unit 301 determines "NO" and proceeds to Step 2595.

[0190] Step 2645: The scheduling unit 301 determines the schedule (power type after the change) for jobs without a priority flag.

[0191] <Effect> As described above, the job management device according to the embodiment of the present invention changes the execution start time of a job with a lower priority to a time between the execution start time and the execution end time for jobs whose execution times overlap during a time period when resources may be in short supply, and performs job scheduling.

[0192] Thereby, the job management device can perform job scheduling so that the limited resources shared by each user in a multi-tenant environment are not in short supply and the end time of the job is met. Furthermore, the job management device can perform job scheduling so as to match the user's request to prioritize the execution of jobs with high importance.

[0193] The job management device checks whether each job can be completed by the execution end time of each job according to the job schedule set by the scheduling, and then determines the job schedule, so that the job scheduling can be performed so as to meet the end time of the job required by each user.

[0194] The job management device performs rescheduling of jobs according to the options selected by the user. Thereby, the job management device can perform job scheduling so as to match the user's request to prioritize cost reduction, the user's request to prioritize power consumption reduction, and the user's request to prioritize eco-friendliness. Since the job management device can respond to the user's request to prioritize power consumption reduction, it can contribute to power consumption reduction. In addition, since the job management device can also respond to the user's request to prioritize eco-friendliness, it can contribute to 2 emission reduction and power saving.

[0195] <<Modification Example>> The present invention is not limited to the above-described embodiments, and various modifications can be adopted within the scope of the present invention. The job management server 300 may be inside the multi-tenant server 100 or on the cloud.

[0196] In the above embodiment, the job management server 300 may schedule jobs as follows.

[0197] The job management server 300 extracts jobs excluding new jobs whose execution start time (condition 1) is included in the time zone exceeding 80 kw from among the jobs to be scheduled based on the power consumption analysis information 600. When the extracted jobs include both jobs with a priority flag and jobs without a priority flag, for the jobs with a priority flag, the execution start time (condition 1) is set as the start time of the job in the scheduling. For the jobs without a priority flag, the start time of the job is set by the process shown in FIG. 16 described above.

[0198] When the extracted jobs include only jobs with a priority flag, the job management server 300 determines a job to prioritize the execution start time (condition 1) based on at least one of power type, charge amount, and power consumption.

[0199] For the job to be prioritized, the execution start time (condition 1) is set as the start time of the job in the scheduling. For the job not to be prioritized, the start time of the job is set by the process shown in FIG. 16 described above.

[0200] When the extracted jobs include only jobs without a priority flag, the job management server 300 determines a job to prioritize the execution start time (condition 1) based on at least one of power type, charge amount, and power consumption.

[0201] For the job to be prioritized, set the execution start time (condition 1) to the start time of the job in the scheduling. For the job not to be prioritized, set the start time of the job by the process shown in FIG. 16 above.

[0202] In the above modification example, when determining the job to be prioritized based on all of the power type, the charge amount, and the power consumption, the job management server 300 may determine the priority of the job by the process shown in FIG. 15 above.

[0203] In the above embodiment, instead of step 1360, the job management server 300 may manually set the start time of the job by the user for the job set as the "job with low priority".

Explanation of Signs

[0204] 100... Multi-tenant server, 120a to 120c... Virtual servers, 121a to 121c... Power consumption information units, 122a to 122c... Job execution registration units, 123a to 123c... Execution control units, 130... Power consumption analysis server, 131... Power consumption information acquisition unit, 132... Analysis unit, 133... Billing unit, 134... Data storage unit, 140... Power management server, 141... Power type discrimination unit, 142... Power acquisition unit, 160... Storage battery, 200a to 200c... User terminals, 300... Job management server, 301... Scheduling unit, 302... Data storage unit

Claims

A job management device comprising an information processing device that schedules jobs executed by each tenant of a multi-tenant server, wherein the information processing device obtains execution conditions of a job including an execution time condition regarding an execution start time and an execution end time of the job of each tenant, a priority flag indicating whether to prioritize job execution, and a power type which is a type of power used for job execution, and job execution analysis information obtained by analyzing job execution results, the job execution analysis information including information on the amount of charge when the job is executed and information obtained by analyzing the actual power consumption consumed by each tenant performs job scheduling based on the job execution conditions and the job execution analysis information when the priority flag in the job execution conditions indicates prioritizing job execution, performs job scheduling so as to preferentially set the job execution start time as the job start time for the jobs whose execution time conditions overlap and the priority flag does not indicate prioritizing job execution determines a priority based on at least one of the power type of the job, the amount of charge of the job based on the job execution analysis information, and the power consumption amount of the job based on the job execution analysis information, and performs job scheduling so as to preferentially set the execution start time of the job with the higher priority as the job start time configured as a job management device.

2. In the job management device according to claim 1, the information processing device when determining the priority based on the power type of the job for jobs whose execution time conditions overlap, determines the priority such that a job with a power type that contributes more to ecology has a higher priority configured as a job management device.

3. In the job management device according to claim 1, the information processing device when determining the priority based on the amount of charge of the job for jobs whose execution time conditions overlap, determines the priority such that the job with the higher amount of charge has a higher priority configured as a job management device.

4. In the job management device according to claim 1, the information processing device When determining the priority for jobs whose execution time conditions overlap, based on the power consumption of the jobs, the job with less power consumption is determined to have a higher priority, configured as follows, a job management device.

5. In the job management device according to claim 1, the information processing device, when determining the priority based on all of the power type of the job, the charge amount of the job, and the power consumption of the job, the determination of the priority based on the power type, the determination of the priority based on the charge amount, and the determination of the priority based on the power consumption are performed in a predetermined order, in each determination performed in the predetermined order, when the priority cannot be assigned, the priority is determined for the job for which the priority cannot be assigned by the next determination in the order, configured as follows, a job management device.

6. In the job management device according to claim 1, the information processing device, performs scheduling of the job by changing the execution start time of the job with the lower priority and setting the changed time as the start time of the job, configured as follows, a job management device.

7. In the job management device according to claim 6, the information processing device, sets the start time of the job with the lower priority at a time period when the total power consumption of each tenant based on the job execution analysis information is relatively low, configured as follows, a job management device.

8. In the job management device according to claim 7, the information processing device predicts the total power consumption of each tenant for each time period, and sets the job start time at a time period when the error between the predicted total power consumption and the previous total power consumption of each tenant based on the job execution analysis information satisfies a predetermined condition, configured as follows, a job management device.

9. A job management device including an information processing device that schedules jobs executed by each tenant of a multi-tenant server, the information processing device, Execution conditions of the job including the execution time conditions regarding the start time and end time of the execution of the jobs of each tenant, a priority flag indicating whether to prioritize job execution, and the type of power used for job execution, which is the power type, and job execution analysis information obtained by analyzing the execution results of the job, including the charge amount when the job is executed and information obtained by analyzing the actual power consumption consumed by each tenant. Based on the execution conditions of the job and the job execution analysis information, perform job scheduling. When the priority flag in the execution conditions of the job indicates that job execution is to be prioritized, perform job scheduling so as to preferentially set the execution start time of the job as the start time of the job. Based on the job execution analysis information, extract a job whose execution start time is included in a time period when the total power consumption of each tenant based on the job execution analysis information is higher than a predetermined power consumption from among the jobs to be scheduled. Regarding the extracted job, Determine the priority based on at least one of the priority flag, the power type of the job, the charge amount of the job based on the job execution analysis information, and the power consumption amount of the job based on the job execution analysis information, and perform job scheduling so as to preferentially set the execution start time of the job with the higher priority as the start time of the job. configured as a job management device.

10. In the job management device according to claim 1, the information processing device In the job scheduling, confirm whether the scheduled job is completed by the execution end time. configured as a job management device.

11. In the job management device according to claim 1, the information processing device displays a proposal report screen analyzing the execution result of the job on a display device capable of displaying images. configured as a job management device.

12. In the job management device according to claim 11, the information processing device is connected to an information input device through which a user can input information. The information processing apparatus re-schedules a job for a scheduled job according to any one of billing amount reduction priority scheduling, power consumption reduction priority scheduling, and eco-priority scheduling in response to a request based on information input to the information input apparatus. It is configured as follows. When the information processing apparatus schedules a job with billing amount reduction priority scheduling, it re-schedules the job so that the billing amount decreases for a job for which the priority flag does not indicate prioritizing job execution. When the information processing apparatus schedules a job with power consumption reduction priority scheduling, it re-schedules the job so that the power consumption decreases for a job for which the priority flag does not indicate prioritizing job execution. When the information processing apparatus schedules a job with eco-priority scheduling, it re-schedules the job by changing the power type of the job execution condition to a power type with a higher degree of contribution to ecology for a job for which the priority flag does not indicate prioritizing job execution. Job management apparatus.

13. A job management method using an information processing apparatus that schedules jobs executed by each tenant of a multi-tenant server, by the information processing apparatus, obtains job execution conditions including an execution time condition regarding the job execution start time and job execution end time of each tenant's job, a priority flag indicating whether to prioritize job execution, and a power type which is the type of power used for job execution, and job execution analysis information obtained by analyzing the job execution results, the job execution analysis information including information obtained by analyzing the billing amount when the job was executed and the actual power consumption consumed by each tenant; schedules the job based on the job execution conditions and the job execution analysis information; when the priority flag in the job execution conditions indicates prioritizing job execution, schedules the job so as to preferentially set the job execution start time as the job start time; for the jobs whose execution time conditions overlap and for which the priority flag does not indicate prioritizing job execution, Determine the priority based on at least one of the power type of the job, the charging amount of the job based on the job execution analysis information, and the power consumption amount of the job based on the job execution analysis information, and preferentially set the execution start time of the job with the higher priority as the start time of the job, and perform scheduling of the job. Job management method.

Citation Information

Patent Citations

  • Task scheduling method and device and storage medium

    CN111221631A

  • Queue scheduling method, device and system based on multi-tenant technology

    CN113986497A

  • Job management device, job management system, job management method, and program

    JP2016071841A

  • Computer system and method for managing computer resource assignment

    JP2016103113A

  • Computer system and task executing method of computer system

    JP2017091330A