Communication device, communication system, and communication method

The communication device's update determination unit addresses high processing demands by determining necessary updates based on device-specific criteria, reducing management device load and enabling flexible updates, thus optimizing remote update processes.

WO2026105363A1PCT designated stage Publication Date: 2026-05-21HITACHI IND EQUIP SYST CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
HITACHI IND EQUIP SYST CO LTD
Filing Date
2025-04-08
Publication Date
2026-05-21

AI Technical Summary

Technical Problem

Existing systems require high processing capacity from management devices to determine program updates for communication devices, leading to increased costs and inefficiencies, and lack flexibility in update management based on device status and settings.

Method used

A communication device with an update determination unit that acquires and interprets update information from a management device, determining necessary updates based on device ID, program requirements, version, update type, and optional conditions, allowing for flexible updates such as upgrades, downgrades, or new installations based on device settings and operational information.

Benefits of technology

Reduces processing load on management devices, lowers costs, and enables flexible program updates tailored to specific device needs, ensuring efficient and purpose-driven remote updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025014086_21052026_PF_FP_ABST
    Figure JP2025014086_21052026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention reduces the processing load of a management device, and flexibly implements program updates for a communication device. A communication device according to the present invention is connected to a management device for distributing programs, and comprises a program update unit constituted by an update determination information acquisition unit, an update necessity determination unit, and a program application unit. The update determination information acquisition unit acquires, from the management device, update determination information for a program. The update necessity determination unit determines whether a program update is necessary for the device itself on the basis of a target device ID, a determination program necessity requirement, a target program, a post-update version, and an update form written in the update determination information, and, when an update is necessary, acquires a program from a program acquisition source written in the update determination information. The program application unit applies the acquired program to the device itself and notifies the management device about the version information of the updated program.
Need to check novelty before this filing date? Find Prior Art

Description

Communication device, communication system, and communication method

[0001] The present invention relates to a communication device, a communication system, and a communication method.

[0002] In recent years, a system has been constructed for remotely monitoring communication devices by collecting data related to communication devices installed in factories and the like via wireless communication and aggregating it in a management device at a remote location. On the other hand, for the maintenance of the system, there are cases where program updates of the communication devices are required.

[0003] Since it takes time and labor to dispatch an administrator to the site for the update work, there is an OTA (Over The Air) technology that realizes these remotely via wireless communication. In the OTA technology, remote update is realized by delivering an update program from the management device to the communication device via wireless communication.

[0004] The communication device periodically inquiries the management device about whether an update is required. The management device determines whether the communication device needs an update, and if an update is necessary, it returns a program to execute the update process.

[0005] However, in the case of a configuration where the management device determines whether each communication device needs an update, a high processing capacity is required for the management device. If the processing capacity of the management device is low and it cannot respond to inquiries from all communication devices, remote update cannot be performed correctly. As the number of communication devices managed by the management device increases, a higher processing capacity is required, resulting in an increase in the cost of the management device.

[0006] Therefore, there is a technology (Patent Document 1) in which the determination process of whether an update is required is performed not by the management device but by the communication device. In this prior art, the communication device acquires the firmware version information from the management device, compares it with the firmware version information already installed, and self-determines that an update is necessary if it is newer.

[0007] Remote updates are achieved by obtaining firmware from the management device and applying it to the device itself. By entrusting the process of determining whether an update is necessary to the communication device, the management device only needs to transfer version information and firmware, thus reducing its processing load. In other words, it becomes possible to reduce the cost of the management device.

[0008] Japanese Patent Publication No. 2008-225965

[0009] Patent Document 1 describes a method where, if the firmware version information obtained from the management device is up-to-date, the communication device determines that an update is necessary. However, in practical operation, there are cases where a downgrade is desired, such as when a defect is found in the latest firmware.

[0010] Furthermore, there are cases where the program should be distributed only to communication devices that already have the target program installed, and conversely, cases where the program should be distributed to communication devices that do not have the program installed. Patent Document 1 assumes that upgrades are the general principle and does not support allowing or prohibiting updates depending on the status of the communication device by using a combination of upgrades, downgrades, and new installations.

[0011] Furthermore, there are cases where it is preferable to control program updates based not only on version information, but also on the settings and operating information of the communication device.

[0012] For example, when distributing a program to correct a malfunction in the wireless LAN interface of a communication device, it is conceivable that the update would only be performed on communication devices that have enabled the use of wireless LAN. In this way, it is desirable to have a control mechanism that allows or prohibits updates based on the settings of the communication device and dynamically changing operational information.

[0013] The present invention has been made in view of the above problems, and enables the specification of update types such as upgrade, downgrade, and new installation in the process of determining whether or not a program update is necessary in a communication device, and enables the definition of update conditions based on setting values ​​and operating information.

[0014] This reduces the processing load on the management device and allows for flexible program updates of the communication device.

[0015] The above problem is solved by a communication device connected to a management device that distributes programs, comprising a program update unit consisting of an update determination information acquisition unit, an update necessity determination unit, and a program application unit, wherein the update determination information acquisition unit acquires program update determination information from the management device, the update necessity determination unit determines whether the device needs a program update based on the target device ID, determination program requirements, target program, updated version, and update type described in the update determination information, and if an update is necessary, it acquires the program from the program acquisition source described in the update determination information, the program application unit applies the acquired program to the device, and the communication device notifies the management device of the updated program version information.

[0016] According to the present invention, flexible program update control according to the purpose and application becomes possible when remotely updating communication devices.

[0017] This is an example of a block diagram illustrating the configuration of a communication system and the hardware configuration of the communication device and management device in an embodiment of the present invention. This is a diagram showing an example of a version control table for the communication device in an embodiment of the present invention. This is a diagram showing an example of a communication device management table for the management device in an embodiment of the present invention. This is a diagram showing an example of an update determination information file for the management device in an embodiment of the present invention. This is an example of a flowchart showing the processing of the program update unit in an embodiment of the present invention. This is an example of a flowchart showing the processing of the management device control unit in an embodiment of the present invention. This is an example of a flowchart showing the processing of the update necessity determination process in Embodiment 1 of the present invention. This is an example of a screen for setting the update determination information file for the management device in an embodiment of the present invention. This is an example of a screen for outputting the communication device management table for the management device in an embodiment of the present invention. This is an example of a flowchart showing the processing of the update necessity determination process in Embodiment 2 of the present invention. This is an example of a flowchart showing the processing of the update necessity determination process in Embodiment 3 of the present invention.

[0018] First, let's explain the principle (overview) of the invention. The management device manages the update determination information file provided to the communication device and the program for the communication device. The update determination information file is a file that causes the communication device to determine whether or not it needs to be updated, and it is registered by the system administrator.

