Systems and methods

The system allows terminals to dynamically distribute load by sharing application condition information and selecting alternative terminals, eliminating the need for a central server and reducing costs and operational risks.

JP7669769B2Active Publication Date: 2025-04-30FUJI ELECTRIC CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2021064550
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-01-13
Filing Date
2021-04-06
Publication Date
2025-04-30
Estimated Expiration
2041-04-06

AI Technical Summary

Technical Problem

Existing systems that manage terminals in factories and plants require a server for load balancing, which can be unavailable during disasters, and incur significant installation and management costs, as well as ongoing server usage costs.

Method used

A system where each terminal includes a condition transmitting unit to share application condition information with other terminals when its load rate exceeds a threshold, a response receiving unit to receive replies, a selection unit to choose another terminal for load balancing, and an application transmitting unit to transfer the application to the selected terminal.

Benefits of technology

This approach enables load distribution between terminals without relying on a central server, reducing costs and ensuring continuous operation even if a server becomes unavailable.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007669769000001
    Figure 0007669769000001
  • Figure 0007669769000002
    Figure 0007669769000002
  • Figure 0007669769000003
    Figure 0007669769000003
Patent Text Reader

Abstract

To provide a system, a terminal, a method, and a program for realizing load distribution among terminals.SOLUTION: In a system 1 including multiple terminals that execute one or more applications, the terminal has: a condition transmission unit configured to transmit, to another terminal, application condition information indicating a condition necessary for executing an application when a load factor of its own arithmetic device exceeds a predetermined threshold; an answer receiving unit configured to receive, from another terminal, answer information including information indicating whether or not the condition is satisfied as an answer to the application condition information; a selection unit configured to select another terminal to execute the application from among other terminals based on the answer information; and an application transmission unit configured to transmit, to the selected another terminal, the application and information necessary for executing the application.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a system and direction law Regarding. [Background technology]

[0002] Systems that use servers to manage terminals such as edge controllers installed in factories, plants, etc. have been in use for some time. Various applications are run on these terminals, and load balancing is generally achieved by the servers that manage each terminal. Load balancing is the process of an application executed on a certain terminal being executed on another terminal, thereby distributing the load of the application processing among the terminals. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2010-204875 A [Patent Document 2] International Publication No. 2010 / 064294 Summary of the Invention [Problem to be solved by the invention]

[0004] However, since load balancing requires a server to manage each terminal, load balancing becomes impossible if the server becomes unavailable due to a disaster, incident, etc. In addition, when an on-premise server is used, installation costs and management costs are incurred, and even when a cloud-based server is used, costs related to server usage are incurred.

[0005] An embodiment of the present invention has been made in consideration of the above points, and has an object to realize load balancing among terminals. [Means for solving the problem]

[0006] In order to achieve the above-mentioned object, a system according to one embodiment is a system including a plurality of terminals executing one or more applications, and each of the terminals has a condition sending unit that sends application condition information indicating conditions required for execution of the application to another terminal when a load rate of a computing device owned by the terminal exceeds a predetermined threshold value, a response receiving unit that receives response information from the other terminal as a response to the application condition information, the response information including information indicating whether the conditions are satisfied, a selection unit that selects, from the other terminals based on the response information, another terminal on which to execute the application, and an application sending unit that transmits the application and information required for execution of the application to the selected other terminal. Effect of the Invention

[0007] Load balancing among the terminals can be achieved. [Brief description of the drawings]

[0008] [Figure 1] 1 is a diagram illustrating an example of an overall configuration of a system according to a first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating an example of a hardware configuration of a terminal according to the first embodiment. [Diagram 3] 3 is a diagram illustrating an example of a detailed functional configuration of a distribution function unit according to the first embodiment; FIG. [Figure 4] FIG. 11 is a diagram illustrating an example of belonging terminal information. [Diagram 5] FIG. 11 is a diagram illustrating an example of application environment condition information. [Figure 6] FIG. 4 is a diagram illustrating an example of a flow of a load distribution process according to the first embodiment. [Figure 7] FIG. 11 is a diagram for explaining an example of a flow of a terminal confirmation process according to the first embodiment; [Figure 8] 10 is a diagram illustrating an example of a flow of a load detection process according to the first embodiment; [Figure 9]11 is a diagram illustrating an example of a flow of an application environment condition request process according to the first embodiment; FIG. [Figure 10] FIG. 11 is a diagram illustrating an example of transmission application environmental condition information. [Figure 11] 10 is a diagram illustrating an example of the flow of an environmental condition response process according to the first embodiment; FIG. [Figure 12] FIG. 11 is a diagram illustrating an example of environmental condition response information. [Figure 13] 11 is a diagram illustrating an example of the flow of a distribution destination selection process according to the first embodiment; FIG. [Figure 14] FIG. 11 is a diagram showing an example of an environmental condition response information list. [Figure 15] FIG. 2 is a diagram illustrating an example of the flow of application distribution processing (distribution source side) according to the first embodiment. [Figure 16] FIG. 11 is a diagram illustrating an example of application execution information. [Figure 17] 11 is a diagram illustrating an example of the flow of application distribution processing (on the distribution destination side) according to the first embodiment; FIG. [Figure 18] 13 is a diagram illustrating an example of the flow of an application deletion process (on the distribution destination side) according to the first embodiment; FIG. [Figure 19] FIG. 11 is a diagram illustrating an example of the flow of an application deletion process (distribution source side) according to the first embodiment. [Figure 20] FIG. 11 is a diagram illustrating an example of an overall configuration of a system according to a second embodiment. [Figure 21] 13 is a diagram illustrating an example of a detailed functional configuration of a distribution function unit according to a second embodiment. FIG. [Figure 22] FIG. 11 is a diagram illustrating an example of a detailed functional configuration of an authentication function unit according to a second embodiment. [Diagram 23] FIG. 11 is a diagram illustrating an example of the flow of a new participation process according to the second embodiment. [Figure 24] FIG. 11 is a diagram illustrating an example of a flow of a load distribution process according to the second embodiment. [Diagram 25] 11A and 11B are diagrams for explaining an example of default processing and distributed processing; [Figure 26]FIG. 11 is a diagram illustrating an example of a flow of a shared information creation and transmission process according to the second embodiment. [Figure 27] FIG. 11 is a diagram illustrating an example of shared information. [Figure 28] FIG. 11 is a diagram illustrating an example of the flow of a data confirmation process according to the second embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] An embodiment of the present invention will be described below. In this embodiment, a system 1 capable of achieving load balancing among terminals using only a group of terminals, without using a server that manages each terminal, will be described.

[0010] [First embodiment] The first embodiment will be described below.

[0011] <Overall composition> First, the overall configuration of a system 1 according to this embodiment will be described with reference to Fig. 1. Fig. 1 is a diagram showing an example of the overall configuration of a system 1 according to the first embodiment.

[0012] As shown in Fig. 1, in the system 1 according to this embodiment, a plurality of terminals 10 (in the example shown in Fig. 1, terminals 10A, 10B, 10C, and 10D) exist within a local network N1. Each terminal 10 is communicatively connected to a data collection server 20 via the Internet N2. The local network N1 refers to a local network environment, for example, within a factory or plant, or within a company.

[0013] The terminal 10 is an edge controller or various embedded devices, etc., and has an application execution environment 100, an application 110 (hereinafter also referred to as "application 110") that runs on the application execution environment, and a distribution function unit 200 that realizes load distribution among other terminals 10.

[0014] The application execution environment 100 is an execution environment for executing the application 110, and is, for example, a container constructed on an OS (Operating System). The application 110 is an application program that executes some processing on data collected from devices (for example, various sensors) under the control of the terminal 10, data received from other terminals 10, etc. In the example shown in FIG. 1, the terminal 10A has an application 110A that executes data processing processing. Similarly, the terminal 10B has an application 110B that executes data analysis processing, the terminal 10C has an application 110C that executes data display processing, and the terminal 10D has an application 110D that executes data transmission processing to the data collection server 20.

