Software updating method, storage medium and program product
By detecting upgrade conditions on the client and using the whitelist and organization list for permission judgment, and automatically upgrading and uninstalling the client software, the cumbersome problems of user manual installation and uninstallation process are solved, the upgrade speed and user experience are improved, and the cost is reduced.
Patent Information
- Application Number
- CN202411461887.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-18
- Publication Date
- 2025-03-07
AI Technical Summary
The process of manually installing the new client and uninstalling the old client is cumbersome and prone to errors, with poor user experience, and the data transmission link is long and the transmission efficiency is low by requesting the server to upload and download data, resulting in high hardware costs, operation and maintenance costs and maintenance costs.
After the old client software is started, check whether it can be upgraded, and determine whether the user has upgrade permissions through the whitelist and organizational list. If so, automatically upgrade the old client software to the new client software. Use silent uninstall scripts to uninstall the old client software, and data migration is carried out through local storage and encryption.
It improves the speed and user experience of client software upgrades and updates of different architectures, reduces hardware costs and maintenance costs, and solves the cumbersome and error problems in the manual installation and uninstallation process of users.
Smart Images

Figure CN119576359A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of software engineering technology, and in particular to a software updating method, storage medium and program product. Background Art
[0002] With the rapid development of information technology, the speed of software and application updates is accelerating. In order to provide better user experience and functions, client software needs to be upgraded regularly.
[0003] The native client upgrade method is to run the new version installation package to overwrite the installation or update some files by file replacement to achieve the purpose of version upgrade. However, if the client changes the underlying architecture due to technology iteration or platform change, the user is generally required to manually install the new version and uninstall the old version, and then request the server to upload and download data. This will make the user feel more disconnected and the user experience is poor. The longer data transmission link leads to higher hardware costs, operation and maintenance costs, and maintenance costs.
[0004] The above contents are only used to assist in understanding the technical solution of the present application and do not constitute an admission that the above contents are prior art. Summary of the invention
[0005] The main purpose of this application is to provide a software update method, storage medium and program product, aiming to solve the technical problems that users manually install a new version of the client and uninstall the old version of the client, which is cumbersome and error-prone, resulting in a poor user experience, and then requesting the server to upload and download data, resulting in a long data transmission link and low transmission efficiency.
[0006] To achieve the above object, the present application proposes a software updating method, wherein the method comprises:
[0007] After the old version of the client software is started, detect whether the old version of the client software can be upgraded;
[0008] If the old version of the client software can be upgraded, determining whether the user ID of the receiving end is in the whitelist;
[0009] If the user ID of the receiving end is not in the whitelist, determining whether the user ID of the receiving end is in the organization list;
[0010] If the user ID of the receiving end is in the list of organizations, the old version of the client software is upgraded to the new version of the client software.
[0011] In one embodiment, after the old version of the client software is started, the step of detecting whether the old version of the client software can be upgraded includes:
[0012] After the old version of the client software is started, it is detected whether the operating system environment of the receiving end meets the upgrade conditions. If yes, it is determined that the operating system environment of the receiving end meets the upgrade conditions.
[0013] In one embodiment, before the step of detecting whether the old version of the client software can be upgraded, the step further includes:
[0014] After the old version of the client software is started, an update thread is run, and the update thread adopts a random sleep time mode to reduce the download request of the new version of the client software at the receiving end during the peak period.
[0015] In one embodiment, the old version of the client software and the new version of the client software belong to different architecture software.
[0016] In one embodiment, the step of determining whether the user ID of the receiving end is in the whitelist includes:
[0017] Get server upgrade configuration information;
[0018] According to the server upgrade configuration information, the user ID of the receiving end is queried through the grayscale mechanism of the update service to determine whether the user ID of the receiving end is in the whitelist.
[0019] In one embodiment, the step of determining whether the user ID of the receiving end is in the list of organizations includes:
[0020] According to the server upgrade configuration information, a list of organizations is obtained, and it is determined whether the user ID of the receiving end which is not in the white list is in the list of organizations.
[0021] In one embodiment, the step of upgrading the old version of the client software to the new version of the client software includes:
[0022] According to the server upgrade configuration information, returning the upgrade package information about the new version of the client software to the receiving end, and downloading the installation package of the new version of the client software;
[0023] Install the installation package of the new version of the client software according to the server update script;
[0024] When the new version of the client software is run for the first time, executing the silent uninstallation script of the receiving end;
[0025] The old version of the client software is uninstalled according to the silent uninstall script of the receiving end.
[0026] In one embodiment, before the step of downloading the installation package of the new version of the client software, the step further includes:
[0027] Check whether there is an installation package of the same version of the new version of the client software locally on the receiving end. If so, directly prompt the receiving end to upgrade.
[0028] In one embodiment, the step of upgrading the old version of the client software to the new version of the client software further includes:
[0029] Acquire the data to be migrated of the old version of the client software according to the local storage of the receiving end;
[0030] Converting the data to be migrated of the old version of the client software into a pre-set format and encrypting it;
[0031] Saving the encrypted data to be migrated of the old version of the client software to a file in a specific path in the local storage of the receiving end;
[0032] When the new version of the receiving end client software is run for the first time, the file in the specific path is automatically detected and read;
[0033] The files under the specific path are decrypted by a decryption algorithm, and the data to be migrated is imported into the new version of the client software.
[0034] In addition, to achieve the above-mentioned purpose, the present application also proposes a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the software update method described above are implemented.
[0035] In addition, to achieve the above-mentioned purpose, the present application also provides a computer program product, wherein the computer program product includes a computer program, and when the computer program is executed by a processor, the steps of the software updating method described above are implemented.
[0036] The software update method, storage medium and program product proposed in the embodiments of the present application are
[0037] After the old version of the client software is started, it is detected whether the old version of the client software can be upgraded; if the old version of the client software can be upgraded, it is determined whether the user ID of the receiving end is in the white list. If the user ID of the receiving end is not in the white list, it is determined whether the user ID of the receiving end is in the list of organizations; if the user ID of the receiving end is in the list of organizations, the old version of the client software is upgraded to the new version of the client software, and the old version of the client software and the new version of the client software belong to different architecture software. Therefore, in this embodiment, through the grayscale mechanism of the update service, the migration method of the old and new versions of the client software data and the upgrade mode of the old and new versions of the client, the problem of relying on the user to manually install the new version and uninstall the old version when updating the new and old versions of the client with different architectures is solved. The process is cumbersome and prone to errors, and the user experience is poor. The data migration is performed by requesting the server to upload and download data, resulting in a long data transmission link and low transmission efficiency. The problem is improved. The advancement speed and user experience of the upgrade and update of client software with different architectures are improved, and the hardware cost and maintenance cost are reduced. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0039] Figure 1 A flowchart of the first embodiment of the software update method of the present application is provided;
[0040] Figure 2 A flowchart of the second embodiment of the software update method of the present application is provided;
[0041] Figure 3 A flowchart of the third embodiment of the software update method of the present application is provided;
[0042] Figure 4 A flowchart of the fourth embodiment of the software update method of the present application is provided;
[0043] Figure 5 A flowchart of the fifth embodiment of the software update method of the present application is provided;
[0044] Figure 6 This is a flowchart of the sixth embodiment of the software updating method of this application.
[0045] The purpose, features and advantages of this application will be further described in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0046] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.
[0047] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.
[0048] In this embodiment, for ease of description, the following description is made with the receiving end as the execution subject.
[0049] Since the mainstream native client upgrade method in the existing technology is to run the new version installation package to overwrite the installation or update some files by file replacement to achieve the purpose of version upgrade, when the client changes the underlying architecture due to technology iteration or platform change, the user manually installs the new version of the client and uninstalls the old version of the client, and then migrates data by requesting the server to upload and download data.
[0050] The present application provides a solution. After the old version of client software is started, by detecting whether the old version of client software can be upgraded, the update service adopts a grayscale mechanism, relying on information such as whitelists and organization lists to determine whether the old version of client software is upgraded to the new version of client software, and the background pushes update requests in batches. The migration data of the old and new client software is achieved through the local storage method, encryption method and storage path at the receiving end. When the old and new versions of client software are updated, when the new version of client software is run for the first time, the old client software is uninstalled through a silent uninstall script to complete the upgrade process. This effectively solves the problem of relying on users to manually install the new version and uninstall the old version of client software when updating new and old versions of clients with different architectures, which reduces the promotion speed and user experience of the upgrade, and reduces hardware costs and maintenance costs.
[0051] It should be noted that the execution subject of this embodiment can be a computing service device with data processing, network communication and program running functions, such as a tablet computer, a personal computer, a mobile phone, etc., or an electronic device capable of realizing the above functions, software update, etc. The following takes software update as an example to illustrate this embodiment and the following software update method embodiments.
[0052] Based on this, the present application embodiment provides a software update method, referring to Figure 1 , Figure 1 This is a flowchart of the first embodiment of the software updating method of the present application.
[0053] In this embodiment, the software update method includes steps S10 to S40:
[0054] Step S10: After the old version of the client software is started, detecting whether the old version of the client software can be upgraded;
[0055] It should be noted that after the old version of the client software is started, the self-detection module can be automatically called; the detection module can obtain software version number, system operation type, version, framework, patch status, hardware configuration, network connection status and other information through the system APP; the detection module compares the collected information with the preset upgrade conditions, and the preset upgrade conditions can be set according to actual business needs; specifically, the preset upgrade conditions of the old version of the client software may require that the client software version number is lower than a certain version, and the framework of the old version of the client software is different from the framework of the new version of the client software. When the framework of the old version of the client software is different from the framework of the new version of the client software, it is detected that the version number of the old version of the client software is lower than the obtained new version number, and the current client software can be upgraded to the new version of the client software.
[0056] It should be noted that there are many reasons for switching client software frameworks, including performance optimization, technology upgrades, improved maintainability and scalability, cross-platform requirements, security and compatibility issues; the new underlying architecture may improve the running speed of the application by adopting more efficient algorithms or more advanced compilation technologies; by optimizing memory management and resource allocation, reducing CPU and memory usage and extending device battery life; better supporting multi-threading and processes, and improving the application's ability to handle concurrent tasks to achieve technology upgrades; there is a need for client software to support multiple operating systems or devices or a unified development experience in order to replace the underlying architecture that supports multiple platforms and reduce development and maintenance costs; the new framework of the client software adopts a more modern design pattern to make the code structure clearer, the modular design is better for team collaboration and long-term maintenance, and it is easy to expand new functions; at the same time, with the update of the operating system or hardware, the old underlying architecture may not be able to adapt to the new environment, resulting in compatibility issues. At this time, the architecture needs to be replaced to ensure the normal operation of the application in the new environment and avoid the risk of technology obsolescence.
[0057] Step S20: If the old version of the client software can be upgraded, determine whether the user ID of the receiving end is in the whitelist;
[0058] It should be noted that the whitelist is generated by the background maintenance of the grayscale mechanism of the receiving end update service. The whitelist can be set according to user needs or actual business needs. The whitelist is a pre-set user list; the user ID of the receiving end is usually a unique identifier generated when the user logs in or registers; before determining whether the user ID of the receiving end is in the whitelist, it is necessary to ensure the accuracy and uniqueness of the user ID to avoid security vulnerabilities caused by duplicate or incorrect user IDs. The whitelist needs to be updated regularly, and the management of the whitelist should be the responsibility of the system administrator or authorized personnel to ensure that only legitimate users can be added to the whitelist. Specifically, the pre-set user list of the whitelist can be some VIP users of the current client software of the receiving end, which is used to prevent the update service of the current client software of the receiving end from affecting the normal work and use of these pre-set whitelist VIP customers.
[0059] Step S30: If the user ID of the receiving end is not in the whitelist, determining whether the user ID of the receiving end is in the organization list;
[0060] It should be noted that the organization list refers to a list of user IDs containing members of an organization, which is used to determine whether the user is on the list of organizations that are allowed to update. Specifically, the organization list may include a list of user IDs for upgrading the new version of the client software. The user's authority and access control authority in the white list and the organization list should be clear to ensure that only qualified users can perform related operations. Specifically, when the user ID of the receiving end is not on the white list, the user ID of the receiving end is compared and configured with the organization list to determine whether the user ID of the receiving end is on the organization list. The receiving end user ID on the organization list can download and update the installation package of the new version of the client software. The user ID and list information should be stored in encrypted form, and encryption measures should also be taken during the transmission process. If the user ID of the receiving end is not on the organization list, no upgrade information will be returned.
[0061] Step S40: If the user ID of the receiving end is in the list of organizations, the old version of the client software is upgraded to the new version of the client software, and the old version of the client software and the new version of the client software belong to different architecture software.
[0062] It should be noted that the new version of the client software must be compatible with the current system environment, including checking the hardware and operating system requirements of the new version of the client software. In order to prevent problems during the upgrade process, a rollback mechanism should be prepared. If the installation of the new version of the client fails or serious problems occur, it can be quickly restored to the old version of the client to ensure that user services are not affected. Since the old version of the client software and the new version of the client software belong to different architectures, a detailed data migration strategy needs to be formulated. Before the old version of the client software is officially upgraded, the installation and operation of the new version of the client software should be tested in different system environments and hardware configurations, and sufficient testing and verification should be carried out; during the upgrade process of the old version of the client software, detailed log information should be recorded, and all operations related to the list and permissions should be logged to facilitate subsequent audits and troubleshooting. The log should contain detailed information such as operation time, operator, and operation content. By monitoring the system status and user feedback, it is helpful to discover and solve problems in a timely manner.
[0063] In this embodiment, by introducing update threads, automatic detection technology, a grayscale mechanism for update services, silent uninstall scripts and data migration strategies, the problem of users manually installing new versions of client software and uninstalling old versions of client software is effectively solved, thereby improving the advancement speed and user experience of client software upgrades of different architectures, and reducing hardware costs and maintenance costs.
[0064] Further, refer to Figure 2 The second embodiment of the software update method of this application provides a flow chart based on the above Figure 2 The embodiment shown further refines the "detection of whether the old version of the client software can be upgraded" in step S10, including steps A11 to A12:
[0065] Step A11: After the old version of the client software is started, an update thread is run to detect whether the architecture of the current client software is compatible with the new version of the client software. The update thread updates the new version of the client software with different architectures by sleeping for a random time.
[0066] It should be noted that the update thread first detects the architecture of the current client software and compares it with the architecture of the new version of the client software. If the current client software is different from the new version of the client software architecture, the update thread will request to download the new version of the client software. The update thread uses a random sleep time method when processing download requests for new versions of client software with different architectures. Specifically, when the update thread enters the running state, it first sleeps for a random time within a preset time period to prevent users from starting the client in a concentrated manner during peak hours to impact the update service. Specifically, after the update thread is started, the architecture information of the current client software is obtained as x86. The update thread compares the architecture information (x86) of the current client software with the architecture information (ARM) of the new version of the client software. Since the architectures of the new and old versions of the client software are different, the update thread determines that an architecture upgrade is required. When the update thread enters the running state, it first sleeps for a random time of half an hour. Assuming that the randomly generated sleep time is 25 minutes, after 25 minutes, the update thread requests to download the new version of the client software, obtains the download link, installation script and other related information of the new version of the client software, and after the download is completed, the update thread executes the installation script of the new version of the client software.
[0067] Step A12: After the old version of the client software is started, it is detected whether the operating system environment of the receiving end meets the upgrade conditions. If yes, it is determined that the operating system environment of the receiving end meets the upgrade conditions.
[0068] It should be noted that when all detection items of the operating system environment of the receiving end meet the preset conditions, the judgment result is "meet the upgrade conditions", and if any item of the operating system environment of the receiving end does not meet the preset conditions, the judgment result is "does not meet the upgrade conditions". The preset conditions include at least one of the operating system version is not lower than a certain specific version, the system architecture of the current client software is different from the architecture of the new version of the client software, the system patch status meets the requirements, and the hardware configuration meets the minimum requirements. The operating system environment of the receiving end can obtain information such as the operating system type, version, architecture, patch status, and hardware configuration through the system API.
[0069] In this embodiment, by updating the random sleep time of the thread, the system API obtains the operating system environment information of the receiving end, thereby overcoming the download congestion problem of the new version of the client software during peak hours and the upgrade judgment problem of the current client software, effectively detecting whether the receiving end operating system environment meets the upgrade conditions, and guiding the user to perform corresponding update operations based on the detection results.
[0070] Further, refer to Figure 3 The third embodiment of the software update method of the present application provides a flow chart based on the above Figure 3The embodiment shown further refines the step S20 of "determining whether the user ID of the receiving end is in the whitelist", including steps A21 to A22:
[0071] Step A21: Obtain server upgrade configuration information;
[0072] It should be noted that the server upgrade configuration information usually includes the target version of the client software upgrade, upgrade path, upgrade time window, grayscale mechanism configuration, version architecture, etc., where the configuration information can be obtained through a configuration file, database or remote configuration center.
[0073] Step A22: querying the user ID of the receiving end through the grayscale mechanism of the update service according to the server upgrade configuration information, and determining whether the user ID of the receiving end is in the whitelist;
[0074] It should be noted that according to the grayscale mechanism of the update service, the user ID of the receiving end is queried. The user ID of the receiving end can be obtained through user login information, device information or other identifiers. The user ID of the receiving end is usually a unique identifier generated when the user logs in or registers. Before determining whether the user ID of the receiving end is in the whitelist, it is necessary to ensure the accuracy and uniqueness of the user ID to avoid security vulnerabilities caused by duplicate or incorrect user IDs. The whitelist needs to be updated regularly, and the management of the whitelist should be the responsibility of the system administrator or authorized personnel to ensure that only legitimate users can be added to the whitelist; the user ID of the queried receiving end is compared with the user ID of the receiving end in the whitelist; specifically, the ID of the VIP user can be written into the whitelist. If the user ID is not in the whitelist, the user is allowed to upgrade. If the user is in the whitelist, the upgrade is temporarily not performed.
[0075] In this embodiment, by updating the grayscale mechanism and whitelist of services, the scope of server upgrades can be effectively controlled to ensure the stability and reliability of the upgrade process.
[0076] To help understand the implementation process of the software update method obtained by combining this embodiment with the above embodiments, please refer to Figure 4 , Figure 4 A brief flowchart of a fourth embodiment of a software update method is provided. Specifically, the grayscale mechanism of the update service is refined, including steps A101 to A105:
[0077] Step A101: The old version of the client software initiates a request for an update service; when the old version of the client software is started, an update request is automatically initiated, and the request includes client version information and a user ID;
[0078] Step A102: Determine whether the user ID of the receiving end is in the whitelist; after receiving the request, the server queries the whitelist database, and if the user ID of the receiving end is not in the whitelist, the server marks the request as medium priority;
[0079] Step A103: Obtain the user organization list; if the user ID is not in the whitelist, the server queries the user information database;
[0080] Step A104: Determine whether the request is in the organization list; the server queries the organization list database, and if the organization to which the medium-priority user belongs is in the list allowed to be updated, the server marks the request as high priority;
[0081] Step A105: Return the latest upgrade package information or return no upgrade information; the server generates a response containing the latest upgrade package information based on the judgment result of the priority and the list of organizations. The server generates a response containing the latest upgrade package information based on the judgment result of the priority and the list of organizations.
[0082] It should be noted that the old version of the client software can send an update request to the update server via HTTP request; for the user ID of the receiving end that is not in the whitelist, the server marks the request as low priority and returns no upgrade information.
[0083] In this embodiment, the grayscale mechanism of the update service can effectively control the scope and priority of the update, ensuring that key users and organizations have priority in obtaining the update service while avoiding excessive pressure on the server. This not only improves the efficiency of client software updates, but also enhances the stability and security of the system.
[0084] To help understand the implementation process of the software update method obtained by combining this embodiment with the above-mentioned embodiment 1, please refer to Figure 5 , Figure 5 A brief flowchart of a fifth embodiment of a software updating method is provided. Specifically, the upgrade of the new and old client software is refined, including steps A201 to A209:
[0085] Step A201: Detecting that a new version of the client software can be upgraded;
[0086] Step A202: download the installation package;
[0087] Step A203: Prompt the user to upgrade;
[0088] Step A204: Execute the new version of the client software installation script;
[0089] Step A205: Install the new version of client software;
[0090] Step A206: Run the new version of the client software and exit the current client software;
[0091] Step A207: Start the new version of client software;
[0092] Step A208: Detect whether there is an old version of client software;
[0093] Step A209: If there is an old version of the client software, uninstall it; otherwise, terminate the upgrade.
[0094] Specifically, when the current client software is started, the upgrade detection module is automatically run to obtain the latest version information by communicating with the server. If a new version is detected to be available and the current system environment is compatible, it is marked as "available for upgrade"; during the download of the installation package of the new version of the client software, a download progress bar can be displayed and a download log can be recorded; after the download is complete, the client software pops up a prompt window to inform the user that a new version is available and ask whether to upgrade immediately, wherein the prompt window includes two options: "upgrade now" and "remind later"; after the user selects "upgrade now", the client software executes a pre-prepared installation script, which includes steps such as decompressing the installation package, checking the system environment, and preparing the installation directory; after the installation script is executed, the new version of the client software begins to be installed; the installation During the installation process, the installation progress bar is displayed and the installation log is recorded; after the new version of the client software is installed, the new version of the client software is automatically started and the current old version of the client software is exited; during the startup process, the startup progress bar is displayed and the startup log is recorded; after the new version of the client software is started, it automatically performs initialization configuration, including loading user settings, checking the system environment, connecting to the server, etc., and automatically detects whether there is an old version of the client software in the system; the detection method includes scanning the installation directory, checking registry entries, etc.; if the old version of the client software is detected, the new version of the client software automatically executes the uninstall script to uninstall the old version of the client software. During the uninstallation process, the uninstallation progress bar is displayed and the uninstallation log is recorded; after the uninstallation is completed, the upgrade process ends. If the old version of the client software is not detected, the upgrade process ends directly.
[0095] In this embodiment, a smooth upgrade of the old and new client software can be achieved, ensuring that users can smoothly transition to the new version of the client software and remove the old version of the client software, avoiding the existence of multiple versions of the client software in the system and manual deletion of the old version of the client software, which is a cumbersome and error-prone process and has a poor user experience.
[0096] To help understand the implementation process of the software update method obtained by combining this embodiment with the above-mentioned embodiment 1, please refer to Figure 6 , Figure 6 A brief flow chart of a sixth embodiment of a software update method is provided. Specifically, the data migration of new and old client software is refined as follows:
[0097] Step 301: Detect that the current client software has been upgraded;
[0098] Step 302: Collect and organize all the data to be migrated locally at the receiving end;
[0099] Step 303: encrypting the sorted data;
[0100] Step 304: Save the encrypted data file to a specific path of the local disk;
[0101] Step 305: When the new version of the client software is run for the first time, the locally stored encrypted data file is automatically read;
[0102] Step 306: decrypting the read encrypted data file;
[0103] Step 307: import the decrypted data into the corresponding position of the new version of the client software;
[0104] Step 308: Confirm that the data migration is successful and clean up temporary files.
[0105] Specifically, when the client software automatically or the user manually triggers the upgrade detection and confirms that a new version of the client software is available, the system records the upgrade information and prepares to enter the data migration process. By scanning the local storage, it identifies the data files and configuration information that need to be migrated, and generates a list containing all the data to be migrated; uses high-intensity encryption algorithms such as AES-256 to encrypt the data and generate an encrypted data file; saves the encrypted file to a predefined directory, such as C:\AppData\Local\Data, and generates an encrypted data file on the local disk; when the new version of the client software is started, it automatically detects and reads the encrypted file in a specific path; uses the same key and algorithm as used for encryption to decrypt the data to obtain the decrypted original data; imports the decrypted data into the database or configuration file of the new version of the client software according to the data type and structure. At this time, the new version of the client software contains the complete configuration and status of the migrated data; verifies whether the imported data is complete and correct, deletes temporary encrypted files and logs, and completes the migration.
[0106] In this embodiment, by using a high-strength encryption algorithm and an error handling mechanism, the local data of the receiving end can be effectively and securely migrated to the new version of the client software, ensuring the integrity and security of the data.
[0107] It should be noted that the above examples are only used to understand the present application and do not constitute a limitation on the software update method of the present application. More simple transformations based on this technical concept are all within the scope of protection of the present application.
[0108] In addition, an embodiment of the present application also provides a computer-readable storage medium having computer-readable program instructions (ie, computer programs) stored thereon, and the computer-readable program instructions are used to execute the software updating method in the above embodiment.
[0109] The computer-readable storage medium provided in the present application may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems or devices, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, system or device. The program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0110] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0111] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0112] The modules involved in the embodiments described in this application may be implemented by software or hardware, wherein the name of the module does not constitute a limitation on the unit itself in some cases.
[0113] The readable storage medium provided by the present application is a computer-readable storage medium, which stores computer-readable program instructions (i.e., computer programs) for executing the above-mentioned software update method, and can solve the technical problem of relying on users to manually install the new version and uninstall the old version when updating clients of different architectures, and performing data migration by requesting the server to upload and download data. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided by the present application are the same as the beneficial effects of the software update method provided by the above-mentioned embodiment, and will not be repeated here.
[0114] In addition, the present application also provides a computer program product, including a computer program, which implements the steps of the above-mentioned software updating method when executed by a processor.
[0115] The computer program product provided by the present application can solve the technical problem of relying on users to manually install the new version and uninstall the old version when updating clients of different architectures, and performing data migration by requesting the server to upload and download data. Compared with the prior art, the beneficial effects of the computer program product provided by the present application are the same as the beneficial effects of the software update method provided by the above embodiment, and will not be elaborated here.
[0116] The above descriptions are only some embodiments of the present application, and are not intended to limit the patent scope of the present application. All equivalent structural changes made using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect applications in other related technical fields are included in the patent protection scope of the present application.
Claims
1. A software updating method, characterized in that: The method is applied to a receiving end, and the method comprises: After the old version of the client software is started, detect whether the old version of the client software can be upgraded; If the old version of the client software can be upgraded, determining whether the user ID of the receiving end is in the whitelist; If the user ID of the receiving end is not in the whitelist, determining whether the user ID of the receiving end is in the organization list; If the user ID of the receiving end is in the list of organizations, the old version of the client software is upgraded to the new version of the client software, and the old version of the client software and the new version of the client software belong to different architecture software.
2. The method according to claim 1, characterized in that After the old version of the client software is started, the step of detecting whether the old version of the client software can be upgraded includes: After the old version of the client software is started, it is detected whether the operating system environment of the receiving end meets the upgrade conditions. If yes, it is determined that the operating system environment of the receiving end meets the upgrade conditions.
3. The method according to claim 2, characterized in that The step of detecting whether the old version of the client software can be upgraded also includes: After the old version of the client software is started, an update thread is run to detect whether the architecture of the current client software is compatible with the new version of the client software. The update thread updates the new version of the client software with different architectures by sleeping for a random time.
4. The method according to claim 1, characterized in that The step of determining whether the user ID of the receiving end is in the whitelist comprises: Get server upgrade configuration information; According to the server upgrade configuration information, the user ID of the receiving end is queried through the grayscale mechanism of the update service to determine whether the user ID of the receiving end is in the whitelist.
5. The method according to claim 4, characterized in that After the step of querying the user ID of the receiving end through the grayscale mechanism of the update service according to the server upgrade configuration information and determining whether the user ID of the receiving end is in the whitelist, the following step further comprises: According to the server upgrade configuration information, a list of organizations is obtained, and it is determined whether the user ID of the receiving end which is not in the white list is in the list of organizations.
6. The method according to claim 1, characterized in that The step of upgrading the old version of the client software to the new version of the client software includes: According to the server upgrade configuration information, returning the upgrade package information about the new version of the client software to the receiving end, and downloading the installation package of the new version of the client software; Install the installation package of the new version of the client software according to the server update script; When the new version of the client software is run for the first time, executing the silent uninstallation script of the receiving end; The old version of the client software is uninstalled according to the silent uninstall script of the receiving end.
7. The method according to claim 6, characterized in that Before the step of downloading the installation package of the new version of the client software, the step also includes: Check whether there is an installation package of the same version of the new version of the client software locally on the receiving end. If so, directly prompt the receiving end to update.
8. The method according to claim 7, characterized in that: The step of upgrading the old version of the client software to the new version of the client software also includes: Acquire the data to be migrated of the old version of the client software according to the local storage of the receiving end; Converting the data to be migrated of the old version of the client software into a pre-set format and encrypting it; Saving the encrypted data to be migrated of the old version of the client software to a file in a specific path in the local storage of the receiving end; When the new version of the receiving end client software is run for the first time, the file in the specific path is automatically detected and read; The files under the specific path are decrypted by a decryption algorithm, and the data to be migrated is imported into the new version of the client software.
9. A storage medium, characterized in that: The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the software updating method according to any one of claims 1 to 8 are implemented.
10. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the steps of the software updating method according to any one of claims 1 to 8 are implemented.