[0019] The communication device includes a program update unit that determines whether an update process is necessary, and the program consists of an update determination information acquisition unit, an update necessity determination unit, and a program application unit. The update determination information acquisition unit periodically acquires the update determination information file from the management device.

[0020] The update necessity determination unit then refers to the file and determines whether the device's program needs to be updated. The update determination information file contains at least the following information: (1) target device ID, (2) update determination program requirements, (3) program to be updated, (4) updated version, (5) update type, and (6) program acquisition source. Optionally, (7) update conditions can also be included.

[0021] (1) The target device ID is the identifier of the communication device to be updated. The communication device uses this field to determine whether it is the device to be updated.

[0022] (2) The update determination program requirement is the version information of the update determination program that can determine whether an update is necessary. The communication device determines whether its own update determination program meets this requirement.

[0023] (3) The program to be updated is the identifier of the program to be updated, and (4) the updated version is the version information of the program after the update. The communication device checks whether the program is already installed and, if so, checks the current version information.

[0024] (5) The update type is the type of update permitted to the communication device. For example, specify "upgrade" to allow only upgrades of installed programs, "downgrade" to allow only downgrades, "new" to allow both upgrades and new installations of uninstalled programs, and "any" to allow updates unconditionally, including downgrades.

[0025] By specifying this update type, update control tailored to the application can be achieved. For example, if the program to be updated is Program A, the updated version is 3.0, and the update type is upgrade, then updates can be permitted only to communication devices that have Program A installed and whose current version is less than 3.0.

[0026] If the update type is set to "any," updates, including downgrades and new installations, can be performed on communication devices that do not have Program A installed, or that have a version of Program A other than 3.0 installed. By allowing users to specify the update type, flexible remote updates tailored to specific purposes and uses can be achieved.

[0027] (6) The program source is the source information for the program to be updated. When the communication device satisfies conditions (1) to (5) and determines that an update is necessary, it retrieves the program from the program source and applies the program to its own device using the program application unit. This process realizes the update.

[0028] (7) The update conditions specify update conditions based on the settings and operating information of the communication device, and the update will only be performed if these conditions are met. These are additional conditions that must be met in addition to (1) to (5), and if such update conditions are defined, the communication device will only be determined to require an update if (1) to (5) and (7) are met.

[0029] For example, if (7) the update condition is defined as wlanEnable = True (wireless LAN setting is enabled), then in the example above, the update will only be performed on communication devices that have program A installed, whose current version is less than 3.0, and which have enabled the use of wireless LAN.

[0030] As in the example above, this approach is suitable for situations where a program to correct a malfunction in the wireless LAN interface is applied only to communication devices that have enabled the use of wireless LAN. Alternatively, it is possible to define `cpuUsage ≥ 0.90` (CPU usage of 90% or more) and apply a program to correct the malfunction only to communication devices where an increase in CPU usage is suspected due to some abnormality.

[0031] In this way, update conditions based on the settings and operational information of the communication device can also be defined, enabling not only static updates based on version information but also dynamic updates that depend on the situation.

[0032] Furthermore, the aforementioned settings can be applied not only to enabling / disabling various interfaces of the communication device, but also to application settings such as data acquisition cycles, packet forwarding settings such as IP addresses, firewall settings, routing tables, and APN (Access Point Name) settings.

[0033] In addition to the CPU usage mentioned above, operational information also includes memory usage, received signal strength in wireless communication, amount of data transmitted and received, number of successful / failed communications, elapsed time since startup, internal temperature, power supply voltage, and device location information. This information indicates the operating status and communication status of the communication device, and is not limited to specific content.

[0034] In this way, by providing the communication device with an update determination information file consisting of information (1) to (7), and having the communication device determine whether an update is necessary, it is possible to reduce the processing load on the management device compared to when the management device performs the update determination. Consequently, the cost of the management device can be reduced.

[0035] In addition, by appropriately setting the update format and update conditions in the update judgment information file, flexible updates can be achieved as needed.

[0036] The following examples will be described with reference to the drawings. It should be noted that the examples described below are not intended to limit the invention as defined in the claims, and not all of the elements and combinations thereof described in the examples are necessarily essential to the solution of the invention.

[0037] In the following explanation, information may be described using the representation of an AAA table, but the information can be represented in any data structure. To indicate that the information is independent of the data structure, an AAA table may sometimes be referred to as AAA information.

[0038] Figure 1 is an example of a block diagram illustrating the configuration of a communication system and the hardware configuration of the communication device and management device in an embodiment of the present invention. The configuration of the communication system and the hardware configuration of the communication device and management device in the embodiment will be explained.

[0039] The communication system shown in Figure 1 consists of one or more communication devices 101 (101-a to 101-c) to be managed and a management device 102. In the following description, if the communication devices 101-a to 101-c are not individually specified, the part after the hyphen will be omitted and the reference numeral 101 will be used.

[0040] The communication device 101 and the management device 102 are connected by either wired communication, wireless communication, or both. The communication device 101 transmits its operational information to the management device 102. The management device 102 then records and manages the information collected from the communication device 101, thereby providing a remote monitoring service.

[0041] Furthermore, the communication device 101 periodically retrieves an update determination information file registered in the management device 102 in order to determine whether or not the program it uses needs to be updated. If an update is necessary, the communication device 101 retrieves the communication device program 140 registered in the management device 102 and applies it to its own device. This enables the updating of the program running on the communication device 101.

[0042] In addition to being installed at the same location as the communication device 101, the management device 102 may also be configured to be installed at a separate location such as on the cloud. Also, although FIG. 1 illustrates a configuration in which a plurality of communication devices 101 are connected to one management device 102, a configuration in which one communication device 101 is connected to one management device 102 may also be acceptable.

[0043] The communication device 101 is a device that operates at a site such as a factory, and collects data obtained from the site such as temperature data and the operation information of the communication device 101, and stores it in the storage device 115 as operation information 123.

[0044] The communication processing unit 117 stores the operation information 123 in a packet and transmits it to the management device 102. The communication device 101 has various configurations according to the data to be acquired and its role. For example, when monitoring the on-site temperature, a temperature sensor or the like may be provided.

[0045] In FIG. 1, the communication device 101 is composed of a communication I / F (Interface) 111, a CPU (Central Processing Unit) 112, an input unit 113, an output unit 114, and a storage device 115.

[0046] When the communication I / F 111 performs packet transmission and reception with the management device 102 via, for example, wireless communication, it includes a transmission unit that mutually converts a digital signal and a wireless signal and converts the generated digital data into a wireless signal for transmission, and a reception unit that extracts digital data from the received wireless signal.

