WO2019111411A1 - 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム - Google Patents

協調分散システム、協調分散管理装置、協調分散方法、及びプログラム Download PDF

Info

Publication number
WO2019111411A1
WO2019111411A1 PCT/JP2017/044227 JP2017044227W WO2019111411A1 WO 2019111411 A1 WO2019111411 A1 WO 2019111411A1 JP 2017044227 W JP2017044227 W JP 2017044227W WO 2019111411 A1 WO2019111411 A1 WO 2019111411A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
cost
edge devices
result
processing arrangement
Prior art date
Application number
PCT/JP2017/044227
Other languages
English (en)
French (fr)
Inventor
航洋 竹之下
将仁 谷口
Original Assignee
株式会社ウフル
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ウフル filed Critical 株式会社ウフル
Priority to JP2019557973A priority Critical patent/JP6721800B2/ja
Priority to PCT/JP2017/044227 priority patent/WO2019111411A1/ja
Publication of WO2019111411A1 publication Critical patent/WO2019111411A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to technology for cooperatively distributing a plurality of edge devices in the field of Internet of Things (IoT).
  • IoT Internet of Things
  • Patent Document 1 discloses a system that realizes the efficiency of the entire data processing performed by a plurality of data processing devices.
  • the present invention is a cooperative distributed system in which a plurality of edge devices are cooperatively distributed to change processing arrangement so as to minimize cost, and an acquiring unit for acquiring parameters from the plurality of distributed edge devices; Calculation means for calculating the operation cost, communication cost, and utilization cost from the parameters, determination means for determining the processing arrangement in which the total cost is minimized from the calculation result, and the processing arrangement is moved from the result of the determination And changing means for changing.
  • the present invention is a cooperative distributed management apparatus for changing a processing arrangement so as to minimize costs by cooperatively distributing a plurality of edge devices, and acquiring means for acquiring parameters from the plurality of distributed edge devices And calculating means for calculating the operation cost, communication cost, and utilization cost from the parameters, determining means for determining the processing arrangement in which the total cost is minimized from the result of the calculation, and processing from the result of the determination And a change means for dynamically changing the arrangement.
  • the present invention is a cooperative distribution method in which a plurality of edge devices are cooperatively distributed to change processing arrangement so as to minimize costs, and obtaining parameters from the plurality of distributed edge devices; The steps of calculating the operation cost, the communication cost, and the utilization cost from the parameters, the step of determining the processing arrangement in which the total cost is minimized from the result of the calculation, and the processing arrangement dynamically from the result of the determination And b.
  • the present invention is a program for causing a computer to execute processing of changing the processing arrangement so as to minimize costs by coordinating and distributing a plurality of edge devices, and parameters from the plurality of distributed edge devices are used. Calculating the operation cost, the communication cost, and the utilization cost from the parameter, determining the processing arrangement that minimizes the total cost from the calculation result, and the calculation result from the determination result. Providing a program for executing the step of dynamically changing the processing arrangement.
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of a coordinated, distributed management device 10.
  • FIG. 2 is a diagram showing an example of a functional configuration of the cooperative distributed system 1; It is a sequence chart which shows an example of operation
  • FIG. It is a figure which shows an example of the calculation result of the cost concerning a process.
  • FIG. 1 is a diagram showing an example of a cooperative distributed system 1 according to the present embodiment.
  • the cooperative distributed system 1 is a system which changes the processing arrangement so as to minimize the cost by cooperatively distributing the edge devices 40.
  • the “coordinated distributed system” refers to a system in which a group of software (also referred to as agents) that independently determines and acts operates in cooperation.
  • a “coordinated distributed system” is a flexible system in which agents make their own organization and change themselves as needed.
  • An “edge device” is a device that communicates between different networks and seamlessly mediates data effects, integration, synchronization, and the like.
  • the cooperative distributed system 1 includes a cooperative distributed management device 10, a client device 20, a server device 30, a plurality of edge devices 40, and a plurality of IoT devices 50.
  • the edge devices 40 are distributed on the cooperative distributed system 1.
  • the number of each apparatus shown in FIG. 1 is an illustration, and is not limited to this.
  • the number of client devices 20 and the number of coordinated distributed management devices 10 may be plural.
  • the number of edge devices 40 and IoT devices 50 may be singular or plural.
  • the cooperative distributed management device 10, the client device 20, the server device 30, and the plurality of edge devices 40 are connected via a communication line 60.
  • the communication line 60 may be the Internet.
  • the plurality of edge devices 40 and the plurality of IoT devices 50 are connected via the communication line 70.
  • the communication line 70 may be a LAN (Local Area Network) or a wireless LAN.
  • FIG. 2 is a diagram showing an example of the hardware configuration of the coordinated, distributed management device 10.
  • the cooperative distributed management device 10 manages the arrangement of processes in the cooperative distributed system 1. Specifically, the coordinated distributed management device 10 assigns the process requested by the client device 20 to at least one of the server device 30 and the edge device 40. At this time, the cooperative decentralized management apparatus 10 allocates the process so as to minimize the cost of the process.
  • the cooperative distributed management device 10 is a computer including a processor 11, a memory 12, a storage 13, and a communication device 14. These devices are connected via a bus 15.
  • the processor 11 executes various processes by reading the program into the memory 12 and executing the program.
  • the processor 11 may be configured by a CPU (Central Processing Unit).
  • the memory 12 stores a program to be executed by the processor 11.
  • the memory 12 may be configured by a read only memory (ROM) or a random access memory (RAM).
  • the storage 13 stores various data and programs.
  • the storage 13 may be configured by a hard disk drive or flash memory.
  • the communication device 14 is a communication interface connected to the communication line 60. The communication device 14 performs data communication via the communication line 60.
  • the client device 20 requests the cooperative distributed management device 10 to perform processing in accordance with the user's operation.
  • the client device 20 is a computer having an input device and an output device in addition to the same configuration as the cooperative distributed management device 10.
  • the input device is used to input various information.
  • the input device may be configured by a keyboard, a mouse, a physical button, or a touch sensor.
  • the display device displays various information.
  • the display device may be configured by a liquid crystal display.
  • the server device 30 executes the process assigned to the coordinated distributed management device 10.
  • the server device 30 generally has higher processing capability than the edge device 40.
  • the server apparatus 30 may be a cloud server that provides a cloud service, or may be an on-premises server. In the former case, the server apparatus 30 is operated by an administrator different from the cooperative distributed management apparatus 10, the client apparatus 20, the edge device 40, and the IoT device 50. On the other hand, in the latter case, the server device 30 may be operated by the same manager as the cooperative distributed management device 10, the client device 20, the edge device 40, or the IoT device 50.
  • the server device 30 is a computer having the same configuration as the cooperative distributed management device 10.
  • the edge device 40 is a gateway that relays data communication between the IoT device 50 and other devices.
  • the edge device 40 may be a router or a switch.
  • the edge device 40 executes the process assigned to the cooperative distributed management device 10 as the server device 30 does.
  • the edge device 40 is a computer having the same configuration as the coordinated distributed management device 10.
  • the IoT device 50 is a device having a sensor and a communication function.
  • the IoT device 50 may be any device as long as it has a sensor and a communication function.
  • the sensor detects a physical quantity and outputs sensor information including the detected physical quantity.
  • the sensor may be a temperature sensor, a humidity sensor, an acceleration sensor, a human sensor, a microphone for acquiring sound, or a camera for acquiring a still image or a moving image.
  • FIG. 3 is a diagram showing an example of a functional configuration of the cooperative distributed system 1.
  • the cooperative distributed system 1 functions as a reception unit 101, an acquisition unit 102, a generation unit 103, a calculation unit 104, a determination unit 105, an assignment unit 106 (determination unit and change unit), and a transmission unit 107. These functions are performed by the cooperation of the program stored in the memory 12 and the processor 11 executing this program in the cooperative distributed management device 10 so that the processor 11 performs operations or controls communication by the communication device 14. Is realized by
  • the receiving unit 101 receives a request for processing from the client device 20.
  • This process may be, for example, a process using sensor information output from the IoT device 50.
  • the processing requested from the client device 20 is referred to as “target processing”.
  • the acquisition unit 102 acquires a parameter, which is status information indicating a processing status, from the server device 30 and the edge device 40 (hereinafter collectively referred to as “processing device”).
  • the parameter may include at least one of the amount of data of another process being executed by the processing apparatus, the processing time for the other process, and the function information indicating the function used in the other process. . Acquisition of this parameter is performed at a predetermined timing. Alternatively, acquisition of parameters may be performed when the receiving unit 101 receives a request for processing.
  • the generation unit 103 generates a plurality of combinations constituted by one or more processing devices included in a plurality of processing devices.
  • the combination means a set of one or more pieces taken from a plurality of processing devices.
  • the combination includes not only a combination constituted by a plurality of processors but also a combination constituted by a single processor.
  • the calculation unit 104 is a target when the processing device configuring the combination executes the target processing for each of the plurality of combinations generated by the generation unit 103 based on the parameters acquired by the acquisition unit 102.
  • the target process may include a process of storing data and a process of communicating data. This cost is the cost consumed to execute the processing of interest, and is money amount information represented by the value of money.
  • the cost may include at least one of an operation cost, a communication cost, and a usage cost.
  • the operation cost is the cost of operating the processing apparatus while executing the target processing.
  • the communication cost is the cost of data communication that occurs when executing the target processing.
  • the usage cost is the cost of using the functions necessary to execute the target processing.
  • This function may be a function of the processing apparatus or a function of an external apparatus.
  • the function that the external device has may be, for example, a cloud service provided by the external device.
  • the cooperative distributed management device 10 is in cooperation with an external device, and the edge device 40 can use the function of the external device via the cooperative distributed management device 10. In this case, the usage cost of the function may be acquired from the external device.
  • the determination means 105 determines a single combination out of the plurality of combinations generated by the generation means 103 based on the cost calculated by the calculation means 104. For example, the determination unit 105 determines, from among the plurality of combinations generated by the generation unit 103, a combination that minimizes the cost calculated by the calculation unit 104.
  • the assignment means 106 assigns the processing of interest to the processing devices that make up the combination determined by the determination means 105.
  • the “allocation” means that at least one of a plurality of processing devices has taken charge of processing.
  • the concept of “assignment” includes not only dividing a single process into a plurality of processing units, but also handling a single processing by a single processing unit.
  • the allocation unit 106 divides the target processing into a plurality of partial processings, and performs the plurality of partial processings into two or more processing devices. It may be assigned. In this way, the processing arrangement that minimizes the total cost is determined, and the processing arrangement is dynamically changed.
  • the “processing arrangement” refers to allocating a process to a processing device.
  • the transmission means 107 transmits the result of the acquired process to the client device 20 when the result of the process is acquired from the processing device to which the target process is allocated by the allocation means 106.
  • the transmitting unit 107 acquires the plurality of acquired partial processes when the results of the plurality of partial processes are acquired from these processors.
  • the results of the processing may be integrated and sent to the client device 20.
  • the processor stored in cooperation with the program stored in the memory 12 and the processor 11 executing this program 11 means that the process is executed by performing an operation or controlling the communication by the communication device 14.
  • the client device 20, the server device 30, and the edge device 40 means that the process is executed by performing an operation or controlling the communication by the communication device 14.
  • FIG. 4 is a sequence chart showing an example of the operation of the cooperative distributed system 1.
  • the edge device 40 includes edge devices 40A, 40B, and 40C.
  • the IoT device 50 includes IoT devices 50A to 50F.
  • the IoT devices 50A and 50B, the IoT devices 50C and 50D, and the IoT devices 50E and 50F are connected to the edge devices 40A, 40B, and 40C, respectively.
  • step S101 the client device 20 transmits a request for processing of interest to the coordinated distributed management device 10.
  • This request includes, for example, information indicating the content of the target process and data used for the target process.
  • This target process may be, for example, a process of analyzing sensor information output from the IoT device 50A.
  • the receiving unit 101 of the coordinated distributed management device 10 receives a request for processing of interest from the client device 20.
  • each of the plurality of processing devices transmits, to the cooperative distributed management device 10, a parameter indicating the status regarding another process being executed.
  • the transmission of this parameter may be performed spontaneously by a plurality of processing devices, or may be performed in response to a request from the coordinated distributed management device 10.
  • the acquisition means 102 of the coordinated, distributed management device 10 transmits parameter requests to a plurality of processing devices.
  • Each of the plurality of processing devices transmits the parameter in response to the request received from the coordinated distributed management device 10.
  • the parameters include, for example, the amount of data of other processes being executed by the processing apparatus, the processing time required for other processes, and function information indicating functions used in other processes.
  • the acquisition means 102 of the coordinated distributed management device 10 receives parameters from a plurality of processing devices.
  • step S103 the generation unit 103 of the cooperative distributed management device 10 generates all combinations configured by one or more processing devices included in a plurality of processing devices.
  • a combination comprising a single edge device 40, a combination comprising a plurality of edge devices 40, a combination comprising a single server device 30, a single server device 30 and one or more And the edge device 40 of the
  • step S104 based on the parameters received in step S102, the calculation means 104 of the cooperative distributed management system 10 executes the processing of the processing apparatus constituting the combination for all combinations generated in step S103. Calculate the cost of the target process if
  • FIG. 5 is a diagram showing an example of calculation results of costs for processing.
  • the cost of the process includes the operation cost, the communication cost, and the usage cost.
  • the total cost is the sum of the operation cost, the communication cost, and the usage cost.
  • Operation cost operation cost per unit time ⁇ processing time ... (1)
  • the operation cost per unit time included in the equation (1) is predetermined.
  • the operation cost per unit time may be different depending on the processing apparatus or may be the same.
  • the processing time included in equation (1) is the time taken to process the target.
  • the processing time is estimated based on the amount of data used for processing and the processing power currently available in the processing device.
  • the currently available processing power is determined, for example, based on the processing performance of the processing device and the status regarding other processing being executed indicated by the parameter.
  • the communication cost can be obtained by the following equation (2), for example, when the operation cost is incurred for each unit communication amount.
  • Communication cost Communication cost per unit communication volume ⁇ Communication volume ... (2)
  • the communication cost per unit communication volume included in the equation (2) is determined in advance.
  • the communication amount included in the equation (2) is the amount of data communication that occurs when executing the processing of interest. For example, when the edge device 40A acquires and executes processing using sensor information output from the IoT device 50A, when sensor information is transmitted from the IoT device 50A to the edge device 40A in advance, new data communication is performed. Does not occur. In this case, the communication amount is zero.
  • the server device 30 executes processing using the sensor information output from the IoT device 50A, data communication occurs at least between the edge device 40A and the server device 30 via the communication line 60. In this case, the communication amount includes the amount of this data communication.
  • the usage cost can be obtained by the following equation (3), for example, when the usage cost is incurred for each unit data amount.
  • Usage cost Usage cost per unit data volume x data volume ... (3)
  • the utilization cost per unit data amount included in the equation (3) is predetermined.
  • the utilization cost per unit data volume may differ depending on the function.
  • the amount of data included in equation (3) is the amount of data used for processing that uses a function.
  • the combination C1 is configured by the edge device 40A.
  • the operation cost of this combination C1 is "15”
  • the communication cost is "20”
  • the usage cost is "10”.
  • the total cost of combination C1 is “45” which is the sum of these costs.
  • the target processing is distributed to these processing devices.
  • the cost of processing the object may be calculated for all the dispersion patterns.
  • the cost of the target processing may be different.
  • the cost of the target process may be calculated for all possible patterns of the rate at which the target process is performed.
  • step S105 the determination means 105 of the coordinated, distributed management device 10 determines a combination that minimizes the total cost. For example, when the total cost of the combination C1 is the smallest among the total costs of all the combinations shown in FIG. 5, the combination C1 is determined. On the other hand, when the total cost of the combination C2 is minimum, the combination C2 is determined.
  • step S106 the allocation unit 106 of the cooperative distributed management device 10 allocates the target processing to the processing devices (hereinafter, referred to as "target processing devices") configuring the combination determined in step S105. For example, when the combination C1 shown in FIG. 5 is determined, the target processing is assigned to the edge device 40A.
  • target processing devices for example, when the combination C1 shown in FIG. 5 is determined, the target processing is assigned to the edge device 40A.
  • target processing is assigned to the edge device 40A and the server device 30.
  • the allocating unit 106 divides the target processing into the first partial processing and the second partial processing, allocates the first partial processing to the edge device 40A, and allocates the second partial processing to the server device 30.
  • the division and assignment of the target processing may be performed according to the distribution pattern of the processing with the lowest total cost.
  • step S107 the allocation unit 106 of the cooperative distributed management device 10 transmits, to the target processing device, an execution instruction of the target processing allocated in step S106.
  • an instruction to execute the process is transmitted to the edge device 40A.
  • an instruction to execute the first partial process is sent to the edge device 40A.
  • An execution instruction of the two-part process is transmitted.
  • step S ⁇ b> 108 the target processing device executes the target processing in accordance with the execution instruction received from the cooperative distributed management device 10. For example, when the execution instruction of the target process is transmitted to the edge device 40A, the edge device 40A executes this process. On the other hand, when the execution instruction of the first partial process is transmitted to the edge device 40A and the execution instruction of the second partial process is transmitted to the server device 30, the edge device 40A executes the first partial process, and the server device 30 performs the second partial process. At this time, for example, when the sensor information output from the IoT device 50A is used for the second partial process, the server device 30 acquires the second partial process by acquiring the sensor information from the IoT device 50A via the edge device 40A. Run.
  • step S109 when the target processing is completed, the target processing device transmits the result of the processing to the cooperative distributed management device 10.
  • the result of the processing is transmitted from the edge device 40A to the cooperative distributed management device 10.
  • the edge device 40A and the server device 30 respectively execute the first partial process and the second partial process
  • the edge device 40A transmits the result of the first partial process to the coordinated distributed management device 10
  • the result of the second partial process is transmitted to the coordinated, distributed management device 10 from FIG.
  • step S ⁇ b> 110 the transmission unit 107 of the cooperative distributed management device 10 transmits the result of the process received from the target processing device to the client device 20.
  • the process result is transmitted to the client device 20.
  • the transmitting means 107 integrates the results of these partial processes and then sends them to the client device 20. Send.
  • step S102 the processing of step S102 to step S108 described above may be performed.
  • the process of step S102 is started at a predetermined timing during the process of interest.
  • step S105 when a new combination different from the previous one is determined, in step S107, an execution instruction of an unprocessed portion in the process being executed is transmitted to the target processing device forming the new combination.
  • the new target processor executes the unprocessed part.
  • an instruction to cancel the process being executed is transmitted to the previous processing target device.
  • the previous processing target device cancels the processing being executed, and transmits the result of the processing part completed to the cooperative distributed management device 10.
  • the execution subject of the process may be changed in the middle of the target process so as to minimize the total cost.
  • the process since the process is allocated so as to minimize the total cost, the cost for the process can be reduced.
  • a combination when a new edge device 40 is added to the cooperative distributed system 1, a combination may be generated including the added edge device 40.
  • the coordinated distributed management device 10 may have a function of detecting the newly added edge device 40. Further, in response to the addition of a new edge device 40, the processes after step S102 described above may be performed.
  • combinations may be generated according to the state of the edge device 40. For example, when the edge device 40 is paused or stopped, combinations including the paused or stopped edge device 40 may be excluded. In addition, when the edge device 40 recovers from sleep or stop, a combination including the recovered edge device 40 may be added. In this case, the cooperative distributed management device 10 may have a function of detecting the state of the edge device 40. In addition, the processing after step S102 described above may be performed when the edge device 40 recovers.
  • the calculation method of the cost described in the above-described embodiment is an example, and is not limited thereto.
  • the operation cost, the communication cost, and the usage cost respectively execute the target processing cost, the operation cost of the processing apparatus, the data communication cost to be generated when the target processing is performed, and the target processing. Any method may be used to calculate the cost of using functions required to do this.
  • the cost for processing may include costs other than the operation cost, the communication cost, and the usage cost.
  • the parameter is not limited to the data amount of another process being executed by the processing apparatus, the processing time for the other process, and the function information indicating the function used in the other process.
  • the parameters may include information indicating the currently available processing capabilities of the processing device.
  • the processing apparatus is not limited to the server apparatus 30 and the edge device 40.
  • the edge device 40 may be used as a processing device.
  • the IoT device 50 may execute the process.
  • the processing device may include the IoT device 50.
  • the edge device 40 may include the IoT device 50.
  • the edge device 40 is used as a terminal device, but the terminal device is not limited to the edge device 40.
  • the terminal device may include the IoT device 50.
  • apparatuses other than the edge device 40 and the IoT device 50 may be used as a terminal device.
  • the subject that implements the function of the cooperative distributed system 1 is not limited to the example described in the above embodiment.
  • part of the functions of the coordinated distributed management device 10 may be performed by the server device 30 or an external device.
  • a part of the functions of the coordinated distributed management device 10 may be performed by the edge device 40.
  • the process steps performed in the cooperative distributed system 1 are not limited to the examples described in the above embodiments. The steps of this process may be interchanged as long as there is no contradiction. Also, the present invention may be provided as a cooperative distributed management method including the steps of processing performed in the cooperative distributed management device 10 or a cooperative distribution method including steps of processing performed in the cooperative distributed system 1.
  • the present invention may be provided as a program executed in the client device 20, the server device 30, the edge device 40, or the IoT device 50.
  • This program may be downloaded via a communication line such as the Internet, or may be a computer such as a magnetic recording medium (magnetic tape, magnetic disk, etc.), an optical recording medium (optical disk, etc.), a magneto-optical recording medium, a semiconductor memory, etc. May be provided as recorded on a readable recording medium.
  • a plurality of processing devices includes: acquiring means for acquiring status information indicating processing status from a plurality of processing devices; and one or more processing devices included in the plurality of processing devices based on the obtained status information Calculation means for calculating the cost of the processing of the object when the processing apparatus configuring the combination performs the processing of the object for each of the combinations, and the cost calculated from among the plurality of combinations
  • a management apparatus comprising: determining means for determining a combination that minimizes L; and assigning means for assigning the processing of the object to the processing devices that constitute the determined combination among the plurality of processing devices.
  • the status information includes data amounts of other processes being executed by the plurality of processing devices, processing times for the other processes, and function information indicating functions used in the other processes. At least one of the above.
  • the cost is a cost for operating the processing apparatus while executing the target processing, a cost for data communication that occurs when the target processing is performed, and a cost required to execute the target processing. It may also include at least one of the costs of utilizing the functionality of the processing device.
  • the management device may further include reception means for receiving a request for processing of the object from the client device, and transmission means for transmitting the result of processing of the object acquired from the processing device to the client device. .
  • the plurality of processing devices may include a terminal device and a server device having a processing capability higher than that of the terminal device.
  • the allocation unit divides the target processing into a plurality of partial processings, and the plurality of divided partial processings into the two or more It may be assigned to a processor.
  • the management device includes: receiving means for receiving a request for processing of the object from the client device; and transmitting means for integrating the results of the plurality of partial processes acquired from the two or more processing devices and transmitting the result to the client device. And may be further provided.
  • Coordinated distributed system 10: Coordinated distributed management device, 20: Client device, 30: Server device, 40: Edge device, 50: IoT device, 101: Reception means, 102: Acquisition means, 103: Generation means, 104: Calculation means, 105: determination means, 106: allocation means, 107: transmission means

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

