Software automatic update management method, device, equipment and medium

In the software automatic update management method, the coordinated work of management nodes and deployment nodes is used, combined with integrated software and hardware configuration and historical installation records to estimate software update time, the automation and flexibility of software update management in the existing technology is solved. , realizes highly available version library management and flexible system self-test.

CN114860289BActive Publication Date: 2025-02-07AEROSPACE INFORMATION RES INST CAS
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210605001.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-30
Publication Date
2025-02-07
Estimated Expiration
2042-05-30

AI Technical Summary

Technical Problem

The existing software update technology cannot realize the full automation of centralized multi-server version management and software updates, and there are version library failures, management nodes and deployment nodes cannot be converted freely, software update timing cannot be predicted, and self-test policies cannot be implemented. Flexible expansion problem.

Method used

Provides a software automatic update management method, publishes software update tasks to the deployment node through the management node, uses integrated software and hardware configuration and historical installation records to estimate the software update time and method, and performs software updates during the idle time period of the system. When the management node is abnormal, the deployment node can be used as a proxy management node for task release. At the same time, a unified interface is designed to achieve flexible and extended system self-test.

Benefits of technology

Realize centralized management of fully automated software updates between multiple systems in other places, ensuring the free conversion of management nodes and deployment nodes, and multi-server terminals are mutually reserved, achieving high availability of version libraries, and achieving flexible expansion through unified interfaces. system self-test.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114860289B_ABST
    Figure CN114860289B_ABST
Patent Text Reader

Abstract

The present disclosure provides a method for automatic software update management, which includes: enabling a management node to issue software update tasks to each deployment node; when each deployment node obtains the software update task, storing the software package contained in the software update task according to the rules and injecting it into the local version library for backup; predicting the software update timing and software update method based on the software and hardware integrated configuration, task resource allocation and historical installation records of each deployment node; when the predicted software update timing is reached, enabling each deployment node to perform software update according to the software update task; wherein, when the management node is unable to issue software update tasks to each deployment node, selecting one from each deployment node as an agent management node to issue the software update task. The present disclosure also provides a software automatic update management device, equipment and medium. The method can realize automatic software update management between remote systems, with multiple nodes acting as master and backup for each other, to achieve high availability of the version library.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of information technology, and in particular to a method, device, electronic device and computer-readable storage medium for automatic software update management. Background Art

[0002] For business systems running online, software updates are very common and prone to problems, and many business systems are unattended, so the management of automatic software updates is a very important part of system operation and maintenance.

[0003] Existing software update technologies are often unable to achieve centralized multi-server multi-level version management and full automation of software updates. The main problems are as follows: the existing software update system does not have multi-level version management, and usually has only one software version library. If the software version library fails, all versions will be lost; free conversion cannot be achieved between management nodes and deployment nodes; the timing of software updates cannot be predicted, resulting in conflicts between software updates and online running tasks, leading to task failures; existing technologies usually do not have flexibly expandable self-inspection strategies, and cannot adapt to future changes in business and constantly adjusted self-inspection content. Summary of the invention

[0004] In view of the above problems, the present invention provides a method, device, electronic device and computer-readable storage medium for automatic software update management to solve the above technical problems.

[0005] One aspect of the present disclosure provides a software automatic update management method, which is applied to a software off-site update system, wherein the software off-site update system includes a management node and multiple deployment nodes, including: enabling the management node to issue a software update task to each of the deployment nodes; storing the software package contained in the software update task locally according to a rule, and injecting it into a local version library of each of the deployment nodes; estimating the time and method of the software update based on the hardware and software integrated configuration, task resource allocation and historical installation records of each of the deployment nodes; when the software update time arrives, enabling the corresponding deployment node to execute the software update according to the software update task; wherein, when an abnormality occurs in the management node, selecting one of the deployment nodes as an agent management node to issue the software update task.

[0006] Optionally, the management node releases software update tasks to each of the deployment nodes, including: during the software update process, setting the software status of the software being updated to an unavailable state; after the deployment node completes the software update, assigning a detection level to the updated software package, and providing a deployment node system self-check of the corresponding detection level through a unified interface to verify whether the software update is successful. Optionally, the unified interface is adapted to programs in multiple languages, and the method further includes: expanding the number and category of deployment node system self-check scripts according to detection requirements; adapting the expanded deployment node system self-check scripts to the unified interface to call the automation script according to the unified interface to perform automated detection.