[0047] These communication means include LTE (Long Term Evolution) (registered trademark), Ethernet (registered trademark), WiFi, optical fiber lines, etc. Also, a plurality of communication I / Fs 111 may be installed according to the application. For example, a configuration having a plurality of communication I / Fs 111 may be acceptable in case of communication interruption.

[0048] The CPU 112 executes various software modules stored in the storage device 115, thereby realizing various functions of the communication device 101.

[0049] The input unit 113 consists of, for example, a keyboard, mouse, or touch panel, and is used by the administrator to input data and set parameters. The output unit 114 consists of a liquid crystal display monitor, and outputs setting screens and the results of various processes.

[0050] When receiving input information from an external device or providing output information to an external device via the communication interface 111, such as when remotely logging into the communication device 101 from another external device, the installation of the input unit 113 and output unit 114 is not mandatory.

[0051] The storage device 115 includes a storage device composed of a read-only semiconductor memory and a storage device composed of a rewritable semiconductor memory element, and stores software modules that realize various processes and acquired data.

[0052] The communication device control unit 116 manages various settings such as the method and cycle for acquiring the data to be collected, and the acquisition process is executed by the CPU 112 connected via the internal bus.

[0053] For example, the communication device control unit 116 manages the method for acquiring on-site data and operational information to be transmitted to the management device 102, as well as the transmission schedule for such information.

[0054] Figure 1 illustrates a single communication device control unit 116, but multiple units may be installed. In particular, when the communication device 101 provides a wide range of functions, it is common to install multiple communication device control units 116 to realize each individual function.

[0055] The communication processing unit 117 is responsible for implementing the transmission and reception processes in communication. It performs packet analysis processing, including packet assembly when transmitting and determining whether a packet is addressed to the local device when receiving.

[0056] The version control table 118 is a table that records and manages a list of programs installed on the device and their version information.

[0057] The program update unit 119 is a program that performs program update processing for the device itself. This program includes an update determination information acquisition unit 120, an update necessity determination unit 121, and a program application unit 122.

[0058] The update determination information acquisition unit 120 periodically performs the process of acquiring the update determination information file 139 registered in the management device 102. It instructs the communication processing unit 117 to send a packet requesting the update determination information file 139 to the management device 102, and acquires the update determination information file 139 returned from the management device 102 via the communication processing unit 117.

[0059] The update necessity determination unit 121 refers to the update determination information file 139 and determines whether the device's program needs to be updated. If it determines that an update is necessary, it obtains the communication device program 140 specified in the update determination information file 139 from the management device 102.

[0060] The communication processing unit 117 is instructed to send a packet requesting the communication device program 140 to the management device 102, and the communication device program 140 returned from the management device 102 is obtained via the communication processing unit 117. If it is determined that no update is necessary, no processing is performed, and the system waits for a certain period of time to elapse until the update determination information acquisition unit 120 obtains the update determination information file 139 again.

[0061] The program application unit 122 executes a process to apply the communication device program 140 acquired from the management device 102 to its own device. Based on the program acquired through this process, the communication device control unit 116 and the program update unit 119 are updated, and settings such as communication and program startup / shutdown are set in the setting information 124.

[0062] Once the program update is complete, the latest version information is recorded in the version control table 118, and the updated version information is notified to the management device 102.

[0063] The communication processing unit 117 is instructed to send a packet containing the version information to the management device 102. This allows the management device 102 to record and manage the version information of the programs installed on each communication device 101, as well as to confirm that the update was performed correctly.

[0064] The communication device 101 may be a standalone device or an embedded device. Furthermore, as mentioned above, the configuration of the communication device 101 varies depending on the type of field data to be acquired, and may include, for example, a camera module, a temperature sensor, or an acceleration sensor.

[0065] Next, the hardware configuration of the management device 102 will be described. The management device 102 records and manages field data and operational information collected from the communication device 101, and also returns the update judgment information file 139 and the communication device program 140 in response to acquisition requests from the communication device 101. The management device 102 is a device that has a communication function with the communication device 101.

[0066] The management device 102 includes a communication interface 131, a CPU 132, an input unit 133, an output unit 134, a storage device 135, and a management device communication processing unit 137. These components are the same as those of the communication device 101 described above. Similar to the communication device 101 described above, the input unit 133 and the output unit 134 are not required when receiving input information from external devices or providing output information to external devices via the communication interface 131.

[0067] The control unit 136 is a program that provides services to the user by utilizing data and operational information collected from the communication device 101. For example, if the control unit 136 is a program that provides the average value per unit time of on-site data such as temperature received from the communication device 101, it performs data analysis processing such as calculating the average value from the collected data values.

[0068] Similar to the communication device 101, it may also be configured to include multiple management device control units 136.

[0069] The communication device management table 138 is a table that records and manages a list of programs and version information installed on the communication device 101.

[0070] The update determination information file 139 is a file used to cause the communication device 101 to determine whether or not a program update is necessary, and is registered by the system administrator.

[0071] The communication device program 140 is a program file distributed for updating the program of the communication device 101.

[0072] Figure 1 illustrates a configuration in which a single management device 102 performs both service provision utilizing collected data and remote updates to the communication device 101. However, it is also possible to divide the system into two management devices 102: one that provides only the former service and another that handles only the latter remote updates. Therefore, it is not necessary to include all of the configurations shown in Figure 1 in a single management device 102.

[0073] Figure 2 shows an example of a version control table for a communication device in an embodiment of the present invention. The version control table 118 managed by the communication device 101 will now be described. The version control table 118 records and manages a list of programs installed on the communication device 101 and the version information of each program. Figure 2 shows a diagram of the configuration of this table.

[0074] Program 201 indicates the identifier of a program installed on the communication device 101. In Figure 2, the program name is used as an example identifier, but this identifier can be in any format, such as a serial number pre-assigned to the program.

[0075] Version 202 is the current version information of program 201 installed on the communication device 101. In the example in Figure 2, for example, the update determination program constituting the program update unit 119 indicates that version 1.1 is installed, and program A indicates that version 2.3 is installed.

[0076] In Figure 2, the major and minor versions are listed together as version information, but you can list only one or both, or list them together in separate table columns. Any format is acceptable as long as the program version information can be identified.

[0077] Figure 3 shows an example of a communication device management table for a management device in an embodiment of the present invention. The communication device management table 138 records and manages a list of programs installed on the communication device 101 managed by the management device 102, and the version information of each program.

[0078] Device ID 301 indicates the identifier of the communication device 101. In Figure 3, the identifier of the communication device 101 is shown using the reference numerals in Figure 1 as an example, but this identifier may be in any format, such as the serial number of the communication device 101 or the IP address assigned to the communication I / F 111.