処理にかかるコストを削減する。 複数のエッジデバイス40を協調分散させてコストが最小になるように処理配置を変更する協調分散システム1において、取得手段は、分散された複数のエッジデバイス40からパラメータを取得する。計算手段は、パラメータから、運用コスト、通信コスト、及び利用コストを計算する。判定手段は、計算の結果から、トータルコストが最も少なくなる処理配置を判定する。変更手段は、判定の結果から、処理配置を動的に変更する。

Description

協調分散システム、協調分散管理装置、協調分散方法、及びプログラム
 本発明は、IoT(Internet of Things)の分野において複数のエッジデバイスを協調分散させる技術に関する。
 近年、IoTの分野において処理の負荷分散のためにエッジコンピューティングが注目されている。例えば特許文献1には、複数のデータ処理装置により行われるデータ処理全体の効率化を実現するシステムが開示されている。
特開2017-182221号公報
 しかし、特許文献1に開示されたシステムでは、個々の処理装置において処理の分担を決定しているため、全体として見たときに、処理にかかるコストが最小にならない場合がある。
 本発明は、処理にかかるコストを削減することを目的とする。
本発明は、複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散システムであって、分散された前記複数のエッジデバイスからパラメータを取得する取得手段と、前記パラメータから、運用コスト、通信コスト、及び利用コストを計算する計算手段と、前記計算の結果から、トータルコストが最も少なくなる処理配置を判定する判定手段と、前記判定の結果から、処理配置を動的に変更する変更手段と、を備える協調分散システムを提供する。
また、本発明は、複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散管理装置であって、分散された前記複数のエッジデバイスからパラメータを取得する取得手段と、前記パラメータから、運用コスト、通信コスト、及び利用コストを計算する計算手段と、前記計算の結果から、トータルコストが最も少なくなる処理配置を判定する判定手段と、前記判定の結果から、処理配置を動的に変更する変更手段と、を備える協調分散管理装置を提供する。
さらに、本発明は、複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散方法であって、分散された前記複数のエッジデバイスからパラメータを取得するステップと、前記パラメータから、運用コスト、通信コスト、及び利用コストを計算するステップと、前記計算の結果から、トータルコストが最も少なくなる処理配置を判定するステップと、前記判定の結果から、処理配置を動的に変更するステップと、を備える協調分散方法を提供する。
さらに、本発明は、複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する処理をコンピュータに実行させるためのプログラムであって、分散された前記複数のエッジデバイスからパラメータを取得するステップと、前記パラメータから、運用コスト、通信コスト、及び利用コストを計算するステップと、前記計算の結果から、トータルコストが最も少なくなる処理配置を判定するステップと、前記判定の結果から、処理配置を動的に変更するステップと、を実行させるためのプログラムを提供する。
 本発明によれば、処理にかかるコストを削減することができる。