[0015] 1, for example, data collected from devices under terminal 10 is processed by application 110A of terminal 10A, then analyzed by application 110B of terminal 10B, and data showing the analysis results is displayed by application 110C of terminal 10C and transmitted by application 110D of terminal 10D to data collection server 20. Note that, in the example shown in FIG. 1, each terminal 10 has only one application 110, but this is just an example, and each terminal 10 may have multiple applications 110.

[0016] Furthermore, the distributed function unit 200 realizes a function of distributing the execution of the application 110 to other terminals 10. At this time, when the processing load of the application 110 becomes high, the distributed function unit 200 causes the other terminals 10 to execute the application 110, taking into consideration whether the application 110 can be executed on the other terminals 10 and the load status of the other terminals 10. As a result, in the system 1 according to this embodiment, it is possible to realize load distribution among the terminals 10 without using a server that manages the terminals 10.

[0017] <Hardware configuration> Next, a hardware configuration of the terminal 10 according to the present embodiment will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of a hardware configuration of the terminal 10 according to the first embodiment.

[0018] 2, the terminal 10 according to the present embodiment includes an input device 501, a display device 502, an external I / F 503, a communication I / F 504, a processor 505, and a memory device 506. Each of these pieces of hardware is connected to each other via a bus 507 so as to be able to communicate with each other.

[0019] The input device 501 is, for example, various buttons, a touch panel, etc. The display device 502 is, for example, a display panel, etc. The external I / F 503 is an interface with an external device such as a recording medium 503a. Examples of the recording medium 503a include a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), and a USB (Universal Serial Bus) memory card.

[0020] The communication I / F 504 is an interface for communicating with other terminals 10, the data collection server 20, etc. The processor 505 is, for example, various arithmetic devices such as a CPU (Central Processing Unit), etc. The memory device 506 is, for example, various storage devices such as an SSD (Solid State Drive), a RAM (Random Access Memory), a ROM (Read Only Memory), and a flash memory.

[0021] The terminal 10 according to the present embodiment can realize various processes by having the hardware configuration shown in Fig. 2. Note that the hardware configuration shown in Fig. 2 is an example, and the terminal 10 may have other hardware configurations. For example, the terminal 10 may have multiple processors 505, or multiple memory devices 506.

[0022] <Detailed Functional Configuration of the Distribution Function Unit 200> Next, a detailed functional configuration of the distributed function unit 200 according to this embodiment will be described with reference to Fig. 3. Fig. 3 is a diagram showing an example of a detailed functional configuration of the distributed function unit 200 according to the first embodiment.

[0023] 3, the distributed function unit 200 according to this embodiment includes a terminal confirmation unit 201, a load detection unit 202, an application environmental condition request unit 203, an environmental condition response unit 204, a distribution destination selection unit 205, an application distribution unit 206, and an application deletion unit 207. Note that the distributed function unit 200 is realized by, for example, processing executed by a processor 505 of one or more programs installed in the terminal 10.

[0024] The terminal confirmation unit 201 confirms the terminal 10 present in the local network N1 (i.e., other terminals 10 belonging to the local network N1) and creates belonging terminal information. The belonging terminal information is information that associates the terminal ID and IP (Internet Protocol) address of the other terminal 10 present in the local network N1. An example of the belonging terminal information is shown in FIG. 4. In the belonging terminal information shown in FIG. 4, the terminal ID "T002" and its IP address, the terminal ID "T003" and its IP address, and the terminal ID "T004" and its IP address are respectively associated. Note that the belonging terminal information does not include its own (i.e., its own terminal 10) terminal ID and its IP address, but this is just an example and may be included.

[0025] The load detection unit 202 acquires the CPU load rate of the application 110 in the terminal 10. Furthermore, the load detection unit 202 determines whether or not the CPU load rate of the application 110 is high (specifically, whether or not it is within a load rate threshold value described later).

[0026] When the CPU load rate of the application 110 is high, the application environment condition request unit 203 transmits information indicating conditions necessary for executing the application 110 to other terminals 10 in the local network N1 (hereinafter, also referred to as "application environment condition information for transmission"). Here, the application environment condition information for transmission is created from the application environment condition information. An example of application environment condition information is shown in FIG. 5. The application environment condition information shown in FIG. 5 is application environment condition information for application ID "AP01". Note that, when the terminal 10 has multiple applications 110, application environment condition information exists for each application 110.

[0027] As shown in FIG. 5, the application environment condition information includes items such as an OS, middleware, required HW resources, expected load rate, current load rate, load rate threshold, distribution flag, and distribution destination in addition to the application ID. In the item "application ID", identification information for uniquely identifying the application 110 is set. In the item "OS", an OS name or the like required for executing the application 110 is set. In the item "middleware", a middleware name or the like required for executing the application 110 is set. In the item "required HW resources", hardware resources (e.g., required memory capacity, etc.) required for executing the application 110 are set. In the item "expected load rate", a CPU load rate expected when the application 110 is executed is set. In the item "current load rate", a current CPU load rate of the application 110 is set. In the item "load rate threshold", a load rate threshold of the application 110 is set. In the item "distribution flag", a value indicating whether the application 110 is to be a target of load distribution is set. The distribution flag indicates that the application 110 is not a target for load distribution when it is 0, and indicates that the application 110 is a target for load distribution when it is 1. When the load detection unit 202 determines that the CPU load rate is high, the distribution flag is set to 1. The item "distribution destination" is set with the terminal ID of another terminal 10 to which the application 110 is to be distributed. This terminal ID is set by the distribution destination selection unit 205.

[0028] When the environmental condition response unit 204 receives transmission application environmental condition information from another terminal 10, it returns environmental condition response information including whether or not each condition included in the transmission application environmental condition information is satisfied, the terminal ID of the terminal 10, and the current CPU load rate.

[0029] When the distribution destination selection unit 205 receives environmental condition response information from the other terminals 10, it creates an environmental condition response information list from the environmental condition response information and selects the other terminals 10 that will execute the application 110 that is the target of load distribution. At this time, the distribution destination selection unit 205 selects the other terminals 10 that will execute the application 110, taking into consideration whether the application 110 can be executed on the other terminals 10, the load conditions (CPU load rates) of the other terminals 10, and the like.

[0030] When the terminal 10 itself is the distribution source, the application distribution unit 206 transmits the application 110 and application execution information to another terminal 10 selected by the distribution destination selection unit 205. The application execution information is various information required when executing the application 110, and includes, for example, information such as the path of input data input to the application 110, whether or not the processing result of the application 110 is to be transferred, and the destination IP address if the result is to be transferred.

[0031] Furthermore, when the terminal 10 itself is a distribution destination, the application distribution unit 206 executes the application 110 using the application 110 and application execution information received from the other terminal 10.

[0032] When the terminal 10 itself is the distribution destination, the application deletion unit 207 deletes the application 110 received from the other terminal 10 which is the distribution source, and notifies the other terminal 10 that execution of the application 110 has been completed. Furthermore, when the terminal 10 itself is the distribution source, the application deletion unit 207 resets the distribution flag of the application environment condition information, the distribution destination, and the like, in response to the notification from the other terminal 10.

[0033] <Load balancing process flow> Next, a flow of load distribution processing among a plurality of terminals 10 present in the local network N1 will be described with reference to Fig. 6. Fig. 6 is a diagram for explaining an example of the flow of load distribution processing according to the first embodiment. This load distribution processing is repeatedly executed periodically (for example, at predetermined time intervals such as several seconds to several tens of seconds).