[0079] Program 302, version 303 is the same as the version management table 118 in Figure 2, which is managed by the communication device 101. For example, row 101-a in Figure 3 indicates that the update determination program version 1.1, program A version 2.3, program B version 5.0, and program C version 2.0 are installed in the communication device 101-a in Figure 1.

[0080] Figure 3 shows an example where program B is not installed only on communication device 101-b. Thus, it is not necessarily required that the same program be installed on all communication devices 101; it may be different for each communication device 101.

[0081] When the management device 102 receives version information for various programs from the communication device 101, it updates the communication device management table 138. This allows the system administrator to refer to the table on the management device 102 and understand the program installation status of the communication device 101, which is installed in a remote location. However, the management device 102 does not necessarily need to have the communication device management table 138.

[0082] Figure 4 shows an example of an update determination information file for a management device in an embodiment of the present invention. The update determination information file 139 managed by the management device 102 will now be described. The update determination information file 139 is a file that causes the communication device 101 to determine whether or not the device's program needs to be updated.

[0083] The target device ID 401 indicates the identifier of the communication device 101 to be updated. The format is the same as that of device ID 301 in Figure 3. However, the update determination information file 139 also allows the specification of devices using wildcards, and the asterisk (*) in Figure 4 indicates that all communication devices 101 are to be updated.

[0084] In Figure 4, rows where the target device ID is 101-a indicate update determination information that should be determined only by communication device 101-a, while rows marked with * indicate update determination information that should be determined by all devices from communication devices 101-a to 101-c.

[0085] The update determination program requirement 402 is the version information that the update determination program must satisfy. If the update determination program of the communication device 101 is at or above the version specified in the update determination program requirement 402, it is possible to perform the update determination information described in that line.

[0086] If the version is less than the version specified in update determination program requirement 402, the update determination is skipped without determining the update determination information for that line. In the example in Figure 3, since the update determination program installed on communication device 101-a is version 1.1, when communication device 101-a obtains the update determination information file in Figure 4, it performs program update determination processing for the line where the target device ID 401 is 101-a and for the line marked with * where update determination program requirement 402 specifies 1.1 or less.

[0087] The update determination information file 139 is not limited to the configuration shown in Figure 4, and its configuration may be changed during the operation of the system.

[0088] For example, in Example 2, described later, we will illustrate a configuration in which an update condition 901 is added to the update determination information file 139 in Figure 4. However, if such a configuration change is made, older update determination programs may not be able to correctly perform the determination process for the newly added column.

[0089] Therefore, by adding a column for update judgment program requirements 402, it becomes possible to limit the rows that the older update judgment program should judge in the update judgment information file 139. For update judgment information that uses the newly added column, it is also possible to have the newer version of the update judgment program perform the judgment only.

[0090] During the system's operation, it is possible to change the configuration of the update determination information file 139 in Figure 4 after the communication device has started operation. The program to be updated 403 is an identifier for the program to be updated. Similar to program 201 in Figure 2, any identifier is acceptable as long as it can identify the type of program.

[0091] The updated version 404 is the new version information for the updated program 403. Similar to version 202 in Figure 2, any format is acceptable as long as the version information is identifiable.

[0092] The update type 405 is an identifier for the update type permitted to the communication device 101. As mentioned above, it is possible to set identifiers such as "upgrade" which only allows upgrades of installed programs, "downgrade" which only allows downgrades of installed programs, "new" which allows the addition of new, uninstalled programs in addition to upgrades, and "any" which unconditionally allows updates, including downgrades.

[0093] In addition, you may add other custom update methods, such as an add that prohibits upgrading or downgrading installed programs and only allows the addition of new, uninstalled programs.

[0094] For example, in Figure 4, the row where the target device ID 401 is 101-a indicates that the update will be permitted for communication device 101-a if the update determination program is version 1.1 or higher, program A is installed, and the version of program A is less than 3.0.

[0095] In contrast, in the example shown in Figure 3, the communication device 101-a has program A version 2.3 installed, so it meets the conditions and determines that a program update for its own device is necessary.

[0096] Furthermore, the row in the third row of Figure 4 where the target device ID 401 is marked with an asterisk (*) indicates that the update will be permitted for all communication devices 101 if the update determination program is version 1.1 or higher, and program C is not installed, or if the version of program C is not 1.0.

[0097] In contrast, in the example shown in Figure 3, communication devices 101-a and 101-b have program C version 2.0 installed, so they meet the conditions and it is determined that a program update (downgrade) of their own devices is necessary.

[0098] The communication device 101-c has already installed program C version 1.0, so it determines that a program update for its own device is unnecessary. In this way, by writing the update determination information file 139 as needed, it becomes possible to flexibly perform updates based on various update types.

[0099] The program acquisition destination 406 indicates the acquisition destination from which the communication device 101 acquires the program when it determines that a program update is necessary for its own device. In the example in Figure 4, it is described in URL (Uniform Resource Locator) format, but it may also store the absolute or relative path of the directory where the communication device program 140 is stored on the management device 102. The description format does not matter as long as the program acquisition destination (download destination) can be identified.

[0100] In Figure 4, for illustrative purposes, the update judgment information file 139 is described in a table format, but it can also be in formats such as CSV (Comma Separated Values) or JSON (JavaScript Object Notation).

[0101] Figure 5 is an example flowchart showing the processing of the program update unit in an embodiment of the present invention. The update determination information acquisition unit 120 of the program update unit 119 requests the management device control unit 136 to send an update determination information file via the management device communication processing unit 137 of the management device 102, and receives it (S100).

[0102] The update necessity determination unit 121 performs an update necessity determination process using the received update information determination file (S101). It determines whether an update is necessary (S102), and if an update is not necessary, it waits for a predetermined time to elapse and returns to step S100.

[0103] If an update is necessary, the update necessity determination unit 121 requests the management device to update the program (S103).

[0104] When the update necessity determination unit 121 receives the requested update program from the management device (S104), it passes the update program to the program application unit 122 and applies it to the communication device (S105). After the update is complete, it updates the version control table 118 (S106) and sends an update completion notification to the management device 102 (S107).

[0105] When the management device control unit 136 of the management device 102 receives a notification that the update is complete, it updates the communication device management table 138 and stores the applied program and the program version.

[0106] After sending the update completion notification, it is determined whether a predetermined time has elapsed (S108), and if so, the process returns to step S100.

[0107] Figure 6 is an example flowchart showing the processing of the control unit of the management device in an embodiment of the present invention. When the management device 102 receives a request to update the update determination file from the input unit 133 (S200), it accepts the registration of the update determination information file 139 (S201) and updates the received update determination information file (S202).

[0108] If it is not a request to update the update judgment file, determine whether or not a notification of update completion has been received from the communication device 101 (S203).