実施形態に係る協調分散システム1の一例を示す図である。 協調分散管理装置10のハードウェア構成の一例を示す図である。 協調分散システム1の機能構成の一例を示す図である。 協調分散システム1の動作の一例を示すシーケンスチャートである。 処理にかかるコストの計算結果の一例を示す図である。
1.構成
 図1は、本実施形態に係る協調分散システム1の一例を示す図である。協調分散システム1は、エッジデバイス40を協調分散させてコストが最小になるように処理配置を変更するシステムである。この「協調分散システム」とは、独立に判断し行動するソフトウェア(エージェントとも呼ばれる)群が協調して動作するシステムをいう。「協調分散システム」は、必要に応じてエージェント群が自ら組織を作り、自ら変える柔軟なシステムである。「エッジデバイス」とは、別々のネットワーク間同士で通信を行い、データの効果や統合、同期などをシームレスに仲介する機器をいう。
 協調分散システム1は、協調分散管理装置10と、クライアント装置20と、サーバ装置30と、複数のエッジデバイス40と、複数のIoTデバイス50とを備える。エッジデバイス40は、協調分散システム1上に分散されている。なお、図1に示す各装置の数は、例示であり、これに限定されない。例えばクライアント装置20及び協調分散管理装置10の数は、それぞれ、複数であってもよい。エッジデバイス40及びIoTデバイス50の数は、それぞれ、単数であってもよいし、複数であってもよい。
 協調分散管理装置10、クライアント装置20、サーバ装置30、及び複数のエッジデバイス40は、通信回線60を介して接続されている。例えば通信回線60は、インターネットであってもよい。複数のエッジデバイス40と複数のIoTデバイス50とは、通信回線70を介して接続されている。例えば通信回線70は、LAN(Local Area Network)又は無線LANであってもよい。