[0007] Optionally, the backup of the software package contained in the software update task is stored locally on each deployment node according to rules and injected into a local version library, including: parsing the software update task to obtain the software package and a software update task sheet therefrom, wherein the software update task sheet records a sender and a receiver; matching the software package with the sender and the receiver and storing them in the local version library of the deployment node, and recording the software name and version number of the software package.

[0008] Optionally, the actual update and update method are estimated based on the software and hardware integrated configuration, task resource allocation, and historical installation records of each deployment node. The estimated update time and update method include: obtaining the software and hardware integrated configuration on the deployment node to obtain a list of devices that need to perform software updates; estimating the update duration of a single device in combination with historical records; when the duration of the system idle time period is longer than the update time of a single device, reserving the software update time within the system idle time period, and performing parallel updates on the devices to be updated; when the system idle time period is less than the total update duration, obtaining the pseudo idle time period of the deployment node, reserving the software update time within the pseudo idle time period, and the pseudo idle time period is the time period in the deployment node when tasks that do not require scheduling of the software to be updated are running.

[0009] Optionally, according to the historical installation records, calculating the update duration of a single device includes: obtaining the average duration of the most recent N successful updates of the software package and the average duration of the most recent N failed updates, and selecting a first maximum average duration therefrom; comparing the first maximum average duration with a preset estimated maximum duration; if the first maximum average duration is less than the estimated maximum duration, the update duration of the single device is estimated to be the first maximum average duration; if the first maximum average duration is greater than the estimated maximum duration, obtaining the average duration of the most recent M successful updates of the software package and the average duration of the most recent M failed updates, and selecting a second maximum average duration therefrom, where M is greater than N; comparing the second maximum average duration with the estimated maximum duration; if the second maximum average duration is less than the estimated maximum duration, the update duration of the single device is estimated to be the second maximum average duration, and the estimated maximum duration remains unchanged; if the second maximum average duration is greater than the estimated maximum duration, the update duration of the single device is estimated to be the second maximum average duration, and the estimated maximum duration is updated to be greater than the second maximum average duration.

[0010] Optionally, when the continuous idle time period of the system is less than the update duration of the single device, the pseudo idle time period of the deployment node is obtained, and booking the software update time within the pseudo idle time period includes: calculating the total update duration of all devices in the hardware device list; determining whether there is a pseudo idle time period with a duration greater than the total update duration; if there is a pseudo idle time period with a duration greater than the total update duration, booking the software update time within the pseudo idle time period; if there is no pseudo idle time period with a duration greater than the total update duration, then screening out pseudo idle time periods with a duration greater than the estimated update duration of a single device from among the discontinuous pseudo idle time periods, and booking the software update time of a single device within each of the discontinuous pseudo idle time periods.

[0011] Optionally, during the software update process, the state of the software being updated in the deployment node is set to an unavailable state; when the software update is completed, the state of the updated software in the deployment node is set to an available state to accept the system-assigned scheduling task of the deployment node.

[0012] Optionally, the method further includes: after each deployment node completes software update, returning an update result to the management node.

[0013] The second aspect of the present disclosure provides a software automatic update management device, which is applied to a software off-site update system, wherein the software off-site update system includes a management node and multiple deployment nodes, including: a task publishing module, used to enable the management node to publish software update tasks to each of the deployment nodes; a software backup module, used to store the software packages contained in the software update tasks according to rules and inject them into a local database for backup after each of the deployment nodes obtains the software update tasks; an update time prediction module, used to predict the software update timing and software update method based on the hardware and software integrated configuration, task resource allocation and historical installation records of each of the deployment nodes; a software update module, used to enable each of the deployment nodes to perform software updates according to the software update tasks when the software update time arrives; a node agent module, used to select one from each of the deployment nodes as an agent management node to publish software update tasks when the management node is unable to publish software update tasks to each of the deployment nodes.

[0014] The third aspect of the present disclosure provides an electronic device, comprising: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, each step of the software automatic update management method described in any one of the first aspects is implemented.

[0015] At least one of the above technical solutions adopted in the embodiments of the present disclosure can achieve the following beneficial effects:

[0016] The disclosed embodiments provide a method for automatic software update management, which can realize centralized management of fully automated software updates between multiple systems in different locations, realize free conversion of management nodes and deployment nodes between systems in different locations, and enable multiple servers to serve as master and backup for each other to achieve high availability of the version library. Flexible and expandable system self-checking can be achieved through a designed unified interface. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] For a more complete understanding of the present disclosure and its advantages, reference will now be made to the following description taken in conjunction with the accompanying drawings, in which:

