WO2023195521A1 - Distributed processing system - Google Patents

Distributed processing system Download PDF

Info

Publication number
WO2023195521A1
WO2023195521A1 PCT/JP2023/014258 JP2023014258W WO2023195521A1 WO 2023195521 A1 WO2023195521 A1 WO 2023195521A1 JP 2023014258 W JP2023014258 W JP 2023014258W WO 2023195521 A1 WO2023195521 A1 WO 2023195521A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
data
computing device
unit
execution
Prior art date
Application number
PCT/JP2023/014258
Other languages
French (fr)
Japanese (ja)
Inventor
昭彦 松村
友二 井上
克彦 近藤
宏治 伊藤
Original Assignee
Freet株式会社
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 Freet株式会社 filed Critical Freet株式会社
Priority to TW112113098A priority Critical patent/TW202343239A/en
Publication of WO2023195521A1 publication Critical patent/WO2023195521A1/en

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 a technique for distributing tasks to multiple computing resources.
  • AI Artificial Intelligence
  • IoT Internet of Things
  • an electronic device serving as a face authentication device may transmit a facial image to an external server, the server may execute face authentication processing, and return the execution result to the face authentication device.
  • the computational resources of many electronic devices are not always used.
  • the operating rate of an automobile is said to be about 4 (%), and the high-performance CPU installed in the automobile is in an idle state most of the time.
  • the present invention was completed based on the recognition of the above problem, and its main purpose is to provide a technology for efficiently responding to various computational needs by effectively utilizing existing computational resources. There is a particular thing.
  • a distributed processing system in an aspect of the present invention includes a first computing device equipped with a sensor and a plurality of second computing devices capable of communicating with each other.
  • the first computing device includes a sensing unit that acquires data from the outside using a sensor, a data transmitting unit that transmits the acquired data to one or more second computing devices, and one or more tasks corresponding to the acquired data. and an output unit that outputs the execution results of one or more tasks.
  • the second computing device includes a data receiving unit that receives data from the first computing device, a task execution unit that executes a task using the received data, and a task execution unit that executes the task together with the received data.
  • a task requesting section that requests a task to be executed, a result receiving section that receives a task execution result from another computing device, and a result transmitting section that transmits the task execution result to the other computing device.
  • a distributed processing system includes a first computing device equipped with a sensor, a plurality of second computing devices capable of communicating with each other, and a plurality of third computing devices capable of communicating with each other. .
  • the computing power of the third computing device is greater than the computing capability of the second computing device.
  • the first computing device transmits data acquired by the sensor to any second computing device.
  • the second computing device identifies one or more tasks that process the received data, and determines whether the second computing device or the third computing device is the main entity for executing the task based on the identified tasks or the data to be processed.
  • the computer instructs the selected computing device to execute the specified task.
  • a distributed processing system in another aspect of the invention includes multiple types of mobile devices that can communicate with each other.
  • the first mobile device includes a sensor, a sensing unit that acquires data from the outside using the sensor, and a data transmission unit that transmits the acquired data to another mobile device.
  • the second mobile device includes a data reception unit that receives data from another mobile device, an execution determination unit that determines whether or not a task can be executed based on the data received from the other mobile device, and a data receiving unit that receives data from the other mobile device.
  • the mobile device further includes a task execution unit that executes a task based on the mobile device, and a data transmission unit that further transmits data received from another mobile device to the other mobile device.
  • the execution determination section of the second mobile device instructs the task execution section to execute the task when the second mobile device satisfies the execution condition, and instructs the second mobile device to transmit data to another mobile device when the execution condition is not satisfied.
  • a distributed processing system is a device configured as social infrastructure equipment configured to be able to communicate with each other, and includes a plurality of computing devices equipped with a processor along with both or one of a sensor and an output device. Be prepared.
  • the computing device has a data receiving unit that receives data from a mobile terminal or other computing device owned by a user, and a task that executes subtasks corresponding to the received data in parallel with the main task as a social infrastructure facility.
  • an execution unit a task requesting unit that requests another computing device to execute a subtask corresponding to the received data, a result receiving unit that receives the execution result of the subtask from the other computing device, and a carrying unit that carries the execution result of the subtask.
  • It includes a result transmitting unit that transmits to a terminal or other computing device, and an execution determining unit that determines whether or not the subtask can be executed in the own device.
  • the execution determining unit instructs the task execution unit to execute the subtask when the own device satisfies the execution conditions for the subtask, and instructs the task requesting unit to request the subtask to another computing device when the execution conditions are not satisfied.
  • FIG. 1 is a conceptual diagram of a task distribution system.
  • FIG. 1 is a conceptual diagram of a distributed processing system.
  • FIG. 2 is a conceptual diagram showing the relationship between requesting and executing tasks.
  • FIG. 1 is a conceptual diagram of a distributed processing system in a first embodiment.
  • FIG. 2 is a hardware configuration diagram of an SDI device.
  • FIG. 2 is a functional block diagram of an SDI device.
  • FIG. 2 is a functional block diagram of an MDI device and an LDI device. It is a data structure diagram of request condition information. It is a data structure diagram of underwriting condition information.
  • 3 is a flowchart showing a processing process for allocating subtasks. 3 is a flowchart showing a processing process when an MDI device receives request data from another device.
  • FIG. 3 is a flowchart showing a processing process when an LDI device receives request data from another device. It is a data structure diagram of payment information.
  • FIG. 2 is a conceptual diagram of a distributed processing system in a second embodiment. It is a functional block diagram of a robot.
  • FIG. 3 is a data structure diagram of service definition information. It is a flowchart showing a processing process when a robot receives request data. It is a flowchart which shows the processing process when a robot receives service instruction information.
  • FIG. 3 is a conceptual diagram of a distributed processing system in a third embodiment.
  • FIG. 2 is a functional block diagram of a surveillance camera. 3 is a flowchart showing a processing process when the MDI device receives request data.
  • FIG. 2 is a schematic diagram for explaining a method of distributing subtasks from an LDI device.
  • FIG. 7 is a schematic diagram for explaining a method of determining whether a subtask can be executed in a modified example.
  • FIG. 1 is a conceptual diagram of a task distribution system 201.
  • the server receives various processing requests from a large number of client terminals.
  • the server receives a face image (hereinafter referred to as a "verification image”) and a face image to be compared with this face image (hereinafter referred to as a "reference image”) from a client terminal.
  • the client terminal compares the verification image (face image) obtained from the surveillance camera with a pre-registered reference image and determines whether the person shown in the reference image and the person shown in the verification image are the same person.
  • Requests the server the task of determining whether or not the
  • the server sends a dataset including the reference image and the verification image to the task distribution device 101.
  • the task distribution device 101 is capable of communicating with a plurality of electronic devices Em (m: natural number).
  • Electronic devices here include cars such as EVs (Electric Vehicles), smartphones, PCs (Personal Computers), other servers, secondary batteries, etc., and processors with arithmetic functions such as CPUs or GPUs (Graphics Processing Units).
  • a memory with a storage function and a device with a communication function.
  • the storage function, communication function, and calculation function are collectively referred to as "computing resources.”
  • the electronic device in this embodiment is equipped with a "DI (Digital Intelligence) engine.”
  • the DI engine may be configured as an IC (Integrated Circuit) chip with communication and calculation functions and lightweight software, or may be configured as dedicated software executed in a processor of an electronic device.
  • a secondary battery equipped with calculation resources such as a CPU is also assumed as an electronic device that accesses the task distribution device 101, but details will be described later.
  • An electronic device is an existing device that performs processing for a specific purpose.
  • the EV's computational resources run software to perform the calculations necessary for the operation of the EV.
  • the task distribution device 101 allows the electronic device to execute tasks generated in the server on behalf of the electronic device by borrowing the computational resources of such an existing electronic device.
  • the task distribution device 101 sends a load confirmation request to each electronic device when a task occurs in the server or periodically.
  • the task distribution device 101 may multicast the load confirmation request. It is assumed that the electronic device in this embodiment can execute a finite number of threads.
  • the DI engine of the electronic device receives the load confirmation request, the DI engine of the electronic device returns the available threads of the electronic device, or in other words, the remaining calculation capacity, to the task distribution device 101.
  • the electronic device E1 can execute 10 threads simultaneously, and when 3 threads (tasks) are already running, there are 7 free threads (threads that can be allocated for new tasks). This is notified to the task distribution device 100.
  • the task distribution device 101 registers the number of free threads for each electronic device that has responded to the load confirmation request as "load information.”
  • the task distribution device 101 refers to the load information and assigns a task to the electronic device with the largest number of free threads, in other words, the electronic device with the largest computational capacity by transmitting a data set including a reference image and a verification image. request.
  • the electronic device may maintain a spare thread in order to respond to requests for proxy execution of tasks.
  • electronic device Ex is capable of executing 12 threads, but uses only up to 10 threads for its own processing.
  • two spare threads can be used. Therefore, even when the electronic device Ex has used up its own upper limit of 10 threads, it can still have some remaining capacity to respond to task processing requests from the task distribution device 101.
  • a program for determining the degree of similarity between two types of images (hereinafter referred to as a "similarity determination program") is registered in advance in the electronic device.
  • the DI engine of the electronic device that receives the task loads a similarity determination program and causes the similarity between the reference image and the verification image to be determined. After completing the processing, the DI engine notifies the task distribution device 100 of the degree of similarity as a processing result.
  • the task distribution device 101 returns the degree of similarity to the server, and the server returns the degree of similarity to the client terminal.
  • a group of existing electronic devices becomes, so to speak, an instant data center.
  • the task distribution device 101 can utilize idle computing resources by selecting a task requestee from among a plurality of electronic devices.
  • a device that requests a task such as the server shown in FIG. 1, will be referred to as a "starting point device.”
  • the starting point device is not limited to a server. Other electronic devices such as a smartphone or a PC may serve as the starting point device.
  • the originating device requests the task distribution device 101, and the task distribution device 101 selects an electronic device from among a plurality of electronic devices to execute the task.
  • the origin device and the task distribution device 101 are described as separate devices, but even if the origin device has the function of the task distribution device 101 (hereinafter referred to as "task distribution function"), good.
  • Each program (hereinafter referred to as a "task handler") is identified by a handle ID.
  • the origin device may have only data that becomes a variable for the task handler.
  • the variable here may be any data such as images, sounds, and numerical values.
  • the origin device passes the handle ID of task A and variable X1 to the task distribution device 101.
  • the task distribution device 101 selects an electronic device as a request destination and passes the handle ID and variable X1.
  • the DI engine of the requested electronic device starts the task handler HA corresponding to the task A according to the specified handle ID and sets the variable X1, thereby causing the task handler HA to execute the task A.
  • a BMS Battery Management System
  • the secondary battery may be required to have more advanced functions such as measuring or estimating the degree of deterioration of the secondary battery and diagnosing abnormalities.
  • a secondary battery may be installed as standard in electronic devices that function as edge AI. In this way, if secondary batteries become intelligent by being equipped with advanced computational resources, the secondary batteries themselves can also be requested for tasks.
  • the task distribution device 101 may periodically transmit load confirmation requests to nearby electronic devices and update load information that associates electronic devices with their load information. More specifically, the task distribution device 101 registers and updates the electronic device ID, address, confirmation time, communication time required from confirmation to response, and number of free threads as load information.
  • the task distribution device 101 may consider not only the load situation but also the communication time.
  • the communication time is the time from when the task distribution device 101 sends a load confirmation request until it receives a response from the electronic device.
  • the evaluation value of each electronic device is calculated based on an arbitrary evaluation function that monotonically increases for both variable V1, which is set to increase as the communication time becomes shorter, and variable V2, which indicates the number of free threads. do.
  • the task distribution device 101 may select the electronic device with the largest evaluation value thus calculated as the task request destination.
  • the task distribution device 101 may exclude from request destinations electronic devices that have not responded to the load confirmation request or whose communication time has exceeded a predetermined time. When a request destination is not found, the task distribution device 101 itself may execute the task.
  • the task distribution device 101 is an electronic device connected to the task distribution device 101 by wire, or an electronic device capable of short-range wireless communication with the task distribution device 101, such as Wi-Fi, Li-Fi, or Bluetooth (registered trademark). You may request tasks on a priority basis.
  • the task distribution device 101 may concentrate the requests on a small number of electronic devices. For example, when the number of free threads in the electronic device E3 is 5 and the number of free threads in the electronic device E4 is 3, and the number of tasks to be requested is three, the task distribution device 101 transfers the three tasks to the electronic device E3, which has a larger remaining calculation capacity. You may request them all at once. By making requests all at once, the administrative burden on the electronic devices of the task distribution device 101 can be reduced.
  • the task distribution device 101 may decide the request recipients so that the multiple tasks are distributed to as many electronic devices as possible.
  • the task distribution device 101 may determine the load on the electronic device based on information other than the number of free threads. For example, the task distribution device 101 may register CPU utilization rate, memory occupancy rate, CPU temperature, etc. as load information.
  • the task distribution device 101 uses an evaluation function that has many variables, such as the high performance of the CPU of the electronic device, the number of free threads, the low CPU utilization rate, the low memory occupancy rate, and the low temperature of the CPU. Based on this, the electronic device to which the task is requested may be selected.
  • the starting point device or the task distribution device 101 may include a task handler (program). For example, suppose that a need arises in the originating device to process task A based on variable X1. At this time, the origin device transmits the variable X1 and the task handler HA (program) corresponding to task A to the task distribution device 101. The task distribution device 101 transmits the task handler HA and the variable X1 to the requested electronic device. The DI engine of the electronic device may execute the task A based on the variable X1 using the task handler HA received from the task distribution device 101.
  • a task handler program
  • the DI engine of the electronic device may delete the task handler HA and variable X1 received from the task distribution device 101 from the memory after executing task A.
  • the task handler HA may be left in memory until a predetermined period of time has elapsed after task A is completed, in preparation for the possibility that task A will be re-requested with another variable in the near future.
  • the task distribution device 101 may request a task to an electronic device, and the requested electronic device may further request a task to another electronic device.
  • the task distribution device 101 is connected to the electronic device E5 by short-range wireless communication, but is not connected to the electronic device E6.
  • the electronic device E5 is connected to the electronic device E6 by wire.
  • the task distribution device 101 requests five tasks to the electronic device E5.
  • the electronic device E5 transmits load confirmation information to the electronic device E6 to check whether there is sufficient remaining capacity in the computing resources of the electronic device E6.
  • the electronic device E5 requests the electronic device E6 to perform all or part of the five requested tasks.
  • Electronic device E6 returns the task execution result to electronic device E5.
  • the electronic device E5 sends back to the task distribution device 101 the results of the tasks executed by itself and the results of the tasks received from the electronic device E6.
  • the task distribution device 101 may exclude electronic devices with a low SOC (State of Charge) from the request destinations. This is because an electronic device with a low SOC, that is, a low charging rate of a secondary battery, may not be able to secure sufficient power to execute a task.
  • SOC State of Charge
  • the task distribution device 101 may preferentially select electronic devices to which it has previously requested tasks. Further, request conditions regarding the task request destination may be set. For example, possible request conditions include that the electronic device is owned by user A and that the CPU clock rate is equal to or higher than a predetermined threshold.
  • the task distribution device 101 may additionally request another electronic device to execute the same task when a predetermined period of time or more has elapsed since requesting execution of the task. In this case, the request may be canceled for the electronic device that made the request earlier.
  • the task distribution device 101 may preferentially request tasks to electronic devices that do not move, such as fixed servers and desktop PCs, rather than mobile electronic devices such as smartphones and EVs. Further, task requests to important devices such as ambulances and medical devices may be given low priority.
  • the task distribution device 101 may preferentially select electronic devices that are charged and powered by clean energy. According to such a control method, the task distribution system 201 also contributes to suppressing carbon dioxide emissions.
  • the DI engine of the electronic device may be set with acceptance conditions for accepting the execution of the task.
  • acceptance conditions may be such as accepting only requests from a specific originating device, or accepting requests only when there are 10 or more free threads.
  • Compensation may be generated by requesting a task. For example, suppose that when user A's PC1 becomes the starting device and a task is requested to user B's PC2, a fee of M (yen) is incurred. If the number of times PC1 requests a task to PC2 per month is K (times), user A is charged M ⁇ K (yen) by user B. On the other hand, when user B has also requested a task to user A, the difference between the amounts billed by both parties may be settled.
  • the task distribution device 101 may include such a payment function.
  • the electronic device is a secondary battery
  • the secondary batteries by connecting the secondary batteries, optimization of the entire task distribution system 201 including the secondary battery is realized.
  • FIG. 2 is a conceptual diagram of the distributed processing system 100.
  • the distributed processing system 100 is composed of three layers: SDI (Small Digital Intelligence), MDI (Middle Digital Intelligence), and LDI (Large Digital Intelligence).
  • SDI Small Digital Intelligence
  • MDI Middle Digital Intelligence
  • LDI Large Digital Intelligence
  • the distributed processing system 100 may have a two-layer configuration of SDI and MDI, the following explanation will be based on a three-layer configuration.
  • the SDI is the originating device mentioned above.
  • An SDI is a device that provides a user interface function and/or a sensor function, thereby providing a point of contact with the user or the environment.
  • a task that is, a work to be processed, occurs in this SDI.
  • Various tasks can be considered, such as image recognition, voice recognition, data search, and translation.
  • a device that functions as an SDI will also be referred to as an "SDI device.”
  • the SDI device is equipped with a DI engine.
  • the SDI device (first computing device) is assumed to be a smartphone, a wearable terminal such as a smart watch, a sensor, or the like.
  • the sensor here also includes a camera that captures an image.
  • MDI is a collection of multiple computational resources.
  • the device constituting the MDI may be any computational resource that has a communication function and a calculation function, such as a smartphone, a car, a surveillance camera, or a laptop PC.
  • the MDI device (second computing device) is also equipped with a DI engine.
  • LDI is also a collection of multiple computational resources.
  • the device constituting the LDI (hereinafter also referred to as "LDI device") may be any device that has a communication function and a calculation function.
  • the LDI device (third computing device) is a device with higher computing power than the MDI.
  • the LDI device is also equipped with a DI engine.
  • “Computing capacity” here may be an index indicating the processing capacity per unit time of a processor such as MIPS (Million Instructions Per Second) or FLOPS (FLOating-point Operations Per Second), It may be defined as the number of cores or the number of threads that can be executed simultaneously.
  • the DI engine in this embodiment is assumed to be resident software executed on each computing device.
  • the DI engine has its own process and secures a memory space of a predetermined size (hereinafter referred to as "DI space").
  • DI space a memory space of a predetermined size
  • the DI engine (DI process) generates threads as needed, and uses the DI space to execute tasks requested by the SDI device. Processes other than the DI engine cannot access the DI space. Further, the DI engine also does not access memory spaces other than the DI space. Therefore, although a computing device equipped with a DI engine provides some computational resources such as a processor to the DI engine, it does not interfere with the processing of the DI engine, and the DI engine does not interfere with the original processing. Nor.
  • the DI engine may be configured as a lightweight program that is executed on the OS (Operating System) of each computing device.
  • the DI engine may be configured as firmware of the computing device rather than relying on the OS.
  • ⁇ MDI devices When MDI devices and LDI devices (hereinafter collectively referred to as ⁇ MDI devices, etc.'' or ⁇ computing devices'') are requested to perform a task by an SDI device, they perform the device's original task (hereinafter referred to as ⁇ main task''). ), the requested task (hereinafter referred to as a "subtask”) is executed in parallel by the DI engine.
  • ⁇ MDI devices, etc.'' or ⁇ computing devices'' When MDI devices and LDI devices, etc.'' or ⁇ computing devices'') are requested to perform a task by an SDI device, they perform the device's original task (hereinafter referred to as ⁇ main task''). ), the requested task (hereinafter referred to as a "subtask”) is executed in parallel by the DI engine.
  • ⁇ main task'' the requested task
  • the SDI device When a subtask to be executed occurs, the SDI device requests the MDI device to execute the subtask.
  • the subtask is completed when one of the MDI devices executes the subtask and returns the execution result to the SDI device.
  • some subtasks may be executed in LDI instead of MDI. In this case, one of the LDI devices executes the subtask and returns the execution result to the SDI device.
  • MDI and LDI provide, so to speak, a function as SaaS (Software as a Service) or PaaS (Platform as a Service) to SDI.
  • subtasks that should be executed in MDI There are subtasks that should be executed in MDI and others that should be executed in LDI.
  • the type of subtask determines whether it should be executed in MDI or LDI.
  • Subtasks with a relatively large processing load such as processing to recognize similarity between images, may be executed by LDI
  • subtasks, which have a relatively small load, such as processing to extract a predetermined region from an image may be executed by MDI. . It is set in advance whether each subtask is for MDI or LDI.
  • a "program that executes a subtask (work)" is called a "task handler.”
  • execution of a subtask means “execution of a task handler corresponding to a subtask.”
  • the SDI, MDI, and LDI are all connected to the payment device 102.
  • a settlement unit (not shown) included in the settlement device 102 sends the SDI device to the user (executor) of the computing device that executed the subtask. Payment of remuneration from the user (requester) is executed (described later). Note that in the distributed processing system 100, the payment device 102 is not an essential component.
  • FIG. 3 is a conceptual diagram showing the relationship between requesting and executing tasks.
  • a subtask to process data D1 occurs in the SDI device (S01).
  • M01 here is an MDI ID that identifies an MDI device.
  • the request condition is information indicating the performance required of the subtask execution entity, and the details will be described later.
  • the LDI device is identified by the LDI ID.
  • the MDI device (M02) also determines that it cannot accept the subtask.
  • the MDI device (M02) sends the execution result to the MDI device (M01), and the MDI device (M01) sends the execution result to the SDI device (S01).
  • the SDI device (S01) outputs the execution result as an image or the like.
  • such a request method will be referred to as a "transfer search method.”
  • the MDI device (M01) that has received the request data from the SDI device (S01) may check with the nearby MDI device (M02) and MDI device (M04) whether or not the subtask can be executed. If the MDI device (M02) is unable to execute the subtask and the MDI device (M04) is able to execute the subtask, the MDI device (M01) sends the request data to the MDI device (M04), and the MDI device (M04) Run subtasks. The execution results of the subtasks are sent to the SDI device (S01) in the same manner as in the transfer search method.
  • a request method will be referred to as a "confirmation request method.”
  • the transfer search method and the confirmation request method may be used together, this embodiment will be described assuming the transfer search method. Note that, not only in MDI but also in LDI, the execution entity of a subtask is determined by a transfer search method.
  • a task handler which is a program for executing subtasks, may be included in the request data.
  • the task handler itself is included in the request data instead of transmitting the handler ID.
  • the distributed processing system 100 will be described below in first to third embodiments.
  • a method will be described in which when a subtask occurs in an SDI device configured as a wearable terminal, it is processed by MDI and LDI.
  • an MDI is configured by a plurality of robots (mobile devices) in a shopping mall, and a service is provided by these robots working together.
  • a method will be described in which social infrastructure equipment such as surveillance cameras configures an MDI to provide various calculation services to users.
  • this embodiment when the first embodiment to the third embodiment are not distinguished from each other, or when they are collectively referred to, they are referred to as "this embodiment".
  • FIG. 4 is a conceptual diagram of the distributed processing system 100 in the first embodiment.
  • the SDI device in the first embodiment is a computing device (first computing device) including a sensing function and a communication function, such as a scale 104, a smart watch 106, and smart glasses 108. These SDI devices communicate with a relay terminal 110 such as a smartphone.
  • the relay terminal 110 is a type of MDI device, but the relay terminal 110 in the first embodiment does not execute the subtask requested by the SDI device itself, but directly requests the subtask to another MDI device, etc. explain. In other words, the relay terminal 110 functions as a contact point between the MDI and the like and the SDI.
  • the SDI device includes various data such as the weight measured by the scale 104, the pulse rate and number of steps measured by the smart watch 106, and the captured image obtained by the smart glasses 108, as well as a task handler (subtask) for processing the data. (program data indicating processing contents) is included in the request data and transmitted to the relay terminal 110. As described above, it is determined whether each subtask is executed using LDI or MDI.
  • the relay terminal 110 transmits request data including a task handler to the MDI or LDI depending on the type of subtask.
  • Data (including images) sensed by the SDI device 120 is processed by MDI and LDI.
  • the smart glasses 108 may transmit the captured image to the relay terminal 110 and request the relay terminal 110 to perform a subtask of determining a building that appears in the captured image.
  • relay terminal 110 requests a computing device such as an MDI device to execute a subtask.
  • the MDI device or the like identifies a building included in the captured image by executing a subtask, and transmits explanatory information regarding the building to the smart glasses 108 .
  • the smart glasses 108 display an image to which explanatory information about the building is added to the user.
  • a subtask for determining the user's health condition may be executed based on the detected number of steps and pulse rate.
  • a subtask may be executed to determine whether the user is lacking in exercise based on measured weight and data on past weight changes, and to provide various advice. In this way, by utilizing the computing power of an MDI device or the like, it becomes possible to provide a variety of services in an SDI device.
  • the LDI device (third computing device) in the first embodiment may be a large-sized, fixedly installed secondary battery installed in a home, an office building, a factory, or the like. As mentioned above, the LDI device is also equipped with a DI engine. If a large number of LDI devices are assembled as an ESS (Energy Storage System), the LDI can function as an instant data center and process many subtasks in parallel.
  • ESS Electronicgy Storage System
  • the configuration of the LDI device is not limited to secondary batteries, there are advantages to using secondary batteries as the LDI device.
  • secondary batteries As renewable energy is promoted in the future, it is thought that large secondary batteries will have an increased presence in order to level out the power supply.
  • a processor will be installed in the secondary battery for advanced control of charging and discharging.
  • a secondary battery equipped with a DI engine is assumed.
  • the main task (charging and discharging control) of the secondary battery does not require a large processing load, there is a possibility that the secondary battery's computational resources will be freed up.
  • the power supply to the DI engine is likely to be stable. Therefore, the DI engine equipped with a secondary battery can stably provide computing power.
  • LDI devices For the above reasons, secondary batteries that have sufficient computing power, are likely to be deployed in large quantities, and have a stable power supply may become suitable computing resources as LDI devices.
  • a household fuel cell system so-called “Ene-Farm” may be used as an LDI device.
  • the LDI device is not limited to a secondary battery or an ENE-FARM, but may be configured as a general PC (Personal Computer) or a server.
  • FIG. 5 is a hardware configuration diagram of the SDI device 120.
  • the SDI device 120 includes a storage 312 as a nonvolatile memory that stores computer programs, a volatile memory 304 that expands programs and data, and a built-in register (not shown), an arithmetic unit, an instruction decoder, etc. (not shown), and a memory. It includes a processor 300 (CPU) that reads a program from 304 and executes it. Processor 300 is connected to a first bus 302 that is relatively high speed. A memory 304 and a NIC (Network Interface Card) are connected to the first bus 302 . In addition to this, other devices such as a GPU may be connected to the first bus 302.
  • a storage 312 as a nonvolatile memory that stores computer programs, a volatile memory 304 that expands programs and data, and a built-in register (not shown), an arithmetic unit, an instruction decoder, etc. (not shown), and a memory.
  • It includes a
  • the first bus 302 is connected to a relatively low speed second bus 310 via a bridge 308.
  • the second bus 310 is connected to a storage 312 as well as an output device 316 such as a monitor or a speaker.
  • an input device 314 such as a mouse and a keyboard, and a peripheral device 318 such as a printer may be connected to the second bus 310.
  • the hardware configurations of the MDI device and the LDI device are basically the same. Note that the method of connecting the first bus 302 and the second bus 310 shown in FIG. 5 is an example, and those skilled in the art will understand that other connection methods or a configuration including other buses may be used. By the way.
  • FIG. 6 is a functional block diagram of the SDI device 120.
  • Each component of the SDI device 120 includes hardware including arithmetic units such as a CPU and various co-processors, storage devices such as memory and storage, wired or wireless communication lines connecting them, and storage devices. It is realized by software that is stored and supplies processing instructions to the arithmetic unit.
  • a computer program may be composed of a device driver, an operating system, various application programs located in an upper layer thereof, and a library that provides common functions to these programs.
  • Each block described below indicates a functional unit block rather than a hardware unit configuration. The same applies to FIGS. 7, 15, and 20.
  • the SDI device 120 includes a user interface processing section 122, a sensing section 124, a communication section 128, a data processing section 126, and a data storage section 130.
  • the user interface processing unit 122 accepts operations from the user via an input device such as a touch panel, and is also responsible for processing related to the user interface, such as image display and audio output.
  • the sensing unit 124 acquires measurement values from various sensors such as a camera, radar, and gyro sensor.
  • the communication unit 128 is in charge of communication processing with the relay terminal 110 and the like.
  • the data storage unit 130 stores various data.
  • the data processing unit 126 performs various processing based on data input from the user interface processing unit 122, data measured by the sensing unit 124, data received by the communication unit 128, and data stored in the data storage unit 130. Execute.
  • the data processing unit 126 also functions as an interface for the communication unit 128, sensing unit 124, user interface processing unit 122, and data storage unit 130.
  • User interface processing section 122 includes an input section 132 and an output section 134.
  • the input unit 132 receives various inputs from the user.
  • the output unit 134 outputs various information to the user.
  • Communication section 128 includes a transmitting section 136 and a receiving section 138.
  • the transmitter 136 transmits various data to an external device.
  • the receiving unit 138 receives various data from an external device.
  • the transmitting unit 136 includes a data transmitting unit 140 that transmits request data including data measured by the sensing unit 124 to the relay terminal 110.
  • the request data includes the task handler (program body) and SDIID in addition to the measured data.
  • the receiving unit 138 includes a result receiving unit 142 that receives subtask execution results using MDI or the like.
  • FIG. 7 is a functional block diagram of the MDI device 150 and the LDI device 160.
  • the relay terminal 110 that receives request data from the SDI device 120 is also a type of MDI device 150.
  • MDI device 150 (relay terminal 110) includes a data processing section 170, a communication section 172, and a data storage section 174.
  • the communication unit 172 is in charge of communication processing with the SDI device 120, payment device 102, other MDI devices 150, LDI device 160, and the like.
  • the data storage unit 174 stores various information.
  • the data processing unit 170 executes various processes based on the data acquired by the communication unit 172 and the data stored in the data storage unit 174.
  • the data processing section 170 also functions as an interface for the communication section 172 and the data storage section 174.
  • Communication section 172 includes a transmitting section 182 and a receiving section 184.
  • the transmitter 182 transmits various data to an external device.
  • the receiving unit 184 receives various data from an external device.
  • the transmitting unit 182 includes a data transmitting unit 186 that transmits request data to another MDI device 150 or LDI device 160, and a result transmitting unit 188 that transmits the execution result of the subtask.
  • the receiving unit 184 includes a data receiving unit 190 that receives request data from other devices, and a result receiving unit 192 that receives subtask execution results.
  • the data processing unit 170 includes an execution determination unit 176, a task requesting unit 178, and a task execution unit 180.
  • the execution determination unit 176 receives request data from another device, it determines whether the subtask can be executed (accepted) by the own device. Details of the determination method will be described later.
  • the task requesting unit 178 does not execute a subtask on its own device, it requests another device to execute the subtask. At this time, the task requesting unit 178 determines whether to request the MDI or LDI depending on the type of subtask.
  • the task execution unit 180 executes various tasks.
  • the task execution unit 180 includes a main task execution unit 194 that executes a main task as an original function of the MDI device 150, and a subtask execution unit 196 that executes a subtask based on request data. As described above, the functions of the subtask execution unit 196 are realized by the DI engine installed in the MDI device 150. The main task and subtasks can be executed in parallel as separate processes or threads.
  • LDI device 160 includes a communication section 198, a data processing section 200, and a data storage section 202.
  • the communication unit 198 is in charge of communication processing with the SDI device 120, MDI device 150, other LDI devices 160, payment device 102, and the like.
  • the data storage unit 202 stores various information.
  • the data processing unit 200 executes various processes based on the data acquired by the communication unit 198 and the data stored in the data storage unit 202.
  • the data processing section 200 also functions as an interface for the communication section 198 and the data storage section 202.
  • Communication section 198 includes a transmitting section 204 and a receiving section 206.
  • the transmitter 204 transmits various data to an external device.
  • the receiving unit 206 receives various data from an external device.
  • the transmitting unit 204 includes a data transmitting unit 208 that transmits request data to other LDI devices 160, and a result transmitting unit 210 that transmits the execution results of subtasks.
  • the receiving unit 206 includes a data receiving unit 212 that receives request data from another device, and a result receiving unit 214 that receives the execution results of subtasks.
  • the data processing unit 200 includes an execution determination unit 216, a task requesting unit 224, and a task execution unit 218.
  • the execution determination unit 216 receives request data from another device, it determines whether the subtask can be executed by the own device. The determination method is the same as that for MDI, but the details will be described later.
  • the task requesting unit 224 does not execute a subtask on its own device, it requests another device to execute the subtask.
  • the task execution unit 218 executes various tasks.
  • the task execution unit 218 includes a main task execution unit 220 that executes a main task as an original function of the LDI device 160, and a subtask execution unit 222 that executes a subtask based on request data. As described above, the functions of the subtask execution unit 222 are realized by the DI engine installed in the LDI device 160.
  • FIG. 8 is a data structure diagram of the request condition information 230.
  • Request condition information 230 is stored in data storage section 130 of SDI device 120.
  • Request condition information 230 is information that defines request conditions for each subtask. Subtasks are identified by task IDs.
  • the request conditions for the subtask (T01) are "domestic” and "20 GB or more of free memory.” For example, when the location of the SDI device 120 (request source) is "Japan", execution of the subtask (T01) is not permitted unless the MDI device 150 is located in Japan (domestic) and has free memory of 20 GB or more.
  • the distribution range of data generated from the SDI device 120 can be restricted.
  • a condition regarding the specifications of the main subtask execution entity such as "20 GB or more of free memory,” it is possible to select an MDI device 150 with sufficient spare capacity.
  • the subtask (T02) is a task for LDI ("L" in the figure indicates that it is for LDI).
  • the request conditions for the subtask (T02) are that the OS is “OS-A (OS name)”, that it is operated by a public organization, and that the LDI device 160 is a multi-core device.
  • LDI devices 160 operated by public organizations are considered to be more reliable and have relatively higher security than private LDI devices 160.
  • the subtask (T03) is a task for MDI.
  • the request conditions for the subtask (T03) are “at home” and “power consumption ⁇ K”.
  • K here is a threshold value indicating "power consumption per unit time when a predetermined task is continuously executed.” Therefore, the MDI device 150 that can execute the subtask (T03) is limited to an MDI device 150 that is installed in the same household as the SDI device 120 and has low power consumption according to specifications.
  • Power consumption may be defined as specification information as power consumption expected when a predetermined task is executed. By adding request conditions regarding power consumption, it is possible to actively utilize MDI devices and the like that consume less power, in other words, do not place a burden on the environment.
  • the request condition may include that the device is an MDI device or the like that is operated using renewable energy.
  • the request data includes request conditions, data to be processed, a task handler, SDIID (request source ID), and the like.
  • processing load means the current burden on the computing device that is the main body of task execution.
  • CPU usage rate means the current burden on the computing device that is the main body of task execution.
  • Specificification information means the specifications of the computing device that is the main body for task execution. For example, the generation of the CPU, the number of clocks, the number of cores, the size of the installed memory, the type and generation of the installed OS, the power consumption per unit processing, etc. are applicable.
  • the “power supply state” means the stability of the power supply to the computing device that is the main subject of task execution.
  • Communication state means the state of communication between a computing device that is a request source and a computing device that is a request destination. For example, the presence or absence of a wired connection, the availability of short-range wireless communication, the communication speed, the stability of communication, etc.
  • FIG. 9 is a data structure diagram of the underwriting condition information 240.
  • the underwriting condition information 240 shown in FIG. 9 is stored in the data storage unit 174 of the MDI device 150 (M01).
  • the acceptance condition information 240 is information that defines the conditions for the MDI device 150 (M01) to accept a subtask (hereinafter referred to as "acceptance conditions"), in other words, the criteria for determining whether the subtask can be executed.
  • Acceptance conditions the conditions for the MDI device 150 (M01) to accept a subtask
  • Other MDI devices 150 and LDI devices 160 also have their own underwriting requirements.
  • the MDI device 150 (M01) executes a subtask when the subtask request condition is satisfied and the acceptance condition of the device itself is satisfied.
  • the conditions for underwriting the MDI device 150 (M01) are that "the CPU usage rate is 50 (%) or less" and that "power is being supplied”. That is, the MDI device 150 (M01) does not accept subtasks when the main task is busy or when power is not being supplied.
  • the task requesting unit 178 of the MDI device 150 (M01) transfers the request data to another MDI device 150 when the subtask cannot be executed. Note that even if the request data is for the MDI device 150, the MDI device 150 may transmit the request data to the LDI device 160 instead of the other MDI device 150 when the own device cannot accept the subtask.
  • Setting of underwriting conditions is optional.
  • the SOC State of Charge
  • the number of threads used in the main task is 5 or less.
  • the CPU temperature is below 50 degrees
  • the memory usage rate is below 60(%), etc.
  • the MDI device 150 only needs to accept subtasks when its own computing resources have surplus capacity. By setting acceptance conditions, it is possible to control so that the performance of the main task, which is the original work of the MDI device 150, does not deteriorate due to the execution of subtasks.
  • the MDI device 150 only needs to take on subtasks when the load of the main task is light, or in other words, only when there is computational surplus.
  • Underwriting conditions may include conditions regarding remuneration. Although the details will be described later, when the MDI device 150 (M33) executes a subtask of the SDI device 120 (S12), the user of the SDI device 120 (S12: request source) sends a message to the user of the MDI device 150 (M33: request destination). Rewards will be paid.
  • the request conditions may include a reward amount for executing the subtask.
  • the underwriting conditions may include a condition that the remuneration amount is a predetermined amount or more.
  • request conditions and acceptance conditions will be collectively referred to as "execution conditions.” There may be subtasks for which request conditions are not set, and there may be MDI devices 150 for which acceptance conditions are not set. Underwriting conditions can also be set in the LDI device 160.
  • FIG. 10 is a flowchart showing the processing process for allocating subtasks.
  • relay terminal 110 receives request data from SDI device 120
  • relay terminal 110 executes the process shown in FIG. 10.
  • the relay terminal 110 in the first embodiment does not execute subtasks by itself.
  • the task requesting unit 178 of the relay terminal 110 refers to the request conditions included in the request data and determines whether the subtask is for MDI or LDI (S10). When the data is for MDI (Y in S10), the task requesting unit 178 selects the MDI device 150 to which the request data will be transmitted (S12). The task requesting unit 178 may select a destination from the plurality of MDI devices 150 using any method. For example, the task requesting unit 178 may preferentially select the MDI device 150 that is connected to the relay terminal 110 by wire. Alternatively, the task requesting unit 178 may select the MDI device 150 capable of short-range wireless communication with the relay terminal 110 as the destination, or select the MDI device 150 that has been selected as the destination in the past as the destination again. You can choose one at random. As the short-range wireless communication referred to here, Bluetooth (registered trademark), NFC (Near field communication), IrDA (Infrared Data Association), etc. are assumed.
  • the task requesting unit 178 of the relay terminal 110 instructs the data transmitting unit 186 to transmit the request data to the selected MDI device 150 (S14). In other words, the task requesting unit 178 requests the selected MDI device 150 to execute the subtask.
  • the task requesting unit 178 includes the MDIID of the relay terminal 110 in the request data.
  • the data transmitter 186 may encrypt the request data during transmission.
  • the task requesting unit 178 selects the LDI device 160 to which the request data will be transmitted (S16).
  • the method for selecting the LDI device 160 is the same as the method for selecting the MDI device 150.
  • the task requesting unit 178 of the relay terminal 110 instructs the data transmitting unit 186 to transmit the request data (S18).
  • the smart glasses 108 request the relay terminal 110 to perform a subtask (for MDI) of identifying a building appearing in the captured image from the captured image.
  • the relay terminal 110 receives the request data including the task handler corresponding to this subtask, and transfers the request data to one of the MDI devices 150.
  • the result receiver 192 receives a confirmation signal from the request destination.
  • the task requesting unit 178 When the task requesting unit 178 cannot receive a confirmation signal even after a certain period of time has passed after transmitting the request data, in other words, when it cannot confirm the reception of the request data, the task requesting unit 178 sends a new MDI device 150 or the like to another MDI device 150 or the like. Select as the destination.
  • FIG. 11 is a flowchart showing a processing process when the MDI device 150 receives request data from another device.
  • the data receiving unit 190 of the MDI device 150 receives request data from the relay terminal 110 or another MDI device 150. When the request data is encrypted, the data receiving unit 190 decrypts the request data.
  • the execution determination unit 176 of the MDI device 150 determines whether or not to undertake the execution of the subtask specified in the request data based on the execution conditions (request conditions and acceptance conditions) (S20). If the task can be accepted (Y in S20), the subtask execution unit 196 executes the subtask according to the data included in the request data and the task handler (S22).
  • the result transmitting unit 188 transmits the execution result of the subtask to the requesting computing device (S24).
  • the execution results of the subtasks are returned to the original SDI device 120 following the transmission route of the request data.
  • the data transmitter 186 transmits the MDIID of its own device and the SDIID included in the request data to the payment device 102 and requests payment (S26).
  • the payment unit (not shown) of the payment device 102 performs payment of the remuneration amount associated with the execution of the subtask.
  • the task requesting unit 178 selects another MDI device 150 (S28).
  • the task requesting unit 178 instructs the data transmitting unit 186 to transmit the request data (S30).
  • the subtask is requested to another MDI device 150.
  • MDI request data sent from the SDI device 120 is sent to the MDI device 150 via the relay terminal 110.
  • the MDI device 150 executes the subtask if it can accept it, and if it cannot, transfers the request data to another MDI device 150. Request data continues to be transferred until an MDI device 150 that can accept the subtask is found.
  • whether or not the subtask can be accepted is determined based on whether the own device satisfies the request conditions and also satisfies the acceptance conditions. Furthermore, since the MDI ID of the transmission source is added to the request data, the destination MDI device 150 can always know the transmission source of the request data. The MDI device 150 that executed the subtask returns the execution result to the transmission source, and finally, the SDI device 120 obtains the execution result of the subtask. The output unit 134 of the SDI device 120 outputs images or audio based on the execution results.
  • FIG. 12 is a flowchart showing a processing process when the LDI device 160 receives request data from another device.
  • the data receiving unit 212 of the LDI device 160 receives request data from other devices such as the relay terminal 110. When the request data is encrypted, the data receiving unit 212 decrypts the request data.
  • the execution determination unit 216 of the LDI device 160 determines whether to undertake execution of the subtask specified in the request data based on the execution conditions (S32).
  • the subtask execution unit 222 executes the subtask according to the request data (S34).
  • the result transmitting unit 210 transmits the execution result of the subtask to the requesting computing device (S36).
  • the execution result follows the request route and is returned to the original SDI device 120.
  • the data transmitter 208 transmits the LDIID of its own device and the SDIID included in the request data to the payment device 102, and requests payment (S38).
  • the payment unit (not shown) of the payment device 102 performs payment of the remuneration amount associated with the execution of the subtask.
  • the transmission route for the execution result may be determined by following the request route in the reverse direction, or by the LDI device 160 that is the execution entity calculating the shortest route to the SDI device 120 that is the request source. good.
  • the task requesting unit 224 selects another LDI device 160 (S40).
  • the task requesting unit 224 instructs the data transmitting unit 208 to transmit the request data (S42).
  • the LDI device 160 also executes the subtask if it can accept it, and if not, transfers the request data to another LDI device 160. Request data continues to be transferred until an LDI device 160 that can accept the subtask is found.
  • FIG. 13 is a data structure diagram of the payment information 250.
  • Payment information 250 shown in FIG. 13 is stored in payment device 102.
  • the MDI device 150 or the like that executed the subtask transmits a payment request to the payment device 102.
  • a user is identified by a user ID.
  • the user identified as user ID P01 owns the SDI device 120 (S01) and the SDI device 120 (S02).
  • the payment request includes the task ID, the requester's user ID, the SDI ID of the requester's SDI device 120, the executor's user ID, and the MDIID or LDIID of the executor's computing device.
  • the SDI device 120 (S01:P01) generates a subtask (T01), and the MDI device 150 (M01) owned by the user (P05) executes this subtask (T01).
  • the amount of remuneration associated with the execution of the subtask (T01) is Y1 (yen).
  • the data transmitter 186 of the MDI device 150 (M01:P05) executes the subtask (T01)
  • the payment unit 102 registers the notification content in the payment information 250.
  • the payment unit periodically executes, for example, once a month, a remittance process from the user of the SDI device 120 to the holder of the MDI device 150 that is the subject of task execution.
  • a remittance process of Y1 (yen) from the user (P01) to the user (P05) is executed.
  • the subtask (T04) generated by the SDI device 120 (S02) of the user (P01) is executed by the LDI device 160 (L01:P11).
  • the remuneration amount at this time is Y2 (yen). Therefore, the user (P01) also pays a reward to the user (P11) who is the owner of the LDI device 160 (L01).
  • the destination computing device indicates the transfer content.
  • the information may be sent to payment device 102.
  • the payment device 102 may register not only the requestor and executor of the task but also the transferor. Further, the payment device 102 may pay a reward not only to the task executor but also to the task transferer (relayman).
  • the information indicating the transfer content here includes the task ID, the requester's user ID, the SDI ID of the requesting SDI device 120, the transferer's user ID, and the MDIID or LDIID of the transferred computing device.
  • subtasks generated by the SDI device 120 are executed by MDI or LDI. Therefore, even if the SDI device 120 does not have advanced processing capabilities, it can provide a variety of services by utilizing other computational resources such as MDI. Furthermore, by setting acceptance conditions, the MDI device 150 and the like can execute subtasks only when there is surplus computing power. Therefore, the MDI device 150 and the like can execute subtasks requested by the SDI device 120 only when the processing load of the main task is not heavy, while executing the main task that is its original role. With such a control method, various computational resources included in the distributed processing system 100 can be effectively utilized without degrading the original performance of the MDI device 150 and the like.
  • the user of the SDI device 120 can freely set request conditions in consideration of various aspects such as data destination, security, and environmental protection.
  • a user who prefers to utilize renewable energy may set request conditions such that a computing device powered by renewable energy is the primary task execution entity.
  • the LDI device 160 in the first embodiment is a secondary battery equipped with a DI engine, the main task load is lighter compared to the MDI device 150. Therefore, the LDI device 160 can more efficiently execute subtasks that have a larger processing load than the MDI device 150.
  • the MDI device 150 is a device that exists close to the SDI device 120, such as a smartphone or a car. Therefore, compared to the LDI device 160, the MDI device 150 has more opportunities to receive request data from the nearby SDI device 120.
  • the payment device 102 executes payment from the subtask requester to the executor.
  • Owners of MDI devices 150, etc. can earn revenue by taking on subtasks.
  • the owner of the SDI device 120 can freely set request conditions for the MDI device 150 or the like to which he or she wishes to request a subtask. For example, in a situation where an MDI device 150 with sufficient computing power is likely to be preferred, it is economically rational to introduce a high-quality MDI device 150 even if it is expensive. Alternatively, if an MDI device 150 with low power consumption is preferred, the MDI device 150 with low power consumption is likely to be introduced even if it is expensive.
  • the preferences of the subtask requester will influence the decision to install the MDI device 150 and LDI device 160.
  • the payment device 102 transmits to the SDI device 120 a statement indicating which MDI device 150 etc. executed the subtask (hereinafter referred to as "execution statement").
  • execution statement a statement indicating which MDI device 150 etc. executed the subtask.
  • the execution specification may include, for example, background information indicating the location, function, specifications, etc. of the MDI device 150 or the like that is the subject of task execution.
  • the user of the SDI device 120 can track who executed a subtask, making it easier to request a subtask to another computing device with confidence.
  • the user may limit the execution range of the subtask regionally, such as within the home or within the same town.
  • the relay terminal 110 determines whether the subtask is for MDI or LDI.
  • the present invention is not limited to this, and the SDI device 120 may determine whether the subtask is for MDI or LDI.
  • the relay terminal 110 is described as requesting the MDI device 150 or LDI device 160 to perform the subtask without executing the subtask.
  • the relay terminal 110 may execute the subtask itself when the execution condition is satisfied by the relay terminal 110 itself.
  • a subtask of determining whether a missing person is shown in the image captured by the smart glasses 108 can be considered.
  • the smart glasses 108 may send the captured image to the MDI device 150 or the like, and the MDI device 150 or the like may assist in finding the missing person by comparing the captured image with the face image of the missing person.
  • the user of the smart glasses 108 can cooperate in searching for a missing person.
  • FIG. 14 is a conceptual diagram of the distributed processing system 100 in the second embodiment.
  • SDI and MDI are not particularly distinguished and will be collectively referred to as MDI.
  • a plurality of robots 262 that operate autonomously in a shopping mall function as the "MDI device 150."
  • a drone 252 a guide robot 254, a cleaning robot 256, a security robot 258, and a transport robot 260 are shown as robots 262.
  • robots 262 are also connected to LDI.
  • the drone 252 flies around the shopping mall and periodically takes images.
  • the guide robot 254 is in charge of customer service and provides guide information to visitors as necessary.
  • the cleaning robot 256 travels within the shopping mall and automatically cleans the floor surface.
  • the security robot 258 detects a person acting suspiciously, it issues a warning to this person.
  • the transport robot 260 automatically transports cargo. Both robots 262 are equipped with DI engines.
  • Each robot 262 is a mobile device equipped with a communication function. Furthermore, in the second embodiment, the unique functions that each robot 262 can provide are referred to as "services.” For example, the cleaning robot 256 can provide a service called “floor cleaning,” and the security robot 258 can provide a service called “warning.”
  • the drone 252 images an indoor space at a certain point P1.
  • the drone 252 transmits request data including the captured image and position information P1 to the nearby guide robot 254.
  • This request data specifies a subtask for detecting whether "dirt" appears in the captured image.
  • the execution condition of the subtask in the second embodiment is "charging".
  • the guide robot 254 Since the guide robot 254 is not charging, it transfers the request data to a nearby cleaning robot 256. Since the cleaning robot 256 is also not charging, the request data is transferred to the nearby security robot 258. Since the security robot 258 is also not charging, the request data is transferred to the nearby transport robot 260. Since the transport robot 260 is being charged, it executes the subtask.
  • the transportation robot 260 executes a subtask and discovers "dirt on the floor” in the captured image.
  • the transportation robot 260 determines that "floor cleaning" at the point P1 is necessary as a result of executing the subtask.
  • the transportation robot 260 transmits service instruction information requesting a floor cleaning service at the point P1 to the nearby security robot 258. Since the security robot 258 cannot provide floor cleaning service, it transmits service instruction information to a nearby cleaning robot 256.
  • the cleaning robot 256 can provide floor cleaning services.
  • the cleaning robot 256 moves to the point P1 specified by the service instruction information and performs floor cleaning.
  • the plurality of robots 262 cooperate in this way to recognize various events that occur in the shopping mall and provide corresponding services.
  • the robot 262 may execute subtasks.
  • the transport robot 260 that is being charged may transmit subtask request data to the LDI device 160 when its own device does not have sufficient computing power.
  • the LDI device 160 in the second embodiment may also be a fixedly installed computing device equipped with a DI engine, such as a large secondary battery.
  • FIG. 15 is a functional block diagram of the robot 262.
  • the robot 262 includes a user interface processing section 326, a sensing section 264, a communication section 266, a driving section 268, a data processing section 270, and a data storage section 272.
  • the user interface processing unit 326 accepts operations from the user via an input device such as a touch panel, and is also responsible for processing related to the user interface, such as image display and audio output.
  • the sensing unit 264 acquires measurement values from various sensors such as a camera, radar, and gyro sensor.
  • the communication unit 266 is in charge of communication processing with other robots 262 or the LDI device 160.
  • the drive unit 268 controls various drive mechanisms of the robot 262, such as propellers, wheels, and robot hands.
  • the data storage section 272 stores various data.
  • the data processing unit 270 performs various processing based on data input from the user interface processing unit 326, data measured by the sensing unit 264, data received by the communication unit 266, and data stored in the data storage unit 272. Execute.
  • the data processing section 270 also functions as an interface for the communication section 266, sensing section 264, user interface processing section 326, and data storage section 272.
  • User interface processing section 326 includes an input section 274 and an output section 276.
  • the input unit 274 accepts various inputs from the user.
  • the output unit 276 outputs various information to the user.
  • Communication section 266 includes a transmitting section 278 and a receiving section 280.
  • the transmitter 278 transmits various data to an external device.
  • the receiving unit 280 receives various data from an external device.
  • the transmitting unit 278 includes a data transmitting unit 282 that transmits request data including data measured by the sensing unit 264 to other devices, and a result transmitting unit 284 that transmits the execution results of the subtask.
  • the request data in the second embodiment includes robot IDs that identify task handlers and robots.
  • the receiving unit 280 includes a data receiving unit 286 that receives request data and the like, and a result receiving unit 288 that receives the execution results of subtasks.
  • the data processing unit 270 includes an execution determination unit 290, a task execution unit 292, a service provision unit 294, a service identification unit 296, a service determination unit 298, a task request unit 321, and a service request unit 320.
  • the execution determination unit 290 receives request data from another robot (mobile device), it determines whether the robot itself can accept the subtask. In the second embodiment, the execution determination unit 290 determines that the subtask can be accepted if the own device is charging.
  • the determination method may be the same as in the first embodiment.
  • the task execution unit 292 executes various tasks.
  • the task execution unit 292 includes a main task execution unit 322 that executes a main task, and a subtask execution unit 324 that executes a subtask.
  • the main task of the robot 262 is an operation for executing a service specific to the robot 262.
  • the functions of the subtask execution unit 324 are realized by the DI engine installed in the robot 262.
  • the service providing unit 294 provides a service specific to the robot 262 by controlling the driving unit 268 according to the execution result of the main task or subtask.
  • the service identification unit 296 determines the service to be executed based on the result of the subtask execution by the subtask execution unit 324.
  • the service determination unit 298 determines whether or not the own device is capable of executing the specified service.
  • the service requesting unit 320 requests services from other robots 262. More specifically, the service requesting unit 320 generates service instruction information based on the execution results of the subtasks, and instructs the result transmitting unit 284 to transmit the service instruction information to the other robots 262.
  • FIG. 16 is a data structure diagram of the service definition information 330.
  • Service definition information 330 is information that defines services that can be provided by robot 262.
  • Each service is identified by a service ID.
  • the drone 252 can provide the services of "flight” and "photography”.
  • the guide robot 254 can provide services such as “guidance,” “movement,” and “calling out.”
  • the security robot 258 can provide services such as “movement”, “warning", and “imaging”.
  • the transportation robot 260 can provide services such as “movement” and “transportation.” In this way, each robot 262 has its own service definition information 330.
  • a subtask is generated in response to sensing by one of the robots 262.
  • a service such as "floor cleaning” is required.
  • the cleaning robot 256 that can provide the service "floor cleaning” is responsible.
  • each robot 262 (MDI device 150) can provide are not limited to this.
  • various other services can be considered, such as a robot 262 that provides games to children, a robot 262 that can display animations, a robot 262 that gives haircuts, and a robot 262 that reports to outside agencies such as the police.
  • FIG. 17 is a flowchart showing a processing process when the robot 262 receives request data.
  • the execution determination unit 290 determines whether the subtask can be accepted (S44). If the subtask can be accepted (Y in S44), the subtask execution unit 324 executes the subtask (S46).
  • the service identifying unit 296 identifies the service to be executed based on the processing results of the subtasks (S48). If any service is required (Y in S48), the service requesting unit 320 causes the data transmitting unit 282 to transmit service instruction information including the service ID (S50).
  • the data transmitter 282 transmits the designated service instruction information to the other robots 262. If the service does not need to be executed (N at S48), the process at S50 is skipped. Note that if the service can be executed by the own device, the service providing unit 294 provides the service at step S50.
  • the task requesting unit 321 selects another robot 262 (S52).
  • the task requesting unit 321 instructs the data transmitting unit 282 to transmit request data to the selected robot 262 (S54). Similar to the first embodiment, request data is transferred between robots 262 until one of the robots 262 is able to take on the subtask.
  • LDI device 160 rather than robot 262, may perform the subtasks.
  • the robot 262 may periodically learn what kind of robots 262 are around by using known means such as a beacon. More specifically, the robot 262 periodically transmits a beacon (search signal) to its surroundings, and upon receiving the beacon, the robot 262 informs the sender of the services that it can provide along with its own robot ID. Reply with your ID. In S50, when requesting the specified service from another robot 262, the robot 262 may select a robot 262 that can provide the necessary service from among the robots 262 existing in the vicinity and transmit the service instruction information. .
  • a beacon search signal
  • FIG. 18 is a flowchart showing a processing process when the robot 262 receives service instruction information.
  • the service determination unit 298 determines whether the service specified in the service instruction information can be provided (S58). If it is possible to provide the specified service (Y in S58), the service providing unit 294 provides the specified service (S60).
  • multiple services may be required. For example, it may be necessary to provide a service such as erecting a no-trespassing sign on-site after cleaning the floor.
  • the task requesting unit 321 requests the service from another robot 262 (S64). If there are no remaining services that cannot be provided by the device itself (N at S62), the process at S64 is skipped.
  • the service requesting unit 320 selects another robot 262 (S66) and requests the robot 262 to provide the service (S64).
  • the plurality of robots 262 share sensing, execution of subtasks, and provision of services, so that processing can be distributed as a whole. According to such a configuration, the processing load per robot 262 can be reduced.
  • the drone 252 only needs to have a circular flight and regular imaging function.
  • the subtask of determining whether "floor cleaning" is necessary is executed by the charging robot 260. Further, the service "floor cleaning" is instructed from the transportation robot 260 to the cleaning robot 256 via the security robot 258.
  • the cleaning robot 256 may move to a location specified by the service instruction information and clean the floor.
  • the drone 252 can monitor the entire floor of the shopping mall from above. Therefore, more efficient monitoring is possible than with the cleaning robot 256 that travels on the ground. By coordinating multiple robots 262, various services can be provided efficiently.
  • the robot 262 equipped with an odor sensor may request analysis of odor information, and the other robots 262 may determine whether or not the odor is abnormal.
  • a robot 262 with a guiding function may guide the passengers to evacuate.
  • a service may be provided that calls out to the child, takes a picture of the child, and makes an announcement in the venue including the characteristics of the child.
  • FIG. 19 is a conceptual diagram of a distributed processing system 100 in the third embodiment.
  • the MDI device 150 in the third embodiment is configured as social infrastructure equipment.
  • Social infrastructure equipment is equipment installed to play social and industrial roles such as transportation, safety, security, observation, and information provision.
  • the MDI device 150 serving as social infrastructure equipment includes a surveillance camera, a human sensor, a camera that measures the flow of people, a digital signage, an environmental sensor, an AED (Automated External Defibrillator), a traffic light, a wireless base station, a rain gauge, a snow gauge, and a wind direction.
  • Possible devices include meters, solar cells in solar power plants, street lights, smart poles, and barometers.
  • the MDI device 150 in the third embodiment is also equipped with a DI engine.
  • the main task is the device's work as a social infrastructure facility, and the work for the SDI device 120 is a subtask.
  • the DI engine installed in the MDI device 150 executes subtasks in parallel with the main task.
  • not only the MDI device 150 but also the LDI device 160 may execute the subtask. For example, when the MDI device 150 configured as an environmental sensor is requested to perform a subtask, and this MDI device 150 does not have sufficient calculation capacity, the MDI device 150 may request the LDI device 160 to perform the subtask. .
  • the SDI device 120 in the third embodiment a portable mobile terminal such as a smartphone is assumed. As long as the SDI device 120 is within an area where MDI devices 150 are installed at various locations, the SDI device 120 can request subtasks to the MDI at any time. The SDI device 120 selects the nearest MDI device 150 and requests the subtask. In this case, the MDI device 150 that has acquired the subtask from the SDI device 120 may function as the task distribution device 101, or the SDI device 120 itself may function as the task distribution device 101.
  • FIG. 20 is a functional block diagram of the surveillance camera 151.
  • the surveillance camera 151 is an example of the MDI device 150 in the third embodiment.
  • the surveillance camera 151 includes a sensing section 342, a communication section 344, a data processing section 346, and a data storage section 348 configured as a camera.
  • the sensing unit 342 acquires a captured image using a camera.
  • the communication unit 344 is in charge of communication processing with other MDI devices 150 or LDI devices 160.
  • the data storage unit 348 stores various data.
  • the data processing unit 346 executes various processes based on the captured image acquired by the sensing unit 342, data received by the communication unit 344, and data stored in the data storage unit 348.
  • the data processing section 346 also functions as an interface for the communication section 344, sensing section 342, and data storage section 348.
  • Communication section 344 includes a transmitting section 350 and a receiving section 352.
  • the transmitter 350 transmits various data to an external device.
  • the receiving unit 352 receives various data from an external device.
  • the transmitting unit 350 includes a data transmitting unit 354 that transmits request data received from other computing devices such as the SDI device 120 to other devices, and a result transmitting unit 356 that transmits the execution results of subtasks.
  • the receiving unit 352 includes a data receiving unit 358 that receives request data and the like, and a result receiving unit 360 that receives the execution results of subtasks.
  • the data processing unit 346 includes an execution determination unit 368, a task execution unit 362, and a task request unit 370.
  • the execution determination unit 368 receives request data from another computing device such as the SDI device 120, it determines whether the own device can accept the subtask. The determination method may be the same as in the first embodiment.
  • the task requesting unit 370 does not execute a subtask on its own device, it requests another computing device to execute the subtask.
  • the task execution unit 362 executes various tasks.
  • the task execution unit 362 includes a main task execution unit 364 that executes a main task and a subtask execution unit 366 that executes a subtask.
  • the main task of the surveillance camera 151 is "obtaining captured images.”
  • the functions of the subtask execution unit 366 are realized by the DI engine installed in the surveillance camera 151. The same is basically true for MDI devices 150 other than the surveillance camera 151.
  • FIG. 21 is a flowchart showing a processing process when the MDI device 150 receives request data in the third embodiment.
  • the data receiving unit 358 of the MDI device 150 receives request data from the SDI device 120 or another MDI device 150.
  • the task request unit 370 determines whether the subtask indicated by the request data is for MDI or LDI (S72).
  • the process in S72 is skipped because it has been determined as an MDI subtask.
  • the execution determination unit 368 determines whether the own device can accept the subtask (S74). If the task can be accepted (Y in S74), the subtask execution unit 366 executes the subtask (S76). The result transmitting unit 356 transmits the execution result of the subtask to the requesting computing device (S78).
  • the task requesting unit 370 selects another MDI device 150 to which the subtask is requested (S80).
  • the task requesting unit 370 instructs the data transmitting unit 354 to transmit the request data (S82).
  • the task requesting unit 370 selects the LDI device 160 to which the request is made (S84).
  • the task requesting unit 370 requests the subtask to another LDI device 160 by instructing the data transmitting unit 354 to transmit request data (S86).
  • the processing process when the LDI device 160 receives request data from another computing device is basically the same as the flowchart described in connection with FIG. 12.
  • payment processing is not performed in the third embodiment, payment processing may be performed in the same manner as in the first embodiment.
  • MDI devices 150 Many social infrastructure facilities (MDI devices 150) have time periods (idle time periods) when the processing load of the main task, which is the original work, is not so heavy. By utilizing the idle time slots of a large number of MDI devices 150, it is possible to provide various services to the SDI devices 120, as in the first embodiment.
  • the processing capacity of the SDI device 120 can be reduced. This also contributes to lower prices, lower power consumption, and smaller and lighter SDI devices 120 such as smartphones and wearable terminals. Since the social infrastructure equipment (MDI device 150) provides calculation functions as a public service to various SDI devices 120, many users can enjoy advanced services with a simple SDI device 120.
  • a smart pole (MDI device 150)
  • a car SDI device 120
  • an on-vehicle camera (SDI device 120) of the vehicle may transmit a captured image to a smart pole (MDI device 150), and the smart pole may notify the vehicle of the presence or absence of danger based on the captured image.
  • in-vehicle cameras collaboration with processing based on cameras and sensors installed in social infrastructure equipment such as smart poles is expected to enable highly automated driving using social infrastructure equipment.
  • a smart pole may take an image of a moving car and determine whether this car is driving dangerously in cooperation with other MDI devices 150.
  • the MDI device 150 located near the vehicle transmits an emergency stop command to the vehicle.
  • a DI engine installed in a vehicle receives an emergency stop command, it may perform the task of bringing the vehicle to a safe stop on the roadside. According to such a control method, it is possible to force a car that is driving dangerously to a safe stop.
  • FIG. 22 is a schematic diagram for explaining a method for distributing subtasks from the LDI device 160.
  • the LDI device 160 may include a "data division section.”
  • the data dividing unit divides the data to be processed into a plurality of pieces. For example, assume that the LDI device 160 (L01) shown in FIG. 22 receives request data including data (D) and a task handler for a subtask (T1) from the SDI device 120 or the MDI device 150.
  • the data dividing unit of the LDI device 160 divides data (D) into four parts: data (D1), data (D2), data (D3), and data (D4).
  • the LDI device 160 (L01) transmits request data including a task handler (T1) and data (D1) to the LDI device 160 (L02).
  • the LDI device 160 (L02) returns the processing result of the data (D1) to the LDI device 160 (L01).
  • the LDI device 160 transmits request data including the task handler (T1) and data (D2) to the LDI device 160 (L02).
  • Data (D3) and data (D4) are transmitted to LDI device 160 (L03) and LDI device 160 (L04), respectively.
  • the LDI device 160 (L01) summarizes the processing results of data (D1) to data (D4) received from the four LDI devices 160, and sends the requesting MDI device 150 or SDI device 120 to process the data (D). Submit your results.
  • data (D) is a moving image
  • a subtask is to determine whether a specific person X is shown in this moving image.
  • the LDI device 160 (L01) may divide the moving image into multiple parts and have the multiple LDI devices 160 process subtasks in a distributed manner.
  • the LDI device 160 is a large secondary battery equipped with a DI engine installed in each household in an apartment complex.
  • the entrance management device (SDI device 120) at the entrance of the apartment complex acquires a captured image of a person wishing to enter in front of the entrance, and transmits the captured image to the LDI device 160 (L01).
  • the LDI device 160 (L01) transmits this captured image to the LDI device 160 provided in each home.
  • the LDI device 160 (L02) of a certain household compares a captured image of a person who wishes to enter the facility with a captured image of a family member, and determines whether or not the person who desires to enter the facility is a member of his or her family.
  • the LDI devices 160 in other homes also perform similar determination processing.
  • the LDI device 160 (L01) instructs the admission management device to unlock the facility if the person wishing to enter the facility is a member of any household. According to such a control method, residents of an apartment complex can enter the apartment complex simply by showing their faces to the entrance control device. On the other hand, those who wish to enter the facility who are not registered in any of the LDI devices 160 are prohibited from entering the facility. Furthermore, since it is a distributed processing method using a plurality of LDI devices 160, it is possible to speed up face authentication processing.
  • the LDI device 160 may include a “task decomposition unit” and a “task distribution unit”. Rather than dividing the data, the LDI device 160 may divide the subtask into lower-level subtasks. For example, it may be desirable to analyze a captured image of a person entering a store from multiple perspectives, such as estimating gender, estimating age, and whether the person is an existing customer or a new customer.
  • the task distribution unit of the LDI device 160 divides the subtask of determining the person entering the store into "lower subtask T1 for estimating gender,” “lower subtask T2 for estimating age,” and “lower subtask T2 for estimating age.” It is broken down into a lower subtask T3 for determining whether the customer is a new customer.
  • the task distribution unit may allocate these three types of subtasks to the three LDI devices 160 to process multiple types of lower level subtasks in parallel.
  • the image when encrypting an image, the image may be divided into multiple parts and each part may be encrypted.
  • a plurality of LDI devices 160 may be responsible for encrypting each part. The same applies to decoding. Note that, although the explanation in FIG. 22 is based on LDI, the same applies to MDI.
  • FIG. 23 is a schematic diagram for explaining a method of determining whether a subtask can be executed in a modified example.
  • the MDI device 150 or the like that is the request source transmits request data including request conditions to the MDI device 150 or the like that is the request destination, and the MDI device 150 or the like that receives the request data determines whether or not to accept the subtask. It was explained that it is determined.
  • the MDI device 150 or the like that is the request source may determine the destination of the request data after confirming the specification information or acceptance conditions from the request destination candidates in advance.
  • the MDI device 150 (M01) first notifies the request condition C1 to the MDI device 150 (M02), the MDI device 150 (M03), and the MDI device 150 (M04). It is assumed that the MDI device 150 (M02) determines that the subtask cannot be accepted in view of the request conditions and the acceptance conditions, and notifies the MDI device 150 (M01) of the inability. On the other hand, it is assumed that the MDI device 150 (M03) and the MDI device 150 (M04) respond that they can accept the subtask.
  • the requesting MDI device 150 selects the MDI device 150 (M03) as the request destination from the MDI devices 150 (M03) and MDI device 150 (M04) that can accept the request.
  • the MDI device 150 (M01) may select a request destination based on the communication state.
  • the MDI device 150 (M01) formally transmits the request data (data and task handler) to the MDI device 150 (M03) selected as the request destination, and the MDI device 150 (M03) executes the subtask.
  • the MDI device 150 may collect specification information, etc. of other MDI devices 150 by periodically communicating with each other.
  • the MDI device 150 may determine the subtask request destination based on specification information collected in advance. Alternatively, all MDI devices 150 may periodically transmit specification information and the like to a predetermined server.
  • the MDI device 150 may obtain specification information of each MDI device 150 from the server, and then determine the destination to which the subtask is requested.
  • FIG. 23 the description has been made with reference to MDI, but the same applies to LDI.
  • the subtask has been described as being set in advance for either MDI or LDI.
  • it may be determined whether a subtask should be executed using MDI or LDI, depending on the type or size of data to be processed.
  • the SDI device 120 or the like may transmit request data to the LDI when processing a moving image, and transmit request data to the MDI when processing a still image.
  • the LDI may be in charge of image or audio processing, and the MDI may be in charge of text information processing.
  • the SDI device 120 or the like may request the LDI to perform a subtask that targets data of a predetermined size or more, and may request the MDI to perform a subtask that targets data that is less than a predetermined size.
  • an expected load value indicating the amount of processing load expected for each subtask may be set.
  • the SDI device 120 or the like may transmit request data to the LDI if the assumed load value is greater than or equal to a predetermined threshold, and may transmit request data to the MDI if the assumed load value is less than the predetermined threshold.
  • a request response value indicating the communication speed and processing speed required for each subtask may be set.
  • the SDI device 120 and the like selects MDI for subtasks whose request response value is greater than or equal to a predetermined value, that is, requires a high-speed response, and selects LDI for subtasks whose request response value is less than a predetermined value, that is, a subtask that does not mind a slow response. You may also choose.
  • subtasks related to search are defined in LDI
  • subtasks related to translation are defined in LDI
  • subtasks related to calculation are defined in MDI
  • categories such as "search,” “translation,” and “calculation” are defined when designing subtasks. May be set.
  • the SDI device 120 and the like determine whether to process using MDI or LDI based on the subtask category.
  • the LDI device 160 may accept this subtask. Specifically, the "number of transfers" is included in the request data.
  • the MDI device 150 receives the request data and adds the "number of transfers" included in the request data when the device itself does not execute the subtask.
  • the MDI device 150 that has received the request data may check the number of transfers and, when the number of transfers exceeds a predetermined threshold, transmit the request data to the LDI device 160.
  • the task requesting unit 178 of the MDI device 150 may use the "number of transfers" of the request data as the "priority.”
  • the task requesting unit 178 may preferentially treat request data with a larger number of transfers (priority). For example, if the task requesting unit 178 receives and buffers the request data (C1: the number of transfers is 5 times) and the request data (C2: the number of transfers is 2 times) at the same time, Transfer processing may be performed for the larger request data (C1) first. According to such a control method, it is possible to prevent subtasks corresponding to some requested data from being significantly delayed. The same applies not only to MDI tasks but also to LDI tasks.
  • the SDI device 120 is a subtask for MDI
  • the SDI device 120 or the like may transmit request data to the LDI device 160.
  • the LDI or MDI may be selected as the subtask execution entity depending on not only the type of subtask, the type and size of data, but also the communication state.
  • the LDI device 160 is a computing device with greater computing power than the MDI device 150.
  • the computing power here may be defined based on the size of the built-in memory, the amount of processing per unit time of one processor, the number of cores installed, etc.
  • LDI device 160 may be a permanently installed computing device
  • MDI device 150 may be a portable, portable, or movable computing device.
  • LDI device 160 may also be a mobile computing device.
  • a car may be used as the LDI device 160.
  • MDI device 150 may be a permanently installed computing device.
  • a large secondary battery or ENE-FARM may be used as the MDI device 150.
  • the MDI device 150 may include multiple communication means. For example, it is assumed that the MDI device 150 (M01) and the MDI device 150 (M02) are equipped with three types of communication means: NFC, Wi-SUN (Wireless Smart Utility Network), and Bluetooth (registered trademark).
  • NFC wireless Fidelity
  • Wi-SUN Wireless Smart Utility Network
  • Bluetooth registered trademark
  • the MDI device 150 (M01) transmits the request data via Bluetooth (registered trademark) when the data size is greater than or equal to a predetermined size, and transmits the request data via Wi-SUN when the data size is less than the predetermined size. You may do so.
  • Wi-SUN has slow communication speed, it is characterized by low power consumption and long communication distance.
  • the MDI device 150 (M01) transmits small data such as character data, or when requesting a subtask for which a slow response speed is acceptable, the distance between the MDI device 150 (M01) and the MDI device 150 (M02) is long. Sometimes Wi-SUN may be selected.
  • the LDI device 160 when transmitting request data from the SDI device 120 to the MDI device 150, from the SDI device 120 to the LDI device 160, from the MDI device 150 to the MDI device 150, and from the LDI device 160 to the LDI device 160, multiple communication means can be used. In some cases, the communication means may be selected depending on the size or type of data. Further, the transmission source computing device may specify available communication means as a request condition. Similarly, the destination computing device may also specify available communication means as a condition of acceptance.
  • the DI engine may delete the request data from the built-in memory. For example, after receiving request data and executing a subtask, the DI engine deletes the request data from internal memory. Furthermore, when the DI engine receives request data and transfers the request data to another DI engine (such as the MDI device 150), the request data may also be deleted from the built-in memory.
  • MDI device 150 a vehicle equipped with a DI engine can be considered.
  • various computing devices installed in the coworking space may provide computing power to users (SDI devices 120) as MDI devices 150 or LDI devices 160. According to such a control method, users can rent not only communication functions and electricity but also computing functions in a coworking space.
  • the MDI device 150 etc. When the MDI device 150 etc. receives the request data, it may hold the request data without transferring it until the acceptance conditions are met. The MDI device 150 or the like may execute the subtask if the acceptance condition is satisfied before a predetermined time limit elapses, and transmit the request data to another MDI device 150 or the like when the time limit elapses.
  • Various task handlers such as image comparison, translation, and image search may be registered in advance as a library in the DI engine.
  • a task handler is identified by a handler ID.
  • the request data only needs to include a handler ID that specifies the task handler instead of the task handler (program).
  • the DI engine may execute the subtask by reading a task handler registered in advance based on the handler ID specified in the request data.