図2は、協調分散管理装置10のハードウェア構成の一例を示す図である。協調分散管理装置10は、協調分散システム1における処理の配置を管理する。具体的には、協調分散管理装置10は、クライアント装置20から要求された処理を、サーバ装置30及びエッジデバイス40のうち少なくとも1つに割り当てる。このとき、協調分散管理装置10は、処理にかかるコストが最小になるように処理を割り当てる。協調分散管理装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信装置14とを備えるコンピュータである。これらの装置は、バス15を介して接続される。
プロセッサ11は、プログラムをメモリ12に読み出して実行することにより、各種の処理を実行する。例えばプロセッサ11は、CPU(Central Processing Unit)により構成されてもよい。メモリ12は、プロセッサ11により実行されるプログラムを記憶する。例えばメモリ12は、ROM(Read Only Memory)又はRAM(Random Access Memory)により構成されてもよい。ストレージ13は、各種のデータ及びプログラムを記憶する。例えばストレージ13は、ハードディスクドライブ又はフラッシュメモリにより構成されてもよい。通信装置14は、通信回線60に接続された通信インタフェースである。通信装置14は、通信回線60を介してデータ通信を行う。
 クライアント装置20は、ユーザの操作に従って、協調分散管理装置10に処理を要求する。クライアント装置20は、協調分散管理装置10と同様の構成に加え、入力装置と出力装置とを備えるコンピュータである。入力装置は、各種の情報の入力に用いられる。例えば入力装置は、キーボード、マウス、物理ボタン、又はタッチセンサにより構成されてもよい。表示装置は、各種の情報を表示する。例えば表示装置は、液晶ディスプレイにより構成されてもよい。
 サーバ装置30は、協調分散管理装置10に割り当てられた処理を実行する。サーバ装置30は、一般的に、エッジデバイス40よりも処理能力が高い。サーバ装置30は、クラウドサービスを提供するクラウドサーバであってもよいし、オンプレミスのサーバであってもよい。前者の場合、サーバ装置30は、協調分散管理装置10、クライアント装置20、エッジデバイス40、及びIoTデバイス50とは異なる管理者により運用される。一方、後者の場合、サーバ装置30は、協調分散管理装置10、クライアント装置20、エッジデバイス40、又はIoTデバイス50と同一の管理者により運用されてもよい。サーバ装置30は、協調分散管理装置10と同様の構成を備えるコンピュータである。
 エッジデバイス40は、IoTデバイス50と他の装置との間のデータ通信を中継するゲートウェイである。例えばエッジデバイス40は、ルータ又はスイッチであってもよい。また、エッジデバイス40は、サーバ装置30と同様に、協調分散管理装置10に割り当てられた処理を実行する。エッジデバイス40は、協調分散管理装置10と同様の構成を備えるコンピュータである。
 IoTデバイス50は、センサと通信機能とを有する装置である。IoTデバイス50は、センサと通信機能を有していれば、どのような装置であってもよい。センサは、物理量を検出し、検出した物理量を含むセンサ情報を出力する。例えばセンサは、温度センサ、湿度センサ、加速度センサ、人感センサ、音声を取得するマイクロフォン、又は静止画若しくは動画を取得するカメラであってもよい。
 図3は、協調分散システム1の機能構成の一例を示す図である。協調分散システム1は、受信手段101と、取得手段102と、生成手段103と、計算手段104と、決定手段105と、割当手段106(判定手段及び変更手段)と、送信手段107として機能する。これらの機能は、協調分散管理装置10において、メモリ12に記憶されたプログラムと、このプログラムを実行するプロセッサ11との協働により、プロセッサ11が演算を行い又は通信装置14による通信を制御することにより実現される。
 受信手段101は、クライアント装置20から処理の要求を受信する。この処理は、例えばIoTデバイス50から出力されたセンサ情報を用いた処理であってもよい。なお、以下の説明では、クライアント装置20から要求された処理を「対象の処理」という。
 取得手段102は、サーバ装置30及びエッジデバイス40(以下、総称して「処理装置」という。)から、処理状況を示す状況情報であるパラメータを取得する。例えばパラメータには、処理装置が実行中の他の処理のデータ量、他の処理にかかる処理時間、及び他の処理において利用されている機能を示す機能情報のうち少なくとも1つが含まれてもよい。このパラメータの取得は、所定のタイミングで行われる。或いは、パラメータの取得は、受信手段101が処理の要求を受信したときに行われてもよい。
 生成手段103は、複数の処理装置に含まれる1以上の処理装置により構成される複数通りの組合せを生成する。この組合せとは、複数の処理装置からとった1以上の個数のものの組をいう。組合せの中には、複数の処理装置により構成される組合せだけではなく、単一の処理装置により構成される組合せも含まれる。
 計算手段104は、取得手段102により取得されたパラメータに基づいて、生成手段103により生成された複数通りの組合せの各々について、この組合せを構成する処理装置が対象の処理を実行した場合に対象の処理にかかるコストを計算する。なお、この対象の処理には、データを格納する処理やデータを通信する処理が含まれてもよい。このコストとは、対象の処理を実行するために消費される費用をいい、金銭の価値により表される金額情報である。コストには、運用コスト、通信コスト、及び利用コストのうち少なくとも1つが含まれてもよい。運用コストは、対象の処理を実行する間、処理装置の運用にかかるコストである。通信コストは、対象の処理を実行する際に発生するデータ通信にかかるコストである。利用コストは、対象の処理を実行するのに必要な機能の利用にかかるコストである。この機能は、処理装置が有する機能であってもよいし、外部装置が有する機能であってもよい。外部装置が有する機能は、例えば外部装置が提供するクラウドサービスであってもよい。協調分散管理装置10は、外部装置と連携しており、エッジデバイス40は協調分散管理装置10経由で外部装置の機能を利用することができる。この場合、外部装置からその機能の利用コストが取得されてもよい。
 決定手段105は、計算手段104により計算されたコストに基づいて、生成手段103により生成された複数通りの組合せの中から単一の組合せを決定する。例えば決定手段105は、生成手段103により生成された複数通りの組合せの中から、計算手段104により計算されたコストが最小になる組合せを決定する。
 割当手段106は、決定手段105により決定された組合せを構成する処理装置に対象の処理を割り当てる。この「割り当て」とは、複数の処理装置の少なくともいずれかに処理を受け持たせたることをいう。「割り当て」の概念には、単一の処理を複数に分けて複数の処理装置に受け持たせることだけでなく、単一の処理を単一の処理装置に受け持たせることも含まれる。また、割当手段106は、決定手段105により決定された組合せが2以上の処理装置により構成される場合、対象の処理を複数の部分処理に分割し、複数の部分処理を2以上の処理装置に割り当ててもよい。このようにして、トータルコストが最も少なくなる処理配置が判定され、処理配置が動的に変更される。この「処理配置」とは、処理装置に処理を割り当てることをいう。
 送信手段107は、割当手段106により対象の処理が割り当てられた処理装置からその処理の結果が取得されると、取得された処理の結果をクライアント装置20に送信する。また、送信手段107は、割当手段106により複数の部分処理が2以上の処理装置に割り当てられた場合、これらの処理装置から複数の部分処理の結果が取得されると、取得された複数の部分処理の結果を統合してクライアント装置20に送信してもよい。
 なお、以下の説明において、協調分散管理装置10を処理の主体として記載する場合には、具体的にはメモリ12に記憶されたプログラムと、このプログラムを実行するプロセッサ11との協働により、プロセッサ11が演算を行い又は通信装置14による通信を制御することにより、処理が実行されることを意味する。クライアント装置20、サーバ装置30、及びエッジデバイス40についても同様である。
