Method for generating a computer system and deployment plan
The system optimizes task deployment across cloud and on-premises systems by calculating resource availability and processing times to maximize device control completion within a time frame, addressing the inefficiencies in existing task assignment technologies.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-04-05
- Publication Date
- 2026-03-24
AI Technical Summary
Existing technologies struggle to optimally assign tasks between cloud systems and on-premises systems, particularly in hybrid cloud environments, and do not consider the allocation of multiple tasks effectively.
A computer system that includes a deployment control server and task execution servers, which calculates resource availability, predicts processing times, and generates a deployment plan to maximize the number of devices completing control within a predetermined time by optimizing task distribution across cloud and on-premises systems.
The system ensures that a higher number of devices complete control tasks within a specified time frame by strategically deploying tasks between cloud and on-premises systems, enhancing efficiency and resource utilization.
Smart Images

Figure 0007834550000001 
Figure 0007834550000002 
Figure 0007834550000003
Abstract
Description
Technical Field
[0001] The present invention relates to a system and method for controlling the deployment of tasks to a cloud system and an on-premises system.
Background Art
[0002] With the increase in the amount of information, edge computing has attracted attention. Also, the use of a system that combines an on-premises system including edge devices and a cloud system has been attracting attention.
[0003] It is difficult for a developer of an application that executes an arbitrary task to determine whether to assign the task to an on-premises system or a cloud system at the time of development. Therefore, a technique for realizing an optimal task assignment is desired. In contrast, the technique described in Patent Document 1 is known.
[0004] Patent Document 1 describes, "A management server 2 that distributes an input / output device 1, input / output data, and a control program to a plurality of arithmetic servers 3, a plurality of arithmetic servers 3, and an aggregation server 4 that aggregates arithmetic results and outputs them to an input / output device, and a scheduling method for a control program of a cloud control system including networks 5 and 6. The management server pre-collects and stores arithmetic time data for each distributed task for each arithmetic server, distributes the control program, and when the arithmetic time exceeds a reference time with a predetermined probability, distributes the control program so that the amount of arithmetic operations assigned to the arithmetic server in the next control cycle is reduced."
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
[0006] The technology described in Patent Document 1 focuses on the allocation of control programs (tasks) in a cloud system and does not consider the allocation of tasks in a so-called hybrid cloud. Furthermore, it does not consider the allocation of multiple tasks.
[0007] The present invention aims to provide a system that enables the assignment of multiple tasks to cloud systems and on-premises systems. [Means for solving the problem]
[0008] A representative example of the invention disclosed in this application is as follows: a computer system for controlling the deployment of a group of tasks for controlling equipment, comprising at least one computer and connected to a cloud system and an on-premise local system, The aforementioned at least one computer is When a control trigger for multiple devices is detected, resource information regarding the availability of resources in the cloud system and the local system is acquired, a first calculation process is performed to calculate the probability distribution of the processing time required to execute one task for each of the task groups of the multiple devices, a deployment pattern for each of the task groups of the multiple devices is generated, a second calculation process is performed to calculate the predicted control time required to control the devices for each of the deployment patterns of the task groups of the multiple devices based on the results of the first calculation process, and a deployment plan for the task groups of the multiple devices is generated by combining the deployment patterns of the task groups of the multiple devices so that the number of devices whose control is completed in a predetermined time is maximized based on the results of the second calculation process and the resource information. [Effects of the Invention]
[0009] According to the present invention, tasks can be deployed to the cloud system and local system in such a way that the number of devices whose control is completed within a predetermined time is maximized. Other issues, configurations, and effects will be clarified by the following description of the embodiments. [Brief explanation of the drawing]
[0010] [Figure 1] This is a diagram showing an example of the system configuration of Example 1. [Figure 2] This figure shows an example of the configuration of the deployment control server in Example 1. [Figure 3] This figure shows an example of the configuration of the task execution server in Example 1. [Figure 4] This figure shows an example of the data structure of the control management information in Example 1. [Figure 5A] This figure shows an example of the data structure of task execution history information in Example 1. [Figure 5B] This figure shows an example of the data structure of task execution history information in Example 1. [Figure 6] This figure shows an example of the data structure of network status information in Example 1. [Figure 7] This figure shows an example of the data structure for the deployment plan in Example 1. [Figure 8] This is a sequence diagram illustrating the task deployment control flow in the system of Example 1. [Figure 9] This diagram shows the processing flow of the deployment control server in Example 1. [Figure 10] This is a flowchart illustrating the plan generation process performed by the deployment control server in Example 1. [Figure 11] This figure shows an example of a screen displayed by the deployment control server in Example 1. [Figure 12] This figure shows an example of a screen displayed by the deployment control server in Example 1. [Figure 13] This figure shows an example of a screen displayed by the deployment control server in Example 1.
Best Mode for Carrying Out the Invention
[0011] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention is not construed as being limited to the description of the embodiments shown below. It will be readily understood by those skilled in the art that the specific configuration can be changed without departing from the spirit or gist of the present invention.
[0012] In the configuration of the invention described below, the same or similar configurations or functions are denoted by the same reference numerals, and duplicate descriptions are omitted.
[0013] The notations such as "first", "second", "third", etc. in this specification and the like are attached to identify components, and do not necessarily limit the number or order.
[0014] The positions, sizes, shapes, ranges, etc. of each configuration shown in the drawings and the like may not represent the actual positions, sizes, shapes, ranges, etc. in order to facilitate understanding of the invention. Therefore, in the present invention, it is not limited to the positions, sizes, shapes, ranges, etc. disclosed in the drawings and the like.
Embodiment
[0015] FIG. 1 is a diagram showing a configuration example of the system of Embodiment 1.
[0016] The system is composed of a cloud system 100 and a local system 101. The cloud system 100 and the local system 101 are connected to each other via a network 102 such as a WAN (Wide Area Network) and a LAN (Local Area Network). The connection method of the network may be either wired or wireless.
[0017] The cloud system 100 is a system having multiple computers, and includes a deployment control server 110 and a task execution server 111. The deployment control server 110 and the task execution server 111 are connected via a network 112. The deployment control server 110 controls the deployment of tasks for controlling the control equipment 120. The task execution server 111 executes tasks.
[0018] The local system 101 is an on-premise system compatible with edge computing, and includes multiple control devices 120 and a task execution server 121. Note that the control devices 120 do not necessarily have to be included in the local system 101. The multiple control devices 120 are connected to the task execution server 121 via network 122 and to the cloud system 100 via network 102. The task execution server 121 is also connected to the cloud system 100 via network 102. The control devices 120 are devices controlled based on tasks, such as robots and vehicles. The task execution server 121 executes tasks. Network 122 could be, for example, a 5G-compatible network. Note that "task" may be interpreted as a thread, process, application, etc.
[0019] In Example 1, the control of the control device 120 involves the execution of multiple tasks. Furthermore, at least one of these tasks is executed by the control device 120. In this manner, the control device 120 and the task execution servers 111 and 121 cooperate to control the control device 120.
[0020] In the following explanation, tasks performed by the control device 120 are referred to as "device tasks." Device tasks are not subject to deployment. The time required to control the control device 120 is referred to as "control time," and the time required to execute a single task is referred to as "processing time."
[0021] The deployment control server 110 and task execution servers 111 and 121 may be implemented using physical computers or using virtualization technology.
[0022] Figure 2 shows an example of the configuration of the deployment control server 110 in Example 1.
[0023] The deployment control server 110 includes a processor 200, main memory 201, secondary memory 202, input / output device 203, and network interface 204. Each hardware element is connected to the others via an internal bus.
[0024] The processor 200 is a computing unit that controls the entire deployment control server 110 and executes programs stored in the main memory 201. By executing processing according to the program, the processor 200 operates as a functional unit (module) that realizes a specific function. In the following description, when a functional unit is the subject of a sentence describing its processing, it indicates that the processor 200 is executing the program that realizes that functional unit.
[0025] The main memory 201 is a storage device that stores programs executed by the processor 200 and information executed by those programs, and is, for example, volatile or non-volatile memory. The main memory 201 is also used as a work area.
[0026] The secondary storage device 202 is a storage device that stores data in large capacity and permanently, such as an HDD (Hard Disk Drive) or SSD (Solid State Drive). The programs and information stored in the main memory 201 may also be stored in the secondary storage device 202. In this case, the processor 200 reads the programs and information from the secondary storage device 202 and loads them into the main memory 201.
[0027] The input / output device 203 is a device for inputting and outputting information, and is, for example, a keyboard, mouse, touch panel, and display.
[0028] The network interface 204 is an interface for connecting to external devices via a network.
[0029] As shown in Figure 2, the main memory 201 stores programs that implement the interface unit 210, the plan generation unit 211, the task deployment unit 212, the information acquisition unit 213, and the task execution history management unit 214. The main memory 201 also holds the management DB 215.
[0030] The interface unit 210 presents information to the user. The plan generation unit 211 generates a task deployment plan 223. The task deployment unit 212 controls task deployment based on the deployment plan 223. The information acquisition unit 213 acquires various types of information. The task execution history management unit 214 manages the task execution history.
[0031] The management DB 215 is a database for managing various types of information, and includes control management information 220, task execution history information 221, network status information 222, and deployment plan 223. The control management information 220 is information for managing the control of the control device 120. The task execution history information 221 is information for managing the execution history of tasks. The network status information 222 is information for managing the communication status of the network. The deployment plan 223 is information for controlling the deployment of tasks.
[0032] Furthermore, regarding the various functional units of the deployment control server 110, multiple functional units may be combined into a single functional unit, or a single functional unit may be divided into multiple functional units according to its function.
[0033] Alternatively, the functional components of the deployment control server 110 may be implemented using a computer system composed of multiple computers.
[0034] Figure 3 shows an example of the configuration of the task execution server 111 in Embodiment 1. The task execution server 121 has a similar configuration.
[0035] The task execution server 111 has a processor 300, main memory 301, secondary memory 302, input / output device 303, and network interface 304. Each hardware element is connected to the others via an internal bus. The processor 300, main memory 301, secondary memory 302, input / output device 303, and network interface 304 are the same hardware elements as the processor 200, main memory 201, secondary memory 202, input / output device 203, and network interface 204.
[0036] As shown in Figure 3, the main memory 301 stores a program that provides an execution environment 310 that realizes an instance 311 that executes task 312. The instance 311 is, for example, a virtual machine (VM) or a container.
[0037] In Example 1, the vehicle is treated as the control device 120, and the automatic parking of the vehicle in the parking lot is treated as the control of the control device 120. Here, an example of the data structure of the control management information 220, task execution history information 221, network status information 222, and deployment plan 223 in Example 1 is described.
[0038] Figure 4 shows an example of the data structure of the control management information 220 in Example 1.
[0039] The control management information 220 stores an entry that includes the vehicle ID 401, specifications 402, parking notification time 403, scheduled parking time 404, driver request 405, autonomous driving flag 406, and deployment status 407. There is one entry for each vehicle. Note that the fields included in the entry are not limited to those described above. It may not include any of the fields described above, or it may include other fields.
[0040] Vehicle ID 401 is a field that stores identification information for the vehicle, which is the control device 120. Specification 402 is a field that stores information related to the specifications for executing the device task. Specification 402 stores, for example, the type of ECU (Engine Control Unit) installed in the vehicle, the version of the ECU's control program, and the communication standard.
[0041] The parking notification time 403 is a field that stores the time when a parking notification was received from the vehicle. The scheduled parking time 404 is a field that stores the predicted start time of the vehicle's parking control.
[0042] Driver request 405 is a field that stores a value indicating the driver's control request. Driver request 405 can store one of the following: "Automatic", "Manual", or "Both". "Automatic" indicates that the driver wants automatic parking. "Manual" indicates that the driver wants to park themselves. "Both" indicates that either "Automatic" or "Manual" is acceptable.
[0043] The autonomous driving flag 406 is a field that stores a flag indicating whether or not to perform automated parking. The autonomous driving flag 406 can store either "yes" or "no". "Yes" indicates that automated parking will be performed, and "no" indicates that manual parking will be performed.
[0044] Deployment status 407 is a field that stores the deployment status of tasks that enable automated control. "C:pod-xx" represents instance 311 that executes tasks deployed on task execution server 111, and "L:pod-xx" represents instance 311 that executes tasks deployed on task execution server 121. Note that deployment status 407 for vehicles that are parked manually is left blank.
[0045] Figures 5A and 5B show an example of the data structure of the task execution history information 221 in Example 1.
[0046] The task execution history information 221 includes a table 500 for managing the execution history of tasks executed by either the cloud system 100 or the local system 101, and a table 510 for managing the execution history of tasks (device tasks) executed by the control device 120.
[0047] Table 500 stores entries that include history ID 501, execution location 502, task ID 503, start time 504, end time 505, and processing time 506. There is one entry for each task. Note that the fields included in an entry are not limited to those described above. It may not include any of the fields described above, or it may include other fields.
[0048] History ID 501 is a field that stores identification information to uniquely identify the execution history of a task. Execution location 502 is a field that stores the execution location of the task. Execution location 502 will contain either "Cloud" or "Local". Task ID 503 is a field that stores task identification information. Task ID 503 will contain, for example, the task name and type. The task name and other information will include information that can identify the type and specifications of the control device 120.
[0049] The Start Time field (504) stores the task's start time. The End Time field (505) stores the task's end time. The Processing Time field (506) stores the task's processing time.
[0050] Table 510 stores entries that include history ID 511, specification 512, task ID 513, start time 514, end time 515, and processing time 516. There is one entry for each task. Note that the fields included in an entry are not limited to those mentioned above. It may not include any of the fields mentioned above, or it may include other fields.
[0051] History ID 511 is a field that stores identification information to uniquely identify the task execution history. Spec 512 is a field that stores information about the specifications of the control device 120 that executed the task. Task ID 513 is a field that stores the task identification information.
[0052] The start time field 514 stores the task's start time. The end time field 515 stores the task's end time. The processing time field 516 stores the task's processing time.
[0053] Figure 6 shows an example of the data structure of the network state information 222 in Example 1.
[0054] The network status information 222 stores an entry that includes the measurement time 601, the first average communication time 602, the second average communication time 603, and the third average communication time 604. There is one entry for each measurement. Note that the fields included in the entry are not limited to those described above. It may not include any of the fields described above, or it may include other fields.
[0055] Measurement time 601 is a field that stores the measurement time of the communication status. First average communication time 602 is a field that stores the average value of the communication time (latency) between the cloud system 100 and the local system 101. Second average communication time 603 is a field that stores the average value of the communication time (latency) between the cloud system 100 and the vehicle. Third average communication time 604 is a field that stores the average value of the communication time (latency) between the task execution server 121 and the vehicle.
[0056] In Example 1, the control device 120 and task execution servers 111 and 121 cooperate to control the control device 120. The deployment control server 110 manages network status information 222 to estimate the latency of data communication between tasks.
[0057] Figure 7 shows an example of the data structure of deployment plan 223 in Example 1.
[0058] Deployment plan 223 stores an entry containing task ID 701 and execution location 702. There is one entry for each task. Note that the fields included in the entry are not limited to those mentioned above. It may not include any of the fields mentioned above, or it may include other fields.
[0059] Task ID 701 is a field that stores the task's identification information. Execution location 702 is a field that stores the task's execution location. Execution location 702 can store one of the following: "Cloud", "Local", or "Device".
[0060] Next, we will describe the task deployment control in the system. Figure 8 is a sequence diagram illustrating the flow of task deployment control in the system of Example 1. Figure 9 is a diagram showing the processing flow of the deployment control server 110 in Example 1.
[0061] The information acquisition unit 213 of the deployment control server 110 periodically measures the communication status and stores the measurement results in the network status information 222.
[0062] The control device 120 sends a parking notification to the deployment control server 110 (step S101). For example, the control device 120 sends a parking notification when it arrives near a parking lot. The parking notification includes vehicle identification information, vehicle specifications, vehicle driving status, and the driver's control preferences.
[0063] When the information acquisition unit 213 of the deployment control server 110 receives a parking notification, it adds an entry to the control management information 220. The information acquisition unit 213 sets values for the vehicle ID 401, specifications 402, parking notification time 403, and driver request 405 of the added entry. The information acquisition unit 213 of the deployment control server 110 calculates the vehicle's scheduled parking time. For example, this can be calculated using a predictive model generated by machine learning. Possible inputs to the predictive model include the vehicle's driving status. The information acquisition unit 213 sets a value for the scheduled parking time 404 of the added entry.
[0064] The planning generation unit 211 of the deployment control server 110 queries the task execution servers 111 and 121 for available resources at a predetermined timing (step S102). The task execution servers 111 and 121 send a response to the deployment control server 110 containing information about available resources in response to the query (step S103). Possible timings for the query include, for example, when a parking notice is received, when the number of received parking notices exceeds a threshold, or when the execution cycle has elapsed.
[0065] The plan generation unit 211 of the deployment control server 110 executes the plan generation process after receiving responses from the task execution servers 111 and 121 (step S104). Details of the plan generation process will be explained using Figure 9.
[0066] The task deployment unit 212 of the deployment control server 110 transmits control information 105 to the control device 120 based on the deployment plan 223 (step S105).
[0067] The control device 120 that performs automatic parking receives control information, which includes connection information for connecting to the task execution servers 111 and 121 that perform the task. The connection information is, for example, a URL.
[0068] The task deployment unit 212 of the deployment control server 110 sends deployment instructions to the task execution servers 111 and 121 based on the deployment plan 223 (step S106).
[0069] Once all tasks have been deployed, the deployment control server 110 deletes or initializes the deployment plan 223.
[0070] When task execution servers 111 and 121 receive a deployment instruction, they create an instance 311 (step S107) and control the control device 120 in cooperation with the control device 120 by executing the assigned task (step S108). If an existing instance 311 is to be used, the instance 311 is not created.
[0071] Task execution servers 111 and 121 send the task execution history to the deployment control server 110 when a task is completed. Similarly, control device 120 sends the device task execution history to the deployment control server 110 when a device task is completed. The task execution history includes task information, start time, and end time, etc.
[0072] When the task execution history management unit 214 of the deployment control server 110 receives the task execution history, it registers it in the task execution history information 221 (step S109). Here, the registration process for the execution history of a single task will be described.
[0073] When the task execution history is received from the cloud system 100 or the local system 101, the task execution history management unit 214 adds an entry to table 500 and sets identification information in the history ID 501 of the added entry. The task execution history management unit 214 sets the values included in the task execution history in the task ID 503, start time 504, and end time 505 of the added entry. If the source of the task execution history is the task execution server 111, the task execution history management unit 214 sets the execution location 502 of the added entry to "cloud", and if the source of the task execution history is the task execution server 121, it sets the execution location 502 of the added entry to "local". The task execution history management unit 214 also calculates the processing time based on the start time and end time and sets the calculation result in the processing time 506 of the added entry.
[0074] When the control device 120 receives the execution history, the task execution history management unit 214 adds an entry to table 510 and sets the identification information in the history ID 511 of the added entry. The task execution history management unit 214 sets the values included in the task execution history in the spec 512, task ID 513, start time 514, and end time 505 of the added entry. The task execution history management unit 214 also calculates the processing time based on the start time and end time and sets the calculation result in the processing time 516 of the added entry. This concludes the explanation of the execution history registration process.
[0075] Task execution servers 111 and 121 delete instance 311 after a certain period of time has elapsed since the task was completed (step S110).
[0076] Figure 10 is a flowchart illustrating the plan generation process performed by the deployment control server 110 in Example 1.
[0077] The planning generation unit 211 refers to the control management information 220 and generates a list of control devices 120 to be processed (step S201).
[0078] Specifically, the planning generation unit 211 refers to the parking schedule time 404 in the control management information 220 and searches for entries where the parking schedule time falls within a window width starting from the current time. The window width is, for example, 8 minutes. The planning generation unit 211 refers to the driver request 405 of the searched entries and identifies entries where the driver request 405 is "automatic" or "both". The planning generation unit 211 generates a list of vehicle IDs 401 for the identified entries.
[0079] The planning generation unit 211 starts loop processing for the control devices 120 (step S202). The planning generation unit 211 selects one control device 120 from the list.
[0080] The planning generation unit 211 calculates the probability distribution (probability density function) of the processing time for tasks that control the control device 120 based on the task execution history information 221 (step S203). Specifically, the following processes are performed.
[0081] (S203-1) The plan generation unit 211 identifies a group of tasks that will implement the control of the selected control device 120.
[0082] (S203-2) The planning generation unit 211 selects one task from the identified task group.
[0083] (S203-3) The plan generation unit 211 calculates the probability distribution of the processing time of the selected task based on the task execution history information 221.
[0084] If the selected task is an equipment task, the planning generation unit 211 refers to the specification 512 and task ID 513 in table 510 and searches for an entry in which the specification and task identification information match. Based on the processing time 516 of the searched entry, the planning generation unit 211 calculates the probability distribution of the processing time for the equipment task. In the following description, the calculated probability distribution will be referred to as the first probability distribution.
[0085] If the selected task is not an equipment task, the planning generation unit 211 refers to the task ID 503 in table 500 and searches for an entry with matching task identification information. Based on the processing time 506 of the searched entry, the planning generation unit 211 calculates the probability distribution of processing times for tasks deployed to the cloud system 100 and the probability distribution of processing times for tasks deployed to the local system 101.
[0086] Specifically, the planning generation unit 211 identifies entries where "Cloud" is set as the execution location 502 of the searched entries. Based on the processing time 508 of the identified entries, the planning generation unit 211 calculates the probability distribution of the processing time of tasks deployed to the cloud system 100. In the following description, the calculated probability distribution will be referred to as the second probability distribution. The planning generation unit 211 also identifies entries where "Local" is set as the execution location 502 of the searched entries. Based on the processing time 508 of the identified entries, the planning generation unit 211 calculates the probability distribution of the processing time of tasks deployed to the local system 101. In the following description, the calculated probability distribution will be referred to as the third probability distribution.
[0087] If the number of execution history entries is small, the plan generation unit 211 will use the default probability distribution.
[0088] (S203-4) If processing is not complete for all tasks, the planning generation unit 211 returns to S203-2. If processing is complete for all tasks, the planning generation unit 211 terminates the processing in step S203. This concludes the explanation of the processing in step S203.
[0089] The plan generation unit 211 determines whether processing has been completed for all control devices 120 registered in the list (step S204).
[0090] If processing has not been completed for all control devices 120 registered in the list, the planning generation unit 211 returns to step S202 and selects a new control device 120.
[0091] Once processing is complete for all control devices 120 registered in the list, the plan generation unit 211 determines the execution location for the task that will implement the control of each of the control devices 120 registered in the list, based on the first probability distribution, the second probability distribution, the third probability distribution, the network status information 222, and the information on available resources (step S205). Specifically, the following processing is performed.
[0092] (S205-1) The planning generation unit 211 generates a deployment pattern for each control device 120 and calculates the control time for the deployment pattern. For example, the generation of a deployment pattern and the calculation of the processing time for one control device 120 are performed as follows.
[0093] (S205-1-1) The plan generation unit 211 generates multiple deployment patterns. Here, deployment patterns are generated comprehensively for all deployable systems. Constraints may be imposed on the deployment patterns to be generated in advance.
[0094] (S205-1-2) The planning generation unit 211 selects a deployment pattern, calculates the predicted processing time for the equipment task from the first probability distribution, and also calculates the predicted processing time for the task from the probability distribution (second or third probability distribution) of the deployment target system. For example, the average processing time is calculated as the predicted processing time. Alternatively, the median or the processing time with the highest probability may be calculated as the predicted processing time instead of the average processing time. The planning generation unit 211 calculates the predicted latency based on the network status information 222. For example, the latest latency is calculated as the predicted latency. Alternatively, the average value or the like may be calculated as the predicted latency. Based on the predicted processing time and predicted latency, the planning generation unit 211 calculates the predicted control time for the deployment pattern. By considering latency, the control time can be predicted more accurately.
[0095] (S205-1-3) If processing is not complete for all deployment patterns, the plan generation unit 211 returns to S205-1-2. If processing is complete for all deployment patterns, the plan generation unit 211 stores the deployment patterns and predicted processing times in the work area. This concludes the explanation of the generation of deployment patterns and the calculation of processing times.
[0096] (S205-2) The planning generation unit 211 calculates the upper limit (placement limit) of tasks that can be placed in the cloud system 100 and the local system 101 based on the information of available resources.
[0097] (S205-3) The planning generation unit 211 searches for combinations of task deployment patterns for each control device 120 based on an evaluation function defined from the task deployment destination, predicted control time, and deployment upper limit. The evaluation function can be a function that finds the minimum total cost depending on the task deployment destination. If a deployment pattern is adopted in which the processing time is longer than the standard time, the function is defined so that the cost is high. By using the evaluation function described above, it is possible to determine the combination of task deployment patterns that maximizes the number of control devices 120 whose control is completed within the standard time.
[0098] The reference time is assumed to be predetermined. For example, the reference time is 4 minutes.
[0099] (S205-4) The plan generation unit 211 generates a deployment plan 223 based on the combination of deployment patterns. The plan generation unit 211 also sets a value for the automatic operation flag 406 in the entry of the control management information 220 based on the processing result. This concludes the explanation of the processing in step S205.
[0100] Next, the screens presented by the interface unit 210 will be described. Figures 11, 12, and 13 show examples of screens presented by the deployment control server 110 in Embodiment 1.
[0101] The screen 1100 shown in Figure 11 is a screen that displays the control status of the control device 120. The screen 1100 includes a display area 1101 and a table 1102. The display area 1101 is a field that visually displays the control status of the vehicle in the parking space. The table 1102 is a table that displays the details of the vehicle's control status.
[0102] The screen 1200 shown in Figure 12 displays the task deployment status. Screen 1200 includes a display field 1201 and a table 1202. Display field 1201 is a field that visually displays the task deployment status to the system. Table 1202 is a table that displays the details of the task deployment status to the system.
[0103] The screen 1300 shown in Figure 13 is a screen that displays the results of the plan generation process. Screen 1300 includes display fields 1301, 1303, 1304, and selection field 1302. Display field 1301 is a field that displays the algorithm for generating the deployment plan 223. In Example 1, it was explained that the algorithm was set in advance, but the user may be allowed to select the algorithm. Selection field 1302 is a field for selecting the control device 120 that will display the deployment pattern in the deployment plan 223. Display field 1303 is a field that displays the probability distribution of the processing time of the tasks of the control device 120. Display field 1304 is a field that displays the control time of the control device 120. Display field 1304 also displays the grace period relative to the reference time along with the control time.
[0104] Furthermore, for control devices 120 whose predicted processing time exceeds the standard time, deployment may be performed by replacing them with degraded tasks. Degraded tasks are, for example, tasks in which control parameters and control content have been changed. Also, for control devices 120 whose predicted processing time exceeds the standard time, control information for instructing manual parking may be transmitted.
[0105] According to the present invention, a task deployment plan to the cloud system 100 and the local system 101 can be generated such that the number of control devices 120 whose control is completed within a reference time is maximized.
[0106] Furthermore, the present invention also provides similar effects in on-premise systems that do not support edge computing.
[0107] It should be noted that the present invention is not limited to the embodiments described above, and various modifications are included. Furthermore, for example, the embodiments described above are detailed explanations of the configuration in order to clearly illustrate the present invention, and are not necessarily limited to those having all the configurations described. In addition, some of the configurations in each embodiment can be added to, deleted from, or replaced with other configurations.
[0108] Furthermore, each of the above-mentioned configurations, functions, processing units, processing means, etc., may be implemented in hardware, in whole or in part, for example, by designing them as integrated circuits. The present invention can also be implemented by software program code that realizes the functions of the embodiment. In this case, a storage medium on which the program code is recorded is provided to a computer, and the processor of that computer reads the program code stored in the storage medium. In this case, the program code read from the storage medium itself realizes the functions of the embodiment described above, and the program code itself and the storage medium on which it is stored constitute the present invention. Examples of storage media used to supply such program code include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and the like.
[0109] Furthermore, the program code that implements the functions described in this embodiment can be implemented in a wide range of programming or scripting languages, such as assembler, C / C++, Perl, Shell, PHP, Python, and Java (registered trademark).
[0110] Furthermore, the program code for the software that implements the functions of the embodiment may be distributed via a network and stored in a storage means such as a computer's hard disk or memory, or in a storage medium such as a CD-RW or CD-R, and the computer's processor may read and execute the program code stored in the storage means or storage medium.
[0111] In the above-described embodiment, the control lines and information lines shown are those deemed necessary for explanation and do not necessarily represent all control lines and information lines in the actual product. All components may be interconnected. [Explanation of Symbols]
[0112] 100 Cloud Systems 101 Local System 102, 112, 122 Networks 105 Control Information 110 Deployment control server 111, 121 Task Execution Servers 120 Control equipment 200, 300 processors 201, 301 Main storage 202, 302 Secondary storage device 203, 303 Input / Output Devices 204, 304 network interfaces 210 Interface section 211 Planning Unit 212 Task Deployment Unit 213 Information Acquisition Department 214 Task Execution History Management Department 215 Management DB 220 Control Management Information 221 Task Execution History Information 222 Network Status Information 223 Deployment Plan 310 Execution Environment 311 instances 312 tasks 1100, 1200, 1300 screens
Claims
1. A computer system that controls the deployment of a set of tasks for controlling equipment, Equipped with at least one computer, Connects to cloud systems and on-premises local systems. The aforementioned at least one computer is When a control trigger for multiple of the aforementioned devices is detected, resource information regarding the availability of resources in the cloud system and the local system is acquired. For each of the task groups of the multiple devices, a first calculation process is performed to calculate the probability distribution of the processing time required to execute one task. Generate a deployment pattern for each of the task groups of the multiple devices, Based on the results of the first calculation process, a second calculation process is executed to calculate the predicted control time required to control the equipment for each of the task groups of the multiple equipment, for each deployment pattern of the task group of the equipment. A computer system characterized by generating a deployment plan for task groups of multiple devices by combining the deployment patterns of task groups of multiple devices such that the number of devices whose control is completed in a predetermined time is maximized, based on the results of the second calculation process and the resource information.
2. A computer system according to claim 1, The task group of the aforementioned device is It includes at least one first task which is performed only on the aforementioned device, The system includes at least one second task which is performed on either the cloud system or the local system, The at least one computer, in the first calculation process, The probability distribution of the processing time for the first task is calculated, The cloud system calculates the probability distribution of processing time when the second task is executed. A computer system characterized by calculating the probability distribution of processing time when the second task is executed on the local system.
3. A computer system according to claim 2, The execution history of the first task and the execution history of the second task are managed. The execution history of the first task includes information on the specifications of the equipment and the processing time. The execution history of the second task includes the identification information of the system on which it was executed and the processing time. The at least one computer, in the first calculation process, Obtain information on the specifications of the aforementioned device, Based on the execution history of the first task corresponding to the specifications of the equipment, the probability distribution of the processing time of the first task is calculated. Based on the execution history of the second task executed in the cloud system, the probability distribution of the processing time when the second task is executed in the cloud system is calculated. A computer system characterized by calculating a probability distribution of processing time when the second task is executed on the local system, based on the execution history of the second task executed on the local system.
4. A computer system according to claim 1, The at least one computer monitors the latency of communication between the device and the cloud system, the latency of communication between the device and the local system, and the latency of communication between the cloud system and the local system. The at least one computer, in the second calculation process, Select one of the aforementioned deployment patterns, Based on the results of the first calculation process, the predicted processing time for each of the task groups in the selected deployment pattern is calculated. Based on the results of the monitoring, the predicted communication latency for the selected deployment pattern is calculated. A computer system characterized by calculating the predicted control time in the selected deployment pattern based on the predicted processing time and predicted latency of each of the tasks in the selected deployment pattern.
5. A computer system according to claim 1, The aforementioned at least one computer is Upon receiving notification from the user regarding the necessity of controlling the aforementioned device, A computer system characterized by identifying the device to be controlled based on the aforementioned notification.
6. A computer system according to claim 1, The computer system is characterized in that at least one computer provides an interface for displaying the probability distribution of the processing time of the task and the deployment pattern included in the deployment plan.
7. A method for generating a deployment plan for a set of tasks to control equipment run by a computer system, The aforementioned computer system, Equipped with at least one computer, Connects to cloud systems and on-premises local systems. The method for generating the aforementioned deployment plan is: When a control trigger for multiple of the aforementioned devices is detected, the first step is for at least one computer to acquire resource information regarding the availability of resources in the cloud system and the local system. A second step in which at least one computer performs a first calculation process to calculate the probability distribution of the processing time required to execute a single task for each of the task groups of the plurality of devices, A third step in which at least one computer generates a deployment pattern for each of the task groups of the plurality of devices, A fourth step in which at least one computer performs a second calculation process to calculate the predicted control time required to control the equipment for each of the task groups of the plurality of equipment, based on the result of the first calculation process, A fifth step in which at least one computer generates a deployment plan for the task groups of a plurality of devices by combining the deployment patterns of the task groups of the plurality of devices such that the number of devices whose control is completed in a predetermined time is maximized, based on the results of the second calculation process and the resource information. A method for generating a deployment plan, characterized by including the following:
8. A method for generating a deployment plan according to claim 7, The task group of the aforementioned device is It includes at least one first task which is performed only on the aforementioned device, The system includes at least one second task which is performed on either the cloud system or the local system, The second step described above is: The sixth step involves at least one computer calculating a probability distribution of the processing time for the first task, A seventh step is to calculate the probability distribution of processing time when at least one computer performs the second task on the cloud system, A method for generating a deployment plan, comprising an eighth step of calculating a probability distribution of processing time when at least one computer performs the second task on the local system.
9. A method for generating a deployment plan according to claim 8, The aforementioned computer system manages the execution history of the first task and the execution history of the second task. The execution history of the first task includes information on the specifications of the equipment and the processing time. The execution history of the second task includes the identification information of the system on which it was executed and the processing time. The method for generating the deployment plan includes the step of at least one computer acquiring information on the specifications of the equipment, The sixth step includes the step of the at least one computer calculating a probability distribution of the processing time of the first task based on the execution history of the first task corresponding to the specifications of the equipment, The seventh step includes the step of calculating a probability distribution of processing time when the second task is executed on the cloud system, based on the execution history of the second task performed on the cloud system by at least one computer, The eighth step is a method for generating a deployment plan, characterized in that it includes the step of calculating a probability distribution of processing time when the second task is executed on the local system, based on the execution history of the second task executed on the local system by at least one computer.
10. A method for generating a deployment plan according to claim 7, The steps include monitoring the latency of communication between the device and the cloud system, the latency of communication between the device and the local system, and the latency of communication between the cloud system and the local system, The fourth step described above is: The steps include: the at least one computer selecting one of the deployment patterns; The steps include: the at least one computer calculating the predicted processing time for each of the task groups in the selected deployment pattern based on the result of the first calculation process; The steps include: the at least one computer calculating the predicted communication latency in the selected deployment pattern based on the results of the monitoring; A method for generating a deployment plan, characterized in that at least one computer calculates the predicted control time in the selected deployment pattern based on the predicted processing time and predicted latency of each of the tasks in the selected deployment pattern.
11. A method for generating a deployment plan according to claim 7, The steps include: the at least one computer receiving a notification from a user regarding the necessity of controlling the device; A method for generating a deployment plan, characterized in that at least one computer identifies the device to be controlled based on the notification.
12. A method for generating a deployment plan according to claim 7, A method for generating a deployment plan, characterized in that at least one computer provides an interface for displaying the probability distribution of the processing time of the task and the deployment pattern included in the deployment plan.
Citation Information
Patent Citations
System management method and management device
JP2011243112A
Allocation determination device, control method, and program
JP2015108878A
Cloud control system provided with plurality of arithmetic servers, scheduling method of control program of the same and redundancy method of the plurality of arithmetic servers
JP2015219896A
Task allocation device and task allocation method
JP2019012456A
Managing computational tasks in vehicle context
JP2020030813A