Abstract

This distributed processing system comprises an SDI device equipped with a sensor, and a plurality of MDI devices that are capable of communicating with each other. Data measured by the SDI device is sent to one of the MDI devices. If said MDI device is capable of executing a task corresponding to said data, said MDI device carries out processing itself; if necessary, the execution may also be left to another MDI device.

Description

分散処理システムdistributed processing system
 本発明は、複数の計算資源にタスクを分散するための技術、に関する。 The present invention relates to a technique for distributing tasks to multiple computing resources.
 AI(Artificial Intelligence)およびIoT(Internet of Things)関連技術の進展により、多種多様な電子装置が知能化され、ネットワーク化されつつある。電子装置の多くは、特定のソフトウェアを実行するために、CPU(Central Processing Unit)、メモリ、ソフトウェアなどの計算資源を有する。 With the advancement of AI (Artificial Intelligence) and IoT (Internet of Things) related technologies, a wide variety of electronic devices are becoming intelligent and becoming networked. Many electronic devices have computational resources such as a CPU (Central Processing Unit), memory, and software in order to execute specific software.
 電子装置は、計算処理の一部をクラウドに任せることもある。たとえば、顔認証システムでは、顔認証装置としての電子装置が顔画像を外部のサーバに送信し、サーバが顔認証処理を実行し、その実行結果を顔認証装置に返すこともある。 Electronic devices sometimes entrust part of the calculation processing to the cloud. For example, in a face authentication system, an electronic device serving as a face authentication device may transmit a facial image to an external server, the server may execute face authentication processing, and return the execution result to the face authentication device.