2.動作
 図4は、協調分散システム1の動作の一例を示すシーケンスチャートである。ここでは、図1に示すように、エッジデバイス40には、エッジデバイス40A、40B、及び40Cが含まれるものとする。また、IoTデバイス50には、IoTデバイス50A~50Fが含まれるものとする。IoTデバイス50A及び50B、IoTデバイス50C及び50D、IoTデバイス50E及び50Fは、エッジデバイス40A、40B、40Cにそれぞれ接続されている。
 図4に戻り、ステップS101において、クライアント装置20は、対象の処理の要求を協調分散管理装置10に送信する。この要求には、例えば対象の処理の内容及び対象の処理に用いられるデータを示す情報が含まれる。この対象の処理は、例えばIoTデバイス50Aから出力されたセンサ情報を解析する処理であってもよい。協調分散管理装置10の受信手段101は、クライアント装置20から対象の処理の要求を受信する。
 ステップS102において、複数の処理装置は、それぞれ、実行中の他の処理に関する状況を示すパラメータを協調分散管理装置10に送信する。このパラメータの送信は、複数の処理装置により自発的に行われてもよいし、協調分散管理装置10からの要求に応じて行われてもよい。後者の場合、協調分散管理装置10の取得手段102は、複数の処理装置にパラメータの要求を送信する。複数の処理装置は、それぞれ、協調分散管理装置10から受信した要求に応じてパラメータを送信する。パラメータには、例えば処理装置が実行中の他の処理のデータ量、他の処理にかかる処理時間、及び他の処理において利用されている機能を示す機能情報が含まれる。協調分散管理装置10の取得手段102は、複数の処理装置からそれぞれパラメータを受信する。
 ステップS103において、協調分散管理装置10の生成手段103は、複数の処理装置に含まれる1以上の処理装置により構成される全ての組合せを生成する。この組合せには、単一のエッジデバイス40により構成される組合せ、複数のエッジデバイス40により構成される組合せ、単一のサーバ装置30により構成される組合せ、単一のサーバ装置30と1又は複数のエッジデバイス40とにより構成される組合せが含まれる。
 ステップS104において、協調分散管理装置10の計算手段104は、ステップS102において受信されたパラメータに基づいて、ステップS103において生成された全ての組合せについて、その組合せを構成する処理装置が対象の処理を実行した場合に対象の処理にかかるコストを計算する。
 図5は、処理にかかるコストの計算結果の一例を示す図である。図5に示す例では、処理にかかるコストには、運用コストと、通信コストと、利用コストとが含まれる。トータルコストは、運用コスト、通信コスト、及び利用コストの合計である。
 運用コストは、例えば単位時間毎に運用コストがかかる場合には、以下の(1)式により求められる。