[0018] Figure 1 A flowchart of a software automatic update management method provided by an embodiment of the present disclosure is schematically shown;

[0019] Figure 2 A schematic diagram schematically shows a software automatic update management method provided by an embodiment of the present disclosure;

[0020] Figure 3 A schematic diagram schematically shows a unified interface provided by an embodiment of the present disclosure;

[0021] Figure 4A schematic diagram schematically shows a predetermined software update time provided by an embodiment of the present disclosure;

[0022] Figure 5 A schematic diagram of a structural block diagram of a software automatic update management device provided by an embodiment of the present disclosure is shown;

[0023] Figure 6 The structural block diagram of an electronic device provided by an embodiment of the present disclosure is schematically shown. DETAILED DESCRIPTION

[0024] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the present disclosure. In the following detailed description, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of the embodiments of the present disclosure. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessary confusion of the concepts of the present disclosure.

[0025] The terms used herein are only for describing specific embodiments and are not intended to limit the present disclosure. The terms "comprise", "include", etc. used herein indicate the existence of the features, steps, operations and / or components, but do not exclude the existence or addition of one or more other features, steps, operations or components.

[0026] All terms (including technical and scientific terms) used herein have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification, and should not be interpreted in an idealized or overly rigid manner.

[0027] Some block diagrams and / or flow charts are shown in the accompanying drawings. It should be understood that some blocks or combinations thereof in the block diagrams and / or flow charts may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that these instructions, when executed by the processor, may create a device for implementing the functions / operations described in these block diagrams and / or flow charts.

[0028] Therefore, the technology of the present disclosure can be implemented in the form of hardware and / or software (including firmware, microcode, etc.). In addition, the technology of the present disclosure can take the form of a computer program product on a computer-readable medium storing instructions, which can be used by an instruction execution system or in combination with an instruction execution system. In the context of the present disclosure, a computer-readable medium can be any medium that can contain, store, transmit, propagate, or transmit instructions. For example, a computer-readable medium can include, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, device, or propagation medium. Specific examples of computer-readable media include: magnetic storage devices, such as magnetic tapes or hard disks (HDDs); optical storage devices, such as compact disks (CD-ROMs); memories, such as random access memories (RAMs) or flash memory; and / or wired / wireless communication links.

[0029] Figure 1 A flowchart of a software automatic update management method provided by an embodiment of the present disclosure is schematically shown.

[0030] like Figure 1 As shown, an embodiment of the present disclosure provides a software automatic update management method, which is applied to a software remote update system. The software remote update system includes a management node and multiple deployment nodes, including S110~S140.

[0031] S110, enabling the management node to issue a software update task to each deployment node.

[0032] In this embodiment, the software remote update system manages the software update tasks between each deployment node through the management node. It can be implemented based on the software update service written in XML files, and each deployment node is provided with an update service. The software update is triggered by the software update task, which includes a software update task list and a software package. The software update task list records the sender of the software update task and the receiver of the software update task, so that the management node can issue the software update task to each deployment node. The update service can receive both local software update tasks and remote software update tasks at the same time.

[0033] S120: The software packages included in the software update task are stored according to the rules and injected into the local database of each deployment node for backup.

[0034] When the deployment node receives the software update task, it parses the software update task, obtains the software package and software update task list, matches the software package with the sender and receiver, stores it in the local database of the deployment node, and records the software name and version number of the software package.

[0035] S130, predicting the software update timing and software update method of each deployment node based on the software and hardware integrated configuration, task resource allocation and historical installation record prediction of each deployment node.

[0036] In this embodiment, the update service of each deployment node records the update start time and update result of a single software on a single machine in detail each time the software update task is executed, and stores them persistently. The update service automatically estimates the update duration based on the historical installation records, and the installation time of a single software on a single device, combined with the task arrangement of the current system, calculates the time suitable for executing the software update, manages the software update as a scheduled task, and triggers it regularly according to the calculated time.

[0037] S140: When the software update time arrives, instruct the corresponding deployment node to perform software update according to the software update task.

[0038] Figure 2 A schematic diagram schematically illustrates a method for automatic software update management provided by an embodiment of the present disclosure.

