A software management method, basic software management platform, device and storage medium
Through the software management method of the basic software platform, the problem of cumbersome operations of users when installing multiple software is solved, cross-platform related software installation is realized, and user experience is improved.
Patent Information
- Application Number
- CN202111433851.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-29
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2041-11-29
AI Technical Summary
When users select and install multiple software, the operation is cumbersome and the user experience is poor, making it difficult to improve the experience of software applications.
Provide a software management method, which can receive associated software installation requests, obtain installation information through the basic software platform, including the basic software server and client, and realize cross-platform installation through the downloader.
Reduce the user's operation volume and improve the experience of user application software. The terminal device only needs to interact with the basic software server to install the required software without interacting with the associated software server.
Smart Images

Figure CN114090030B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and more specifically, to a software management method, a basic software management platform, a device and a storage medium. Background Art
[0002] With the development of computer technology, users can choose to use more and more software. For example, users can select the antivirus software they need from multiple antivirus software to install and apply it, and select the security detection software they need from multiple security detection software to install and apply it, etc. However, in this process, users need to download and install each required software independently, which is cumbersome and the user experience is poor.
[0003] In summary, how to improve the user experience of application software is a problem that needs to be solved urgently by those skilled in the art. Summary of the invention
[0004] The purpose of this application is to provide a software management method, which can solve the technical problem of how to improve the user experience of application software to a certain extent. This application also provides a basic software management platform, equipment and computer-readable storage medium.
[0005] In order to achieve the above objectives, in a first aspect, the present application provides a software management method, which is applied to a basic software platform, wherein the basic software platform includes a basic software server and a basic software client, and the method includes:
[0006] The basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client;
[0007] The basic software server obtains the associated software client installation information based on the associated software installation request;
[0008] The basic software server returns the associated software client installation information to the basic software client;
[0009] The basic software client calls a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0010] Preferably, the basic software server obtains the associated software client installation information based on the associated software installation request, including:
[0011] The basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request;
[0012] The basic software server receives the associated software client installation information returned by the associated software server.
[0013] Preferably, before the basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request, the method further includes:
[0014] The basic software server receives a linkage authorization code input by a user through a management platform, wherein the linkage authorization code is generated according to a communication address of the associated software server;
[0015] The basic software server verifies the linkage authorization code, and if the verification passes, extracts the communication address of the associated software server from the linkage authorization code.
[0016] Preferably, the linkage authorization code is also used to reflect "encryption key and decryption key information when communicating with the associated software server".
[0017] Preferably, before the step of the basic software client calling a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the method further includes:
[0018] The basic software client detects whether the associated software client has been installed in the terminal device;
[0019] Accordingly, the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, including:
[0020] When it is detected that the associated software client is not installed, the basic software client calls a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0021] Preferably, the basic software client detects whether the associated software client has been installed in the terminal device, including:
[0022] The basic software client calls the middle platform component, and detects through the middle platform component whether the associated software client has been installed in the terminal device; the middle platform component is used to implement the intersection function of the basic software client and the associated software client, and the intersection function includes: a function of detecting whether the client is installed.
[0023] Preferably, the downloader is integrated into the middle platform component, and the middle platform component is integrated into both the basic software client and the associated software client.
[0024] Preferably, after the step of the basic software client calling the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the method further includes:
[0025] The basic software client and the associated software client are displayed in a unified tray and / or unified interface.
[0026] In a second aspect, the present application provides a basic software platform, the basic software platform comprising a basic software server and a basic software client;
[0027] The basic software server is used to receive an associated software installation request, wherein the associated software installation request is used to request the installation of an associated software client; based on the associated software installation request, obtain the associated software client installation information; and return the associated software client installation information to the basic software client;
[0028] The basic software client is used to call a downloader, so as to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0029] In a third aspect, the present application provides an electronic device, including:
[0030] Memory for storing computer programs;
[0031] A processor is used to implement the steps of any of the software management methods described above when executing the computer program.
[0032] In a fourth aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of any of the software management methods described above are implemented.
[0033] The present application provides a software management method, which is applied to a basic software platform. The basic software platform includes a basic software server and a basic software client. The basic software server receives an associated software installation request, and the associated software installation request is used to request the installation of an associated software client; the basic software server obtains the associated software client installation information based on the associated software installation request; the basic software server returns the associated software client installation information to the basic software client; the basic software client calls a downloader to realize the installation of the associated software client corresponding to the associated software client installation information to the terminal device through the downloader. In the present application, after obtaining the associated software installation request, the basic software server can obtain the associated software client installation information and return the associated software client installation information to the basic software client. In this way, the basic software client can install the associated software client corresponding to the associated software client installation information to the terminal device based on the downloader, realizing the cross-platform installation of the software. In this way, the terminal device only needs to interact with the basic software server to install the required associated software client, and no longer needs to interact with the associated software server, which reduces the user's operation amount and improves the user's experience of the application software. The present application provides a basic software platform, device and computer-readable storage medium that also solves the corresponding technical problems. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] 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, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
[0035] Figure 1 A first flow chart of a software management method provided in an embodiment of the present application;
[0036] Figure 2 A second flow chart of a software management method provided in an embodiment of the present application;
[0037] Figure 3 A third flow chart of a software management method provided in an embodiment of the present application;
[0038] Figure 4 This is a schematic diagram of generating a linkage authorization code;
[0039] Figure 5 This is a schematic diagram for inputting the linkage authorization code;
[0040] Figure 6 This is a schematic diagram of linkage confirmation based on the linkage authorization code;
[0041] Figure 7 A fourth flow chart of a software management method provided in an embodiment of the present application;
[0042] Figure 8 A fifth flow chart of a software management method provided in an embodiment of the present application;
[0043] Fig. 9 is a first schematic diagram of a software tray;
[0044] Fig.10 is a second schematic diagram of the software tray;
[0045] Fig.11 It is a data interaction diagram based on resource response between two softwares;
[0046] Fig.12 A schematic diagram of the structure of a basic software platform provided in an embodiment of the present application;
[0047] Fig.13 The figure is a schematic diagram of the hardware structure of the electronic device according to the embodiment of the present invention. DETAILED DESCRIPTION
[0048] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0049] See also Figure 1 , Figure 1 A first flow chart of a software management method provided in an embodiment of the present application.
[0050] A software management method provided in an embodiment of the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, and the method may include the following steps:
[0051] Step S101: the basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client.
[0052] In actual applications, the basic software server in the basic software platform can first receive an associated software installation request, and the associated software installation request is used to request the installation of an associated software client, that is, a user can use the associated software installation request to trigger the operation of installing the associated software client, wherein the specific information of the associated software installation request can be determined according to actual needs, for example, the associated software installation request may include an associated software identifier, an installation request identifier, etc.
[0053] It should be noted that the associated software installation request can be sent by the management platform corresponding to the basic software platform to the basic software server, or by the basic software client automatically detecting the terminal device environment and sending it to the basic software server, or by the basic software client sending it to the basic software server after receiving a user instruction, etc., that is, the way in which the basic software server obtains the associated software installation request can be determined according to actual needs, and this application does not make specific restrictions here. In addition, the types of basic software and associated software can be determined according to actual needs, for example, the basic software and associated software can be security detection software, chat software, learning software, etc. with complementary functions, and this application does not make specific restrictions here.
[0054] In specific application scenarios, the management platform can also determine the associated software installation request based on the access control rules. That is, the software required for the terminal device to perform a certain function can be pre-set and converted into the corresponding access control rules. For example, the terminal device needs to install anti-virus software and security detection software before accessing the Internet. The access control rule is to install the anti-virus software and security detection software before the terminal device accesses the network. In this way, when the terminal device accesses the network, if it does not install the anti-virus software and security detection software in accordance with the access control rules, it will automatically generate an associated software installation request for installing the anti-virus software and security detection software according to the access control rules, and install the required anti-virus software and security detection software based on this, so that the management platform can control the software required to be installed by the terminal device by simply controlling the access control rules.
[0055] It should be noted that when it is necessary to manage the software installation process of multiple terminal devices, if each terminal device needs to install associated software, the user can directly set a global policy for managing the terminal devices so that all terminal devices install the associated software. If only some terminal devices need to install associated software, the user can set a user policy for managing these terminal devices so that only these terminal devices install the associated software, etc. This application does not make specific limitations here.
[0056] Step S102: the basic software server obtains the associated software client installation information based on the associated software installation request.
[0057] In actual applications, after obtaining the associated software installation request, the basic software server can obtain the associated software client installation information based on the associated software installation request. It should be noted that the associated software client installation information is used to install the associated software client on the terminal device, and its specific information can be determined according to actual needs, such as the associated software client installation information can be the download address of the associated software.
[0058] Step S103: the basic software server returns the associated software client installation information to the basic software client.
[0059] Step S104: the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0060] In actual applications, after the basic software server obtains the installation information of the associated software client, it can return the installation information of the associated software client to the basic software client. Correspondingly, the basic software client can call the downloader to install the associated software client corresponding to the installation information of the associated software client to the terminal device through the downloader. This process can refer to the existing software installation process and will not be repeated here. It should be noted that after the associated software client is installed on the terminal device, it can be connected to the associated software server based on the access address, etc.
[0061] In addition, in order to prevent users from downloading the "Downloader" additionally, the basic software client can directly inherit the "Downloader", so that when a download task needs to be executed, the basic software client can directly call the Downloader to implement the installation function.
[0062] A software management method provided by the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, the basic software server receives an associated software installation request, the associated software installation request is used to request the installation of an associated software client; the basic software server obtains the associated software client installation information based on the associated software installation request; the basic software server returns the associated software client installation information to the basic software client; the basic software client calls a downloader to realize the installation of the associated software client corresponding to the associated software client installation information to the terminal device through the downloader. In the present application, after obtaining the associated software installation request, the basic software server can obtain the associated software client installation information and return the associated software client installation information to the basic software client, so that the basic software client can install the associated software client corresponding to the associated software client installation information to the terminal device based on the downloader, realizing the cross-platform installation of the software, so that the terminal device only needs to interact with the basic software server to install the required associated software client, and no longer needs to interact with the associated software server, which reduces the user's operation amount and improves the user's experience of the application software.
[0063] See also Figure 2 , Figure 2 A second flow chart of a software management method provided in an embodiment of the present application.
[0064] A software management method provided in an embodiment of the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, and the method may include the following steps:
[0065] Step S201: the basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client.
[0066] Step S202: the basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request.
[0067] Step S203: the basic software server receives the associated software client installation information returned by the associated software server.
[0068] In actual applications, considering that each software has its own server, that is, the associated software also has its own associated software server, in order to facilitate operation and maintenance, the installation information of each software client is set in the corresponding server. Therefore, in the process of the basic software server obtaining the associated software client installation information based on the associated software installation request, in order to facilitate the acquisition of the associated software client installation information, the basic software server can request the associated software server to obtain the associated software client installation information based on the associated software installation request; the basic software server receives the associated software client installation information returned by the associated software server.
[0069] Step S204: the basic software server returns the associated software client installation information to the basic software client.
[0070] Step S205: the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0071] See also Figure 3 , Figure 3 A third flow chart of a software management method provided in an embodiment of the present application.
[0072] A software management method provided in an embodiment of the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, and the method may include the following steps:
[0073] Step S301: the basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client.
[0074] Step S302: The basic software server receives the linkage authorization code input by the user through the management platform, and the linkage authorization code is generated according to the communication address of the associated software server.
[0075] Step S303: the basic software server verifies the linkage authorization code, and if the verification passes, extracts the communication address of the associated software server from the linkage authorization code.
[0076] In actual applications, before the basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request, in order to avoid malicious servers attacking the associated software server, the basic software server can also receive the linkage authorization code entered by the user through the management platform, and the linkage authorization code is generated according to the communication address of the associated software server; accordingly, the basic software server verifies the linkage authorization code, and if the verification passes, the communication address of the associated software server is extracted from the linkage authorization code, so as to subsequently communicate with the associated software server based on the communication address of the associated software server. In this way, a server that cannot obtain the linkage authorization code cannot communicate with the associated software server, and a counterfeit linkage authorization code will also fail to pass the verification, thereby ensuring the security of the associated software server.
[0077] In specific application scenarios, in order to ensure the information security between the basic software server and the associated software server, the linkage authorization code is also used to reflect the "encryption key and decryption key information when communicating with the associated software server", so that the basic software server and the associated software server can exchange information based on the encryption key and decryption key information. It should be noted that the encryption key and the decryption key can be the same or different, and the encryption method and decryption method can also be determined according to actual needs, and this application does not make specific restrictions here.
[0078] In specific application scenarios, the associated software server can generate a linkage authorization code based on its own identification and IP (Internet Protocol) address. The process can be found in Figure 4 ; and in the process of establishing mutual trust communication with the associated software server based on the linkage authorization code, the basic software server can enter the linkage authorization code to obtain the identification and IP address of the associated software server, and then enter its own identification and IP address to establish mutual trust communication with the associated software server, etc. The process can be referred to Figure 5 and Figure 6 .
[0079] Step S304: the basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request.
[0080] Step S305: the basic software server receives the associated software client installation information returned by the associated software server.
[0081] Step S306: the basic software server returns the associated software client installation information to the basic software client.
[0082] Step S307: the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0083] See also Figure 7 , Figure 7 A fourth flow chart of a software management method provided in an embodiment of the present application.
[0084] A software management method provided in an embodiment of the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, and the method may include the following steps:
[0085] Step S401: the basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client.
[0086] Step S402: the basic software server obtains the associated software client installation information based on the associated software installation request.
[0087] Step S403: the basic software server returns the associated software client installation information to the basic software client.
[0088] Step S404: the basic software client may also detect whether the associated software client has been installed in the terminal device.
[0089] Step S405: when it is detected that the associated software client is not installed, the basic software client calls the downloader, so as to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0090] In actual applications, in order to avoid repeatedly installing the associated software client on the terminal device, before the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information on the terminal device through the downloader, the basic software client can also detect whether the associated software client has been installed in the terminal device; accordingly, when the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information on the terminal device through the downloader, the basic software client can call the downloader when it is detected that the associated software client is not installed, so as to install the associated software client corresponding to the associated software client installation information on the terminal device through the downloader.
[0091] In a specific application scenario, during the process of the basic software client detecting whether the associated software client has been installed in the terminal device, the basic software client can call the middle platform component to detect whether the associated software client has been installed in the terminal device through the middle platform component; the middle platform component is used to implement the intersection functions of the basic software client and the associated software client, and the intersection functions include: the function of detecting whether the client is installed.
[0092] For basic software clients and associated software clients, they often need to be installed in association with each other. For example, if the terminal has installed the ac client and needs to install the edr client, the ac client is the basic software client; however, if the terminal has installed the edr client and needs to install the ac client additionally, the edr client is the basic software client. Therefore, "detecting whether the other party is installed" belongs to the intersection function of multiple software clients. In order to avoid repeated development, this function can be directly used as a "middle platform component", so that each client only needs to implement its own unique functions. In addition, in addition to the function of "detecting whether the other party is installed", the middle platform component can also integrate other intersection functions. For example, when multiple clients need to perform security detection, the security detection function can be used as part of the middle platform component. In addition, the "downloader" mentioned above is also an associated function, and the downloader can be used as part of the middle platform component.
[0093] In addition, in order to prevent users from downloading the middle platform component additionally, the middle platform component can be integrated into the basic software client, that is, the middle platform component is set in the basic software client. In this way, the terminal device only needs to download the basic software client, and then it can quickly install the associated software client with the help of the basic software client.
[0094] In addition, in specific application scenarios, considering the load pressure of terminal devices, etc., the process of downloading and installing related software of the middle-office components can also be controlled as needed. For example, by configuring the nginx resource restriction attributes to limit the number of concurrent software downloads and download rate control, to prevent a large amount of core network bandwidth of the terminal device from being occupied, etc., and when downloading resources, you can use breakpoint resumption, https (Hyper Text Transfer Protocol over Secure Socket Layer) download, etc., which are not specifically limited in this application.
[0095] See also Figure 8 , Figure 8 The fifth flow chart of a software management method provided in an embodiment of the present application.
[0096] A software management method provided in an embodiment of the present application is applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, and the method may include the following steps:
[0097] Step S501: the basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client.
[0098] Step S502: the basic software server obtains the associated software client installation information based on the associated software installation request.
[0099] Step S503: the basic software server returns the associated software client installation information to the basic software client.
[0100] Step S504: the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0101] Step S505: displaying the basic software client and the associated software client in a unified tray and / or unified interface.
[0102] In actual applications, in order to facilitate the terminal device to manage multiple software clients such as the basic software client and the associated software client, after the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the basic software client and the associated software client can also be displayed in a unified tray and / or unified interface. In this way, there is only one software tray or software interface on the terminal device, which can make the desktop of the terminal device more organized and simple, and further improve the user experience.
[0103] In a specific application scenario, in the process of displaying the basic software client and the associated software client in a unified tray and / or unified interface, the management platform can select the main client from the basic software client and the associated software client, and then use the tray or interface of the main client as the main client, and combine the trays or interfaces of other clients to generate a unified tray or unified interface. For example, if the management platform selects the basic software client as the main client, the tray or interface of the associated software client can be integrated into the tray or interface of the basic software client to generate a unified tray or unified interface. In addition, the generation method of the tray or interface can be pre-specified, such as setting the tray priority of the software client, and giving priority to the tray or interface of the software client with a high priority to generate a unified tray or unified interface. For example, if the tray priority of the associated software client is higher, the tray or interface of the basic software client can be integrated into the tray or interface of the associated software client to generate a unified tray or unified interface. For ease of understanding, assuming that the basic software client is security detection software, the associated software client is Internet authentication software, and the tray of the basic software client is the main one, the style of the unified tray can be as follows Fig. 9 As shown in the left picture, the "Internet authentication" function is integrated on the tray of the security detection software; in addition, if the VPN client integrates the functions of security detection software and Internet authentication software, you can Fig.10 As shown on the left, in the upper right corner of the VPN client's login function tray, icons for "security detection software" and "online authentication software" are added, such as Fig.10 As shown in the picture on the right, after logging in, the tray is integrated with access controls for "Terminal Detection Response" and "Network Authentication Assistant", and users can click to enter different software clients respectively.
[0104] It should be noted that in the process of using a unified tray to manage multiple software, data interaction may be required between multiple software, and the interaction method can be determined according to actual needs. For example, multiple software can interact with each other based on resource request response, etc. In this process, corresponding programs can be set in each software to perform the required functions, such as setting up a communication agent service program in the software, etc., and corresponding data interfaces can be set for the software, such as setting up a user-side interface library, eaio_resource_init interface, eaio_resource_define interface, eaio_resource_deliver interface, eaio_resource_done interface, etc.
[0105] The communication proxy service program runs as an independent binary program singleton, and is started and guarded when any software calls the eaio_resource_init interface. When other software calls the eaio_resource_init interface, it can detect that the communication proxy program has been executed and will not be started again, and the process exit will be captured internally so that it can be started automatically when necessary; and other software will create a private long connection (through a named pipe or domain socket) to the communication proxy program from the interface when calling the eaio_resource_init interface. The communication proxy program is responsible for connection security verification, maintaining the connection / module relationship, and notifying each software module of some internal If a new module is connected or a module is disconnected, it can be broadcasted through an internal resource in a standard way, and other software can perform corresponding processing through these predefined notifications, such as forwarding communication data between modules; in addition, in subsequent applications, when the software is connected to a third-party manufacturer, the communication agent program can also be expanded to develop a standard restful interface based on the http protocol; it should be noted that the communication agent service program can also authenticate the identity of the connected peer program, such as obtaining the process information of the connected peer, and ensuring the legitimacy of the peer identity by verifying the process signature, etc. The function of the communication agent service program can be flexibly determined according to actual needs, and this application does not make specific limitations here;
[0106] Among them, the user-side interface library is embedded into the software as a dynamic library for execution, providing a basic interaction model interface based on resource definition and request for software to call;
[0107] Among them, the eaio_resource_init interface is responsible for some initialization work, defining the module name and connecting to the communication proxy service program; in addition, a new thread can be created internally to execute subsequent internal logic codes related to communication / resource requests, etc., to avoid pollution and affecting the execution of the original thread context code of the software;
[0108] Among them, the eaio_resource_define interface defines an externally accessible resource for the software, and the core principle of the internal implementation of resource management can be to use an idea similar to a dictionary tree structure to manage the entire resource tree, and each subpath on the resource path is mounted on this dictionary tree as a node; in addition, since the entire operating environment is in a multi-threaded context, the eaio_resource_define interface will construct a data structure instance internally and then hand it over to the software management main thread through lock-free thread communication to perform specific data operations and maintenance, so there is no need to worry about the performance and blocking of the code in the user thread context on the calling side; furthermore, the core implementation of the resource management main thread is to construct the information as a tree node and mount it on the appropriate leaf node in the tree. The implementation principle is very simple, so there is no need to worry about the existence of complex internal logic affecting the overall operating efficiency of the process; it should be noted that the software in this application does not provide undef and other anti-registration interfaces, because the anti-registration interface will make the internal implementation complicated;
[0109] Among them, the eaio_resource_deliver interface is used to request a specified resource of a specified module, and can also request resources defined by its own module; the core of its internal implementation is mainly to forward data to another program module through the proxy server. After receiving the resource request, the peer module mainly queries the dictionary tree through the requested path, and then calls the resource response function of the leaf node of the path. The execution context of the response function is in the thread created inside the framework; in addition, if the code implementation of the resource response function implemented on the user side has a long-term blockage or long loop, it will not affect the basic scheduling, because the internal execution of the user-side implementation function is uniformly scheduled through the thread pool; after the function is executed, the execution result is sent to the communication proxy service program, which is responsible for forwarding the response result back to the module where the request comes from, and the source module triggers the call result response function to process the request response result by the user; it should be said that the eaio_resource_deliver interface is also handed over to the management main thread for specific data operation and maintenance through lock-free thread communication after constructing a data structure instance, so there is no need to worry about the internal existence affecting the program performance logic when calling the eaio_resource_deliver interface frequently in the software business code;
[0110] Among them, the eaio_resource_done interface is used in asynchronous scenarios. Because during the software operation, there may be a user-defined resource response function that cannot return the processing result synchronously, and some additional asynchronous processes need to be performed to obtain the final response result. In this case, you can first return EAIO_RREQ_PENDING and other flags in the response function to inform the framework that the processing is not completed. When the user business is really completed, call the eaio_resource_done interface to inform the framework to reply to the previous user request. If the resource response function can directly process synchronously to obtain the response result, you can notify the instance object of the returned xmsg structure to tell the framework the response result, etc.
[0111] For ease of understanding, we now use the above threads and interfaces to Fig.11 The data interaction process between the two software is illustrated by example. Fig.11 In the above, the local process refers to a process in one software, and the peer process refers to a process in another software, and both software include the product line process space and the middle platform proxy service process (that is, the "middle platform component" mentioned above) space. The middle platform proxy server process space is also the corresponding process space in the middle platform component. The product line process space includes the user business thread context, resource definition and request management thread, resource delivery request processing and response result processing scheduling thread pool, and the middle platform proxy service process space includes the communication proxy service program. Then the data interaction process based on resource response between the two software can be as follows: Figure 8 As shown, the following steps are included:
[0112] The user service thread context of the local process calls the eaio_resource_init interface, and the resource definition and request management thread of the local process starts and guards the proxy service program of the local process. Correspondingly, the communication proxy service program of the local process starts the pipe server for listening;
[0113] The resource definition and request management thread of the local process initializes the resource management dictionary tree, creates the internal management main thread, initializes the thread communication structure, initializes the pipe client data, and connects the pipe server registration module information to the communication proxy service program of the local process. Correspondingly, the communication proxy service program of the local process manages the session module association information;
[0114] The user business thread context of the local process calls the eaio_resource_define interface for cross-thread communication to deliver the resource request to the resource definition and request management thread of the local process;
[0115] The resource definition and request management thread of the local process determines whether the resource delivery request requests this module. If the resource delivery request does not request this module, the resource delivery request is sent to the communication proxy service program of the local process. Correspondingly, the communication proxy service program of the local process forwards the resource delivery request to the resource definition and request management thread of the opposite process according to the request module. If the resource delivery request requests this module, the resource definition and request management thread of the local process executes the resource response function through thread pool scheduling. Correspondingly, the resource delivery request processing and response result processing scheduling thread pool of the local process processes according to the user-defined resource response function, and returns the response result to the resource definition and request management thread of the local process through cross-thread communication. The resource definition and request management thread of the local process then executes the resource reply processing function through thread pool scheduling. Finally, the resource delivery request processing and response result processing scheduling thread pool of the local process sends a message to the user business thread context of the local process to complete the resource delivery request.
[0116] The resource definition and request management thread of the peer process is scheduled to execute the resource response function through the thread pool. Correspondingly, the resource delivery request processing and response result processing scheduling thread pool of the peer process processes according to the user-defined resource response function, and returns the response result to the resource definition and request management thread of the peer process through cross-thread communication. The resource definition and request management thread of the peer process then executes the resource reply processing function through the thread pool scheduling. Finally, the resource delivery request processing and response result processing scheduling thread pool of the peer process sends a message to the user business thread context of the peer process to complete the resource delivery request.
[0117] See also Fig.12 , Fig.12 A schematic diagram of the structure of a basic software platform provided in an embodiment of the present application.
[0118] The embodiment of the present application provides a basic software platform, the basic software platform includes a basic software server 101 and a basic software client 102;
[0119] The basic software server 101 is used to receive an associated software installation request, where the associated software installation request is used to request the installation of an associated software client; based on the associated software installation request, obtain associated software client installation information; and return the associated software client installation information to the basic software client;
[0120] The basic software client 102 is used to call a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader.
[0121] The corresponding description of the basic software platform provided in this application can be found in the above embodiments and will not be repeated here.
[0122] Based on the hardware implementation of the above program modules and in order to implement the method of the embodiment of the present invention, the embodiment of the present invention further provides an electronic device, Fig.13 FIG. 1 is a schematic diagram of the hardware structure of an electronic device according to an embodiment of the present invention. Fig.13 As shown, the electronic equipment includes:
[0123] Communication interface 1, capable of exchanging information with other devices such as network devices;
[0124] The processor 2 is connected to the communication interface 1 to implement information exchange with other devices and is used to execute the software management method provided by one or more of the above technical solutions when running a computer program. The computer program is stored in the memory 3.
[0125] Of course, in actual application, the various components in the electronic device are coupled together through the bus system 4. It can be understood that the bus system 4 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 4 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, Fig.13 Various buses are labeled as bus system 4 .
[0126] The memory 3 in the embodiment of the present invention is used to store various types of data to support the operation of the electronic device. Examples of such data include: any computer program used to operate on the electronic device.
[0127] It can be understood that the memory 3 can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM, SyncLink Dynamic Random Access Memory), and direct RAM bus random access memory (DRRAM, Direct Rambus Random Access Memory).The memory 2 described in the embodiments of the present invention is intended to include but is not limited to these and any other suitable types of memories.
[0128] The method disclosed in the above embodiment of the present invention can be applied to the processor 2, or implemented by the processor 2. The processor 2 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 2 or the instruction in the form of software. The above processor 2 can be a general-purpose processor, a DSP, or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 2 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiment of the present invention. The general-purpose processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present invention, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in the memory 3. The processor 2 reads the program in the memory 3 and completes the steps of the above method in combination with its hardware.
[0129] When the processor 2 executes the program, the corresponding processes in the various methods of the embodiments of the present invention are implemented, which will not be described here for the sake of brevity.
[0130] In an exemplary embodiment, the embodiment of the present invention further provides a storage medium, namely a computer storage medium, specifically a computer readable storage medium, for example, including a memory 3 storing a computer program, and the above-mentioned computer program can be executed by a processor 2 to complete the steps of the above-mentioned method. The computer readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface storage, optical disk, or CD-ROM.
[0131] In the several embodiments provided in the present application, it should be understood that the disclosed devices, terminals and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0132] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the scheme of this embodiment.
[0133] In addition, all functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may be separately used as a unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0134] A person of ordinary skill in the art can understand that: all or part of the steps of implementing the above-mentioned method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium, which, when executed, executes the steps of the above-mentioned method embodiment; and the aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, disks or optical disks.
[0135] Alternatively, if the above-mentioned integrated unit of the present invention is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present invention can be essentially or partly reflected in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for an electronic device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.
[0136] For the description of the relevant parts of the software management system, device and computer-readable storage medium provided in the embodiment of the present application, please refer to the detailed description of the corresponding parts in the software management method provided in the embodiment of the present application, which will not be repeated here. In addition, the parts of the above-mentioned technical solutions provided in the embodiment of the present application that are consistent with the implementation principles of the corresponding technical solutions in the prior art are not described in detail to avoid excessive elaboration.
[0137] It should also be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.
[0138] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A software management method, characterized in that: Applied to a basic software platform, the basic software platform includes a basic software server and a basic software client, the method includes: The basic software server receives an associated software installation request, where the associated software installation request is used to request installation of an associated software client; The basic software server obtains the associated software client installation information based on the associated software installation request; wherein the associated software client installation information is a download address of the associated software; The basic software server returns the associated software client installation information to the basic software client; The basic software client calls a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader; Wherein, the basic software server obtains the associated software client installation information based on the associated software installation request, including: The basic software server receives a linkage authorization code input by a user through a management platform, wherein the linkage authorization code is generated according to a communication address of the associated software server; The basic software server verifies the linkage authorization code, and if the verification passes, extracts the communication address of the associated software server from the linkage authorization code; Based on the associated software installation request and the communication address, obtaining the associated software client installation information from the associated software server; Before the basic software client calls the downloader to implement the step of installing the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the step further includes: The basic software client detects whether the associated software client has been installed in the terminal device; Accordingly, the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, including: When it is detected that the associated software client is not installed, the basic software client calls a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader; The basic software client detects whether the associated software client has been installed in the terminal device, including: The basic software client calls the middle platform component, and detects whether the associated software client has been installed in the terminal device through the middle platform component; the middle platform component is used to implement the intersection function of the basic software client and the associated software client, and the intersection function includes: a function of detecting whether the client is installed; The downloader is integrated into the middle platform component, and the middle platform component is integrated into both the basic software client and the associated software client.
2. The software management method according to claim 1, characterized in that: The basic software server obtains the associated software client installation information based on the associated software installation request, including: The basic software server requests the associated software server to obtain the associated software client installation information based on the associated software installation request; The basic software server receives the associated software client installation information returned by the associated software server.
3. The software management method according to claim 1, characterized in that: The linkage authorization code is also used to reflect the "encryption key and decryption key information when communicating with the associated software server." 4. The software management method according to any one of claims 1 to 3, characterized in that: After the basic software client calls the downloader to implement the step of installing the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the method further includes: The basic software client and the associated software client are displayed in a unified tray and / or unified interface.
5. A basic software platform, characterized in that: The basic software platform includes a basic software server and a basic software client; The basic software server is used to receive an associated software installation request, and the associated software installation request is used to request the installation of an associated software client; Based on the associated software installation request, obtaining the associated software client installation information; wherein the associated software client installation information is a download address of the associated software; and returning the associated software client installation information to the basic software client; Wherein, the basic software server obtains the associated software client installation information based on the associated software installation request, including: The basic software server receives a linkage authorization code input by a user through a management platform, wherein the linkage authorization code is generated according to a communication address of the associated software server; The basic software server verifies the linkage authorization code, and if the verification passes, extracts the communication address of the associated software server from the linkage authorization code; Based on the associated software installation request and the communication address, obtaining the associated software client installation information from the associated software server; The basic software client is used to call a downloader, so as to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader; Wherein, before the step of the basic software client calling the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, the step further includes: The basic software client detects whether the associated software client has been installed in the terminal device; Accordingly, the basic software client calls the downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader, including: When it is detected that the associated software client is not installed, the basic software client calls a downloader to install the associated software client corresponding to the associated software client installation information to the terminal device through the downloader; The basic software client detects whether the associated software client has been installed in the terminal device, including: The basic software client calls the middle platform component, and detects whether the associated software client has been installed in the terminal device through the middle platform component; the middle platform component is used to implement the intersection function of the basic software client and the associated software client, and the intersection function includes: a function of detecting whether the client is installed; Among them, the downloader is integrated into the middle platform component, and the middle platform component is integrated into both the basic software client and the associated software client.
6. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the software management method according to any one of claims 1 to 4 when executing the computer program.
7. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the software management method according to any one of claims 1 to 4 are implemented.
Citation Information
Patent Citations
Software deployment management method and server, management client and common client
CN109144523A