運用コスト=単位時間当たりの運用コスト×処理時間・・・(1)
 (1)式に含まれる単位時間当たりの運用コストは、予め決められている。この単位時間当たりの運用コストは、処理装置によって異なってもよいし、同一であってもよい。(1)式に含まれる処理時間は、対象の処理にかかる時間である。この処理時間は、処理に用いられるデータ量と、処理装置において現在利用可能な処理能力とに基づいて推定される。現在利用可能な処理能力は、例えば処理装置の処理性能と、パラメータにより示される実行中の他の処理に関する状況とに基づいて求められる。
 通信コストは、例えば単位通信量毎に運用コストがかかる場合には、以下の(2)式により求められる。
通信コスト=単位通信量当たりの通信コスト×通信量・・・(2)
 (2)式に含まれる単位通信量当たりの通信コストは、予め決められている。(2)式に含まれる通信量は、対象の処理を実行する際に発生するデータ通信の量である。例えばエッジデバイス40AがIoTデバイス50Aから出力されたセンサ情報を用いて取得して処理を実行する場合において、予めIoTデバイス50Aからエッジデバイス40Aにセンサ情報が送信されているときは、新たなデータ通信は発生しない。この場合、通信量は0となる。一方、サーバ装置30がIoTデバイス50Aから出力されたセンサ情報を用いて処理を実行する場合、少なくともエッジデバイス40Aとサーバ装置30との間で通信回線60を介してデータ通信が発生する。この場合、通信量にはこのデータ通信の量が含まれる。
 利用コストは、例えば単位データ量毎に利用コストがかかる場合には、以下の(3)式により求められる。
利用コスト=単位データ量当たりの利用コスト×データ量・・・(3)
 (3)式に含まれる単位データ量当たりの利用コストは、予め決められている。この単位データ量当たりの利用コストは、機能によって異なってもよい。(3)式に含まれるデータ量は、機能を利用する処理に用いられるデータの量である。
 図5に示す例では、組合せC1は、エッジデバイス40Aにより構成される。この組合せC1の運用コストは「15」であり、通信コストは「20」であり、利用コストは「10」である。この場合、組合せC1のトータルコストは、これらのコストの合計である「45」である。
 また、組合せが複数の処理装置により構成される場合には、これらの処理装置に対象の処理が分散されることになる。この場合、全ての分散のパターンについて、対象の処理にかかるコストが計算されてもよい。例えばエッジデバイス40Aとサーバ装置30とにより構成される組合せC2において、エッジデバイス40Aとサーバ装置30とが5対5の割合で対象の処理を実行するパターンと、エッジデバイス40Aとサーバ装置30とが2対8の割合で対象の処理を実行するパターンとでは、対象の処理にかかるコストが相違する場合がある。この場合、対象の処理を実行する割合について考えられる全てのパターンについて、対象の処理にかかるコストが計算されてもよい。
 ステップS105において、協調分散管理装置10の決定手段105は、トータルコストが最小となる組合せを決定する。例えば、図5に示す全ての組合せのトータルコストのうち組合せC1のトータルコストが最小となる場合、組合せC1が決定される。一方、組合せC2のトータルコストが最小となる場合、組合せC2が決定される。
 ステップS106において、協調分散管理装置10の割当手段106は、ステップS105において決定された組合せを構成する処理装置(以下、「対象処理装置」という。)に対象の処理を割り当てる。例えば、図5に示す組合せC1が決定された場合には、エッジデバイス40Aに対象の処理が割り当てられる。
 一方、組合せC2が決定された場合には、エッジデバイス40Aとサーバ装置30とに対象の処理が割り当てられる。この場合、割当手段106は、対象の処理を第1部分処理と第2部分処理とに分割し、第1部分処理をエッジデバイス40Aに割り当て、第2部分処理をサーバ装置30に割り当てる。この対象の処理の分割及び割り当ては、トータルコストが最小となる処理の分散のパターンに従って行われてもよい。
 ステップS107において、協調分散管理装置10の割当手段106は、ステップS106において割り当てられた対象の処理の実行指示を対象処理装置に送信する。例えばエッジデバイス40Aに対象の処理が割り当てられた場合には、エッジデバイス40Aに処理の実行指示が送信される。一方、エッジデバイス40Aに第1部分処理が割り当てられ、サーバ装置30に第2部分処理が割り当てられた場合には、エッジデバイス40Aに第1部分処理の実行指示が送信され、サーバ装置30に第2部分処理の実行指示が送信される。
 ステップS108において、対象処理装置は、協調分散管理装置10から受信した実行指示に従って、対象の処理を実行する。例えばエッジデバイス40Aに対象の処理の実行指示が送信された場合、エッジデバイス40Aはこの処理を実行する。一方、エッジデバイス40Aに第1部分処理の実行指示が送信され、サーバ装置30に第2部分処理の実行指示が送信された場合には、エッジデバイス40Aが第1部分処理を実行し、サーバ装置30が第2部分処理を実行する。このとき、例えば第2部分処理にIoTデバイス50Aから出力されたセンサ情報が用いられる場合、サーバ装置30は、エッジデバイス40Aを介してIoTデバイス50Aからセンサ情報を取得することにより第2部分処理を実行する。
 ステップS109において、対象処理装置は、対象の処理が完了すると、その処理の結果を協調分散管理装置10に送信する。例えばエッジデバイス40Aが対象の処理を完了した場合、エッジデバイス40Aから協調分散管理装置10にその処理の結果が送信される。一方、エッジデバイス40A及びサーバ装置30が第1部分処理及び第2部分処理をそれぞれ実行した場合、エッジデバイス40Aから協調分散管理装置10に第1部分処理の結果が送信されるとともに、サーバ装置30から協調分散管理装置10に第2部分処理の結果が送信される。
 ステップS110において、協調分散管理装置10の送信手段107は、対象処理装置から受信した処理の結果をクライアント装置20に送信する。例えばエッジデバイス40Aから処理の結果が受信された場合、この処理の結果がクライアント装置20に送信される。一方、エッジデバイス40A及びサーバ装置30から第1部分処理の結果及び第2部分処理の結果をそれぞれ受信された場合、送信手段107は、これらの部分処理の結果を統合してからクライアント装置20に送信する。
 また、上述したステップS108において対象の処理が実行されている間に、上述したステップS102からステップS108の処理が行われてもよい。この場合、対象の処理の途中の所定のタイミングで、ステップS102の処理が開始される。ステップS105において、前回と異なる新たな組合せが決定された場合、ステップS107において新たな組合せを構成する対象処理装置に、実行中の処理において未処理部分の実行指示が送信される。これにより、未処理部分については、新たな対象処理装置により実行される。また、前回の処理対象装置には、実行中の処理の中止指示が送信される。この場合、前回の処理対象装置は、実行中の処理を中止し、完了した処理部分の結果を協調分散管理装置10に送信する。このように、対象の処理の途中で、トータルコストが最小になるようにその処理の実行主体が変更されてもよい。
 以上説明した実施形態によれば、トータルコストが最小となるように処理が割り当てられるため、処理にかかるコストを削減することができる。