特許第6699653号公報Patent No. 6699653 特開2021-60742号公報JP2021-60742A
 さまざまな電子装置から発生する処理に対応する上では、今後、クラウド(データセンター)におけるサーバの増強と、電子装置の有する計算能力の強化が進んでいくと考えられる。 In order to handle the processing generated by various electronic devices, it is thought that the number of servers in clouds (data centers) and the computing power of electronic devices will increase in the future.
 しかし、サーバも含めた多くの電子装置の計算資源は、常時、使用されているわけではない。たとえば、自動車の稼働率は4(%)程度と言われており、自動車が搭載する高性能のCPUはほとんどの時間において遊休状態にある。 However, the computational resources of many electronic devices, including servers, are not always used. For example, the operating rate of an automobile is said to be about 4 (%), and the high-performance CPU installed in the automobile is in an idle state most of the time.
 本発明は、上記課題認識に基づいて完成された発明であり、その主たる目的は、既存の計算資源を有効活用することにより、さまざまな計算ニーズに効率的に対応するための技術、を提供することにある。 The present invention was completed based on the recognition of the above problem, and its main purpose is to provide a technology for efficiently responding to various computational needs by effectively utilizing existing computational resources. There is a particular thing.
 本発明のある態様における分散処理システムは、センサを搭載する第1計算装置と、相互に通信可能な複数の第2計算装置と、を備える。
 第1計算装置は、センサにより、外部からデータを取得するセンシング部と、取得されたデータを1以上の第2計算装置に送信するデータ送信部と、取得されたデータに対応する1以上のタスクの実行結果を受信する結果受信部と、1以上のタスクの実行結果を出力する出力部と、を含む。
 第2計算装置は、第1計算装置からデータを受信するデータ受信部と、受信されたデータを対象としてタスクを実行するタスク実行部と、受信されたデータとともに、タスクの実行を他の計算装置に依頼するタスク依頼部と、他の計算装置からタスクの実行結果を受信する結果受信部と、タスクの実行結果を他の計算装置に送信する結果送信部と、を含む。
A distributed processing system in an aspect of the present invention includes a first computing device equipped with a sensor and a plurality of second computing devices capable of communicating with each other.
The first computing device includes a sensing unit that acquires data from the outside using a sensor, a data transmitting unit that transmits the acquired data to one or more second computing devices, and one or more tasks corresponding to the acquired data. and an output unit that outputs the execution results of one or more tasks.
The second computing device includes a data receiving unit that receives data from the first computing device, a task execution unit that executes a task using the received data, and a task execution unit that executes the task together with the received data. A task requesting section that requests a task to be executed, a result receiving section that receives a task execution result from another computing device, and a result transmitting section that transmits the task execution result to the other computing device.
 本発明の別の態様における分散処理システムは、センサを搭載する第1計算装置と、相互に通信可能な複数の第2計算装置と、相互に通信可能な複数の第3計算装置と、を備える。
 第3計算装置の計算能力は、第2計算装置の計算能力よりも大きい。
 第1計算装置は、センサにより取得されたデータをいずれかの第2計算装置に送信する。第2計算装置は、受信されたデータを処理する1以上のタスクを特定し、特定したタスクまたは処理対象となるデータに基づいて、タスクの実行主体として第2計算装置または第3計算装置のいずれかを選択するとともに、特定したタスクを選択した計算装置に対して実行指示する。
A distributed processing system according to another aspect of the present invention includes a first computing device equipped with a sensor, a plurality of second computing devices capable of communicating with each other, and a plurality of third computing devices capable of communicating with each other. .
The computing power of the third computing device is greater than the computing capability of the second computing device.
The first computing device transmits data acquired by the sensor to any second computing device. The second computing device identifies one or more tasks that process the received data, and determines whether the second computing device or the third computing device is the main entity for executing the task based on the identified tasks or the data to be processed. At the same time, the computer instructs the selected computing device to execute the specified task.
 本発明の別の態様における分散処理システムは、相互に通信可能な複数種類の移動装置を含む。
 第1移動装置は、センサと、センサにより、外部からデータを取得するセンシング部と、取得されたデータを他の移動装置に送信するデータ送信部と、を含む。
 第2移動装置は、他の移動装置からデータを受信するデータ受信部と、他の移動装置から受信したデータに基づくタスクの実行可否を判定する実行判定部と、他の移動装置から受信したデータに基づくタスクを実行するタスク実行部と、他の移動装置から受信したデータを、更に、他の移動装置に送信するデータ送信部と、を含む。
 第2移動装置の実行判定部は、自装置が実行条件を満たすときにはタスク実行部にタスクの実行を指示し、実行条件が満たされないときには他の移動装置へのデータの送信を指示する。
A distributed processing system in another aspect of the invention includes multiple types of mobile devices that can communicate with each other.
The first mobile device includes a sensor, a sensing unit that acquires data from the outside using the sensor, and a data transmission unit that transmits the acquired data to another mobile device.
The second mobile device includes a data reception unit that receives data from another mobile device, an execution determination unit that determines whether or not a task can be executed based on the data received from the other mobile device, and a data receiving unit that receives data from the other mobile device. The mobile device further includes a task execution unit that executes a task based on the mobile device, and a data transmission unit that further transmits data received from another mobile device to the other mobile device.
The execution determination section of the second mobile device instructs the task execution section to execute the task when the second mobile device satisfies the execution condition, and instructs the second mobile device to transmit data to another mobile device when the execution condition is not satisfied.
 本発明の別の態様における分散処理システムは、相互に通信可能に構成される社会基盤設備として構成される装置であって、センサおよび出力装置の双方または一方とともにプロセッサを搭載する複数の計算装置を備える。
 計算装置は、ユーザが保有する携帯端末または他の計算装置から、データを受信するデータ受信部と、社会基盤設備としてのメインタスクと並行して、受信されたデータに対応するサブタスクを実行するタスク実行部と、受信されたデータに対応するサブタスクの実行を他の計算装置に依頼するタスク依頼部と、他の計算装置からサブタスクの実行結果を受信する結果受信部と、サブタスクの実行結果を携帯端末または他の計算装置に送信する結果送信部と、自装置におけるサブタスクの実行可否を判定する実行判定部と、を含む。
 実行判定部は、自装置がサブタスクの実行条件を満たすときにはタスク実行部にサブタスクの実行を指示し、実行条件が満たされないときには他の計算装置へのサブタスクの依頼をタスク依頼部に指示する。
A distributed processing system according to another aspect of the present invention is a device configured as social infrastructure equipment configured to be able to communicate with each other, and includes a plurality of computing devices equipped with a processor along with both or one of a sensor and an output device. Be prepared.
The computing device has a data receiving unit that receives data from a mobile terminal or other computing device owned by a user, and a task that executes subtasks corresponding to the received data in parallel with the main task as a social infrastructure facility. an execution unit, a task requesting unit that requests another computing device to execute a subtask corresponding to the received data, a result receiving unit that receives the execution result of the subtask from the other computing device, and a carrying unit that carries the execution result of the subtask. It includes a result transmitting unit that transmits to a terminal or other computing device, and an execution determining unit that determines whether or not the subtask can be executed in the own device.
The execution determining unit instructs the task execution unit to execute the subtask when the own device satisfies the execution conditions for the subtask, and instructs the task requesting unit to request the subtask to another computing device when the execution conditions are not satisfied.
 本発明によれば、さまざまな計算ニーズに効率的に対応しやすくなる。 According to the present invention, it becomes easier to efficiently respond to various computational needs.
タスク分配システムの概念図である。1 is a conceptual diagram of a task distribution system. 分散処理システムの概念図である。FIG. 1 is a conceptual diagram of a distributed processing system. タスクの依頼と実行の関係を示す概念図である。FIG. 2 is a conceptual diagram showing the relationship between requesting and executing tasks. 第1実施形態における分散処理システムの概念図である。FIG. 1 is a conceptual diagram of a distributed processing system in a first embodiment. SDI装置のハードウェア構成図である。FIG. 2 is a hardware configuration diagram of an SDI device. SDI装置の機能ブロック図である。FIG. 2 is a functional block diagram of an SDI device. MDI装置およびLDI装置の機能ブロック図である。FIG. 2 is a functional block diagram of an MDI device and an LDI device. 依頼条件情報のデータ構造図である。It is a data structure diagram of request condition information. 引受条件情報のデータ構造図である。It is a data structure diagram of underwriting condition information. サブタスクの振り分けの処理過程を示すフローチャートである。3 is a flowchart showing a processing process for allocating subtasks. MDI装置が他の装置から依頼データを受信したときの処理過程を示すフローチャートである。3 is a flowchart showing a processing process when an MDI device receives request data from another device. LDI装置が他の装置から依頼データを受信したときの処理過程を示すフローチャートである。3 is a flowchart showing a processing process when an LDI device receives request data from another device. 決済情報のデータ構造図である。It is a data structure diagram of payment information. 第2実施形態における分散処理システムの概念図である。FIG. 2 is a conceptual diagram of a distributed processing system in a second embodiment. ロボットの機能ブロック図である。It is a functional block diagram of a robot. サービス定義情報のデータ構造図である。FIG. 3 is a data structure diagram of service definition information. ロボットが依頼データを受信したときの処理過程を示すフローチャートである。It is a flowchart showing a processing process when a robot receives request data. ロボットがサービス指示情報を受信したときの処理過程を示すフローチャートである。It is a flowchart which shows the processing process when a robot receives service instruction information. 第3実施形態における分散処理システムの概念図である。FIG. 3 is a conceptual diagram of a distributed processing system in a third embodiment. 監視カメラの機能ブロック図である。FIG. 2 is a functional block diagram of a surveillance camera. MDI装置が依頼データを受信したときの処理過程を示すフローチャートである。3 is a flowchart showing a processing process when the MDI device receives request data. LDI装置からのサブタスクの分散方法を説明するための模式図である。FIG. 2 is a schematic diagram for explaining a method of distributing subtasks from an LDI device. 変形例において、サブタスクの実行可否の判定方法を説明するための模式図である。FIG. 7 is a schematic diagram for explaining a method of determining whether a subtask can be executed in a modified example.
 図1は、タスク分配システム201の概念図である。
 サーバは、多数のクライアント端末からさまざまな処理依頼を受け付ける。本実施形態においては、サーバは、クライアント端末から、顔画像(以下、「検証画像」とよぶ)と、この顔画像と比較すべき顔画像(以下、「参照画像」とよぶ)を受信する。クライアント端末は、監視カメラから得られた検証画像(顔画像)と、あらかじめ登録されている参照画像を比較して、参照画像に示される人物と、検証画像に示される人物が同一人物であるか否かを判断するタスクをサーバに依頼する。