[0039] like Figure 2 As shown in the figure above, the update service is deployed in each remotely deployed system. In normal operation mode, the headquarters' update service acts as a management node to manage the software updates of each remote system (i.e., deployment node) and send software update tasks to each remote system. When each deployment node completes the software update, it returns the update result to the management node and the deployment node that generated the software update task, thus realizing centralized management at the headquarters.

[0040] In the event of a version library failure or update service failure at the headquarters, one of the deployment nodes is selected as the proxy management node to publish software update tasks, and other deployment nodes feedback the software update results to the deployment node that serves as the management node. After the headquarters' update service failure is restored, the remote system that serves as the management node can send software update tasks to the headquarters, allowing the headquarters to synchronize all the latest software.

[0041] The specific implementation of steps S110 to S140 is further described below.

[0042] In step S110, the management node may obtain the software update service based on the XML file from the local or each deployment node or other remote deployment system, so that the management node issues the software update task to each deployment node.

[0043] In step S120, after receiving the software update task, the deployment node parses the software update task, obtains the software package and the software update task list, matches the software package with the sender and the receiver, stores them in the local database of the deployment node, and records the software name and version number of the software package.

[0044] Software packages can be backed up through each deployment node, so that both management nodes and deployment nodes have version libraries, and version libraries in different locations can back up each other, ensuring high availability of software version libraries. In order to avoid the extreme situation where all system version libraries in different locations fail, and to quickly recover in the event of an update failure, when executing software update tasks locally in each remote system, version information is parsed, and each software installation package is stored in a directory with the software name / version number, so that each software version can be quickly found. At the same time, each historical version can be restored in the event of a version library failure.

[0045] Furthermore, by recording the sender and receiver of the software package, when the management node cannot provide software updates normally, the deployment node can act as the agent of the management node to publish the software update task, thereby ensuring that the software package is sent to the corresponding deployment node.

[0046] In step S130, based on the hardware and software integrated configuration, task resource allocation and historical installation records, the software update timing and software update method of each deployment node are predicted, which may specifically include S131 to S135.

[0047] S131, obtaining the integrated hardware and software configuration on the deployment node, and obtaining a list of hardware devices that need to perform software update this time.

[0048] In this embodiment, when the system of each deployment node is initialized, a hardware and software integration table is generated, which records the information of each hardware in the deployment node, including the IP, identification, function and other information of the hardware, and also records the software to be deployed in the hardware device. The hardware and software integration table is filtered according to the software name of the software to be updated in the current software update task, and a list of hardware devices for this software update can be obtained to obtain the number of hardware devices to be updated.

[0049] S132, calculating the update duration of a single device according to historical installation records.

[0050] Obtaining the update duration of a single device includes S1321 to S1327.

[0051] S1321, obtaining the average duration of the latest N successful updates of the software package and the average duration of the latest N failed updates, and selecting a first maximum average duration T1 therefrom.

[0052] S1322: Compare the first maximum average duration T1 with the preset estimated maximum duration U.

[0053] S1323, if the first maximum average duration is less than the estimated maximum duration, T1<U, then the update duration Y of the single device is estimated to be the first maximum average duration T1, Y=T1.

[0054] S1324, if the first maximum average duration T1 is greater than the estimated maximum duration U, T1>U, then obtain the average durations of the most recent M successful updates of the software package and the average durations of the most recent M failed updates, and select the second maximum average duration T2 therefrom, M>N.

[0055] S1325: Compare the second maximum average duration T2 with the estimated maximum duration U.

[0056] S1326, if the second maximum average duration T2 is less than the estimated maximum duration U, T2<U, then the update duration Y of the single device is estimated to be the second maximum average duration T2, Y=T2, and the estimated maximum duration U remains unchanged.

[0057] S1327, if the second maximum average duration T2 is greater than the estimated maximum duration U, T2>U, then the updated duration estimate Y of the single device is the second maximum average duration T2, Y=T2, and the estimated maximum duration U is updated to be greater than the second maximum average duration T2, U=T2.

[0058] S133, obtaining the system idle time period of the deployment node.

[0059] In this embodiment, the system idle time is preferentially selected to execute the update tasks in parallel.

[0060] S134: When the duration of the system idle time period is longer than the update duration of a single device, schedule a software update time within the system idle time period.

[0061] For example, if within N×totalUpdateTime from the current time, there is a system idle time period > the total update time totalUpdateTime, then the software update tasks of each hardware device in the hardware device list are executed in parallel within this time period. Alternatively, if within N×totalUpdateTime from the current time, there is a system idle time period > the update time eachTime of a single device, the software update of a single hardware device can be arranged within the system idle time period until the updates of each hardware device in the hardware device list are arranged within each system idle time period.