3.変形例
 本発明は上述した実施形態に限定されない。上述した実施形態に対し、種々の変形がなされてもよい。また、以下の変形例が組み合わせて実施されてもよい。
 上述した実施形態において、協調分散システム1に新たなエッジデバイス40が追加された場合には、追加されたエッジデバイス40も含めて組合せが生成されてもよい。この場合、協調分散管理装置10は、新たに追加されたエッジデバイス40を検知する機能を有してもよい。また、新たなエッジデバイス40が追加されたことを契機として、上述したステップS102以降の処理が行われてもよい。
 上述した実施形態において、エッジデバイス40の状態に応じて組合せが生成されてもよい。例えばエッジデバイス40が休止又は停止した場合には、休止又は停止したエッジデバイス40を含む組合せが除外されてもよい。また、エッジデバイス40が休止又は停止から復帰した場合には、復帰したエッジデバイス40を含む組合せが追加されてもよい。この場合、協調分散管理装置10は、エッジデバイス40の状態を検知する機能を有してもよい。また、エッジデバイス40が復帰したことを契機として、上述したステップS102以降の処理が行われてもよい。
 上述した実施形態において説明したコストの計算方法は一例であり、これに限定されない。運用コスト、通信コスト、及び利用コストは、それぞれ、対象の処理を実行する間、処理装置の運用にかかるコスト、対象の処理を実行する際に発生するデータ通信にかかるコスト、対象の処理を実行するのに必要な機能の利用にかかるコストを計算する方法であれば、どのような方法で計算されてもよい。また、処理にかかるコストには、運用コスト、通信コスト、及び利用コスト以外のコストが含まれてもよい。
 上述した実施形態において、パラメータは、処理装置が実行中の他の処理のデータ量、他の処理にかかる処理時間、及び他の処理において利用されている機能を示す機能情報に限定されない。例えばパラメータには、処理装置において現在利用可能な処理能力を示す情報が含まれてもよい。
 上述した実施形態では、サーバ装置30及びエッジデバイス40が処理装置として用いられていたが、処理装置はサーバ装置30及びエッジデバイス40に限定されない。例えばエッジデバイス40だけが処理装置として用いられてもよい。また、IoTデバイス50が処理を実行してもよい。この場合、処理装置には、IoTデバイス50が含まれてもよい。或いは、エッジデバイス40にIoTデバイス50が含まれてもよい。
 上述した実施形態では、エッジデバイス40が端末装置として用いられていたが、端末装置はエッジデバイス40に限定されない。例えばIoTデバイス50が処理を実行する場合、端末装置にはIoTデバイス50が含まれてもよい。また、エッジデバイス40及びIoTデバイス50以外の装置が端末装置として用いられてもよい。
 協調分散システム1の機能を実現する主体は、上述した実施形態で説明した例に限定されない。例えば協調分散管理装置10の機能の一部がサーバ装置30又は外部装置により行われてもよい。また、協調分散管理装置10の機能の一部がエッジデバイス40により行われてもよい。
 協調分散システム1において行われる処理のステップは、上述した実施形態で説明した例に限定されない。この処理のステップは、矛盾のない限り、入れ替えられてもよい。また、本発明は、協調分散管理装置10において行われる処理のステップを備える協調分散管理方法又は協調分散システム1において行われる処理のステップを備える協調分散方法として提供されてもよい。
 本発明は、クライアント装置20、サーバ装置30、エッジデバイス40、又はIoTデバイス50において実行されるプログラムとして提供されてもよい。このプログラムは、インターネットなどの通信回線を介してダウンロードされてもよいし、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
 本発明は、複数の処理装置から処理状況を示す状況情報を取得する取得手段と、前記取得された状況情報に基づいて、前記複数の処理装置に含まれる1以上の処理装置により構成される複数通りの組合せの各々について、当該組合せを構成する処理装置が対象の処理を実行した場合に前記対象の処理にかかるコストを計算する計算手段と、前記複数通りの組合せの中から前記計算されたコストが最小になる組合せを決定する決定手段と、前記複数の処理装置のうち前記決定された組合せを構成する前記処理装置に前記対象の処理を割り当てる割当手段とを備える管理装置を提供する。
 前記管理装置において、前記状況情報は、前記複数の処理装置が実行中の他の処理のデータ量、前記他の処理にかかる処理時間、及び前記他の処理において利用されている機能を示す機能情報のうち少なくとも1つを含んでもよい。
 前記コストは、前記対象の処理を実行する間、前記処理装置の運用にかかるコスト、前記対象の処理を実行する際に発生するデータ通信にかかるコスト、前記対象の処理を実行するのに必要な前記処理装置の機能の利用にかかるコストのうち少なくとも1つを含んでもよい。
 前記管理装置は、クライアント装置から前記対象の処理の要求を受信する受信手段と、前記処理装置から取得された前記対象の処理の結果を前記クライアント装置に送信する送信手段とをさらに備えてもよい。
 前記複数の処理装置は、端末装置と、前記端末装置よりも処理能力が高いサーバ装置とを含んでもよい。
 前記割当手段は、前記決定された組合せが2以上の処理装置により構成される場合には、前記対象の処理を複数の部分処理に分割し、前記分割された複数の部分処理を前記2以上の処理装置に割り当ててもよい。
 前記管理装置は、クライアント装置から前記対象の処理の要求を受信する受信手段と、前記2以上の処理装置から取得された前記複数の部分処理の結果を統合して前記クライアント装置に送信する送信手段とをさらに備えてもよい。
1:協調分散システム、10:協調分散管理装置、20:クライアント装置、30:サーバ装置、40:エッジデバイス、50:IoTデバイス、101:受信手段、102:取得手段、103:生成手段、104:計算手段、105:決定手段、106:割当手段、107:送信手段