FIG. 1 is a conceptual diagram of a task distribution system 201.
The server receives various processing requests from a large number of client terminals. In this embodiment, the server receives a face image (hereinafter referred to as a "verification image") and a face image to be compared with this face image (hereinafter referred to as a "reference image") from a client terminal. The client terminal compares the verification image (face image) obtained from the surveillance camera with a pre-registered reference image and determines whether the person shown in the reference image and the person shown in the verification image are the same person. Requests the server the task of determining whether or not the
 サーバは、参照画像および検証画像を含むデータセットを、タスク分配装置101に送信する。タスク分配装置101は、複数の電子装置Em(m:自然数)と通信可能である。ここでいう電子装置は、EV(Electric Vehicle)などの自動車、スマートフォン、PC(Personal Computer)、他のサーバ、二次電池などであり、CPUあるいはGPU(Graphics Processing Unit)などの演算機能を有するプロセッサ、記憶機能を有するメモリ、通信機能を有する装置であればよい。このように本実施形態においては、記憶機能、通信機能および演算機能のことをまとめて「計算資源」とよぶ。 The server sends a dataset including the reference image and the verification image to the task distribution device 101. The task distribution device 101 is capable of communicating with a plurality of electronic devices Em (m: natural number). Electronic devices here include cars such as EVs (Electric Vehicles), smartphones, PCs (Personal Computers), other servers, secondary batteries, etc., and processors with arithmetic functions such as CPUs or GPUs (Graphics Processing Units). , a memory with a storage function, and a device with a communication function. As described above, in this embodiment, the storage function, communication function, and calculation function are collectively referred to as "computing resources."
 本実施形態における電子装置は「DI(Digital Intelligence)エンジン」を搭載する。DIエンジンは、通信機能と演算機能を備えるIC(Integrated Circuit)チップおよび軽量のソフトウェアとして構成されてもよいし、電子装置のプロセッサにおいて実行される専用ソフトウェアとして構成されてもよい。 The electronic device in this embodiment is equipped with a "DI (Digital Intelligence) engine." The DI engine may be configured as an IC (Integrated Circuit) chip with communication and calculation functions and lightweight software, or may be configured as dedicated software executed in a processor of an electronic device.
 なお、本実施形態においては、CPUなどの計算資源を備える二次電池も、タスク分配装置101とアクセスする電子装置として想定しているが、詳細については後述する。 Note that in this embodiment, a secondary battery equipped with calculation resources such as a CPU is also assumed as an electronic device that accesses the task distribution device 101, but details will be described later.
 電子装置は、既存の装置であり、特定目的の処理を行う。たとえば、EVの計算資源は、EVの運行のために必要な計算を行うためのソフトウェアを実行する。タスク分配装置101は、このような既存の電子装置の計算資源を借用することにより、サーバにおいて発生するタスクを電子装置に代理実行させる。 An electronic device is an existing device that performs processing for a specific purpose. For example, the EV's computational resources run software to perform the calculations necessary for the operation of the EV. The task distribution device 101 allows the electronic device to execute tasks generated in the server on behalf of the electronic device by borrowing the computational resources of such an existing electronic device.
 タスク分配装置101は、サーバにおいてタスクが発生したとき、あるいは、定期的に、各電子装置に負荷確認要求を送信する。タスク分配装置101は、負荷確認要求をマルチキャストしてもよい。本実施形態における電子装置は、有限数のスレッド(thread)を実行可能であるとする。電子装置のDIエンジンは、負荷確認要求を受信したとき、電子装置の空きスレッド、いいかえれば、計算余力をタスク分配装置101に返信する。たとえば、電子装置E1は10本のスレッドを同時実行可能であり、すでに3本のスレッド(タスク)が動いているときには、空きスレッド(新たなタスクのために割当可能なスレッド)が7本であることをタスク分配装置100に通知する。電子装置E2は30本のスレッドを同時実行可能であり、すでに17本のスレッドが動いているときには、空きスレッドは13本(=30-17)であることをタスク分配装置101に通知する。 The task distribution device 101 sends a load confirmation request to each electronic device when a task occurs in the server or periodically. The task distribution device 101 may multicast the load confirmation request. It is assumed that the electronic device in this embodiment can execute a finite number of threads. When the DI engine of the electronic device receives the load confirmation request, the DI engine of the electronic device returns the available threads of the electronic device, or in other words, the remaining calculation capacity, to the task distribution device 101. For example, the electronic device E1 can execute 10 threads simultaneously, and when 3 threads (tasks) are already running, there are 7 free threads (threads that can be allocated for new tasks). This is notified to the task distribution device 100. The electronic device E2 can execute 30 threads simultaneously, and when 17 threads are already running, it notifies the task distribution device 101 that there are 13 free threads (=30-17).
 タスク分配装置101は、負荷確認要求に返信してきた電子装置それぞれについての空きスレッド数を「負荷情報」として登録する。タスク分配装置101は、負荷情報を参照し、空きスレッド数のもっとも多い電子装置、いいかえれば、計算余力がもっとも大きい電子装置に対して、参照画像および検証画像を含むデータセットを送信することによりタスクを依頼する。 The task distribution device 101 registers the number of free threads for each electronic device that has responded to the load confirmation request as "load information." The task distribution device 101 refers to the load information and assigns a task to the electronic device with the largest number of free threads, in other words, the electronic device with the largest computational capacity by transmitting a data set including a reference image and a verification image. request.
 電子装置はタスクの代理実行依頼に応えるために予備のスレッドを保有してもよい。この場合、すべての電子装置が多くのスレッドをすでに使用している状況においても、起点装置において発生するタスクをより確実に他の電子装置に依頼しやすくなる。たとえば、電子装置Exは、12スレッドを実行可能であるが、自身の処理のためには10スレッドまでしか使用しない。電子装置Exが3スレッドを使用しているときにはタスク分配装置101に対しては空きスレッドは9(=12-3)と報告する。一方、電子装置Exが最大の10スレッドを使用しているときでも、予備の2スレッドは使用可能である。このため、電子装置Exが自身のための上限である10スレッドを使い果たしているときでも、なお、タスク分配装置101からのタスクの処理依頼に応える余力を残しておくことができる。 The electronic device may maintain a spare thread in order to respond to requests for proxy execution of tasks. In this case, even in a situation where all the electronic devices are already using a large number of threads, it becomes easier to more reliably request other electronic devices to perform tasks that occur in the originating device. For example, electronic device Ex is capable of executing 12 threads, but uses only up to 10 threads for its own processing. When the electronic device Ex uses three threads, it reports to the task distribution device 101 that the number of free threads is 9 (=12-3). On the other hand, even when the electronic device Ex is using the maximum ten threads, two spare threads can be used. Therefore, even when the electronic device Ex has used up its own upper limit of 10 threads, it can still have some remaining capacity to respond to task processing requests from the task distribution device 101.
 電子装置には、あらかじめ、2種類の画像の類似度を判定するためのプログラム(以下、「類似判定プログラム」とよぶ)が登録されている。タスクの依頼を受けた電子装置のDIエンジンは、類似判定プログラムをロードし、参照画像および検証画像の類似度を判定させる。DIエンジンは、処理完了後、処理結果としての類似度をタスク分配装置100に通知する。タスク分配装置101は、類似度をサーバに返信し、サーバは類似度をクライアント端末に返信する。 A program for determining the degree of similarity between two types of images (hereinafter referred to as a "similarity determination program") is registered in advance in the electronic device. The DI engine of the electronic device that receives the task loads a similarity determination program and causes the similarity between the reference image and the verification image to be determined. After completing the processing, the DI engine notifies the task distribution device 100 of the degree of similarity as a processing result. The task distribution device 101 returns the degree of similarity to the server, and the server returns the degree of similarity to the client terminal.
 本実施形態によれば、既存の電子装置群が、いわば即席のデータセンターとなる。タスク分配装置101は、サーバにおいてタスクが発生したときには、複数の電子装置からタスクの依頼先を選ぶことで、遊休の計算資源を活用できる。 According to this embodiment, a group of existing electronic devices becomes, so to speak, an instant data center. When a task occurs in a server, the task distribution device 101 can utilize idle computing resources by selecting a task requestee from among a plurality of electronic devices.
 以下、図1に示したサーバのようにタスクの依頼元となる装置のことを「起点装置」とよぶ。起点装置はサーバに限られない。スマートフォンやPCなど他の電子装置が起点装置となってもよい。起点装置は、タスクが発生したときにはタスク分配装置101に依頼し、タスク分配装置101は複数の電子装置から依頼先となる電子装置を選んでタスクを実行させる。なお、本実施形態においては、起点装置とタスク分配装置101は別々の装置であるとして説明するが、起点装置がタスク分配装置101の機能(以下、「タスク分配機能」とよぶ)を備えてもよい。 Hereinafter, a device that requests a task, such as the server shown in FIG. 1, will be referred to as a "starting point device." The starting point device is not limited to a server. Other electronic devices such as a smartphone or a PC may serve as the starting point device. When a task occurs, the originating device requests the task distribution device 101, and the task distribution device 101 selects an electronic device from among a plurality of electronic devices to execute the task. In this embodiment, the origin device and the task distribution device 101 are described as separate devices, but even if the origin device has the function of the task distribution device 101 (hereinafter referred to as "task distribution function"), good.
 電子装置には、あらかじめ複数種類のタスクに対応する複数種類のプログラムが登録されてもよい。各プログラム(以下、「タスクハンドラ」とよぶ)は、ハンドルIDにより識別される。起点装置は、タスクハンドラの変数となるデータのみを有するとしてもよい。ここでいう変数とは、画像、音声、数値など任意のデータであればよい。 Multiple types of programs corresponding to multiple types of tasks may be registered in advance in the electronic device. Each program (hereinafter referred to as a "task handler") is identified by a handle ID. The origin device may have only data that becomes a variable for the task handler. The variable here may be any data such as images, sounds, and numerical values.
 たとえば、変数X1に基づいてタスクAを実行させたいとき、起点装置はタスク分配装置101に対してタスクAのハンドルIDと変数X1を渡す。タスク分配装置101は、依頼先となる電子装置を選んでハンドルIDと変数X1を渡す。依頼先となった電子装置のDIエンジンは、指定されたハンドルIDにしたがってタスクAに対応するタスクハンドラHAを起動するとともに変数X1を設定することで、タスクハンドラHAにタスクAを実行させる。 For example, when it is desired to execute task A based on variable X1, the origin device passes the handle ID of task A and variable X1 to the task distribution device 101. The task distribution device 101 selects an electronic device as a request destination and passes the handle ID and variable X1. The DI engine of the requested electronic device starts the task handler HA corresponding to the task A according to the specified handle ID and sets the variable X1, thereby causing the task handler HA to execute the task A.
 自動車の駐車場では、多くの自動車の計算資源が遊休状態にある。このため、駐車場に起点装置とタスク分配装置101を持ち込めば、多くの自動車の計算資源をつかって効率的に大量のタスクを処理できる。したがって、駐車場は大規模なデータセンターになる可能性がある。 In car parking lots, many car computing resources are idle. Therefore, by bringing the starting point device and the task distribution device 101 into the parking lot, it is possible to efficiently process a large number of tasks using the computational resources of many cars. Therefore, parking lots can become large-scale data centers.
 今後、CPUなどの計算資源を搭載する二次電池が増えていくと考えられる。たとえば、BMS(Battery Management System)は、二次電池のセル電圧、温度などを計測し、二次電池の充電時における電圧・電流を制御する。BMSの処理結果に基づいて、二次電池の劣化度の測定あるいは推定、異常診断などより高度な機能が二次電池に求められる可能性がある。あるいは、エッジAIとして機能する電子装置に対して二次電池が標準搭載される可能性もある。このように、二次電池が高度な計算資源を備えてインテリジェント化していけば、二次電池自体もタスクの依頼先となることができる。 In the future, it is thought that the number of secondary batteries equipped with computing resources such as CPUs will increase. For example, a BMS (Battery Management System) measures the cell voltage, temperature, etc. of a secondary battery, and controls the voltage and current when charging the secondary battery. Based on the processing results of the BMS, the secondary battery may be required to have more advanced functions such as measuring or estimating the degree of deterioration of the secondary battery and diagnosing abnormalities. Alternatively, a secondary battery may be installed as standard in electronic devices that function as edge AI. In this way, if secondary batteries become intelligent by being equipped with advanced computational resources, the secondary batteries themselves can also be requested for tasks.
 タスク分配装置101は、定期的に、負荷確認要求を近隣の電子装置に送信し、電子装置とその負荷情報を対応づける負荷情報を更新してもよい。より具体的には、タスク分配装置101は、電子装置のID、アドレス、確認時刻、確認から返答までに要した通信時間、空きスレッド数を負荷情報として登録・更新する。 The task distribution device 101 may periodically transmit load confirmation requests to nearby electronic devices and update load information that associates electronic devices with their load information. More specifically, the task distribution device 101 registers and updates the electronic device ID, address, confirmation time, communication time required from confirmation to response, and number of free threads as load information.
 タスク分配装置101は、タスクの依頼先を選ぶとき、負荷状況だけではなく通信時間も考慮してもよい。ここでいう通信時間とは、タスク分配装置101が負荷確認要求を送信したあと、電子装置から応答を受けるまでの時間である。たとえば、通信時間が短いほど大きくなるように設定された変数V1と、空きスレッド数を示す変数V2の双方に対して単調増加となる任意の評価関数に基づいて、各電子装置の評価値を算出する。タスク分配装置101は、こうして算出された評価値がもっとも大きい電子装置をタスクの依頼先として選んでもよい。 When selecting a task request destination, the task distribution device 101 may consider not only the load situation but also the communication time. The communication time here is the time from when the task distribution device 101 sends a load confirmation request until it receives a response from the electronic device. For example, the evaluation value of each electronic device is calculated based on an arbitrary evaluation function that monotonically increases for both variable V1, which is set to increase as the communication time becomes shorter, and variable V2, which indicates the number of free threads. do. The task distribution device 101 may select the electronic device with the largest evaluation value thus calculated as the task request destination.
 タスク分配装置101は、負荷確認要求に返信しなかった電子装置、あるいは、通信時間が所定時間以上かかった電子装置は依頼先から除外するとしてもよい。依頼先が見つからないときには、タスク分配装置101自身がタスクを実行するとしてもよい。 The task distribution device 101 may exclude from request destinations electronic devices that have not responded to the load confirmation request or whose communication time has exceeded a predetermined time. When a request destination is not found, the task distribution device 101 itself may execute the task.
 タスク分配装置101は、タスク分配装置101と有線接続されている電子装置、あるいは、タスク分配装置101とWi-Fi、Li-Fi、Bluetooth(登録商標)などの近距離無線通信可能な電子装置に対して優先的にタスクを依頼してもよい。 The task distribution device 101 is an electronic device connected to the task distribution device 101 by wire, or an electronic device capable of short-range wireless communication with the task distribution device 101, such as Wi-Fi, Li-Fi, or Bluetooth (registered trademark). You may request tasks on a priority basis.
 タスク分配装置101は、複数のタスクを依頼するときには、少数の電子装置に依頼を集中させてもよい。たとえば、電子装置E3の空きスレッド数が5、電子装置E4の空きスレッド数が3であって、依頼したいタスクが3つのときには、タスク分配装置101は計算余力がより大きい電子装置E3に3つのタスクをまとめて依頼してもよい。まとめて依頼することでタスク分配装置101の電子装置に対する管理負担を軽減できる。 When requesting multiple tasks, the task distribution device 101 may concentrate the requests on a small number of electronic devices. For example, when the number of free threads in the electronic device E3 is 5 and the number of free threads in the electronic device E4 is 3, and the number of tasks to be requested is three, the task distribution device 101 transfers the three tasks to the electronic device E3, which has a larger remaining calculation capacity. You may request them all at once. By making requests all at once, the administrative burden on the electronic devices of the task distribution device 101 can be reduced.
 あるいは、タスク分配装置101は、複数のタスクがなるべく多くの電子装置に分散されるように依頼先を決めてもよい。 Alternatively, the task distribution device 101 may decide the request recipients so that the multiple tasks are distributed to as many electronic devices as possible.
 タスク分配システム201によれば、既存の電子装置が有する遊休状態にある計算資源を効率的に活用できる。 According to the task distribution system 201, idle computational resources of existing electronic devices can be efficiently utilized.
 タスク分配装置101は、空きスレッド数以外の情報に基づいて、電子装置の負荷を判定してもよい。たとえば、タスク分配装置101は、CPUの稼働率、メモリの占有率、CPUの温度などを負荷情報として登録してもよい。 The task distribution device 101 may determine the load on the electronic device based on information other than the number of free threads. For example, the task distribution device 101 may register CPU utilization rate, memory occupancy rate, CPU temperature, etc. as load information.
 タスク分配装置101は、電子装置のCPUの性能の高さ、空きスレッド数、CPU稼働率の低さ、メモリ占有率の低さ、CPUの温度の低さなど、多数の変数を有する評価関数に基づいて、タスクの依頼先となる電子装置を選んでもよい。 The task distribution device 101 uses an evaluation function that has many variables, such as the high performance of the CPU of the electronic device, the number of free threads, the low CPU utilization rate, the low memory occupancy rate, and the low temperature of the CPU. Based on this, the electronic device to which the task is requested may be selected.
 起点装置またはタスク分配装置101がタスクハンドラ(プログラム)を備えてもよい。たとえば、起点装置においてタスクAを変数X1に基づいて処理するニーズが発生したとする。このとき、起点装置は、変数X1およびタスクAに対応するタスクハンドラHA(プログラム)をタスク分配装置101に送信する。タスク分配装置101は、タスクハンドラHAと変数X1を依頼先の電子装置に送信する。電子装置のDIエンジンは、タスク分配装置101から受信したタスクハンドラHAにより変数X1に基づくタスクAを実行してもよい。 The starting point device or the task distribution device 101 may include a task handler (program). For example, suppose that a need arises in the originating device to process task A based on variable X1. At this time, the origin device transmits the variable X1 and the task handler HA (program) corresponding to task A to the task distribution device 101. The task distribution device 101 transmits the task handler HA and the variable X1 to the requested electronic device. The DI engine of the electronic device may execute the task A based on the variable X1 using the task handler HA received from the task distribution device 101.
 電子装置のDIエンジンは、タスク分配装置101から受信したタスクハンドラHAおよび変数X1をタスクAの実行後にメモリから削除してもよい。あるいは、近い将来に別の変数にてタスクAが再依頼される可能性に備えて、タスクAが完了してから所定時間が経過するまでタスクハンドラHAをメモリに残してもよい。 The DI engine of the electronic device may delete the task handler HA and variable X1 received from the task distribution device 101 from the memory after executing task A. Alternatively, the task handler HA may be left in memory until a predetermined period of time has elapsed after task A is completed, in preparation for the possibility that task A will be re-requested with another variable in the near future.
 タスク分配装置101は、電子装置にタスクを依頼し、依頼された電子装置は更に別の電子装置にタスクを依頼してもよい。一例として、タスク分配装置101は電子装置E5と近距離無線通信により接続されているが、電子装置E6とは接続されていないとする。一方、電子装置E5は電子装置E6と有線接続されているとする。 The task distribution device 101 may request a task to an electronic device, and the requested electronic device may further request a task to another electronic device. As an example, it is assumed that the task distribution device 101 is connected to the electronic device E5 by short-range wireless communication, but is not connected to the electronic device E6. On the other hand, it is assumed that the electronic device E5 is connected to the electronic device E6 by wire.
 タスク分配装置101は、5つのタスクを電子装置E5に依頼したとする。このとき、電子装置E5は電子装置E6に負荷確認情報を送信し、電子装置E6の計算資源に充分な余力があるか確認する。電子装置E6に計算余力があるときには、電子装置E5は依頼された5つのタスクの全部または一部を電子装置E6に依頼する。電子装置E6はタスクの実行結果を電子装置E5に返信する。電子装置E5は、自らが実行したタスクの実行結果と、電子装置E6から受け取ったタスクの実行結果をまとめてタスク分配装置101に返信する。 Assume that the task distribution device 101 requests five tasks to the electronic device E5. At this time, the electronic device E5 transmits load confirmation information to the electronic device E6 to check whether there is sufficient remaining capacity in the computing resources of the electronic device E6. When the electronic device E6 has calculation capacity, the electronic device E5 requests the electronic device E6 to perform all or part of the five requested tasks. Electronic device E6 returns the task execution result to electronic device E5. The electronic device E5 sends back to the task distribution device 101 the results of the tasks executed by itself and the results of the tasks received from the electronic device E6.
 電子装置が二次電池であるとき、あるいは、二次電池を搭載するとき、タスク分配装置101はSOC(State of Charge)が低い電子装置を依頼先から排除するとしてもよい。SOC、すなわち、二次電池の充電率が低い電子装置は、タスクを実行する上で充分な電力を確保できない可能性があるためである。 When the electronic device is a secondary battery or is equipped with a secondary battery, the task distribution device 101 may exclude electronic devices with a low SOC (State of Charge) from the request destinations. This is because an electronic device with a low SOC, that is, a low charging rate of a secondary battery, may not be able to secure sufficient power to execute a task.
 タスク分配装置101は、タスクの依頼先として、以前に依頼したことのある電子装置を優先的に選択するとしてもよい。また、タスクの依頼先に関する依頼条件が設定されてもよい。たとえば、ユーザAの有する電子装置であること、CPUのクロック数が所定閾値以上であること、などの依頼条件が考えられる。 The task distribution device 101 may preferentially select electronic devices to which it has previously requested tasks. Further, request conditions regarding the task request destination may be set. For example, possible request conditions include that the electronic device is owned by user A and that the CPU clock rate is equal to or higher than a predetermined threshold.
 タスク分配装置101は、タスクの実行依頼をしてから所定時間以上が経過したときには、別の電子装置に同一のタスクの実行を追加依頼してもよい。この場合、先に依頼した電子装置に対しては依頼のキャンセルを行ってもよい。 The task distribution device 101 may additionally request another electronic device to execute the same task when a predetermined period of time or more has elapsed since requesting execution of the task. In this case, the request may be canceled for the electronic device that made the request earlier.
 タスク分配装置101は、スマートフォン、EVなどの移動型の電子装置よりも、固定型サーバ、デスクトップPCなど移動しない電子装置に対して優先的にタスクを依頼するとしてもよい。また、救急車や医療装置など、重要装置へのタスク依頼は優先度を低くするとしてもよい。 The task distribution device 101 may preferentially request tasks to electronic devices that do not move, such as fixed servers and desktop PCs, rather than mobile electronic devices such as smartphones and EVs. Further, task requests to important devices such as ambulances and medical devices may be given low priority.
 タスク分配装置101は、クリーンエネルギーによって充電・給電された電子装置を優先的に選択してもよい。このような制御方法によれば、タスク分配システム201は二酸化炭素排出の抑制にも寄与する。 The task distribution device 101 may preferentially select electronic devices that are charged and powered by clean energy. According to such a control method, the task distribution system 201 also contributes to suppressing carbon dioxide emissions.
 電子装置のDIエンジンには、タスクの実行を引き受けるための引受条件が設定されてもよい。たとえば、特定の起点装置からの依頼のみ受け付ける、空きスレッドが10以上のときでなければ依頼を受け付けない、などの引受条件が考えられる。 The DI engine of the electronic device may be set with acceptance conditions for accepting the execution of the task. For example, acceptance conditions may be such as accepting only requests from a specific originating device, or accepting requests only when there are 10 or more free threads.
 タスクの依頼によって対価を発生させてもよい。たとえば、ユーザAのPC1が起点装置となり、ユーザBのPC2にタスクが依頼されたとき、M(円)の料金が発生するとする。1ヶ月あたりのPC1からPC2へのタスクの依頼回数がK(回)であれば、ユーザAはユーザBからM×K(円)を請求される。一方、ユーザBからユーザAに対してタスクの依頼もなされているときには、双方の請求額の差額分を決済してもよい。タスク分配装置101は、このような決済機能を備えてもよい。 Compensation may be generated by requesting a task. For example, suppose that when user A's PC1 becomes the starting device and a task is requested to user B's PC2, a fee of M (yen) is incurred. If the number of times PC1 requests a task to PC2 per month is K (times), user A is charged M×K (yen) by user B. On the other hand, when user B has also requested a task to user A, the difference between the amounts billed by both parties may be settled. The task distribution device 101 may include such a payment function.
 特に、電子装置が二次電池であるときには、二次電池同士が繋がることで、二次電池を含むタスク分配システム201全体としての最適化が実現される。 In particular, when the electronic device is a secondary battery, by connecting the secondary batteries, optimization of the entire task distribution system 201 including the secondary battery is realized.
 以下においては、1つの計算装置から他の計算装置にタスクを依頼することで、タスクを分散処理する仕組みについて、より具体的に説明する。 In the following, a mechanism for distributing tasks by requesting tasks from one computing device to another computing device will be explained in more detail.
 図2は、分散処理システム100の概念図である。
 分散処理システム100は、SDI(Small Digital Intelligence)、MDI(Middle Digital Intelligence)およびLDI(Large Digital Intelligence)という3層にて構成される。なお、分散処理システム100はSDIおよびMDIの2層構成であってもよいが、以下においては3層構成を前提として説明する。
FIG. 2 is a conceptual diagram of the distributed processing system 100.
The distributed processing system 100 is composed of three layers: SDI (Small Digital Intelligence), MDI (Middle Digital Intelligence), and LDI (Large Digital Intelligence). Although the distributed processing system 100 may have a two-layer configuration of SDI and MDI, the following explanation will be based on a three-layer configuration.
 SDIは、上述した起点装置である。SDIは、ユーザインタフェース機能およびセンサ機能の双方または一方を備えることにより、ユーザまたは環境との接点となる装置である。このSDIにおいてタスク、すなわち、処理すべき仕事が発生する。タスクとしては、たとえば、画像認識、音声認識、データ検索、翻訳等のさまざまな仕事が考えられる。以下、SDIとして機能する装置のことを「SDI装置」ともよぶ。SDI装置は、DIエンジンを搭載する。SDI装置(第1計算装置)としては、具体的には、スマートフォン、スマートウォッチなどのウェアラブル端末、センサなどが想定される。なお、ここでいうセンサは、画像を撮像するカメラも含む。 The SDI is the originating device mentioned above. An SDI is a device that provides a user interface function and/or a sensor function, thereby providing a point of contact with the user or the environment. A task, that is, a work to be processed, occurs in this SDI. Various tasks can be considered, such as image recognition, voice recognition, data search, and translation. Hereinafter, a device that functions as an SDI will also be referred to as an "SDI device." The SDI device is equipped with a DI engine. Specifically, the SDI device (first computing device) is assumed to be a smartphone, a wearable terminal such as a smart watch, a sensor, or the like. Note that the sensor here also includes a camera that captures an image.
 MDIは、複数の計算資源の集合体である。MDIを構成する装置(以下、「MDI装置」ともよぶ)は、スマートフォン、自動車、監視カメラ、ラップトップPCなど、通信機能と計算機能を備える任意の計算資源であればよい。MDI装置(第2計算装置)も、DIエンジンを搭載する。 MDI is a collection of multiple computational resources. The device constituting the MDI (hereinafter also referred to as "MDI device") may be any computational resource that has a communication function and a calculation function, such as a smartphone, a car, a surveillance camera, or a laptop PC. The MDI device (second computing device) is also equipped with a DI engine.
 LDIも、複数の計算資源の集合体である。LDIを構成する装置(以下、「LDI装置」ともよぶ)は、通信機能と計算機能を備える任意の装置であればよい。LDI装置(第3計算装置)はMDIに比べて計算能力の高い装置である。LDI装置も、DIエンジンを搭載する。ここでいう「計算能力」とは、MIPS(Million Instructions Per Second)あるいはFLOPS(FLoating-point Operations Per Second)などのプロセッサの単位時間あたりの処理能力を示す指標であってもよいし、搭載されるコア数、同時実行可能なスレッド数として定義されてもよい。 LDI is also a collection of multiple computational resources. The device constituting the LDI (hereinafter also referred to as "LDI device") may be any device that has a communication function and a calculation function. The LDI device (third computing device) is a device with higher computing power than the MDI. The LDI device is also equipped with a DI engine. "Computing capacity" here may be an index indicating the processing capacity per unit time of a processor such as MIPS (Million Instructions Per Second) or FLOPS (FLOating-point Operations Per Second), It may be defined as the number of cores or the number of threads that can be executed simultaneously.
 本実施形態におけるDIエンジンは、各計算装置において実行される常駐型のソフトウェアであるとする。DIエンジンは独自のプロセスを有するとともに、所定サイズのメモリ空間(以下、「DI空間」とよぶ)を確保する。DIエンジン(DIプロセス)は必要に応じてスレッドを生成し、SDI装置から依頼されるタスクを、DI空間を使って実行する。DI空間には、DIエンジン以外のプロセスはアクセスできない。また、DIエンジンもDI空間以外のメモリ空間にはアクセスしない。このため、DIエンジンを搭載する計算装置は、DIエンジンにプロセッサ等の計算資源の一部を提供するものの、DIエンジンの処理に干渉することもなく、DIエンジンから本来の処理に干渉されることもない。 The DI engine in this embodiment is assumed to be resident software executed on each computing device. The DI engine has its own process and secures a memory space of a predetermined size (hereinafter referred to as "DI space"). The DI engine (DI process) generates threads as needed, and uses the DI space to execute tasks requested by the SDI device. Processes other than the DI engine cannot access the DI space. Further, the DI engine also does not access memory spaces other than the DI space. Therefore, although a computing device equipped with a DI engine provides some computational resources such as a processor to the DI engine, it does not interfere with the processing of the DI engine, and the DI engine does not interfere with the original processing. Nor.
 DIエンジンは、各計算装置のOS(Operating System)の上で実行される軽量のプログラムとして構成されてもよい。あるいは、DIエンジンは、OSに依拠するのではなく、計算装置のファームウェア(Firmware)として構成されてもよい。 The DI engine may be configured as a lightweight program that is executed on the OS (Operating System) of each computing device. Alternatively, the DI engine may be configured as firmware of the computing device rather than relying on the OS.
 MDI装置とLDI装置は(以下、まとめていうときには「MDI装置等」あるいは「計算装置」と表記する)、SDI装置からタスクを依頼されたときには、装置本来のタスク(以下、「メインタスク」とよぶ)を実行しつつ、依頼されたタスク(以下、「サブタスク」とよぶ)をDIエンジンにて並列実行する。以下、単にタスクというときには、サブタスクを意味するものとする。 When MDI devices and LDI devices (hereinafter collectively referred to as ``MDI devices, etc.'' or ``computing devices'') are requested to perform a task by an SDI device, they perform the device's original task (hereinafter referred to as ``main task''). ), the requested task (hereinafter referred to as a "subtask") is executed in parallel by the DI engine. Hereinafter, when we simply refer to a task, we mean a subtask.
 実行すべきサブタスクが発生したとき、SDI装置は、MDI装置にサブタスクの実行を依頼する。いずれかのMDI装置がサブタスクを実行し、実行結果をSDI装置に返すことでサブタスクは完了する。また、サブタスクによっては、MDIではなくLDIで実行されることもある。この場合には、いずれかのLDI装置がサブタスクを実行し、実行結果をSDI装置に返す。MDIおよびLDIは、いわば、SDIに対してSaaS(Software as a Service)あるいはPaaS(Platform as a Service)としての機能を提供する。 When a subtask to be executed occurs, the SDI device requests the MDI device to execute the subtask. The subtask is completed when one of the MDI devices executes the subtask and returns the execution result to the SDI device. Further, some subtasks may be executed in LDI instead of MDI. In this case, one of the LDI devices executes the subtask and returns the execution result to the SDI device. MDI and LDI provide, so to speak, a function as SaaS (Software as a Service) or PaaS (Platform as a Service) to SDI.
 サブタスクにはMDIで実行されるべきものと、LDIで実行されるべきものがある。サブタスクの種別によって、MDIまたはLDIのどちらで実行されるべきかが決まる。画像の類似性を認識する処理など比較的処理負荷の大きなサブタスクはLDIで実行されるとしてもよいし、画像から所定領域を抽出する処理など比較的負荷の小さなサブタスクはMDIで実行されてもよい。サブタスクごとにMDI用またはLDI用のいずれであるかがあらかじめ設定されている。上述したように、「サブタスク(仕事)を実行するプログラム」のことを「タスクハンドラ」とよぶ。以下において、「サブタスクの実行」とは、「サブタスクに対応するタスクハンドラの実行」を意味する。 There are subtasks that should be executed in MDI and others that should be executed in LDI. The type of subtask determines whether it should be executed in MDI or LDI. Subtasks with a relatively large processing load, such as processing to recognize similarity between images, may be executed by LDI, and subtasks, which have a relatively small load, such as processing to extract a predetermined region from an image, may be executed by MDI. . It is set in advance whether each subtask is for MDI or LDI. As mentioned above, a "program that executes a subtask (work)" is called a "task handler." In the following, "execution of a subtask" means "execution of a task handler corresponding to a subtask."
 SDI、MDIおよびLDIは、いずれも決済装置102と接続される。決済装置102に含まれる決済部(図示せず)は、SDI装置から依頼されたサブタスクがいずれかの計算装置により実行されたとき、サブタスクを実行した計算装置のユーザ(実行者)に対するSDI装置のユーザ(依頼者)からの報酬の支払いを実行する(後述)。なお、分散処理システム100において、決済装置102は必須構成ではない。 The SDI, MDI, and LDI are all connected to the payment device 102. When a subtask requested by the SDI device is executed by any computing device, a settlement unit (not shown) included in the settlement device 102 sends the SDI device to the user (executor) of the computing device that executed the subtask. Payment of remuneration from the user (requester) is executed (described later). Note that in the distributed processing system 100, the payment device 102 is not an essential component.
 図3は、タスクの依頼と実行の関係を示す概念図である。
 SDI装置(S01)において、データD1を処理すべきサブタスクが発生したとする。このとき、SDI装置は、SDI装置を識別するSDIID=S01、処理対象となるデータ(D1)、サブタスクに対応するタスクハンドラおよび依頼条件を含む「依頼データ」をMDI装置(M01)に送信する。ここでいうM01とは、MDI装置を識別するMDIIDである。依頼条件とは、サブタスクの実行主体に求められる性能等を示す情報であるが、詳細は後述する。なお、LDI装置は、LDIIDにより識別される。
FIG. 3 is a conceptual diagram showing the relationship between requesting and executing tasks.
Assume that a subtask to process data D1 occurs in the SDI device (S01). At this time, the SDI device transmits "request data" including SDIID=S01 that identifies the SDI device, data to be processed (D1), a task handler corresponding to the subtask, and request conditions to the MDI device (M01). M01 here is an MDI ID that identifies an MDI device. The request condition is information indicating the performance required of the subtask execution entity, and the details will be described later. Note that the LDI device is identified by the LDI ID.
 MDI装置(M01)は、依頼データを受信し、サブタスクを自装置にて実行可能か否か判定する。具体的な判定方法については後述する。図3では、MDI装置(M01)は、サブタスクを引き受けられないと判断している。このとき、MDI装置(M01)は、MDIID=M01を依頼データに追加してMDI装置(M02)にこれを送信する。 The MDI device (M01) receives the request data and determines whether the subtask can be executed by itself. A specific determination method will be described later. In FIG. 3, the MDI device (M01) has determined that it cannot accept the subtask. At this time, the MDI device (M01) adds MDIID=M01 to the request data and transmits it to the MDI device (M02).
 図3では、MDI装置(M02)も、サブタスクを引き受けられないと判断している。MDI装置(M02)は、MDIID=M2を依頼データに追加してMDI装置(M03)にこれを送信する。MDI装置(M03)は、サブタスクを実行可能であれば、データ(D1)を対象としたサブタスクを実行し、実行結果を依頼元であるMDI装置(M02)に返信する。MDI装置(M02)は実行結果をMDI装置(M01)に送信し、MDI装置(M01)は実行結果をSDI装置(S01)に送信する。SDI装置(S01)は実行結果を画像等として出力する。以下、このような依頼方式を「転送探索方式」とよぶ。 In FIG. 3, the MDI device (M02) also determines that it cannot accept the subtask. The MDI device (M02) adds MDIID=M2 to the request data and transmits it to the MDI device (M03). If the MDI device (M03) is able to execute the subtask, it executes the subtask targeting the data (D1), and returns the execution result to the requesting MDI device (M02). The MDI device (M02) sends the execution result to the MDI device (M01), and the MDI device (M01) sends the execution result to the SDI device (S01). The SDI device (S01) outputs the execution result as an image or the like. Hereinafter, such a request method will be referred to as a "transfer search method."
 別例として、SDI装置(S01)から依頼データを受け取ったMDI装置(M01)は、近隣にあるMDI装置(M02)およびMDI装置(M04)にサブタスクの実行可否を確認してもよい。MDI装置(M02)がサブタスクを実行不可能であり、MDI装置(M04)が実行可能であれば、MDI装置(M01)はMDI装置(M04)に依頼データを送信し、MDI装置(M04)はサブタスクを実行する。サブタスクの実行結果は、転送探索方式と同様にしてSDI装置(S01)に送信される。以下、このような依頼方式を「確認依頼方式」とよぶ。 As another example, the MDI device (M01) that has received the request data from the SDI device (S01) may check with the nearby MDI device (M02) and MDI device (M04) whether or not the subtask can be executed. If the MDI device (M02) is unable to execute the subtask and the MDI device (M04) is able to execute the subtask, the MDI device (M01) sends the request data to the MDI device (M04), and the MDI device (M04) Run subtasks. The execution results of the subtasks are sent to the SDI device (S01) in the same manner as in the transfer search method. Hereinafter, such a request method will be referred to as a "confirmation request method."
 転送探索方式と確認依頼方式は併用されてもよいが、本実施形態においては転送探索方式を前提として説明する。なお、MDIに限らず、LDIにおいても転送探索方式によりサブタスクの実行主体が決定される。 Although the transfer search method and the confirmation request method may be used together, this embodiment will be described assuming the transfer search method. Note that, not only in MDI but also in LDI, the execution entity of a subtask is determined by a transfer search method.
 サブタスクを実行するためのプログラムであるタスクハンドラは、依頼データに含まれてもよい。あるいは、MDI装置またはLDI装置にあらかじめタスクハンドラを登録しておき、依頼側はサブタスクを特定するハンドラIDを送信してもよい。たとえば、SDI装置(S01)がハンドラID=H1を依頼データに含めて送信するとき、MDI装置(M03)はハンドラID=H1に対応するタスクハンドラ(H1)を内蔵メモリから読み出して、指定されたサブタスクを実行してもよい。本実施形態においては、ハンドラIDを送信するのではなく、タスクハンドラ自体が依頼データに含まれるものとして説明する。 A task handler, which is a program for executing subtasks, may be included in the request data. Alternatively, a task handler may be registered in advance in the MDI device or LDI device, and the requesting side may transmit a handler ID that specifies the subtask. For example, when the SDI device (S01) sends request data including handler ID=H1, the MDI device (M03) reads the task handler (H1) corresponding to handler ID=H1 from the built-in memory, and May execute subtasks. In this embodiment, description will be given assuming that the task handler itself is included in the request data instead of transmitting the handler ID.
 以下、第1から第3実施形態に分けて分散処理システム100について説明する。
 第1実施形態においては、ウェアラブル端末として構成されるSDI装置においてサブタスクが発生したとき、これをMDI、LDIにて処理する方法について説明する。
 第2実施形態においては、ショッピングモール内における複数のロボット(移動装置)によりMDIが構成され、これらのロボットが連携することでサービスを提供する方法について説明する。
 第3実施形態においては、監視カメラ等の社会基盤設備がMDIを構成することで、ユーザにさまざまな計算サービスを提供する方法について説明する。
 本明細書においては、第1実施形態から第3実施形態を区別しないとき、または、これらを総称するときには、「本実施形態」と記載する。
The distributed processing system 100 will be described below in first to third embodiments.
In the first embodiment, a method will be described in which when a subtask occurs in an SDI device configured as a wearable terminal, it is processed by MDI and LDI.
In the second embodiment, a method will be described in which an MDI is configured by a plurality of robots (mobile devices) in a shopping mall, and a service is provided by these robots working together.
In the third embodiment, a method will be described in which social infrastructure equipment such as surveillance cameras configures an MDI to provide various calculation services to users.
In this specification, when the first embodiment to the third embodiment are not distinguished from each other, or when they are collectively referred to, they are referred to as "this embodiment".
[第1実施形態]
 図4は、第1実施形態における分散処理システム100の概念図である。
 第1実施形態におけるSDI装置としては、体重計104、スマートウォッチ106、スマートグラス108など、センシング機能と通信機能を備える計算装置(第1計算装置)である。これらのSDI装置は、スマートフォンなどの中継端末110と通信する。中継端末110は、MDI装置の一種であるが、第1実施形態における中継端末110は、SDI装置から依頼されたサブタスクを自ら実行することなく、他のMDI装置等にそのままサブタスクを依頼するものとして説明する。いいかえれば、中継端末110はMDI等とSDIの接点として機能する。