[0109] If an update completion notification is received, the communication device identifier, the updated program, and the version information of the updated program are received (S204), and the version information in the communication device management table 138 is updated (S205).

[0110] Figure 7 is an example flowchart showing the process of determining whether an update is necessary in Embodiment 1 of the present invention. The update necessity determination process performed by the update necessity determination unit 121 of the communication device 101 will be described below.

[0111] This corresponds to the process executed in step S101 of Figure 5. This process involves the communication device 101 referring to the update determination information file 139 obtained from the management device 102 in step S100 and determining whether or not the program of its own device needs to be updated.

[0112] The update necessity determination unit 121 of the communication device 101 refers to the update determination information file 139 and determines whether the value of the target device ID 401 in the referenced line matches that of the device itself (S601).

[0113] For example, when the communication device 101-a performs the update necessity determination process shown in Figure 7, it determines that there is a match if the value of the target device ID 401 in the line of the update content in the update determination information file 139 is 101-a or * which indicates all devices.

[0114] The flowchart in Figure 7 shows an example where the update determination process starts by referencing the first line of the update determination information file 139. In the figure, the program is denoted as PRG and the version as VR.

[0115] If the value of target device ID 401 matches that of the current device (YES), proceed to step S602; otherwise, proceed to step S614.

[0116] The update necessity determination unit 121 refers to the update determination program requirements 402 in the update determination information file 139 and determines whether the said requirements (version) are less than or equal to the version of the update determination program of the device (S602).

[0117] If the version specified in the requirements is less than or equal to the version of the device's update determination program (YES), the requirements are met and the process proceeds to step S603. If the version specified in the requirements is greater than the version specified (NO), the requirements are not met and the process proceeds to step S614.

[0118] The update necessity determination unit 121 refers to the update type 405 of the update determination information file 139 and determines whether the type is upgrade (S603). If it is upgrade (YES), the process proceeds to step S604; if it is not upgrade (NO), the process proceeds to step S605.

[0119] The update necessity determination unit 121 refers to the update target program 403 and the updated version 404 in the update determination information file 139 and determines whether the target program is already installed on the device and whether the updated version 404 is greater than the currently installed version (S604).

[0120] Since the update type is upgrade, only upgrades of already installed programs are permitted. The update necessity determination unit 121 refers to the version management table 118 to determine whether the program to be updated 403 is already installed and compares it with the version value listed in the updated version 404.

[0121] If the target program is already installed on the device and the updated version 404 is greater than the current version (YES), it is determined that the upgrade conditions are met (S612). If these conditions are not met (NO), it is determined whether there is another update (S614), and if there is, it is set to the update for which the determination will be made (S613).

[0122] If there are no further updates, it is determined that no update is needed (S615), and the process is terminated. For example, if the target device ID 401 in Figure 4 is row 101-a (upgrade type), the communication device 101-a refers to the version management table 118 in Figure 2 and confirms that program A is installed and that the currently installed version is 2.3.

[0123] Therefore, it can be determined that the version value 3.0 listed in the updated version 404 is greater. To satisfy the upgrade condition, the process proceeds to step S612 and it is determined that the device needs to be updated.

[0124] If it is determined in step S603 that it is not an upgrade, the update necessity determination unit 121 refers to the update type 405 of the update determination information file 139 and determines whether the update type is a downgrade (S605).

[0125] In the case of a downgrade (YES), the update necessity determination unit 121 refers to the update target program 403 and the updated version 404 in the update determination information file 139 and determines whether the target program is already installed on the device and whether the updated version 404 is smaller than the currently installed version (S606). Since the update type is downgrade, only downgrading of already installed programs is permitted.

[0126] If the target program is already installed on the device and the updated version 404 is less than the current version (YES), the downgrade condition is met and the process proceeds to step S612. If this condition is not met, the process for the next update is carried out (S614) (S613).

[0127] If it is determined in step S605 that the update is not downgrade, the update necessity determination unit 121 refers to the update type 405 in the update determination information file 139 and determines whether the update type is new (S607).

[0128] In the case of "new", the update necessity determination unit 121 refers to the update target program 403 in the update determination information file 139 and determines whether the target program is not installed (S608).

[0129] If the target program is not installed on the device, it is determined that an update is necessary (S612). If it is already installed, it is determined that the program to be updated is already installed and that the version of the updated program is greater than the current version (S604). If it is greater, it is determined that an update is necessary (S612). If it is not greater, processing is carried out for the next update (S614) (S613).

[0130] In the example in Figure 4 where the target device ID 401 is 101-b (update type is new), if the installation status of communication device 101-b is as shown in Figure 3, communication device 101-b can refer to its own version control table 118 and determine that program B is not installed.

[0131] To satisfy the "new" condition, the process proceeds to step S612, where it is determined that the device needs to be updated.

[0132] If the result in step S607 is not "new", the update necessity determination unit 121 refers to the update type 405 in the update determination information file 139 and determines whether the type is "any" (S609). If it is "any" (YES), the process proceeds to step S610; otherwise, it does not correspond to any of the predetermined update types, and the process proceeds to step S614.

[0133] If the answer in step S609 is "any", the update necessity determination unit 121 refers to the update target program 403 in the update determination information file 139 and determines whether the target program is already installed (S610). If the update type is "any", then upgrading and downgrading of installed programs, and adding new programs that are not installed are permitted. If the program is not installed (NO), then it is determined that an update is necessary (S612).

[0134] If the program is installed, the update requirement determination unit 121 refers to the update target program 403 and the updated version 404 in the update determination information file 139 and determines that the version of the target program installed on the device does not match the updated version 404 (S611).

[0135] If there is a mismatch (YES), it is determined that an update is necessary (S612), and if there is a match (NO), processing is performed for the next update (S614) (S613).

[0136] Furthermore, the determination process in step S611 is performed to avoid an infinite update loop. For example, if the target device ID 401 in the third row of Figure 4 is * and the update type is any, the communication device 101-a refers to the version management table 118 in Figure 2 to confirm that version 2.0 of program C is already installed and determines that a downgrade to version 1.0 is necessary.

[0137] Afterward, program C is downgraded to version 1.0, and after a certain period of time has elapsed, the update determination information acquisition unit 120 acquires the update determination information file 139 shown in Figure 4. At this point, if the update necessity determination process shown in Figure 7 is executed again, without the determination process in step S611, it will be incorrectly determined that program C needs to be updated again, resulting in an infinite loop.

[0138] The "any" setting allows updates unconditionally, but if the same version of the program is already installed, the communication device 101 must determine that an update is unnecessary. By providing the determination process in step S611, it is possible to prevent an infinite update loop even when the update mode is "any".