[0062] S135, when the system idle time period is less than the update time of a single device, obtain the pseudo idle time period of the deployment node, and schedule the software update time within the pseudo idle time period. The pseudo idle time period is a time period in which tasks that do not require scheduling of the software to be updated are run in the deployment node.

[0063] In order to reduce the impact on the system and the complexity of managing software updates, the update of eligible devices is prioritized as a scheduled task, and the overall sequence is updated, so that only one scheduled task needs to be managed, and the complexity is low. In S135, the pseudo idle time period of the deployment node is obtained, and the software update time is scheduled within the pseudo idle time period, which may specifically include S1351 to S1354.

[0064] S1351, calculating the total update time of all devices in the hardware device list. In this embodiment, the update time of a single device is multiplied by the number of hardware in the hardware list to obtain the total update time totalUpdateTime of the sequential update.

[0065] S1352, determine whether there is a pseudo idle time period whose duration is longer than the updated total duration.

[0066] S1353: If there is a pseudo idle time period whose duration is longer than the total update duration, a software update time is scheduled within the pseudo idle time period.

[0067] S1354, if there is no pseudo idle time period whose duration is longer than the total update duration, then in the discontinuous pseudo idle time periods, filter out the pseudo idle time periods whose duration is longer than the update duration of a single device, and reserve the software update time of each single device in each discontinuous pseudo idle time period.

[0068] The specific measures taken are to find out whether there is a continuous pseudo-idle time period of totalUpdateTime in the future N×totalUpdateTime time period. If there is a continuous pseudo-idle time period, the update task of the software to be updated is initiated regularly in this time period. At this time, the update tasks of all devices to be deployed are taken as a scheduled task for easy management. If there is no continuous pseudo-idle time period with a length greater than or equal to totalUpdateTime, the pseudo-idle time period is searched in turn. Each time a time period is found, a scheduled update task is initiated until all devices in the list of eligible devices are updated.

[0069] In step S140, when the software update opportunity arrives, the corresponding deployment node is instructed to perform the software update according to the software update task. After the software update on each hardware device of the deployment node is completed, S141 to S142 may also be included.

[0070] S111, when the deployment node completes the software update, the updated software package is classified into a detection level, and a deployment node system self-check of a corresponding detection level is provided through a unified interface to verify whether the software update is successful.

[0071] In actual business systems, the importance of various software is different. Update errors in core software affect core business, while update errors in non-core software have less impact. In addition, the impact of a software update is not limited to the updated software itself.

[0072] In this embodiment, a unified interface is set in the management node to design different system self-check contents for different software to verify whether the software update is successful, which can improve the success rate of software update and avoid unnecessary errors. When the system of each deployment node is initialized, the software can be divided into N detection levels according to important programs, and different detection levels call the unified interface to perform corresponding self-checks.

[0073] S112, when the deployment node system self-check is completed, the software update task execution result is sent to the management node, so that the management node centrally manages the software update status of each deployment node.

[0074] In this embodiment, after the deployment node system self-check is completed, the management node uniformly manages the update results and self-check results of each deployment node, so as to check the software update status of each deployment node.

[0075] Figure 3 A schematic diagram of a unified interface provided by an embodiment of the present disclosure is schematically shown.

[0076] like Figure 3 As shown, different detection programs can be executed for different levels of software packages. The unified interface parses the extensible XML configuration to obtain the detection program to be called. The unified interface inherits the process management interface to call the detection program and adapts to different programming languages, such as Java, C, Python, Shell, etc. The XML configuration of the unified interface uses the infinitely extensible list feature to achieve flexible and extensible system self-test. The interface is designed as follows:

[0077] Table 1 Configuration model design of unified interface

[0078] Node Name content Remark Check Root Node arguments Child nodes of Check Map entry Child nodes of arguments Can appear multiple times, unlimited expansion

[0079] Based on this interface configuration, you can add sub-nodes of Check and sub-nodes of arguments to implement interface expansion.

[0080] In actual applications, the number and categories of deployment node system self-check scripts can be expanded according to detection requirements; then the expanded deployment node system self-check scripts can be adapted to the unified interface to expand the automatic detection content that can be achieved by the unified interface, thereby achieving high flexibility and scalability of the unified interface in performing automated detection.