[First embodiment]
FIG. 4 is a conceptual diagram of the distributed processing system 100 in the first embodiment.
The SDI device in the first embodiment is a computing device (first computing device) including a sensing function and a communication function, such as a scale 104, a smart watch 106, and smart glasses 108. These SDI devices communicate with a relay terminal 110 such as a smartphone. The relay terminal 110 is a type of MDI device, but the relay terminal 110 in the first embodiment does not execute the subtask requested by the SDI device itself, but directly requests the subtask to another MDI device, etc. explain. In other words, the relay terminal 110 functions as a contact point between the MDI and the like and the SDI.
 SDI装置は、たとえば、体重計104が計測した体重、スマートウォッチ106が計測した脈拍数および歩数、スマートグラス108が取得した撮像画像などの各種データとともに、それらを処理するためのタスクハンドラ(サブタスクの処理内容を示すプログラムデータ)を依頼データに含めて中継端末110に送信する。上述したように、サブタスクごとにLDIまたはMDIのいずれで実行されるかが決まっている。 The SDI device includes various data such as the weight measured by the scale 104, the pulse rate and number of steps measured by the smart watch 106, and the captured image obtained by the smart glasses 108, as well as a task handler (subtask) for processing the data. (program data indicating processing contents) is included in the request data and transmitted to the relay terminal 110. As described above, it is determined whether each subtask is executed using LDI or MDI.
 中継端末110は、サブタスクの種別に応じて、タスクハンドラを含む依頼データをMDIまたはLDIに送信する。MDIおよびLDIにより、SDI装置120でセンシングされたデータ(画像を含む)が処理される。 The relay terminal 110 transmits request data including a task handler to the MDI or LDI depending on the type of subtask. Data (including images) sensed by the SDI device 120 is processed by MDI and LDI.
 たとえば、スマートグラス108は、撮像画像を中継端末110に送信し、撮像画像に写る建物を判断するサブタスクを中継端末110に依頼してもよい。この場合には、中継端末110は、MDI装置等の計算装置にサブタスクの実行を依頼する。MDI装置等は、サブタスクを実行することで撮像画像に含まれる建物を特定し、その建物に関する説明情報をスマートグラス108に送信する。スマートグラス108は、ユーザに対して建物の説明情報を付加した画像を表示させる。 For example, the smart glasses 108 may transmit the captured image to the relay terminal 110 and request the relay terminal 110 to perform a subtask of determining a building that appears in the captured image. In this case, relay terminal 110 requests a computing device such as an MDI device to execute a subtask. The MDI device or the like identifies a building included in the captured image by executing a subtask, and transmits explanatory information regarding the building to the smart glasses 108 . The smart glasses 108 display an image to which explanatory information about the building is added to the user.
 スマートウォッチ106の場合には、検出した歩数および脈拍数に基づいて、ユーザの健康状態を判断するためのサブタスクが実行されてもよい。体重計104の場合には、計測された体重と過去の体重推移のデータから、ユーザが運動不足になっていないかを判断し、さまざまなアドバイスを提供するサブタスクが実行されてもよい。このように、MDI装置等の計算能力を活用することにより、SDI装置において多様なサービスを提供可能となる。 In the case of the smart watch 106, a subtask for determining the user's health condition may be executed based on the detected number of steps and pulse rate. In the case of the weight scale 104, a subtask may be executed to determine whether the user is lacking in exercise based on measured weight and data on past weight changes, and to provide various advice. In this way, by utilizing the computing power of an MDI device or the like, it becomes possible to provide a variety of services in an SDI device.
 第1実施形態におけるLDI装置(第3計算装置)は、家庭、オフィスビル、工場などに設置される大型で固定設置される二次電池であってもよい。上述したようにLDI装置もDIエンジンを搭載する。ESS(Energy Storage System)として、多数のLDI装置を集合させれば、LDIはいわば即席のデータセンターとして、多くのサブタスクを並列処理できる。 The LDI device (third computing device) in the first embodiment may be a large-sized, fixedly installed secondary battery installed in a home, an office building, a factory, or the like. As mentioned above, the LDI device is also equipped with a DI engine. If a large number of LDI devices are assembled as an ESS (Energy Storage System), the LDI can function as an instant data center and process many subtasks in parallel.
 なお、LDI装置の構成は二次電池に限られるものではないが、二次電池をLDI装置として利用することには長所もある。まず、今後、再生可能エネルギーの推進にともない、電力供給を平準化するための大型の二次電池は存在感が高まると考えられる。充放電の高度制御のために、二次電池にプロセッサを搭載することも想定される。たとえば、DIエンジン搭載型の二次電池が想定される。しかし、二次電池としてのメインタスク(充放電制御)はそれほど処理負荷が大きくないため、二次電池の計算資源に余裕ができる可能性がある。また、二次電池に搭載されるため、DIエンジンの電力供給は安定しやすい。このため、二次電池搭載のDIエンジンは安定的に計算能力を提供できる。 Although the configuration of the LDI device is not limited to secondary batteries, there are advantages to using secondary batteries as the LDI device. First, as renewable energy is promoted in the future, it is thought that large secondary batteries will have an increased presence in order to level out the power supply. It is also envisioned that a processor will be installed in the secondary battery for advanced control of charging and discharging. For example, a secondary battery equipped with a DI engine is assumed. However, since the main task (charging and discharging control) of the secondary battery does not require a large processing load, there is a possibility that the secondary battery's computational resources will be freed up. Furthermore, since it is mounted on a secondary battery, the power supply to the DI engine is likely to be stable. Therefore, the DI engine equipped with a secondary battery can stably provide computing power.
 以上の理由により、計算能力に余裕があり、大量に配備される可能性が高く、かつ、電力供給が安定する二次電池はLDI装置として好適な計算資源になる可能性がある。同様の理由から、家庭用の燃料電池システムである、いわゆる「エネファーム」をLDI装置として利用することも想定される。いうまでもなく、LDI装置は、二次電池やエネファームに限らず、一般のPC(Personal Computer)あるいはサーバとして構成されてもよい。 For the above reasons, secondary batteries that have sufficient computing power, are likely to be deployed in large quantities, and have a stable power supply may become suitable computing resources as LDI devices. For similar reasons, it is also envisaged that a household fuel cell system, so-called "Ene-Farm", may be used as an LDI device. Needless to say, the LDI device is not limited to a secondary battery or an ENE-FARM, but may be configured as a general PC (Personal Computer) or a server.
 図5は、SDI装置120のハードウェア構成図である。
 SDI装置120は、コンピュータプログラムを格納する不揮発性メモリとしてのストレージ312、プログラムおよびデータを展開する揮発性のメモリ304と、図示しないレジスタ、演算器、命令デコーダ等を内蔵し(不図示)、メモリ304からプログラムを読み出して実行するプロセッサ300(CPU)等を含む。プロセッサ300は、比較的高速な第1バス302と接続される。第1バス302には、メモリ304のほかNIC(Network Interface Card)が接続される。第1バス302には、このほか、GPU等の他のデバイスが接続されてもよい。
FIG. 5 is a hardware configuration diagram of the SDI device 120.
The SDI device 120 includes a storage 312 as a nonvolatile memory that stores computer programs, a volatile memory 304 that expands programs and data, and a built-in register (not shown), an arithmetic unit, an instruction decoder, etc. (not shown), and a memory. It includes a processor 300 (CPU) that reads a program from 304 and executes it. Processor 300 is connected to a first bus 302 that is relatively high speed. A memory 304 and a NIC (Network Interface Card) are connected to the first bus 302 . In addition to this, other devices such as a GPU may be connected to the first bus 302.
 第1バス302は、ブリッジ308を介して比較的低速な第2バス310と接続される。第2バス310には、ストレージ312のほか、モニタあるいはスピーカなどの出力デバイス316が接続される。また、第2バス310には、マウスやキーボードなどの入力デバイス314、プリンタなどの周辺機器318が接続されてもよい。
 MDI装置およびLDI装置のハードウェア構成についても基本的に同様である。
 なお、図5に示した第1バス302と第2バス310の接続方法は一例であり、他の接続方法、あるいは、他のバスを含む構成してもよいことは当業者には理解されるところである。
The first bus 302 is connected to a relatively low speed second bus 310 via a bridge 308. The second bus 310 is connected to a storage 312 as well as an output device 316 such as a monitor or a speaker. Furthermore, an input device 314 such as a mouse and a keyboard, and a peripheral device 318 such as a printer may be connected to the second bus 310.
The hardware configurations of the MDI device and the LDI device are basically the same.
Note that the method of connecting the first bus 302 and the second bus 310 shown in FIG. 5 is an example, and those skilled in the art will understand that other connection methods or a configuration including other buses may be used. By the way.
 図6は、SDI装置120の機能ブロック図である。
 SDI装置120の各構成要素は、CPUおよび各種コプロセッサ(co-processor)などの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。
 以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。図7、図15、図20についても同様である。
FIG. 6 is a functional block diagram of the SDI device 120.
Each component of the SDI device 120 includes hardware including arithmetic units such as a CPU and various co-processors, storage devices such as memory and storage, wired or wireless communication lines connecting them, and storage devices. It is realized by software that is stored and supplies processing instructions to the arithmetic unit. A computer program may be composed of a device driver, an operating system, various application programs located in an upper layer thereof, and a library that provides common functions to these programs.
Each block described below indicates a functional unit block rather than a hardware unit configuration. The same applies to FIGS. 7, 15, and 20.
 SDI装置120は、ユーザインタフェース処理部122、センシング部124、通信部128、データ処理部126およびデータ格納部130を含む。
 ユーザインタフェース処理部122は、タッチパネル等の入力デバイスを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。センシング部124は、カメラ、レーダ、ジャイロセンサ等の各種センサによる計測値を取得する。通信部128は、中継端末110等との通信処理を担当する。データ格納部130は各種データを格納する。データ処理部126は、ユーザインタフェース処理部122から入力されたデータ、センシング部124により計測されたデータ、通信部128により受信されたデータおよびデータ格納部130に格納されているデータに基づいて各種処理を実行する。データ処理部126は、通信部128、センシング部124、ユーザインタフェース処理部122およびデータ格納部130のインタフェースとしても機能する。
The SDI device 120 includes a user interface processing section 122, a sensing section 124, a communication section 128, a data processing section 126, and a data storage section 130.
The user interface processing unit 122 accepts operations from the user via an input device such as a touch panel, and is also responsible for processing related to the user interface, such as image display and audio output. The sensing unit 124 acquires measurement values from various sensors such as a camera, radar, and gyro sensor. The communication unit 128 is in charge of communication processing with the relay terminal 110 and the like. The data storage unit 130 stores various data. The data processing unit 126 performs various processing based on data input from the user interface processing unit 122, data measured by the sensing unit 124, data received by the communication unit 128, and data stored in the data storage unit 130. Execute. The data processing unit 126 also functions as an interface for the communication unit 128, sensing unit 124, user interface processing unit 122, and data storage unit 130.
 ユーザインタフェース処理部122は、入力部132および出力部134を含む。
 入力部132は、ユーザからの各種入力を受け付ける。出力部134は、ユーザに対して各種情報を出力する。
User interface processing section 122 includes an input section 132 and an output section 134.
The input unit 132 receives various inputs from the user. The output unit 134 outputs various information to the user.
 通信部128は、送信部136と受信部138を含む。
 送信部136は、外部装置に各種データを送信する。受信部138は、外部装置から各種データを受信する。
Communication section 128 includes a transmitting section 136 and a receiving section 138.
The transmitter 136 transmits various data to an external device. The receiving unit 138 receives various data from an external device.
 送信部136は、センシング部124により計測されたデータを含む依頼データを、中継端末110に送信するデータ送信部140を含む。上述したように、依頼データには、計測されたデータのほか、タスクハンドラ(プログラム本体)およびSDIIDが含まれる。受信部138は、MDI等によるサブタスクの実行結果を受信する結果受信部142を含む。 The transmitting unit 136 includes a data transmitting unit 140 that transmits request data including data measured by the sensing unit 124 to the relay terminal 110. As described above, the request data includes the task handler (program body) and SDIID in addition to the measured data. The receiving unit 138 includes a result receiving unit 142 that receives subtask execution results using MDI or the like.
 図7は、MDI装置150およびLDI装置160の機能ブロック図である。
 上述したように、SDI装置120から依頼データを受信する中継端末110もMDI装置150の一種である。
FIG. 7 is a functional block diagram of the MDI device 150 and the LDI device 160.
As described above, the relay terminal 110 that receives request data from the SDI device 120 is also a type of MDI device 150.
(MDI装置150)
 MDI装置150(中継端末110)は、データ処理部170、通信部172およびデータ格納部174を含む。
 通信部172は、SDI装置120、決済装置102、他のMDI装置150、LDI装置160等との通信処理を担当する。データ格納部174は各種情報を格納する。データ処理部170は、通信部172により取得されたデータおよびデータ格納部174に格納されているデータに基づいて各種処理を実行する。データ処理部170は、通信部172およびデータ格納部174のインタフェースとしても機能する。
(MDI device 150)
MDI device 150 (relay terminal 110) includes a data processing section 170, a communication section 172, and a data storage section 174.
The communication unit 172 is in charge of communication processing with the SDI device 120, payment device 102, other MDI devices 150, LDI device 160, and the like. The data storage unit 174 stores various information. The data processing unit 170 executes various processes based on the data acquired by the communication unit 172 and the data stored in the data storage unit 174. The data processing section 170 also functions as an interface for the communication section 172 and the data storage section 174.
 通信部172は、送信部182と受信部184を含む。
 送信部182は、外部装置に各種データを送信する。受信部184は、外部装置から各種データを受信する。
Communication section 172 includes a transmitting section 182 and a receiving section 184.
The transmitter 182 transmits various data to an external device. The receiving unit 184 receives various data from an external device.
 送信部182は、依頼データを他のMDI装置150またはLDI装置160に送信するデータ送信部186と、サブタスクの実行結果を送信する結果送信部188を含む。受信部184は、他の装置から依頼データを受信するデータ受信部190と、サブタスクの実行結果を受信する結果受信部192を含む。 The transmitting unit 182 includes a data transmitting unit 186 that transmits request data to another MDI device 150 or LDI device 160, and a result transmitting unit 188 that transmits the execution result of the subtask. The receiving unit 184 includes a data receiving unit 190 that receives request data from other devices, and a result receiving unit 192 that receives subtask execution results.
 データ処理部170は、実行判定部176、タスク依頼部178およびタスク実行部180を含む。
 実行判定部176は、他の装置から依頼データを受信したとき、自装置でサブタスクを実行可能(引き受け可能)か判断する。判断方法の詳細は後述する。タスク依頼部178は、自装置でサブタスクを実行しないとき、他の装置にサブタスクの実行を依頼する。このとき、タスク依頼部178はサブタスクの種類に応じてMDIおよびLDIのいずれに依頼するかを判断する。タスク実行部180は、各種タスクを実行する。タスク実行部180は、MDI装置150本来の機能としてメインタスクを実行するメインタスク実行部194と、依頼データに基づいてサブタスクを実行するサブタスク実行部196を含む。上述したように、サブタスク実行部196の機能は、MDI装置150に搭載されるDIエンジンにより実現される。メインタスクとサブタスクは別プロセスまたは別スレッドとして並列実行可能である。
The data processing unit 170 includes an execution determination unit 176, a task requesting unit 178, and a task execution unit 180.
When the execution determination unit 176 receives request data from another device, it determines whether the subtask can be executed (accepted) by the own device. Details of the determination method will be described later. When the task requesting unit 178 does not execute a subtask on its own device, it requests another device to execute the subtask. At this time, the task requesting unit 178 determines whether to request the MDI or LDI depending on the type of subtask. The task execution unit 180 executes various tasks. The task execution unit 180 includes a main task execution unit 194 that executes a main task as an original function of the MDI device 150, and a subtask execution unit 196 that executes a subtask based on request data. As described above, the functions of the subtask execution unit 196 are realized by the DI engine installed in the MDI device 150. The main task and subtasks can be executed in parallel as separate processes or threads.
(LDI装置160)
 LDI装置160は、通信部198、データ処理部200およびデータ格納部202を含む。
 通信部198は、SDI装置120、MDI装置150、他のLDI装置160、決済装置102等との通信処理を担当する。データ格納部202は各種情報を格納する。データ処理部200は、通信部198により取得されたデータおよびデータ格納部202に格納されているデータに基づいて各種処理を実行する。データ処理部200は、通信部198およびデータ格納部202のインタフェースとしても機能する。
(LDI device 160)
LDI device 160 includes a communication section 198, a data processing section 200, and a data storage section 202.
The communication unit 198 is in charge of communication processing with the SDI device 120, MDI device 150, other LDI devices 160, payment device 102, and the like. The data storage unit 202 stores various information. The data processing unit 200 executes various processes based on the data acquired by the communication unit 198 and the data stored in the data storage unit 202. The data processing section 200 also functions as an interface for the communication section 198 and the data storage section 202.
 通信部198は、送信部204と受信部206を含む。
 送信部204は、外部装置に各種データを送信する。受信部206は、外部装置から各種データを受信する。
Communication section 198 includes a transmitting section 204 and a receiving section 206.
The transmitter 204 transmits various data to an external device. The receiving unit 206 receives various data from an external device.
 送信部204は、依頼データを他のLDI装置160に送信するデータ送信部208と、サブタスクの実行結果を送信する結果送信部210を含む。受信部206は、他の装置から依頼データを受信するデータ受信部212と、サブタスクの実行結果を受信する結果受信部214を含む。 The transmitting unit 204 includes a data transmitting unit 208 that transmits request data to other LDI devices 160, and a result transmitting unit 210 that transmits the execution results of subtasks. The receiving unit 206 includes a data receiving unit 212 that receives request data from another device, and a result receiving unit 214 that receives the execution results of subtasks.
 データ処理部200は、実行判定部216、タスク依頼部224およびタスク実行部218を含む。
 実行判定部216は、他の装置から依頼データを受信したとき、自装置でサブタスクを実行可能か判断する。判断方法はMDIと同様であるが、詳細は後述する。タスク依頼部224は、自装置でサブタスクを実行しないとき、他の装置にサブタスクの実行を依頼する。タスク実行部218は、各種タスクを実行する。タスク実行部218は、LDI装置160本来の機能としてメインタスクを実行するメインタスク実行部220と、依頼データに基づいてサブタスクを実行するサブタスク実行部222を含む。上述したように、サブタスク実行部222の機能は、LDI装置160に搭載されるDIエンジンにより実現される。
The data processing unit 200 includes an execution determination unit 216, a task requesting unit 224, and a task execution unit 218.
When the execution determination unit 216 receives request data from another device, it determines whether the subtask can be executed by the own device. The determination method is the same as that for MDI, but the details will be described later. When the task requesting unit 224 does not execute a subtask on its own device, it requests another device to execute the subtask. The task execution unit 218 executes various tasks. The task execution unit 218 includes a main task execution unit 220 that executes a main task as an original function of the LDI device 160, and a subtask execution unit 222 that executes a subtask based on request data. As described above, the functions of the subtask execution unit 222 are realized by the DI engine installed in the LDI device 160.
 図8は、依頼条件情報230のデータ構造図である。
 依頼条件情報230は、SDI装置120のデータ格納部130に格納される。依頼条件情報230は、サブタスクごとの依頼条件を定義する情報である。サブタスクはタスクIDにより識別される。タスクID=T01のサブタスク(以下、「サブタスク(T01)」のように表記する)は、MDI用のタスクである(図中の「M」はMDI用であることを示す)。
FIG. 8 is a data structure diagram of the request condition information 230.
Request condition information 230 is stored in data storage section 130 of SDI device 120. Request condition information 230 is information that defines request conditions for each subtask. Subtasks are identified by task IDs. The subtask with task ID=T01 (hereinafter referred to as "subtask (T01)") is a task for MDI ("M" in the figure indicates that it is for MDI).
 サブタスク(T01)の依頼条件は「国内」「空きメモリ20GB以上」である。たとえば、SDI装置120(依頼元)の所在地が「日本」であるときには、日本(国内)にあって、空メモリが20GB以上のMDI装置150でなければ、サブタスク(T01)の実行は許可されない。サブタスクの実行主体を「国内」のMDI装置150に限定することで、SDI装置120から発生するデータの流通範囲を制限できる。また、「空きメモリ20GB以上」のようにサブタスク実行主体の仕様について条件をつけることで、十分に余力のあるMDI装置150を選ぶことができる。 The request conditions for the subtask (T01) are "domestic" and "20 GB or more of free memory." For example, when the location of the SDI device 120 (request source) is "Japan", execution of the subtask (T01) is not permitted unless the MDI device 150 is located in Japan (domestic) and has free memory of 20 GB or more. By limiting the subtask execution entity to the "domestic" MDI device 150, the distribution range of data generated from the SDI device 120 can be restricted. Furthermore, by setting a condition regarding the specifications of the main subtask execution entity, such as "20 GB or more of free memory," it is possible to select an MDI device 150 with sufficient spare capacity.
 サブタスク(T02)は、LDI用のタスクである(図中の「L」はLDI用であることを示す)。サブタスク(T02)の依頼条件は、OSが「OS-A(OS名)」であって、公的機関により運営されており、かつ、マルチコアのLDI装置160であることである。公的機関により運営されているLDI装置160は、民間のLDI装置160よりも信用でき、かつ、セキュリティも比較的高いと考えられる。サブタスクの実行主体のOSを、たとえば、十分なセキュリティが証明されているOSに限定することで、情報漏洩を防止しやすくなる。同様にして、LDI装置160の運営主体を公的機関に限定することで情報の安全性を高めることができる。 The subtask (T02) is a task for LDI ("L" in the figure indicates that it is for LDI). The request conditions for the subtask (T02) are that the OS is “OS-A (OS name)”, that it is operated by a public organization, and that the LDI device 160 is a multi-core device. LDI devices 160 operated by public organizations are considered to be more reliable and have relatively higher security than private LDI devices 160. By limiting the OS that executes subtasks to, for example, an OS that has been proven to have sufficient security, information leakage can be easily prevented. Similarly, the security of information can be increased by limiting the operator of the LDI device 160 to public institutions.
 サブタスク(T03)は、MDI用のタスクである。サブタスク(T03)の依頼条件は、「家庭内」かつ「消費電力<K」である。ここでいう「K」とは、「あらかじめ定められたタスクを連続実行した場合における単位時間あたりの消費電力」を示す閾値である。したがって、サブタスク(T03)を実行可能なMDI装置150は、SDI装置120と同一家庭内に設置されており、かつ、仕様上の消費電力が少ないMDI装置150に限定される。消費電力とは、所定のタスクを実行したときに想定される消費電力として仕様情報として定義されればよい。消費電力に関する依頼条件を追加することで、消費電力の小さい、いいかえれば、環境に負荷をかけないMDI装置等を積極的に活用できる。このほか、再生可能エネルギーにより運用されるMDI装置等であることを依頼条件に含めてもよい。 The subtask (T03) is a task for MDI. The request conditions for the subtask (T03) are “at home” and “power consumption <K”. "K" here is a threshold value indicating "power consumption per unit time when a predetermined task is continuously executed." Therefore, the MDI device 150 that can execute the subtask (T03) is limited to an MDI device 150 that is installed in the same household as the SDI device 120 and has low power consumption according to specifications. Power consumption may be defined as specification information as power consumption expected when a predetermined task is executed. By adding request conditions regarding power consumption, it is possible to actively utilize MDI devices and the like that consume less power, in other words, do not place a burden on the environment. In addition, the request condition may include that the device is an MDI device or the like that is operated using renewable energy.
 SDI装置120のユーザは、依頼条件の設定により、データの流通範囲の制限、環境保護への配慮など、さまざまな観点からサブタスクの実行主体を選ぶことができる。上述したように、依頼条件は、依頼データの一部として含まれる。依頼データには、依頼条件のほか、処理対象となるデータ、タスクハンドラ、SDIID(依頼元のID)などが含まれる。 By setting request conditions, the user of the SDI device 120 can select who will execute the subtask from various viewpoints, such as limiting the range of data distribution and consideration for environmental protection. As described above, the request conditions are included as part of the request data. The request data includes request conditions, data to be processed, a task handler, SDIID (request source ID), and the like.
 依頼条件は、処理負荷、仕様情報、給電状態、通信状態などに関する任意の条件を設定可能である。これは、後述する引受条件についても同様である。ここでいう「処理負荷」とは、タスク実行主体となる計算装置の現段階の負担を意味する。たとえば、CPUの使用率、メモリの占有率、スレッドの使用数などが考えられる。「仕様情報」とは、タスク実行主体となる計算装置の仕様を意味する。たとえば、CPUの世代、クロック数、コア数、搭載メモリのサイズ、搭載するOSの種類と世代、単位処理あたりの電力消費量などが該当する。「給電状態」とは、タスク実行主体となる計算装置の電力供給の安定性を意味する。たとえば、充電中か否か、SOCの大きさなどである。「通信状態」とは、依頼元となる計算装置と、依頼先となる計算装置の通信の状態を意味する。たとえば、有線接続の有無、近距離無線通信の可否、通信速度、通信の安定性などである。通信状態のよい計算装置を積極的に選ぶことにより、通信にともなう消費電力を抑制できる。 As request conditions, arbitrary conditions regarding processing load, specification information, power supply status, communication status, etc. can be set. The same applies to the underwriting conditions described below. The term "processing load" as used herein means the current burden on the computing device that is the main body of task execution. For example, CPU usage rate, memory occupancy rate, number of threads used, etc. can be considered. "Specification information" means the specifications of the computing device that is the main body for task execution. For example, the generation of the CPU, the number of clocks, the number of cores, the size of the installed memory, the type and generation of the installed OS, the power consumption per unit processing, etc. are applicable. The “power supply state” means the stability of the power supply to the computing device that is the main subject of task execution. For example, whether it is being charged or not, the size of the SOC, etc. "Communication state" means the state of communication between a computing device that is a request source and a computing device that is a request destination. For example, the presence or absence of a wired connection, the availability of short-range wireless communication, the communication speed, the stability of communication, etc. By proactively selecting a computing device with good communication status, power consumption associated with communication can be suppressed.
 図9は、引受条件情報240のデータ構造図である。
 図9に示す引受条件情報240は、MDI装置150(M01)のデータ格納部174に格納される。引受条件情報240は、MDI装置150(M01)がサブタスクを引き受ける条件(以下、「引受条件」とよぶ)、いいかえれば、実行可否の判断基準を定義する情報である。他のMDI装置150およびLDI装置160も独自の引受条件を有する。
FIG. 9 is a data structure diagram of the underwriting condition information 240.
The underwriting condition information 240 shown in FIG. 9 is stored in the data storage unit 174 of the MDI device 150 (M01). The acceptance condition information 240 is information that defines the conditions for the MDI device 150 (M01) to accept a subtask (hereinafter referred to as "acceptance conditions"), in other words, the criteria for determining whether the subtask can be executed. Other MDI devices 150 and LDI devices 160 also have their own underwriting requirements.
 MDI装置150(M01)は、サブタスクの依頼条件を満たし、かつ、自装置の引受条件を満たすときにサブタスクを実行する。MDI装置150(M01)の引受条件は、「CPU使用率が50(%)以下」、かつ、「給電中」であることである。すなわち、MDI装置150(M01)はメインタスクがビジーであるときや、給電中でないときにはサブタスクを引き受けない。MDI装置150(M01)のタスク依頼部178は、サブタスクを実行できないときには、他のMDI装置150に依頼データを転送する。
 なお、MDI装置150は、MDI装置150用の依頼データであっても、自装置がサブタスクを引き受けられないときには他のMDI装置150ではなく、LDI装置160に依頼データを送信するとしてもよい。
The MDI device 150 (M01) executes a subtask when the subtask request condition is satisfied and the acceptance condition of the device itself is satisfied. The conditions for underwriting the MDI device 150 (M01) are that "the CPU usage rate is 50 (%) or less" and that "power is being supplied". That is, the MDI device 150 (M01) does not accept subtasks when the main task is busy or when power is not being supplied. The task requesting unit 178 of the MDI device 150 (M01) transfers the request data to another MDI device 150 when the subtask cannot be executed.
Note that even if the request data is for the MDI device 150, the MDI device 150 may transmit the request data to the LDI device 160 instead of the other MDI device 150 when the own device cannot accept the subtask.
 引受条件の設定は任意である。たとえば、マルチコアのMDI装置150において、アイドル状態にあるコア(プロセッサ)が存在すること、SOC(State of Charge)が80(%)以上であること、メインタスクで使用されているスレッドが5以下であること、CPUの温度が50度以下であること、メモリ利用率が60(%)以下であること、などが考えられる。MDI装置150は、自装置の計算資源に余力があるときだけサブタスクを引き受ければよい。引受条件の設定によって、MDI装置150の本来の仕事であるメインタスクのパフォーマンスがサブタスクの実行によって下がらないように制御できる。MDI装置150はメインタスクの負荷が小さいときだけ、いいかえれば計算余力があるときだけ、サブタスクを引き受ければよい。 Setting of underwriting conditions is optional. For example, in the multi-core MDI device 150, there is a core (processor) in an idle state, the SOC (State of Charge) is 80 (%) or more, and the number of threads used in the main task is 5 or less. The CPU temperature is below 50 degrees, the memory usage rate is below 60(%), etc. The MDI device 150 only needs to accept subtasks when its own computing resources have surplus capacity. By setting acceptance conditions, it is possible to control so that the performance of the main task, which is the original work of the MDI device 150, does not deteriorate due to the execution of subtasks. The MDI device 150 only needs to take on subtasks when the load of the main task is light, or in other words, only when there is computational surplus.
 引受条件には、報酬に関する条件が含まれてもよい。詳細は後述するが、SDI装置120(S12)のサブタスクをMDI装置150(M33)が実行した場合、SDI装置120(S12:依頼元)のユーザからMDI装置150(M33:依頼先)のユーザに報酬が支払われる。依頼条件には、サブタスク実行の報酬額が含まれてもよい。同様に、引受条件には報酬額が所定額以上であることという条件が含まれてもよい。 Underwriting conditions may include conditions regarding remuneration. Although the details will be described later, when the MDI device 150 (M33) executes a subtask of the SDI device 120 (S12), the user of the SDI device 120 (S12: request source) sends a message to the user of the MDI device 150 (M33: request destination). Rewards will be paid. The request conditions may include a reward amount for executing the subtask. Similarly, the underwriting conditions may include a condition that the remuneration amount is a predetermined amount or more.
 以下においては、依頼条件と引受条件をまとめていうときには「実行条件」とよぶ。依頼条件の設定されないサブタスクがあってもよいし、引受条件を設定しないMDI装置150があってもよい。引受条件は、LDI装置160においても設定可能である。 In the following, request conditions and acceptance conditions will be collectively referred to as "execution conditions." There may be subtasks for which request conditions are not set, and there may be MDI devices 150 for which acceptance conditions are not set. Underwriting conditions can also be set in the LDI device 160.
 図10は、サブタスクの振り分けの処理過程を示すフローチャートである。
 中継端末110が、SDI装置120から依頼データを受信したとき、中継端末110により図10に示す処理が実行される。上述したように、第1実施形態における中継端末110は自らサブタスクを実行することはない。
FIG. 10 is a flowchart showing the processing process for allocating subtasks.
When relay terminal 110 receives request data from SDI device 120, relay terminal 110 executes the process shown in FIG. 10. As described above, the relay terminal 110 in the first embodiment does not execute subtasks by itself.
 中継端末110のタスク依頼部178は、依頼データに含まれる依頼条件を参照し、サブタスクがMDI用またはLDI用のいずれであるかを判定する(S10)。MDI用のときには(S10のY)、タスク依頼部178は依頼データの送信先となるMDI装置150を選択する(S12)。タスク依頼部178は、複数のMDI装置150から任意の方法により送信先を選択すればよい。たとえば、タスク依頼部178は、中継端末110と有線接続されているMDI装置150を優先的に選んでもよい。あるいは、タスク依頼部178は、中継端末110と近距離無線通信が可能なMDI装置150を送信先として選んでもよいし、過去の送信先として選んだことのあるMDI装置150を再び送信先として選択してもよいし、ランダムに選んでもよい。ここでいう近距離無線通信としては、Bluetooth(登録商標)、NFC(Near field communication)、IrDA(Infrared Data Association)などが想定される。 The task requesting unit 178 of the relay terminal 110 refers to the request conditions included in the request data and determines whether the subtask is for MDI or LDI (S10). When the data is for MDI (Y in S10), the task requesting unit 178 selects the MDI device 150 to which the request data will be transmitted (S12). The task requesting unit 178 may select a destination from the plurality of MDI devices 150 using any method. For example, the task requesting unit 178 may preferentially select the MDI device 150 that is connected to the relay terminal 110 by wire. Alternatively, the task requesting unit 178 may select the MDI device 150 capable of short-range wireless communication with the relay terminal 110 as the destination, or select the MDI device 150 that has been selected as the destination in the past as the destination again. You can choose one at random. As the short-range wireless communication referred to here, Bluetooth (registered trademark), NFC (Near field communication), IrDA (Infrared Data Association), etc. are assumed.
 中継端末110のタスク依頼部178は、データ送信部186に指示し、選択したMDI装置150へ依頼データを送信させる(S14)。いいかえれば、タスク依頼部178は、選択したMDI装置150にサブタスクの実行を依頼する。タスク依頼部178は、依頼データに中継端末110のMDIIDを含める。データ送信部186は、送信時に依頼データを暗号化してもよい。 The task requesting unit 178 of the relay terminal 110 instructs the data transmitting unit 186 to transmit the request data to the selected MDI device 150 (S14). In other words, the task requesting unit 178 requests the selected MDI device 150 to execute the subtask. The task requesting unit 178 includes the MDIID of the relay terminal 110 in the request data. The data transmitter 186 may encrypt the request data during transmission.
 サブタスクがLDI用のときには(S10のN)、タスク依頼部178は依頼データの送信先となるLDI装置160を選択する(S16)。LDI装置160の選択方法は、MDI装置150の選択方法と同様である。中継端末110のタスク依頼部178は、データ送信部186に指示し、依頼データを送信させる(S18)。 When the subtask is for LDI (N in S10), the task requesting unit 178 selects the LDI device 160 to which the request data will be transmitted (S16). The method for selecting the LDI device 160 is the same as the method for selecting the MDI device 150. The task requesting unit 178 of the relay terminal 110 instructs the data transmitting unit 186 to transmit the request data (S18).
 たとえば、スマートグラス108が撮像画像から、撮像画像に写る建物を特定するサブタスク(MDI用)を中継端末110に依頼したとする。このとき、中継端末110は、このサブタスクに対応するタスクハンドラを含む依頼データを受信し、いずれかのMDI装置150に依頼データを転送する。データ送信部186がMDI装置150等に依頼データを送信した後、結果受信部192は依頼先から確認信号を受信する。タスク依頼部178は、依頼データの送信後、一定時間を経過しても確認信号を受信できなかったとき、いいかえれば、依頼データの受信確認ができなかったときには、他のMDI装置150等を新たな送信先として選択する。 For example, assume that the smart glasses 108 request the relay terminal 110 to perform a subtask (for MDI) of identifying a building appearing in the captured image from the captured image. At this time, the relay terminal 110 receives the request data including the task handler corresponding to this subtask, and transfers the request data to one of the MDI devices 150. After the data transmitter 186 transmits the request data to the MDI device 150 or the like, the result receiver 192 receives a confirmation signal from the request destination. When the task requesting unit 178 cannot receive a confirmation signal even after a certain period of time has passed after transmitting the request data, in other words, when it cannot confirm the reception of the request data, the task requesting unit 178 sends a new MDI device 150 or the like to another MDI device 150 or the like. Select as the destination.
 図11は、MDI装置150が他の装置から依頼データを受信したときの処理過程を示すフローチャートである。
 MDI装置150のデータ受信部190は、中継端末110または他のMDI装置150から依頼データを受信する。依頼データが暗号化されているときには、データ受信部190は依頼データを復号する。MDI装置150の実行判定部176は、実行条件(依頼条件と引受条件)に基づいて、依頼データで指定されるサブタスクの実行を引き受けるか否か判定する(S20)。引き受け可能であれば(S20のY)、サブタスク実行部196は依頼データに含まれるデータおよびタスクハンドラにしたがってサブタスクを実行する(S22)。結果送信部188は、サブタスクの実行結果を依頼元の計算装置に送信する(S24)。
