Computer-implemented method and computer program product, apparatus and communication system for providing software patches
By identifying and replacing the optimal closed subgraph of embedded devices and generating reference compression patches, the problem of time and cost of FOTA updates is solved, and efficient firmware updates are achieved.
Patent Information
- Application Number
- CN202380081256.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-27
- Filing Date
- 2023-09-18
- Publication Date
- 2025-07-04
AI Technical Summary
The existing firmware update method is time-consuming, costly and easy to lose connections through cellular connections. Embedded devices are affected by limited storage capabilities, and traditional lossless compression algorithms cannot effectively compress non-sequential structure modes.
By determining the differences between existing models and new models, converting them into abstract graphs, using graph mining units to identify the optimal closed subgraphs, generating reference replacement subgraphs, and encoding compression patch transmissions.
Reduces the amount of update data, reduces the cost of transmission and download time, optimizes the update process of embedded devices, and is suitable for low-power wide area network transmission.
Smart Images

Figure CN120266093A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a computer-implemented method and a computer program product for providing software patches, as well as a device and a communication system for providing software patches. Background Art
[0002] With the advent of the Internet of Things (IoT), so-called Firmware Over-the-Air (FOTA) updates have become ubiquitous. New features and bug fixes are delivered to devices at runtime without the need for a direct connection to a computer or other programming device. Many of these devices are connected via cellular connections, resulting in high costs for data transfer. Examples include smart agriculture applications, smart gardening, smart manufacturing systems, wind energy, and devices in vehicles.
[0003] Using cellular connections, FOTA updates are very time-consuming and the cost of downloading updates can be high. In addition, during an update, the connection may be lost and the entire update may need to be retransmitted. Moreover, devices, such as embedded devices, are typically very restricted due to their limited storage capacity.
[0004] Firmware is typically sent to an embedded device as a complete binary file. Traditionally, an embedded device reserves two storage partitions: an existing storage partition for the running firmware, and a new storage partition for the next firmware update (new firmware). When a new firmware is downloaded, the new storage partition is selected as the boot partition. Then, the new firmware performs some initial tests and, if everything works as expected, the device eventually reboots with the new firmware.
[0005] Firmware binary files are typically compressed using lossless compression algorithms such as Huffman coding. These currently used lossless compression algorithms process data sequences and compress the "sequence patterns" in the data. Many firmware update algorithms transfer updates in blocks and support resuming failed updates, for example in the case of a lost connection or a failed block transfer. Summary of the Invention
[0006] An object of the present invention is to improve the software of a device, especially the update of firmware.
[0007] According to a first aspect, there is provided a computer-implemented method for providing a software patch, especially a firmware patch, to at least one device. The method comprises:
[0008] a) providing an existing model and a new model, wherein the existing model describes an existing version of the software of the device and the new model describes a new version of the software,
[0009] b) determining a model difference between the existing model and the new model,
[0010] c) By applying a machine-readable language to the determined model differences, convert the determined model differences into a specific abstract graph representing the determined model differences as a set of graphs,
[0011] d) Apply a graph mining unit to this set of graphs to identify a specific type of closed subgraph from this set of graphs according to specific parameters, where the identified specific type of closed subgraph includes an optimal specific type of closed subgraph,
[0012] e) Store at least the optimal specific type of closed subgraph and generate a reference to at least one stored optimal specific type of closed subgraph according to a subgraph compression mode,
[0013] f) Replace each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph with the generated reference to obtain a compressed model difference,
[0014] g) Provide a compressed patch including the compressed model difference and the subgraph compression mode, and
[0015] h) Encode the compressed patch using an encoding algorithm and transmit the encoded compressed patch as a software patch to at least one device.
[0016] According to a first aspect, improve the software update, especially the firmware update, of a device by reducing the size of the update.
[0017] Using the above computer-implemented method, graph pattern-based compression can be performed by replacing at least each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph with the generated reference to obtain a compressed model difference. As a result, due to the graph pattern-based compression of the device, a compressed patch including a compressed model difference with a reduced data volume (file size in bits) can be provided.
[0018] This has the technical effect that the update, especially the FOTA update, is provided to the device as a compressed patch with a reduced data volume, which only includes the compressed model difference and the subgraph compression mode, rather than providing the entire new model or the uncompressed model difference to the device as an FOTA update.
[0019] This advantageously reduces the amount of data that must be transmitted and downloaded for the FOTA update, thereby reducing the burden on existing mobile cellular or wireless networks, reducing the time required to perform the update, and reducing the workload required for the update, especially in terms of cost.
[0020] In addition, algorithms used for FOTA updates to date have only worked on sequential (binary) images and thus cannot discover non-sequential structural patterns. Therefore, by using the method described above, non-sequential structural patterns can be used in a beneficial way in the data transfer to the device, since specific abstract graphs, in particular abstract syntax graphs, are utilized.
[0021] A computer-implemented method is a method that involves the use of a computer, a computer network, or other programmable devices, where one or more features are implemented fully or partially by a computer program.
[0022] In particular, a firmware patch is an "over-the-air firmware" update, which is a software update performed via a wireless radio interface or wireless radio link.
[0023] Specifically, the existing version of the software is the version that is still running on the device and / or is used to operate the device. In particular, the new version of the software is the version to be operated on the device or the version through which the device is to be operated.
[0024] A model (such as a data model) is an abstract model that organizes data elements and standardizes how they are related to each other and how they are related to the attributes of real-world entities (such as the existing version of the device software). The corresponding models, such as the existing model, the new model, and / or the model difference, can be abstracted into different forms using a modeling language, such as the Unified Modeling Language (UML). It can be represented as a metamodel in UML. Additionally or alternatively, it can be described and graphically represented through concrete or abstract syntax. Other examples of the prior art in the context of models are cited in references [1], [2], and [6].
[0025] Preferably, a machine-readable language is data in a format that can be processed by a computer. For example, the machine-readable language is formed as an Extensible Markup Language (XML).
[0026] For example, a specific abstract graph is an abstract syntax graph. Alternatively, the specific abstract graph is an abstract semantic graph. The specific abstract graph also includes an abstract syntax tree or a syntax tree.
[0027] For example, a graph mining unit is a unit for finding and extracting information from a data set. In addition, when the graph mining unit is applied to the set of graphs, the graph mining unit can additionally identify non-closed subgraphs from the set of graphs representing the model difference. For an example of a graph mining unit, see reference [4].
[0028] Preferably, at least the optimal specific type of closed subgraph is stored in a storage unit, particularly in the storage unit of a device of a communication system. The storage unit of the device may be connected to another storage unit of the communication system. Preferably, at least one device may be configured to access data in the additional storage unit via a wireless connection through the communication system. Specifically, at least one optimal specific type of closed subgraph is stored as a shrink node in the storage unit. Specifically, the shrink node is stored at a specific memory address in the storage unit and includes all nodes, edges, and / or information of the optimal specific type of closed subgraph.
[0029] Specifically, a reference points to a data object, such as a shrink node. In particular, a pointer may also refer to a data object. A reference or pointer may be formed as a variable that caches a memory address. In particular, a reference refers to (points to) a location in the storage unit, such as a memory address. For example, retrieving the data object stored there is called dereferencing or reverse referencing.
[0030] Preferably, the generated reference has a specific memory address that stores, as its content, the specific memory address of the shrink node stored in the storage unit. Thus, the generated reference points to the specific memory address of the shrink node stored in the storage unit.
[0031] Referring to a graph, particularly an optimal specific type of closed subgraph, is advantageous for data compression and thus for reducing the data obtained from the replacement according to step f) of the above method according to the first aspect by using the reference, as shown in the following example:
[0032] Preferably, each graph and / or node in the set of graphs representing the determined model differences includes the determined model differences or corresponding subgraphs of the determined model differences, as another set of graphs.
[0033] This means that if an optimal specific type of closed subgraph has a size of 5k bytes (kilobytes) and is four times the determined model difference, then when processing and / or transmitting at least four times this determined model difference that includes the optimal specific type of closed subgraph, the size of the model difference that has to be processed and / or then transmitted to the device is 20k bytes. This is a very large amount of data, especially in a low data rate wireless network.
[0034] In contrast, when using the storage, generation, and replacement of steps e), f), and g) of the above method according to the first aspect, the following occurs:
[0035] Each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph is replaced by the generated reference to obtain a compressed model.
[0036] Thus, the obtained compressed model includes a storage space that is four times the reference to the specific memory address of the stored collapsed nodes, rather than four times the specific type of enclosed subgraph that corresponds to the optimal specific type of enclosed subgraph in the above example. In this example, the use of references reduces the amount of data to be processed and transmitted to the device from 20k bytes to 5k bytes, because only the optimal specific type of enclosed subgraph has to be stored once as a collapsed node (5k byte storage space) and then transmitted to the device in the compressed patch. Then, preferably, the device decompresses the compressed patch by dereferencing the collapsed nodes at least four times according to the subgraph compression mode to obtain the decompressed patch. Thus, the compressed model difference includes at least only 5k bytes.
[0037] It should also be noted that the model difference can have several such specific types of enclosed subgraphs, which can in turn lead to further data volume savings in the same way. It should also be noted that dozens, hundreds, thousands, or millions of devices can receive this update, thus greatly reducing the load on the communication system or network. As a result, the compressed model difference has a reduced data volume.
[0038] Preferably, the replacement according to step f) is lossless because the optimal specific type of enclosed subgraph can be fully recovered from the collapsed nodes. Thus, the graph pattern-based compression by the replacement according to step f) of the above method according to the first aspect is lossless.
[0039] In addition, the encoded compressed patch is transmitted as a software patch to at least one device for providing a software patch to at least one device.
[0040] According to an embodiment, if a specific graph in the set of graphs meets specific parameters, the graph is identified as a specific type of enclosed subgraph, where the specific parameters are met if the graph appears in the set of graphs at a specific frequency, has a specific size in terms of the number of its nodes and / or edges, and is non-extendable, where the graph is non-extendable if adding nodes and / or edges to the graph changes at least one specific parameter of the graph, particularly the specific frequency.
[0041] In other words, if adding nodes and / or edges to a graph changes the specific frequency of that graph within the set of graphs, then the graph is considered non-extendable or not extendable. For example, the set of graphs includes three graphs, the first graph has nodes "A - B - C", another graph has nodes "A - B - C", and another graph has nodes "A - B - D". Additionally, specifically, if graph "A" is selected from the set of graphs and node "B" is added to graph "A", then graph "A - B" will appear. Since graph "A" has a specific frequency of 3 within the set of graphs and graph "A - B" also has a specific frequency of 3 within the set of graphs, adding node "B" to graph "A" does not change the specific frequency of the graph as it remains 3. Thus, graph "A" is considered extendable. On the other hand, if graph "A - B" is selected from the set of graphs and node "C" is added to graph "A - B", then graph "A - B - C" will appear. Since graph "A - B" has a specific frequency of 3 within the set of graphs and graph "A - B - C" has a specific frequency of 2 within the set of graphs, adding node "C" to graph "A - B" changes the specific frequency of the graph as it is 2. Thus, graph "A - B" is considered non-extendable.
[0042] According to a further embodiment, the identification according to step d) further includes:
[0043] Determining the compression ability of each identified specific type of closed subgraph according to specific parameters for identifying at least an optimal specific type of closed subgraph from the identified specific type of closed subgraphs, wherein the optimal specific type of closed subgraph has the maximum compression ability with respect to the specific frequency and the specific size.
[0044] This embodiment has the technical effect that, in the first step, only those identified specific types of closed subgraphs, particularly the optimal specific type of closed subgraphs, are used for storage, generation, and replacement according to steps e) and f), which have the most or maximum compression ability with respect to the entire determined model difference. Thus, graphs or subgraphs with low or small compression ability with respect to the entire determined model difference are filtered out by the graph mining unit in the first step and are preferably used later in the storage, generation, and replacement according to steps e) and f). This advantageously reduces the amount of data in the compressed model difference.
[0045] Preferably, the graph mining unit determines the compression ability for each graph in the set of graphs.
[0046] Specifically, the compression ability or the maximum compression ability defines which compression ability a graph has, and which graph or graphs have the most or maximum compression ability relative to the overall determined model difference. The compression abilities of the graphs can also be arranged in descending order, starting from a specific graph with the maximum compression ability and then continuing to specific graphs with a lower compression ability compared to the maximum compression ability. Preferably, the compression ability is the extent to which the amount of data can be saved or reduced when the graph is later replaced with that compression ability.
[0047] Specifically, the specific frequency defines how often a graph appears in a selected set of graphs or another graph.
[0048] Preferably, the specific size defines the size of a graph in terms of the amount of data or file size of the graph, in terms of the number of nodes and / or edges of the graph, and / or in terms of the information stored in these nodes and / or edges.
[0049] In particular, the more frequently a graph appears in a set of graphs and the larger it is in terms of its file size, nodes, and / or edges, the higher its possible compression ability.
[0050] According to a further embodiment, the replacement according to step f) further comprises:
[0051] Replacing at least one subset of the nodes and / or edges of each identified closed subgraph of a specific type corresponding to the optimal specific type of closed subgraph with the generated reference to obtain a compressed model difference.
[0052] Preferably, a graph is a structure equivalent to a set of objects, where at least pairs of objects are interconnected. In particular, the objects are referred to as nodes, and each relevant pair of nodes is connected by an edge. Preferably, each node and / or edge can contain information.
[0053] According to a further embodiment, the subgraph compression mode defines using at least one subset of the nodes and / or edges of the optimal specific type of closed subgraph when generating a reference, and defines according to which specific graph attributes to use at least one subset of the nodes and / or edges when generating a reference.
[0054] Specifically, the term "when generating a reference" includes storing at least one subset of the nodes and / or edges of the optimal specific type of closed subgraph as a contracted node according to the subgraph compression mode, and generating a reference to at least one stored subset of the nodes and / or edges of the optimal specific type of closed subgraph as a contracted node.
[0055] Preferably, the subgraph compression mode defines which nodes and / or edges of an optimal specific type of enclosed subgraph are used when generating references, and / or which nodes and / or edges are used when storing the nodes and / or edges of an optimal specific type of enclosed subgraph as collapsed nodes. Specifically, storing at least the nodes and / or edges of an optimal specific type of enclosed subgraph as collapsed nodes and subsequent replacement can also be referred to as compressing at least the nodes and / or edges of an optimal specific type of enclosed subgraph by collapsed nodes. In particular, the term "compression" means compressing multiple nodes and / or edges into a specific collapsed node based on a graph pattern.
[0056] In addition, the subgraph compression mode includes at least generated references and further generated references.
[0057] In addition, specific graph attributes include node information and / or edge information of a subset of nodes and / or edges used when generating references. Preferably, the node information and / or edge information includes information indicating the size or file size of the nodes and / or edges in bytes, or information indicating which nodes and / or edges of a subset of nodes and / or edges of an optimal specific type of enclosed subgraph are connected to each other.
[0058] According to a further embodiment, the compression model difference includes a set of subgraphs, and step d) further includes:
[0059] Applying a graph mining unit to the set of subgraphs of the compression model difference to identify a specific type of enclosed sub-subgraph from the set of subgraphs according to specific parameters, wherein the identified specific type of enclosed sub-subgraph includes an optimal specific type of enclosed sub-subgraph,
[0060] wherein step e) further includes:
[0061] Storing the optimal specific type of enclosed sub-subgraph and generating further references to at least one stored optimal specific type of enclosed sub-subgraph according to the subgraph compression mode,
[0062] wherein step f) further includes:
[0063] Replacing each identified specific type of enclosed sub-subgraph corresponding to the optimal specific type of enclosed sub-subgraph with the generated further references to obtain a further compressed model difference.
[0064] Specifically, step g) further includes:
[0065] Providing a further compressed patch including the further compressed model difference and the subgraph compression mode, and wherein step h) further includes:
[0066] Encoding the further compressed patch using an encoding algorithm and transmitting the encoded further compressed patch as a software patch to at least one device.
[0067] This embodiment has the same technical effects and advantages as the method according to the first aspect. In addition, compared with the method according to the first aspect, further additional compression of the provided compressed patch is provided in the form of a further compressed patch. Therefore, a further compressed patch including a further compressed model difference with a reduced amount of data (file size in bits) can be provided to the device.
[0068] In other words, preferably, similar to the method according to the first aspect, method steps d) to f) of this embodiment are performed on the compressed model difference in order to obtain a greater data reduction compared with the method according to the first aspect.
[0069] According to a further embodiment, at least one of the existing model, the new model, the compressed patch, and / or the compressed model difference is represented as a specific abstract graph.
[0070] Preferably, the existing model, the new model, the compressed patch, and the compressed model difference are represented as specific abstract graphs, in particular abstract syntax graphs.
[0071] According to a further embodiment, the encoding algorithm includes a first encoding scheme for converting the compressed patch into a first data format to obtain a compressed patch in the form of the first data format, wherein the encoding algorithm includes a second encoding scheme for converting the compressed patch in the form of the first data format into a second data format to obtain an encoded compressed patch, and wherein the software patch is formed as a binary file.
[0072] In particular, the first encoding scheme is XML Metadata Interchange (XMI) (for example, see reference [5]).
[0073] Preferably, the first data format is XML, which is the abbreviation of Extensible Markup Language.
[0074] Specifically, the second encoding scheme is the inflate algorithm (for example, see reference [3]).
[0075] For example, the second data format is a binary file.
[0076] According to a further embodiment, the transmission in step g) is performed wirelessly, in particular by using a cellular network, a low-power wide area network (especially a long-range wide area network), or a wireless local area network.
[0077] Advantageously, the method described according to the above first aspect and its embodiments is used for low-power wide area networks, especially long-range wide area networks. In these networks, only a small amount of data transmission is allowed. By means of the method described according to the above first aspect and its embodiments, the amount of data to be transmitted can be reduced so that this meets the requirements of data transmission in low-power wide area networks, especially in long-range wide area networks.
[0078] For example, the cellular network is formed as an LTE-M network (Long Term Evolution - M) or an Nb-IoT network (NarrowBand-IoT). In addition, examples of low-power wide area networks are Sigfox, Mioty, and Symphony Link. In particular, Mioty is a low-power wide area network (LPWAN) protocol, and SymphonyLink is an LPWAN.
[0079] According to a further embodiment, the device is formed as a terminal device, in particular a mobile terminal device, an IoT device, or a field device.
[0080] For example, a terminal device is a device that forms an input or output device in a networking system. It is directly connected to a local area network or a wide area network and is used for inputting and outputting information.
[0081] In particular, an IoT device (Internet of Things device) is at least any device attached with sensors and can transfer data from one object to another object or to a user via the Internet. For example, IoT devices include wireless sensors, software, actuators, computer devices, etc.
[0082] A field device is a technical device in the field of automation technology, for example, which is directly related to the production process. In automation technology, the term "field" refers to the area outside the control cabinet or control room. Therefore, in factory and process automation, a field device can be either an actuator or a sensor. Preferably, the field device is then usually connected to a control and management system via a fieldbus or increasingly via real-time Ethernet.
[0083] According to a further embodiment, the method further includes:
[0084] i) Updating an existing version of the software of at least one device to a new version of the software by processing the transmitted encoded compressed patch on at least one device.
[0085] According to a further embodiment, the processing according to step i) includes:
[0086] Decompressing the transmitted encoded compressed patch by using a specific decompression algorithm that uses a subgraph compression mode to obtain a decompressed patch,
[0087] Copying the software, especially the firmware, including the existing model running on at least one device, to a new storage partition of at least one device,
[0088] Applying the decompressed patch to the existing model of the software to update the existing version of the software of at least one device to a new version of the software.
[0089] For example, a specific decompression algorithm is the deflate algorithm, which is a combination of LZ77 (Lempel-Ziv 77) and Huffman coding (for example, see reference [3]).
[0090] Preferably, decompressing the transmitted encoded compression patch using a specific decompression algorithm utilizing a subgraph compression mode to obtain a decompressed patch includes the following steps: according to the subgraph compression mode, dereferencing or reverse-referencing the stored shrunk nodes by means of the generated references to recover at least an optimal specific type of enclosed subgraph from the stored shrunk nodes.
[0091] Any embodiment of the first aspect can be combined with any embodiment of the first aspect to obtain another embodiment of the first aspect.
[0092] According to a second aspect, there is provided a computer program product which includes program code for performing a computer-implemented method according to the first aspect or an embodiment of the first aspect when run on at least one computer.
[0093] A computer program product such as a computer program component can be embodied as a memory card, a USB stick, a CD-ROM, a DVD, or a file downloadable from a server in a network. For example, such a file can be provided by transmitting a file including the computer program product from a wireless communication network.
[0094] According to a third aspect, there is provided a device, in particular a server unit, for providing a software patch, in particular a firmware patch, to at least one device. The device includes:[[]]END]]
[0095] A first supply unit for providing an existing model and a new model, where the existing model describes an existing version of the software of the device and the new model describes a new version of the software;
[0096] A determination unit for determining a model difference between the existing model and the new model,
[0097] A conversion unit for converting the determined model difference into a specific abstract graph representing the determined model difference as a set of graphs by applying a machine-readable language to the determined model difference,
[0098] An application unit for applying a graph mining unit to this set of graphs to identify a specific type of enclosed subgraph from this set of graphs according to specific parameters, where the identified specific type of enclosed subgraph includes an optimal specific type of enclosed subgraph,
[0099] A storage unit for storing at least the optimal specific type of enclosed subgraph and for generating references to at least one stored optimal specific type of enclosed subgraph according to the subgraph compression mode,
[0100] A replacement unit, configured to replace each identified enclosed subgraph corresponding to the optimal specific type of enclosed subgraph with the generated reference to obtain a compressed model difference;
[0101] A second supply unit, configured to provide a compressed patch including the compressed model difference and the subgraph compression mode; and
[0102] An encoding unit, configured to encode the compressed patch using an encoding algorithm and to transmit the encoded compressed patch as a software patch to at least one device.
[0103] The technical effects and advantages described for the computer-implemented method according to the first aspect are equally applicable to the apparatus according to the third aspect.
[0104] In addition, the embodiments and features described with reference to the computer-implemented method according to the first aspect are mutatis mutandis applicable to the apparatus according to the third aspect.
[0105] In particular, the server unit is a cloud device.
[0106] Each unit, such as the graph mining unit, the storage unit or the server unit, can be implemented by hardware and / or software. If the unit is implemented by hardware, it can be embodied as a device, such as a part of a computer or a processor or a system (such as a computer system). If the unit is implemented by software, it can be embodied as a computer program product, a function, a routine, program code or an executable object.
[0107] According to a fourth aspect, there is provided a communication system for providing a software patch, in particular a firmware patch, to at least one device. The communication system includes:
[0108] The apparatus according to the third aspect, and
[0109] At least one device, in particular a device formed as a terminal device,
[0110] wherein the apparatus is configured to transmit the software patch to the at least one device, and the at least one device is configured to update an existing version of the software of the at least one device to a new version of the software by processing the software patch on the at least one device.
[0111] The technical effects and advantages described for the computer-implemented method according to the first aspect are equally applicable to the communication system according to the fourth aspect.
[0112] In addition, the embodiments and features described with reference to the computer-implemented method according to the first aspect are mutatis mutandis applicable to the communication system according to the fourth aspect.
[0113] Further possible embodiments or alternative solutions of the present invention also cover combinations of features (not explicitly mentioned here) described above or below with respect to the embodiments. A person skilled in the art can also add individual or isolated aspects and features in the most basic form of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0114] With reference to the accompanying drawings, further embodiments, features and advantages of the present invention will become apparent from the following description and the dependent claims, wherein:
[0115] Figures 1A - 1F FIG. shows a graphical illustration of steps of a computer-implemented method for providing a software patch according to an embodiment;
[0116] Figure 2 FIG. shows a block diagram illustrating steps of a computer-implemented method for providing a software patch according to an embodiment;
[0117] Figure 3 FIG. shows an apparatus for providing a software patch according to an embodiment; and
[0118] Figure 4 FIG. shows a block diagram of a communication system for providing a software patch according to an embodiment.
[0119] In the drawings, unless otherwise indicated, the same reference numerals denote the same or functionally equivalent elements. DETAILED DESCRIPTION
[0120] Figures 1A - 1F FIG. shows a graphical illustration of method steps of a computer-implemented method for providing a software patch sw_patch, in particular a firmware patch, to at least one device 10 (see Figure 1F and 4 ). The computer-implemented method includes Figure 2 steps S10 to S80. Further, in the following explanations in Figures 1A - 1F the references to method steps S10 to S80 are indicated in brackets, Figure 2 and a method for providing a software patch sw_patch according to an embodiment is shown in a schematic block diagram. Figure 2
[0121] Figure 1A Figure 1A FIG. shows an existing model m_old and a new model m_new. The existing model m_old has one node "A", two nodes "B" and one node "C", which are interconnected as can be seen in Figure 1AAs seen in. The new model m_new also has node "A", two nodes "B", and node "C". Attached to the existing model m_old, the new model m_new includes seven occurrences of node "A", thirteen occurrences of node "B", five occurrences of node "C", eleven occurrences of node "D", and four occurrences of node "E", which are interconnected according to Figure 1A interconnected.
[0122] Thus, in Figure 1A , the existing model m_old and the new model m_new are provided, where the existing model m_old describes the existing version of the software of device 10, and the new model m_new describes the new version of the software (see Figure 2 method step S10).
[0123] In addition, in Figure 1A , the model difference m_diff between the existing model m_old and the new model m_new is determined (see Figure 2 method step S20). The model difference m_diff is represented by a dashed line in Figure 1A and thus includes seven occurrences of node "A", thirteen occurrences of node "B", five occurrences of node "C", eleven occurrences of node "D", and four occurrences of node "E", which are interconnected according to Figure 1A interconnected.
[0124] In the next step and in Figure 1B , the determined model difference m_diff is converted into a specific abstract graph ASG by applying a machine-readable language to the determined model difference m_diff, which represents the determined model difference m_diff as a set of graphs gph (see Figure 2 method step S30).
[0125] In Figure 1B , the graph gph of the set of graphs gph may include nodes "A" and "B" and a first edge e1 connecting nodes "A" and "B" to each other. Another graph gph (not shown) may include nodes "A" and "B" and a second edge e2 connecting nodes "A" and "B" to each other, or may include nodes "A" and "C" and a third edge e3 connecting nodes "A" and "B" to each other. In addition, another graph gph (not shown) may include nodes "B" and "D" and "E" or "C" and "E", etc. In Figure 1B , in the specific abstract graph ASG, at least the first edge e1, the second edge e2, and the third edge e3 are formed multiple times (not shown), for example, the first edge e1 or the second edge e2 between each connection between nodes "A" and "B", and the third edge e3 between each connection between nodes "A" and "C". In addition, Figure 1B includes multiple other edges (not shown) between different nodes. InFigure 1B each connection between two nodes including at least one edge and / or each node itself can be represented as a graph gph in the set of graphs gph. In addition, a specific abstract graph ASG is Figure 1B formed as an abstract syntax graph in
[0126] Next, in Figure 1C the graph mining unit is applied to the set of graphs gph to identify a specific type of closed subgraph from the set of graphs gph according to specific parameters, where the identified specific type of closed subgraph includes an optimal specific type of closed subgraph g_optsub (see Figure 1D )(see Figure 2 method step S40 of Figure 1C ). In Figure 1C an example of the identified specific type of closed subgraph is the closed subgraph g3. In addition, the graph mining unit is applied to the set of graphs gph to also identify a specific type of non-closed subgraph (not shown) from the set of graphs gph according to specific parameters. In
[0127] this is explained in more detail below for the example in Figure 1C
[0128] Furthermore, the above identification, in particular according to method step S40, includes a further step of determining the compression ability of each identified specific type of closed subgraph according to specific parameters for identifying at least the optimal specific type of closed subgraph g_optsub in the identified specific type of closed subgraph. In addition, the compression ability is determined at least for non-closed subgraphs, such as at least the first and second subgraphs g1, g2.
[0129] If a specific graph in the set of graphs gph (see Figure 1B ) satisfies specific parameters, the specific graph is identified as a specific type of closed subgraph, where the specific parameters are satisfied if the graph appears in the set of graphs gph with a specific frequency, has a specific size in terms of the number of its nodes and / or edges, and is non-extendable, where the graph is non-extendable if adding nodes and / or edges to the graph changes at least one specific parameter, in particular the specific frequency.
[0130] As described above, each graph and / or node of the set of graphs gph representing the determined model difference m_diff (see Figure 1A ) can include the determined model difference m_diff or a corresponding subgraph of the determined model difference m_diff as another set of graphs. Thus, in the set of graphs gph representing the determined model difference m_diff (see Figure 1A ), at least the first sub - graph g1, the second sub - graph g2, and the closed sub - graph g3 can each appear multiple times at specific frequencies. Thus, according to Figure 1C a specific abstract graph ASG representing a determined model difference can include the first sub - graph g1, the second sub - graph g2, and the closed sub - graph g3 multiple times. In Figure 1C a specific example, the first sub - graph g1 appears in the specific abstract graph ASG at a specific frequency of 10, the second sub - graph g2 appears in the specific abstract graph ASG at a specific frequency of 4, and the closed sub - graph g3 also appears in the specific abstract graph ASG at a specific frequency of 4. Figure 1C The specific abstract graph ASG in additionally includes other single nodes, such as the three - degree node "A", the three - degree node "B", the one - degree node "C", and the one - degree node "D", which are connected to the corresponding first and / or second sub - graphs g1, g2 and / or the corresponding closed sub - graph g3, as Figure 1C shown.
[0131] First, the first sub - graph g1 is identified as a non - closed sub - graph of a specific type because it does not meet specific parameters.
[0132] As described above and as Figure 1C shown, the first sub - graph g1 has a specific frequency of 10, has two nodes and one edge, and has a determined compression capacity of 87. This means, for example, that the first sub - graph g1 appears 10 times in the specific abstract graph ASG representing the determined model difference. Preferably, the second sub - graph g2 has a specific frequency of 4, has six nodes and six edges, and has a determined compression capacity of 154, and the closed sub - graph g3 has a specific frequency of 4, has seven nodes and eight edges, and has a determined compression capacity of 196 (also see Figure 1C ).
[0133] Specifically, the higher the compression capacity of a graph, the larger the specific frequency and the specific size, the larger the size of the later data reduction in compressing the model difference.
[0134] Therefore, the first sub - graph g1 has a high specific frequency compared to the second sub - graph g2 and the closed sub - graph g3, but the first sub - graph g1 has only two nodes and a low compression capacity compared to the second sub - graph g2 and the closed sub - graph g3. Because, for example, by replacing a sub - graph with only two nodes and a low compression capacity of 87 (regardless of the data volume of the nodes), compared to sub - graphs with, for example, 6, 10, 25, 50, 100, 150, 500, 1000 or more nodes and / or edges, the compression capacity is lower. Thus, the first sub - graph g1 does not meet the specific parameters at least in terms of the specific size and is thus a non - closed sub - graph of a specific type. Additionally, the first sub - graph g1 also has a low compression capacity relative to the second sub - graph g2 and the closed sub - graph g3.
[0135] In addition, the second sub-graph g2 has a medium specific frequency compared to the first sub-graph g1, but has a high compression capacity and a larger specific size compared to the first sub-graph g1. For example, by replacing a sub-graph with six nodes, six edges, and a medium specific frequency, the compression capacity is higher compared to a sub-graph with only one or two nodes and the compression capacity of the first sub-graph g1. In addition, if a node is to be added to the second sub-graph g2, such as node "C" (see Figure 1C ), then the second sub-graph g2 will become a closed sub-graph g3. This means that the second sub-graph g2 is extensible and thus does not meet the specific parameters at least in terms of non-extensibility. As described above, if adding at least a plurality of nodes to the graph gph (see Figure 1B ) changes at least one specific parameter of the graph gph, especially the specific frequency, then the graph is non-extensible. Since by adding node "C" to the second sub-graph g2, the second sub-graph g2 becomes a closed sub-graph g3, and compared to the closed sub-graph g3, the specific frequency of the second sub-graph g2 does not change because the second sub-graph g2 and the closed sub-graph g3 have the same specific frequency 4. Therefore, adding node "C" to the second sub-graph g2 does not change the specific parameter of the second sub-graph g2 regarding the specific frequency. Therefore, the second sub-graph g2 does not meet the specific parameters at least in terms of non-extensibility and is thus a non-closed sub-graph.
[0136] In addition, the sub-graph g3 (or "closed sub-graph g3" after identifying that the sub-graph g3 is a closed sub-graph) has a medium frequency compared to the first sub-graph g1, but the sub-graph g3 has a high compression capacity compared to the first sub-graph g1. For example, by replacing a sub-graph with seven nodes, eight edges, and a medium specific frequency, the compression capacity is higher compared to a sub-graph with only one or two nodes and the compression capacity of the first sub-graph g1.
[0137] In addition, if a node is to be added to the sub-graph g3, such as node "X" (not shown), then the sub-graph g3 will become another sub-graph (not shown), which, for example, only appears eight times in a specific abstract graph ASG (not shown). This means that the sub-graph g3 is non-extensible and thus meets the specific parameters regarding specific size, specific frequency, and non-extensibility. Since by adding node "X" to the sub-graph g3 and becoming another sub-graph, the specific frequency of this other sub-graph compared to the sub-graph g3 does change because this other sub-graph and the sub-graph g3 do not have the same specific frequency. Therefore, adding node "X" to the sub-graph g3 does change the specific parameter of the sub-graph g3 regarding the specific frequency. Therefore, the sub-graph g3 meets the three specific parameters and is thus a closed sub-graph g3. In addition, the closed sub-graph g3 has the most nodes, is a closed sub-graph, and thus has a maximum compression capacity of 196 together with its specific frequency 4. Therefore, the closed sub-graph g3 is an optimal specific type of closed sub-graph g_optsub (see Figure 1D) It should be noted that the closed subgraph g3 only appears exemplarily at a specific frequency 4 in Figure 1C the determined model differences. In embodiments not shown, the closed subgraph g3 and the first and second subgraphs g1, g2 may also appear in the ASG representing the data model differences at specific frequencies of 12, 25, 50, 75, 100, 250, 500, 1000 or greater. Thus, the replacement amount is then also larger, which in turn results in a reduction in the amount of data to be transmitted to the device 10 in the compression patch (see Figure 1F and Figure 4 ).
[0138] Then, in Figure 1D , the optimal specific type of closed subgraph g_optsub is stored as a contraction node CN in the storage unit 100e (see Figure 3 ). Next, according to the subgraph compression mode, a reference REF to at least one stored optimal specific type of closed subgraph g_optsub is generated, in particular a reference REF to the contraction node CN (see Figure 2 method step S50). In other words, the reference REF points to a specific address of the contraction node CN stored in the storage unit 100e (see Figure 3 ).
[0139] Thus, according to Figure 1D , the contraction node CN includes nodes "A", "B", "B", "C", "D", "D" and "E" and the edges between these nodes. Preferably, in this case, the subgraph compression mode includes information about the nodes "A", "B", "B", "C", "D", "D" and "E" of the optimal specific type of closed subgraph g_optsub and the edges between these nodes. Thus, the subgraph compression mode defines at least one subset of the nodes and / or edges of the optimal specific type of closed subgraph g_optsub to be used when generating the reference REF, and defines according to which specific graph properties at least one subset of the nodes and / or edges is to be used when generating the reference REF.
[0140] Next, in Figure 1E , each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph g_optsub is replaced with the generated reference REF to obtain a compressed model difference (see Figure 2 method step S60). In addition, the replacement according to step S60 also includes replacing at least one subset of the nodes and / or edges of each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph g_optsub with the generated reference REF to obtain a compressed model difference. Figure 1E The replacement of nodes and / or edges is illustrated using Figure 1A the new model m_new. InFigure 1E In the specific new model m_new*, the determined model difference m_diff (see Figure 1A ) will now be replaced by a plurality of contraction nodes CN because a reference REF to the contraction nodes CN is generated (see Figure 1D ), and thus a reference REF to the stored optimal specific type of closed subgraph g_optsub is generated. Therefore, as seen in Figure 1C , the closed subgraph g3, which is the optimal specific type of closed subgraph g_optsub, has a specific frequency 4 in the specific abstract graph ASG representing the determined model difference. Therefore, Figure 1E the specific new model m_new* in Figure 1E now has 4 contraction nodes CN, as well as the determined model difference and the remaining nodes of the new model m_new, namely 4 nodes of "A", 7 nodes of "B", 2 nodes of "C", and 3 nodes of "D", which are connected to each other according to
[0141] Furthermore, a compression patch (not shown) including the compressed model difference and the subgraph compression mode is provided (see the method step S70 in Figure 2 ). Furthermore, in Figure 1F , the compression patch is encoded using an encoding algorithm.
[0142] Furthermore, in Figure 1F , the encoding algorithm includes a first encoding scheme for converting the compression patch into a first data format to obtain the compression patch in the form of the first data format, where the encoding algorithm includes a second encoding scheme for converting the compression patch in the form of the first data format into a second data format to obtain the encoded compression patch, and where the software patch sw_patch is formed as a binary file. Furthermore, the encoded compression patch is the software patch sw_patch (see Figure 1F and Figure 4 ).
[0143] Then, the encoded compression patch formed as the software patch sw_patch is transmitted from the device 100 (also see Figure 3 and Figure 4 ) to at least one device 10 (see the method step S80 in Figure 2 ). This transmission is preferably performed wirelessly, particularly by using a remote wide area network. In an embodiment, the transmission can also be performed wirelessly, particularly by using a cellular network or a wireless local area network.
[0144] In an embodiment (not shown), the compressed model difference includes a set of subgraphs, and step S40 further includes:
[0145] Apply the graph mining unit to this set of subgraphs of the compressed model differences to identify a specific type of closed sub-subgraph from the set of subgraphs according to specific parameters, wherein the identified specific type of closed sub-subgraph includes an optimal specific type of closed sub-subgraph, and step S50 further includes:
[0146] Store the optimal specific type of closed sub-subgraph and generate a further reference to at least one stored optimal specific type of closed sub-subgraph according to the subgraph compression mode,
[0147] wherein step S60 further includes:
[0148] Replace each identified specific type of closed sub-subgraph corresponding to the optimal specific type of closed sub-subgraph with the generated further reference to obtain a further compressed model difference.
[0149] In addition, the existing model m_old (see Figure 1A ), the new model m_new (see Figure 1A ), the specific new model m_new* (see Figure 1E ), the compression patch (not shown) and / or the compressed model difference (not shown) are represented as specific abstract graphs.
[0150] Figure 2 Shows a block diagram illustrating the steps of a computer-implemented method for providing a software patch sw_patch (see Figure 1F and Figure 4 ) to at least one device 10 (see Figure 1F and Figure 4 ) according to an embodiment. The corresponding method steps S10 - S80 have been explained above according to Figures 1A - 1F , which is why, to avoid repetition, the method steps S10 - S80 are not explained again.
[0151] Figure 3 Shows a device 100 for providing a software patch sw_patch (see Figure 1F and Figure 4 ), in particular a firmware patch, to at least one device 10 (see Figure 1F and Figure 4 ) according to an embodiment. The device 100 includes a first supply unit 100a, a determination unit 100b, a conversion unit 100c, an application unit 100d, a storage unit 100e, a replacement unit 100f, a second supply unit 100g, and an encoding unit 100h. In Figure 3 , the device 100 is formed as a server unit.
[0152] The first supply unit 100a is configured to provide the existing model m_old (see Figure 1A ) and the new model m_new (seeFigure 1A ), where the existing model m_old describes the existing version of the software of device 10, and the new model m_new describes the new version of the software.
[0153] In addition, the determination unit 100b is configured to determine a model difference m_diff between the existing model m_old and the new model m_new (see Figure 1A ).
[0154] In addition, the conversion unit 100c is configured to convert the determined model difference m_diff into a specific abstract graph ASG (see Figure 1B ) by applying a machine-readable language to the determined model difference m_diff, and the abstract graph represents the determined model difference m_diff as a set of graphs gph (see Figure 1B ).
[0155] In addition, the application unit 100d is configured to apply a graph mining unit to the set of graphs gph to identify a specific type of closed subgraph from the set of graphs gph according to specific parameters, where the identified specific type of closed subgraph includes an optimal specific type of closed subgraph g_optsub (see Figure 1D ).
[0156] In addition, the storage unit 100e is configured to at least store the optimal specific type of closed subgraph g_optsub, and generate a reference REF to at least one stored optimal specific type of closed subgraph g_optsub according to the subgraph compression mode (see Figure 1D ).
[0157] Next, the replacement unit 100f is configured to replace each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph g_optsub with the generated reference REF to obtain a compressed model difference.
[0158] Then, the second supply unit 100g is configured to provide a compressed patch including the compressed model difference and the subgraph compression mode.
[0159] In addition, the encoding unit 100h is configured to encode the compressed patch using an encoding algorithm and transmit the encoded compressed patch as a software patch sw_patch to at least one device 10.
[0160] Figure 4 A block diagram of a communication system 1 for providing a software patch sw_patch (see Figure 1F ), in particular a firmware patch, to at least one device 10 (see Figure 1F ) according to an embodiment is shown. The communication system 1 includes Figure 4At least one device 10, which is formed as an IoT device or a field device, and a device 100 according to Figure 3 . The device 100 ( Figure 1F ) is configured to transmit a software patch sw_patch to at least one device 10. The at least one device 10 is configured to update an existing version of the software of the at least one device 10 to a new version of the software by processing the software patch sw_patch on the at least one device 10 (see the method step S90 in Figure 4 ).
[0161] Furthermore, the processing according to the method step S90 in Figure 4 also includes:
[0162] decompressing the transmitted encoded compressed patch by using a specific decompression algorithm utilizing a subgraph compression mode to obtain a decompressed patch,
[0163] copying the software, in particular the firmware, including the existing model m_old (see Figure 1A ) running on the at least one device 10 to a new storage partition of the at least one device 10,
[0164] applying the decompressed patch to the existing model m_old of the software for updating the existing version of the software of the at least one device 10 to a new version of the software.
[0165] Although the present invention has been described according to preferred embodiments, it is obvious to those skilled in the art that modifications are possible in all embodiments.
[0166] Reference signs:
[0167] 1 communication system
[0168] 10 device
[0169] 100 device
[0170] 100a first supply unit
[0171] 100b determination unit
[0172] 100c conversion unit
[0173] 100d application unit
[0174] 100e storage unit
[0175] 100f replacement unit
[0176] 100g second supply unit
[0177] 100h encoding unit
[0178] ASG specific abstract graph
[0179] CN contraction node
[0180] e1 first side
[0181] e2 second side
[0182] e3 third side
[0183] g_optsub optimal specific type
[0184] gph graph
[0185] gl first subgraph
[0186] g2 second subgraph
[0187] g3 closed subgraph (subgraph)
[0188] m_diff model difference
[0189] m_new new model
[0190] m_new* specific new model
[0191] m_old existing model
[0192] REF reference
[0193] sw_patch software patch
[0194] S10 method step
[0195] S20 method step
[0196] S30 method step
[0197] S40 method step
[0198] S50 method step
[0199] S60 method step
[0200] S70 method step
[0201] S80 method step
[0202] S90 method step
[0203] References
[0204] [1]Schmidt, Douglas C.: "Model-driven engineering", Computer-IEEE Computer Society-39.2(2006): 25
[0205] [2]L.Erazo-Garzón, A.Román, J.Moyano-Dután and P.Cedillo: "Models@runtime and Internet of Things: A Systematic Liter-ature Review", Second International Conference on Infor-mation Systems and Software Technologies (ICI2ST), 2021, pp.128-134
[0206] [3]Yan, Xifeng, and Jiawei Han.: "Closegraph: mining closed frequent graph patterns", Proceedings of the ninth ACM SIGKDD international conference on Knowledge discovery and data mining, 2003
[0207] [4]https: / / datatracker.ietf.org / doc / html / rfc1951
[0208] [5]https: / / www.omg.org / spec / XMI /
[0209] [6]https: / / webstore.iec.ch / publication / 4552
Claims
1. A computer-implemented method for providing a software patch (sw_patch), in particular a firmware patch, to at least one device (10), the method comprising: a) providing (S10) an existing model (m_old) and a new model (m_new), wherein the existing model (m_old) describes an existing version of the software of the device (10), and the new model (m_new) describes a new version of the software, b) determining (S20) a model difference (m_diff) between the existing model (m_old) and the new model (m_new), c) converting (S30) the determined model difference (m_diff) into a specific abstract graph (ASG) by applying a machine-readable language to the determined model difference (m_diff), the specific abstract graph representing the determined model difference (m_diff) as a set of graphs (gph), d) applying (S40) a graph mining unit to the set of graphs (gph) for identifying a specific type of closed subgraph from the set of graphs (gph) according to specific parameters, wherein the identified specific type of closed subgraph includes an optimal specific type of closed subgraph (g_optsub), e) storing at least (S50) the optimal specific type of closed subgraph (g_optsub), and generating a reference (REF) to at least one stored optimal specific type of closed subgraph (g_optsub) according to a subgraph compression mode, f) replacing (S60) each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph (g_optsub) with the generated reference (REF) to obtain a compressed model difference, g) providing (S70) a compressed patch including the compressed model difference and the subgraph compression mode, and h) encoding (S80) the compressed patch using an encoding algorithm and transmitting the encoded compressed patch as the software patch (sw_patch) to the at least one device (10).
2. The method according to claim 1, characterized in that if a specific graph in the set of graphs (gph) satisfies the specific parameters, the specific graph is identified as a specific type of closed subgraph, wherein the specific parameters are satisfied if the graph appears in the set of graphs (gph) with a specific frequency, has a specific size in terms of the number of its nodes and / or edges and is non-extendable, wherein the graph is non-extendable if adding nodes and / or edges to the graph changes at least one specific parameter of the graph, in particular the specific frequency.
3. The method according to claim 2, characterized in that the identification according to step d) (S40) further comprises: determining the compression ability of each identified specific type of closed subgraph according to specific parameters for identifying at least the optimal specific type of closed subgraph (g_optsub) from the identified specific type of closed subgraphs, wherein the optimal specific type of closed subgraph (g_optsub) has the maximum compression ability with respect to the specific frequency and the specific size.
4. The method according to any one of claims 1-3, characterized in that the replacement according to step f) (S60) further comprises: replacing at least one subset of nodes and / or edges of each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph (g_optsub) with the generated reference (REF) to obtain the compressed model difference.
5. The method according to any one of claims 1-4, characterized in that the subgraph compression mode defines using at least one subset of nodes and / or edges of the optimal specific type of closed subgraph (g_optsub) when generating the reference (REF), and defines according to which specific graph attributes to use the at least one subset of nodes and / or edges when generating the reference (REF).
6. The method according to any one of claims 1-5, characterized in that the compressed model difference comprises a set of subgraphs, wherein step d) (S40) further comprises: applying the graph mining unit to the set of subgraphs of the compressed model difference for identifying a specific type of closed sub-subgraph from the set of subgraphs according to the specific parameter, wherein the identified specific type of closed sub-subgraph comprises the optimal specific type of closed sub-subgraph, wherein step e) (S50) further comprises: storing the optimal specific type of closed sub-subgraph and generating a further reference to at least one stored optimal specific type of closed sub-subgraph according to the subgraph compression mode, wherein step f) (S60) further comprises: replacing each identified specific type of closed sub-subgraph corresponding to the optimal specific type of closed sub-subgraph with the generated further reference to obtain a further compressed model difference.
7. The method according to any one of claims 1-6, characterized in that at least one of the existing model (m_old), the new model (m_new), the compressed patch and / or the compressed model difference is represented as a specific abstract graph (ASG).
8. The method according to any one of claims 1-7, characterized in that the encoding algorithm comprises a first encoding scheme for converting the compressed patch into a first data format to obtain the compressed patch in the form of the first data format, wherein the encoding algorithm comprises a second encoding scheme for converting the compressed patch in the form of the first data format into a second data format to obtain the encoded compressed patch, wherein the software patch (sw_patch) is formed as a binary file.
9. The method according to any one of claims 1-8, characterized in that the transmission in step g) (S80) is performed wirelessly, in particular by using a cellular network, in particular a low-power wide area network of a remote wide area network or a wireless local area network.
10. The method according to any one of claims 1-9, characterized in that the device (10) is formed as a terminal device, in particular a mobile terminal device, an IoT device or a field device.
11. The method according to any one of claims 1-10, characterized in that: i) Updating (S90) the existing version of the software of the at least one device (10) to a new version of the software by processing the transmitted encoded compressed patch on the at least one device (10).
12. The method according to claim 11, characterized in that The processing according to step i) (S90) comprises: Decompressing the transmitted encoded compressed patch by using a specific decompression algorithm utilizing the subgraph compression mode to obtain a decompressed patch, Copying the software, in particular the firmware, of the existing model (m_old) running on the at least one device (10) to a new storage partition of the at least one device (10), Applying the decompressed patch on the existing model (m_old) of the software for updating the existing version of the software of the at least one device (10) to the new version of the software.
13. A computer program product comprising program code for performing a computer-implemented method according to one of claims 1 - 12 when run on at least one computer.
14. A device (100), in particular a server unit, for providing a software patch (sw_patch), in particular a firmware patch, to at least one device (10), the device (100) comprising: A first supply unit (100a) for providing an existing model (m_old) and a new model (m_new), wherein the existing model (m_old) describes the existing version of the software of the device and the new model (m_new) describes the new version of the software, A determination unit (100b) for determining a model difference (m_diff) between the existing model (m_old) and the new model (m_new), A conversion unit (100c) for converting the determined model difference (m_diff) into a specific abstract graph (ASG) by applying a machine-readable language to the determined model difference (m_diff), the specific abstract graph representing the determined model difference (m_diff) as a set of graphs (gph), An application unit (100d) for applying a graph mining unit to the set of graphs (gph) to identify a specific type of closed subgraph from the set of graphs (gph) according to specific parameters, wherein the identified specific type of closed subgraph includes an optimal specific type of closed subgraph (g_optsub), A storage unit (100e) for storing at least the optimal specific type of closed subgraph (g_optsub) and for generating a reference (REF) to at least one stored optimal specific type of closed subgraph (g_optsub) according to the subgraph compression mode, A replacement unit (100f) for replacing each identified specific type of closed subgraph corresponding to the optimal specific type of closed subgraph (g_optsub) with the generated reference (REF) to obtain a compressed model difference, and A second supply (100g) unit for providing a compressed patch comprising the compressed model difference and the subgraph compression mode, and A coding unit (100h) is configured to code the compressed patch using a coding algorithm and to transmit the coded compressed patch as the software patch (sw_patch) to the at least one device (10).
15. A communication system (1) for providing a software patch (sw_patch), in particular a firmware patch, to at least one device (10), the communication system (1) comprising: The device (100) according to claim 14, and The at least one device (10), in particular formed as a terminal device, wherein the device (100) is configured to transmit the software patch (sw_patch) to the at least one device (10), and the at least one device (10) is configured to update an existing version of the software of the at least one device (10) to a new version of the software by processing the software patch (sw_patch) on the at least one device (10).