[0081] In normal working mode, the management node manages the software updates of all remote deployment nodes. When the update service of the management node receives the software package to be updated, it automatically tests it. After the test is successful, it generates a software update task, which is sent to each deployment node in the form of an XML file, and the software package is sent to each deployment node at the same time.

[0082] It should be noted that during the software update process, the state of the software being updated in the deployment node is set to an unavailable state to prevent the deployment node system from dispatching tasks to it during the software update process, causing task conflicts. When the software update is completed, the state of the updated software in the deployment node is set to an available state to accept the scheduling tasks assigned by the deployment node system.

[0083] Figure 4 A schematic diagram of a scheduled software update time provided by an embodiment of the present disclosure is schematically shown.

[0084] like Figure 4 As shown in the figure, the horizontal progress bar indicates the system running progress, where the black vertical line in the progress bar indicates a task, the progress gap between each task indicates the system idle time, and the square on the progress bar indicates the time required for the software update. Figure 4 As shown in the first row of progress bars, when the total update duration is less than the system idle time period, the software update time can be scheduled in the system idle time period between the two tasks, so that the software update can be completed in the system idle time period. Figure 4 As shown in the progress bar on the second line, when the system idle time period is less than the total update time, you can find a period of continuous pseudo idle time and complete the software update within this time period. Figure 4 As shown in the third row of the progress bar, when the length of the system idle time period is less than the total update time and there is no continuous pseudo-idle time period, the update of each software is completed in sequence in the discontinuous pseudo-idle time period according to the length of each pseudo-idle time period and the update time of each single software.

[0085] Furthermore, when updating a certain software of a certain device of the deployment node, the update service of the deployment node sets the software status of the device to offline, so that new tasks of the system will not be allocated to the device, causing task conflicts.

[0086] According to the software update management method provided by the embodiment of the present disclosure, in the normal working mode, the management node manages the software updates of all deployment nodes. When the update service of the management node receives the software package to be updated, it automatically tests the software package. After the test is successful, a software update task is generated and the software update task is sent to each deployment node. After each remote system of the software update task receives the update task, it parses the software update task, injects the software package into the local version library, and retrieves the integrated hardware and software configuration inside the system to obtain a list of devices that need to be updated. According to the current task status of the system, the update time is predicted and the update task is executed regularly. After the update is completed, the deployment node feeds back the update results to the management node in the form of a file, and the management node injects the results into the database. In the case of an abnormal management node, the deployment node can act as a management node to manage other deployment nodes.

[0087] The software update management method can realize the centralized management of fully automated software updates between multiple systems in different locations, realize the free conversion of management nodes and deployment nodes between different systems, and realize the high availability of the version library by making multiple servers serve as the master and backup for each other. It also realizes flexible and expandable system self-checking through the designed unified interface.

[0088] Figure 5 The structural block diagram of a software automatic update management device provided by an embodiment of the present disclosure is schematically shown.

[0089] like Figure 5 As shown, a software automatic update management device 500 provided by an embodiment of the present disclosure is applied to a software off-site update system. The software off-site update system includes a management node and multiple deployment nodes, including: a task publishing module 510, a software backup module 520, an update time prediction module 530, and a node agent module 540.

[0090] The task publishing module 510 is used to enable the management node to publish software update tasks to each deployment node.

[0091] The software backup module 520 is used to store the software package included in the software update task into a local database for backup after each deployment node obtains the software update task.

[0092] The update time prediction module 530 is used to predict the software update time based on the average time for each deployment node to execute the software update and the time period without task execution.

[0093] The software update module 540 is used to instruct each deployment node to perform software update according to the software update task when the software update time arrives.

[0094] The node agent module 550 is used to select one of the deployment nodes as an agent management node to issue software update tasks when the management node is unable to issue software update tasks to the deployment nodes.

[0095] It should be noted that the software automatic update management device 500 provided in the embodiment of the present disclosure has the same technical features as the software automatic update management method provided in the embodiment of the present disclosure, and can achieve the same technical effects, which will not be described in detail herein.

[0096] It is understandable that the task release module 510, the software backup module 520, the update time prediction module 530, and the node agent module 540 can be combined in one module for implementation, or any one of the modules can be split into multiple modules. Alternatively, at least part of the functions of one or more of these modules can be combined with at least part of the functions of other modules and implemented in one module. According to an embodiment of the present invention, at least one of the task release module 510, the software backup module 520, the update time prediction module 530, and the node agent module 540 can be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application specific integrated circuit (ASIC), or can be implemented in hardware or firmware in any other reasonable way of integrating or packaging the circuit, or in a suitable combination of software, hardware, and firmware. Alternatively, at least one of the task publishing module 510, the software backup module 520, the update time prediction module 530, and the node agent module 540 can be at least partially implemented as a computer program module, and when the program is run by a computer, the function of the corresponding module can be executed.