FIG. 11 is a flowchart showing a processing process when the MDI device 150 receives request data from another device.
The data receiving unit 190 of the MDI device 150 receives request data from the relay terminal 110 or another MDI device 150. When the request data is encrypted, the data receiving unit 190 decrypts the request data. The execution determination unit 176 of the MDI device 150 determines whether or not to undertake the execution of the subtask specified in the request data based on the execution conditions (request conditions and acceptance conditions) (S20). If the task can be accepted (Y in S20), the subtask execution unit 196 executes the subtask according to the data included in the request data and the task handler (S22). The result transmitting unit 188 transmits the execution result of the subtask to the requesting computing device (S24).
 図3に関連して説明したように、サブタスクの実行結果は、依頼データの送信経路を辿って、もとのSDI装置120に返される。データ送信部186は、自装置のMDIIDと、依頼データに含まれていたSDIIDを決済装置102に送信し、決済を要求する(S26)。このとき、決済装置102の決済部(不図示)は、サブタスクの実行にともなう報酬額の決済を実行する。 As explained in relation to FIG. 3, the execution results of the subtasks are returned to the original SDI device 120 following the transmission route of the request data. The data transmitter 186 transmits the MDIID of its own device and the SDIID included in the request data to the payment device 102 and requests payment (S26). At this time, the payment unit (not shown) of the payment device 102 performs payment of the remuneration amount associated with the execution of the subtask.
 MDI装置150がサブタスクを引き受けないときには(S20のN)、タスク依頼部178は他のMDI装置150を選択する(S28)。タスク依頼部178は、データ送信部186に指示して、依頼データを送信させる(S30)。この結果、サブタスクは別のMDI装置150に依頼される。 When the MDI device 150 does not accept the subtask (N in S20), the task requesting unit 178 selects another MDI device 150 (S28). The task requesting unit 178 instructs the data transmitting unit 186 to transmit the request data (S30). As a result, the subtask is requested to another MDI device 150.
 上述したように、SDI装置120から送信されるMDI用の依頼データは中継端末110を経由してMDI装置150に送信される。MDI装置150は、サブタスクを引き受け可能であれば実行し、不可能であれば他のMDI装置150に依頼データを転送する。サブタスクを引き受け可能なMDI装置150が見つかるまで、依頼データは転送され続ける。 As described above, MDI request data sent from the SDI device 120 is sent to the MDI device 150 via the relay terminal 110. The MDI device 150 executes the subtask if it can accept it, and if it cannot, transfers the request data to another MDI device 150. Request data continues to be transferred until an MDI device 150 that can accept the subtask is found.
 サブタスクの引き受け可否は、上述したように、自装置が依頼条件を満たし、かつ、引受条件を満たすか否かに基づいて判定される。また、依頼データには、送信元のMDIIDが追加されるので、送信先のMDI装置150は依頼データの送信元を常に把握できる。サブタスクを実行したMDI装置150は送信元に実行結果を返信し、最終的に、サブタスクの実行結果はSDI装置120によって取得される。SDI装置120の出力部134は、実行結果に基づいて画像または音声を出力する。 As described above, whether or not the subtask can be accepted is determined based on whether the own device satisfies the request conditions and also satisfies the acceptance conditions. Furthermore, since the MDI ID of the transmission source is added to the request data, the destination MDI device 150 can always know the transmission source of the request data. The MDI device 150 that executed the subtask returns the execution result to the transmission source, and finally, the SDI device 120 obtains the execution result of the subtask. The output unit 134 of the SDI device 120 outputs images or audio based on the execution results.
 図12は、LDI装置160が他の装置から依頼データを受信したときの処理過程を示すフローチャートである。
 LDI装置160のデータ受信部212は、中継端末110等の他の装置から依頼データを受信する。依頼データが暗号化されているときには、データ受信部212は依頼データを復号する。LDI装置160の実行判定部216は、実行条件に基づいて、依頼データで指定されるサブタスクの実行を引き受けるか否か判定する(S32)。
FIG. 12 is a flowchart showing a processing process when the LDI device 160 receives request data from another device.
The data receiving unit 212 of the LDI device 160 receives request data from other devices such as the relay terminal 110. When the request data is encrypted, the data receiving unit 212 decrypts the request data. The execution determination unit 216 of the LDI device 160 determines whether to undertake execution of the subtask specified in the request data based on the execution conditions (S32).
 LDI装置160がサブタスクを引き受けるときには(S32のY)、サブタスク実行部222は依頼データにしたがってサブタスクを実行する(S34)。結果送信部210は、サブタスクの実行結果を依頼元の計算装置に送信する(S36)。実行結果は、依頼経路を辿って、もとのSDI装置120に返される。データ送信部208は、自装置のLDIIDと、依頼データに含まれていたSDIIDを決済装置102に送信し、決済を要求する(S38)。このとき、決済装置102の決済部(不図示)は、サブタスクの実行にともなう報酬額の決済を実行する。
 なお、実行結果の送信経路は、依頼経路を逆にたどってもよいし、実行主体となったLDI装置160が、依頼元であるSDI装置120までの最短経路を計算することで算出してもよい。
When the LDI device 160 accepts the subtask (Y in S32), the subtask execution unit 222 executes the subtask according to the request data (S34). The result transmitting unit 210 transmits the execution result of the subtask to the requesting computing device (S36). The execution result follows the request route and is returned to the original SDI device 120. The data transmitter 208 transmits the LDIID of its own device and the SDIID included in the request data to the payment device 102, and requests payment (S38). At this time, the payment unit (not shown) of the payment device 102 performs payment of the remuneration amount associated with the execution of the subtask.
Note that the transmission route for the execution result may be determined by following the request route in the reverse direction, or by the LDI device 160 that is the execution entity calculating the shortest route to the SDI device 120 that is the request source. good.
 サブタスクを引き受けないときには(S32のN)、タスク依頼部224は他のLDI装置160を選択する(S40)。タスク依頼部224は、データ送信部208に指示して、依頼データを送信させる(S42)。 When not accepting the subtask (N at S32), the task requesting unit 224 selects another LDI device 160 (S40). The task requesting unit 224 instructs the data transmitting unit 208 to transmit the request data (S42).
 LDI装置160も、サブタスクを引き受け可能であれば実行し、不可能であれば他のLDI装置160に依頼データを転送する。サブタスクを引き受け可能なLDI装置160が見つかるまで、依頼データは転送され続ける。 The LDI device 160 also executes the subtask if it can accept it, and if not, transfers the request data to another LDI device 160. Request data continues to be transferred until an LDI device 160 that can accept the subtask is found.
 図13は、決済情報250のデータ構造図である。
 図13に示す決済情報250は、決済装置102に格納される。サブタスクが実行されるごとに、サブタスクを実行したMDI装置150等は決済要求を決済装置102に送信する。ユーザは、ユーザIDにより識別される。図13の決済情報250によると、ユーザID=P01として識別されるユーザは、SDI装置120(S01)とSDI装置120(S02)を保有している。決済要求には、タスクID、依頼者のユーザID、依頼側のSDI装置120のSDIID、実行者のユーザID、実行側の計算装置のMDIIDまたはLDIIDが含まれる。
FIG. 13 is a data structure diagram of the payment information 250.
Payment information 250 shown in FIG. 13 is stored in payment device 102. Each time a subtask is executed, the MDI device 150 or the like that executed the subtask transmits a payment request to the payment device 102. A user is identified by a user ID. According to the payment information 250 in FIG. 13, the user identified as user ID=P01 owns the SDI device 120 (S01) and the SDI device 120 (S02). The payment request includes the task ID, the requester's user ID, the SDI ID of the requester's SDI device 120, the executor's user ID, and the MDIID or LDIID of the executor's computing device.
 SDI装置120(S01:P01)は、サブタスク(T01)を発生させ、ユーザ(P05)が保有するMDI装置150(M01)がこのサブタスク(T01)を実行している。サブタスク(T01)の実行にともなう報酬額はY1(円)である。MDI装置150(M01:P05)のデータ送信部186は、サブタスク(T01)を実行したとき、SDIID=S01、MDIID=M01およびタスクID=T01を含む決済要求を決済装置102に通知し、決済装置102の決済部は決済情報250に通知内容を登録する。決済部は、定期的に、たとえば、1ヶ月に1回の頻度にて、SDI装置120のユーザから、タスク実行主体となったMDI装置150の保有者への送金処理を実行する。タスク(T01)に関しては、ユーザ(P01)からユーザ(P05)へのY1(円)の送金処理が実行される。 The SDI device 120 (S01:P01) generates a subtask (T01), and the MDI device 150 (M01) owned by the user (P05) executes this subtask (T01). The amount of remuneration associated with the execution of the subtask (T01) is Y1 (yen). When the data transmitter 186 of the MDI device 150 (M01:P05) executes the subtask (T01), it notifies the payment device 102 of a payment request including SDIID=S01, MDIID=M01, and task ID=T01, and sends the payment request to the payment device 102. The payment unit 102 registers the notification content in the payment information 250. The payment unit periodically executes, for example, once a month, a remittance process from the user of the SDI device 120 to the holder of the MDI device 150 that is the subject of task execution. Regarding the task (T01), a remittance process of Y1 (yen) from the user (P01) to the user (P05) is executed.
 決済情報250によれば、ユーザ(P01)のSDI装置120(S02)が発生させたサブタスク(T04)は、LDI装置160(L01:P11)により実行されている。このときの報酬額はY2(円)である。したがって、ユーザ(P01)からはLDI装置160(L01)の所有者であるユーザ(P11)にも報酬が支払われる。 According to the payment information 250, the subtask (T04) generated by the SDI device 120 (S02) of the user (P01) is executed by the LDI device 160 (L01:P11). The remuneration amount at this time is Y2 (yen). Therefore, the user (P01) also pays a reward to the user (P11) who is the owner of the LDI device 160 (L01).
 なお、依頼データが、MDI装置150からMDI装置150、LDI装置160からLDI装置160、あるいは、MDI装置150からLDI装置160に転送されるごとに、転送先となる計算装置は、転送内容を示す情報を決済装置102に送信してもよい。決済装置102は、決済情報250において、タスクの依頼者と実行者だけでなく、転送者も登録してもよい。また、決済装置102は、タスクの実行者だけでなく、タスクの転送者(中継者)にも報酬を支払うとしてもよい。ここでいう転送内容を示す情報には、タスクID、依頼者のユーザID、依頼側のSDI装置120のSDIID、転送者のユーザID、転送した計算装置のMDIIDまたはLDIIDが含まれる。 Note that each time request data is transferred from MDI device 150 to MDI device 150, from LDI device 160 to LDI device 160, or from MDI device 150 to LDI device 160, the destination computing device indicates the transfer content. The information may be sent to payment device 102. In the payment information 250, the payment device 102 may register not only the requestor and executor of the task but also the transferor. Further, the payment device 102 may pay a reward not only to the task executor but also to the task transferer (relayman). The information indicating the transfer content here includes the task ID, the requester's user ID, the SDI ID of the requesting SDI device 120, the transferer's user ID, and the MDIID or LDIID of the transferred computing device.
<小括>
 第1実施形態においては、SDI装置120が発生させるサブタスクは、MDIまたはLDIによって実行される。このため、高度な処理能力を備えていないSDI装置120であっても、MDI等の他の計算資源を活用することにより、多様なサービスを提供できる。また、MDI装置150等は引受条件を設定することにより、計算能力に余力があるときだけサブタスクを実行できる。したがって、MDI装置150等は本来の役割であるメインタスクを実行しつつ、メインタスクの処理負荷が大きくない時期に限ってSDI装置120から依頼されるサブタスクを実行できる。このような制御方法により、MDI装置150等の本来のパフォーマンスを落とすことなく、分散処理システム100に含まれるさまざまな計算資源を有効活用できる。
<Summary>
In the first embodiment, subtasks generated by the SDI device 120 are executed by MDI or LDI. Therefore, even if the SDI device 120 does not have advanced processing capabilities, it can provide a variety of services by utilizing other computational resources such as MDI. Furthermore, by setting acceptance conditions, the MDI device 150 and the like can execute subtasks only when there is surplus computing power. Therefore, the MDI device 150 and the like can execute subtasks requested by the SDI device 120 only when the processing load of the main task is not heavy, while executing the main task that is its original role. With such a control method, various computational resources included in the distributed processing system 100 can be effectively utilized without degrading the original performance of the MDI device 150 and the like.
 SDI装置120のユーザは、データの送信先やセキュリティ、環境保護などさまざまな観点を考慮して依頼条件を自由に設定できる。たとえば、再生可能エネルギーの活用を好むユーザは、再生可能エネルギーで駆動される計算装置をタスク実行主体とするように依頼条件を設定すればよい。 The user of the SDI device 120 can freely set request conditions in consideration of various aspects such as data destination, security, and environmental protection. For example, a user who prefers to utilize renewable energy may set request conditions such that a computing device powered by renewable energy is the primary task execution entity.
 サブタスクのうち、処理負荷が大きいものや、レスポンスが遅くても構わないものはLDIにより処理されればよい。第1実施形態におけるLDI装置160は、DIエンジン搭載の二次電池であるため、MDI装置150に比べるとメインタスクの負荷が軽い。このため、LDI装置160は、MDI装置150よりも処理負荷の大きなサブタスクを効率よく実行できる。一方、MDI装置150は、スマートフォン、自動車など、SDI装置120の身近に存在する装置である。このため、MDI装置150は、LDI装置160に比べると近隣のSDI装置120から依頼データを受信する機会が多い。 Among the subtasks, those with a large processing load or those for which a slow response is acceptable may be processed by LDI. Since the LDI device 160 in the first embodiment is a secondary battery equipped with a DI engine, the main task load is lighter compared to the MDI device 150. Therefore, the LDI device 160 can more efficiently execute subtasks that have a larger processing load than the MDI device 150. On the other hand, the MDI device 150 is a device that exists close to the SDI device 120, such as a smartphone or a car. Therefore, compared to the LDI device 160, the MDI device 150 has more opportunities to receive request data from the nearby SDI device 120.
 決済装置102は、サブタスクの依頼者から実行者への決済を実行する。MDI装置150等の所有者は、サブタスクを引き受けることにより収益を得ることができる。SDI装置120の所有者は、サブタスクを依頼したいMDI装置150等について依頼条件を自由に設定できる。たとえば、十分な計算能力を有するMDI装置150が選好されやすい状況においては、高価格であっても高品質なMDI装置150を導入することが経済合理的となる。あるいは、低消費電力のMDI装置150が好まれる場合にも、高価格であっても低消費電力のMDI装置150が導入されやすくなる。サブタスクの依頼者の好みが、MDI装置150およびLDI装置160の導入判断に影響を与えることになる。 The payment device 102 executes payment from the subtask requester to the executor. Owners of MDI devices 150, etc. can earn revenue by taking on subtasks. The owner of the SDI device 120 can freely set request conditions for the MDI device 150 or the like to which he or she wishes to request a subtask. For example, in a situation where an MDI device 150 with sufficient computing power is likely to be preferred, it is economically rational to introduce a high-quality MDI device 150 even if it is expensive. Alternatively, if an MDI device 150 with low power consumption is preferred, the MDI device 150 with low power consumption is likely to be introduced even if it is expensive. The preferences of the subtask requester will influence the decision to install the MDI device 150 and LDI device 160.
 決済装置102は、決済情報250に基づいて、SDI装置120に対して、サブタスクがどのようなMDI装置150等によって実行されたのかを示す明細書(以下、「実行明細書」とよぶ)を送信してもよい。実行明細書には、たとえば、タスク実行主体となったMDI装置150等の所在地、機能、仕様などを示す素性情報が含まれてもよい。SDI装置120のユーザは、実行明細書を参照することにより、サブタスクが誰によって実行されたのかを追跡できるので、サブタスクを他の計算装置に安心して依頼しやすくなる。ユーザは、依頼条件の設定により、サブタスクの実行範囲を家庭内、同一町内など地域的に限定してもよい。 Based on the payment information 250, the payment device 102 transmits to the SDI device 120 a statement indicating which MDI device 150 etc. executed the subtask (hereinafter referred to as "execution statement"). You may. The execution specification may include, for example, background information indicating the location, function, specifications, etc. of the MDI device 150 or the like that is the subject of task execution. By referring to the execution specification, the user of the SDI device 120 can track who executed a subtask, making it easier to request a subtask to another computing device with confidence. By setting the request conditions, the user may limit the execution range of the subtask regionally, such as within the home or within the same town.
<第1実施形態の変形例>
 第1実施形態においては、中継端末110においてサブタスクをMDI用またはLDI用として判断するとして説明した。これに限らず、SDI装置120においてサブタスクがMDI用またはLDI用のいずれであるかを判断してもよい。
<Modified example of the first embodiment>
In the first embodiment, it has been described that the relay terminal 110 determines whether the subtask is for MDI or LDI. The present invention is not limited to this, and the SDI device 120 may determine whether the subtask is for MDI or LDI.
 第1実施形態においては、中継端末110はサブタスクを実行することなく、MDI装置150またはLDI装置160にサブタスクを依頼するとして説明した。変形例として、中継端末110は自装置により実行条件が満たされるときには、自らサブタスクを実行してもよい。 In the first embodiment, the relay terminal 110 is described as requesting the MDI device 150 or LDI device 160 to perform the subtask without executing the subtask. As a modification, the relay terminal 110 may execute the subtask itself when the execution condition is satisfied by the relay terminal 110 itself.
 分散処理システム100の処理方法の一例として、スマートグラス108による撮像画像に行方不明者が映っているか判定するサブタスクが考えられる。この場合、スマートグラス108は、MDI装置150等に撮像画像を送信し、MDI装置150等は行方不明者の顔画像と照合することで、行方不明者の発見を補助してもよい。このような制御方法によれば、スマートグラス108のユーザは、行方不明者探索に協力できる。 As an example of the processing method of the distributed processing system 100, a subtask of determining whether a missing person is shown in the image captured by the smart glasses 108 can be considered. In this case, the smart glasses 108 may send the captured image to the MDI device 150 or the like, and the MDI device 150 or the like may assist in finding the missing person by comparing the captured image with the face image of the missing person. According to such a control method, the user of the smart glasses 108 can cooperate in searching for a missing person.
[第2実施形態]
 図14は、第2実施形態における分散処理システム100の概念図である。
 第2実施形態においては、SDIおよびMDIを特に区別せず、MDIと総称して説明する。第2実施形態においては、ショッピングモールで自律的に動作する複数のロボット262が「MDI装置150」として機能する。図14においては、ロボット262としてドローン252、案内ロボット254、掃除ロボット256、警備ロボット258、運搬ロボット260が示されている。このうち、運搬ロボット260は充電中であるとする。また、これらのロボット262は、LDIとも接続される。
[Second embodiment]
FIG. 14 is a conceptual diagram of the distributed processing system 100 in the second embodiment.
In the second embodiment, SDI and MDI are not particularly distinguished and will be collectively referred to as MDI. In the second embodiment, a plurality of robots 262 that operate autonomously in a shopping mall function as the "MDI device 150." In FIG. 14, a drone 252, a guide robot 254, a cleaning robot 256, a security robot 258, and a transport robot 260 are shown as robots 262. Among these, it is assumed that the transport robot 260 is being charged. These robots 262 are also connected to LDI.
 ドローン252は、ショッピングモール内を周回飛行し、定期的に撮像する。案内ロボット254は、接客を担当し、必要に応じて来客に案内情報を提供する。掃除ロボット256は、ショッピングモール内を走行し、床面を自動清掃する。警備ロボット258は、不審行動をしている人物を検出したとき、この人物に警告を発する。運搬ロボット260は、荷物を自動搬送する。いずれのロボット262もDIエンジンを搭載する。 The drone 252 flies around the shopping mall and periodically takes images. The guide robot 254 is in charge of customer service and provides guide information to visitors as necessary. The cleaning robot 256 travels within the shopping mall and automatically cleans the floor surface. When the security robot 258 detects a person acting suspiciously, it issues a warning to this person. The transport robot 260 automatically transports cargo. Both robots 262 are equipped with DI engines.
 各ロボット262は、いずれも、通信機能を備える移動装置である。また、第2実施形態においては各ロボット262が提供可能な特有の機能を「サービス」とよぶ。たとえば、掃除ロボット256は「床清掃」というサービスを提供可能であり、警備ロボット258は「警告」というサービスを提供可能である。 Each robot 262 is a mobile device equipped with a communication function. Furthermore, in the second embodiment, the unique functions that each robot 262 can provide are referred to as "services." For example, the cleaning robot 256 can provide a service called "floor cleaning," and the security robot 258 can provide a service called "warning."
 一例として、ドローン252はある地点P1にて屋内を撮像したとする。このとき、ドローン252は撮像画像および位置情報P1を含む依頼データを近くにいる案内ロボット254に送信する。この依頼データでは、撮像画像に「汚れ」が映っているかを検出するためのサブタスクが指定されている。第2実施形態におけるサブタスクの実行条件は「充電中であること」であるとする。
 この場合、分散処理システム100に含まれる複数のロボット262のうち、1以上のロボット262が常に充電中であることが望ましい。充電中のロボット262が存在していれば、このロボット262が最終的にサブタスクを引き受けることができる。
As an example, assume that the drone 252 images an indoor space at a certain point P1. At this time, the drone 252 transmits request data including the captured image and position information P1 to the nearby guide robot 254. This request data specifies a subtask for detecting whether "dirt" appears in the captured image. It is assumed that the execution condition of the subtask in the second embodiment is "charging".
In this case, it is desirable that one or more robots 262 among the plurality of robots 262 included in the distributed processing system 100 are always charging. If a charging robot 262 is present, this robot 262 can eventually take on the subtask.
 案内ロボット254は、充電中ではないので、依頼データを近くにいる掃除ロボット256に転送する。掃除ロボット256も充電中ではないので、依頼データを近くにいる警備ロボット258に転送する。警備ロボット258も充電中ではないので、依頼データを近くにいる運搬ロボット260に転送する。運搬ロボット260は、充電中なので、サブタスクを実行する。 Since the guide robot 254 is not charging, it transfers the request data to a nearby cleaning robot 256. Since the cleaning robot 256 is also not charging, the request data is transferred to the nearby security robot 258. Since the security robot 258 is also not charging, the request data is transferred to the nearby transport robot 260. Since the transport robot 260 is being charged, it executes the subtask.
 運搬ロボット260は、サブタスクを実行し、撮像画像において「床面の汚れ」を発見したとする。運搬ロボット260は、サブタスクの実行結果として、地点P1における「床清掃」が必要であると判定する。このとき、運搬ロボット260は、近くにいる警備ロボット258に、地点P1の床清掃サービスを求めるサービス指示情報を送信する。警備ロボット258は、床清掃サービスを提供できないので、サービス指示情報を近くにいる掃除ロボット256に送信する。掃除ロボット256は、床清掃サービスを提供可能である。掃除ロボット256はサービス指示情報により指定された地点P1に移動し、床清掃を実行する。 It is assumed that the transportation robot 260 executes a subtask and discovers "dirt on the floor" in the captured image. The transportation robot 260 determines that "floor cleaning" at the point P1 is necessary as a result of executing the subtask. At this time, the transportation robot 260 transmits service instruction information requesting a floor cleaning service at the point P1 to the nearby security robot 258. Since the security robot 258 cannot provide floor cleaning service, it transmits service instruction information to a nearby cleaning robot 256. The cleaning robot 256 can provide floor cleaning services. The cleaning robot 256 moves to the point P1 specified by the service instruction information and performs floor cleaning.
 第2実施形態の分散処理システム100においては、このように、複数のロボット262が連携することで、ショッピングモールで発生するさまざまな事象の認識とそれに対応したサービスを提供する。第2実施形態においても、ロボット262(MDI装置150)だけでなく、LDI装置160がサブタスクを実行してもよい。たとえば、充電中の運搬ロボット260は、自装置に十分な計算余力がないときには、LDI装置160に対してサブタスクの依頼データを送信してもよい。第2実施形態におけるLDI装置160も、大型二次電池のように、DIエンジンを搭載し、固定設置される計算装置であってもよい。 In the distributed processing system 100 of the second embodiment, the plurality of robots 262 cooperate in this way to recognize various events that occur in the shopping mall and provide corresponding services. In the second embodiment as well, not only the robot 262 (MDI device 150) but also the LDI device 160 may execute subtasks. For example, the transport robot 260 that is being charged may transmit subtask request data to the LDI device 160 when its own device does not have sufficient computing power. The LDI device 160 in the second embodiment may also be a fixedly installed computing device equipped with a DI engine, such as a large secondary battery.
 図15は、ロボット262の機能ブロック図である。
 ロボット262は、ユーザインタフェース処理部326、センシング部264、通信部266、駆動部268、データ処理部270およびデータ格納部272を含む。
 ユーザインタフェース処理部326は、タッチパネル等の入力デバイスを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。センシング部264は、カメラ、レーダ、ジャイロセンサ等の各種センサによる計測値を取得する。通信部266は、他のロボット262あるいはLDI装置160との通信処理を担当する。駆動部268は、プロペラ、車輪、ロボットハンドなど、ロボット262の各種駆動機構を制御する。データ格納部272は各種データを格納する。データ処理部270は、ユーザインタフェース処理部326から入力されたデータ、センシング部264により計測されたデータ、通信部266により受信されたデータおよびデータ格納部272に格納されているデータに基づいて各種処理を実行する。データ処理部270は、通信部266、センシング部264,ユーザインタフェース処理部326およびデータ格納部272のインタフェースとしても機能する。
FIG. 15 is a functional block diagram of the robot 262.
The robot 262 includes a user interface processing section 326, a sensing section 264, a communication section 266, a driving section 268, a data processing section 270, and a data storage section 272.
The user interface processing unit 326 accepts operations from the user via an input device such as a touch panel, and is also responsible for processing related to the user interface, such as image display and audio output. The sensing unit 264 acquires measurement values from various sensors such as a camera, radar, and gyro sensor. The communication unit 266 is in charge of communication processing with other robots 262 or the LDI device 160. The drive unit 268 controls various drive mechanisms of the robot 262, such as propellers, wheels, and robot hands. The data storage section 272 stores various data. The data processing unit 270 performs various processing based on data input from the user interface processing unit 326, data measured by the sensing unit 264, data received by the communication unit 266, and data stored in the data storage unit 272. Execute. The data processing section 270 also functions as an interface for the communication section 266, sensing section 264, user interface processing section 326, and data storage section 272.
 ユーザインタフェース処理部326は、入力部274および出力部276を含む。
 入力部274は、ユーザからの各種入力を受け付ける。出力部276は、ユーザに対して各種情報を出力する。
User interface processing section 326 includes an input section 274 and an output section 276.
The input unit 274 accepts various inputs from the user. The output unit 276 outputs various information to the user.
 通信部266は、送信部278と受信部280を含む。
 送信部278は、外部装置に各種データを送信する。受信部280は、外部装置から各種データを受信する。
Communication section 266 includes a transmitting section 278 and a receiving section 280.
The transmitter 278 transmits various data to an external device. The receiving unit 280 receives various data from an external device.
 送信部278は、センシング部264により計測されたデータを含む依頼データを他の装置に送信するデータ送信部282と、サブタスクの実行結果を送信する結果送信部284を含む。第2実施形態における依頼データには、計測されたデータのほか、タスクハンドラおよびロボットを識別するロボットIDが含まれる。受信部280は、依頼データ等を受信するデータ受信部286と、サブタスクの実行結果を受信する結果受信部288を含む。 The transmitting unit 278 includes a data transmitting unit 282 that transmits request data including data measured by the sensing unit 264 to other devices, and a result transmitting unit 284 that transmits the execution results of the subtask. In addition to measured data, the request data in the second embodiment includes robot IDs that identify task handlers and robots. The receiving unit 280 includes a data receiving unit 286 that receives request data and the like, and a result receiving unit 288 that receives the execution results of subtasks.
 データ処理部270は、実行判定部290、タスク実行部292、サービス提供部294、サービス特定部296、サービス判定部298、タスク依頼部321およびサービス依頼部320を含む。
 実行判定部290は、他のロボット(移動装置)から依頼データを受信したとき、自装置でサブタスクを引き受け可能か判断する。第2実施形態においては、実行判定部290は自装置が充電中であればサブタスクを引き受け可能と判断する。判断方法は第1実施形態と同様であってもよい。
The data processing unit 270 includes an execution determination unit 290, a task execution unit 292, a service provision unit 294, a service identification unit 296, a service determination unit 298, a task request unit 321, and a service request unit 320.
When the execution determination unit 290 receives request data from another robot (mobile device), it determines whether the robot itself can accept the subtask. In the second embodiment, the execution determination unit 290 determines that the subtask can be accepted if the own device is charging. The determination method may be the same as in the first embodiment.
 タスク依頼部321は、自装置でサブタスクを実行しないとき、他の移動装置にサブタスクを依頼する。タスク実行部292は、各種タスクを実行する。タスク実行部292は、メインタスクを実行するメインタスク実行部322と、サブタスクを実行するサブタスク実行部324を含む。ロボット262のメインタスクとは、ロボット262に特有のサービスを実行するための演算である。第2実施形態においても、サブタスク実行部324の機能は、ロボット262に搭載されるDIエンジンにより実現される。 When the task requesting unit 321 does not execute a subtask on its own device, it requests a subtask from another mobile device. The task execution unit 292 executes various tasks. The task execution unit 292 includes a main task execution unit 322 that executes a main task, and a subtask execution unit 324 that executes a subtask. The main task of the robot 262 is an operation for executing a service specific to the robot 262. In the second embodiment as well, the functions of the subtask execution unit 324 are realized by the DI engine installed in the robot 262.
 サービス提供部294は、メインタスクまたはサブタスクの実行結果にしたがって駆動部268を制御することでロボット262に特有のサービスを提供する。サービス特定部296は、サブタスク実行部324によるサブタスクの実行結果に基づいて実行すべきサービスを判定する。サービス判定部298は、自装置が、特定されたサービスの実行可能か否かを判定する。サービス依頼部320は他のロボット262にサービスを依頼する。より具体的には、サービス依頼部320はサブタスクの実行結果に基づいてサービス指示情報を生成し、結果送信部284に指示してサービス指示情報を他のロボット262に送信させる。 The service providing unit 294 provides a service specific to the robot 262 by controlling the driving unit 268 according to the execution result of the main task or subtask. The service identification unit 296 determines the service to be executed based on the result of the subtask execution by the subtask execution unit 324. The service determination unit 298 determines whether or not the own device is capable of executing the specified service. The service requesting unit 320 requests services from other robots 262. More specifically, the service requesting unit 320 generates service instruction information based on the execution results of the subtasks, and instructs the result transmitting unit 284 to transmit the service instruction information to the other robots 262.
 図16は、サービス定義情報330のデータ構造図である。
 図16に示すサービス定義情報330は、ロボットID=R01の掃除ロボット256のデータ格納部272に格納される。サービス定義情報330は、ロボット262が提供可能なサービスを定義する情報である。