[0034] In the following, a terminal 10 that distributes the execution of an application 110 to other terminals 10 is referred to as a "distribution source terminal 10," and a terminal 10 other than the distribution source terminal 10 (i.e., a terminal 10 that is a distribution destination or a candidate for the application 110) is referred to as a "distribution destination terminal 10." The terminal ID of the distribution source terminal 10 is assumed to be "T001." Note that the terms "distribution source" and "distribution destination" are relative, and a certain terminal 10 can be both a distribution source terminal 10 and a distribution destination terminal 10 at the same time.

[0035] First, the terminal confirmation unit 201 of the distribution source terminal 10 executes a terminal confirmation process (step S101). In the terminal confirmation process, the terminal ID and IP address of the other terminal 10 existing in the local network N1 are associated with each other to create the belonging terminal information. The details of the terminal confirmation process will be described later.

[0036] Next, the load detection unit 202 of the distribution source terminal 10 executes a load detection process (step S102). In the load detection process, it is determined whether or not the CPU load rate of the application 110 of the distribution source terminal 10 is high. The details of the load detection process will be described later.

[0037] Next, if the load detection process determines that the CPU load rate of the application 110 is high, the application environment condition request unit 203 of the distribution source terminal 10 executes an application environment condition request process (step S103). In the application environment condition request process, application environment condition information for transmission is transmitted to the distribution destination terminal 10. The application environment condition request process will be described in detail later.

[0038] The environmental condition response module 204 of each distribution destination terminal 10 executes environmental condition response processing (step S104). In the environmental condition response processing, environmental condition response information is returned to the distribution source terminal 10. The environmental condition response processing will be described in detail later.

[0039] The distribution destination selection unit 205 of the distribution source terminal 10 executes a distribution destination selection process (step S105). In the distribution destination selection process, the distribution destination terminal 10 that will execute the application 110 to be the target of load distribution is selected using the environmental condition response information returned from each distribution destination terminal 10. The distribution destination selection process will be described in detail later.

[0040] The application distribution unit 206 of the distribution source terminal 10 executes application distribution processing (distribution source side) (step S106). In the application distribution processing (distribution source side), the application 110 to be subjected to load distribution and application execution information are transmitted to the distribution destination terminal 10 selected in the above step S105. The application distribution processing (distribution source side) will be described later in detail.

[0041] The application distribution unit 206 of the distribution destination terminal 10 executes application distribution processing (distribution destination side) (step S107). In the application distribution processing (distribution destination side), the application 110 is executed using the application execution information. The application distribution processing (distribution destination side) will be described in detail later.

[0042] The application deletion unit 207 of the distribution destination terminal 10 executes the application deletion process (distribution destination side) (step S108). In the application deletion process (distribution destination side), the application 110 transmitted from the distribution source terminal 10 is deleted and a completion notification is transmitted to the distribution source terminal 10. The application deletion process (distribution destination side) will be described later in detail.

[0043] The application deletion unit 207 of the distribution source terminal 10 executes the application deletion process (distribution source side) (step S109). In the application deletion process (distribution source side), the distribution flag and the distribution destination of the application environment condition information are reset. The application deletion process (distribution source side) will be described later in detail.

[0044] <Device verification process flow> The flow of the terminal confirmation process in step S101 in Fig. 6 will be described with reference to Fig. 7. Fig. 7 is a diagram for explaining an example of the flow of the terminal confirmation process according to the first embodiment.

[0045] The terminal confirmation unit 201 of the distribution source terminal 10 broadcasts a communication confirmation to the local network N1 (step S201). In response to this, the terminal 10 that has received the communication confirmation returns a response including a terminal ID and an IP address to the distribution source terminal 10.

[0046] Next, the terminal confirmation unit 201 of the distribution source terminal 10 creates belonging terminal information by associating the terminal ID and IP address included in the response received from each terminal 10 (step S202). As a result, the terminal ID and IP address of each terminal 10 currently existing in the local network N1 are obtained as belonging terminal information.

[0047] <Load detection process flow> The flow of the load detection process in step S102 in Fig. 6 will be described with reference to Fig. 8. Fig. 8 is a diagram for explaining an example of the flow of the load detection process according to the first embodiment.

[0048] The load detection unit 202 of the distribution source terminal 10 acquires the CPU load rate of each application 110 that it owns (step S301). This CPU load rate is set in the item "current load rate" of the application environment condition information in which the application ID of the application 110 is set. Note that the CPU load rate of the application 110 means, for example, the CPU usage rate (unit: %) of the application 110.

[0049] Next, the load detection unit 202 of the distribution source terminal 10 determines whether the CPU load rates of all the applications 110 are within a threshold value (step S302). Here, the threshold value refers to a load rate threshold value included in the application environment condition information in which the application ID of the application 110 is set. Therefore, the threshold value of the CPU load rate may be different for each application 110.

[0050] If it is determined in step S302 above that the CPU load rates of all the applications 110 are within the threshold, the distribution source terminal 10 ends the load distribution process (step S303). In this case, it is not necessary to distribute the processing of the applications 110. Therefore, in this case, the processing after step S103 in FIG. 6 is not executed.

[0051] On the other hand, if it is not determined in step S302 that the CPU load ratios of all the applications 110 are within the threshold (that is, if there is an application 110 whose CPU load ratio exceeds the threshold), the load detection unit 202 of the distribution source terminal 10 sets the distribution flag included in the application environment condition information in which the application ID of the application 110 whose CPU load ratio exceeds the threshold is set to 1 (step S304). This makes the application 110 a target for load distribution. Note that if the terminal 10 has multiple applications 110, multiple applications 110 may be a target for load distribution. However, for simplicity, the following description will be given of a case where one application 110 is a target for load distribution. If multiple applications 110 are a target for load distribution, the process from step S103 onward in FIG. 6 may be repeated for each application 110 that is a target for load distribution.

[0052] <<Flow of application environment condition request process>> The flow of the application environment condition request process in step S103 in Fig. 6 will be described with reference to Fig. 9. Fig. 9 is a diagram for explaining an example of the flow of the application environment condition request process according to the first embodiment.

[0053] The application environment condition request unit 203 of the distribution source terminal 10 creates application environment condition information for transmission from application environment condition information in which the distribution flag is set to 1 (step S401). Here, the application environment condition information for transmission is information indicating conditions necessary for execution of the application 110 to be subjected to load distribution, and is, for example, information obtained by extracting the application ID, OS, middleware, required HW resources, and expected load rate from the application environment condition information. The application environment condition information for transmission created from the application environment condition information shown in FIG. 5 is shown in FIG. 10.

[0054] Next, the application environment condition request unit 203 of the distribution source terminal 10 judges whether or not there is another terminal 10 in the local network N1 (step S402). This can be done by referring to the belonging terminal information created in step S101 of FIG. 6 and judging whether or not there is a terminal ID and an IP address other than the terminal ID of the own terminal 10.

[0055] If it is not determined in step S402 that there is another terminal 10 in the local network N1, the distribution source terminal 10 ends the load distribution process (step S403). In this case, there is no other terminal 10 to which the load is to be distributed. Therefore, in this case, the process from step S104 onward in FIG. 6 is not executed.

[0056] On the other hand, if it is determined in step S402 above that there is another terminal 10 within the local network N1, the application environment condition request unit 203 of the distribution source terminal 10 transmits the sending application environment condition information to the other terminal 10 (distribution destination terminal 10) within the local network N1 (step S404).

[0057] <Flow of environmental condition response processing> The flow of the environmental condition response process in step S104 in Fig. 6 will be described with reference to Fig. 11. Fig. 11 is a diagram for explaining an example of the flow of the environmental condition response process according to the first embodiment. Note that this environmental condition response process is executed by each distribution destination terminal 10, but for simplicity, the following will describe the flow when a certain distribution destination terminal 10 executes the environmental condition response process.

[0058] The environmental condition response unit 204 of the distribution destination terminal 10 receives the transmission application environmental condition information (step S501).