[0139] Step S614 is the process in which the update necessity determination unit 121 determines whether the reference line in the update determination information file 139 has reached the end. If the end has been reached (YES), there is no further update determination information to be determined, so the process proceeds to step S615. If it has not reached the end (NO), the reference line in the update determination information file 139 is shifted by one line, and the next update is set (S613). If there is no next update, it is determined that no update is necessary (S615).

[0140] By performing the process shown in Figure 7 above, it becomes possible to perform updates according to the purpose and use based on the judgment information described in the update judgment information file 139. In particular, by appropriately setting the update type 405 as needed, it is possible to flexibly control the upgrade, downgrade, or new installation of the program installed on the communication device 101.

[0141] Furthermore, the example in Figure 6 illustrates that the determination is made from the first line of the update determination information file 139, and the process in Figure 6 is terminated when it is determined that an update is necessary. In other words, in this configuration, update determination information defined in higher-level lines is processed with higher priority.

[0142] This does not apply if the communication device 101 can apply multiple programs at once. In this embodiment, the process in Figure 7 may not be terminated in step S612, and the process may proceed to step S614 to continue the update necessity determination process. After determining all the update determination information described in the update determination information file 139, the single or multiple programs that were determined to require updating may be retrieved and applied together.

[0143] If the update judgment information file 139 is incorrectly configured, the remote update may enter an infinite loop even if the judgment process in step S611 described above is implemented.

[0144] For example, let's take the third row of Figure 4, where the target device ID 401 is * (update type is any), as an example. Suppose that instead of specifying the program file for version 1.0 of program C (programC-1.0.zip) as the program acquisition destination 406, the program file for version 1.1 (programC-1.1.zip) was mistakenly specified.

[0145] In this case, the communication device 101 obtains the version 1.1 program and updates program C to version 1.1.

[0146] When the update judgment information file 139 shown in Figure 4 is retrieved again after a certain period of time, the version of program C installed on the device is not 1.0, so the program version 1.1 is retrieved again, resulting in an infinite loop.

[0147] Therefore, in order to avoid infinite loops caused by such misconfigurations, the update necessity determination unit 121 may be provided with exception handling, such as prohibiting the continuous acquisition of firmware from the same program acquisition source 406.

[0148] Figure 8 shows an example screen for setting the update determination information file of the management device in an embodiment of the present invention. The output unit 134 of the management device 102 is capable of displaying a display screen 700, which is provided with a display area 701 for registering update determination information and a display area 702 for displaying a list of update determination information.

[0149] The display area 701 includes input fields for the target device ID 401 in Figure 4, the update determination program requirements 402, the program to be updated 403, the updated version 404, the update type 405, and the communication device program 140 to be distributed to the communication device 101.

[0150] The administrator inputs this information via the input unit 133 and presses the registration button 703, at which point the entered update judgment information is registered in the update judgment information file 139.

[0151] In the example shown in Figure 8, the user presses the browse button to select a distribution file from the communication device program 140 stored in the storage device 135.

[0152] The value of the program acquisition destination 406 in Figure 4 is automatically entered according to the specified distribution file. However, this is not the only possible configuration; the distribution file can also be specified by directly entering the reference URL of the communication device program 140 into the distribution file input field.

[0153] Furthermore, as mentioned above, if you want to add other columns to the update judgment information file 139, add these input fields to the display area 701.

[0154] Display area 702 displays the registered contents of the update judgment information file 139. In the example in Figure 8, in addition to the target device ID 401, update judgment program requirements 402, update target program 403, updated version 404, update type 405, and program acquisition source 406, the fields for deletion 704 and reordering 705 are also displayed.

[0155] By clicking the × button in the field labeled "Delete 704," you can remove the update judgment information for that row from the update judgment information file 139. For example, you can delete unnecessary rows when an update is complete or when incorrect update judgment information has been registered.

[0156] Additionally, pressing the triangle button or inverted triangle button in the reorder field 705 will shift the corresponding row up or down by one row.

[0157] As mentioned above, the update necessity determination process in Figure 7 shows an example where update determination information registered in higher rows of the update determination information file 139 is given priority. By providing the order reorder field 705, the administrator can change the priority of the update determination information. Providing the order reorder field 705 is not mandatory.

[0158] As shown in Figure 8, by displaying the settings screen for the update judgment information file 139, it becomes possible to easily register and delete update judgment information.

[0159] The input of registration information into the update determination information file 139 may be done by creating the update determination information file 139 on a separate external device different from the management device 102, and then storing and registering it in the management device 102.

[0160] Figure 9 shows an example screen for outputting the communication device management table of the management device in an embodiment of the present invention. The output unit 134 of the management device 102 is capable of displaying a display screen 800, and the display screen 800 displays the communication device management table 138 managed by the management device 102.

[0161] By outputting information from the communication device management table, administrators can check the programs installed on each communication device 101 and their version information.

[0162] Furthermore, in step S107 of Figure 5, the version management table 118 is updated by the update completion notification sent from the communication device 101, so the completion of the update can be confirmed on the screen in Figure 9.

[0163] By appropriately configuring the update determination information file 139 of the management device 102, flexible updates of the communication device 101 can be performed.

[0164] For example, if a bug is found in the latest program and it is necessary to revert to an older program as a temporary measure, the communication device 101 can be permitted to downgrade by specifying downgrade or any as the update type.

[0165] Furthermore, if you wish to perform the upgrade only on communication devices 101 that already have the target program installed, you can specify "upgrade" to exclude communication devices 101 that do not have the program installed from the update.

[0166] This system enables not only simple upgrade processes but also flexible updates tailored to specific purposes and applications. By entrusting the determination of whether an update is necessary to the communication device 101, the processing load on the management device 102 can be reduced, and costs can be lowered.

[0167] Example 2 describes an example in which update conditions based on the settings and operating information of the communication device 101 can also be defined in the update determination information file 139.

[0168] For example, when distributing a program to correct a malfunction in the wireless LAN interface of a communication device 101, it is conceivable to limit the update to communication devices 101 that have enabled the use of wireless LAN.

[0169] Furthermore, when distributing a program that increases the number of packet retransmissions to communication devices 101 with poor communication quality in order to improve the success rate of communication with the management device 102, it is conceivable that the update may be limited to communication devices 101 whose communication quality is below a threshold.

[0170] Thus, it may be appropriate to update the settings of the communication device 101 and the dynamically changing operational information (operating status and communication status) accordingly.

[0171] Figure 10 is an example flowchart showing the process for determining whether an update is necessary in Embodiment 2 of the present invention.

[0172] When updating a program using update conditions, the update condition 901 of the update judgment information file shown in Figure 4 is used.

[0173] Update condition 901 specifies update conditions based on the settings and operating information of the communication device 101, and the update of the communication device 101 is permitted only if these conditions are met.