[0097] Figure 6 The structural block diagram of an electronic device provided by an embodiment of the present disclosure is schematically shown.

[0098] like Figure 6 As shown, the electronic device described in this embodiment includes: the electronic device 600 includes a processor 610 and a computer readable storage medium 620. The electronic device 600 can execute the above reference Figure 1 Describes the method to achieve detection of specific operations.

[0099] Specifically, the processor 610 may include, for example, a general-purpose microprocessor, an instruction set processor and / or a related chipset and / or a dedicated microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 610 may also include an onboard memory for cache purposes. The processor 610 may be a processor for executing reference Figure 1The described method flow according to the embodiment of the present disclosure may be a single processing unit or multiple processing units for different actions.

[0100] Computer readable storage medium 620, for example, can be any medium capable of containing, storing, conveying, propagating or transmitting instructions. For example, readable storage media can include, but are not limited to, electrical, magnetic, optical, electromagnetic, infrared or semiconductor systems, devices, devices or propagation media. Specific examples of readable storage media include: magnetic storage devices, such as magnetic tapes or hard disks (HDD); optical storage devices, such as compact disks (CD-ROMs); memory, such as random access memory (RAM) or flash memory; and / or wired / wireless communication links.

[0101] The computer readable storage medium 620 may include a computer program 621, which may include code / computer executable instructions, which when executed by the processor 610 causes the processor 610 to perform, for example, the above-mentioned combination Figure 1 The described method sequences and any variations thereof.

[0102] The computer program 621 may be configured to have, for example, computer program codes including computer program modules. For example, in an exemplary embodiment, the codes in the computer program 621 may include one or more program modules, for example, including 621A, module 621B, ... It should be noted that the division method and number of modules are not fixed, and those skilled in the art may use appropriate program modules or program module combinations according to actual conditions. When these program module combinations are executed by the processor 610, the processor 610 may execute, for example, the above combination of Figure 1 to Figure 1 The described method sequences and any variations thereof.

[0103] According to an embodiment of the present invention, at least one of the task publishing module 510, the software backup module 520, the update time prediction module 530, and the node agent module 540 can be implemented as a reference. Figure 6 The computer program modules described herein, when executed by the processor 610, can implement the corresponding operations described above.

[0104] The present disclosure also provides a computer-readable medium, which may be included in the device / apparatus / system described in the above embodiments; or may exist independently without being assembled into the device / apparatus / system. The above computer-readable medium carries one or more programs, and when the above one or more programs are executed, the method according to the embodiment of the present disclosure is implemented.

[0105] It will be appreciated by those skilled in the art that the features described in the various embodiments and / or claims of the present disclosure may be combined and / or combined in a variety of ways, even if such combinations and / or combinations are not explicitly described in the present disclosure. In particular, the features described in the various embodiments and / or claims of the present disclosure may be combined and / or combined in a variety of ways without departing from the spirit and teachings of the present disclosure. All of these combinations and / or combinations fall within the scope of the present disclosure.

[0106] Although the present disclosure has been shown and described with reference to specific exemplary embodiments of the present disclosure, it should be understood by those skilled in the art that various changes in form and details may be made to the present disclosure without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents. Therefore, the scope of the present disclosure should not be limited to the above-mentioned embodiments, but should be determined not only by the appended claims, but also by the equivalents of the appended claims.

Claims