[0059] Next, the environmental condition response unit 204 of the distribution destination terminal 10 creates environmental condition response information based on its own application execution environment 100, CPU load rate, etc. (step S502). The environmental condition response information is information including its own terminal ID, whether each condition included in the transmission application environment condition information is satisfied, and its own current CPU load rate. FIG. 12 shows environmental condition response information corresponding to the transmission application environment condition information shown in FIG. 10. The environmental condition response information shown in FIG. 12 includes terminal ID "T002", OS "OS", middleware "OK", required HW resources "OK", expected load rate "OK", and current load rate "20". This indicates that the distribution destination terminal 10 with terminal ID "T002" satisfies the OS conditions, middleware conditions, hardware resource conditions, and expected load rate required to execute the application 110 to be distributed (i.e., it has the application execution environment 100 required to execute the application 110 to be distributed, and has the required hardware resources and required CPU resources). It also indicates that the current CPU load factor of the distribution destination terminal 10 is "20." Note that the environmental condition response information shown in Fig. 12 is an example in which all conditions included in the transmission application environmental condition information are satisfied, but if a certain condition is not satisfied, "NG" is set in the item corresponding to that condition.

[0060] Then, the environmental condition response unit 204 of the distribution destination terminal 10 returns the environmental condition response information created in the above step S502 to the distribution source terminal 10 (step S503). As a result, the distribution source terminal 10 receives environmental condition response information from each distribution destination terminal 10.

[0061] <Flow of distribution destination selection process> The flow of the distribution destination selection process in step S105 of Fig. 6 will be described with reference to Fig. 13. Fig. 13 is a diagram for explaining an example of the flow of the distribution destination selection process according to the first embodiment.

[0062] The distribution destination selection module 205 of the distribution source terminal 10 creates an environmental condition response information list using the environmental condition response information returned from each distribution destination terminal 10 (step S601). The environmental condition response information list is information including whether or not environmental condition response information has been returned from each distribution destination terminal 10, the response time if a response has been returned, whether or not each condition included in the transmission application environmental condition information is satisfied, and the current CPU load rate. An example of the environmental condition response information list is shown in FIG.

[0063] As shown in FIG. 14, the environmental condition response information list includes items such as terminal ID, reply, response time, OS, middleware, required HW resources, expected load rate, current load rate, and selection flag. The item "Terminal ID" is set to the terminal ID included in the belonging terminal information (i.e., the terminal ID of the distribution destination terminal 10). The item "Reply" is set to information (OK / NG) indicating whether or not the environmental condition response information has been replied from the distribution destination terminal 10 of the terminal ID. If "OK" is set to the reply, the items "OS", "middleware", "required HW resources", "expected load rate", and "current load rate" are set to the values ​​of the same items included in the environmental condition response information. If "OK" is set to the reply, the item "Response time" is set to the time elapsed from when the distribution source terminal 10 transmits the transmission application environmental condition information until when the environmental condition response information is received from the distribution destination terminal 10 of the terminal ID. Such elapsed time is measured by the distribution source terminal 10.

[0064] On the other hand, if the reply option is set to "NG," no values ​​are set for the items "Response time," "OS," "Middleware," "Required HW resources," "Expected load rate," and "Current load rate."

[0065] In the item "selection flag", a value is set that indicates whether or not the distribution destination terminal 10 of the terminal ID is to be a load distribution destination. When the selection flag is 0, it indicates that it is not a load distribution destination, and when it is 1, it indicates that it is a load distribution destination. The default value is set to 0.

[0066] For convenience, hereinafter, a collection of lines (records) constituting the environmental condition response information list is referred to as a “record set.” For example, if the number of terminals 10 present in the local network N1 is N (i.e., the number of terminals 10 other than the terminal 10 itself is N-1), the record set is a collection of N-1 records.

[0067] Next, the distribution destination selection unit 205 of the distribution source terminal 10 narrows down the distribution destination terminals 10 to be the load distribution destinations by using the environmental condition response information list created in the above step S601 (step S602). At this time, the distribution destination selection unit 205 narrows down the distribution destination terminals 10 to be the load distribution destinations by narrowing down the record group constituting the environmental condition response information list. Here, the distribution destination selection unit 205 may narrow down the distribution destination terminals 10 to be the load distribution destinations by, for example, following steps 1 to 6 below.

[0068] Step 1: First, the distribution destination selection module 205 excludes records in which the item "reply or not" is set to NG from the group of records constituting the environmental condition response information list.

[0069] Step 2: Next, the distribution destination selection module 205 removes records whose value set in the item "response time" is equal to or greater than a predetermined first threshold from the set of records removed in the above step 1. Note that the first threshold is a predetermined value.

[0070] Step 3: Next, the distribution destination selection module 205 removes, from the group of records removed in step 2 above, any records for which NG is set in at least one of the items "OS" and "middleware".

[0071] Step 4: Next, the distribution destination selection module 205 removes, from the set of records removed in step 3 above, any records for which NG is set in the item "necessary HW resources."

[0072] Step 5: Next, the distribution destination selection module 205 removes, from the set of records removed in step 4 above, records for which NG is set in the item "expected load factor."

[0073] Step 6: The distribution destination selection module 205 then removes records whose value set in the item "current load factor" is equal to or greater than a predetermined second threshold from the set of records removed in step 5. Note that the second threshold is a predetermined value.

[0074] This narrows down the records constituting the environmental condition response information list, and as a result, the load distribution destinations are narrowed down to the distribution destination terminals 10 corresponding to the records included in the narrowed down record set.

[0075] However, narrowing down the record group by the above steps 1 to 6 is just an example, and the record group may be narrowed down by some of these steps 1 to 6. For example, the record group may be narrowed down by step 1 and steps 3 to 6 without performing step 2. Alternatively, the record group may be narrowed down by steps 1 to 5 without performing step 6, or the record group may be narrowed down by step 1 and steps 3 to 5 without performing steps 2 and 6.

[0076] Next, the distribution destination selection module 205 of the distribution source terminal 10 judges whether or not there is a distribution-available destination terminal 10 (that is, whether or not there is one or more destination terminals 10 after narrowing down in the above step S602) (step S603).

[0077] If it is not determined in step S603 that there is a distribution destination terminal 10 that can distribute the load, the distribution source terminal 10 ends the load distribution process (step S604). In this case, this is because there is no other terminal 10 to which the processing of the application 110 that is the target of load distribution can be distributed. Therefore, in this case, the processing from step S106 onward in FIG. 6 is not executed.

[0078] On the other hand, if it is determined in step S603 that there is a distribution-available destination terminal 10, the distribution destination selection unit 205 of the distribution source terminal 10 sets the selection flag of the record in which the terminal ID of the distribution-available destination terminal 10 is set to 1 among the records constituting the environmental condition response information list (step S605). At this time, if there are multiple records corresponding to the distribution-available destination terminals 10 (that is, if there are two or more distribution destination terminals 10 after narrowing down in step S602), the distribution destination selection unit 205 of the distribution source terminal 10 sets the selection flag of only one of these multiple records to 1. At this time, the selection flag of the record with the shortest response time may be set to 1, the selection flag of the record with the lowest current load rate may be set to 1, or the selection flag of a randomly selected record may be set to 1. As a result, the distribution destination terminal 10 corresponding to the record with the selection flag set to 1 is selected as the load distribution destination of the application 110 to be the load distribution target.

[0079] Next, the distribution destination selection unit 205 of the distribution source terminal 10 sets the terminal ID included in the record whose selection flag was set to 1 in step S605 above to the “distribution destination” item of the application environment condition information in which the application ID of the application 110 to be load distributed is set (step S606).