[0174] For example, the update condition 901 wlanEnable=True in the update of target device ID 101-a in the first row of Figure 4 requires that the use of wireless LAN be enabled.

[0175] Therefore, this update indicates that the update will be permitted for the communication device 101-a if the update determination program version is 1.1 or higher, program A is installed, the version of program A is less than 3.0, and the wireless LAN setting is enabled.

[0176] For example, in the case of distributing a program to fix a malfunction in the wireless LAN interface as described above, it becomes possible to allow the update only if the use of the wireless LAN is enabled.

[0177] Furthermore, the update condition 901 rsrp ≤ -100 described in the update for target device ID 101-b in the second row of Figure 4 indicates that the RSRP (Received Signal Strength, Reference Signal Received Power) is -100 dBm or less.

[0178] This is an example where the communication device 101 and the management device 102 communicate via wireless communication such as LTE.

[0179] In cases where a program with increased retransmission counts is distributed to improve the communication success rate, updates can be permitted only to communication devices 101 where the RSRP is below a threshold.

[0180] In particular, since communication quality, such as RSRP, changes dynamically depending on the installation environment and time, defining such update conditions makes it possible to dynamically allow or prohibit updates depending on the communication status, etc.

[0181] Other examples of settings include application settings such as data acquisition cycle, packet forwarding settings such as IP address and firewall settings and routing tables, and communication settings such as APN settings.

[0182] Examples of operational information include the CPU usage rate, memory usage rate, amount of data transmitted and received, number of successful / failed communications, elapsed time since startup, internal temperature, power supply voltage, and location information of the device.

[0183] In this example, the update condition is shown in the format wlanEnable=True, but other formats are also acceptable as long as the update determination program installed on the communication device 101 can recognize it.

[0184] For example, you can use comparison operators like == or <=, and you can also use logical operators to set up multiple update conditions.

[0185] For example, to specify that the wireless LAN setting is enabled and the RSRP is -100 dBm or less, you can write (wlanEnable = True) AND (rsrp ≤ -100). Alternatively, to specify that the wireless LAN setting is enabled or the RSRP is -100 dBm or less, you can also write (wlanEnable = True) OR (rsrp ≤ -100). You may also use logical operators such as && and ||.

[0186] Furthermore, multiple columns for update condition 901 may be provided to allow the definition of multiple update conditions. If the contents of the update judgment information file 139 are changed during operation, the old update judgment program may not be able to perform the update judgment correctly.

[0187] In such cases, the problem can be avoided by appropriately setting the value of the update judgment program requirement 402.

[0188] For example, if the update determination program cannot perform the determination process for the column of update condition 901 unless it is version 2.0 or later, setting the value of the update determination program requirement 402 to 2.0 in the row using update condition 901 will allow the communication device 101 with an update determination program of a version lower than that to skip the determination process for that row.

[0189] In this way, it becomes possible to change the contents of the update judgment information file 139 even while the communication system is in operation.

[0190] The flowchart in Figure 10 illustrates the process for determining whether an update is necessary using the update conditions. In this case, after completing the version verification process for each update type in Example 1, it is determined whether the update conditions other than the version are met (S1001).

[0191] In this step, the update requirement determination unit 121 refers to the update condition 901 and determines whether the described condition is met by referring to the settings and operating information of its own device. Other processes are the same as in Example 1.

[0192] As described above, according to this embodiment, it is possible to dynamically perform remote program updates in accordance with the settings and operating information of the communication device 101. It is possible to permit updates only to communication devices 101 that meet the update conditions, making it easy to limit the target of program distribution, and it is also possible to dynamically control the trigger for update execution.

[0193] For example, as mentioned above, by pre-registering the update judgment information file 139 to distribute a program that provides a solution in the event of problems such as a deterioration in communication quality, it becomes possible to quickly take countermeasures in the event of an emergency.

[0194] Furthermore, by allowing detailed settings for program distribution targets and update triggers, it is possible to reduce unnecessary program distribution, thereby reducing communication load and communication costs for the communication device 101 and the management device 102.

[0195] In addition, while Figure 7 illustrates an example of the screen display for registering the update judgment information file 139 in Example 1, in Example 2, an input field for the update condition 901 shown in Figure 9 is provided on the same screen.

[0196] Even if the update conditions 901 are defined and entered by the administrator, the management device 102 may be configured to automatically generate the update conditions 901 based on a machine learning model or the like.

[0197] For example, the correlation between the RSRP value collected from the communication device 101 and the communication success rate between the communication device 101 and the management device 102 can be learned and analyzed. Based on the trend analysis results, an RSRP threshold that causes a significant deterioration in the communication success rate can be calculated, and the update conditions 901 can be automatically generated based on this threshold. By using machine learning, the setting of the update conditions 901 by the administrator can be made easier.

[0198] In Example 3, we will describe an embodiment that supports not only updating the program in the communication device 101 but also changing the setting values.

[0199] In Example 2, we provided an example of distributing a program to correct a malfunction in the wireless LAN interface when the malfunction was confirmed. However, it is also possible to change the settings of the wireless LAN interface to forcibly disable it and prohibit its use.

[0200] If the CPU usage of the communication device 101 increases and some kind of abnormality is suspected, it may be possible to change the settings to stop some programs in order to reduce the CPU usage.

[0201] Thus, there are cases where it is necessary to remotely change the settings of the communication device 101 according to its settings and operating information.

[0202] To remotely change the settings, a setting file 141 for the communication device is provided in the storage device 135 of the management device 102 shown in Figure 1. In addition, the setting file acquisition destination 1201 of the update judgment information file 139 is used.

[0203] The configuration file acquisition destination 1201 indicates the location from which the communication device 101 should acquire the configuration file when it determines that it needs to change the settings of its own device. In the example in Figure 4, the acquisition destination is described in URL format, but like the program acquisition destination 406, the description format is arbitrary.

[0204] Furthermore, to indicate that this is an update of configuration values ​​rather than a program update, the update type 405 is set to "config".

[0205] The communication device 101 update necessity determination unit 121, if the update type 405 is configure, determines whether the device satisfies the update condition 901. If it does, it determines that the device needs to change its settings (update) and obtains the setting file specified by the setting file acquisition destination 1201.

[0206] In Figure 4, the fourth row update condition 901, "wlanEnable=True", is an example of applying a configuration file (wlanDisable.zip) that disables the wireless LAN setting when the communication device 101 has enabled the use of wireless LAN.

[0207] This makes it possible, for example, in cases where a malfunction in the wireless LAN interface is confirmed, to remotely change the settings to disable the wireless LAN interface, but only for communication devices 101 that have enabled the wireless LAN settings as described above.