1. A software automatic update management method, applied to a software remote update system, wherein the software remote update system comprises a management node and a plurality of deployment nodes, characterized in that: include: Enable the management node to issue a software update task to each of the deployment nodes; The software packages included in the software update task are stored according to rules and injected into the local version library of each deployment node for backup; Based on the software and hardware integrated configuration, task resource allocation and historical installation records of each deployment node, the software update timing and software update method of each deployment node are predicted, including: obtaining the software and hardware integrated configuration on the deployment node to obtain a list of hardware devices that need to perform software updates this time; calculating the update duration of a single device based on historical installation records; obtaining the system idle time period of the deployment node; when the duration of the system idle time period is longer than the update duration of the single device, reserving the software update time within the system idle time period; when the system idle time period is shorter than the update duration of the single device, obtaining the pseudo idle time period of the deployment node, The software update time is scheduled within the pseudo idle time period, and the pseudo idle time period is a time period in which tasks that do not require scheduling of the software to be updated are run in the deployment node; wherein, the calculation of the update duration of a single device based on the historical installation records includes: obtaining the average duration of the most recent N successful updates of the software package and the average duration of the most recent N failed updates, and selecting a first maximum average duration therefrom; comparing the first maximum average duration with a preset estimated maximum duration; if the first maximum average duration is less than the estimated maximum duration, the update duration of the single device is estimated to be the first maximum average duration; if the first maximum average duration is greater than the estimated maximum duration, obtaining the The average duration of the most recent M successful updates of the software package and the average duration of the most recent M failed updates, select the second maximum average duration, M is greater than N; compare the second maximum average duration with the estimated maximum duration; if the second maximum average duration is less than the estimated maximum duration, the update duration of the single device is estimated to be the second maximum average duration, and the estimated maximum duration remains unchanged; if the second maximum average duration is greater than the estimated maximum duration, the update duration of the single device is estimated to be the second maximum average duration, and the estimated maximum duration is updated to be greater than the second maximum average duration; wherein, when the system idle time period is less than the update duration of the single device When a new duration is set, the pseudo idle time period of the deployment node is obtained, and the software update time is scheduled within the pseudo idle time period, including: calculating the total update duration of all devices in the hardware device list; judging whether there is a pseudo idle time period with a duration longer than the total update duration; if there is a pseudo idle time period with a duration longer than the total update duration, scheduling the software update time within the pseudo idle time period; if there is no pseudo idle time period with a duration longer than the total update duration, then, in the discontinuous pseudo idle time periods, screening out the pseudo idle time periods with a duration longer than the update duration of a single device, and scheduling the software update time of each single device within each of the discontinuous pseudo idle time periods; When the software update opportunity arrives, instruct the corresponding deployment node to perform software update according to the software update task; When an abnormality occurs in the management node, one of the deployment nodes is selected as a proxy management node to issue a software update task.

2. The method according to claim 1, characterized in that The method further comprises: When the deployment node completes the software update, the updated software package is assigned a detection level, and a deployment node system self-check of the corresponding detection level is provided through a unified interface to verify whether the software update is successful; When the deployment node system self-check is completed, the software update task execution result is sent to the management node, so that the management node can centrally manage the software update status of each deployment node.

3. The method according to claim 2, characterized in that The unified interface is adapted to multiple language programs, and the method further includes: Expand the number and types of self-check scripts for deployed node systems based on detection requirements; The expanded deployment node system self-check script is adapted to the unified interface, so as to call the deployment node system self-check script according to the unified interface to perform automatic detection.

4. The method according to claim 1, characterized in that: The step of storing the software packages included in the software update task according to rules and injecting them into the local version library of each deployment node for backup includes: Parsing the software update task to obtain a software package and a software update task list, wherein the software update task list records a sender and a receiver; The software package is matched with the sender and the receiver and stored in the local version library of the deployment node, and the software name and version number of the software package are recorded.

5. The method according to claim 1, characterized in that Also includes: During the software update process, setting the state of the software being updated in the deployment node to an unavailable state; When the software is updated, the state of the updated software in the deployment node is set to an available state to accept the scheduling task assigned by the system of the deployment node.

6. A software automatic update management device, used to execute the software automatic update management method according to any one of claims 1 to 5, applied to a software remote update system, the software remote update system comprising a management node and multiple deployment nodes, characterized in that: include: A task publishing module, used to enable the management node to publish software update tasks to each deployment node; A software backup module, used to store the software packages included in the software update task according to rules and inject them into the local version library of each deployment node for backup; An update time prediction module, used to predict the software update timing and software update method based on the software and hardware integrated configuration, task resource allocation and historical installation records of each deployment node, and to predetermine the software update timing and software update method of each deployment node; A software update module, used to enable each deployment node to perform software update according to the software update task when the software update opportunity arrives; The node agent module is used to select one of the deployment nodes as an agent management node to issue software update tasks when the management node is unable to issue software update tasks to the deployment nodes.

7. An electronic device comprising: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, each step of the software automatic update management method described in any one of claims 1 to 5 is implemented.

Citation Information

Patent Citations

  • Application deployment method and device

    CN108733380A

  • Version management method and device in distributed system, medium and electronic device

    CN108804121A