[0080] <<Flow of application distribution processing (source side)>> The flow of the application distribution process (distribution source side) in step S106 in Fig. 6 will be described with reference to Fig. 15. Fig. 15 is a diagram for explaining an example of the flow of the application distribution process (distribution source side) according to the first embodiment.

[0081] The application distribution unit 206 of the distribution source terminal 10 creates application execution information of the application 110 corresponding to the application environment condition information in which the distribution flag is set to 1 (i.e., the application 110 to be subjected to load distribution) (step S701). As described above, the application execution information is various information required when executing the application 110, and includes, for example, information such as a path of input data input to the application 110, whether or not the processing result of the application 110 is transferred, and a transfer destination IP address in the case of transfer. An example of the application execution information is shown in FIG. 16. The application execution information shown in FIG. 16 is information required when executing the application 110 of the application ID "AP01", and includes items such as whether or not to transfer, a transfer destination IP, and an input data path. The item "Whether or Not to Transfer" sets information indicating whether or not to transfer the processing result of the application 110. The item "Transfer Destination IP" sets an IP address that is a transfer destination when the processing result of the application 110 is transferred. The item "Input Data Path" sets a path of data input when the application 110 is executed. Note that these items are merely examples, and various other items in which information required when the application 110 is executed may be included.

[0082] Next, the application distribution unit 206 of the distribution source terminal 10 acquires the terminal ID set as the distribution destination of the application environment condition information (that is, the application environment condition information of the application 110 to be load distributed) (step S702).

[0083] Then, the application distribution unit 206 of the distribution source terminal 10 transmits the application 110 to be load-distributed and the application execution information created in the above step S701 to the distribution destination terminal 10 having the terminal ID acquired in the above step S702 (step S703). Note that the application 110 may be transmitted using a known technology such as a Docker container.

[0084] <<Flow of distributed application processing (distributed side)>> The flow of the application distribution process (distribution destination side) in step S107 in Fig. 6 will be described with reference to Fig. 17. Fig. 17 is a diagram for explaining an example of the flow of the application distribution process (distribution destination side) according to the first embodiment.

[0085] The application distribution unit 206 of the distribution destination terminal 10 receives the application 110 to be subjected to load distribution and its application execution information (step S801).

[0086] Next, the application distribution unit 206 of the distribution destination terminal 10 deploys the application 110 and its application execution information in the application execution environment 100 (step S802).

[0087] Then, the application distribution unit 206 of the distribution destination terminal 10 executes the application 110 in the application execution environment 100 using the application execution information (step S803). For example, the application distribution unit 206 of the distribution destination terminal 10 acquires input data from a path set in the input data path included in the application execution information, and executes the application 110 using the input data as input. As a result, the application 110 to be subjected to load distribution is executed in the distribution destination terminal 10.

[0088] <<Flow of application deletion process (distribution destination side)>> The flow of the application deletion process (distribution destination side) in step S108 in Fig. 6 will be described with reference to Fig. 18. Fig. 18 is a diagram for explaining an example of the flow of the application deletion process (distribution destination side) according to the first embodiment.

[0089] The application deletion unit 207 of the distribution destination terminal 10 judges whether or not the execution of the application 110 in step S803 of FIG. 17 has ended (step S901).

[0090] If it is not determined in step S901 that the execution of the application 110 has ended, the distribution destination terminal 10 returns to step S901. That is, the distribution destination terminal 10 goes into a state of waiting for the execution of the application 110 to end.

[0091] On the other hand, if it is determined in step S901 that the execution of the application 110 has ended, the application deletion unit 207 of the distribution destination terminal 10 deletes the application 110 from the application execution environment 100 (step S902).

[0092] Next, the application deletion unit 207 of the distribution destination terminal 10 determines whether or not it is necessary to transfer the processing result of the application 110 (step S903). This is determined based on whether or not the application execution information has been transferred.

[0093] If it is determined in step S903 that the transfer is necessary, the application deletion unit 207 of the distribution destination terminal 10 transfers the processing result of the application 110 (step S904). That is, the application deletion unit 207 of the distribution destination terminal 10 transfers the processing result of the application 110 to the IP address set in the transfer destination IP of the application execution information. As a result, for example, if the IP address set in the transfer destination IP of the application execution information is the IP address of the data collection server 20, the processing result of the application 110 is sent to the data collection server 20. Also, for example, if the IP address set in the transfer destination IP of the application execution information is the IP address of the distribution source terminal 10, the processing result of the application 110 is sent to the distribution source terminal 10. Also, for example, if the application 110 is an application program that executes data processing, the IP address of the terminal 10B having the application 110B that executes data analysis processing is set as the transfer destination IP, and the processing result of the application 110 is sent to the terminal 10B. In this way, the transfer destination IP is set according to the processing order of the application 110 in the entire system 1.

[0094] Two or more IP addresses may be set as the destination IP of the application execution information, and in this case, the processing result of the application 110 will be sent to two or more IP addresses.

[0095] If it is determined in step S903 above that transfer is not necessary or following step S904, the application deletion unit 207 of the distribution destination terminal 10 sends a completion notification to the distribution source terminal 10 indicating that processing of the application 110 to be load balanced has been completed (step S905).

[0096] <<Flow of application deletion process (source side)>> The flow of the application deletion process (distribution source side) in step S109 in Fig. 6 will be described with reference to Fig. 19. Fig. 19 is a diagram for explaining an example of the flow of the application deletion process (distribution source side) according to the first embodiment.

[0097] The application deletion unit 207 of the distribution source terminal 10 receives a completion notification from the distribution destination terminal 10 (step S1001).

[0098] Then, the application deletion unit 207 of the distribution source terminal 10 resets the distribution flag and the distribution destination of the application environment condition information in which the application ID of the application 110 to be distributed is set (i.e., sets the distribution flag to 0 and sets the distribution destination to blank) (step S1002). This completes the load distribution of the application 110.

[0099] [Second embodiment] The second embodiment will be described below. In the first embodiment, a case where load balancing is performed among a plurality of terminals 10 (hereinafter, also referred to as a terminal group) present in a local network N1 has been described. However, since various terminals 10 may participate in the local network N1 (that is, various terminals 10 may be added to the terminal group), there is a possibility that an unauthorized terminal may participate in the local network N1. Furthermore, when load balancing is performed with an unauthorized terminal, there is a possibility that unauthorized data may be transmitted or received.

[0100] Therefore, in this embodiment, when a terminal 10 joins the local network N1, a mechanism is introduced in which other terminals 10 authenticate the terminal 10, thereby preventing a situation in which an unauthorized terminal joins the local network N1. Also, a mechanism is introduced in which, when data is transmitted and received, it is confirmed whether the data is unauthorized or not, thereby preventing a situation in which the application 110 is executed with unauthorized data or an authorized terminal 10 is attacked by unauthorized data, even if an unauthorized terminal joins the local network N1.

[0101] In the second embodiment, differences from the first embodiment will be mainly described, and descriptions of components similar to those in the first embodiment will be omitted.

[0102] <Overall composition> First, the overall configuration of a system 1 according to this embodiment will be described with reference to Fig. 20. Fig. 20 is a diagram showing an example of the overall configuration of a system 1 according to a second embodiment.

[0103] As shown in FIG. 20, the system 1 according to this embodiment further includes an authentication device 30 in addition to the terminal 10 and the data collection server 20 described in the first embodiment.

[0104] The authentication device 30 is a computer or computer system such as a server of a business operator that manages the terminal 10, and has an authentication function unit 300. The authentication function unit 300 manages a private key for a terminal 10 (hereinafter also referred to as a new participation terminal 10) that has already participated in the local network N1 to authenticate the terminal 10 (hereinafter also referred to as a participated terminal 10) when the terminal 10 joins the local network N1. This private key is information unique to the entire system 1, and is distributed to the new participation terminal 10 (therefore, the participated terminal 10 also possesses a private key). Each participated terminal 10 can verify the new participation terminal 10 by verifying that the new participation terminal 10 possesses the same private key as the terminal 10 itself. As will be described later, this verification is performed by verifying the identity of a hash value related to the terminal ID and private key of the new participation terminal 10.