[0208] The fifth row of Figure 4 shows an example where the update condition 901, "cpuUsage≧0.90", applies a configuration file (stopProgramA.zip) that stops program A when the CPU usage of the communication device 101 is 90% or higher.

[0209] This allows the settings to be changed to stop certain programs in order to reduce CPU usage when the CPU usage of the communication device 101 increases.

[0210] In this way, by adding a column for the configuration file acquisition destination 1201 to the update judgment information file 139 and providing "config" as the update type, it becomes possible to change the settings of the communication device 101.

[0211] By appropriately setting the update conditions 901, flexible setting changes can be made according to the settings and operating information of the communication device 101.

[0212] In the case of setting changes, the information for the program to be updated 403, the updated version 404, and the program source 406 is not used, so these fields may be left blank. However, the column for the program to be updated 403 may be used to specify the program whose setting value will be changed (updated).

[0213] Figure 11 is an example flowchart showing the process of determining whether an update is necessary in Embodiment 3 of the present invention. This process adds a step S1301, which determines whether the update format is configure, to the update determination process of Embodiment 2.

[0214] In step S1301, the update necessity determination unit 121 refers to the update form 405 of the update determination information file 139 and determines whether the form is "config".

[0215] If the value is "config" (YES), proceed to step S1001 to determine whether the update condition 901 is met. If the update form 405 is not "config" (NO), it does not fall under any of the predetermined update forms, so proceed to step S614.

[0216] If the process proceeds to step S1001 and the update condition 901 is met, and it is determined in step S612 that the device needs to be updated, the device retrieves a configuration file from the configuration file acquisition destination 1201, and the program application unit 122 of the communication device 101 applies the configuration file to the device and performs the configuration change.

[0217] Furthermore, if the update type is "config," the settings after the configuration change are notified to the management device 102.

[0218] According to this embodiment, flexible changes to setting values ​​can be made according to the settings and operating information of the communication device 101. When updating the program of the communication device 101, the program file size may increase, but generally the size of the setting file is often smaller than the program file size.

[0219] For example, if a problem occurs and can be addressed by changing a configuration value rather than updating the program, the latter can be done more quickly and at a lower cost. By supporting not only program updates but also configuration value changes, it is possible to contribute to reducing system downtime and costs.

[0220] Each of the above configurations and functions may be implemented in hardware, either partially or entirely, for example, by designing them as integrated circuits. Alternatively, each of the above configurations and functions may be implemented in software by having the processor interpret and execute programs that realize each function.

[0221] Information such as programs, tables, and files that implement each function can be stored in memory such as ROM (Read Only Memory) and RAM (Random Access Memory), in recording devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), or on recording media such as IC cards, SD cards, and DVDs.

[0222] 101: Communication device 102: Management device 111, 131: Communication I / F 112, 132: CPU 113, 133: Input unit 114, 134: Output unit 115, 135: Storage device 116: Communication device control unit 117: Communication processing unit 118: Version control table 119: Program update unit 120: Update determination information acquisition unit 121: Update necessity determination unit 122: Program application unit 123: Operation information 136: Management device control unit 137: Management device communication processing unit 138: Communication device management table 139: Update determination information file 140: Program for communication device

Claims

1. A communication device connected to a management device that distributes programs, comprising a program update unit consisting of an update determination information acquisition unit, an update necessity determination unit, and a program application unit, wherein the update determination information acquisition unit acquires program update determination information from the management device, the update necessity determination unit determines whether the device needs a program update based on the target device ID, update determination program requirements, update target program, updated version, and update type described in the update determination information, and if an update is necessary, acquires a program from the program acquisition source described in the update determination information, and the program application unit applies the acquired program to the device and notifies the management device of the updated program version information.

2. The communication device according to claim 1, wherein the update necessity determination unit determines that an update is necessary when the identifier of the device itself matches the target device ID described in the update determination information, the version of the update determination program constituting the program update unit of the device itself is greater than the version of the update determination program included in the update determination information, and the update target program of the device itself satisfies the conditions indicated by the update form of the update target program included in the update determination information.

3. The communication device according to claim 2, wherein the update mode includes an update mode that only allows upgrades of installed programs, an update mode that only allows new installations of programs or upgrades of installed programs, and an update mode that unconditionally allows updates, including downgrades.

4. The communication device according to claim 3, wherein the update necessity determination unit determines whether the device's program needs to be updated based on the update conditions included in the update determination information, and the update conditions are determined using at least one of the communication device's setting information and operation information.

5. The communication device according to claim 4, wherein the configuration information includes at least one of application settings and communication settings, and the communication settings of the communication device include at least one of the IP address, interface settings, firewall settings, packet forwarding settings and APN settings of the communication device.

6. The communication device according to claim 5, wherein the operational information includes at least one of the following: the CPU usage rate of the communication device, the memory usage rate of the communication device, the received radio wave intensity of the communication device, the amount of data transmitted and received by the communication device, the number of successful communications by the communication device, the number of failed communications by the communication device, the elapsed time since the startup of the communication device, the internal temperature of the communication device, the power supply voltage to the communication device, and the location information of the communication device.

7. The communication device according to claim 4, wherein the update necessity determination unit further determines whether the settings of the device need to be updated based on the update conditions described in the update determination information, and if an update is necessary, it obtains a setting file from the setting file acquisition source described in the update determination information, and the program application unit applies the acquired setting file to the device to update the settings.

8. A communication system comprising a management device for distributing programs and at least one communication device connected to the management device, wherein the management device provides update determination information and a program to be provided to the communication device, and the communication device comprises a program update unit consisting of an update determination information acquisition unit, an update necessity determination unit, and a program application unit, the update determination information acquisition unit acquires program update determination information from the management device, the update necessity determination unit determines whether the device's program needs to be updated based on the target device ID, update determination program requirements, update target program, updated version, and update form described in the update determination information, and acquires the program from the program acquisition source described in the update determination information if an update is necessary, and the program application unit applies the acquired program to the device and notifies the management device of the updated program version information.

9. The communication system according to claim 8, characterized in that the management device includes an input unit that accepts the input of the update determination information to be provided to the communication device and the registration of a program.

10. The communication system according to claim 9, characterized in that the management device includes a communication device management table for storing program version information notified by the communication device, and an output unit for outputting information from the communication device management table.

11. A communication method for updating the program of a communication device from a management device that distributes programs, comprising the steps of: the communication device obtaining program update determination information from the management device; the communication device determining whether or not to update its own program based on the target device ID, update determination program requirements, update target program, updated version, and update type described in the update determination information, and obtaining the program from the program acquisition source described in the update determination information if an update is necessary; and the communication device applying the acquired program to its own device and notifying the management device of the updated program version information.