Software system updating method, device and computer storage medium
By generating software system update data corresponding to multiple programming languages, the automatic update of the software system is achieved, which solves the problem of high update costs for multiple programming language versions and improves update efficiency.
Patent Information
- Application Number
- CN202111562732.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-20
- Publication Date
- 2025-09-12
- Estimated Expiration
- 2041-12-20
AI Technical Summary
In the prior art, updating multiple programming language versions of a software system requires developers to modify the source code of each programming language version separately, resulting in a large workload and high costs.
By acquiring the change action information of the software system, the software system update data corresponding to multiple programming languages is generated, and the corresponding update data is pushed to the device to achieve automatic update.
It reduces the update cost of the software system, improves the update efficiency, and solves the problem of inconsistent updates of software systems with different programming language versions.
Smart Images

Figure CN114138310B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of software systems, and specifically to a software system updating method, device, and computer storage medium. Background Art
[0002] Software developers can use different programming languages to develop a software system, resulting in multiple versions of the software system divided by programming language. Each version of the software system can run on devices that support that programming language. For example, if a software system is developed based on the Java language, it can run on devices that support the Java language.
[0003] When a software system's functionalities change, developers need to modify the system's source code. When a software system is developed in multiple programming languages, developers must modify the source code for each language version. Obviously, modifying the source code for each language version consumes a significant amount of developer time, increases software development costs, and makes updates and improvements inconvenient. Summary of the Invention
[0004] Embodiments of the present application provide a software system update method, apparatus, and computer storage medium for reducing the update cost of a software system with multiple programming language versions and improving the update efficiency of the software system.
[0005] A first aspect of an embodiment of the present application provides a software system update method, the method comprising:
[0006] Acquiring change action information of a software system, wherein the change action information includes the change content of the software system; wherein the software system includes multiple programming language versions, each programming language version corresponding to a programming language;
[0007] generating software system update data corresponding to a plurality of programming languages respectively according to the changed content;
[0008] Push software system update data corresponding to a first programming language to a first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents the programming language corresponding to the programming language version of the software system installed by the first device.
[0009] A second aspect of an embodiment of the present application provides a software system update device, the software system update device comprising:
[0010] an acquisition unit, configured to acquire change action information of a software system, wherein the change action information includes the change content of the software system; wherein the software system includes multiple programming language versions, each programming language version corresponding to a programming language;
[0011] A generating unit, configured to generate software system update data corresponding to a plurality of programming languages respectively according to the changed content;
[0012] A push unit is used to push software system update data corresponding to a first programming language to a first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents the programming language corresponding to the programming language version of the software system installed by the first device.
[0013] A third aspect of an embodiment of the present application provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the method of the first aspect when executing the computer program.
[0014] A fourth aspect of an embodiment of the present application provides a computer storage medium, in which instructions are stored. When the instructions are executed on a computer, the computer executes the method of the first aspect.
[0015] A fifth aspect of the embodiments of the present application provides a computer program product, which, when running on a computer device, enables the computer device to execute the method of the first aspect.
[0016] It can be seen from the above technical solutions that the embodiments of the present application have the following advantages:
[0017] In an embodiment of the present application, a software system update device obtains changes to a software system and, based on the changes, generates software system update data corresponding to multiple programming languages. The device then sends the software system update data corresponding to the installed software system to the device, allowing the device to update the installed software system based on the received software system update data. Therefore, the software system update device can generate software system update data for different programming language versions of the software system. The software system update data corresponding to each programming language can be used to update the software system of the programming language version corresponding to that programming language, eliminating the need for developers to separately update the software system for each programming language version. This improves the software system update efficiency and reduces the software system update cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1A A flowchart of a software system update method in an embodiment of the present application;
[0019] Figure 1B This is another flowchart of the software system update method in the embodiment of the present application;
[0020] Figure 1C This is another flowchart of the software system update method in the embodiment of the present application;
[0021] Figure 1D This is another flowchart of the software system update method in the embodiment of the present application;
[0022] Figure 1E This is another flowchart of the software system update method in the embodiment of the present application;
[0023] Figure 2 Schematic diagram of the implementation of the software system update method in the embodiment of the present application;
[0024] Figure 3 This is a structural diagram of a software system updating device in an embodiment of the present application;
[0025] Figure 4 This is another structural diagram of the software system updating device in an embodiment of the present application. DETAILED DESCRIPTION
[0026] Embodiments of the present application provide a software system update method, apparatus, and computer storage medium for reducing the update cost of a software system with multiple programming language versions and improving the update efficiency of the software system.
[0027] See also Figure 1A In one embodiment of the software system update method of the present application, the following steps are included:
[0028] 101. Obtain change action information of a software system, where the change action information includes the content of the change of the software system; wherein the software system includes multiple programming language versions, and each programming language version corresponds to a programming language;
[0029] The method of this embodiment can be applied to a software system update device, which can be run on a computer device, which can be a server or a terminal (terminal device). The terminal can be a personal computer (PC), a desktop computer, etc.; the server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud databases, cloud computing, big data, and artificial intelligence platforms.
[0030] Developers can use a variety of different programming languages to develop software systems, thereby dividing the software system into versions according to the type of programming language, and determining multiple programming language versions of the software system. For each programming language version of the software system, it can be installed on a device that supports the programming language corresponding to the programming language version, and the user can use one or more business functions provided by the software system on the device, where the device can be a terminal or a server. For example, if a device supports Java and Python, the device can install the Java language version or the Python language version of the software system and run the Java language version of the software system or the Python language version of the software system normally.
[0031] When a business change occurs in the software system, the software system updating device obtains the change action information of the software system. The change action information includes the change content of the software system, that is, the change content indicates the business change of the software system.
[0032] 102. Generate software system update data corresponding to multiple programming languages according to the changed content;
[0033] Since a software system has multiple programming language versions, in order to improve the update efficiency and reduce the update cost of the software system while updating each programming language version, software system update data corresponding to each programming language can be generated based on the changes, so that each software system update data can be adapted to a programming language version of the software system. The software system update data is used to represent the update items of the software system, and the device installed with the software system can update the software system according to the update items represented by the software system update data.
[0034] 103. Push software system update data corresponding to the first programming language to the first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents a programming language corresponding to the programming language version of the software system installed on the first device;
[0035] Here, the first device may generally refer to a device (terminal device or server) that has any programming language version of a software system installed. For ease of distinction, the programming language corresponding to the programming language version of the software system installed on the first device is named the first programming language. Since software system update data corresponding to multiple programming languages has been generated in step 102, the software system update data corresponding to the first programming language can be pushed to the first device, so that the first device updates the locally installed software system according to the software system update data corresponding to the first programming language.
[0036] In some embodiments, the change action information of a business model may include other information in addition to the change content. For example, the change action information may also include an identifier of the business model. When the change action information needs to be processed, the software system update device may query multiple stored change action information based on the identifier of the target business model to obtain target change action information including the identifier of the target business model. The target business model may be all or part of the business model of the software system, depending on the actual application scenario. Therefore, the identifier of the target business model allows the target change action information to be quickly found, facilitating the software system update device to process the target change action information. Furthermore, the identifier of the business model facilitates the software system update device or apparatus to determine the business model to be updated. That is, if the target change action information carries the identifier of the target business model, the target business model can be determined to be the business model to be updated. For example, the device can confirm the business model to be updated by the software system update data based on the identifier of the target business model, facilitating the device to track and determine the business model to be updated by the software system update data based on the identifier of the target business model.
[0037] In some embodiments, after generating the software system update data corresponding to the first programming language, the software system update device may publish the software system update data corresponding to the first programming language to each device connected to the publishing system through the CI / CD publishing system (Continuous Integration / Continuous Deployment), or the software system update device may manually perform the publishing operation under human operation, which is not limited in this embodiment.
[0038] In this embodiment, the software system update device can generate software system update data for different programming language versions of the software system. The software system update data corresponding to each programming language can be used to update the software system of the programming language version corresponding to the programming language. There is no need for developers to update the software system of each programming language version separately, thereby improving the update efficiency of the software system and reducing the update cost of the software system.
[0039] The following will be Figure 1A Based on the embodiment shown, the embodiment of the present application is further described in detail. Figure 1B , Figure 1A The illustrated step 102 may be updated to step 201 , in which software system update data corresponding to each of the registered programming languages is generated according to the changed content.
[0040] In this embodiment, multiple programming languages can be pre-registered for the software system. For example, the programming languages corresponding to each programming language version of the developed software system can be registered. In this way, when a change occurs, software system update data corresponding to each of the registered multiple programming languages is generated based on the content of the change.
[0041] exist Figure 1B middle, Figure 1A After step 101 shown ( Figure 1B (taking the process after step 103 as an example), in step 202, in response to a programming language registration request initiated based on an unregistered programming language, software system update data corresponding to the unregistered programming language may be generated according to the change content.
[0042] Here, if a programming language registration request is received based on an unregistered programming language, the software system update data corresponding to the unregistered programming language can be generated according to the change content, and the registration of the unregistered programming language can be completed at the same time. For example, when a developer uses a new programming language (i.e., an unregistered programming language) to develop a software system, the software system has a programming language version corresponding to the unregistered programming language. Among them, the so-called new programming language can be other programming languages other than the multiple programming languages in step 201, or it can be other versions of any programming language in step 201. For example, assuming that a programming language has version A and version B, the developer uses version A to develop a software system, and then uses version B to develop a software system. The programming language of version B is a new programming language relative to the programming language of version A.
[0043] When a software system has a programming language version corresponding to an unregistered programming language, the unregistered programming language can be registered in a software system update device, that is, the software system update device obtains a software development kit SDK for the unregistered programming language. The SDK records the lexical analysis function and the grammatical analysis function of the unregistered programming language. The lexical analysis function and the grammatical analysis function can be executed by the grammatical interpreter in the SDK. Therefore, when a software system changes, in order to ensure that devices that have installed the programming language version corresponding to the unregistered programming language of the software system can synchronize and update the software system in a timely manner, the software system update device can call the grammatical interpreter in the SDK of the unregistered programming language according to the content of the change to generate software system update data corresponding to the unregistered programming language. The software system update data corresponding to the unregistered programming language can be pushed to devices that have installed the programming language version corresponding to the unregistered programming language of the software system, so that the device can update the software system according to the software system update data corresponding to the unregistered programming language.
[0044] In the embodiment of the present application, by introducing a registration mechanism for a programming language, the orderliness, security, and accuracy of software system updates are ensured.
[0045] The following will be Figure 1A Based on the embodiment shown, the embodiment of the present application is further described in detail. Figure 1C , Figure 1A Step 103 shown can be updated to step 301. In step 301, software system update data corresponding to the first programming language is pushed to the registered first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents the programming language corresponding to the programming language version of the software system installed on the first device.
[0046] The generated software system update data corresponding to the multiple programming languages can be stored, such as persistently stored. In the embodiment of the present application, a device registration mechanism can also be introduced, and the stored software system update data can be sent only after the device is registered, so that security can be guaranteed.
[0047] For example, the stored and most recently generated software system update data corresponding to the first programming language may be pushed to the registered first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language.
[0048] exist Figure 1C middle, Figure 1A After step 102 shown ( Figure 1C (taking step 301 as an example), in step 302, in response to a device registration request initiated based on an unregistered second device, the most recently generated software system update data corresponding to the second programming language may be pushed to the second device.
[0049] Other devices besides the first device (hereinafter referred to as "second devices") may also be installed with the software system. Then, relative to the first device, the second device is a new device with the software system installed, that is, an unregistered device.
[0050] When a device registration request is received from an unregistered second device, the stored and most recently generated software system update data corresponding to the second programming language can be pushed to the second device, simultaneously completing the registration of the second device. The second device is configured to update the software system installed on the second device based on the software system update data corresponding to the second programming language; the second programming language represents the programming language corresponding to the programming language version of the software system installed on the second device.
[0051] In step 303, when the software system update data corresponding to the second programming language is regenerated, the regenerated software system update data corresponding to the second programming language is pushed to the second device.
[0052] On the premise that the second device has been registered, if the software system changes again, that is, the software system update data corresponding to the second programming language is regenerated, the regenerated software system update data corresponding to the second programming language can be pushed to the second device, that is, real-time synchronization of the software system update data is achieved for the second device.
[0053] In the embodiment of the present application, by introducing a device registration mechanism, the orderliness, security and accuracy of software system updates are guaranteed.
[0054] The following will be Figure 1A Based on the embodiment shown, the embodiment of the present application is further described in detail. Figure 1D , Figure 1A Step 102 shown can be implemented through steps 401 and 402 .
[0055] In step 401, a syntax interpreter of any programming language is called to perform lexical analysis on the changed content to obtain a word stream corresponding to the changed content.
[0056] In step 402 , according to the structural requirements of the abstract syntax tree of any programming language, the word stream is converted into an abstract syntax tree that meets the structural requirements, so as to serve as software system update data corresponding to any programming language.
[0057] An abstract syntax tree (AST) is a tree representation of the abstract syntax structure of a source code written in a programming language, and each node of the tree represents a construct that appears in the source code. Therefore, for each programming language, an abstract syntax tree can be constructed for the changed content, and the abstract syntax tree can be used as software system update data to facilitate the device to read and run the software system update data corresponding to the changed content, thereby completing the software system update. Therefore, in some embodiments, the step of generating software system update data corresponding to the programming language according to the changed content may be to call the syntax interpreter of the programming language to perform lexical analysis on the changed content to obtain a word stream corresponding to the changed content. Since different programming languages have different structural requirements for abstract syntax trees, the word stream is further converted into an abstract syntax tree that meets the structural requirements according to the structural requirements of the programming language for AST.
[0058] For example, for the above-mentioned first programming language, the method of generating software system update data corresponding to the first programming language is to call the syntax interpreter of the first programming language to perform lexical analysis on the changed content, obtain the word stream corresponding to the changed content, and further convert the word stream into an abstract syntax tree that meets the structural requirements of the first programming language for AST in accordance with the structural requirements of the first programming language for AST.
[0059] For the above-mentioned second programming language, the method of generating software system update data corresponding to the second programming language is to call the syntax interpreter of the second programming language to perform lexical analysis on the changed content, obtain the word stream corresponding to the changed content, and further convert the word stream into an abstract syntax tree that meets the structural requirements of the second programming language for AST in accordance with the structural requirements of the second programming language for AST.
[0060] In this embodiment, different programming languages correspond to different software system update data. The software system update data can be an abstract syntax tree or a binary instruction. As long as it is a grammatical structure that can represent changes to the software system and can be read and executed by the device, this embodiment does not limit this.
[0061] The embodiment of the present application describes an example of updating data of a software system, which can achieve effective updating.
[0062] The following will be Figure 1A Based on the embodiment shown, the embodiment of the present application is further described in detail. Figure 1E , Figure 1A After step 101 shown, in step 501 , the change action information may be stored in a persistent memory.
[0063] In step 502 , an update message corresponding to the change action information is sent to the queue service, so that the queue service stores the update message in a queue.
[0064] exist Figure 1E middle, Figure 1A Step 102 shown can be updated to step 503. In step 503, when an update message is obtained from the queue through the modeling tool service, the change action information is obtained from the persistent storage through the modeling tool service, and software system update data corresponding to multiple programming languages are generated according to the change content in the change action information.
[0065] After obtaining the change action information, the software system update device can store each piece of change action information obtained in the queue in sequence according to the acquisition time of the change action information (such as the order of acquisition time from early to late), so as to facilitate the processing of each change action information in sequence according to the order of the change action information in the queue in subsequent steps.
[0066] The type of queue is not limited, and may be, for example, a queue such as Kafka, RabbitMQ, or Redis that can provide a first-in-first-out processing rule.
[0067] In addition to storing the change action information in the queue, the change action information can also be stored in a persistent storage device (such as a persistent storage server). This can prevent the change action information from becoming invalid or lost, and ensure that the change action information remains in a readable state. While storing the change action information in the persistent storage device, the queue service of the software system update device can be notified according to the update message corresponding to the change action information, so that the queue service stores the update message in the queue. When the modeling tool service of the software system update device obtains the update message from the queue, the modeling tool service is triggered to obtain the change action information from the persistent storage device, and generate software system update data corresponding to multiple programming languages according to the change content in the change action information. Subsequently, the queue service can push the software system update data corresponding to the first programming language to the first device. Among them, there is no limitation on the form of queue service and modeling tool service. For example, queue service can be a group distributed server; the operation of modeling tool service depends on the specific definition of business model, which is used to eliminate the business differences of multiple programming languages. Modeling tool service can be composed of programming language syntax interpreter, custom code snippet generator, and source code template. The custom code snippet generator is used to generate program code snippets of target programming language using business model. The generated program code snippets can be compiled into binary programs (binary instructions) using SDK of the target programming language; source code template is used as a supplement to custom code snippet generator. Since the program code snippets generated by custom code snippet generator are generated according to the logic of SDK itself, when the logic in program code snippet needs to be modified, the source code template can be used to replace the code that needs to be modified in the program code snippet. Therefore, when it is necessary to process change action information, the change action information can be obtained from persistent storage and processed to ensure the accuracy of change action information and the timeliness of processing.
[0068] In an embodiment of the present application, each change action message can be processed sequentially based on the order in which the change action messages were acquired. This acquisition order can be reflected in the order of the change action messages in the queue or the order of the update messages in the queue. Each time a change action message is processed, software system update data corresponding to each of the multiple registered programming languages is generated based on the changes in the change action message. This ensures the orderliness and accuracy of the generated software system update data.
[0069] As an example, the present application provides the following embodiments: Figure 2 The implementation diagram of the software system update method shown in the figure will be combined with Figure 2 Provide explanation.
[0070] Users, developers, scripts, or artificial intelligence (AI) can make business changes to a software system on a computer device, which can be a terminal device or a server. This means changing one or more business functions of the software system.
[0071] For example, a change to a software system may be a change to the software system's business model. A business model is a functional module within the software system that performs one or more business functions. Therefore, a change to a business model may be a change to one or more business functions within the business model. After executing the change to the business model, the computer device may generate change action information that includes the details of the change.
[0072] The business function corresponding to the business model may be any function that can provide business services. For example, a software system's business model may include a business model for generating documents. This business model for generating documents may include elements such as a document header, a document body, document attributes, business relationships, and formula instructions. The document header refers to the document header or the heading of a document; the document body is used to record document accounting details, also known as document entries, such as the product details, price, quantity, etc. of a sales order; document attributes refer to the smallest data unit information present in the document header and document body, such as customer name, product name, quantity, unit price, etc.; business relationships refer to the business relationships between documents, such as whether information on a document is referenced / dependent on / copied from other documents or basic data, or whether data on other documents or basic data on which the document depends will be updated after the document is added, modified, or deleted; formula instructions include formulas and instructions, which refer to the basis for operating information in a document, such as instructions for retrieving data in a document, assigning values to variables, displaying the number of entries, updating the print count after printing a document, and formulas for performing operations on numerical values. Therefore, elements such as the document header, document body, document attributes, business relationships, and formula instructions define the business logic of the business model. By using this business model, users can be provided with document generation functions, and users or developers can be supported to change one or more elements in the document header, document body, document attributes, business relationships, and formula instructions, thereby generating change action information for the business model.
[0073] The business model also records its model definition, business logic, and model relationships. The model definition represents the functions and attributes of the business model, the business logic represents the operational logic of the business model's business functions, and the model relationships represent the relationships between the business model and other business models, such as whether a business model's processing operations depend on the processing results of other business models or whether multiple business models share the same business processing operations. Therefore, this business model information can be used to obtain information related to the business model, such as its model functions.
[0074] like Figure 2 As shown, the general business logic, model relationships, model definitions and other data of the business model are dynamically updated as model data, and change action information is generated and passed to the modeling tool service. The modeling tool service will generate software system update data corresponding to multiple programming languages according to the change content in the change action information, such as Figure 2 As shown, AST data of multiple different programming languages are generated. For example, the multiple programming languages can be Structured Query Language (SQL), C# language, JavaScript language, etc., and the AST data of each programming language can be used to update the business model of the programming language. For example, the AST data of the SQL language can be used to update the SQL model, that is, the business model written in SQL language. After the AST data of multiple programming languages are generated, they can be published so that terminal devices installed with the software system (here taking the terminal device as an example) can be dynamically updated according to the AST data. The publishing operation can be published to each terminal device through the CI / CD publishing system, or it can be manually performed under human operation.
[0075] To facilitate understanding, the following steps describe the dynamic update process:
[0076] 1) The computer device obtains the change action information of the software system, pushes the change action information to the persistent storage server for storage, and at the same time, notifies the queue service according to the update message corresponding to the change action information;
[0077] 2) The queue service receives the update message generated in step 1) and stores it in the queue. Then, it calls the modeling tool service according to the queue's operation rules.
[0078] 3) Upon receiving the call command from the queue service, the modeling tool service retrieves the update message generated in step 1) from the queue and, based on this update message, triggers a query for the change action information from the persistent storage server. It then calls the syntax interpreter for the registered programming language to generate an AST in JSON format.
[0079] 4) For each registered programming language, the modeling tool service generates a corresponding AST. The queue service pushes the generated ASTs to each registered terminal device, allowing the terminal device to dynamically update the software system based on the received AST.
[0080] 5) If a new programming language needs to be registered in the modeling service and new change action information is generated thereafter, the syntax interpreter of the newly registered programming language will be called to generate the corresponding AST;
[0081] 6) If a new terminal device registers for the first time, the existing AST (corresponding to the programming language) will be obtained from the modeling tool service and pushed to the new terminal device. After that, if new change action information is generated, the newly generated AST will also be pushed to the new terminal device. Of course, if the programming language corresponding to the new terminal device is not registered, step 5) will be executed first.
[0082] It should be noted that the above-mentioned business model for generating documents only represents one of the business functions of the business model of the software system. The software system may also include business models for providing other business functions, such as business models that provide personnel management services, product development management services, and other functions. The type of business model is not limited here.
[0083] After generating software system update data corresponding to the first programming language, the software system update data corresponding to the first programming language can be sent to a first device that supports the first programming language, so that the first device updates the local software system according to the software system update data corresponding to the first programming language, thereby realizing automatic update of different programming language versions of the software system.
[0084] When the computer device is an independent physical server, the aforementioned persistent storage, queue, and functions such as generating software system update data corresponding to the programming language can be integrated into the same software system update device as an independent physical server. In addition, when the computer device is a server cluster or distributed system composed of multiple physical servers, these multiple functions can also be configured on different physical servers. For example, when the computer device is a server cluster composed of multiple physical servers, the persistent storage can be a persistent storage server in the server cluster, the queue can be provided by a queue server, and generating software system update data corresponding to the programming language can be performed by a modeling tool server in the server cluster. This embodiment does not limit the distribution and configuration of various functions on the device.
[0085] Through this embodiment, dynamic updates of different programming language versions of the software system can be achieved, which solves the problem of inconsistent business updates on multiple devices of the installed software system. At the same time, there is no need for developers to update different programming language versions one by one, reducing the workload of developers in updating the software system, thereby reducing the R&D cost of the software system and improving the update efficiency of the software system.
[0086] The above describes the software system update method in the embodiment of the present application. The following describes the software system update device in the embodiment of the present application. Figure 3 In one embodiment of the present application, a software system update device includes:
[0087] The acquisition unit 301 is configured to acquire change action information of the software system, where the change action information includes the change content of the software system; wherein the software system includes multiple programming language versions, each programming language version corresponding to a programming language;
[0088] A generating unit 302 is configured to generate software system update data corresponding to multiple programming languages according to the changed content;
[0089] The push unit 303 is used to push software system update data corresponding to the first programming language to the first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents the programming language corresponding to the programming language version of the software system installed on the first device.
[0090] In some embodiments, the generation unit 302 is also used to generate software system update data corresponding to multiple registered programming languages based on the change content; in response to a programming language registration request initiated based on an unregistered programming language, generate software system update data corresponding to the unregistered programming language based on the change content.
[0091] In some embodiments, the push unit 303 is also used to push software system update data corresponding to the first programming language to the registered first device; in response to a device registration request initiated based on an unregistered second device, push the most recently generated software system update data corresponding to the second programming language to the second device; when the software system update data corresponding to the second programming language is regenerated, push the regenerated software system update data corresponding to the second programming language to the second device; wherein the second device is used to update the software system installed on the second device according to the software system update data corresponding to the second programming language; the second programming language represents the programming language corresponding to the programming language version of the software system installed on the second device.
[0092] In some embodiments, the generation unit 302 is also used to perform the following processing for any one of a plurality of programming languages: calling the syntax interpreter of any one of the programming languages to perform lexical analysis on the changed content to obtain a word stream corresponding to the changed content; according to the structural requirements of the abstract syntax tree of any one of the programming languages, converting the word stream into an abstract syntax tree that meets the structural requirements, as the software system update data corresponding to any one of the programming languages.
[0093] In some embodiments, the software system update device also includes: a storage unit 304, which is used to store the change action information in a persistent memory; sending the update message corresponding to the change action information to the queue service, so that the queue service stores the update message in the queue; the generation unit 302 is also used to obtain the change action information from the persistent memory through the modeling tool service when the update message is obtained from the queue through the modeling tool service, and generate software system update data corresponding to multiple programming languages according to the change content in the change action information.
[0094] In some embodiments, the acquisition unit 301 is further configured to receive change action information generated by changing a business model of the software system, where the business model is a functional module in the software system for executing one or more business functions.
[0095] In some embodiments, the software system update apparatus further includes:
[0096] The query unit 305 is further configured to query the stored multiple change action information according to the identifier of the target business model to obtain the target change action information including the identifier of the target business model;
[0097] The generating unit 302 is further configured to generate software system update data corresponding to multiple programming languages according to the change content in the target change action information.
[0098] In this embodiment, the operations performed by each unit in the software system update device are the same as those described above. Figures 1A to 1E The description in the illustrated embodiment is similar and will not be repeated here.
[0099] In this embodiment, the acquisition unit 301 acquires the changes to the software system, the generation unit 302 generates software system update data corresponding to multiple programming languages based on the changes, and the push unit 303 sends the software system update data corresponding to a particular programming language to a device that supports the programming language, so that the device can update the installed software system according to the software system update data corresponding to the programming language. Therefore, the software system update device can generate software system update data for different programming language versions of the software system. The software system update data corresponding to each programming language can be used to update the software system of the programming language version corresponding to the programming language, eliminating the need for developers to update the software system for each programming language version separately, thereby improving the software system update efficiency and reducing the software system update cost.
[0100] The following describes the software system update device in the embodiment of the present application. Figure 4 In one embodiment of the present application, a software system update device includes:
[0101] The software system updating device 400 may include one or more central processing units (CPUs) 401 and a memory 405 . The memory 405 may store one or more application programs or data.
[0102] Memory 405 may be volatile or persistent storage. The program stored in memory 405 may include one or more modules, each of which may include a series of instruction operations in the software system update device. Furthermore, central processing unit 401 may be configured to communicate with memory 405, and execute the series of instruction operations in memory 405 on software system update device 400.
[0103] The software system update device 400 may also include one or more power supplies 402, one or more wired or wireless network interfaces 403, one or more input and output interfaces 404, and / or one or more operating systems, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.
[0104] The CPU 401 can execute the aforementioned Figures 1A to 1E The operations performed by the software system updating device in the illustrated embodiment will not be described in detail here.
[0105] The present application also provides a computer storage medium, wherein one embodiment includes: the computer storage medium stores instructions, and when the instructions are executed on a computer, the computer executes the aforementioned Figures 1A to 1EOperations performed by the software system updating apparatus in the illustrated embodiment.
[0106] The present application also provides a computer program product, wherein one embodiment includes: when the computer program product is run on a computer device, the computer device executes the aforementioned Figures 1A to 1E Operations performed by the software system updating apparatus in the illustrated embodiment.
[0107] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0108] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.
[0109] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0110] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0111] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
Claims
1. A software system updating method, characterized in that: The method comprises: Acquiring change action information of a software system, wherein the change action information includes the change content of the software system; wherein the software system includes multiple programming language versions, each programming language version corresponding to a programming language; Generating software system update data corresponding to a plurality of programming languages respectively according to the changed content; wherein the plurality of programming languages include registered programming languages, and the software system update data includes software system update data corresponding to the plurality of registered programming languages respectively; Pushing software system update data corresponding to a first programming language to a first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents a programming language corresponding to a programming language version of the software system installed on the first device; and the first device is a registered device; When an unregistered device initiates a device registration request, the most recently generated software system update data corresponding to the second programming language is pushed to the unregistered device. The second programming language is a programming language corresponding to the programming language version of the software system installed on the unregistered device.
2. The method according to claim 1, characterized in that Generating software system update data corresponding to multiple programming languages respectively according to the changed content includes: Generating software system update data corresponding to the registered multiple programming languages respectively according to the changed content; The method further comprises: In response to a programming language registration request initiated based on an unregistered programming language, software system update data corresponding to the unregistered programming language is generated according to the change content.
3. The method according to claim 1, characterized in that The pushing software system update data corresponding to the first programming language to the first device includes: Pushing software system update data corresponding to the first programming language to the registered first device; The method further comprises: In response to a device registration request initiated by an unregistered second device, pushing the most recently generated software system update data corresponding to the second programming language to the second device; When the software system update data corresponding to the second programming language is regenerated, pushing the regenerated software system update data corresponding to the second programming language to the second device; The second device is used to update the software system installed on the second device according to software system update data corresponding to the second programming language; the second programming language represents a programming language corresponding to the programming language version of the software system installed on the second device.
4. The method according to any one of claims 1 to 3, characterized in that The step of generating software system update data corresponding to multiple programming languages respectively according to the changed content includes: For any one of the multiple programming languages, the following processing is performed: Calling a syntax interpreter of any one of the programming languages to perform lexical analysis on the changed content to obtain a word stream corresponding to the changed content; According to the structural requirements of the abstract syntax tree of any one of the programming languages, the word stream is converted into an abstract syntax tree that meets the structural requirements to serve as software system update data corresponding to the any one of the programming languages.
5. The method according to any one of claims 1 to 3, characterized in that After obtaining the change action information of the software system, the method further includes: Storing the change action information in a persistent memory; Sending an update message corresponding to the change action information to a queue service, so that the queue service stores the update message in a queue; Generating software system update data corresponding to multiple programming languages respectively according to the changed content includes: When the update message is obtained from the queue through the modeling tool service, the change action information is obtained from the persistent memory through the modeling tool service, and software system update data corresponding to multiple programming languages are generated according to the change content in the change action information.
6. The method according to any one of claims 1 to 3, characterized in that The obtaining of the change action information of the software system includes: Change action information generated by changing a business model of the software system is received, where the business model is a functional module in the software system for executing one or more business functions.
7. The method according to claim 6, characterized in that The change action information also includes an identifier of the business model; and the method further includes: Searching the plurality of stored change action information according to the identifier of the target business model to obtain target change action information including the identifier of the target business model; Generating software system update data corresponding to multiple programming languages respectively according to the changed content includes: Software system update data corresponding to multiple programming languages are generated according to the change content in the target change action information.
8. A software system updating device, characterized in that: The software system updating device comprises: an acquisition unit, configured to acquire change action information of a software system, wherein the change action information includes the change content of the software system; wherein the software system includes multiple programming language versions, each programming language version corresponding to a programming language; a generating unit, configured to generate software system update data corresponding to a plurality of programming languages respectively according to the changed content; wherein the plurality of programming languages include registered programming languages, and the software system update data includes software system update data corresponding to the plurality of registered programming languages respectively; a push unit, configured to push software system update data corresponding to a first programming language to a first device, so that the first device updates the installed software system according to the software system update data corresponding to the first programming language; wherein the first programming language represents a programming language corresponding to a programming language version of the software system installed on the first device; and the first device is a registered device; When an unregistered device initiates a device registration request, the most recently generated software system update data corresponding to the second programming language is pushed to the unregistered device. The second programming language is a programming language corresponding to the programming language version of the software system installed on the unregistered device.
9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the method according to any one of claims 1 to 7 is implemented.
10. A computer storage medium, characterized in that The computer storage medium stores instructions, which, when executed on a computer, enable the computer to perform the method according to any one of claims 1 to 7.
11. A computer program product, characterized in that When the computer program product is run on a computer device, the computer device is caused to perform the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Method and device for realizing automatic coverage statistics based on tag script
CN109344081A