[0105] Furthermore, when the terminal 10 executes the application 110 of the distribution source terminal 10, the distribution function unit 200 of the terminal 10 according to this embodiment uses a private key possessed by the terminal 10 to check whether the data used to execute the application 110 is invalid data. This check is performed by verifying the identity of a hash value related to the shared information and the private key, as described later. The shared information is information including the application ID of the application 110 to be load-distributed, the terminal ID of the distribution source terminal 10, the terminal ID of the distribution destination terminal 10, the source of data used to execute the application 110, the destination of data indicating the execution result of the application 110, the distribution start time, and the like. Specific examples of the shared information will be described later.

[0106] <Detailed Functional Configuration of the Distribution Function Unit 200> Next, a detailed functional configuration of the distributed function unit 200 according to this embodiment will be described with reference to Fig. 21. Fig. 21 is a diagram showing an example of a detailed functional configuration of the distributed function unit 200 according to the second embodiment.

[0107] As shown in FIG. 21, the distribution function unit 200 according to this embodiment includes a new participation unit 208, a participation verification unit 209, and a data confirmation unit 210 in addition to the units described in the first embodiment.

[0108] When the new participation unit 208 participates in the local network N1 (i.e., when the new participation terminal 208 is a new participation terminal 10), the new participation unit 208 notifies the authentication device 30 of its own terminal ID. In addition, the new participation unit 208 calculates a hash value from its own terminal ID and the private key notified by the authentication device 30 using a predetermined hash function, and transmits the hash value to the already participated terminal 10.

[0109] The participation verification unit 209 calculates a hash value using a predetermined hash function from the terminal ID (terminal ID of the new participation terminal 10) notified by the authentication device 30 and the private key that it possesses, and verifies whether this hash value matches the hash value notified by the new participation terminal 10. If these hash values ​​match, the participation verification unit 209 adds the terminal ID of the new participation terminal 10 to the belonging terminal information, and if not, notifies of an abnormality. As a result, only when the hash values ​​match (in other words, when the new participation terminal 10 is a legitimate terminal 10 that possesses a private key), is the terminal ID of the new participation terminal 10 added to the belonging terminal information of each already participated terminal 10.

[0110] When the data confirmation unit 210 itself is the distribution source terminal 10, it creates shared information and then transmits the shared information to a specific terminal 10 and to a terminal 10 that executes the application 110 that is the target of load distribution.

[0111] In addition, when the data verification unit 210 transmits data to be used in executing the application 110 to the distribution destination terminal 10 that is executing the application 110 to be load balanced, the data verification unit 210 calculates a hash value from the shared information and private key that it possesses using a predetermined hash function, and then transmits this hash value together with the data to the distribution destination terminal 10.

[0112] Furthermore, when the data check unit 210 executes the application 110 that is the target of load distribution of the distribution source terminal 10, the data check unit 210 calculates a hash value by a predetermined hash function from the private key that the data check unit 210 possesses and the shared information received from the distribution source terminal 10. The data check unit 210 then verifies whether the hash value received from the terminal 10 that is the transmission source of the data used to execute the application 110 matches the hash value that the data check unit 210 calculated matches. If these hash values ​​match, the data check unit 210 executes the application 110 using the data as input data via the application distribution unit 206, and if not, notifies of an abnormality. As a result, the application 110 received from the distribution source terminal 10 (the application 110 that is the target of load distribution) is executed only when the hash values ​​match (i.e., the terminal 10 that is the transmission source of the data used to execute the application 110 is a regular terminal 10 that possesses a private key and shared information).

[0113] In the following description, the terminal 10 that transmits the data used in the application 110 that is the target of load distribution is also referred to as the "data transmitting terminal 10." Also, the terminal 10 that executes the application 110 using this data (i.e., the distribution destination terminal 10 that executes the application 110 that is the target of load distribution of the distribution source terminal 10) is also referred to as the "data receiving terminal 10."

[0114] <Detailed Functional Configuration of the Authentication Function Unit 300> Next, a detailed functional configuration of the authentication function unit 300 according to this embodiment will be described with reference to Fig. 22. Fig. 22 is a diagram showing an example of a detailed functional configuration of the authentication function unit 300 according to the second embodiment.

[0115] 22, the authentication function unit 300 according to this embodiment includes an authentication unit 301. Note that the authentication function unit 300 is realized, for example, by a process in which one or more programs installed in the authentication device 30 are executed by a processor such as a CPU.

[0116] When the authentication unit 301 receives a terminal ID from a new participation terminal 10, it notifies the new participation terminal 10 of a private key. Furthermore, the authentication unit 301 refers to the already participated terminal information and notifies each already participated terminal 10 of the terminal ID of the new participation terminal 10. Here, the already participated terminal information is a list of terminal IDs of regular terminals 10 participating in the local network N1 (i.e., terminals 10 that possess a private key).

[0117] Then, if no abnormality is reported from any of the already-participated terminals 10, the authentication unit 301 adds the terminal ID of the new participation terminal 10 to the already-participated terminal information. As a result, the new participation terminal 10 is registered in the authentication device 30 as a already-participated terminal 10.

[0118] <New participation process flow> Next, a process flow when a new participation terminal 10 newly participates in the local network N1 will be described with reference to Fig. 23. Fig. 23 is a diagram for explaining an example of the flow of new participation processing according to the second embodiment.

[0119] The new participation unit 208 of the new participation terminal 10 notifies (transmits) its own terminal ID to the authentication device 30 (step S1101).

[0120] The authentication unit 301 of the authentication device 30 receives the terminal ID from the new participation terminal 10 (step S1102).

[0121] Next, the authentication unit 301 of the authentication device 30 refers to the already-participated terminal information, and notifies (transmits) the terminal ID of the new participation terminal 10 to the terminal 10 having the terminal ID included in the already-participated terminal information (that is, the already-participated terminal 10) (step S1103).

[0122] Next, the authentication unit 301 of the authentication device 30 notifies (transmits) the private key to the new participation terminal 10 (step S1104).

[0123] The new participation unit 208 of the new participation terminal 10 receives the private key from the authentication device 30 (step S1105).

[0124] Next, the new participation unit 208 of the new participation terminal 10 participates in the local network N1 (step S1106). That is, the new participation unit 208 of the new participation terminal 10 connects to the local network N1.

[0125] Next, the new participation unit 208 of the new participation terminal 10 calculates a hash value using a predetermined hash function from its own terminal ID and the private key received in the above step S1105 (step S1107).

[0126] Then, the new participation unit 208 of the new participation terminal 10 notifies (transmits) the hash value calculated in the above step S1107 to the already participated terminals 10 (step S1108). Note that the new participation unit 208 of the new participation terminal 10 may broadcast the hash value calculated in the above step S1107 to each terminal 10 present in the local network N1.

[0127] On the other hand, the participation verification unit 209 of the already participated terminal 10 receives the terminal ID of the new participation terminal 10 from the authentication device 30 (step S1109), and calculates a hash value from this terminal ID and its own private key using a predetermined hash function (step S1110).

[0128] Next, the participation verification unit 209 of the already participated terminal 10 verifies whether or not the hash value calculated in the above step S1110 matches the hash value from the new participation terminal 10 (step S1111).

[0129] Then, as a result of the verification in step S1111 above, if the hash values ​​match, the participation verification unit 209 of the already participated terminal 10 adds the terminal ID of the new participation terminal 10 to the belonging terminal information, and if not, notifies the authentication device 30 of an abnormality (step S1112).