FIG. 16 is a data structure diagram of the service definition information 330.
The service definition information 330 shown in FIG. 16 is stored in the data storage unit 272 of the cleaning robot 256 with robot ID=R01. Service definition information 330 is information that defines services that can be provided by robot 262.
 各サービスはサービスIDにより識別される。掃除ロボット256(R01)は、サービスID=V01により識別されるサービス「移動」と、サービスID=V02により識別されるサービス「床掃除」を提供可能である。ドローン252は「飛行」と「撮影」というサービスを提供可能である。案内ロボット254は「案内」「移動」「声掛け」というサービスを提供可能である。警備ロボット258は「移動」「警告」「撮像」というサービスを提供可能である。運搬ロボット260は「移動」「運搬」というサービスを提供可能である。このように、ロボット262ごとに独自のサービス定義情報330を有する。 Each service is identified by a service ID. The cleaning robot 256 (R01) can provide the service "movement" identified by service ID=V01 and the service "floor cleaning" identified by service ID=V02. The drone 252 can provide the services of "flight" and "photography". The guide robot 254 can provide services such as "guidance," "movement," and "calling out." The security robot 258 can provide services such as "movement", "warning", and "imaging". The transportation robot 260 can provide services such as "movement" and "transportation." In this way, each robot 262 has its own service definition information 330.
 上述したように、いずれかのロボット262によるセンシングを契機としてサブタスクが発生する。サブタスクの実行結果として、「床掃除」などのサービスが必要となる。このときには、サービス「床掃除」を提供可能な掃除ロボット256が対応する。 As described above, a subtask is generated in response to sensing by one of the robots 262. As a result of the execution of the subtask, a service such as "floor cleaning" is required. At this time, the cleaning robot 256 that can provide the service "floor cleaning" is responsible.
 なお、上記はあくまでも一例であり、各ロボット262(MDI装置150)が提供可能なサービスはこれに限られるものではない。このほかにも、子どもにゲームを提供するロボット262、アニメーションを表示することのできるロボット262、散髪をするロボット262、警察などの外部機関に通報するロボット262など、さまざまなサービスが考えられる。 Note that the above is just an example, and the services that each robot 262 (MDI device 150) can provide are not limited to this. In addition, various other services can be considered, such as a robot 262 that provides games to children, a robot 262 that can display animations, a robot 262 that gives haircuts, and a robot 262 that reports to outside agencies such as the police.
 図17は、ロボット262が依頼データを受信したときの処理過程を示すフローチャートである。
 実行判定部290は、依頼データが他のロボット262から受信されたとき、サブタスクを引き受け可能か否か判定する(S44)。サブタスクを引き受け可能であれば(S44のY)、サブタスク実行部324はサブタスクを実行する(S46)。サービス特定部296は、サブタスクの処理結果に基づいて実行すべきサービスを特定する(S48)。なんらかのサービスが必要であれば(S48のY)、サービス依頼部320はサービスIDを含むサービス指示情報をデータ送信部282に送信させる(S50)。データ送信部282は、指定されたサービス指示情報を他のロボット262に送信する。サービスの実行が不要であれば(S48のN)、S50の処理はスキップされる。
 なお、自装置でサービスを実行可能であれば、S50の段階で、サービス提供部294はサービスを提供する。
FIG. 17 is a flowchart showing a processing process when the robot 262 receives request data.
When the request data is received from another robot 262, the execution determination unit 290 determines whether the subtask can be accepted (S44). If the subtask can be accepted (Y in S44), the subtask execution unit 324 executes the subtask (S46). The service identifying unit 296 identifies the service to be executed based on the processing results of the subtasks (S48). If any service is required (Y in S48), the service requesting unit 320 causes the data transmitting unit 282 to transmit service instruction information including the service ID (S50). The data transmitter 282 transmits the designated service instruction information to the other robots 262. If the service does not need to be executed (N at S48), the process at S50 is skipped.
Note that if the service can be executed by the own device, the service providing unit 294 provides the service at step S50.
 サブタスクを引き受け不可能であれば(S44のN)、タスク依頼部321は他のロボット262を選択する(S52)。タスク依頼部321は、データ送信部282に指示して、選択したロボット262に対して依頼データを送信させる(S54)。第1実施形態と同様に、いずれかのロボット262がサブタスクを引き受け可能となるまで、依頼データはロボット262間を転送される。ロボット262ではなく、LDI装置160がサブタスクを実行してもよい。 If the subtask cannot be accepted (N at S44), the task requesting unit 321 selects another robot 262 (S52). The task requesting unit 321 instructs the data transmitting unit 282 to transmit request data to the selected robot 262 (S54). Similar to the first embodiment, request data is transferred between robots 262 until one of the robots 262 is able to take on the subtask. LDI device 160, rather than robot 262, may perform the subtasks.
 ロボット262は、ビーコン等の既知の手段により、周辺にどのようなロボット262がいるかを定期的に把握してもよい。より具体的には、ロボット262は、定期的にビーコン(探索信号)を周辺に送信し、ビーコンを受信したロボット262は送信元に対して、自装置のロボットIDとともに自装置が提供可能なサービスIDを返信する。S50において、ロボット262は、特定したサービスを他のロボット262に依頼するときには、周辺に存在するロボット262のうち、必要なサービスを提供可能なロボット262を選んでサービス指示情報を送信するとしてもよい。 The robot 262 may periodically learn what kind of robots 262 are around by using known means such as a beacon. More specifically, the robot 262 periodically transmits a beacon (search signal) to its surroundings, and upon receiving the beacon, the robot 262 informs the sender of the services that it can provide along with its own robot ID. Reply with your ID. In S50, when requesting the specified service from another robot 262, the robot 262 may select a robot 262 that can provide the necessary service from among the robots 262 existing in the vicinity and transmit the service instruction information. .
 図18は、ロボット262がサービス指示情報を受信したときの処理過程を示すフローチャートである。
 サービス判定部298は、サービス指示情報において指定されるサービスを提供可能か判定する(S58)。提供可能であれば(S58のY)、サービス提供部294は指定されたサービスを提供する(S60)。サブタスクによっては複数のサービスが必要になる場合もある。たとえば、床掃除をしたあとに、現地に立入禁止の看板を立てるというサービスが必要になる場合も考えられる。
FIG. 18 is a flowchart showing a processing process when the robot 262 receives service instruction information.
The service determination unit 298 determines whether the service specified in the service instruction information can be provided (S58). If it is possible to provide the specified service (Y in S58), the service providing unit 294 provides the specified service (S60). Depending on the subtask, multiple services may be required. For example, it may be necessary to provide a service such as erecting a no-trespassing sign on-site after cleaning the floor.
 自装置では提供不可能なサービスが残っている場合には(S62のY)、タスク依頼部321は他のロボット262にサービスを依頼する(S64)。自装置で提供不可能なサービスが残っていない場合には(S62のN)、S64の処理はスキップされる。 If there remains a service that cannot be provided by the robot itself (Y at S62), the task requesting unit 321 requests the service from another robot 262 (S64). If there are no remaining services that cannot be provided by the device itself (N at S62), the process at S64 is skipped.
 サービスを提供不可能なときには、サービス依頼部320は他のロボット262を選択し(S66)、サービスの提供を依頼する(S64)。 When the service cannot be provided, the service requesting unit 320 selects another robot 262 (S66) and requests the robot 262 to provide the service (S64).
<小括>
 第2実施形態における分散処理システム100においては、複数のロボット262がセンシング、サブタスクの実行、サービスの提供を分担することにより、全体として処理を分散させることができる。このような構成によれば、ロボット262の1台あたりの処理負荷を軽減できる。図14に示した分散処理システム100の場合、ドローン252は周回飛行と定期的な撮像機能のみを備えればよい。「床清掃」の要否を判断するサブタスクは、充電中の運搬ロボット260により実行される。また、「床清掃」というサービスは、運搬ロボット260から警備ロボット258を経由して掃除ロボット256に指示される。掃除ロボット256は、サービス指示情報により指定された地点に移動して床清掃を実行すればよい。
<Summary>
In the distributed processing system 100 according to the second embodiment, the plurality of robots 262 share sensing, execution of subtasks, and provision of services, so that processing can be distributed as a whole. According to such a configuration, the processing load per robot 262 can be reduced. In the case of the distributed processing system 100 shown in FIG. 14, the drone 252 only needs to have a circular flight and regular imaging function. The subtask of determining whether "floor cleaning" is necessary is executed by the charging robot 260. Further, the service "floor cleaning" is instructed from the transportation robot 260 to the cleaning robot 256 via the security robot 258. The cleaning robot 256 may move to a location specified by the service instruction information and clean the floor.
 ドローン252は上空からショッピングモールの床面をくまなく監視できる。このため、地上を走行する掃除ロボット256よりも、効率的な監視が可能となる。複数のロボット262が連携することで、さまざまなサービスを効率的に提供できる。 The drone 252 can monitor the entire floor of the shopping mall from above. Therefore, more efficient monitoring is possible than with the cleaning robot 256 that travels on the ground. By coordinating multiple robots 262, various services can be provided efficiently.
<第2実施形態の変形例>
 匂いセンサを搭載したロボット262が匂い情報の解析を依頼し、他のロボット262が異臭であるか否かを判定してもよい。異臭の場合には、誘導機能を有するロボット262が利用客を避難誘導してもよい。このほか、迷子が検出されたときには、子どもに声をかけ、子どもを撮影して子どもの特徴を含めて場内アナウンスするサービスが提供されてもよい。
<Modified example of second embodiment>
The robot 262 equipped with an odor sensor may request analysis of odor information, and the other robots 262 may determine whether or not the odor is abnormal. In the case of a strange odor, a robot 262 with a guiding function may guide the passengers to evacuate. In addition, when a lost child is detected, a service may be provided that calls out to the child, takes a picture of the child, and makes an announcement in the venue including the characteristics of the child.
[第3実施形態]
 図19は、第3実施形態における分散処理システム100の概念図である。
 第3実施形態におけるMDI装置150は、社会基盤設備として構成される。社会基盤設備とは、交通、安全、警備、観測、情報提供など、社会的・産業的な役割を担うために設置される装置である。社会基盤設備となるMDI装置150としては、監視カメラ、人感センサ、人流を計測するカメラ、デジタルサイネージ、環境センサ、AED(Automated External Defibrillator)、信号機、無線基地局、雨量計、積雪計、風向計、太陽光発電所の太陽電池、街灯、スマートポール(SmartPole)、気圧計などさまざまなものが考えられる。第3実施形態におけるMDI装置150もDIエンジンを搭載する。
[Third embodiment]
FIG. 19 is a conceptual diagram of a distributed processing system 100 in the third embodiment.
The MDI device 150 in the third embodiment is configured as social infrastructure equipment. Social infrastructure equipment is equipment installed to play social and industrial roles such as transportation, safety, security, observation, and information provision. The MDI device 150 serving as social infrastructure equipment includes a surveillance camera, a human sensor, a camera that measures the flow of people, a digital signage, an environmental sensor, an AED (Automated External Defibrillator), a traffic light, a wireless base station, a rain gauge, a snow gauge, and a wind direction. Possible devices include meters, solar cells in solar power plants, street lights, smart poles, and barometers. The MDI device 150 in the third embodiment is also equipped with a DI engine.
 MDI装置150において、装置本来の社会基盤設備としての仕事がメインタスクであり、SDI装置120のための仕事がサブタスクとなる。MDI装置150に搭載されるDIエンジンがメインタスクと並行してサブタスクを実行する。第3実施形態においても、MDI装置150だけでなく、LDI装置160がサブタスクを実行してもよい。たとえば、環境センサとして構成されるMDI装置150がサブタスクを依頼されたときであって、このMDI装置150に十分な計算余力がないときには、MDI装置150はLDI装置160にサブタスクを依頼してもよい。 In the MDI device 150, the main task is the device's work as a social infrastructure facility, and the work for the SDI device 120 is a subtask. The DI engine installed in the MDI device 150 executes subtasks in parallel with the main task. In the third embodiment as well, not only the MDI device 150 but also the LDI device 160 may execute the subtask. For example, when the MDI device 150 configured as an environmental sensor is requested to perform a subtask, and this MDI device 150 does not have sufficient calculation capacity, the MDI device 150 may request the LDI device 160 to perform the subtask. .
 第3実施形態におけるSDI装置120としては、スマートフォンなど携帯可能なモバイル端末などが想定される。MDI装置150が各所に設置されるエリア内であれば、SDI装置120はいつでもサブタスクをMDIに依頼できる。SDI装置120は、最寄りのMDI装置150を選んでサブタスクを依頼する。この場合、SDI装置120からサブタスクを取得したMDI装置150がタスク分配装置101として機能してもよいし、SDI装置120自身がタスク分配装置101として機能してもよい。 As the SDI device 120 in the third embodiment, a portable mobile terminal such as a smartphone is assumed. As long as the SDI device 120 is within an area where MDI devices 150 are installed at various locations, the SDI device 120 can request subtasks to the MDI at any time. The SDI device 120 selects the nearest MDI device 150 and requests the subtask. In this case, the MDI device 150 that has acquired the subtask from the SDI device 120 may function as the task distribution device 101, or the SDI device 120 itself may function as the task distribution device 101.
 図20は、監視カメラ151の機能ブロック図である。
 監視カメラ151は、第3実施形態におけるMDI装置150の一例である。監視カメラ151は、カメラとして構成されるセンシング部342、通信部344、データ処理部346およびデータ格納部348を含む。
 センシング部342は、カメラにより撮像画像を取得する。通信部344は、他のMDI装置150あるいはLDI装置160との通信処理を担当する。データ格納部348は各種データを格納する。データ処理部346は、センシング部342により取得された撮像画像、通信部344により受信されたデータおよびデータ格納部348に格納されているデータに基づいて各種処理を実行する。データ処理部346は、通信部344、センシング部342およびデータ格納部348のインタフェースとしても機能する。
FIG. 20 is a functional block diagram of the surveillance camera 151.
The surveillance camera 151 is an example of the MDI device 150 in the third embodiment. The surveillance camera 151 includes a sensing section 342, a communication section 344, a data processing section 346, and a data storage section 348 configured as a camera.
The sensing unit 342 acquires a captured image using a camera. The communication unit 344 is in charge of communication processing with other MDI devices 150 or LDI devices 160. The data storage unit 348 stores various data. The data processing unit 346 executes various processes based on the captured image acquired by the sensing unit 342, data received by the communication unit 344, and data stored in the data storage unit 348. The data processing section 346 also functions as an interface for the communication section 344, sensing section 342, and data storage section 348.
 通信部344は、送信部350と受信部352を含む。
 送信部350は、外部装置に各種データを送信する。受信部352は、外部装置から各種データを受信する。
Communication section 344 includes a transmitting section 350 and a receiving section 352.
The transmitter 350 transmits various data to an external device. The receiving unit 352 receives various data from an external device.
 送信部350は、SDI装置120等の他の計算装置から受信した依頼データを他の装置に送信するデータ送信部354と、サブタスクの実行結果を送信する結果送信部356を含む。受信部352は、依頼データ等を受信するデータ受信部358と、サブタスクの実行結果を受信する結果受信部360を含む。 The transmitting unit 350 includes a data transmitting unit 354 that transmits request data received from other computing devices such as the SDI device 120 to other devices, and a result transmitting unit 356 that transmits the execution results of subtasks. The receiving unit 352 includes a data receiving unit 358 that receives request data and the like, and a result receiving unit 360 that receives the execution results of subtasks.
 データ処理部346は、実行判定部368、タスク実行部362およびタスク依頼部370を含む。
 実行判定部368は、SDI装置120等の他の計算装置から依頼データを受信したとき、自装置でサブタスクを引き受け可能か判断する。判断方法は第1実施形態と同様であってもよい。タスク依頼部370は、自装置でサブタスクを実行しないとき、他の計算装置にサブタスクの実行を依頼する。タスク実行部362は、各種タスクを実行する。タスク実行部362は、メインタスクを実行するメインタスク実行部364とサブタスクを実行するサブタスク実行部366を含む。監視カメラ151のメインタスクは「撮像画像の取得」である。第3実施形態においても、サブタスク実行部366の機能は、監視カメラ151に搭載されるDIエンジンにより実現される。
 監視カメラ151以外のMDI装置150についても基本的には同様である。
The data processing unit 346 includes an execution determination unit 368, a task execution unit 362, and a task request unit 370.
When the execution determination unit 368 receives request data from another computing device such as the SDI device 120, it determines whether the own device can accept the subtask. The determination method may be the same as in the first embodiment. When the task requesting unit 370 does not execute a subtask on its own device, it requests another computing device to execute the subtask. The task execution unit 362 executes various tasks. The task execution unit 362 includes a main task execution unit 364 that executes a main task and a subtask execution unit 366 that executes a subtask. The main task of the surveillance camera 151 is "obtaining captured images." In the third embodiment as well, the functions of the subtask execution unit 366 are realized by the DI engine installed in the surveillance camera 151.
The same is basically true for MDI devices 150 other than the surveillance camera 151.
 図21は、第3実施形態においてMDI装置150が依頼データを受信したときの処理過程を示すフローチャートである。
 MDI装置150のデータ受信部358は、SDI装置120または他のMDI装置150から依頼データを受信する。SDI装置120から依頼データを受信したときには(S70のY)、タスク依頼部370は依頼データで示されるサブタスクがMDI用とLDI用のいずれであるかを判定する(S72)。SDI装置120ではなくMDI装置150から依頼データを受信したときには(S70のY)、MDI用のサブタスクとして判定済みなのでS72の処理はスキップされる。
FIG. 21 is a flowchart showing a processing process when the MDI device 150 receives request data in the third embodiment.
The data receiving unit 358 of the MDI device 150 receives request data from the SDI device 120 or another MDI device 150. When request data is received from the SDI device 120 (Y in S70), the task request unit 370 determines whether the subtask indicated by the request data is for MDI or LDI (S72). When the request data is received from the MDI device 150 instead of the SDI device 120 (Y in S70), the process in S72 is skipped because it has been determined as an MDI subtask.
 MDI用のサブタスクが依頼されたときには(S72のY)、実行判定部368は自装置にてサブタスクを引き受け可能か判定する(S74)。引き受け可能であれば(S74のY)、サブタスク実行部366はサブタスクを実行する(S76)。結果送信部356は、サブタスクの実行結果を依頼元の計算装置に送信する(S78)。 When a subtask for MDI is requested (Y in S72), the execution determination unit 368 determines whether the own device can accept the subtask (S74). If the task can be accepted (Y in S74), the subtask execution unit 366 executes the subtask (S76). The result transmitting unit 356 transmits the execution result of the subtask to the requesting computing device (S78).
 引き受け不可であれば(S74のN)、タスク依頼部370はサブタスクの依頼先となる他のMDI装置150を選択する(S80)。タスク依頼部370は、データ送信部354に指示して、依頼データを送信させる(S82)。 If the task cannot be accepted (N at S74), the task requesting unit 370 selects another MDI device 150 to which the subtask is requested (S80). The task requesting unit 370 instructs the data transmitting unit 354 to transmit the request data (S82).
 LDI用のサブタスクが依頼されたときには(S72のN)、タスク依頼部370は依頼先となるLDI装置160を選択する(S84)。タスク依頼部370は、データ送信部354に指示して、依頼データを送信させることでサブタスクを他のLDI装置160に依頼する(S86)。
 LDI装置160が他の計算装置から依頼データを受信したときの処理過程は、図12に関連して説明したフローチャートと基本的に同様である。
When a subtask for LDI is requested (N at S72), the task requesting unit 370 selects the LDI device 160 to which the request is made (S84). The task requesting unit 370 requests the subtask to another LDI device 160 by instructing the data transmitting unit 354 to transmit request data (S86).
The processing process when the LDI device 160 receives request data from another computing device is basically the same as the flowchart described in connection with FIG. 12.
 第3実施形態では決済処理は実行されないが、第1実施形態と同様にして決済処理が実行されてもよい。 Although payment processing is not performed in the third embodiment, payment processing may be performed in the same manner as in the first embodiment.
<小括>
 IoT(Internet of Things)関連技術の発達にともない、今後、より多くの社会基盤設備が処理機能と通信機能を備えると想定される。社会基盤設備にDIエンジンを搭載することにより、MDI装置150として機能させることが可能となる。
<Summary>
With the development of IoT (Internet of Things) related technologies, it is expected that more social infrastructure equipment will be equipped with processing and communication functions in the future. By installing a DI engine in social infrastructure equipment, it becomes possible to make it function as an MDI device 150.
 多くの社会基盤設備(MDI装置150)には、本来の仕事であるメインタスクの処理負荷がそれほど多くない時間帯(遊休時間帯)が存在する。大量のMDI装置150の遊休時間帯を利用することで、第1実施形態と同様、SDI装置120に対してさまざまなサービスを提供可能となる。 Many social infrastructure facilities (MDI devices 150) have time periods (idle time periods) when the processing load of the main task, which is the original work, is not so heavy. By utilizing the idle time slots of a large number of MDI devices 150, it is possible to provide various services to the SDI devices 120, as in the first embodiment.
 社会基盤設備(MDI装置150)がサブタスクを請け負うことで、SDI装置120の処理能力を軽減できる。これは、スマートフォン、ウェアラブル端末等のSDI装置120の低価格化・低消費電力化・小型軽量化にも寄与する。社会基盤設備(MDI装置150)がさまざまなSDI装置120に対して、公共サービスとして計算機能を提供することで、多くのユーザはシンプルなSDI装置120にて高度なサービスを享受できる。 By having the social infrastructure equipment (MDI device 150) undertake subtasks, the processing capacity of the SDI device 120 can be reduced. This also contributes to lower prices, lower power consumption, and smaller and lighter SDI devices 120 such as smartphones and wearable terminals. Since the social infrastructure equipment (MDI device 150) provides calculation functions as a public service to various SDI devices 120, many users can enjoy advanced services with a simple SDI device 120.
 たとえば、スマートポール(MDI装置150)による画像処理の結果を自動車(SDI装置120)に伝えることが考えられる。あるいは、自動車の車載カメラ(SDI装置120)が撮像画像をスマートポール(MDI装置150)に送信し、スマートポールが撮像画像に基づいて自動車に危険の有無を通知してもよい。車載カメラだけでなく、スマートポールなどの社会基盤設備が搭載するカメラやセンサに基づく処理との協働により、社会基盤設備を利用した高度な自動運転も可能になると考えられる。 For example, it is conceivable to transmit the results of image processing by a smart pole (MDI device 150) to a car (SDI device 120). Alternatively, an on-vehicle camera (SDI device 120) of the vehicle may transmit a captured image to a smart pole (MDI device 150), and the smart pole may notify the vehicle of the presence or absence of danger based on the captured image. In addition to in-vehicle cameras, collaboration with processing based on cameras and sensors installed in social infrastructure equipment such as smart poles is expected to enable highly automated driving using social infrastructure equipment.
 一例として、スマートポールが走行中の自動車を撮像し、他のMDI装置150と連携してこの自動車が危険な運転をしているかを判定してもよい。危険と判定されたときには、自動車の近くにあるMDI装置150が、この自動車に対して緊急停止命令を送信する。自動車が搭載するDIエンジンは、緊急停止命令を受けたときには、自動車を路肩に安全停止させるタスクを実行してもよい。このような制御方法によれば、危険な運転をしている自動車を強制的に安全停止させることが可能となる。 As an example, a smart pole may take an image of a moving car and determine whether this car is driving dangerously in cooperation with other MDI devices 150. When it is determined that the vehicle is dangerous, the MDI device 150 located near the vehicle transmits an emergency stop command to the vehicle. When a DI engine installed in a vehicle receives an emergency stop command, it may perform the task of bringing the vehicle to a safe stop on the roadside. According to such a control method, it is possible to force a car that is driving dangerously to a safe stop.
<その他の変形例>
 図22は、LDI装置160からのサブタスクの分散方法を説明するための模式図である。
 LDI装置160は「データ分割部」を備えてもよい。データ分割部は、処理対象となるデータを複数に分割する。たとえば、図22に示すLDI装置160(L01)は、SDI装置120またはMDI装置150から、データ(D)と、サブタスク(T1)のタスクハンドラを含む依頼データを受信したとする。
<Other variations>
FIG. 22 is a schematic diagram for explaining a method for distributing subtasks from the LDI device 160.
The LDI device 160 may include a "data division section." The data dividing unit divides the data to be processed into a plurality of pieces. For example, assume that the LDI device 160 (L01) shown in FIG. 22 receives request data including data (D) and a task handler for a subtask (T1) from the SDI device 120 or the MDI device 150.
 LDI装置160(L01)のデータ分割部は、データ(D)をデータ(D1)、データ(D2)、データ(D3)、データ(D4)に4分割する。LDI装置160(L01)は、タスクハンドラ(T1)およびデータ(D1)を含む依頼データをLDI装置160(L02)に送信する。LDI装置160(L02)はデータ(D1)の処理結果をLDI装置160(L01)に戻す。 The data dividing unit of the LDI device 160 (L01) divides data (D) into four parts: data (D1), data (D2), data (D3), and data (D4). The LDI device 160 (L01) transmits request data including a task handler (T1) and data (D1) to the LDI device 160 (L02). The LDI device 160 (L02) returns the processing result of the data (D1) to the LDI device 160 (L01).
 同様にして、LDI装置160(L01)は、タスクハンドラ(T1)およびデータ(D2)を含む依頼データをLDI装置160(L02)に送信する。データ(D3)、データ(D4)はそれぞれLDI装置160(L03)、LDI装置160(L04)に送信される。LDI装置160(L01)は、4つのLDI装置160から受信したデータ(D1)~データ(D4)それぞれの処理結果をまとめ、依頼元であるMDI装置150またはSDI装置120にデータ(D)の処理結果を送信する。 Similarly, the LDI device 160 (L01) transmits request data including the task handler (T1) and data (D2) to the LDI device 160 (L02). Data (D3) and data (D4) are transmitted to LDI device 160 (L03) and LDI device 160 (L04), respectively. The LDI device 160 (L01) summarizes the processing results of data (D1) to data (D4) received from the four LDI devices 160, and sends the requesting MDI device 150 or SDI device 120 to process the data (D). Submit your results.
 このように、大きなサイズのデータ(D)を分割して複数のLDI装置160に並列処理させることにより、データ(D)の処理を高速化できる。 In this way, by dividing the large size data (D) and having the plurality of LDI devices 160 process it in parallel, the processing of the data (D) can be sped up.
 たとえば、データ(D)が動画像であって、この動画像に特定人物Xが映っているか判別するサブタスクを想定する。このような場合においては、LDI装置160(L01)は動画像を複数に分割して、複数のLDI装置160にサブタスクを分散処理させてもよい。 For example, assume that data (D) is a moving image, and a subtask is to determine whether a specific person X is shown in this moving image. In such a case, the LDI device 160 (L01) may divide the moving image into multiple parts and have the multiple LDI devices 160 process subtasks in a distributed manner.
 別例として、LDI装置160は、集合住宅の各家庭に設置されるDIエンジン搭載の大型二次電池であるとする。集合住宅の入口の入館管理装置(SDI装置120)はエントランス前で、入館希望者の撮像画像を取得し、撮像画像をLDI装置160(L01)に送信する。LDI装置160(L01)は、この撮像画像を各家庭に備えられるLDI装置160に送信する。ある家庭のLDI装置160(L02)は、入館希望者の撮像画像と家族の撮像画像を比較し、入館希望者が自分の家族の一員であるか否かを判定する。他の家庭のLDI装置160も同様の判定処理を実行する。 As another example, it is assumed that the LDI device 160 is a large secondary battery equipped with a DI engine installed in each household in an apartment complex. The entrance management device (SDI device 120) at the entrance of the apartment complex acquires a captured image of a person wishing to enter in front of the entrance, and transmits the captured image to the LDI device 160 (L01). The LDI device 160 (L01) transmits this captured image to the LDI device 160 provided in each home. The LDI device 160 (L02) of a certain household compares a captured image of a person who wishes to enter the facility with a captured image of a family member, and determines whether or not the person who desires to enter the facility is a member of his or her family. The LDI devices 160 in other homes also perform similar determination processing.
 LDI装置160(L01)は、入館希望者がいずれかの家庭の一員であれば、入館管理装置に解錠を指示する。このような制御方法によれば、集合住宅の住人は、入館管理装置に顔を見せるだけで集合住宅に入室できる。一方、いずれのLDI装置160にも登録されていない入館希望者の入館は禁止される。また、複数のLDI装置160による分散処理方式であるため、顔認証処理を高速化できる。 The LDI device 160 (L01) instructs the admission management device to unlock the facility if the person wishing to enter the facility is a member of any household. According to such a control method, residents of an apartment complex can enter the apartment complex simply by showing their faces to the entrance control device. On the other hand, those who wish to enter the facility who are not registered in any of the LDI devices 160 are prohibited from entering the facility. Furthermore, since it is a distributed processing method using a plurality of LDI devices 160, it is possible to speed up face authentication processing.
 LDI装置160は、「タスク分解部」と「タスク分配部」を備えてもよい。LDI装置160は、データを分割するのではなく、サブタスクをより下位のサブタスクに分割してもよい。たとえば、店舗への入店者の撮像画像から、性別の推定、年齢の推定、既存顧客か新規顧客か、など複数の観点から入店者を分析したい場合がある。このような場合においては、LDI装置160(L01)のタスク分配部は、入店者判定というサブタスクを「性別を推定する下位のサブタスクT1」「年齢を推定する下位のサブタスクT2」「既存顧客が新規顧客かを判断する下位のサブタスクT3」に分解する。タスク分配部は、これら3種類のサブタスクを3つのLDI装置160に割り当てることで、複数種類の下位のサブタスクを並列処理させてもよい。 The LDI device 160 may include a “task decomposition unit” and a “task distribution unit”. Rather than dividing the data, the LDI device 160 may divide the subtask into lower-level subtasks. For example, it may be desirable to analyze a captured image of a person entering a store from multiple perspectives, such as estimating gender, estimating age, and whether the person is an existing customer or a new customer. In such a case, the task distribution unit of the LDI device 160 (L01) divides the subtask of determining the person entering the store into "lower subtask T1 for estimating gender," "lower subtask T2 for estimating age," and "lower subtask T2 for estimating age." It is broken down into a lower subtask T3 for determining whether the customer is a new customer. The task distribution unit may allocate these three types of subtasks to the three LDI devices 160 to process multiple types of lower level subtasks in parallel.
 このほか、画像を暗号化するときには、画像を複数のパーツに分けて、パーツごとに暗号化してもよい。この場合、複数のLDI装置160がパーツごとに暗号化を担当してもよい。復号についても同様である。なお、図22ではLDIを対象として説明したが、MDIについても同様である。 In addition, when encrypting an image, the image may be divided into multiple parts and each part may be encrypted. In this case, a plurality of LDI devices 160 may be responsible for encrypting each part. The same applies to decoding. Note that, although the explanation in FIG. 22 is based on LDI, the same applies to MDI.
 図23は、変形例において、サブタスクの実行可否の判定方法を説明するための模式図である。
 本実施形態においては、依頼元となるMDI装置150等が依頼条件を含む依頼データを依頼先となるMDI装置150等に送信し、依頼データを受信したMDI装置150等がサブタスクを引き受けるか否かを判定するとして説明した。変形例として、依頼元となるMDI装置150等が、依頼先候補から仕様情報あるいは引受条件をあらかじめ確認した上で、依頼データの送信先を決めるとしてもよい。
