Management system, management device, and management method
The management system distributes processing loads by using intermediate management devices to organize grids of mobile objects based on available computing power and periods, effectively reducing the load on the management device and managing resource fluctuations.
Patent Information
- Application Number
- JP2021207070
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-21
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2041-12-21
AI Technical Summary
The management node in existing distributed processing systems experiences high processing loads due to concentrated communications, making it difficult to manage the processing load effectively.
A management system is introduced that includes multiple intermediate management devices to organize grids of mobile objects based on available computing power and periods, allowing these devices to manage and select grids for job data processing, thereby reducing the load on the management device.
The system effectively distributes processing loads by allowing intermediate management devices to manage mobile objects, absorbing fluctuations in computational resources and reducing the overall processing load on the management device.
Smart Images

Figure 0007760908000001 
Figure 0007760908000002 
Figure 0007760908000003
Abstract
Description
[Technical Field]
[0001] The technology disclosed herein relates to grid computing. [Background technology]
[0002] Patent Document 1 discloses a distributed processing system. This distributed processing system can take a first or second form. The first form is composed of a base station and multiple on-board terminals that can be connected to each other via wireless communication, with the base station functioning as a management node and the multiple on-board terminals functioning as calculation nodes. The second form is composed of multiple on-board terminals that can be connected to each other via wireless communication, with at least one of the multiple on-board terminals functioning as a management node and the other on-board terminals functioning as calculation nodes. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-89021 Summary of the Invention [Problem to be solved by the invention]
[0004] In the system of Patent Document 1, a management node (an example of a management device) communicates with each of a plurality of in-vehicle terminals, so communications are concentrated on the management node, making it difficult to reduce the processing load on the management node.
[0005] The technology disclosed herein has been made in consideration of the above points, and its purpose is to reduce the processing load on the management device. [Means for solving the problem]
[0006] The technology disclosed herein relates to a management system that manages a plurality of mobile objects, each of which has an arithmetic unit that can provide computing power for grid computing processing that processes job data. The management system includes a plurality of intermediate management devices and a management device. Each of the plurality of intermediate management devices organizes a grid using a plurality of mobile objects under the management of the intermediate management device that have a common available period based on an available computing power, which is the computing power that can be used for the grid computing processing of each of the plurality of mobile objects under the management of the intermediate management device, and an available period, which is a period during which the available computing power can be provided for the grid computing processing, and generates resource information that indicates the amount of computing resources corresponding to the available computing power and the available period of the grid. The management device selects an intermediate management device from the plurality of intermediate management devices to which the job data is to be sent, based on the resource information generated by each of the plurality of intermediate management devices, and sends the job data to the intermediate management device.
[0007] In the above configuration, each of the multiple intermediate management devices can be made responsible for the process of managing the mobile object. Specifically, each of the multiple intermediate management devices can be made responsible for the "process of managing the available computing capacity and available period of the mobile object" and the "process of organizing the grid." This reduces the processing load of the management device.
[0008] In the management system, each of the plurality of intermediate management devices may select a grid to process job data transmitted from the management device from among grids organized using a plurality of mobile objects under the management of the intermediate management device, and cause the plurality of mobile objects constituting the grid to process the job data. Each of the plurality of intermediate management devices may be capable of storing a plurality of pieces of job data transmitted from the management device.
[0009] In the above configuration, even if the amount of computational resources of the grids changes due to a change in the usage status of the mobile objects that make up the grids managed by the intermediate management device, the intermediate management device can appropriately select a grid to process job data based on the amount of computational resources of the grids after the change. In this way, the fluctuation in the amount of computational resources of the grids can be absorbed by the intermediate management device, thereby reducing the load on the management device.
[0010] In the management system, the management device may select a grid to process the job data from among the grids managed by each of the plurality of middle-class management devices based on resource information generated by each of the plurality of middle-class management devices, and transmit the job data and grid selection information indicating the result of the grid selection to the middle-class management device that manages the selected grid among the plurality of middle-class management devices. Each of the plurality of middle-class management devices may then cause the job data transmitted from the management device to be processed by a plurality of mobile objects that constitute the grid indicated in the grid selection information transmitted from the management device.
[0011] In the above configuration, by having the management device take charge of "processing for selecting a grid for processing job data," when the number of grids under the management of the intermediate management device is relatively small (i.e., the intermediate management device does not have a high degree of freedom in selecting a grid), the load on the entire management system (specifically, the total load on the management device and each of the multiple intermediate management devices) can be reduced. This allows for smooth allocation of grids to job data.
[0012] In the management system, each of the plurality of middle-class management devices may transmit processing status information indicating a processing status of job data transmitted from the management device to the management device.
[0013] In the above configuration, by transmitting processing status information from each of the plurality of intermediate managing devices to the managing device, the managing device can manage the processing status of job data in each of the plurality of intermediate managing devices.
[0014] The technology disclosed herein also relates to a management device that uses a plurality of intermediate management devices to manage a plurality of mobile objects, each of which has an arithmetic unit capable of providing computing power for grid computing processing that processes job data, the management device including a control unit, and the control unit causing each of the plurality of intermediate management devices to transmit resource information indicating the amount of computing resources corresponding to the available computing power and the available period of a grid organized using a plurality of mobile objects under the management of the intermediate management device, the grid being formed using a plurality of mobile objects that have a common available period, based on the available computing power, which is the computing power that can be used for the grid computing processing of each of the plurality of mobile objects under the management of the intermediate management device, and an available period, which is the period during which the available computing power can be provided for the grid computing processing; and selecting an intermediate management device from the plurality of intermediate management devices to which the job data is to be sent, based on the resource information transmitted from each of the plurality of intermediate management devices, and transmitting the job data to the intermediate management device.
[0015] In the above configuration, each of the plurality of intermediate management devices can be made to take charge of the processing for managing the mobile object, thereby reducing the processing load on the management device.
[0016] The technology disclosed herein also relates to a management method for managing, using a management device and a plurality of intermediate management devices, a plurality of mobile objects each having an arithmetic unit capable of providing computing power for grid computing processing that processes job data. In this management method, each of the plurality of intermediate management devices organizes a grid using a plurality of mobile objects under the management of the intermediate management device that have a common available period based on an available computing power, which is the computing power that can be used for the grid computing processing of each of the plurality of mobile objects under the management of the intermediate management device, and an available period, which is a period during which the available computing power can be provided for the grid computing processing, and generates resource information indicating the amount of computing resources corresponding to the available computing power and the available period of the grid. The management device selects an intermediate management device from the plurality of intermediate management devices to which the job data is to be sent based on the resource information generated in each of the plurality of intermediate management devices, and sends the job data to the intermediate management device.
[0017] In the above method, each of the intermediate management devices can be made to take charge of the process for managing the mobile object, thereby reducing the processing load on the management device. [Effects of the Invention]
[0018] According to the technology disclosed herein, it is possible to reduce the processing load on the management device. [Brief explanation of the drawings]
[0019] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a system according to an embodiment. [Figure 2] FIG. 1 is a conceptual diagram illustrating grid computing. [Figure 3] FIG. 1 is a block diagram illustrating a configuration of a vehicle. [Figure 4] FIG. 2 is a block diagram illustrating an example of a client server configuration. [Figure 5] FIG. 2 is a block diagram illustrating a configuration of an intermediate management server. [Figure 6] FIG. 2 is a block diagram illustrating a configuration of a management server. [Figure 7] FIG. 2 is a conceptual diagram illustrating a main part of a process performed by the system of the embodiment. [Figure 8] 10 is a flowchart illustrating a job reception process. [Figure 9] 10 is a flowchart illustrating a position prediction process. [Figure 10] 10 is a flowchart illustrating an example of a capability prediction process. [Figure 11] 10 is a flowchart illustrating a communication prediction process. [Figure 12] 10 is a flowchart illustrating a grid organization process. [Figure 13] 10 is a flowchart illustrating an intermediate request process. [Figure 14] 10 is a flowchart illustrating a matching process. [Figure 15] 1 is a flowchart illustrating a grid computing process. [Figure 16] 10 is a flowchart illustrating a result providing process. DETAILED DESCRIPTION OF THE INVENTION
[0020] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are designated by the same reference numerals and their description will not be repeated.
[0021] (Embodiment) FIG. 1 illustrates the configuration of a system 1 according to an embodiment. The system 1 includes a plurality of vehicles 10, a client server 20, a plurality of intermediate management servers 30, and a management server 50. These components can communicate with each other via a communication network 5 (communication line), and communicate with each other as necessary to send and receive various information and data. Each of the plurality of vehicles 10 is equipped with a computing device 105. Note that the system 1 may also include a plurality of client servers 20. A system including a plurality of intermediate management servers 30 and a management server 50 is an example of a management system that manages a plurality of vehicles 10.
[0022] [Grid Computing] As shown in Figure 2, in the embodiment of the system 1, grid computing (a distributed processing system, hereinafter referred to as "grid") is formed by vehicles 10 selected from a plurality of vehicles 10, and grid computing processing is performed in which job data is processed by an available vehicle 10 (more specifically, a computing device 105 installed in the vehicle 10) among the plurality of vehicles 10.
[0023] When the vehicle 10 needs the computing power of the arithmetic device 105, the arithmetic device 105 enters an operating state and uses the computing power of the arithmetic device 105. For example, when the vehicle 10 is traveling, the computing power of the arithmetic device 105 is required for traveling control of the vehicle 10, and the arithmetic device 105 enters an operating state.
[0024] On the other hand, when the computing power of the arithmetic device 105 becomes unnecessary in the vehicle 10, the arithmetic device 105 enters a stopped state, and the computing power of the arithmetic device 105 is not used. For example, when the vehicle 10 stops and the power supply of the vehicle 10 is turned off, the computing power of the arithmetic device 105 becomes unnecessary, and the arithmetic device 105 enters a stopped state.
[0025] Here, when the computing power of the computing device 105 is not needed in the vehicle 10, the computing power of the computing device 105 can be provided for grid computing processing, thereby making effective use of the computing power of the computing device 105. For example, it is desirable to provide the computing power of the computing device 105 for grid computing processing while the vehicle 10 is stopped.
[0026] In the following description, the computing power that can be provided for grid computing processing of the vehicle 10 is referred to as "available computing power." The period during which the available computing power of the vehicle 10 can be provided for grid computing processing is referred to as "available period."
[0027] 〔vehicle〕 The vehicle 10 is owned by a user. The user drives the vehicle 10. In this example, the vehicle 10 is a four-wheeled automobile. The vehicle 10 is equipped with a battery (not shown). Power from the battery is supplied to on-board devices such as the computing device 105. Examples of such vehicles 10 include electric vehicles and plug-in hybrid vehicles. The vehicle 10 is capable of communication using vehicle-to-network (V2N) communication and vehicle-to-vehicle (V2V) communication.
[0028] As shown in FIG. 3, the vehicle 10 includes an actuator 11, a sensor 12, an input unit 101, an output unit 102, a communication unit 103, a storage unit 104, and a computing device 105.
[0029] The actuators 11 include drive system actuators, steering system actuators, braking system actuators, etc. Examples of drive system actuators include an engine, a transmission, and a motor. Examples of braking system actuators include a brake. Examples of steering system actuators include a steering wheel.
[0030] The sensor 12 acquires various types of information used to control the vehicle 10. Examples of the sensor 12 include an exterior camera that captures images outside the vehicle, an interior camera that captures images inside the vehicle, radar that detects objects outside the vehicle, a vehicle speed sensor, an acceleration sensor, a yaw rate sensor, an accelerator opening sensor, a steering sensor, and a brake oil pressure sensor.
[0031] The input unit 101 inputs information and data. Examples of the input unit 101 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs audio showing information. Examples of the operation unit include operation buttons and touch sensors of a car navigation device. The information and data input to the input unit 101 are sent to the calculation device 105.
[0032] The output unit 102 outputs information and data. Examples of the output unit 102 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information. An example of a display unit is the display of a car navigation device, and an example of a speaker is the speaker of a car navigation device.
[0033] The communication unit 103 transmits and receives information and data. The information and data received by the communication unit 103 are sent to the calculation device 105.
[0034] The storage unit 104 stores information and data.
[0035] The arithmetic device 105 controls each part of the vehicle 10. In this example, the arithmetic device 105 controls the actuator 11 in accordance with various information obtained by the sensor 12. The arithmetic device 105 communicates with external devices (such as components of the system 1) via the communication unit 103. The arithmetic device 105 updates the information and data stored in the memory unit 104 as appropriate, based on the information and data input to the input unit 101 and the information and data received via the communication unit 103.
[0036] The arithmetic device 105 includes a processor, a memory, etc. Examples of the processor include a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The memory stores programs for operating the processor, information and data indicating the processing results of the processor, etc. The processor (computer) executes the programs stored in the memory to realize various functions of the arithmetic device 105.
[0037] The number of processors installed in the arithmetic device 105 may be one or more. The processor installed in the arithmetic device 105 may be either a CPU or a GPU, or both a CPU and a GPU. In this example, the arithmetic device 105 has both a CPU and a GPU. For example, the arithmetic device 105 is configured by one or more ECUs (Electronic Control Units).
[0038] In this example, the storage unit 104 stores vehicle basic information D11, calculation device information D12, vehicle state information D13, driving management information D14, operation management information D15, communication management information D16, and function management information D17.
[0039] <Vehicle basic information> The vehicle basic information D11 is basic information related to the vehicle 10. For example, the vehicle basic information D11 includes a vehicle ID set for the vehicle 10, a user ID set for the user who owns the vehicle, vehicle performance information indicating the performance of the vehicle, etc. The ID is information for identification (identification information).
[0040] <Calculation device information> The arithmetic unit information D12 is information related to the arithmetic unit 105 mounted on the vehicle 10. For example, the arithmetic unit information D12 includes an arithmetic unit ID set in the arithmetic unit 105, arithmetic unit performance information indicating the performance of the arithmetic unit 105, etc. The performance of the arithmetic unit 105 indicated in the arithmetic unit performance information includes the computational capacity (specifically, maximum computational capacity) of the arithmetic unit 105, the ratio of CPU to GPU in the arithmetic unit 105, the communication performance of the arithmetic unit 105, the computational performance of the arithmetic unit 105, etc. For example, the computational capacity of the arithmetic unit 105 is indicated by the number of computation instructions that can be processed per unit time.
[0041] <Vehicle status information> The vehicle status information D13 indicates the status of the vehicle 10. In this example, the vehicle status information D13 includes vehicle position information, vehicle calculation information, vehicle communication information, vehicle power supply information, vehicle battery remaining capacity information, vehicle charging information, vehicle function information, and the like.
[0042] Vehicle position information indicates the position of the vehicle 10 (specifically, latitude and longitude). For example, vehicle position information can be obtained by a GPS (Global Positioning System). Vehicle calculation information indicates the operating status of the calculation device 105 installed in the vehicle 10. Vehicle communication information indicates the communication status of the vehicle 10. Vehicle power supply information indicates the power supply status of the vehicle 10. For example, the vehicle power supply information indicates whether the ignition power is on or off, whether the accessory power is on or off, etc.
[0043] The vehicle battery remaining capacity information indicates the remaining capacity of a battery (not shown) installed in the vehicle 10. The vehicle charging information indicates whether the vehicle 10 is being charged at a charging facility (not shown) capable of charging the battery of the vehicle 10. The vehicle function information indicates the usage status of various functions of the vehicle 10. An example of a function of the vehicle 10 is OTA (Over The Air).
[0044] The computing device 105 monitors the state of the vehicle 10 and updates the vehicle state information D13 appropriately (for example, periodically) based on the results of the monitoring.
[0045] <Driving management information> The driving management information D14 indicates the driving history (past driving conditions) and driving schedule (future driving conditions) of the vehicle 10. In other words, the driving management information D14 indicates the position (or planned position) of the vehicle 10 on the driving route at the time. For example, the driving management information D14 indicates the driving route, position, and time of the vehicle 10 in association with each other.
[0046] The arithmetic device 105 updates the driving management information D14 as appropriate (for example, periodically). For example, the arithmetic device 105 monitors the driving status of the vehicle 10, and updates the driving history of the vehicle 10 indicated in the driving management information D14 based on the results of the monitoring.
[0047] Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the driving status of the vehicle 10, the arithmetic device 105 updates the driving status of the vehicle 10 indicated in the driving management information D14 based on the acquired information. Examples of information that can be used to estimate the driving status (position) of the vehicle 10 include car navigation information that indicates the driving history and driving schedule of the vehicle 10.
[0048] The driving management information is an example of location management information that indicates the movement history (past locations) and movement schedule (future location) of the vehicle 10. The location management information indicates where the vehicle 10 was (or where it is scheduled to be) at what time. For example, the location management information indicates the location of the vehicle 10 in association with the time.
[0049] <Operation management information> The operation management information D15 indicates the operation history (past utilization rate of computing capacity) and operation schedule (future utilization rate of computing capacity) of the arithmetic device 105 mounted on the vehicle 10. In other words, the operation management information D15 indicates what the utilization rate of the computing capacity of the vehicle 10 was (or what the utilization rate is expected to be) at what time. For example, the operation management information D15 indicates the utilization rate of the computing capacity of the arithmetic device 105 in association with time.
[0050] The operation status (computing capacity utilization rate) of the arithmetic device 105 of the vehicle 10 indicated in the operation management information D15 is the operation status for purposes other than use for grid computing processing. Examples of such purposes of use include driving the vehicle 10 and controlling various functions of the vehicle 10.
[0051] The computing device 105 updates the operation management information D15 as appropriate (for example, periodically). For example, the computing device 105 monitors the operation rate (utilization rate of the computing capacity) of the computing device 105, and updates the past operation rate of the computing device 105 indicated in the operation management information D15 based on the results of the monitoring.
[0052] Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the operating status of the arithmetic device 105, the arithmetic device 105 updates the operating status of the arithmetic device 105 indicated in the operation management information D15 based on the acquired information. Examples of information that can be used to estimate the operating status of the arithmetic device 105 include car navigation information indicating the driving history and driving schedule of the vehicle 10, driving management information D14, and function management information D17.
[0053] <Communication Management Information> The communication management information D16 indicates the communication history (past communication state) and communication schedule (future communication state) of the vehicle 10. In other words, the communication management information D16 indicates what the communication state of the vehicle 10 was at what time (or what state it is expected to be). Specifically, the communication management information D16 indicates, for each device with which the vehicle 10 communicates, the communication state (past communication state and future communication state) between the device and the vehicle 10. For example, for each device with which the vehicle 10 communicates, the communication management information D16 indicates, in association with each other, the "communication state between the device and the vehicle 10 (whether communication is possible)," the "location of the vehicle 10," and the "time." Examples of devices with which the vehicle 10 communicates include the management server 50 and other vehicles 10.
[0054] The arithmetic device 105 updates the communication management information D16 as appropriate (for example, periodically). For example, the arithmetic device 105 monitors the communication status of the vehicle 10 in which the arithmetic device 105 is installed, and updates the communication history of the vehicle 10 indicated in the communication management information D16 based on the results of the monitoring.
[0055] Furthermore, when the arithmetic device 105 acquires information that can be used to estimate the communication state of the vehicle 10, the arithmetic device 105 updates the communication state of the vehicle 10 indicated in the communication management information D16 based on the acquired information. Examples of information that can be used to estimate the communication state of the vehicle 10 include car navigation information indicating the driving history and driving schedule of the vehicle 10, driving management information D14, and function management information D17.
[0056] <Function management information> The function management information D17 indicates the usage history (past usage) and usage schedule (future usage) of various functions of the vehicle 10. In other words, the function management information D17 indicates, for each function of the vehicle 10, the time at which the function was used (or is scheduled to be used). For example, the function management information D17 indicates, for each function of the vehicle 10, whether or not the function was used and the time in association with each other.
[0057] The arithmetic device 105 updates the function usage information D14 as appropriate (for example, periodically). For example, when the arithmetic device 105 receives information on the usage terms of various functions of the vehicle 10, it updates the function usage information D14 based on that information. Examples of information on the usage history or usage schedule of various functions of the vehicle 10 include car navigation information and driving management information D14 that show the driving history and driving schedule of the vehicle 10.
[0058] [Client Server] The client server 20 is owned by a client. The client requests the calculation of job data. Examples of the client include companies, research institutes, and educational institutions.
[0059] As shown in FIG. 4, the client server 20 includes an input unit 201, an output unit 202, a communication unit 203, a storage unit 204, and a control unit 205.
[0060] The input unit 201 inputs information and data. Examples of the input unit 201 include an operation unit that is operated to input information corresponding to the operation, a camera that inputs an image showing information, and a microphone that inputs audio showing information. Examples of the operation unit include an operation button, a touch sensor, a keyboard, and a mouse. The information and data input to the input unit 201 are sent to the control unit 205.
[0061] The output unit 202 outputs information and data. Examples of the output unit 202 include a display unit that outputs an image representing information, and a speaker that outputs sound representing information.
[0062] The communication unit 203 transmits and receives information and data. The information and data received by the communication unit 203 are sent to the control unit 205.
[0063] The storage unit 204 stores information and data.
[0064] The control unit 205 controls each unit of the client server 20. The control unit 205 communicates with external devices (such as components of the system 1) via the communication unit 203. The control unit 205 updates the information and data stored in the storage unit 204 as appropriate, based on the information and data input to the input unit 201 and the information and data received via the communication unit 203.
[0065] The control unit 205 includes a processor, a memory, etc. The memory stores a program for operating the processor, information and data indicating the processing results of the processor, etc. The various functions of the control unit 205 are realized by the processor (computer) executing the program stored in the memory.
[0066] In this example, the storage unit 204 stores client information D21 and job data D1.
[0067] <Client Information> The client information D21 is information about the client, and includes a client ID set for the client, a client server ID set for the client server 20 owned by the client, a person in charge's name, address, telephone number, and the like.
[0068] <Job Data> The job data D1 is data corresponding to a job and is processed to execute the job. The job data D1 can be classified into a plurality of types.
[0069] For example, job data D1 can be classified by calculation type. Examples of calculation types include CPU-based calculation types and GPU-based calculation types. Job data D1 of the CPU-based calculation type tend to require complex calculations with many conditional branches, such as simulation calculations. Job data D1 of the GPU-based calculation type tend to require a huge amount of simple calculations, such as image processing and machine learning.
[0070] Furthermore, the job data D1 can be classified by processing conditions. Examples of processing conditions include processing conditions that require constant communication and processing conditions that do not require constant communication. Job data D1 with processing conditions that require constant communication requires that the vehicle 10 be able to communicate at all times in the grid computing process. Job data D1 with processing conditions that do not require constant communication does not require that the vehicle 10 be able to communicate at all times in the grid computing process.
[0071] The job data may include not only the data to be processed, but also programs and other information required for the processing.
[0072] <Job Information> Note that job information related to a job may be stored in the storage unit 204. The job information includes job name information indicating the name of the job, job content information explaining the content of the job, job data information related to job data corresponding to the job, job deadline information indicating the deadline for the job, etc. The job data information indicates the type of job data (e.g., the calculation type and processing conditions of the job data), the required calculation amount (e.g., the data amount of the job data) which is the amount of calculation required to calculate the job data, etc.
[0073] [Intermediate management server] Each of the multiple intermediate management servers 30 is installed in various facilities. Examples of facilities include homes, stadiums, theaters, supermarkets, restaurants, accommodation facilities, retail stores, companies, and commercial facilities. Each of the multiple intermediate management servers 30 manages multiple vehicles 10 (multiple vehicles 10 that can participate in grid computing) under the management of that intermediate management server 30. A unique server ID is set to each of the multiple intermediate management servers 30.
[0074] Examples of vehicles 10 under the management of the intermediate management server 30 include vehicles 10 that can communicate directly or indirectly with the intermediate management server 30, such as vehicles 10 that are located within a predetermined range (area) based on the location of the intermediate management server 30 and can communicate with the intermediate management server 30, and vehicles 10 that can communicate with the intermediate management server 30 via a charging facility by being connected to and charged with the charging facility. The intermediate management server 30 manages such vehicles 10 as "vehicles 10 under the management of the intermediate management server 30."
[0075] 5, the intermediate management server 30 includes an input unit 301, an output unit 302, a communication unit 303, a storage unit 304, and a control unit 305. The configurations of the input unit 301, the output unit 302, the communication unit 303, the storage unit 304, and the control unit 305 of the intermediate management server 30 are the same as the configurations of the input unit 201, the output unit 202, the communication unit 203, the storage unit 204, and the control unit 205 of the client server 20.
[0076] In this example, the storage unit 304 stores a vehicle management table D31, an intermediate job table D32, a position prediction table D33, a capacity prediction table D34, a communication prediction table D35, a grid table D36, a matching table D37, job data D1, and calculation result data D2.
[0077] <Vehicle Management Table> The vehicle management table D31 is a table for managing the vehicles 10 under the management of the intermediate management server 30. In this example, the vehicle management table D31 registers, for each vehicle 10, basic vehicle information D11, computing device information D12, vehicle status information D13, driving management information D14, operation management information D15, communication management information D16, function management information D17, and the like related to that vehicle 10.
[0078] The control unit 305 appropriately updates the vehicle management table D31. Specifically, for each vehicle 10, the control unit 305 communicates with the vehicle 10 appropriately (for example, periodically) to acquire information about the vehicle 10 (in this example, vehicle basic information D11, computing device information D12, vehicle state information D13, driving management information D14, operation management information D15, communication management information D16, and function management information D17), and updates the vehicle table D31 based on the acquired information.
[0079] <Intermediate job table> The intermediate job table D32 is a table for managing jobs requested by the management server 50 in the intermediate request process described later. For each job, the intermediate job table D32 registers the reception number set for that job, the name and content of that job, the calculation type and processing conditions of the job data D1 corresponding to that job, the required calculation amount for that job data D1 (the calculation amount required to calculate the job data D1), the delivery date set for that job, and the like.
[0080] <Position Prediction Table> The position prediction table D33 is a table for managing the predicted results of the positions of the vehicles 10 under the management of the intermediate management server 30. In this example, the position prediction table D33 registers position prediction information D3 for each vehicle 10. The position prediction information D3 indicates the predicted results of changes in the position of the vehicle 10 over time. For example, the position prediction information D3 indicates the predicted value of the position of the vehicle 10 in association with the time. The process for predicting changes in the position of the vehicle 10 over time (position prediction process) will be described in detail later.
[0081] Ability Prediction Table The capacity prediction table D34 is a table for managing the predicted results of the available computational capacity of the vehicle 10 under the management of the intermediate management server 30. In this example, the capacity prediction table D34 registers capacity prediction information D4 for each vehicle 10. The capacity prediction information D4 indicates the predicted results of the change over time in the available computational capacity of the vehicle 10. For example, the capacity prediction information D4 indicates the predicted value of the available computational capacity of the vehicle 10 in association with the time. The process for predicting the change over time in the available computational capacity of the vehicle 10 (capacity prediction process) will be described in detail later.
[0082] <Communication Prediction Table> The communication prediction table D35 is a table for managing the predicted results of the communication status of the vehicles 10 under the management of the intermediate management server 30. In this example, the communication prediction table D35 registers communication prediction information D5 related to each vehicle 10. The communication prediction information D5 indicates the predicted results of the change over time in the communication status of the vehicle 10. For example, the communication prediction table D35 indicates the predicted value of the communication status of the vehicle 10 in association with the time. The process for predicting the change over time in the communication status of the vehicle 10 (communication prediction process) will be described in detail later.
[0083] Grid Table The grid table D36 is a table for managing a grid (a grid available for grid computing processing) configured by a plurality of vehicles 10 under the management of the intermediate management server 30. The grid table D36 registers, for each grid, the registration number set for that grid, the vehicle ID set for each of the plurality of vehicles 10 that make up that grid, the available computational capacity, available period, and available computational volume of each of the plurality of vehicles 10 that make up that grid, and the available computation volume of that grid. The process for organizing a grid (grid organizing process) will be described in detail later.
[0084] Matching Table The matching table D37 is a table for managing the results of the matching process described below. For each job, the matching table D37 registers the reception number set for that job, the job data D1 corresponding to that job, the registration number of the grid assigned to that job data D1 by the matching process, the vehicle ID set for each of the multiple vehicles 10 that make up that grid, and the like.
[0085] <Job Data> The job data D1 stored in the storage unit 304 is job data D1 accepted by an intermediate request process, which will be described later.
[0086] <Calculation result data> The calculation result data D2 stored in the storage unit 304 is data indicating the calculation result of the job data D1, and is obtained in the grid computing process described later.
[0087] [Management Server] The management server 50 manages the operation of the system 1 in which grid computing is configured. The management server 50 is owned by the business operator that operates the system 1. The management server 50 also uses multiple intermediate management servers 30 to manage multiple vehicles 10 that can participate in grid computing. The management server 50 is an example of a management device that manages grid computing.
[0088] 5, the management server 50 includes an input unit 501, an output unit 502, a communication unit 503, a storage unit 504, and a control unit 505. The configurations of the input unit 501, output unit 502, communication unit 503, storage unit 504, and control unit 505 of the management server 50 are the same as the configurations of the input unit 201, output unit 202, communication unit 203, storage unit 204, and control unit 205 of the client server 20.
[0089] In this example, the storage unit 504 stores a user table D51, a registered vehicle table D52, a client table D53, a job table D54, an intermediate resource table D55, an intermediate request table D56, job data D1, and calculation result data D2.
[0090] <User table> The user table D51 is a table for managing users. For each user, the user table D51 registers a user ID set for that user, a vehicle ID set for the vehicle 10 owned by that user, a calculation device ID set for the calculation device 105 owned by that user, and the like. The control unit 505 updates the user table D51 as appropriate.
[0091] <Registered vehicle table> The registered vehicle table D52 is a table for managing the vehicles 10 that can participate in the grid computing process. In this example, the registered vehicle table D52 registers, for each vehicle 10, basic vehicle information D11, computing device information D12, and the like related to the vehicle 10. The control unit 505 updates the registered vehicle table D52 as appropriate.
[0092] <Client Table> The client table D53 is a table for managing clients. For each client, the client table D53 registers a client ID set for that client, a client server ID set for the client server 20 owned by the client, the name, address, telephone number, etc. of the person in charge of that client. The control unit 505 updates the client table D53 as appropriate.
[0093] <Job Table> The job table D54 is a table for managing jobs requested by clients. For each job, the job table D54 registers the reception number set for that job, the client ID set for the client that requested the job, the name and content of the job, the calculation type and processing conditions of the job data D1 corresponding to that job, the required calculation amount for that job data D1, the delivery date set for that job, and the like.
[0094] <Intermediate Resource Table> The intermediate resource table D55 is a table for managing the amount of computational resources (the amount of computational resources according to the available computational capacity and the available period) in each of the multiple intermediate management servers 30. In this example, the intermediate resource table D55 registers, for each intermediate management server 30, the server ID set in that intermediate management server 30, the amount of computational resources of the grid organized by that intermediate management server 30, and the like.
[0095] Specifically, the intermediate resource table D55 registers, for each intermediate management server 30, a grid organized by that intermediate management server 30, and registers, for each grid organized by that intermediate management server 30, the registration number of that grid, the available computational capacity of that grid, etc. The available computational capacity of a grid is an example of the amount of computational resources according to the available computational capacity and available period of the grid.
[0096] <Intermediate request table> The intermediate request table D56 is a table for managing the results of the intermediate request processing described later. For each job, the intermediate request table D56 registers the reception number set for that job, the job data D1 corresponding to that job, and the server ID set for the intermediate management server 30 that is assigned to that job data D1 by the intermediate request processing.
[0097] <Job Data> The job data D1 stored in the storage unit 504 is job data D1 accepted by a job acceptance process, which will be described later.
[0098] <Calculation result data> The calculation result data D2 stored in the storage unit 504 is the calculation result data D2 transmitted from the intermediate management server 30 in a result providing process, which will be described later.
[0099] [System processing (management method)] 7, in the system 1 of the embodiment, each of the multiple intermediate management servers 30 organizes a grid using multiple vehicles 10 that have a common available period among the multiple vehicles 10 under the management of the intermediate management server 30, based on the available computing capacity and available period of each of the multiple vehicles 10 under the management of the intermediate management server 30, generates resource information indicating the amount of computing resources corresponding to the available computing capacity and available period of the grid, and transmits the resource information to the management server 50. The available computing capacity and available period of the grid are derived based on the available computing capacity and available period of each of the multiple vehicles 10 that make up the grid.
[0100] The management server 50 selects an intermediate management server 30 to which job data is to be sent from among the intermediate management servers 30 based on the resource information generated by each of the intermediate management servers 30, and sends the job data to that intermediate management server 30. Then, each of the intermediate management servers 30 selects a grid to process the job data sent from the management server 50 from among grids organized using a plurality of vehicles 10 under the management of that intermediate management server 30, and causes the plurality of vehicles 10 constituting that grid to process the job data.
[0101] Furthermore, in the system 1 of the embodiment, each of the multiple intermediate management servers 30 can accumulate multiple pieces of job data transmitted from the management server 50. Furthermore, each of the multiple intermediate management servers 30 transmits processing status information indicating the processing status of the job data transmitted from the management server 50 to the management server 50.
[0102] Specifically, in the system 1 of the embodiment, job acceptance processing, position prediction processing, capacity prediction processing, communication prediction processing, grid organization processing, intermediate request processing, matching processing, grid computing processing, and result provision processing are performed. These processes are an example of a management method for managing vehicles 10 that can provide computing capacity for grid computing processing.
[0103] The management server 50 performs job reception processing, intermediate request processing, and result provision processing. Each of the intermediate management servers 30 performs location prediction processing, capacity prediction processing, communication prediction processing, grid organization processing, matching processing, and grid computing processing.
[0104] [Job acceptance processing] Next, the job reception process will be described with reference to Fig. 8. In the job reception process, job data D1 for which a calculation is requested by a client is received. For example, the control unit 505 of the management server 50 performs the following process each time a calculation of the job data D1 is requested by a client.
[0105] <Step S11> First, the management server 50 accepts a job request from a client. Specifically, in response to an operation by a person in charge of the client, the client server 20 transmits a job request application to the management server 50. In response to the application, the control unit 505 of the management server 50 performs the following processing.
[0106] The control unit 505 requests the client server 20 to transmit information required to accept a job (specifically, client information regarding the client requesting the job and job information regarding the job). For example, the control unit 505 transmits to the client server 20 input screen related information (information summarizing the input format of the request information, etc.), which is information for displaying a job acceptance screen for inputting information required to accept a job. The control unit 205 of the client server 20 generates an image of the job acceptance screen based on the input screen related information, and causes the output unit 202 (display unit) to output (display) the image.
[0107] The person in charge of the client operates the input unit 201 (operation unit) of the client server 20 to input the necessary information into the job reception screen. This inputs client information about the client requesting the job and job information about the job. Then, once input of this information is complete, the control unit 205 of the client server 20 transmits the information input into the job reception screen (client information and job information) to the management server 50. The control unit 505 of the management server 50 receives the client information and job information.
[0108] Next, the control unit 505 requests the client server 20 to transmit job data D1 corresponding to the job. In response to the request, the control unit 205 of the client server 20 transmits the job data D1 corresponding to the job to the management server 50. The control unit 505 of the management server 50 receives the job data D1. The control unit 505 then stores the job data D1 in the storage unit 504.
[0109] <Step S12> Next, the control unit 505 of the management server 50 analyzes the job data D1 received in step S11. Specifically, the control unit 505 analyzes the calculation type, processing conditions, required calculation amount, etc. of the job data D1. Then, the control unit 505 modifies the job information received in step S11 based on the results of the analysis of the job data D1.
[0110] If the job information received in step S11 is sufficiently reliable, the process of step S12 may be omitted.
[0111] <Step S13> Next, the control unit 505 of the management server 50 associates the client information received in step S11 with the job information modified as necessary in step S12 (or the job information received in step S11) and registers them in the job table D54.
[0112] [Position Prediction Processing] Next, the position prediction process will be described with reference to Fig. 9. In the position prediction process, the control unit 305 of the intermediate management server 30 predicts a change in the position of the vehicle 10 over time based on the driving management information D14 of the vehicle 10 registered in the vehicle management table D31. For example, when the driving management information D14 of the vehicle 10 registered in the vehicle management table D31 is updated, the control unit 305 performs the following process for the vehicle 10.
[0113] <Step S21> First, the control unit 305 acquires the driving management information D14 of the vehicle 10 registered in the vehicle management table D31. As in "updating driving management information," the control unit 305 may update the driving management information D14 of the vehicle 10 registered in the vehicle management table D31 based on information that can be used to estimate the driving status (position) of the vehicle 10, and acquire the updated driving management information D14.
[0114] <Step S22> Next, the control unit 305 predicts a change in the position of the vehicle 10 over time based on the "driving management information D14" of the vehicle 10 acquired in step S21.
[0115] Specifically, the control unit 305 predicts a trend (pattern) of changes in the position of the vehicle 10 from the vehicle position indicated in the driving management information D14. This prediction of the trend of changes in the position of the vehicle 10 may be realized by machine learning. Then, the control unit 305 predicts changes in the position of the vehicle 10 over time (where the vehicle 10 is at what time) based on the trend of changes in the position of the vehicle 10.
[0116] <Step S23> Next, the control unit 305 registers (overwrites) the position prediction information D3 indicating the "change in the position of the vehicle 10 over time" predicted in step S22 in the position prediction table D33. This updates the position prediction table D33. Note that if the future position (estimated value) of the vehicle 10 indicated in the travel management information D14 is sufficiently reliable, the future position of the vehicle 10 may be registered in the position prediction information D3.
[0117] [Ability Prediction Processing] Next, the capacity prediction process will be described with reference to Fig. 10. In the capacity prediction process, the control unit 305 of the intermediate management server 30 predicts the available computing capacity of a vehicle 10 based on the operation management information D15 of the vehicle 10 registered in the vehicle management table D31. For example, when the operation management information D15 of the vehicle 10 registered in the vehicle management table D31 is updated, the control unit 305 performs the following process for the vehicle 10.
[0118] <Step S31> First, the control unit 305 acquires the calculation device information D12 and operation management information D15 of the vehicle 10 registered in the vehicle management table D31. As in "updating the operation management information," the control unit 305 may update the operation management information D15 of the vehicle 10 registered in the vehicle table D51 based on information that can be used to estimate the operation status of the calculation device 105 of the vehicle 10, and acquire the updated operation management information D15.
[0119] <Step S32> Next, the control unit 305 predicts a change over time in the available computing capacity of the vehicle 10 based on the "computing device information D12" and "operation management information D15" of the vehicle 10 acquired in step S31.
[0120] Specifically, the control unit 305 predicts a trend (pattern) of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, based on the operating status of the computing device 105 of the vehicle 10 indicated in the operation management information D15. This prediction of the trend of changes in the utilization rate of the computing capacity of the computing device 105 may be achieved by machine learning. Then, based on the trend of changes in the utilization rate of the computing capacity of the computing device 105 of the vehicle 10, the control unit 305 predicts a period during which the computing capacity of the computing device 105 of the vehicle 10 has spare capacity (a period during which the utilization rate of the computing capacity is less than 100%), and defines this period as a "period during which the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing." For example, the control unit 305 defines a period during which the utilization rate of the computing capacity of the computing device 105 of the vehicle 10 is "30%" as a period during which "70%" of the computing capacity of the computing device 105 of the vehicle 10 can be used for grid computing processing.
[0121] <Step S33> Next, the control unit 305 registers (overwrites) the capacity prediction information D4 indicating the "change over time in the available computational capacity of the vehicle 10" predicted in step S32 in the capacity prediction table D34. This updates the capacity prediction table D34.
[0122] [Communication prediction processing] Next, the communication prediction process will be described with reference to Fig. 11. In the communication prediction process, the control unit 305 of the intermediate management server 30 predicts a change over time in the communication state of a vehicle 10 based on the communication management information D16 of the vehicle 10 registered in the vehicle management table D31. For example, when the communication management information D16 of the vehicle 10 registered in the vehicle management table D31 is updated, the control unit 305 performs the following process for the vehicle 10.
[0123] <Step S41> First, the control unit 305 acquires the communication management information D16 of the vehicle 10 registered in the vehicle management table D31. As in "updating the communication management information," the control unit 305 may update the communication management information D16 of the vehicle 10 registered in the vehicle management table D31 based on information that can be used to estimate the communication status of the vehicle 10, and acquire the updated communication management information D16.
[0124] <Step S42> Next, the control unit 305 predicts a change over time in the communication state of the vehicle 10 based on the communication management information D16 of the vehicle 10 acquired in step S41.
[0125] Specifically, the control unit 305 predicts a trend (pattern) of changes in the communication state of the vehicle 10 from the communication state of the vehicle indicated in the communication management information D16. This prediction of the trend of changes in the communication state of the vehicle 10 may be realized by machine learning. Then, the control unit 305 predicts a change over time in the communication state of the vehicle 10 (what state the communication state of the vehicle 10 will be at what time) based on the trend of changes in the communication state of the vehicle 10.
[0126] <Step S43> Next, the control unit 305 registers (overwrites) the communication prediction information D5 indicating the "change over time in the communication state of the vehicle 10" predicted in step S42 in the communication prediction table D35. This updates the communication prediction table D35. Note that if the future communication state (estimated value) of the vehicle 10 indicated in the communication management information D16 is sufficiently reliable, the future communication state of the vehicle 10 may be registered in the communication prediction information D5.
[0127] [Grid organization process] Next, the grid formation process will be described with reference to Fig. 12. The grid formation process is a process for forming a grid made up of a plurality of vehicles 10. The grid can be used for grid computing processing, which will be described later. For example, the control unit 305 of the intermediate management server 30 periodically performs the following process.
[0128] <Step S51> First, the control unit 305 acquires information necessary for grid organization. In this example, the control unit 305 acquires position prediction information D4 for each of the multiple vehicles 10 registered in the position prediction table D33, capacity prediction information D4 for each of the multiple vehicles 10 registered in the capacity prediction table D34, and communication prediction information D5 for each of the multiple vehicles 10 registered in the communication prediction table D35.
[0129] <Step S52> Next, the control unit 305 organizes a grid based on the information acquired in step S51.
[0130] In this example, the control unit 305 derives an available period for each of the multiple vehicles 10 based on the "position prediction information D3," "capability prediction information D4," and "communication prediction information D5" for each of the multiple vehicles 10. In this example, the available period is a period during which the computational capacity of the calculation device 105 of the vehicle 10 is available, the vehicle 10 is capable of communication, and the vehicle 10 is located in a predetermined range (area). Next, the control unit 305 selects, from the multiple vehicles 10, multiple vehicles 10 whose available periods overlap in part or in whole, and organizes grids using the selected multiple vehicles 10. In this way, multiple grids are organized. Then, the control unit 305 performs the following process for each grid.
[0131] First, the control unit 305 sets the period in which the available periods of each of the multiple vehicles 10 constituting the grid overlap in part or in whole as the "available period of the grid." Next, the control unit 305 derives, for each of the multiple vehicles 10 constituting the grid, the available computing capacity of that vehicle 10 in the grid and the available period of that vehicle 10 in the grid.
[0132] The available period for the vehicle 10 in the grid is the period (overlapping period) of the available period for the vehicle 10 that overlaps with the available period for the grid. The available computing capacity for the vehicle 10 in the grid is the available computing capacity for the vehicle 10 in the overlapping period.
[0133] Next, the control unit 305 derives the available computational capacity in the grid for each of the multiple vehicles 10 that make up the grid based on the vehicle's 10's "available computational capacity in the grid" and "available period in the grid."
[0134] The available computational capacity in the grid of vehicle 10 may be an amount corresponding to the product of the "available computational capacity in the grid of vehicle 10" and the "duration of the available period in the grid of vehicle 10." The available computational capacity in the grid of vehicle 10 may be an average value of the available computational capacity in the overlapping period of vehicle 10, a representative value selected from the available computational capacity in the overlapping period of vehicle 10, or another value derived from the available computational capacity in the overlapping period of vehicle 10. Alternatively, the available computational capacity in the grid of vehicle 10 may be an amount obtained by integrating the available computational capacity of vehicle 10 in the available period in the grid of vehicle 10.
[0135] Then, the control unit 305 derives the available computational capacity of the grid based on the sum of the "available computational capacity in the grid" of each of the multiple vehicles 10 that make up the grid. For example, the control unit 505 determines the sum of the "available computational capacity in the grid" of each of the multiple vehicles 10 that make up the grid as the "available computational capacity of the grid."
[0136] Through the above processing, for each grid, the "available computational capacity (available computational capacity in the grid)", "available period (available period in the grid)", and "available computational volume (available computational volume in the grid)" of each of the multiple vehicles 10 that make up the grid, as well as the available computational volume of the grid, are derived.
[0137] <Step S53> Next, for each grid organized in step S52, the control unit 305 registers information about that grid in the grid table D36. This updates the grid table D36. The information about the grid includes the registration number set for that grid, the vehicle ID, available computational capacity, available period, and available computational amount of each of the multiple vehicles 10 that make up that grid, and the available computational amount of that grid.
[0138] [Resource update process] Furthermore, the control unit 305 of the middle-class management server 30 performs a process (resource update process) for updating the amount of computational resources of each grid registered in the grid table D36. For example, the control unit 305 periodically performs the resource update process.
[0139] In the resource update process, the control unit 305 derives the available computational capacity and available period of each of the multiple vehicles 10 that constitute the grid. Next, the control unit 305 derives the available computational volume of each of the multiple vehicles 10 based on the derived available computational capacity and available period of each of the multiple vehicles 10. Next, the control unit 305 derives the available computation volume of the grid that is constituted by the multiple vehicles 10 based on the derived available computation volume of each of the multiple vehicles 10. Then, the control unit 305 registers (overwrites) the derived information about the grid (the available computational capacity, available period, available computation volume of each of the multiple vehicles 10 that constitute the grid, and the available computation volume of the grid) in the grid table D36. This updates the grid table D36.
[0140] [Grid reorganization] Furthermore, the control unit 305 of the intermediate management server 30 may reorganize the grids as necessary. For example, when the control unit 305 wants to intentionally increase the available calculation capacity of one of the grids registered in the grid table D36, the control unit 305 may incorporate vehicles 10 that belong to other grids registered in the grid table D36 into the grid whose available calculation capacity is to be intentionally increased.
[0141] [Resource Information Generation Process] Furthermore, the control unit 305 of the intermediate management server 30 performs (resource information generation processing). For example, the control unit 305 performs the resource information generation processing periodically. Alternatively, the control unit 305 performs the resource information generation processing in response to a resource information transmission request from the management server 50.
[0142] In the resource information generation process, the control unit 305 references the grid table D36 and generates resource information. In this example, the resource information includes the grid organized in the intermediate management server 30 and the available computational capacity of the grid. Then, the control unit 305 transmits the generated resource information to the management server 50.
[0143] [Intermediate request processing] Next, the intermediate request process will be described with reference to Fig. 13. The intermediate request process is a process of assigning, for job data D1 accepted in the job acceptance process, an intermediate management server 30 to which the job data D1 is to be requested to be processed. For example, after the job acceptance process is completed, the control unit 505 of the management server 50 performs the following process.
[0144] <Step S61> First, the control unit 505 selects a job to be the target of intermediate request processing from among the jobs registered in the job table D54. Then, the control unit 505 selects job data D1 corresponding to the job to be the target of intermediate request processing from among the job data D1 stored in the storage unit 504.
[0145] <Step S62> Next, the control unit 505 selects an intermediate management server 30 to be requested to process the job data D1 from among the intermediate management servers 30 registered in the intermediate resource table D55, and assigns the selected intermediate management server 30 to the job data D1.
[0146] Specifically, the control unit 505 selects, from among the intermediate management servers 30 registered in the intermediate resource table D55, an intermediate management server 30 to which a grid belongs that has an available calculation amount greater than or equal to the required calculation amount for the job data D1 (the calculation amount required to calculate the job data D1).
[0147] In consideration of the calculation efficiency of the job data D1, it is preferable that the difference between the required calculation amount of the job data D1 and the available calculation amount of the grid is small. For example, the control unit 505 may select, from among the intermediate management servers 30 registered in the intermediate resource table D55, the intermediate management server 30 to which the grid belongs, which has an available calculation amount whose difference with the required calculation amount of the job data D1 is below a threshold.
[0148] <Step S63> Next, the control unit 505 registers, in the intermediate request table D56, intermediate request information indicating which intermediate management server 30 is assigned to which job data D1. This updates the intermediate request table D56. For example, the intermediate request information includes the reception number set for the job corresponding to the job data D1 and the server ID set for the intermediate management server 30.
[0149] <Step S64> Next, the control unit 505 transmits the job data D1 and job management information related to the job data D1 to the intermediate management server 30 assigned to the job data D1 in step S62. The job management information includes the reception number set for the job corresponding to the job data D1, the name and content of the job, the calculation type and processing conditions of the job data D1, the required calculation amount for the job data D1 (the amount of calculation required to calculate the job data D1), the delivery date set for the job, etc.
[0150] When the control unit 305 of the intermediate management server 30 receives the job data D1 and job management information sent from the management server 50, it stores the job data D1 in the storage unit 304 and registers the job management information in the intermediate job table D32.
[0151] [Matching process] Next, the matching process will be described with reference to Fig. 14. The matching process is a process of allocating a grid organized in the grid organization process to the job data D1 accepted in the intermediate request process. For example, the control unit 305 of the intermediate management server 30 performs the following process after the grid organization process and the intermediate request process are completed.
[0152] <Step S71> First, the control unit 305 selects a job to be subjected to the matching process from among the jobs registered in the intermediate job table D32. Then, the control unit 305 selects job data D1 corresponding to the job to be subjected to the matching process from among the job data D1 stored in the storage unit 304.
[0153] <Step S72> Next, the control unit 305 selects a grid that can be used for grid computing processing for the job data D1 from among the grids registered in the grid table D36, and allocates the selected grid to the job data D1.
[0154] Specifically, the control unit 305 selects a grid having an available calculation amount equal to or greater than the calculation amount required for the job data D1 (calculation amount required for calculating the job data D1) from among the grids registered in the grid table D36.
[0155] In consideration of the calculation efficiency of the job data D1, it is preferable that the difference between the required calculation amount of the job data D1 and the available calculation amount of the grid is small. For example, the control unit 305 may select a grid from among the grids registered in the grid table D36, which has an available calculation amount whose difference from the required calculation amount of the job data D1 is below a threshold.
[0156] <Step S73> Next, the control unit 305 registers matching information indicating which grid is assigned to which job data D1 in the matching table D37. This updates the matching table D37. For example, the matching information includes the reception number set for the job corresponding to the job data D1 and the registration number set for the grid.
[0157] [Grid Computing Processing] Next, the grid computing process by the intermediate management server 30 will be described with reference to Fig. 15. In the grid computing process, the job data D1 is processed by a plurality of vehicles 10 that constitute a grid assigned to the job data D1 in the matching process. For example, the control unit 305 of the intermediate management server 30 performs the following process after the matching process is completed.
[0158] <Step S81> First, the control unit 305 refers to the grid table D36 and the matching table D37, and distributes the job data D1 to be subjected to the grid computing process to the multiple vehicles 10 that make up the grid assigned to the job data D1 in the matching process. As a result, the job data D1 is processed in parallel by the multiple vehicles 10 assigned to the job data D1.
[0159] Specifically, the control unit 505 determines the data amount of job data D1 to be allocated to each of the multiple vehicles 10 based on the available computational capacity of each of the multiple vehicles 10 constituting the grid assigned to the job data D1. Next, the control unit 505 divides the job data D1 into multiple partial job data based on the result of the determination, and assigns to each of the multiple partial job data a vehicle 10 (a vehicle 10 selected from the multiple vehicles 10 constituting the grid) that will process the partial job data. Then, the control unit 505 transmits each of the multiple partial job data to the vehicle 10 assigned to that partial job data.
[0160] <Step S82> Next, when each vehicle 10 completes the calculation of the partial job data (part of the job data D1) transmitted to that vehicle 10, it transmits the partial calculation result data (part of the calculation result data D2) obtained by the calculation to the intermediate management server 30. The control unit 305 of the intermediate management server 30 receives the partial calculation result data transmitted from the vehicle 10 and stores the partial calculation result data in the memory unit 304.
[0161] <Step S83> The control unit 305 determines whether or not all of the vehicles 10 to which the job data D1 has been distributed in step S81 have completed the calculations. If all of the vehicles 10 have completed the calculations, the process proceeds to step S84; if not, the process proceeds to step S82.
[0162] <Step S84> When all of the multiple vehicles 10 have completed the calculations, the control unit 305 generates calculation result data D2 (calculation result data D2 indicating the results of the calculation of the job data D1) corresponding to the job data D1 that is the target of the grid computing process by combining the partial calculation result data stored in the storage unit 304. Then, the control unit 305 transmits the calculation result data D2 corresponding to the job data D1 that is the target of the grid computing process to the management server 50.
[0163] [Check the vehicle disposal status] Furthermore, each of the multiple vehicles 10 that are caused to process the job data D1 (specifically, partial job data) generates partial processing status information that indicates the processing status of the job data D1 in that vehicle 10, and transmits the generated partial processing status information to the intermediate management server 30. The generation and transmission of the partial processing status information by the vehicle 10 may be performed periodically, or may be performed in response to a request from the intermediate management server 30 to transmit partial processing status information.
[0164] [Results provision processing] Next, the result providing process will be described with reference to Fig. 16. For example, the control unit 505 of the management server 50 performs the following process for each of the job data D1 registered in the intermediate request table D56.
[0165] <Step S91> The control unit 505 determines whether or not the calculation result data D2 corresponding to the job data D1 has been obtained. If the calculation result data D2 corresponding to the job data D1 has been obtained, the process proceeds to step S92.
[0166] <Step S92> The control unit 505 transmits the calculation result data D2 corresponding to the job data D1 obtained in step S91 to the client server 20 of the client that requested the calculation of the job data D1.
[0167] <Step S93> Next, the user who provided the computing power of the computing device 105 of the vehicle 10 for grid computing processing is given a reward by the operator of the system 1. Examples of rewards given to the user include points that can be used in the system 1, virtual currency, product discount benefits, etc.
[0168] For example, the control unit 505 of the management server 50 performs processing to provide a reward to a user who provides the computing power of the arithmetic device 105 of the vehicle 10 for grid computing processing. Examples of the processing to provide a reward include processing to associate a "user ID" set for the user with "points" (or virtual currency) that can be used in the system 1 and register them in the user table D50, and processing to send information indicating a product discount benefit to a user terminal (not shown) owned by the user. Note that the information indicating the reward may be registered for each job in the job table D53.
[0169] Furthermore, a reward may be given by the client to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing. For example, the control unit 205 of the client server 20 may execute processing for giving a reward to a user who provides the computing power of the computing device 105 of the vehicle 10 for grid computing processing.
[0170] [Checking the processing status of the intermediate management server] Furthermore, the control unit 305 of the intermediate management server 30 references the partial processing status information transmitted from each of the multiple vehicles 10 that are to process the job data D1, generates processing status information indicating the processing status of the job data D1, and transmits the processing status information to the management server 50. The generation and transmission of the processing status information by the intermediate management server 30 may be performed periodically, or may be performed in response to a request from the management server 50 to transmit processing status information.
[0171] [Effects of the embodiment] As described above, in the embodiment, each of the multiple intermediate management servers 30 organizes a grid using multiple vehicles 10 that have a common available period among the multiple vehicles 10 under the management of the intermediate management server 30 based on the available computing capacity and available period of each of the multiple vehicles 10 under the management of the intermediate management server 30, and generates resource information indicating the amount of computing resources corresponding to the available computing capacity and available period of the grid. The management server 50 selects an intermediate management server 30 to which job data is to be sent from the multiple intermediate management servers 30 based on the resource information generated by each of the multiple intermediate management servers 30, and sends the job data to the selected intermediate management server 30.
[0172] In the above configuration, each of the multiple intermediate management servers 30 can be made to handle the process of managing the vehicle 10. Specifically, each of the multiple intermediate management servers 30 can be made to handle "the process of managing the available computing capacity and available period of the vehicle 10" and "the process of organizing the grid." This can reduce the processing load on the management server 50.
[0173] Furthermore, in the embodiment, the resource information generated by the intermediate management server 30 indicates the amount of computational resources of a grid organized using multiple vehicles 10 under the management of the intermediate management server 30. With this configuration, the processing load on the management server 50 can be reduced compared to when the resource information simply indicates "the amount of computational resources of each of multiple vehicles 10 under the management of the intermediate management server 30." For example, the processing for deriving the amount of computational resources per grid in the management server 50 can be omitted.
[0174] In the embodiment, each of the intermediate management servers 30 selects a grid to process job data transmitted from the management server 50 from among grids formed using a plurality of vehicles 10 under the management of the intermediate management server 30, and causes the plurality of vehicles 10 constituting the grid to process the job data. Each of the intermediate management servers 30 is capable of storing a plurality of pieces of job data transmitted from the management server 50.
[0175] In the above configuration, the "processing for selecting a grid for processing job data" and the "processing for causing a plurality of vehicles 10 constituting the grid to process job data" can be assigned to each of the multiple intermediate management servers 30. This reduces the processing load on the management server 50.
[0176] Furthermore, in the above configuration, multiple pieces of job data can be stored in each of the multiple intermediate management servers 30, which improves the flexibility of the timing at which job data is transmitted from the management server 50 to the intermediate management server 30. This allows the job data to be transmitted appropriately from the management server 50 to the intermediate management server 30.
[0177] Furthermore, in the above configuration, the intermediate management server 30 is responsible for the "processing for selecting a grid to process job data," and the job data D1 can be stored in the intermediate management server 30. Therefore, even if the amount of computational resources (specifically, the available computational amount) of a grid fluctuates due to a change in the usage status of the vehicles 10 that constitute the grids managed by the intermediate management server 30, the intermediate management server 30 can appropriately select a grid to process the job data D1 based on the amount of computational resources of the grid after the change. In this way, the intermediate management server 30 can absorb the fluctuation in the amount of computational resources of the grids, thereby reducing the load on the management server 50. Note that this configuration is particularly effective when the number of grids managed by the intermediate management server 30 is relatively large.
[0178] In the embodiment, each of the intermediate management servers 30 transmits to the management server 50 processing status information indicating the processing status of the job data transmitted from the management server 50.
[0179] In the above configuration, by transmitting processing status information from each of the multiple intermediate management servers 30 to the management server 50, the processing status of job data in each of the multiple intermediate management servers 30 can be managed by the management server 50.
[0180] (Modification 1 of the embodiment) The system of the first modification of the embodiment differs from the system of the embodiment in the process for selecting the "grid on which the job data D1 is to be processed." The other configurations of the system of the first modification of the embodiment are the same as those of the system of the embodiment.
[0181] In a first modification of the embodiment, the management server 50 selects a "grid to process the job data D1" from among the grids under the management of each of the multiple intermediate management servers 30, based on the resource information generated by each of the multiple intermediate management servers 30. Then, the management server 50 transmits the job data D1 and grid selection information indicating the result of the grid selection (which grid has been selected as the "grid to process the job data D1") to the intermediate management server 30 that manages the selected grid (the grid to process the job data D1) among the multiple intermediate management servers 30.
[0182] Specifically, in step S62 of the intermediate request processing, the control unit 505 of the management server 50 selects a grid to process the job data D1 from among the grids under the management of each intermediate management server 30 registered in the intermediate resource table D55, and assigns the selected grid to the job data D1.
[0183] Then, in step S64 of the intermediate request processing, the control unit 505 transmits the job data D1, job management information regarding the job data D1, and grid selection information indicating the grid assigned to the job data D1 to the intermediate management server 30 that manages the grid assigned to the job data D1 in step S62.
[0184] When the control unit 305 of the intermediate management server 30 receives the job data D1, job management information, and grid selection information sent from the management server 50, it stores the job data D1 in the memory unit 304 and registers the job management information and grid selection information in the intermediate job table D32.
[0185] In addition, in variant example 1 of the embodiment, each of the multiple intermediate management servers 30 causes the job data D1 transmitted from the management server 50 to be processed by the multiple vehicles 10 that constitute the grid indicated in the grid selection information transmitted from the management server 50.
[0186] Specifically, in step S72 of the matching process, the control unit 305 of the intermediate management server 30 selects a grid (a grid for processing job data D1) indicated in the grid selection information registered in the intermediate job table D32 from among the grids registered in the grid table D36, and assigns the selected grid to the job data D1.
[0187] [Effects of Modification 1 of the Embodiment] As described above, in the first modification of the embodiment, the management server 50 selects a "grid to process the job data D1" from among the grids under the management of each of the multiple intermediate management servers 30 based on the resource information generated by each of the multiple intermediate management servers 30, and transmits the job data D1 and grid selection information indicating the result of the grid selection to the intermediate management server 30 that manages that grid among the multiple intermediate management servers 30. Each of the multiple intermediate management servers 30 causes the job data D1 transmitted from the management server 50 to be processed by the multiple vehicles 10 that make up the grid indicated in the grid selection information transmitted from the management server.
[0188] In the above configuration, by having the management server 50 take charge of the "process for selecting a grid for processing job data," when the number of grids under the management of the intermediate management server 30 is relatively small (i.e., when the intermediate management server 30 does not have much freedom in selecting a grid), the load on the entire management system (specifically, the total load on the management server 50 and each of the multiple intermediate management servers 30) can be reduced. This allows for smooth allocation of grids to the job data D1. Note that this configuration is particularly effective when the number of grids under the management of the intermediate management server 30 is relatively small.
[0189] (Modification 2 of the embodiment) Depending on the number of grids under the management of the intermediate management server 30, the intermediate management server 30 may selectively perform a process of allocating a grid to the job data D1 (the intermediate request process and matching process of the embodiment) and a process of allocating a grid to the job data D1 (the intermediate request process and matching process of the embodiment variant 1).
[0190] For example, the control unit 505 of the management server 50 determines whether the number of grids under the management of the intermediate management server 30 that is to process the job data D1 exceeds a predetermined number.
[0191] If the number of grids under the management of the intermediate management server 30 that is to process the job data D1 falls below a predetermined number, the control unit 505 of the management server 50 sends grid selection information indicating the grid that will process the job data D1 (a grid selected from the grids under the management of the intermediate management server 30) to the intermediate management server 30 along with the job data D1.
[0192] When the control unit 305 of the intermediate management server 30 receives the grid selection information along with the job data D1 sent from the management server 50, it causes the job data D1 to be processed by the multiple vehicles 10 that make up the grid indicated in the grid selection information.
[0193] On the other hand, if the number of grids under the management of the intermediate management server 30 that is to process the job data D1 is not below a predetermined number, the control unit 505 of the management server 50 sends the job data D1 to the intermediate management server 30 without selecting a grid to process the job data D1.
[0194] When the control unit 305 of the intermediate management server 30 does not receive grid selection information along with the job data D1 sent from the management server 50, it selects a grid to process the job data D1 from among the grids under the management of the intermediate management server 30, and causes the multiple vehicles 10 that make up that grid to process the job data D1.
[0195] [Effects of Modification 2 of the Embodiment] As described above, in the second modification of the embodiment, the "process in which the intermediate management server 30 allocates a grid to the job data D1" and the "process in which the management server 50 allocates a grid to the job data D1" are selectively performed depending on the number of grids under the management of the intermediate management server 30. With this configuration, the "process in which the intermediate management server 30 allocates a grid to the job data D1" and the "process in which the management server 50 allocates a grid to the job data D1" can be appropriately switched between.
[0196] (Other embodiments) In the above description, it is preferable that the resource information generated by the intermediate management server 30 does not include the amount of computational resources of each of the multiple vehicles 10 under the management of the intermediate management server 30. With this configuration, the processing load on the management server 50 can be reduced compared to when the resource information includes "the amount of computational resources of each of the multiple vehicles 10" in addition to "the amount of computational resources of the grid." For example, the processing load required for processing the resource information on the management server 50 can be reduced.
[0197] Furthermore, in the above description, the available period of the vehicle 10 (the period during which the computing capacity of the vehicle 10 can be provided to grid computing processing) is "the period during which the computing capacity of the arithmetic device 105 of the vehicle 10 is available, the vehicle 10 is capable of communication, and the vehicle 10 is located within a predetermined range (area)," but this is not limiting. For example, the available period of the vehicle 10 may be "the period during which the computing capacity of the arithmetic device 105 of the vehicle 10 is available, and the vehicle 10 is capable of communication." In this case, the control unit 305 of the intermediate management server 30 may derive the available period of the vehicle 10 based on the capacity prediction information D4 of the vehicle 10 registered in the capacity prediction table D34 and the communication prediction information D5 of the vehicle 10 registered in the communication prediction table D35.
[0198] In the above description, the control unit 505 is aggregated in a single management server 50, but the present invention is not limited to this. For example, the control unit 505 may be distributed among a plurality of management servers 50 (not shown) that communicate with each other via the communication network 5. The same applies to the control unit 305.
[0199] In the above description, the storage unit 504 may be configured by a single storage device or may be configured by multiple storage devices. The multiple storage devices may be consolidated into a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5. The same applies to the storage unit 304.
[0200] In the above description, the control unit 505 may be configured by a single control unit or may be configured by multiple control units. The multiple control units may be aggregated in a single management server 50, or may be distributed among multiple management servers 50 (not shown) that communicate with each other via the communication network 5. The same applies to the control unit 305.
[0201] In the above description, the arithmetic device 105 may be configured with a single arithmetic unit, or may be configured with multiple arithmetic units.
[0202] In the above description, an example has been given in which the computing power of the arithmetic device 105 is used for driving control of the vehicle 10, but this is not limiting. The computing power of the arithmetic device 105 may be used for a function other than driving control of the vehicle 10. Furthermore, the arithmetic device 105 may be a different arithmetic device (a different arithmetic device used for a different function) from the arithmetic device used for driving control of the vehicle 10.
[0203] In the above description, the vehicle 10 (specifically, a four-wheeled motor vehicle) is given as an example of a moving body on which the arithmetic device 105 is mounted, but the present invention is not limited to this. The arithmetic device 105 may be mounted on a moving body other than the vehicle 10. Examples of such moving bodies include transportation machinery and personal digital assistants. Examples of transportation machinery include motorcycles, railroad vehicles, ships, aircraft, and drones. A vehicle is an example of transportation machinery. Examples of personal digital assistants include notebook personal computers, tablets, and smartphones.
[0204] In the above description, the grid computing process may be provided with the computing power of not only the computing device 105 mounted on the vehicle 10 but also that of another computing device (not shown). Such another computing device may be a stationary computing device (for example, a desktop personal computer).
[0205] The above embodiments may be combined as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the technology disclosed herein, its applications, or its uses. [Industrial Applicability]
[0206] As described above, the technology disclosed herein is useful as a grid computing technology. [Explanation of symbols]
[0207] 1 System 10 Vehicles (moving objects) 105 Arithmetic equipment 30 Intermediate management server (intermediate management device) 50 Management Server (Management Device) 501 Input section 502 Output section 503 Communications Department 504 Storage section 505 Control Unit
Claims
1. A management system for managing a plurality of mobile objects each having a computing device capable of providing computing power for grid computing processing that processes job data, comprising: a plurality of intermediate management devices; a management device; each of the plurality of intermediate management devices organizes a grid using a plurality of mobile bodies under the management of the intermediate management device that have a common available period based on an available computing capacity, which is a computing capacity that can be used for the grid computing process of each of the plurality of mobile bodies under the management of the intermediate management device, and an available period, which is a period during which the available computing capacity can be provided for the grid computing process, and generates resource information indicating an amount of computing resources according to the available computing capacity and the available period of the grid; The management device selects an intermediate managing device to which the job data is to be sent from among the plurality of intermediate managing devices based on the resource information generated by each of the plurality of intermediate managing devices, and sends the job data to the selected intermediate managing device. A management system characterized by:
2. In the management system of claim 1, each of the plurality of intermediate management devices selects a grid to process the job data transmitted from the management device from among grids organized using a plurality of mobile objects under the management of the intermediate management device, and causes the plurality of mobile objects constituting the grid to process the job data; Each of the plurality of intermediate management devices is capable of storing a plurality of pieces of job data transmitted from the management device. A management system characterized by:
3. In the management system of claim 1, the management device selects a grid to process the job data from among the grids managed by each of the plurality of middle-class management devices based on resource information generated by each of the plurality of middle-class management devices, and transmits the job data and grid selection information indicating the result of the grid selection to one of the plurality of middle-class management devices that manages the selected grid; Each of the plurality of intermediate management devices causes a plurality of mobile objects constituting a grid indicated in the grid selection information transmitted from the management device to process the job data transmitted from the management device. A management system characterized by:
4. In the management system of any one of claims 1 to 3, Each of the plurality of intermediate managing devices transmits processing status information indicating a processing status of the job data transmitted from the managing device to the managing device. A management system characterized by:
5. A management device that uses a plurality of intermediate management devices to manage a plurality of mobile objects, each of which has a computing device capable of providing computing power for grid computing processing that processes job data, A control unit is provided, The control unit causing each of the plurality of intermediate management devices to transmit resource information indicating an amount of computational resources corresponding to an available computational capacity and an available period of a grid organized using a plurality of mobile bodies that have a common available period among the plurality of mobile bodies under the management of the intermediate management device, based on an available computational capacity that is a computational capacity that can be used for the grid computing process of each of the plurality of mobile bodies under the management of the intermediate management device and an available period that is a period during which the available computational capacity can be provided for the grid computing process; a middle-class managing apparatus to which the job data is to be transmitted is selected from the middle-class managing apparatuses based on the resource information transmitted from each of the middle-class managing apparatuses, and the job data is transmitted to the middle-class managing apparatus; A management device characterized by:
6. A management method for managing a plurality of mobile objects, each of which has a computing device capable of providing computing power for grid computing processing that processes job data, using a management device and a plurality of intermediate management devices, comprising: each of the plurality of intermediate management devices organizes a grid using a plurality of mobile bodies under the management of the intermediate management device that have a common available period based on an available computing capacity, which is a computing capacity that can be used for the grid computing process of each of the plurality of mobile bodies under the management of the intermediate management device, and an available period, which is a period during which the available computing capacity can be provided for the grid computing process, and generates resource information indicating an amount of computing resources according to the available computing capacity and the available period of the grid; The management device selects an intermediate management device to which the job data is to be sent from among the plurality of intermediate management devices based on the resource information generated in each of the plurality of intermediate management devices, and sends the job data to the selected intermediate management device. A management method characterized by:
Citation Information
Patent Citations
System and method for distributed processing using internet
JP2003016043A
Distributed processing system and onboard terminal
JP2007087273A
Distributed processing system, on-board terminal, and base station
JP2007089021A
On-vehicle distributed processing system
JP2007126044A
Data processing method
WO2012160629A1