[0130] Finally, if no abnormality is reported from any of the already-participated terminals 10, the authentication unit 301 of the authentication device 30 adds the terminal ID of the new participation terminal 10 to the already-participated terminal information (step S1113). Note that this step may be executed, for example, a predetermined time after the execution of the above step S1104. As a result, the new participation terminal 10 is registered in the authentication device 30 as a already-participated terminal 10.

[0131] For example, in the above step S1112, the participation verification unit 209 of each already-participated terminal 10 may add the terminal ID of the new participation terminal 10 to the belonging terminal information when the hash values ​​match, and may notify the authentication device 30 that the terminals are normal. In this case, for example, the authentication unit 301 of the authentication device 30 may execute the above step S1113 when it receives notifications that the terminals are normal from all already-participated terminals 10.

[0132] <Load balancing process flow> Next, a flow of load balancing processing among a plurality of terminals 10 present in the local network N1 will be described with reference to Fig. 24. Fig. 24 is a diagram for explaining an example of the flow of load balancing processing according to the second embodiment.

[0133] In the following, as an example, it is assumed that five terminals 10, terminal 10A (terminal ID "T001") to terminal 10E (terminal ID "T005"), exist in the local network N1. Then, during default processing (i.e., when load balancing is not performed), as shown in the upper diagram of FIG. 25, a series of processes are performed, such as processing data collected from devices by application 110A of terminal 10A, analyzing the processed data by application 110B of terminal 10B, and transmitting data indicating the analysis result to data collection server 20 by application 110C of terminal 10C. Note that, hereinafter, the terminal 10 that executes each process constituting a series of processes during default processing is also referred to as "associated terminal 10". In the example shown in the upper diagram of FIG. 25, terminal 10A, terminal 10B, and terminal 10C correspond to associated terminals 10.

[0134] In the following, a case will be described in which terminal 10B is set as the distribution source terminal 10 and terminal 10E executes application 110B to be a load distribution target, as shown in the lower diagram of Fig. 25. That is, during distribution processing, a series of processes are performed in which data collected from devices is processed by application 110A of terminal 10A, the processed data is analyzed by application 110B of terminal 10E, and data indicating the analysis result is transmitted to data collection server 20 by application 110C of terminal 10C.

[0135] First, the terminal confirmation unit 201 of the distribution source terminal 10 (terminal 10B) executes a terminal confirmation process (step S1201) similarly to step S101 in Fig. 6. However, in step S202 in Fig. 7, for example, a terminal ID that is not included in the joined terminal information possessed by the authentication device 30 (or the joined terminal information acquired from the authentication device 30) is not added to the belonging terminal information.

[0136] Next, the load detection unit 202 of the distribution source terminal 10 (terminal 10B) executes the load detection process (step S1202) in the same manner as in step S102 of FIG.

[0137] Next, if the load detection process determines that the CPU load rate of the application 110 (application 110B) is high, the application environment condition request unit 203 of the distribution source terminal 10 (terminal 10B) executes the application environment condition request process (step S1203), similar to step S103 in FIG. 6.

[0138] The environmental condition response module 204 of each distribution destination terminal 10 (terminal 10A, terminal 10C to terminal 10E) executes the environmental condition response process (step S1204), similarly to step S104 in FIG.

[0139] The distribution destination selection unit 205 of the distribution source terminal 10 (terminal 10B) executes the distribution destination selection process (step S1205) similarly to step S105 in Fig. 6. As described above, it is assumed here that the terminal 10E is selected as the distribution destination terminal 10 that will execute the application 110 (application 110B) to be load-distributed.

[0140] The data confirmation unit 210 of the distribution source terminal 10 (terminal 10B) executes a shared information creation and transmission process (step S1206). In the shared information creation and transmission process, shared information is created and transmitted to each associated terminal 10 other than itself. The shared information creation and transmission process will be described later in detail.

[0141] Next, the application distribution unit 206 of the distribution source terminal 10 (terminal 10B) executes application distribution processing (distribution source side) (step S1207). In this application distribution processing (distribution source side), steps S701 to S702 in Fig. 15 are the same as in the first embodiment, but in step S703 in Fig. 15, the distribution information created in the above step S1206 is sent to the distribution destination terminal 10 (terminal 10E) together with the application 110 (application 110B) to be load-distributed and its application execution information.

[0142] The application distribution unit 206 of the distribution destination terminal 10 (terminal 10E) executes application distribution processing (distribution destination side) (step S1208). In this application distribution processing (distribution destination side), steps S802 to S803 in FIG. 17 are the same as in the first embodiment, but in step S801 in FIG. 17, distribution information is received together with the application 110 (application 110B) to be subjected to load distribution and its application execution information. In addition, when the application 110B is executed in step S803 in FIG. 17, it is confirmed whether the data received from the data sending side terminal 10 (terminal 10A) is invalid data, and then the application 110B is executed using the data as input data. Details of this data confirmation processing will be described later.

[0143] The application deletion unit 207 of the distribution destination terminal 10 (terminal 10E) executes application deletion processing (distribution destination side) (step S1209). In this application deletion processing (distribution destination side), steps S901 to S904 in FIG. 18 are the same as those in the first embodiment, but in step S905, a completion notification is sent not only to the distribution source terminal 10 (terminal 10B) but also to associated terminals 10 other than terminal 10B (terminals 10A and 10C). In addition, after step S905 is executed, the shared information is deleted. Note that, in each associated terminal (terminal 10A, terminal 10B, terminal 10C), after receiving the completion notification, the shared information related to the application 110 corresponding to this completion notification is deleted.

[0144] The application deletion unit 207 of the distribution source terminal 10 (terminal 10B) executes an application deletion process (distribution source side) (step S1210). In this application deletion process (distribution destination side), steps S1001 to S1002 in FIG. 19 are the same as those in the first embodiment, but the shared information is deleted after step S1002 is executed.

[0145] <Flow of shared information creation and transmission process> The flow of the shared information creation and transmission process in step S1206 in Fig. 24 will be described with reference to Fig. 26. Fig. 26 is a diagram for explaining an example of the flow of the shared information creation and transmission process according to the second embodiment.

[0146] The data confirmation unit 210 of the distribution source terminal 10 (terminal 10B) creates distribution information for the application 110 (application 110B) to be subjected to load distribution (step S1301). Here, the distribution information is information related to the application 110 to be subjected to load distribution, and as described above, is information including the application ID of the application 110 to be subjected to load distribution, the terminal ID of the distribution source terminal 10, the terminal ID of the distribution destination terminal 10, the source of data used to execute the application 110, the destination of data showing the execution result of the application 110, the distribution start time, and the like. A specific example of the distribution information is shown in FIG. 27. The example shown in FIG. 27 is distribution information including the application ID "AP02", the distribution source terminal ID "T002", the distribution destination terminal ID "T005", the data source "T001", the data destination "T003", and the distribution start time "202011011010". This distribution information indicates that the application ID of the application 110 to be load distributed is "AP02", the terminal ID of the distribution source terminal 10 is "T002", the terminal ID of the distribution destination terminal 10 is "T005", the source of the data used to execute the application 110 is "T001", the destination of the data indicating the execution result of the application 110 is "T003", and the start time of load distribution is 10:10 on November 1st, 2020.

[0147] However, the above sharing information is merely an example, and any information other than the application ID, the distribution source terminal ID, the distribution destination terminal ID, the data transmission source, the data transmission destination, and the distribution start time may be included.

[0148] Next, the data confirmation unit 210 of the distribution source terminal 10 (terminal 10B) transmits the shared information created in the above step S1301 to the other associated terminals 10 (terminals 10A and 10C) other than itself (step S1302). As a result, each associated terminal 10 holds the shared information.

[0149] <<Data confirmation process flow>> Next, the flow of the data confirmation process in the case where the distribution destination terminal 10 checks whether the data received from the data sending terminal 10 (terminal 10A) is invalid when executing the application 110B to be load-balanced in step S803 in Fig. 17 will be described with reference to Fig. 28. Fig. 28 is a diagram for explaining an example of the flow of the data confirmation process according to the second embodiment.