Claims (9)

  1.  複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散システムであって、
     分散された前記複数のエッジデバイスからパラメータを取得する取得手段と、
     前記パラメータから、運用コスト、通信コスト、及び利用コストを計算する計算手段と、
     前記計算の結果から、トータルコストが最も少なくなる処理配置を判定する判定手段と、
     前記判定の結果から、処理配置を動的に変更する変更手段と、
     を備える協調分散システム。
  2.  前記パラメータは、前記複数のエッジデバイスが実行中の他の処理のデータ量、前記他の処理にかかる処理時間、及び前記他の処理において利用されている機能を示す機能情報のうち少なくとも1つを含む
     請求項1に記載の協調分散システム。
  3.  クライアント装置から処理の要求を受信する受信手段と、
     前記複数のエッジデバイスのうち少なくとも1つから取得された前記処理の結果を前記クライアント装置に送信する送信手段とをさらに備える
     請求項1又は2に記載の協調分散システム。
  4.  前記変更手段は、前記判定された処理配置が前記複数のエッジデバイスのうち2以上のエッジデバイスに処理を割り当てる配置である場合には、前記処理を複数の部分処理に分割し、前記分割された複数の部分処理を前記2以上のエッジデバイスに割り当てる処理配置に変更する
     請求項1から3のいずれか1項に記載の協調分散システム。
  5.  クライアント装置から処理の要求を受信する受信手段と、
     前記2以上のエッジデバイスから取得された前記複数の部分処理の結果を統合して前記クライアント装置に送信する送信手段とをさらに備える
     請求項4に記載の協調分散システム。
  6.  サーバ装置をさらに備え、
     前記判定手段は、前記複数のエッジデバイス及び前記サーバ装置のうち少なくとも1つに処理を割り当てる処理配置を判定する
     請求項1から5のいずれか1項に記載の協調分散システム。
  7.  複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散管理装置であって、
     分散された前記複数のエッジデバイスからパラメータを取得する取得手段と、
     前記パラメータから、運用コスト、通信コスト、及び利用コストを計算する計算手段と、
     前記計算の結果から、トータルコストが最も少なくなる処理配置を判定する判定手段と、
     前記判定の結果から、処理配置を動的に変更する変更手段と、
     を備える協調分散管理装置。
  8.  複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する協調分散方法であって、
     分散された前記複数のエッジデバイスからパラメータを取得するステップと、
     前記パラメータから、運用コスト、通信コスト、及び利用コストを計算するステップと、
     前記計算の結果から、トータルコストが最も少なくなる処理配置を判定するステップと、
     前記判定の結果から、処理配置を動的に変更するステップと、
     を備える協調分散方法。
  9. 複数のエッジデバイスを協調分散させてコストが最小になるように処理配置を変更する処理をコンピュータに実行させるためのプログラムであって、
     分散された前記複数のエッジデバイスからパラメータを取得するステップと、
     前記パラメータから、運用コスト、通信コスト、及び利用コストを計算するステップと、
     前記計算の結果から、トータルコストが最も少なくなる処理配置を判定するステップと、
     前記判定の結果から、処理配置を動的に変更するステップと、
     を実行させるためのプログラム。
PCT/JP2017/044227 2017-12-08 2017-12-08 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム WO2019111411A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019557973A JP6721800B2 (ja) 2017-12-08 2017-12-08 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム
PCT/JP2017/044227 WO2019111411A1 (ja) 2017-12-08 2017-12-08 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/044227 WO2019111411A1 (ja) 2017-12-08 2017-12-08 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2019111411A1 true WO2019111411A1 (ja) 2019-06-13

Family

ID=66750106

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/044227 WO2019111411A1 (ja) 2017-12-08 2017-12-08 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP6721800B2 (ja)
WO (1) WO2019111411A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033774A (ja) * 2019-08-27 2021-03-01 株式会社日立製作所 サービス配備制御システム、サービス配備制御方法及び記憶媒体
JP2022031621A (ja) * 2020-09-21 2022-02-22 ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド インスタンス数を調整するための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
WO2022138232A1 (ja) * 2020-12-23 2022-06-30 ソニーグループ株式会社 通信装置、通信方法、および通信システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011052102A1 (ja) * 2009-11-02 2011-05-05 株式会社日立製作所 サービス設定支援方法
WO2012161289A1 (ja) * 2011-05-23 2012-11-29 日本電気株式会社 通信制御装置、通信制御システム、通信制御方法、および、プログラム
JP2017138788A (ja) * 2016-02-03 2017-08-10 日本電信電話株式会社 配置決定システム、配置決定方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
JP2002342193A (ja) * 2001-05-14 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> データ転送先サーバ選定方法及び装置及びデータ転送先サーバ選定プログラム及びデータ転送先サーバ選定プログラムを格納した記憶媒体
JP2017126238A (ja) * 2016-01-15 2017-07-20 日本電気株式会社 システム管理装置、情報処理システム、システム管理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011052102A1 (ja) * 2009-11-02 2011-05-05 株式会社日立製作所 サービス設定支援方法
WO2012161289A1 (ja) * 2011-05-23 2012-11-29 日本電気株式会社 通信制御装置、通信制御システム、通信制御方法、および、プログラム
JP2017138788A (ja) * 2016-02-03 2017-08-10 日本電信電話株式会社 配置決定システム、配置決定方法及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033774A (ja) * 2019-08-27 2021-03-01 株式会社日立製作所 サービス配備制御システム、サービス配備制御方法及び記憶媒体
JP7368143B2 (ja) 2019-08-27 2023-10-24 株式会社日立製作所 サービス配備制御システム、サービス配備制御方法及び記憶媒体
JP2022031621A (ja) * 2020-09-21 2022-02-22 ペキン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド インスタンス数を調整するための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
JP7081014B2 (ja) 2020-09-21 2022-06-06 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド インスタンス数を調整するための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム
US11711285B2 (en) 2020-09-21 2023-07-25 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus, electronic device and readable storage medium for adjusting instance number
WO2022138232A1 (ja) * 2020-12-23 2022-06-30 ソニーグループ株式会社 通信装置、通信方法、および通信システム

Also Published As

Publication number Publication date
JPWO2019111411A1 (ja) 2020-07-30
JP6721800B2 (ja) 2020-07-15

Similar Documents

Publication Publication Date Title
Yang et al. Joint computation partitioning and resource allocation for latency sensitive applications in mobile edge clouds
WO2022062650A1 (zh) 基于kubernetes的计算设备共享方法、装置、设备及存储介质
Téllez et al. A tabu search method for load balancing in fog computing
CN107003887A (zh) Cpu超载设置和云计算工作负荷调度机构
CN110489126B (zh) 编译任务的执行方法和装置、存储介质及电子装置
da Silva et al. Resource allocation mechanism for a fog-cloud infrastructure
KR20130088512A (ko) 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
WO2019111411A1 (ja) 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム
Albert et al. An efficient kernel FCM and artificial fish swarm optimization-based optimal resource allocation in cloud
Santos et al. Zeus: A resource allocation algorithm for the cloud of sensors
EP3274859B1 (en) Cluster computing service assurance apparatus and method
CN108509256B (zh) 调度运行设备的方法、设备和运行设备
Pham et al. Joint consolidation and service-aware load balancing for datacenters
Cao et al. A deep reinforcement learning approach to multi-component job scheduling in edge computing
Edinger et al. Decentralized low-latency task scheduling for ad-hoc computing
Naik A cloud-fog computing system for classification and scheduling the information-centric IoT applications
CN110532060A (zh) 一种混合网络环境数据采集方法及系统
Tütüncüoğlu et al. Optimal service caching and pricing in edge computing: A bayesian gaussian process bandit approach
CN110727511B (zh) 应用程序的控制方法、网络侧设备和计算机可读存储介质
Xia et al. When edge caching meets a budget: Near optimal service delivery in multi-tiered edge clouds
JP2004062686A (ja) 並列処理システム、サーバ、並列処理方法、プログラム、及び、記録媒体
US20210004255A1 (en) Vm performance guaranteeing system and vm performance guaranteeing method
Aljammal et al. A new architecture of cloud computing to enhance the load balancing
Peng et al. BQueue: A coarse-grained bucket QoS scheduler
CN114489978A (zh) 资源调度方法、装置、设备及存储介质

Legal Events

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

Ref document number: 17934022

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019557973

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17934022

Country of ref document: EP

Kind code of ref document: A1