FIG. 23 is a schematic diagram for explaining a method of determining whether a subtask can be executed in a modified example.
In this embodiment, the MDI device 150 or the like that is the request source transmits request data including request conditions to the MDI device 150 or the like that is the request destination, and the MDI device 150 or the like that receives the request data determines whether or not to accept the subtask. It was explained that it is determined. As a modified example, the MDI device 150 or the like that is the request source may determine the destination of the request data after confirming the specification information or acceptance conditions from the request destination candidates in advance.
 たとえば、MDI装置150(M01)は、依頼条件C1をMDI装置150(M02)、MDI装置150(M03)、MDI装置150(M04)に先に通知しておく。MDI装置150(M02)は、依頼条件および引受条件に鑑みて、サブタスクを引き受けられないと判定し、MDI装置150(M01)に不可の旨を通知したとする。一方、MDI装置150(M03)とMDI装置150(M04)は、サブタスクを引き受け可能と返答したとする。 For example, the MDI device 150 (M01) first notifies the request condition C1 to the MDI device 150 (M02), the MDI device 150 (M03), and the MDI device 150 (M04). It is assumed that the MDI device 150 (M02) determines that the subtask cannot be accepted in view of the request conditions and the acceptance conditions, and notifies the MDI device 150 (M01) of the inability. On the other hand, it is assumed that the MDI device 150 (M03) and the MDI device 150 (M04) respond that they can accept the subtask.
 依頼元のMDI装置150(M01)は、引き受け可能な、MDI装置150(M03)とMDI装置150(M04)から、MDI装置150(M03)を依頼先として選んだとする。上述したように、MDI装置150(M01)は、通信状態に基づいて依頼先を選んでもよい。MDI装置150(M01)は、依頼先として選んだMDI装置150(M03)に、正式に依頼データ(データとタスクハンドラ)を送信し、MDI装置150(M03)はサブタスクを実行する。 Assume that the requesting MDI device 150 (M01) selects the MDI device 150 (M03) as the request destination from the MDI devices 150 (M03) and MDI device 150 (M04) that can accept the request. As described above, the MDI device 150 (M01) may select a request destination based on the communication state. The MDI device 150 (M01) formally transmits the request data (data and task handler) to the MDI device 150 (M03) selected as the request destination, and the MDI device 150 (M03) executes the subtask.
 MDI装置150は、定期的に相互通信することにより、他のMDI装置150の仕様情報等を収集してもよい。MDI装置150は、あらかじめ収集した仕様情報に基づいて、サブタスクの依頼先を判定してもよい。あるいは、すべてのMDI装置150は定期的に所定のサーバに仕様情報等を送信してもよい。MDI装置150は、サブタスクを依頼するときには、サーバから各MDI装置150の仕様情報等を取得した上で、サブタスクの依頼先を決めてもよい。図23ではMDIを対象として説明したが、LDIについても同様である。 The MDI device 150 may collect specification information, etc. of other MDI devices 150 by periodically communicating with each other. The MDI device 150 may determine the subtask request destination based on specification information collected in advance. Alternatively, all MDI devices 150 may periodically transmit specification information and the like to a predetermined server. When requesting a subtask, the MDI device 150 may obtain specification information of each MDI device 150 from the server, and then determine the destination to which the subtask is requested. In FIG. 23, the description has been made with reference to MDI, but the same applies to LDI.
 本実施形態においては、サブタスクはあらかじめMDI用とLDI用にいずれかが設定されているものとして説明した。このほか、処理対象となるデータの種類あるいはサイズに応じて、MDIおよびLDIのいずれでサブタスクを実行すべきかを判定してもよい。たとえば、SDI装置120等は、動画像の処理であればLDIに依頼データを送信し、静止画像の処理であればMDIに依頼データを送信するとしてもよい。画像または音声の処理であればLDI、文字情報の処理であればMDIが担当するとしてもよい。SDI装置120等は、所定サイズ以上のデータを対象とするサブタスクについてはLDIに依頼し、所定サイズ未満のデータを対象とするサブタスクについてはMDIに依頼するとしてもよい。 In the present embodiment, the subtask has been described as being set in advance for either MDI or LDI. In addition, it may be determined whether a subtask should be executed using MDI or LDI, depending on the type or size of data to be processed. For example, the SDI device 120 or the like may transmit request data to the LDI when processing a moving image, and transmit request data to the MDI when processing a still image. The LDI may be in charge of image or audio processing, and the MDI may be in charge of text information processing. The SDI device 120 or the like may request the LDI to perform a subtask that targets data of a predetermined size or more, and may request the MDI to perform a subtask that targets data that is less than a predetermined size.
 サブタスクの定義をするとき、サブタスクごとに想定される処理負荷の大きさを示す想定負荷値を設定してもよい。SDI装置120等は、想定負荷値が所定閾値以上であればLDIに依頼データを送信し、所定閾値未満であればMDIに依頼データを送信するとしてもよい。 When defining subtasks, an expected load value indicating the amount of processing load expected for each subtask may be set. The SDI device 120 or the like may transmit request data to the LDI if the assumed load value is greater than or equal to a predetermined threshold, and may transmit request data to the MDI if the assumed load value is less than the predetermined threshold.
 サブタスクを定義するとき、サブタスクごとに求められる通信速度および処理速度の大きさを示す要求応答値を設定してもよい。SDI装置120等は、要求応答値が所定値以上、すなわち、高速の応答が必要なサブタスクについてはMDIを選択し、要求応答値が所定値未満、すなわち、低速の応答でもかまわないサブタスクについてはLDIを選択するとしてもよい。 When defining a subtask, a request response value indicating the communication speed and processing speed required for each subtask may be set. The SDI device 120 and the like selects MDI for subtasks whose request response value is greater than or equal to a predetermined value, that is, requires a high-speed response, and selects LDI for subtasks whose request response value is less than a predetermined value, that is, a subtask that does not mind a slow response. You may also choose.
 サブタスクの種類に応じて、MDIまたはLDIのいずれが処理を担当するかを決めてもよい。たとえば、検索に関わるサブタスクはLDI、翻訳に関わるサブタスクはLDI、計算に関わるサブタスクはMDI、のようにあらかじめ定義しておき、サブタスクの設計時において「検索」「翻訳」「計算」などのカテゴリを設定してもよい。SDI装置120等は、サブタスクのカテゴリに基づいて、MDIまたはLDIのいずれで処理すべきかを判定する。 Depending on the type of subtask, it may be determined whether MDI or LDI is in charge of processing. For example, subtasks related to search are defined in LDI, subtasks related to translation are defined in LDI, subtasks related to calculation are defined in MDI, and categories such as "search," "translation," and "calculation" are defined when designing subtasks. May be set. The SDI device 120 and the like determine whether to process using MDI or LDI based on the subtask category.
 所定数以上のMDI装置150、たとえば、3以上のMDI装置150がサブタスクの引き受けを拒否した場合には、LDI装置160がこのサブタスクを引き受けるとしてもよい。具体的には、依頼データに「転送回数」を含めておく。MDI装置150は、依頼データを受信し、自装置でサブタスクを実行しないときには依頼データに含まれる「転送回数」を加算する。依頼データを受け取ったMDI装置150は転送回数を確認し、転送回数が所定閾値以上となったときには、この依頼データをLDI装置160に送信するとしてもよい。 If a predetermined number or more of MDI devices 150, for example, three or more MDI devices 150, refuse to accept the subtask, the LDI device 160 may accept this subtask. Specifically, the "number of transfers" is included in the request data. The MDI device 150 receives the request data and adds the "number of transfers" included in the request data when the device itself does not execute the subtask. The MDI device 150 that has received the request data may check the number of transfers and, when the number of transfers exceeds a predetermined threshold, transmit the request data to the LDI device 160.
 MDI装置150のタスク依頼部178は、依頼データの「転送回数」を「優先度」として利用してもよい。タスク依頼部178は、転送回数(優先度)が大きい依頼データほど優先的に扱ってもよい。たとえば、タスク依頼部178は、依頼データ(C1:転送回数は5回)と依頼データ(C2:転送回数は2回)を同時期に受信してバッファリングしている場合においては、転送回数の大きい依頼データ(C1)から先に転送処理してもよい。このような制御方法によれば、一部の依頼データに対応するサブタスクが著しく遅延するのを防ぐことができる。
 MDI用のタスクに限らず、LDI用のタスクについても同様である。
The task requesting unit 178 of the MDI device 150 may use the "number of transfers" of the request data as the "priority." The task requesting unit 178 may preferentially treat request data with a larger number of transfers (priority). For example, if the task requesting unit 178 receives and buffers the request data (C1: the number of transfers is 5 times) and the request data (C2: the number of transfers is 2 times) at the same time, Transfer processing may be performed for the larger request data (C1) first. According to such a control method, it is possible to prevent subtasks corresponding to some requested data from being significantly delayed.
The same applies not only to MDI tasks but also to LDI tasks.
 SDI装置120等は、MDI用のサブタスクであっても、有線接続されているLDI装置160または近距離無線通信可能なLDI装置160が存在するときには、依頼データをLDI装置160に送信するとしてもよい。LDI用のサブタスクについても同様である。このように、サブタスクの種類、データの種類およびサイズだけでなく、通信状態に応じてLDIまたはMDIがサブタスクの実行主体として選ばれてもよい。 Even if the SDI device 120 is a subtask for MDI, if there is an LDI device 160 connected by wire or capable of short-range wireless communication, the SDI device 120 or the like may transmit request data to the LDI device 160. . The same applies to subtasks for LDI. In this way, the LDI or MDI may be selected as the subtask execution entity depending on not only the type of subtask, the type and size of data, but also the communication state.
 上述したように、LDI装置160は、MDI装置150よりも計算能力の大きい計算装置である。ここでいう計算能力は、内蔵メモリの大きさ、1プロセッサの単位時間あたりの処理量、搭載するコアの数、などを基準として定義されてもよい。あるいは、LDI装置160は固定設置される計算装置であって、MDI装置150は運搬可能・携帯可能または移動可能な計算装置であるとしてもよい。LDI装置160も移動可能な計算装置であってもよい。たとえば、自動車をLDI装置160として利用してもよい。同様にして、MDI装置150は固定設置される計算装置であってもよい。たとえば、大型の二次電池あるいはエネファームをMDI装置150として利用してもよい。 As described above, the LDI device 160 is a computing device with greater computing power than the MDI device 150. The computing power here may be defined based on the size of the built-in memory, the amount of processing per unit time of one processor, the number of cores installed, etc. Alternatively, LDI device 160 may be a permanently installed computing device, and MDI device 150 may be a portable, portable, or movable computing device. LDI device 160 may also be a mobile computing device. For example, a car may be used as the LDI device 160. Similarly, MDI device 150 may be a permanently installed computing device. For example, a large secondary battery or ENE-FARM may be used as the MDI device 150.
 MDI装置150は、複数の通信手段を備えてもよい。たとえば、MDI装置150(M01)とMDI装置150(M02)は、NFCとWi-SUN(Wireless Smart Utility Network)、Bluetooth(登録商標)の3種類の通信手段を備えているとする。MDI装置150(M01)のタスク依頼部178は、MDI装置150(M02)に依頼データを送信する場合において、処理対象となるデータのサイズまたは種類に応じて、3種類の通信手段のいずれかを選択するとしてもよい。 The MDI device 150 may include multiple communication means. For example, it is assumed that the MDI device 150 (M01) and the MDI device 150 (M02) are equipped with three types of communication means: NFC, Wi-SUN (Wireless Smart Utility Network), and Bluetooth (registered trademark). When transmitting request data to the MDI device 150 (M02), the task requesting unit 178 of the MDI device 150 (M01) uses one of three types of communication means depending on the size or type of data to be processed. You may choose to do so.
 MDI装置150(M01)は、データのサイズが所定サイズ以上となるときには、Bluetooth(登録商標)により依頼データを送信し、データのサイズが所定サイズ未満であるときには、Wi-SUNにより依頼データを送信するとしてもよい。Wi-SUNは、通信速度は遅いものの低消費電力で、通信距離が長いという特徴がある。MDI装置150(M01)は、文字データなどの小さなデータを送信するとき、応答速度が遅くてもかまわないサブタスクを依頼するとき、MDI装置150(M01)とMDI装置150(M02)の距離が長いときにはWi-SUNを選択するとしてもよい。 The MDI device 150 (M01) transmits the request data via Bluetooth (registered trademark) when the data size is greater than or equal to a predetermined size, and transmits the request data via Wi-SUN when the data size is less than the predetermined size. You may do so. Although Wi-SUN has slow communication speed, it is characterized by low power consumption and long communication distance. When the MDI device 150 (M01) transmits small data such as character data, or when requesting a subtask for which a slow response speed is acceptable, the distance between the MDI device 150 (M01) and the MDI device 150 (M02) is long. Sometimes Wi-SUN may be selected.
 LDI装置160についても同様である。すなわち、SDI装置120からMDI装置150、SDI装置120からLDI装置160、MDI装置150からMDI装置150、LDI装置160からLDI装置160に依頼データを送信する場合において、複数の通信手段を利用可能であるときには、データのサイズまたは種類に応じて、通信手段を選択すればよい。また、送信元の計算装置は、依頼条件として利用可能な通信手段を指定してもよい。同様にして、送信先の計算装置も、引受条件として利用可能な通信手段を指定してもよい。 The same applies to the LDI device 160. That is, when transmitting request data from the SDI device 120 to the MDI device 150, from the SDI device 120 to the LDI device 160, from the MDI device 150 to the MDI device 150, and from the LDI device 160 to the LDI device 160, multiple communication means can be used. In some cases, the communication means may be selected depending on the size or type of data. Further, the transmission source computing device may specify available communication means as a request condition. Similarly, the destination computing device may also specify available communication means as a condition of acceptance.
 DIエンジンは、依頼データを内蔵メモリから削除してもよい。たとえば、DIエンジンは、依頼データを受信してサブタスクを実行したあと、依頼データを内蔵メモリから削除する。また、DIエンジンが、依頼データを受信して、他のDIエンジン(MDI装置150等)に依頼データを転送するときにも、内蔵メモリから依頼データを削除するとしてもよい。 The DI engine may delete the request data from the built-in memory. For example, after receiving request data and executing a subtask, the DI engine deletes the request data from internal memory. Furthermore, when the DI engine receives request data and transfers the request data to another DI engine (such as the MDI device 150), the request data may also be deleted from the built-in memory.
 MDI装置150としては、DIエンジンを搭載する自動車が考えられる。あるいは、コワーキングスペースに設置されるさまざまな計算装置が、MDI装置150またはLDI装置160として計算能力をユーザ(SDI装置120)に提供してもよい。このような制御方法によれば、ユーザは、コワーキングスペースにおいて通信機能、電力だけでなく、計算機能も借りることが可能となる。 As the MDI device 150, a vehicle equipped with a DI engine can be considered. Alternatively, various computing devices installed in the coworking space may provide computing power to users (SDI devices 120) as MDI devices 150 or LDI devices 160. According to such a control method, users can rent not only communication functions and electricity but also computing functions in a coworking space.
 MDI装置150等は、依頼データを受信したとき、引受条件が満たされるまで依頼データを転送することなく保持してもよい。MDI装置150等は、所定の制限時間が経過するまでに引受条件が満たされればサブタスクを実行し、制限時間が経過したときには依頼データを他のMDI装置150等に送信するとしてもよい。 When the MDI device 150 etc. receives the request data, it may hold the request data without transferring it until the acceptance conditions are met. The MDI device 150 or the like may execute the subtask if the acceptance condition is satisfied before a predetermined time limit elapses, and transmit the request data to another MDI device 150 or the like when the time limit elapses.
 DIエンジンには、画像比較、翻訳、画像検索などのさまざまなタスクハンドラがあらかじめライブラリとして登録されてもよい。タスクハンドラはハンドラIDにより識別される。この場合、依頼データにはタスクハンドラ(プログラム)ではなく、タスクハンドラを指定するハンドラIDが含まれればよい。DIエンジンは、依頼データで指定されたハンドラIDに基づいて、あらかじめ登録されているタスクハンドラを読み出すことでサブタスクを実行してもよい。 Various task handlers such as image comparison, translation, and image search may be registered in advance as a library in the DI engine. A task handler is identified by a handler ID. In this case, the request data only needs to include a handler ID that specifies the task handler instead of the task handler (program). The DI engine may execute the subtask by reading a task handler registered in advance based on the handler ID specified in the request data.

Claims (20)

  1.  センサを搭載する第1計算装置と、
     相互に通信可能な複数の第2計算装置と、を備え、
     前記第1計算装置は、
     センサにより、外部からデータを取得するセンシング部と、
     前記取得されたデータを1以上の第2計算装置に送信するデータ送信部と、
     前記取得されたデータに対応する1以上のタスクの実行結果を受信する結果受信部と、
     前記1以上のタスクの実行結果を出力する出力部と、を含み、
     前記第2計算装置は、
     前記第1計算装置からデータを受信するデータ受信部と、
     前記受信されたデータを対象としてタスクを実行するタスク実行部と、
     前記受信されたデータとともに、タスクの実行を他の計算装置に依頼するタスク依頼部と、
     他の計算装置からタスクの実行結果を受信する結果受信部と、
     タスクの実行結果を他の計算装置に送信する結果送信部と、を含む、分散処理システム。
    a first computing device equipped with a sensor;
    a plurality of second computing devices capable of communicating with each other;
    The first computing device includes:
    a sensing unit that acquires data from the outside using a sensor;
    a data transmitter that transmits the acquired data to one or more second computing devices;
    a result receiving unit that receives execution results of one or more tasks corresponding to the acquired data;
    an output unit that outputs the execution results of the one or more tasks,
    The second computing device includes:
    a data receiving unit that receives data from the first computing device;
    a task execution unit that executes a task using the received data;
    a task requesting unit that requests another computing device to execute the task along with the received data;
    a result receiving unit that receives task execution results from another computing device;
    A distributed processing system including: a result transmitter that transmits task execution results to other computing devices.
  2.  相互に通信可能な複数の第3計算装置、を更に備え、
     前記第3計算装置は、
     他の計算装置からデータおよび前記データを処理するタスクの実行の依頼を受信するデータ受信部と、
     前記受信されたデータに基づいて前記依頼されたタスクを実行するタスク実行部と、
     前記タスクの実行結果を他の計算装置に送信する結果送信部と、を含み、
     前記第2計算装置の前記タスク依頼部は、タスクまたは処理対象となるデータに基づいて、第2計算装置または第3計算装置のいずれかを前記タスクの実行主体として選択する、請求項1に記載の分散処理システム。
    further comprising a plurality of third computing devices capable of communicating with each other,
    The third computing device includes:
    a data receiving unit that receives data from another computing device and a request to execute a task that processes the data;
    a task execution unit that executes the requested task based on the received data;
    a result transmitting unit that transmits the execution result of the task to another computing device,
    2. The task requesting unit of the second computing device selects either the second computing device or the third computing device as an execution entity of the task based on the task or the data to be processed. distributed processing system.
  3.  前記第3計算装置は、プロセッサを搭載し、かつ、固定設置される二次電池として構成される、請求項2に記載の分散処理システム。 The distributed processing system according to claim 2, wherein the third computing device is equipped with a processor and configured as a fixedly installed secondary battery.
  4.  前記第3計算装置は、
     前記第2計算装置から依頼されたタスクを複数の下位タスクに分解するタスク分解部と、
     前記複数の下位タスクを複数の第3計算装置に分散して割り当てるタスク分配部と、
     前記下位タスクを割り当てた第3計算装置から、下位タスクの実行結果を受信する結果受信部と、を更に含む、請求項2に記載の分散処理システム。
    The third computing device includes:
    a task decomposition unit that decomposes the task requested by the second computing device into a plurality of subordinate tasks;
    a task distribution unit that distributes and allocates the plurality of lower-level tasks to a plurality of third computing devices;
    3. The distributed processing system according to claim 2, further comprising: a result receiving unit that receives an execution result of the lower task from a third computing device to which the lower task is assigned.
  5.  前記第2計算装置の前記タスク依頼部は、
     自装置がタスクの実行条件を満たさないとき、他の第2計算装置をタスクの実行主体として選択する、請求項1に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    The distributed processing system according to claim 1, wherein when the own device does not satisfy the task execution condition, another second computing device is selected as the task execution entity.
  6.  前記第2計算装置の前記タスク依頼部は、
     自装置の処理負荷が前記実行条件を満たさないとき、他の第2計算装置をタスクの実行主体として選択する、請求項5に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    The distributed processing system according to claim 5, wherein when the processing load of the own device does not satisfy the execution condition, another second computing device is selected as the task execution entity.
  7.  前記第2計算装置の前記タスク依頼部は、
     自装置の給電状態が前記実行条件を満たさないとき、他の第2計算装置をタスクの実行主体として選択する、請求項5に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    The distributed processing system according to claim 5, wherein when the power supply state of the own device does not satisfy the execution condition, another second computing device is selected as the task execution entity.
  8.  前記第2計算装置の前記タスク依頼部は、
     自装置の仕様情報が前記実行条件を満たさないとき、他の第2計算装置をタスクの実行主体として選択する、請求項5に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    The distributed processing system according to claim 5, wherein when the specification information of the own device does not satisfy the execution condition, another second computing device is selected as the task execution entity.
  9.  前記第2計算装置の前記タスク依頼部は、
     自装置の仕様情報のうち、単位計算量あたりの消費電力が前記実行条件を満たさないとき、他の第2計算装置をタスクの実行主体として選択する、請求項8に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    9. The distributed processing system according to claim 8, wherein when the power consumption per unit calculation amount in the specification information of the own device does not satisfy the execution condition, another second computing device is selected as the task execution entity.
  10.  前記第2計算装置の前記タスク依頼部は、
     自装置以外の複数の第2計算装置のうちタスクを引き受け可能な第2計算装置をあらかじめ特定しておき、前記特定した1以上の第2計算装置のいずれかにタスクの実行を依頼する、請求項1に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    A claim for specifying in advance a second computing device capable of accepting a task among a plurality of second computing devices other than the own device, and requesting any of the one or more identified second computing devices to execute the task. The distributed processing system according to item 1.
  11.  前記第2計算装置の前記タスク依頼部は、
     タスクを他の第2計算装置に依頼するときには、自装置との通信状態に基づいて、タスクの実行主体となる第2計算装置を選択する、請求項1に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    2. The distributed processing system according to claim 1, wherein when requesting a task to another second computing device, the second computing device to be the main entity for executing the task is selected based on the communication state with the second computing device.
  12.  前記第2計算装置の前記タスク依頼部は、
     タスクを他の第2計算装置に依頼するときには、処理対象となるデータに基づいて、依頼先となる第2計算装置が備える複数の通信手段のうちいずれかの通信手段を選択し、前記選択した通信手段を介してタスクを依頼する、請求項1に記載の分散処理システム。
    The task requesting unit of the second computing device includes:
    When requesting a task to another second computing device, one of the plurality of communication means provided in the second computing device to which the request is made is selected based on the data to be processed, and the selected one is The distributed processing system according to claim 1, wherein a task is requested via a communication means.
  13.  前記第2計算装置は、
     前記受信されたデータを複数のデータ単位に分割するデータ分割部と、
     前記複数のデータ単位それぞれを処理する複数のタスクを複数の第2計算装置に割り当てるデータ送信部と、更に含む、請求項1に記載の分散処理システム。
    The second computing device includes:
    a data division unit that divides the received data into a plurality of data units;
    The distributed processing system according to claim 1, further comprising: a data transmitter that assigns a plurality of tasks for processing each of the plurality of data units to a plurality of second computing devices.
  14.  決済装置、を更に備え、
     前記第2計算装置の前記タスク依頼部は、
     前記タスクの依頼元である前記第1計算装置を特定する依頼者の情報とともに、タスクの実行を他の計算装置に依頼し、
     前記第2計算装置の前記タスク実行部は、タスクを実行したとき、依頼者の情報とともにタスクの実行を前記決済装置に通知し、
     前記決済装置は、
     タスクの依頼元である前記第1計算装置のユーザから、タスクの依頼先である第2計算装置のユーザへのタスク実行料の支払いを指示する決済部、を備える請求項1に記載の分散処理システム。
    further comprising a payment device;
    The task requesting unit of the second computing device includes:
    requesting another computing device to execute the task, along with requester information that identifies the first computing device that is the source of the task;
    When the task execution unit of the second computing device executes the task, the task execution unit notifies the payment device of the execution of the task together with the information of the requester;
    The payment device is
    The distributed processing according to claim 1, further comprising a payment unit that instructs payment of a task execution fee from a user of the first computing device that is a task requester to a user of a second computing device that is a task requester. system.
  15.  センサを搭載する第1計算装置と、
     相互に通信可能な複数の第2計算装置と、
     相互に通信可能な複数の第3計算装置と、を備え、
     前記第3計算装置の計算能力は、前記第2計算装置の計算能力よりも大きく、
     前記第1計算装置は、前記センサにより取得されたデータをいずれかの第2計算装置に送信し、
     前記第2計算装置は、受信されたデータを処理する1以上のタスクを特定し、前記特定したタスクまたは処理対象となるデータに基づいて、前記タスクの実行主体として第2計算装置または第3計算装置のいずれかを選択するとともに、前記特定したタスクを前記選択した計算装置に対して実行指示する、分散処理システム。
    a first computing device equipped with a sensor;
    a plurality of second computing devices capable of communicating with each other;
    a plurality of third computing devices capable of communicating with each other;
    The calculation capacity of the third calculation device is greater than the calculation capacity of the second calculation device,
    The first computing device transmits the data acquired by the sensor to any second computing device,
    The second computing device specifies one or more tasks that process the received data, and based on the identified tasks or data to be processed, the second computing device or the third computing device is configured to execute the task. A distributed processing system that selects one of the devices and instructs the selected computing device to execute the specified task.
  16.  相互に通信可能な複数種類の移動装置を含み、
     第1移動装置は、
     センサと、
     前記センサにより、外部からデータを取得するセンシング部と、
     前記取得されたデータを他の移動装置に送信するデータ送信部と、を含み、
     第2移動装置は、
     他の移動装置からデータを受信するデータ受信部と、
     他の移動装置から受信したデータに基づくタスクの実行可否を判定する実行判定部と、
     他の移動装置から受信したデータに基づくタスクを実行するタスク実行部と、
     他の移動装置から受信したデータを、更に、他の移動装置に送信するデータ送信部と、を含み、
     前記第2移動装置の前記実行判定部は、自装置が実行条件を満たすときには前記タスク実行部にタスクの実行を指示し、前記実行条件が満たされないときには他の移動装置へのデータの送信を指示する、分散処理システム。
    includes multiple types of mobile devices that can communicate with each other,
    The first moving device is
    sensor and
    a sensing unit that acquires data from the outside using the sensor;
    a data transmitter that transmits the acquired data to another mobile device,
    The second moving device is
    a data receiving unit that receives data from another mobile device;
    an execution determination unit that determines whether a task can be executed based on data received from another mobile device;
    a task execution unit that executes a task based on data received from another mobile device;
    further comprising a data transmitter that transmits data received from another mobile device to the other mobile device,
    The execution determining unit of the second mobile device instructs the task execution unit to execute the task when the own device satisfies the execution condition, and instructs the task execution unit to transmit data to another mobile device when the execution condition is not satisfied. A distributed processing system.
  17.  固定設置される固定計算装置を更に含み、
     前記第2移動装置の前記実行判定部は、更に、他の移動装置から受信したデータに基づくタスクまたは処理対象となるデータに基づいて、タスクの実行主体として移動装置または前記固定計算装置のいずれかを選択し、
     前記第2移動装置の前記データ送信部は、タスクの実行主体として前記固定計算装置が選択されたときには、他の移動装置から受信したデータを前記固定計算装置に送信する、請求項16に記載の分散処理システム。
    further comprising a fixed computing device that is fixedly installed;
    The execution determination unit of the second mobile device further determines whether the mobile device or the fixed computing device is the execution entity of the task based on the task based on data received from another mobile device or the data to be processed. Select
    17. The data transmitting unit of the second mobile device transmits data received from another mobile device to the fixed computing device when the fixed computing device is selected as a task execution entity. Distributed processing system.
  18.  前記第2移動装置は、特有のサービスを提供可能な装置であって、
     前記第2移動装置は、
     サービスを提供するサービス提供部と、
     タスクの実行結果に対応するサービスを特定するサービス特定部と、
     前記特定されたサービスの自装置による提供可否を判定するサービス判定部と、
     前記特定されたサービスの実行を他の移動装置に依頼するサービス依頼部と、を含み、
     前記サービス判定部は、前記特定されたサービスが自装置にて提供可能なサービスであれば前記サービス提供部に前記特定されたサービスの提供を指示し、前記特定されたサービスが自装置にて提供不可能なサービスであれば前記サービス依頼部に他の移動装置へのサービスの依頼を指示する、請求項16に記載の分散処理システム。
    The second mobile device is a device capable of providing a specific service,
    The second moving device includes:
    A service provision department that provides services;
    a service identification unit that identifies a service corresponding to the execution result of the task;
    a service determination unit that determines whether the identified service can be provided by the own device;
    a service requesting unit that requests another mobile device to execute the identified service;
    The service determining unit instructs the service providing unit to provide the identified service if the identified service is a service that can be provided by the own device, and determines whether the identified service is provided by the own device. 17. The distributed processing system according to claim 16, wherein if the service is impossible, the service requesting unit is instructed to request the service to another mobile device.
  19.  相互に通信可能に構成される社会基盤設備であって、センサおよび出力装置の双方または一方とともにプロセッサを搭載する複数の計算装置を備え、
     前記計算装置は、
     ユーザが保有する携帯端末または他の計算装置から、データを受信するデータ受信部と、
     社会基盤設備としてのメインタスクと並行して、前記受信されたデータに対応するサブタスクを実行するタスク実行部と、
     前記受信されたデータに対応するサブタスクの実行を他の計算装置に依頼するタスク依頼部と、
     他の計算装置からサブタスクの実行結果を受信する結果受信部と、
     サブタスクの実行結果を前記携帯端末または他の計算装置に送信する結果送信部と、
     自装置におけるサブタスクの実行可否を判定する実行判定部と、を含み、
     前記実行判定部は、自装置がサブタスクの実行条件を満たすときには前記タスク実行部にサブタスクの実行を指示し、前記実行条件が満たされないときには他の計算装置へのサブタスクの依頼を前記タスク依頼部に指示する、分散処理システム。
    Social infrastructure equipment configured to be able to communicate with each other, comprising a plurality of computing devices equipped with a processor along with both or one of a sensor and an output device,
    The computing device includes:
    a data receiving unit that receives data from a mobile terminal or other computing device owned by a user;
    a task execution unit that executes a subtask corresponding to the received data in parallel with the main task as social infrastructure equipment;
    a task requesting unit that requests another computing device to execute a subtask corresponding to the received data;
    a result receiving unit that receives the execution results of the subtask from another computing device;
    a result transmitting unit that transmits the execution result of the subtask to the mobile terminal or other computing device;
    an execution determination unit that determines whether the subtask can be executed in the own device;
    The execution determination unit instructs the task execution unit to execute the subtask when the own device satisfies the subtask execution condition, and instructs the task requesting unit to request the subtask to another computing device when the execution condition is not satisfied. A distributed processing system that provides instructions.
  20.  前記複数の計算装置の一部は監視カメラであって、
     前記監視カメラとして構成される計算装置の前記タスク実行部は、
     監視機能をメインタスクとして実行するのと並行して、サブタスクを実行する請求項19に記載の分散処理システム。
    Some of the plurality of computing devices are surveillance cameras,
    The task execution unit of the computing device configured as the surveillance camera,
    20. The distributed processing system according to claim 19, wherein the subtask is executed in parallel with executing the monitoring function as the main task.
PCT/JP2023/014258 2022-04-08 2023-04-06 Distributed processing system WO2023195521A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW112113098A TW202343239A (en) 2022-04-08 2023-04-07 Distributed processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022064565 2022-04-08
JP2022-064565 2022-04-08

Publications (1)

Publication Number Publication Date
WO2023195521A1 true WO2023195521A1 (en) 2023-10-12

Family

ID=88243107

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/014258 WO2023195521A1 (en) 2022-04-08 2023-04-06 Distributed processing system

Country Status (2)

Country Link
TW (1) TW202343239A (en)
WO (1) WO2023195521A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014033866A1 (en) * 2012-08-29 2014-03-06 富士通株式会社 Communication device, system, and communication method
JP2014102691A (en) * 2012-11-20 2014-06-05 Toshiba Corp Information processing device, camera with communication function, and information processing method
JP2021060651A (en) * 2019-10-03 2021-04-15 トヨタ自動車株式会社 Vehicle arithmetic processing unit, sever computer, and program
EP3961392A1 (en) * 2019-11-19 2022-03-02 Lg Energy Solution, Ltd. Battery management system and control method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014033866A1 (en) * 2012-08-29 2014-03-06 富士通株式会社 Communication device, system, and communication method
JP2014102691A (en) * 2012-11-20 2014-06-05 Toshiba Corp Information processing device, camera with communication function, and information processing method
JP2021060651A (en) * 2019-10-03 2021-04-15 トヨタ自動車株式会社 Vehicle arithmetic processing unit, sever computer, and program
EP3961392A1 (en) * 2019-11-19 2022-03-02 Lg Energy Solution, Ltd. Battery management system and control method thereof

Also Published As

Publication number Publication date
TW202343239A (en) 2023-11-01

Similar Documents

Publication Publication Date Title
JP2020126692A (en) Systems and methods for allocating sharable orders
JP6899444B2 (en) Methods and systems for carpooling
JP2019527871A (en) System and method for determining estimated arrival time
JP2022099235A (en) OPTIMIZING CHARGING, FUELING, AND PARKING OVERHEADS OF FLEET VEHICLES IN MaaS ARCHITECTURE
US20200005420A1 (en) Systems and methods for transportation capacity dispatch
US20170059334A1 (en) Method and system for scheduling vehicles along routes in a transportation system
TW201909107A (en) System and method for transport capability scheduling
WO2018228110A1 (en) Systems and methods for transport capacity scheduling
US11829910B1 (en) Systems and methods for matching transportation requests over extended batching windows
JP2019535049A (en) System and method for fraud inspection
US20200333151A1 (en) Charge Sharing and Smart Charging Infrastructure Integration for Electric Vehicles
JP7078357B2 (en) Distribution device, distribution method and distribution program
JP6964617B2 (en) Schedule management systems, mobiles, programs and methods
Chowdhury et al. Mobile Crowd‐Sensing for Smart Cities
US11790289B2 (en) Systems and methods for managing dynamic transportation networks using simulated future scenarios
JP2013242685A (en) Information providing system, transmitter, and receiver
Li et al. A new fuzzy-based method for energy-aware resource allocation in vehicular cloud computing using a nature-inspired algorithm
CN111954891A (en) Cross-service shared automobile resource reuse method
WO2020101051A1 (en) Delivery system, delivery management system, delivery management device, and delivery management method
WO2023195521A1 (en) Distributed processing system
CN114353820A (en) Path planning method and device, electronic equipment and storage medium
US20210342760A1 (en) Systems and methods for utilizing constrained modes of transportation
Lejdel A conceptual framework for modeling smart parking
JP6978230B2 (en) Providing device, providing method, providing program and calculation device
WO2022230644A1 (en) Management system and management method

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: 23784805

Country of ref document: EP

Kind code of ref document: A1