[0150] The data confirmation unit 210 of the data sending terminal 10 (terminal 10A) calculates a hash value from the shares and private key held by itself using a predetermined hash function (step S1401).

[0151] Next, the data confirmation unit 210 of the data sending terminal 10 (terminal 10A) refers to the shared information and sends the data used to execute the application 110B and the hash value calculated in step S1401 to the data receiving terminal 10 (terminal 10E) (step S1402). Note that the terminal ID of the data receiving terminal 10 can be identified from the distribution destination terminal ID included in the shared information.

[0152] The data confirmation unit 210 of the data receiving terminal 10 (terminal 10E) receives the data and the hash value from the data sending terminal 10 (terminal 10A) (step S1403).

[0153] Next, the data confirmation unit 210 of the data receiving terminal 10 (terminal 10E) calculates a hash value from the shares and private key held by itself using a predetermined hash function (step S1404).

[0154] Next, the data confirmation unit 210 of the data receiving terminal 10 (terminal 10E) verifies whether or not the hash value received in the above step S1403 matches the hash value calculated in the above step S1404 (step S1405).

[0155] Then, if the hash values ​​match as a result of the verification in step S1405, the data confirmation unit 210 of the data receiving terminal 10 (terminal 10E) executes the application 110 (application 110B) by the application distribution unit 206 using the data received in step S1403 as input data, and if not, notifies of an abnormality (step S1406). As a result, only if the data sending terminal 10 is a legitimate terminal 10 that possesses a private key and shared information, the application 110 to be subjected to load distribution is executed using the data received from this data sending terminal 10 as input data. This makes it possible to prevent a situation in which the application 110 is executed using unauthorized data.

[0156] <Summary> As described above, the multiple terminals 10 included in the system 1 according to the first embodiment can achieve load balancing by having other terminals 10 present in the local network N1 execute their own applications 110. Moreover, at this time, each terminal 10 selects another terminal 10 to which the load is to be distributed, taking into consideration the current load status and communication status of the other terminal 10, in addition to whether the other terminal 10 can execute the application 110. As a result, the system 1 according to the present embodiment can achieve appropriate load balancing by each terminal 10 alone, without requiring a server that manages each terminal 10.

[0157] Furthermore, in the system 1 according to the second embodiment, it is possible to prevent a fraudulent terminal from participating in the local network N1 by introducing the authentication device 30. Even if a fraudulent terminal participates in the local network N1, when data used in the application 110 to be subjected to load balancing is received, it is possible to check whether the data is fraudulent or not, and therefore it is possible to prevent a situation in which the application 110 is executed by the fraudulent data.

[0158] The present invention is not limited to the above-described embodiments specifically disclosed, and various modifications, changes, combinations with known technologies, etc. are possible without departing from the scope of the claims. [Explanation of symbols]

[0159] 1 System 10 Terminal 20 Data Collection Server 100 App execution environment 110 Apps 200 Distributed function section 201 Terminal Verification Department 202 Load detection unit 203 Application Environment Conditions Request Department 204 Environmental Condition Response Section 205 Distribution Destination Selection Unit 206 Application Distribution Department 207 App Deletion Section 501 Input Device 502 Display device 503 External I / F 503a Recording media 504 Communication I / F 505 Processor 506 Memory Device 507 Bus N1 local network N2 Internet

Claims

1. A system including a plurality of terminals that execute one or more applications and an authentication device, The terminal includes: a condition transmission unit that transmits application condition information indicating a condition required for executing the application to another terminal when a load rate of a computing device included in the application exceeds a predetermined threshold; a response receiving unit that receives, as a response to the application condition information, response information including information indicating whether the condition is satisfied from another terminal; a selection unit that selects another terminal that is to execute the application from among the other terminals based on the response information; an application transmission unit that transmits the application and information necessary for executing the application to the selected other terminal; The authentication device includes: a private key transmission unit that transmits a private key to a new terminal when the new terminal joins the system; an identification information transmission unit that transmits identification information of the new terminal to terminals already participating in the system; The new terminal is a hash value transmission unit that transmits a hash value calculated from the private key and the identification information of the terminal that has already participated in the system, The terminal includes: a first verification unit that verifies whether or not a hash value received from the new terminal matches a hash value calculated from a private key held by the new terminal and the identification information transmitted from the authentication device, The condition transmission unit is The system transmits the application condition information to another terminal for which it has been verified by the first verification unit that the hash value matches.

2. The selection unit is The system according to claim 1 , further comprising: selecting another terminal on which to execute the application from among other terminals which have returned response information including information indicating that all of the conditions are satisfied.

3. The response information further includes a load factor of a computing device of the other terminal that returned the response information, The selection unit is 3. The system according to claim 1, further comprising: selecting another terminal on which to execute the application from among other terminals whose load rates included in the response information do not exceed a predetermined threshold.

4. The selection unit: The system according to claim 1 , further comprising: selecting another terminal to execute the application from among other terminals for which the elapsed time from the transmission of the application condition information until the reception of the response information does not exceed a predetermined threshold.

5. The system according to claim 1 , wherein the application condition information includes at least one of conditions related to an OS required for executing the application, conditions related to middleware, conditions related to hardware resources, and conditions related to utilization rate of a computing device.

6. A confirmation unit that broadcasts a communication confirmation to the network to which the terminal belongs, The condition transmission unit is The system according to claim 1 , further comprising: transmitting the application condition information to another terminal that has responded to the communication confirmation.

7. The terminal includes: a distribution information transmission unit that transmits information regarding load distribution of the application to other terminals related to the processing of the application and to other terminals selected by the selection unit; Among other terminals related to the processing of the application, a terminal that transmits data used to execute the application is a data transmission unit that transmits information related to the load balancing of the application and a hash value calculated from a private key held by the data transmission unit, and the data, to another terminal selected by the selection unit; The other terminal selected by the selection unit, a second verification unit that verifies whether a hash value received from a terminal that transmits data used for executing the application matches a hash value calculated from information related to load balancing of the application and a private key held by the second verification unit; The system according to claim 1 , further comprising: an application execution unit that executes the application using the data as input data when the second verification unit verifies that the hash values ​​match.

8. 1. A method for use in a system including a plurality of terminals running one or more applications and an authentication device, comprising: The terminal, a condition transmission step of transmitting, to another terminal, application condition information indicating a condition required for executing the application when a load rate of a computing device included in the application exceeds a predetermined threshold; a response receiving step of receiving, from another terminal, response information including information indicating whether the application condition information is satisfied, as a response to the application condition information; a selection step of selecting, from the other terminals, another terminal on which the application is to be executed based on the response information; an application transmission step of transmitting the application and information required for executing the application to the selected other terminal; The authentication device, a private key transmission procedure for transmitting a private key to a new terminal when the new terminal joins the system; an identification information transmission step of transmitting identification information of the new terminal to terminals already participating in the system; The new terminal, a hash value transmission step of transmitting a hash value calculated from the private key and the identification information of the terminal transmitted from the authentication device to a terminal already participating in the system; The terminal, a first verification step of verifying whether or not a hash value received from the new terminal coincides with a hash value calculated from a private key held by the new terminal and the identification information transmitted from the authentication device; The condition transmission step includes: transmitting the application condition information to another terminal for which it has been verified that the hash value matches in the first verification step.

Citation Information

Patent Citations

  • Method, device and system for information processing

    JP1995152699A

  • Method and system for load distribution of computer system

    JP1998161987A

  • Authentication device in decentralized processing system

    JP2000261428A

  • Adaptive distributed processing system

    JP2005004676A

  • Migrating program and virtual machine managing device

    JP2009116852A