Mesh controller, mesh agent, mesh network system, software update method and program
The mesh network system optimizes software updates by managing updates based on software type and connection status, reducing WAN communication and service disruptions, thus enhancing efficiency and quality in mesh Wi-Fi networks.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- NEC PLATFROMS LTD
- Filing Date
- 2023-12-18
- Publication Date
- 2026-05-26
AI Technical Summary
Existing mesh Wi-Fi networks face inefficiencies in software updates, including redundant file downloads, limited WAN communication speed, and communication interruptions during firmware updates, particularly when using LTE connections.
A mesh network system with a mesh controller and agents that manage software updates by determining the type of software installed on each agent, sending update information only to agents needing the same update, and initiating updates when no terminal devices are connected, reducing WAN communication and minimizing service disruptions.
The system efficiently updates software across multiple access points while minimizing WAN communication and reducing service disruptions, ensuring high-quality communication service.
Smart Images

Figure 0007865600000001 
Figure 0007865600000002 
Figure 0007865600000003
Abstract
Description
Technical Field
[0001] The present invention relates to a mesh controller, a mesh agent, a mesh network system, a software update method, and a program.
Background Art
[0002] There is a mesh Wi-Fi network in which access points (APs) such as a plurality of relay devices (routers) are connected like a mesh. In a mesh Wi-Fi network, there are cases where multiple APs of the same model (or similar models) are used. Also, the AP updates the installed software such as firmware for function enhancement and security enhancement. A file used for such an update is downloaded from a server via, for example, the Internet or the like.
[0003] In such a network, there is a technology for appropriately updating the firmware of a plurality of APs (see, for example, Patent Document 1). In the technology disclosed in Patent Document 1, "a communication device is operable as an access point in a wireless network including a plurality of access points, obtains firmware information of other access points other than the communication device among the plurality of access points, and based on the obtained firmware information, determines a schedule for updating the firmware of other access points, and notifies information on the determined schedule to other access points (summary excerpt)".
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] The following analysis is provided by the inventor of the present invention.
[0006] According to the technology described in Patent Document 1, the AP acting as a controller schedules firmware updates so that they do not overlap between other APs (agents) in the network. Therefore, communication interruptions during updates can be minimized.
[0007] However, the challenges related to software updates are not limited to this. For example, the files used for updates are downloaded from a server via the internet, etc. Some of these files are large in size. When performing software updates using the functions of a typical router (AP), each AP performs the update using its respective function. Therefore, since each AP that makes up a mesh Wi-Fi network downloads the update file, a lot of communication occurs.
[0008] When using LTE (Long Term Evolution) or similar technologies as the WAN (Wide Area Network) connection in an access point (AP), the communication speed may be limited depending on the amount of data used. Therefore, there is a demand to minimize WAN-side data usage as much as possible. Also, since the same AP models use the same files for updates, having each AP download the same file multiple times means that the same file is downloaded multiple times, which is inefficient.
[0009] Furthermore, firmware updates require a restart. During this time, devices connected to the access point (AP) will lose communication. Therefore, this point must also be taken into consideration when using a mesh Wi-Fi network.
[0010] This invention has been made in view of the above circumstances, and aims to provide a technology that supports the efficient updating of installed software in a network system consisting of multiple access points (APs) without reducing the amount of communication with the outside and without degrading service. [Means for solving the problem]
[0011] According to the first aspect of this invention, A memory unit that stores update files, The system includes a control unit that controls the updating of software installed on mesh agents within a mesh network using the aforementioned update file, The control unit, A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the device is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The aforementioned update initiation request is sent when no terminal device is connected to the agent of the same type, and a mesh controller is provided.
[0012] According to a second aspect of the present invention, It is equipped with a control unit that controls software updates for the device, The control unit, Upon receiving update information from a mesh controller within the mesh network, the system determines whether a terminal device is connected, and if there is no connection, it sends an update start request to the mesh controller. The update of the device is performed using the update file sent from the mesh controller in response to the update start request. A mesh agent is provided that sends an update completion notification to the mesh controller once the update is complete.
[0013] According to a third aspect of the present invention, A mesh network system comprising a mesh controller and mesh agents, The aforementioned mesh controller is A memory unit that stores update files, The system includes a controller-side control unit that controls the updating of the mesh controller and mesh agent software using the aforementioned update file, The mesh agent includes an agent-side control unit that controls the update of its own device, The controller-side control unit is: A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the mesh controller is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The agent-side control unit, Upon receiving the update information from the mesh controller, the system determines whether a terminal device is connected, and if there is no connection, it sends the update start request to the mesh controller. The update of the device is performed using the update file transmitted from the mesh controller in response to the update start request. A mesh network system is provided that, upon completion of the update, sends an update completion notification to the mesh controller.
[0014] According to the fourth aspect of the present invention, A software update method for updating the software of a mesh controller and a mesh agent in a mesh network system including a mesh controller and a mesh agent, comprising: The mesh controller: Determine the type of software to be installed on the mesh agent, Determine whether the update is necessary for the mesh agent installed with the same type of software as the self-device, Transmit update information to the mesh agent determined to require the update, When the mesh agent receives the update information, it determines the presence or absence of a connection to a terminal device. If there is no connection, it transmits an update start request to the mesh controller, When the mesh controller receives the update start request, it transmits the software update file stored in the self-device to the mesh agent that is the source of transmission, The mesh agent performs the update using the update file received from the mesh controller, and when the update is completed, it transmits an update completion notification to the mesh controller, thereby providing a software update method.
[0015] According to the fifth aspect of the present invention, A computer built into a mesh controller is made to function as: A type determination means for determining the type of software installed on a mesh agent in a mesh network, An agent update means for determining whether the software of the same type agent, which is the mesh agent installed with the same type of software as the mesh controller, needs to be updated, transmitting update information to the same type agent determined to require the update, and when an update start request is returned from the same type agent when no terminal device is connected to the same type agent after the transmission of the update information, transmitting the update file stored in the self-device to the same type agent that is the source of the return. A program is provided for causing the computer to function as the agent update means.
[0016] According to the sixth aspect of the present invention, The computer built into the mesh agent, A program is provided to function as a control means that, upon receiving update information from a mesh controller in a mesh network, determines whether a terminal device is connected or not, sends an update start request to the mesh controller if there is no connection, updates the software installed on the mesh agent using the update file sent from the mesh controller in response to the update start request, and sends an update completion notification to the mesh controller when the update is complete.
[0017] This program can be recorded on a computer-readable storage medium. The storage medium can be a non-transient medium such as semiconductor memory, hard disk, magnetic recording medium, or optical recording medium. The present invention can also be embodied as a computer program product. [Effects of the Invention]
[0018] According to the present invention, in a network system consisting of multiple access points (APs), the amount of communication with the outside world can be reduced, and installed software can be updated efficiently without degrading service quality. [Brief explanation of the drawing]
[0019] [Figure 1] (a) is an overall diagram of an example of the mesh network system of the present disclosure, and (b) and (c) are functional block diagrams of an example of the mesh controller and mesh agent of the present disclosure, respectively. [Figure 2] (a) is an overall diagram of an example of the mesh network system of the present disclosure, and (b) and (c) are functional block diagrams of an example of the mesh controller and mesh agent of the present disclosure, respectively. [Figure 3](a) is an example of the firmware (FW) management table of this disclosure, and (b) to (e) are explanatory diagrams illustrating an example of update information, FW query, FW response, and update information of this disclosure, respectively. [Figure 4] This is a flowchart of an example of the firmware update process described in this disclosure. [Figure 5] This is a flowchart illustrating a specific example of the firmware update process described in this disclosure. [Figure 6] (a) and (b) are diagrams illustrating the scope of a modified mesh Wi-Fi of the present disclosure. [Figure 7] This is a flowchart of an example of a firmware update process in a modified version of the present disclosure. [Figure 8] This diagram shows an example of the hardware configuration of the mesh controller and mesh agent of this disclosure. [Modes for carrying out the invention]
[0020] Hereinafter, an outline of one embodiment of the present invention (hereinafter referred to as "this embodiment") will be described with reference to the drawings. The reference numerals in the drawings are added to each element for convenience as an example to aid understanding, and are not intended to limit the present invention to the illustrated embodiments. Furthermore, the connecting lines between blocks in the drawings and other references in the following description include both bidirectional and unidirectional lines. Unidirectional arrows schematically indicate the flow of the main signal (data) and do not exclude bidirectionality.
[0021] Furthermore, although there are ports and interfaces at the input / output connection points of each block in the diagram, they are omitted from the illustration. Also, in the following explanation, "A and / or B" means A or B, or A and B.
[0022] <<First Embodiment>> First, a first embodiment of the present invention will be described. Figure 1(a) is an overall diagram of the mesh network system (network 100a) of this embodiment. As shown in this figure, the network 100a of this embodiment comprises a mesh controller (controller 200a) and one or more mesh agents (agents 300a). Here, as an example, a case in which three agents 300a are provided will be illustrated.
[0023] The controller 200a and each agent 300a communicate wirelessly with each other to form a mesh AP (Access Point) that constitutes network 100a. The controller 200a is connected to a WAN (Wide Area Network) 801 such as the Internet and controls multiple agents 300a. Each agent 300a can communicate with the WAN 801 via the controller 200a.
[0024] The wireless client terminal (terminal device; client 400) is a portable or fixed wireless terminal that can communicate with the WAN 801 via network 100a (controller 200a) by connecting to any mesh AP.
[0025] In this network 100a, in this embodiment, only the controller 200a downloads the software update file (update file) from the external server 800 via the WAN 801. The controller then provides the update file to agents 300a within the network 100a that are of the same type as the controller 200a, via communication within the network 100a. Note that "same type of device" means that the installed software to be updated is of the same type.
[0026] Each agent 300a receives an update file from the controller 200a and performs the update when no slave devices 400 are connected to its device (i.e., when no slave devices 400 are communicating via agent 300a).
[0027] The following description of the network 100a of this embodiment, which realizes this, will be given as an example where the software to be updated is firmware (FW). The FW to be updated in this embodiment is software for controlling the AP hardware. For example, it is software that is pre-written to the AP's non-volatile storage device and incorporated into the AP. The FW may include microcode that determines the operation of the CPU (Central Processing Unit) installed in the AP, BIOS (Basic Input / Output System), etc.
[0028] [controller] Figure 1(b) is a functional block diagram of the controller 200a. As shown in this figure, the controller 200a of this embodiment includes a controller storage unit (CNT storage unit) 210 that stores the update file 211, and a controller control unit (CNT control unit) 220 that controls the updating of the FW of APs (controller 200a and agent 300a) in the network 100a using the update file 211.
[0029] The CNT control unit 220 includes a type determination unit 230 that determines the type of agent 300a within the network 100a, and an agent update unit 240 that controls the updating of the same-type agent 300a, which is determined to be the same type as the device itself. Note that "same type" means that the same type of firmware is installed, as described above.
[0030] The agent update unit 240 determines whether an update is necessary for the same type of agent 300a. It then sends update information as an update instruction to the same type of agent 300a that it determines needs updating. Here, the update information is used to determine whether the firmware of each AP (controller 200a and agent 300a) can be updated.
[0031] Furthermore, when the agent update unit 240 receives an update start request from an agent 300a of the same type, it sends the update file 211 to the agent 300a that sent the update start request.
[0032] [agent] As shown in Figure 1(c), agent 300a includes an agent control unit (AGT control unit) 320 that controls software updates for its own device. When the AGT control unit 320 receives update information from controller 200a in network 100a, it determines whether or not a slave device 400 is connected. If there is no connection for the slave device 400, i.e., if the slave device 400 is not connected to its own device, it sends an update start request to controller 200a. In response, when controller 200a sends an update file 211, it uses it to update the firmware of its own device. Once the update is complete, it sends an update completion notification to controller 200a.
[0033] As explained above, according to this embodiment, agent 300a, which has the same type of FW as controller 200a installed, does not obtain update information and update files 211 from the external server 800. Therefore, in this embodiment, communication with WAN 801 occurs only when controller 200a obtains update information and update files 211 from the external server 800. This makes it possible to reduce the amount of communication with WAN 801, which has communication usage limits.
[0034] Furthermore, according to this embodiment, agent 300a checks for the connection of the slave device 400, and if there are no connected slave devices 400, it requests the update file 211 from the controller 200a, performs the update, and restarts. Therefore, the communication of the slave device 400 connected to agent 300a is less likely to be suddenly interrupted, and a high-quality communication service can be provided.
[0035] Furthermore, since agent 300a autonomously manages the firmware update schedule, controller 200a does not need to manage updates for each agent 300a. Therefore, the increase in the load on controller 200a is kept to a minimum.
[0036] Therefore, according to this embodiment, in a network 100a consisting of a controller 200a and one or more agents 300a, the amount of communication with external parties that have communication restrictions can be reduced, and the firmware can be updated efficiently without degrading service.
[0037] <<Second Embodiment>> Next, a second embodiment of this model will be described. This embodiment is a more detailed and specific version of the first embodiment.
[0038] The mesh network system (network 100) of this embodiment is basically the same as that of the first embodiment, and as shown in Figure 2(a), it comprises a mesh controller (controller 200) and one or more mesh agents (agents 300). Hereafter, configurations with the same names as those of the first embodiment will basically have the same functions as those of the first embodiment. Hereafter, this embodiment will be described focusing on configurations that differ from those of the first embodiment.
[0039] [controller] As shown in Figure 2(b), the controller 200 of this embodiment includes a controller (CNT) storage unit 210, a controller (CNT) control unit 220, a controller (CNT) first communication unit 260, and a controller (CNT) second communication unit 270.
[0040] The CNT memory unit 210 stores and manages FW information for the device itself and the agent 300 that communicates wirelessly with the device. This information is managed, for example, as an FW management table 510. An example of the FW management table 510 is shown in Figure 3(a).
[0041] As shown in this figure, the FW management table 510 registers the FW type 512, which indicates the type of FW installed on the device (controller 200) and the agent 300, and the version 513, which indicates the FW version. Each of these is registered in association with information that identifies the device (CNT, AGT ID). The AGT ID is information that identifies each agent 300.
[0042] Additionally, a completion flag 514 indicating whether the update is complete is registered. As will be described later, the completion flag 514 is set by the CNT control unit 220 when it receives a completion notification from each agent 300.
[0043] In this embodiment as well, the update file 211 and update information 520 downloaded from the external server 800 are also temporarily stored. The update file 211 is a file for performing firmware updates on the controller 200 and agent 300. The update information 520 is information for determining whether or not firmware updates are possible for the controller 200 and agent 300.
[0044] The CNT first communication unit 260 is an interface that communicates with the WAN 801 via LTE or the like. The controller 200 connects to the external server 800, which holds the update file 211 and update information 520, via the CNT first communication unit 260.
[0045] The CNT second communication unit 270 is an interface that performs wireless communication with agents 300 within the network 100, which constitutes a mesh Wi-Fi network. It also communicates with slave units 400 connected to the controller 200. For example, it performs backhaul communication with agents 300 and fronthaul communication with slave units 400.
[0046] The CNT control unit 220 controls the operation of the entire controller 200 and also controls the updating of the firmware of agents 300 within the network 100. The controlled agents 300 are those with the same type of firmware installed. Hereinafter, these will also be referred to as same-type agents. Agents 300 with different types of firmware installed will also be referred to as heterogeneous agents. To achieve this, similar to the first embodiment, the CNT control unit 220 includes a type determination unit 230 and an agent update unit 240.
[0047] Furthermore, the CNT control unit 220 updates the firmware of its own device. The CNT control unit 220 accesses the external server 800 via the CNT first communication unit 260 and obtains update information 520. For example, it accesses the external server 800 at predetermined time intervals or in response to the occurrence of predetermined events.
[0048] The update information 520 obtained here includes the latest version information of the firmware. An example of the information included in update information 520 is shown in Figure 3(b). As shown in this figure, update information 520 includes firmware type 522, which identifies the type of firmware, and version 523, which identifies its version.
[0049] When the CNT control unit 220 receives update information 520, it compares it with the version 513 of the firmware currently installed on its device to determine whether an update is necessary. If the version 513 of its device is older and an update is deemed necessary, it obtains the latest version update file 211 from the external server 800 and stores it in the CNT storage unit 210.
[0050] The CNT control unit 220 updates its own device using the update file 211 after all identical agents 300 within the network 100 have been updated. Then it deletes the update file 211. In addition, it updates version 513 registered in the FW management table 510 to version 523 of the installed update file.
[0051] The type determination unit 230 determines the type of FW installed on each agent 300 within the network 100. In this embodiment, it sends an FW query 530 to inquire about the type and version information of the FW installed on each agent 300. As shown in Figure 3(c), the FW query 530 is created by adding an AGT ID 531, which is information that identifies the agent 300 to be inquired about, to the query content 532.
[0052] Upon receiving the FW response 540, which is sent in response to the FW inquiry 530, the type determination unit 230 analyzes the FW response 540 and determines the type and version of the FW installed on the sending agent 300. As shown in Figure 3(d), the FW response 540 includes an AGT ID 541, which is information identifying the sending agent, an FW type 542 indicating the type of FW installed, and a version 543 which is version information of the FW.
[0053] Furthermore, the AGT ID, which is information that identifies the agent 300, is attached to the transmission and reception between the controller 200 and the agent 300.
[0054] If the type determination unit 230 determines that the firmware is of the same type, it notifies the agent update unit 240 of the AGT ID 541 and firmware version 543 of the source of the reply.
[0055] The agent update unit 240 controls the updating of similar agents 300. In this embodiment, it determines whether an agent 300 needs to be updated based on the AGT ID 541 and FW version 543 transmitted from the type determination unit 230. Specifically, it determines that an update is necessary if the version 523 of the update information 520 stored in the CNT storage unit 210 is newer.
[0056] The agent update unit 240 sends update information 550 to the agent 300 that it has determined to require an update. The update information 550 sent here is the same as the update information 520 mentioned above, with the AGT ID 551 of the recipient agent 300 added, as shown in Figure 3(e). When it receives an update start request from agent 300, it sends the update file 211 stored in the CNT storage unit 210 to the sending agent 300.
[0057] [agent] As shown in Figure 2(c), the agent 300 comprises an agent (AGT) storage unit 310, an agent (AGT) control unit 320, an agent (AGT) first communication unit 360, and an agent (AGT) second communication unit 370.
[0058] The AGT first communication unit 360 is an interface for communication with the WAN, such as via LTE. However, if the agent 300 is dedicated solely to the agent, the AGT first communication unit 360 does not need to be provided.
[0059] The AGT second communication unit 370 communicates wirelessly with the controller 200 and other agents 300, as well as with slave units 400 connected to itself.
[0060] The AGT control unit 320 controls the operation of the entire agent 300. In this embodiment, it also controls the updating of the firmware. Specifically, when it receives a firmware query 530 from the controller 200, which is an inquiry about the type and version of the currently installed firmware, it creates and sends a firmware response 540. As described above, the firmware response 540 includes the firmware type 542 and version 543 installed on the device.
[0061] Furthermore, after the AGT control unit 320 transmits the FW response 540 and receives update information 550 from the controller 200, it creates an update schedule. Here, it determines the update start timing and sends an update start request to the controller 200.
[0062] In this embodiment, the AGT control unit 320 determines the update schedule depending on whether or not there are slave units 400 connected to its own device. That is, the AGT control unit 320 determines at predetermined time intervals whether or not there are slave units 400 connected to its own device. The timing at which it determines that there are no slave units 400 connected to its own device is determined to be the update start timing, and an update start request is sent to the controller 200. At this time, if the agent 300 already has an update schedule, it changes the existing update schedule to the determined update schedule.
[0063] The presence or absence of a slave device 400 connected to the device is determined, for example, by whether or not there is a change in the amount of received packets and transmitted packets (communication volume) in the CNT second communication unit 270. That is, if at least one of the amounts changes by more than a threshold for each unit of time, it is determined that there is a slave device 400 to connect.
[0064] Upon receiving an update start request, the AGT control unit 320 receives an update file 211 from the controller 200 and uses it to update the firmware. After the update is complete, it sends a completion notification to the controller 200. It also updates the version information of the installed firmware stored in the AGT storage unit 310, which will be described later.
[0065] The AGT memory unit 310 stores information that identifies the type of firmware (FW type) of the device, as well as version information.
[0066] [FW update process] The firmware update process flow of this embodiment will now be explained. Figure 4 shows the firmware update process flow of this embodiment. This process is initiated, for example, when the controller 200 starts up. Here, as an example, agent 300 is used as a representative example. Also, it is assumed here that only the controller 200 is not updated to the latest version of the firmware.
[0067] The controller 200 accesses the external server 800 and obtains update information 520 (step S1101).
[0068] The CNT control unit 220 determines whether an update is necessary (step S1102). Here, it compares version 523 in the update information 520 with version 513 of the FW installed on the device, which is registered in the FW management table 510. If version 523 is newer, it determines that an update is necessary.
[0069] If no update is required, the CNT control unit 220 repeats the acquisition of update information 520 at predetermined time intervals.
[0070] If an update is required, the CNT control unit 220 accesses the external server 800 and obtains the FW update file 211 (step S1103). The obtained update file 211 is stored in the CNT storage unit 210 (step S1104).
[0071] Subsequently, the type determination unit 230 sends a FW query 530 to each agent 300 (step S1105). Here, as described above, the type and version information of the installed FW is inquired about. Note that the FW query 530 is sent to all agents 300 within the network 100.
[0072] When the AGT control unit 320 of each agent 300 receives a FW query 530, it generates and sends back an FW response 540 (step S1106). This includes the type of FW currently installed on the device (FW type 542) and its version 543.
[0073] Upon receiving the FW response 540, the type determination unit 230 determines whether the installed FW is of the same type (step S1107). Here, the FW type 542 of the FW response 540 is compared with the FW type 512 installed on the device to make the determination. The determination result is then registered in the FW management table 510. If it is determined that they are not of the same type (different type), the process proceeds to step S1117, which will be described later.
[0074] Furthermore, the type determination unit 230 may determine that an agent 300 that does not respond within a predetermined period after sending the FW inquiry 530 is of a different type.
[0075] If the agents are identified as being of the same type, the agent update unit 240 determines whether an update is necessary (step S1108). Here, it compares version 543 included in the FW response 540 with version 523 in the update information 520. If version 523 is newer, it determines that an update is necessary. If it determines that an update is not necessary, it proceeds to step S1117, which will be described later.
[0076] If it determines that an update is required, the agent update unit 240 sends update information 550 as an update instruction to the agent 300 that sent the FW response 540 (step S1109).
[0077] Upon receiving update information 550, the agent 300's AGT control unit 320 determines whether or not there is a slave unit 400 connected to its own device (step S1110). In other words, it determines whether or not there is a slave unit 400 communicating wirelessly via agent 300 using the method described above.
[0078] Here, if the AGT control unit 320 determines that a slave device 400 to connect exists, it repeats the process. On the other hand, if it determines that a slave device 400 to connect does not exist, it sends an update start request to the controller 200 (step S1111). In other words, the agent 300 sends an update start request when it becomes clear that there is no slave device 400 to connect to its own device.
[0079] Upon receiving the update start request, the controller 200 has the agent update unit 240 send the update file 211 to the originating agent 300 (step S1112). Then, the agent 300, having received the update file 211, has the AGT control unit 320 perform the update using the update file 211 (step S1113).
[0080] Then, once the AGT control unit 320 has completed the update, it sends a completion notification to the controller 200 (step S1114), restarts (step S1115), and resumes the mesh connection (step S1116).
[0081] Upon receiving a completion notification, the controller 200 checks if it has received completion notifications from all agents 300 identified as being of the same type in step S1107 (step S1117). Here, it sets the completion flag 514 of the agent 300 that sent the completion notification in the FW management table 510. It also updates version 513 to the latest version. The check is then repeated for all agents 300 identified as being of the same type of FW until the completion flag 514 is set.
[0082] Once the updates of all agents 300 with the same type of firmware installed are complete, the CNT control unit 220 updates its own firmware (step S1118). The update uses the update file stored in the CNT storage unit 210. After the update is complete, the update file 211 is deleted (step S1119). Then the controller 200 is restarted (step S1120) and the process ends. At this time, the contents of the firmware management table 510 are also updated. That is, the version 513 of the controller 200 is updated to the latest version, and the completion flag 514 is deleted (cleared).
[0083] [Specific example of update process] Here, a specific example of the update process will be explained with reference to Figure 5. Here, we assume that there are three agents 300 within the network 100. These will be referred to as agents 301, 302, and 303. Agents 301 and 302 are identical agents 300 that require updating, while agent 303 is a different type of agent. The process after the controller 200 obtains the update file 211 from the external server 800 and stores it in the CNT storage unit 210 will be explained.
[0084] First, the controller 200 sends a firewall query 530 to agent 301 (step S1201), and then receives a firewall response 540 in return (step S1202). The controller 200 analyzes the firewall response 540 and registers the firewall type 512 and version 513 in association with agent 301's AGT ID 511 in the firewall management table 510. Here, as described above, agent 301 has the same type of firewall installed, and it is determined that agent 301 requires an update (step S1203).
[0085] Next, the controller 200 sends a FW query 530 to agent 302 (step S1301) and receives a FW response 540 (step S1302). As before, the controller registers the FW type 512 and version 513 in association with agent 302's AGT ID 511 in the FW management table 510. As before, agent 302 has the same type of FW installed and is determined to require an update (step S1303).
[0086] Next, the controller 200 sends a FW query 530 to agent 303 (step S1401) and receives a FW response 540 (step S1402). The controller registers the FW type 512 and version 513 in association with agent 303's AGT ID 511 in the FW management table 510. As described above, it is determined that a different type of FW is installed on agent 303 (step S1403).
[0087] The order in which FW inquiries 530 are sent to each agent 301-303 does not matter.
[0088] The controller 200 sends update information 550 to the same type of agent 300 in accordance with the analysis results of the FW response 540.
[0089] First, update information 550 is sent to agent 301 (step S1204). Agent 301 determines whether or not there is a child device 400 to connect. At the time of receiving update information 550, it is assumed that there is a child device 400 to connect (step S1205). Thereafter, agent 301 repeats the determination of whether or not there is a child device 400 to connect at predetermined time intervals.
[0090] On the other hand, after sending update information 550 to agent 301, controller 200 does not receive a reply requesting the update to start even after a predetermined period of time has elapsed. In this case, update information 550 is sent to agent 302 (step S1304).
[0091] Agent 302 determines whether or not there is a child device 400 to connect to. Here, we assume that there is no child device 400 to connect to Agent 302 (step S1305).
[0092] Agent 302 sends an update start request to the controller 200 (step S1306), and in return receives the update file 211 (step S1307). Then, it performs the update using the received update file 211 (step S1308) and sends a completion notification to the controller 200 (step S1309). After that, it restarts its own device (step S1310). After startup, it establishes a mesh connection (step S1312).
[0093] Meanwhile, the controller 200, having received a completion notification from agent 302, sets (registers) a completion flag 514 in association with agent 302's AGT ID 511 in the FW management table 510 (step S1311). Version 513 is also updated at the same time.
[0094] Subsequently, if agent 301 determines that there are no slave devices 400 to connect to (step S1206), agent 301 sends an update start request to controller 200 (step S1207). Then, agent 301 receives the update file 211 in return (step S1208). Using the received update file 211, agent 301 performs the update (step S1209) and sends a completion notification to controller 200 (step S1210). After that, agent 301 restarts its own device (step S1211), and after startup, establishes a mesh connection (step S1213).
[0095] Upon receiving a completion notification from agent 301, controller 200 sets (registers) a completion flag 514 in association with agent 301's AGT ID 511 in the FW management table 510 (step S1212). Version 513 is also updated.
[0096] Then, once the update is complete for all identical agents 300 within the network 100, the controller 200 updates its own device using the update file 211 (step S1511), and deletes the update file 211 (step S1512). After that, it restarts (step S1513) and terminates the update process. After the restart, the FW management table 510 is also updated.
[0097] As described above, this embodiment has the same configuration as the first embodiment. Therefore, it achieves the same effects as the first embodiment. Specifically, it can reduce the amount of communication with the WAN 801, which has a limit on the amount of communication usage. It can also reduce the interruption of communication between the client device 400 connected to the agent 300. Furthermore, it can reduce the processing load on the controller 200.
[0098] Therefore, in this embodiment as well, in the network 100 consisting of a controller 200 and one or more agents 300, the amount of communication with external parties that have communication restrictions can be reduced, and the FW can be updated efficiently without degrading service.
[0099] <Example 1> In the above embodiment, when the controller 200 receives an update start request from agent 300, it replies with the update file 211 regardless of the status of other agents 300, but this is not limited to that.
[0100] For example, other agents 300 may be configured not to send the update file 211 even if they receive an update start request while a firmware update is in progress. That is, the agent update unit 240 sends the update file 211 to the agent 300 that made the update start request after receiving a completion notification from the agent 300 that sent the update file 211 first, or after detecting that a mesh connection has been established.
[0101] This prevents the two agents 300 from restarting simultaneously. For example, in the network 100 with the configuration shown in Figure 6(a), the controller 200 and agent 303 may be outside the range of wireless communication via the CNT second communication unit 270 and AGT second communication unit 370. In this case, agent 303 is connected via agent 301, for example. In such a network configuration, if agents 301 and 302 restart simultaneously, agent 303 will lose its mesh connection within network 100 during the restart. Therefore, the mesh Wi-Fi range cannot be maintained.
[0102] However, in this modified configuration, agent 302 restarts and resumes mesh connectivity, after which agent 301 performs a firmware update and restarts. Therefore, while agent 301 is restarting, agent 303 can establish a mesh connection with agent 302, as shown in Figure 6(b). This reduces the possibility of agent 303's wireless connection being interrupted and increases the likelihood of maintaining the mesh Wi-Fi range.
[0103] <Modification 2> Furthermore, in each of the above embodiments and modifications, the controller 200 performs the update only after updating all identical agents 300 within the network 100. However, it is not limited to this.
[0104] For example, the controller 200 may monitor the FW management table 510 and perform the update at the same time as the last update of the same type of agent 300. The flow of the update process in this case is shown in Figure 7.
[0105] Here, as in the second embodiment, there are three agents 300, 301, 302, and 303, with 301 and 302 being the same type of agent. The processing flow is basically the same as that described in Figure 5 above, so we will focus on explaining the differences.
[0106] In this modified example, the controller 200 sends an update file to the agent 301 (step S1208), and then updates its own device (step S1511) without waiting for completion notification. It then deletes the update file (step S1512) and restarts (step S1513).
[0107] Agent 301 performs a mesh connection in the same manner as described above after restarting (step S1211) (step S1213). However, at this time, the controller 200 may be configured to perform the mesh connection after a delay corresponding to the time it takes to delete the update file 211. Alternatively, the mesh connection may be attempted at predetermined time intervals.
[0108] When the controller 200 restarts after a firmware update, the mesh Wi-Fi within network 100 becomes unavailable. According to this modified configuration, by performing firmware updates on both the controller 200 and one agent 300 at the same time, the period during which the mesh Wi-Fi is unavailable can be reduced.
[0109] <Variation 3> In each of the above embodiments and modifications, the controller 200 determines whether an update is necessary by querying the agent 300 for the type and version of the firmware (FW) via FW query 530 and analyzing the FW response 540 received in return. However, the determination of whether an update is necessary is not limited to this.
[0110] For example, agent 300 may be configured to only query the type of firewall, and each agent 300 may decide whether or not an update is necessary.
[0111] In other words, in step S1107 of the second embodiment, if it is determined that they are of the same type, the agent update unit 240 of the controller 200 sends update information 550 to the agent 300, regardless of the version.
[0112] The AGT control unit 320 of agent 300 compares version 523 in the update information 550 with the version information of the firmware currently installed on its device to determine whether an update is necessary. If an update is deemed necessary, it sends an update start request to the controller 200. On the other hand, if an update is deemed unnecessary, it does not send an update start request. In this case, it may also send a response indicating that an update is not necessary.
[0113] If, after sending update information 550, the agent update unit 240 of the controller 200 waits for a predetermined period and no update start request is returned, it sends update information to the next agent 300.
[0114] <Modification 4> Furthermore, in each of the above embodiments and modifications, the agent 300 is configured to update if the slave unit 400 is not connected to the agent 300, but this is not limited to this configuration.
[0115] In other words, when agent 300 receives update information 550, it creates an update schedule without determining whether or not there is a connected slave device 400. Then, it sends back an update start request according to the update schedule it created, and performs the update when it receives the update file 211.
[0116] In this case, for example, all identical devices within the network 100, including the controller 200, may perform firmware updates at the same time. This significantly reduces the amount of time the mesh Wi-Fi is unavailable.
[0117] <Modification 5> Furthermore, in the above embodiment, when the controller 200 determines that its own device's firmware needs to be updated, it checks the firmware type and version information of each agent 300 in the network 100 each time. However, it is not limited to this.
[0118] For example, the system may refer to the FW management table 510 created during the previous FW update to make a decision. In this case, the type determination unit 230 does not need to be provided.
[0119] The CNT control unit 220 determines that an update is needed and retrieves the update file 211 from the external server 800. Then, the agent update unit 240 refers to the FW type 512 in the FW management table 510 and identifies agents 300 of the same type. Then, using version 513, it determines whether each agent 300 needs updating and sends the update information 550 (and / or the update file 211) to the agents 300 that need updating in a predetermined order.
[0120] <Variation 6> Furthermore, the CNT storage unit 210 of the controller 200 and the AGT storage unit 310 of the agent 300 may be areas connected via NAS (Network Attached Storage) functionality.
[0121] <Example 7> Furthermore, in each of the above embodiments and modifications, the controller 200 obtains an update file and performs subsequent processing when an update to its own device's firmware is required. However, it is not limited to this. For example, after obtaining update information in step S1101, the controller 200 periodically makes a firmware query in step S1105 to each agent 300. If there is an agent 300 that requires an update, the controller 200 may be configured to obtain an update file from the external server 800 and perform subsequent processing.
[0122] In this case, the controller 200 will retain the update files in the FW management table 510 until all AGTs of the same type as the agent 300 whose FW type 512 requires updating have been updated.
[0123] In this modified example, since each agent 300 does not download large update files from the external server 800, the overall communication volume of the system can be reduced.
[0124] <Differentiation Example 8> Furthermore, each agent 300 may also have the same functions as the controller 200. That is, it sends a firmware query to other agents 300 that communicate wirelessly with its own device to determine whether they are of the same type and whether an update is necessary. If an update is necessary, it sends update information to the other agent 300, and upon receiving an update start request, it sends the update file from that agent 300.
[0125] For example, in the network 100 described above, agent 303 is outside the range of wireless communication with controller 200 via CNT second communication unit 270 and AGT second communication unit 370, as described above. Therefore, in each of the above embodiments and modifications, it is identified as a different type and the firmware is not updated. However, according to this modification, even such an agent 303 can have its firmware updated using the same method as described above, as long as it is of the same type.
[0126] <Modification 9> Furthermore, although the above embodiments and modifications were explained using the case where the software to be updated is firmware as an example, the software to be updated is not limited to this. For example, it may be a certificate inside the router.
[0127] [Hardware configuration] The controller 200 and agent 300 described above may be implemented, for example, by a general-purpose information processing device.
[0128] A general-purpose information processing device, for example as shown in Figure 8, comprises a CPU (Central Processing Unit) 691, a main memory (memory) 692, an auxiliary memory 693, a communication I / F 694, and an expansion I / F 695, all interconnected by an internal bus.
[0129] The CPU 691 implements the above functions, for example, by loading a program stored in the auxiliary storage device 693 into the main memory device 692 and executing it, and also comprehensively controls the controller 200 and agent 300 as a whole. Alternatively, one or more processors, such as an MPU (Micro Processing Unit), may be used instead of the CPU 691.
[0130] Main memory 692 is a type of memory such as RAM (Random Access Memory). Main memory 692 is the work area where the CPU 691 processes programs executed by the controller 200 and agent 300, respectively.
[0131] The auxiliary storage device 693 is, for example, a ROM (Read Only Memory), an HDD (Hard Disk Drive), or an SSD (Solid State Drive). The auxiliary storage device 693 stores various programs executed by the controller 200 and the agent 300, respectively. The auxiliary storage device 693 may also include storage media such as a flexible disk, hard disk, optical disk, CD-ROM, CD-R, magnetic tape, non-volatile memory card, or DVD.
[0132] Furthermore, programs stored in the auxiliary storage device 693 can be provided as program products recorded on a non-transitory computer-readable storage medium. The auxiliary storage device 693 can be used to store various programs recorded on non-transitory computer-readable storage media for medium to long term.
[0133] The communication interface 694 is an interface for inputting and outputting signals and data via wired or wireless means. For example, it can be used to implement the CNT first communication unit 260, the CNT second communication unit 270, the AGT first communication unit 360, and the AGT second communication unit 370.
[0134] The Expansion I / F695 is an interface for connecting display devices, input devices, etc. Display devices include, for example, LCD monitors. Input devices include, for example, devices that accept user input such as keyboards and mice.
[0135] Each of the above functions (each server) of the controller 200 and agent 300 is realized by the CPU 691 loading a program stored in the auxiliary storage device 693 into the main memory device 692 and executing it.
[0136] Furthermore, the CNT memory unit 210 and the AGT memory unit 310 are constructed, for example, in the auxiliary storage device 693.
[0137] The hardware configurations of the controller 200 and agent 300 are not limited to those shown. They may include hardware not shown in the diagram.
[0138] Furthermore, the programs that implement the above-mentioned functions of the controller 200 and agent 300 in this embodiment can be recorded on a computer-readable storage medium. The storage medium can be a non-transient material such as semiconductor memory, hard disk, magnetic recording medium, or optical recording medium. The present invention can also be embodied as a computer program product.
[0139] Furthermore, each function of the controller 200 and agent 300 may be implemented, for example, as a dedicated integrated circuit (IC), application-specific integrated circuit (ASIC), system-on-a-chip (SOC), field-programmable gate array (FPGA), etc.
[0140] In the process flow described above, multiple steps (processes) are listed in order, but the execution order of each step is not restricted by that order. For example, the order of the illustrated steps can be changed to the extent that it does not affect the content, such as by executing each process in parallel.
[0141] Although embodiments and variations of the present invention have been described above, the present invention is not limited to the embodiments described above, and various modifications can be made that will be understood by those skilled in the art. Furthermore, each embodiment and variation can be combined with other embodiments as appropriate. In addition, for example, the network configurations and element configurations shown in each drawing are examples to aid in understanding the present invention, and the present invention is not limited to the configurations shown in these drawings.
[0142] Finally, preferred embodiments of the present invention are summarized. Some or all of the above embodiments may also be described as follows, but are not limited to these. (Note 1) The mesh controller is A memory unit that stores update files, The system includes a control unit that controls the updating of software installed on mesh agents within a mesh network using the aforementioned update file, The control unit, A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the device is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The aforementioned update start request is sent when no terminal device is connected to the agent of the same type. (Note 2) In the mesh controller described in Appendix 1 or 11, The agent update unit, Even if the aforementioned update start request is received, it is desirable not to send the update file to the original agent of the same type if another agent of the same type is currently performing an update. (Note 3) In the mesh controller described in any of the appendices 1, 2, and 11, It is desirable that the control unit perform the update of its own device using the update file after the update of all of the same type of agents in the mesh network has been completed. (Note 4) In the mesh controller described in any of the appendices 1 to 3, 11, and 12, The software that performs the update is preferably firmware. (Note 5) Mesh agents are It is equipped with a control unit that controls software updates for the device, The control unit, Upon receiving update information from a mesh controller within the mesh network, the system determines whether a terminal device is connected, and if there is no connection, it sends an update start request to the mesh controller. The update of the device is performed using the update file sent from the mesh controller in response to the update start request. Once the update is complete, an update completion notification is sent to the mesh controller. (Note 6) In the mesh agent described in Appendix 5 or Appendix 13, It is desirable that the control unit, after sending the update start request, sends the update start request at predetermined time intervals until it receives the update file. (Note 7) A mesh network system comprising a mesh controller and mesh agents, The aforementioned mesh controller is A memory unit that stores update files, The system includes a controller-side control unit that controls the updating of the mesh controller and mesh agent software using the aforementioned update file, The mesh agent includes an agent-side control unit that controls the update of its own device, The controller-side control unit is: A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the mesh controller is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The agent-side control unit, Upon receiving the update information from the mesh controller, the system determines whether a terminal device is connected, and if there is no connection, it sends the update start request to the mesh controller. The update of the device is performed using the update file transmitted from the mesh controller in response to the update start request. Once the update is complete, an update completion notification is sent to the mesh controller. (Note 8) A software update method for updating the software of a mesh controller and a mesh agent in a mesh network system comprising a mesh controller and a mesh agent, The aforementioned mesh controller Determine the type of software to be installed on the mesh agent, Determine whether the mesh agent, which has the same type of software as the device installed, needs to be updated. The update information is sent to the mesh agent that has determined that the update is necessary. When the mesh agent receives the update information, it determines whether a terminal device is connected, and if there is no connection, it sends an update start request to the mesh controller. When the mesh controller receives the update start request, it sends the software update file stored in its device to the source mesh agent. The mesh agent performs the update using the update file received from the mesh controller, and when the update is completed, it sends an update completion notification to the mesh controller. (Note 9) The computer built into the mesh controller, A type determination means for determining the type of software installed on mesh agents within a mesh network, A program to function as an agent update means, which determines whether an agent of the same type, which is a mesh agent on which the same type of software as the mesh controller is installed, needs to update the software, sends update information to the agent of the same type that is determined to need updating, and after sending the update information, if no terminal device is connected to the agent of the same type and an update start request is returned from the agent of the same type, sends the update file stored in the device to the agent of the same type that sent the request. (Note 10) The computer built into the mesh agent, A program that functions as a control means to receive update information from a mesh controller in a mesh network, determine whether a terminal device is connected or not, send an update start request to the mesh controller if there is no connection, update the software installed on the mesh agent using the update file sent from the mesh controller in response to the update start request, and send an update completion notification to the mesh controller when the update is completed. (Note 11) The mesh controller is A memory unit that stores update files, The system includes a control unit that controls the updating of software installed on mesh agents within a mesh network using the aforementioned update file, The control unit, A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the device is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the aforementioned update information has been sent, the update file is sent to the same type of agent that sent the request. (Note 12) In the mesh controller described in Appendix 11, The agent update unit, after receiving the update request from a plurality of identical agents, sends the update file to the identical agent that sent the update request, and also performs the update on its own device, is a mesh controller. (Note 13) Mesh agents are It is equipped with a control unit that controls software updates for the device, The control unit, When update information is received from a mesh controller in the mesh network, an update start request is sent to that mesh controller. The update of the device is performed using the update file sent from the mesh controller in response to the update start request. Once the update is complete, an update completion notification is sent to the mesh controller. Furthermore, the forms described in appendices 7, 8, and 10 can be expanded into the forms described in appendices 2-4, similar to appendice 1. The forms described in appendices 7, 8, and 11 can be expanded into the form described in appendice 6, similar to appendice 5.
[0143] Furthermore, the disclosures in the above-mentioned patent documents, etc., are incorporated into this book by reference. Within the framework of the full disclosure of the present invention (including the claims), further modifications and adjustments of embodiments and variations are possible based on the basic technical concept. Also, within the framework of the disclosure of the present invention, various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment or variation, each element of each drawing, etc.) are possible. In other words, the present invention naturally includes the full disclosure, including the claims, and various modifications and alterations that a person skilled in the art could make in accordance with the technical concept. In particular, with respect to the numerical ranges described in this book, any numerical value or sub-range included within that range should be interpreted as being specifically described, even if not otherwise stated. [Explanation of Symbols]
[0144] 100: Network, 100a: Network, 200: Controller, 200a: Controller, 210: CNT memory unit, 211: Update file, 220: CNT control unit, 230: Type discrimination unit, 240: Agent update unit, 260: CNT first communication unit, 270: CNT second communication unit, 300: Agent, 300a: Agent, 301: Agent, 302: Agent, 303: Agent, 310: AGT Memory Unit, 320: AGT Control Unit, 360: AGT First Communication Unit, 370: AGT Second Communication Unit, 400: Handset, 510: FW management table, 511: ID, 512: FW type, 513: Version, 514: Completion flag, 520: Update information, 522: FW type, 523: Version, 530: FW query, 531: AGT ID, 532: Query content, 540: FW response, 541: AGT ID, 542: FW type, 543: Version, 550: Update information, 551: AGT ID, 691: CPU, 692: Main memory, 693: Secondary memory, 694: Communication I / F, 695: Expansion I / F 800: External Server, 801: WAN
Claims
1. A memory unit that stores update files, The system includes a control unit that controls the updating of software installed on mesh agents within a mesh network using the aforementioned update file, The control unit, A type determination unit for determining the type of software installed on the mesh agent, The device comprises an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the device itself is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The aforementioned update start request is sent to the mesh controller when no terminal device is connected to the agent of the same type.
2. A mesh controller according to claim 1, The agent update unit, A mesh controller that, upon receiving the update start request, does not send the update file to the original agent of the same type if another agent of the same type is currently performing an update.
3. A mesh controller according to claim 1, The control unit is a mesh controller that performs the update on its own device using the update file after the update of all of the same type of agents in the mesh network has been completed.
4. A mesh controller according to claim 1, The software that performs the aforementioned update is the firmware of the mesh controller.
5. It is equipped with a control unit that controls software updates for the device, The control unit, Upon receiving update information from a mesh controller within the mesh network, the system determines whether a terminal device is connected, and if there is no connection, it sends an update start request to the mesh controller. The update of the device is performed using the update file sent from the mesh controller in response to the update start request. A mesh agent sends an update completion notification to the mesh controller once the update is complete.
6. A mesh agent according to claim 5, The control unit transmits the update start request to the mesh controller at predetermined time intervals from the time it transmits the update start request until it receives the update file.
7. A mesh network system comprising a mesh controller and mesh agents, The aforementioned mesh controller is A memory unit that stores update files, The system includes a controller-side control unit that controls the updating of the mesh controller and mesh agent software using the aforementioned update file, The mesh agent includes an agent-side control unit that controls the update of its own device, The controller-side control unit is: A type determination unit for determining the type of software installed on the mesh agent, The system includes an agent update unit that controls the updates of the same type of agent, which is a mesh agent on which the same type of software as the mesh controller is installed, The agent update unit, Determine whether the aforementioned similar agent needs to be updated, The update information is sent to the aforementioned agent of the same type that has been determined to require the update. If an update start request is returned from the same type of agent after the transmission of the update information, the update file is sent to the same type of agent that sent the return. The agent-side control unit, Upon receiving the update information from the mesh controller, the system determines whether a terminal device is connected, and if there is no connection, it sends the update start request to the mesh controller. The update of the device is performed using the update file transmitted from the mesh controller in response to the update start request. A mesh network system that, upon completion of the update, sends an update completion notification to the mesh controller.
8. A software update method for updating the software of a mesh controller and a mesh agent in a mesh network system comprising a mesh controller and a mesh agent, The aforementioned mesh controller Determine the type of software to be installed on the mesh agent, Determine whether the mesh agent, which has the same type of software as the device installed, needs to be updated. The update information is sent to the mesh agent that has determined that the update is necessary. When the mesh agent receives the update information, it determines whether a terminal device is connected, and if there is no connection, it sends an update start request to the mesh controller. When the mesh controller receives the update start request, it sends the software update file stored in its device to the source mesh agent. A software update method comprising: the mesh agent performing the update using the update file received from the mesh controller; and, upon completion of the update, sending an update completion notification to the mesh controller.
9. The computer built into the mesh controller, A type determination means for determining the type of software installed on mesh agents within a mesh network, A program to function as an agent update means, which determines whether an agent of the same type, which is a mesh agent on which the same type of software as the mesh controller is installed, needs to update the software, sends update information to the agent of the same type that is determined to need updating, and after sending the update information, when an update start request is sent from the agent of the same type if no terminal device is connected to the agent, sends the update file stored in the device to the agent of the same type that sent the request.
10. The computer built into the mesh agent, A program that functions as a control means to receive update information from a mesh controller in a mesh network, determine whether a terminal device is connected or not, send an update start request to the mesh controller if there is no connection, update the software installed on the mesh agent using the update file sent from the mesh controller in response to the update start request, and send an update completion notification to the mesh controller when the update is completed.