Modular development and deployment system, deployment method, electronic device, and storage medium

Through the modular development and deployment system, independent loader instances and isolation mechanisms are used to solve the problem of module changes affecting other modules, achieving the effect of reducing test workload and improving application portability.

CN115048099BActive Publication Date: 2025-08-19PING AN BANK CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210687969.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-16
Publication Date
2025-08-19
Estimated Expiration
2042-06-16

AI Technical Summary

Technical Problem

In the deployment of prior art, module changes will affect other modules, resulting in full regression testing increasing the testing workload, and relying on system containers leads to port compatibility issues.

Method used

Using a modular development and deployment system, an independent loader instance is created for each application through the first class loader, an isolation mechanism is used to load applications and functional components, reducing the impact between modules, and an independent environment for functional components is loaded through the second class loader, avoiding full regression testing.

Benefits of technology

It reduces the impact of module changes on other modules, reduces the testing workload, improves the portability and maintainability of the application, and avoids full regression testing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115048099B_ABST
    Figure CN115048099B_ABST
Patent Text Reader

Abstract

The present application provides a modular development and deployment system, a deployment method, an electronic device, and a storage medium, wherein the modular development and deployment system includes a first subsystem, a second subsystem, and a third subsystem; the first subsystem includes a first module, the first module being used to return an execution result of a first preset step to an application in the second subsystem; the second subsystem includes a first class loader for loading an application, wherein the first class loader loads the application based on an isolation mechanism; the third subsystem includes a second class loader for loading functional components of the application after the first class loader loads the application, wherein the second class loader loads multiple functional components based on an isolation mechanism. The present application is used at least to reduce the impact of changes to one module on other modules during the deployment of a web application, thereby reducing the testing workload.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a modular development and deployment system, a deployment method, an electronic device, and a storage medium. Background Art

[0002] Currently, the industry has solutions such as WebLogic and WAS for deploying web applications. However, these solutions are relatively heavyweight, difficult to deploy, time-consuming, and lack precise control. Because all code is centralized in these solutions, when production issues arise, bug fixes may affect other normal functional modules. They also require full regression testing before going online, increasing the testing workload. Furthermore, these solutions are extremely dependent on the capabilities of the system container, such as JNDI. This can lead to compatibility issues during application migration, such as the inability to start the application after migration to another container. Summary of the Invention

[0003] The purpose of the embodiments of the present application is to provide a modular development and deployment system, deployment method, electronic device and storage medium, which are used at least to reduce the impact of changes in one module on other modules during the web application deployment process, thereby reducing the testing workload.

[0004] To this end, the first embodiment of the present application discloses a modular development and deployment system, the system comprising: a first subsystem, a second subsystem, and a third subsystem;

[0005] The first subsystem includes a first module, and the first module is used to return an execution result of executing the first preset step to the application in the second subsystem;

[0006] The second subsystem includes a first class loader for loading an application, wherein the first class loader loads the application based on an isolation mechanism; the third subsystem includes a second class loader for loading functional components of the application after the first class loader loads the application, wherein the second class loader loads multiple functional components based on an isolation mechanism.

[0007] In the first aspect of the present application, the first class loader loads the application based on the isolation mechanism, which means that each application has an independent first class loader, that is, the system will create an instance of the first class loader for each application to load the class file of the application. For example, a first class loader A is created for application A, a first class loader B is created for application B, and a first class loader C is created for application C. In this way, each application has its own data environment and the impact on each other is reduced. For example, when application A is changed, it will not affect application B through application C. Therefore, when application A is changed, application B does not need to be tested or application C and application B do not need to be tested at the same time. That is, when application A is changed, full regression testing does not need to be performed, thereby reducing the testing workload after an application is changed.

[0008] In the first aspect of the present application, as an optional implementation, the first module includes a lifecycle module, a monitoring module, a protocol support module, an application component management module and an isolation scheduling module;

[0009] The life cycle module is used to manage the life cycle of the application;

[0010] The monitoring module is used to monitor and visualize the running results of the application;

[0011] The protocol support module is configured to process a communication request initiated by the application of the second subsystem based on a preset communication protocol;

[0012] The application component management module is used to manage the application of the second subsystem;

[0013] The isolation scheduling module is used to determine applications or functional components that need to be isolated and scheduled based on a preset isolation strategy.

[0014] In the first aspect of the present application, as an optional implementation, the first subsystem further includes a module deployment interface, a resource interface, and a configuration interface;

[0015] The module deployment interface is configured to receive deployment instructions for functional components of the application and deploy the functional components of the application based on the deployment instructions;

[0016] The resource interface is configured to receive a resource setting instruction for the application and set resources for the application based on the resource setting instruction;

[0017] The configuration interface is used to receive configuration instructions for the application and configure operating parameters of the application or functional components of the application based on the configuration instructions.

[0018] In the first aspect of the present application, as an optional implementation, the second subsystem further includes a first Spring container, and the first Spring container is used to manage objects of the application.

[0019] In the first aspect of the present application, as an optional implementation, the second subsystem further includes a first common bean module, a unified exception handling module, a unified filtering module and a component plug-in module;

[0020] The common bean module is used for the second preset step and obtains a second execution result, and provides the second execution result to the application;

[0021] The unified exception handling module is used to capture the exception data generated during the operation of the application and perform exception handling based on the exception data;

[0022] The unified filtering module is used to filter the log information generated by the application during operation;

[0023] The common plug-in module is used to execute the third preset step to obtain a third execution result, and provide the third execution result to the application.

[0024] In the first aspect of the present application, as an optional implementation, the third subsystem includes a second Spring container, a component plug-in, and a protocol interface;

[0025] The second Spring container is used to manage objects of functional components of the application in response;

[0026] The component plug-in is used to respond to a plug-in call instruction for a functional component of the application;

[0027] The protocol interface is used to respond to a communication request for the functional component of the application, so as to parse the communication request based on a preset communication protocol.

[0028] A second aspect of the present application discloses a modular development and deployment system applied to the system of the first aspect of the present application, the method comprising:

[0029] When a deployment instruction for a functional component of an application is received, calling a module deployment interface based on the deployment instruction;

[0030] The deployment of the functional components to be deployed is completed based on the module deployment interface.

[0031] In the method of the present application, the first class loader loads the application based on the isolation mechanism, which means that each application has an independent first class loader, that is, the system will create an instance of the first class loader for each application to load the class file of the application. For example, a first class loader A is created for application A, a first class loader B is created for application B, and a first class loader C is created for application C. In this way, each application has its own data environment and the impact of each other is reduced. For example, when application A is changed, it will not affect application B through application C. Therefore, when application A is changed, application B does not need to be tested or application C and application B do not need to be tested at the same time. That is, when application A is changed, full regression testing does not need to be performed, thereby reducing the testing workload after an application is changed.

[0032] In the second aspect of the present application, as an optional implementation manner, after completing the deployment of the functional component based on the module deployment interface, the method further includes:

[0033] Obtaining a test instruction for the functional component to be deployed;

[0034] The functional component to be deployed is tested based on the test instruction, and a test result is obtained.

[0035] A third aspect of the present application discloses an electronic device, which is applied to the modular development and deployment system of the first aspect of the present application. The electronic device includes:

[0036] a memory storing executable program code;

[0037] a processor coupled to the memory;

[0038] The processor calls the executable program code stored in the memory to execute the module deployment method of the second aspect of the present application.

[0039] In the electronic device of the present application, the first class loader loads the application based on the isolation mechanism, which means that each application has an independent first class loader, that is, the system will create an instance of the first class loader for each application to load the class file of the application. For example, a first class loader A is created for application A, a first class loader B is created for application B, and a first class loader C is created for application C. In this way, each application has its own data environment and the impact on each other is reduced. For example, when application A is changed, it will not affect application B through application C. Therefore, when application A is changed, application B does not need to be tested or application C and application B do not need to be tested at the same time. That is, when application A is changed, full regression testing does not need to be performed, thereby reducing the testing workload after an application is changed.

[0040] The fourth aspect of the present application discloses a storage medium, which is applied to the modular development and deployment system of the first aspect of the present application. The storage medium stores computer instructions, and when the computer instructions are called, they are used to execute the module deployment method of the second aspect of the present application.

[0041] In the storage medium of the present application, the first class loader loads the application based on the isolation mechanism, which means that each application has an independent first class loader, that is, the system will create an instance of the first class loader for each application to load the class file of the application. For example, a first class loader A is created for application A, a first class loader B is created for application B, and a first class loader C is created for application C. In this way, each application has its own data environment and the impact of each other is reduced. For example, when application A is changed, it will not affect application B through application C. Therefore, when application A is changed, application B does not need to be tested or application C and application B do not need to be tested at the same time. That is, when application A is changed, full regression testing does not need to be performed, thereby reducing the testing workload after an application is changed. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments of the present application. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other relevant drawings can be obtained based on these drawings without creative work.

[0043] Figure 1 This is a schematic diagram of the architecture of a modular development and deployment system disclosed in an embodiment of the present application;

[0044] Figure 2 This is a flowchart of a module deployment method disclosed in an embodiment of the present application;

[0045] Figure 3 This is a structural diagram of an electronic device disclosed in an embodiment of the present application. DETAILED DESCRIPTION

[0046] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.

[0047] Example 1

[0048] See also Figure 1 , Figure 1 This is a schematic diagram of the architecture of a modular development and deployment system disclosed in the embodiment of this application. Figure 1As shown, the system of an embodiment of the present application includes: a first subsystem, a second subsystem, and a third subsystem, wherein the first subsystem includes a first module, and the first module is used to return the execution result of the first preset step to the application in the second subsystem; the second subsystem includes a first class loader for loading the application, wherein the first class loader loads the application based on an isolation mechanism; the third subsystem includes a function component for loading the application after the first class loader loads the application, wherein the second class loader loads multiple functional components based on the isolation mechanism.

[0049] In the embodiment of the present application, the first class loader is Figure 1 The application calassdloader, and the second class loader is Figure 1 Module-component classloader in.

[0050] In the embodiment of the present application, the first module refers to Figure 1 ROOT in. Further, Figure 1 As shown, the first module includes a lifecycle module, a monitoring module, a protocol support module, an application component management module, and an isolation scheduling module. The lifecycle module manages the application lifecycle, for example, managing application destruction to clean up memory data. The monitoring module can monitor and visualize the running results of each application. For example, in a weather forecast application, the monitoring module can monitor weather data obtained by the application in real time and display real-time weather changes in a visual interface. The protocol support module processes communication requests initiated by applications in the second subsystem based on a preset communication protocol. Specifically, it obtains handlers for multiple data protocols. This allows the application to adapt to different data protocol differences when receiving data sent from different platforms using different data protocols, such as RPC protocols like Dubbo, MQ scheduling, Spring Cloud scheduling, and even service mesh. The application component management module manages application components. For example, the application management component can add or remove components from an application. The isolation scheduling module is used to determine the applications or functional components that need to be isolated and scheduled based on the preset isolation strategy. For example, application A and application B are set to be isolated and loaded, that is, the basic layer schedules application A and application B in an isolated manner.

[0051] In an embodiment of the present application, the first preset step refers to a step for implementing the function of lifecycle management, monitoring management, protocol support, application component management, and isolation scheduling. The execution result of the first preset step refers to the result of implementing the function of lifecycle management, monitoring management, protocol support, application component management, and isolation scheduling. For example, when the lifecycle module detects in real time whether the second subsystem is not being used by a user, or the application is in a background dormant state for a long time, if so, the application is closed and the second subsystem is notified so that the second subsystem no longer loads an instance of the application. In some scenarios, the lifecycle module will pass the status of the current application in its lifecycle as an execution result to the second subsystem. For example, when the application is in the foreground active state, the second subsystem is informed of the message.

[0052] It should be noted that, in the embodiment of the present application, as to what states are included in the life cycle of an application, please refer to the prior art, and the embodiment of the present application will not elaborate on this.

[0053] In an embodiment of the present application, the first class loader refers to the Java class loader Classloader, which is a loader used to load class files into the Java virtual machine. Correspondingly, the second class loader refers to the Java class loader Classloader, which is a loader used to load class files into the Java virtual machine.

[0054] In an embodiment of the present application, the first class loader is used to load the application's class files when the application is triggered to start, and cause the application's class files to be executed by the JVM, thereby implementing the application's functionality. For example, when a weather application is triggered to start, the first class loader loads the application's class files and executes them in the JVM, thereby implementing the execution of weather data. Correspondingly, the second class loader is used to load the class files of the application's functional components when the application's functional components are triggered to start, and cause the application's class files to be executed by the JVM, thereby implementing the functional components' functionality.

[0055] In an embodiment of the present application, the second class loader can be a subclass of the first class loader, that is, the second class loader inherits the properties and methods of the first class loader. For relevant explanations on class inheritance, please refer to the prior art.

[0056] In the embodiment of the present application, the class file refers to a Java class file. On the other hand, the class file is a binary file generated after a program written in a high-level language is compiled, and the binary file can be run in a JVM.

[0057] In an embodiment of the present application, the first class loader loads applications based on an isolation mechanism, which means that each application has an independent first class loader, that is, the system will create an instance of the first class loader for each application to load the class file of the application. For example, a first class loader A is created for application A, a first class loader B is created for application B, and a first class loader C is created for application C. In this way, each application has its own data environment, and the impact of each other is reduced. For example, when application A is changed, it will not affect application B through application C. Therefore, when application A is changed, application B does not need to be tested, or application C and application B do not need to be tested at the same time. That is, when application A is changed, full regression testing does not need to be performed, thereby reducing the testing workload after an application is changed.

[0058] In comparison, the existing technology couples the codes of application A, application B, and application C together to form an overall application (application S). At this time, when application S is triggered to start, the system will create an instance of the first class loader to load the class files of application S, that is, application A, application B, and application C that constitute application S are loaded by the same class loader, and the system will not create class loader A, class loader B, and class loader C for application A, application B, and application C, respectively, to load the class files of application A, application B, and application C. Then, when one of applications A, application B, and application C is modified, the overall application S composed of application A, application B, and application C also needs to be re-released and tested. In this way, the change of application A will affect application B and application C, that is, the change of application A will cause application B and application C to also need to be re-released and tested, thereby increasing the amount of testing.

[0059] In the embodiments of this application, Figure 1 As shown, the second subsystem also includes a first Spring container, a public bean module, a unified exception handling module, a unified filtering module and a component plug-in module. The first Spring container is used to manage the objects of the application. The public bean module is used to execute the second preset step to obtain a second execution result and provide the second execution result to the application. The unified exception handling module is used to capture the exception data generated by the application during operation and perform exception handling based on the exception data. The unified filtering module is used to filter the log information generated by the application during operation. The public plug-in module is used to execute the third preset step to obtain a third execution result and provide the third execution result to the application.

[0060] Furthermore, when the first class loader of the embodiment of the present application loads an application, in addition to loading the application's class files, it also loads the environment on which the application class files depend on for running, that is, it loads the first Spring container. For example, for a web application implemented based on the Spring framework, the running of its class files needs to rely on the Spring container, so the first class loader will also load a Spring container, so that the application's class can run based on the running mode specified by the Spring framework.

[0061] In embodiments of the present application, by loading the environment that class files rely on for execution, it is possible to avoid executing application class files based on the device's default environment, thereby improving program portability. As an example, in the prior art, when application S relies on the JNDI capabilities of the Spring framework, an application S may run normally on device A, but fail to run properly when ported from device A to device B. This is because the environment provided by device A differs from that provided by device B. For example, the environment provided by device A supports JNDI capabilities, while device B does not. In contrast, embodiments of the present application can load application class files and create a container compatible with the class files, allowing the application class files to run normally, rather than using the device's default system environment. This avoids the problem of application class files being incompatible with the system environment, thereby improving portability. For example, when an application is deployed on device A, a container compatible with the class files will be created. When the application is deployed on device B, a container compatible with the class files will also be created, eliminating the reliance on the system's own container.

[0062] In some scenarios, the first class loader also loads common bean modules, unified exception modules, unified filtering modules, and common plug-in modules to support application operation. Common bean modules refer to JavaBeans, a software component model similar to ActiveX controls. They provide known functionality and can be easily reused and integrated into Java classes within applications. Any object created using Java code can be encapsulated using JavaBeans. By rationally organizing JavaBeans with different functions, a new application can be quickly generated. If the application is compared to a car, then the JavaBeans are like the different parts that make up the car. For software developers, the greatest advantage of JavaBeans is that they greatly improve code reusability and contribute positively to software maintainability and ease of maintenance. Unified exceptions refer to exception monitoring components that can be called by multiple functional components within an application. This exception monitoring component captures exception information generated during the execution of these functional components and reports or performs appropriate exception handling. Unified processes refer to information filtering components that can be called by multiple functional components within an application. For example, this information filtering component can filter out information that requires technical attention from numerous runtime logs. A public plug-in is a plug-in that can be called by multiple functional components under an application, wherein the plug-in can be used to obtain world time, etc.

[0063] In this optional implementation, since the public bean module, unified exception module, unified filtering module, and public plug-in module are generally irrelevant to business functions, changes to the application basically do not involve changes to the functional code of this part. Therefore, the public bean module, unified exception module, unified filtering module, and public plug-in module are separated, which can avoid the impact of application changes on the public bean module, unified exception module, unified filtering module, and public plug-in module, and reduce the amount of code testing after application changes.

[0064] In the embodiment of the present application, the first subsystem further includes a module deployment interface (eg Figure 1 The module deployment API shown in the figure) refers to the application programming interface (API) used to deploy the functional components of an application, that is, the module deployment interface is used to receive deployment instructions for the functional components of an application, and deploy the functional components of the application based on the deployment instructions. For example, through this application interface, the corresponding deployment parameters for adding or deleting the functional components of the application can be obtained, and the application component management module can be called through this application interface to add a component or delete a component for an application.

[0065] In the embodiment of the present application, the first subsystem further includes a resource interface (such as Figure 1 The resource API shown in the figure) refers to an application program interface for configuring the resources of an application or a functional component of an application, that is, receiving resource setting instructions for the application and memorizing the resource setting instructions to set the resources of the application. For example, through this application interface, you can set the image resources referenced by the application, or set the image resources referenced by the functional components of the application.

[0066] In the embodiment of the present application, the first subsystem further includes a configuration interface (eg Figure 1 The configuration API shown in the figure) refers to an application programming interface for configuring the operating parameters of an application or a functional component of an application, that is, for receiving configuration instructions for an application and configuring the operating parameters of the application or the functional component of the application based on the configuration instructions, for example, configuring the dependent packages of the application or setting the environmental parameters of the application.

[0067] In some scenarios, an application consists of multiple functional components, and when making changes to the application, only one of the functional components needs to be changed. For example, application A consists of functional component A1, functional component A2, functional component A3, and functional component A4. When making changes to application A, only functional component A1 needs to be changed. At this time, in order to reduce the impact of the change of functional component A1 on functional component A2, functional component A3, and functional component A4, the embodiment of the present application is provided with a second class loader, wherein, for different functional components of the same application, the system can create an independent second class loader for each functional component, for example, create an instance of a second class loader for functional component A1, create an instance of a second class loader for functional component A2, create an instance of a second class loader for functional component A3, and create an instance of a second class loader for functional component A4. In this way, functional component A1, functional component A2, Functional component A3 and functional component A4 both run in an independent environment constructed by the second class loader, that is, functional component A1, functional component A2, functional component A3, and functional component A4 are loaded independently instead of being loaded uniformly by the same second class loader, thereby avoiding the need to republish and test the entire functional component when one of the functions is changed due to the loading of the changed functional component together with other functional components. For example, when functional component A1 is changed, only functional component A1 and the republished functional component A1 need to be republished, without republishing functional component A1 and functional component A2, functional component A3, and functional component A4. Since functional components A2, functional component A3, and functional component A4 are not republished, functional components A2, functional component A3, and functional component A4 do not need to be tested, and only functional component A1 needs to be tested, thereby reducing the measurement.

[0068] In an embodiment of the present application, the third subsystem includes a second Spring container, a component plug-in and a protocol interface; the second Spring container is used to respond to the management of objects of the functional components of the application, that is, to respond to the creation, assembly or destruction instructions of the functional components of the application; the component plug-in is used to respond to the plug-in call instructions of the functional components of the application, and then provide a plug-in for the functional components of the application based on the call instructions; the protocol interface is used to respond to communication requests for the functional components of the application to parse the communication requests based on the preset communication protocol.

[0069] In some scenarios, when the second class loader loads a functional component, in addition to loading the class file of the functional component, it also loads the environment on which the functional component class file depends on, that is, it loads the second Spring container. For example, for a functional component implemented based on the Spring framework, the operation of its class file needs to rely on the Spring container, so the second class loader will also load a Spring container, so that the class of the functional component can run based on the operation mode specified by the Spring framework.

[0070] In an embodiment of the present application, by loading the environment that the class files of the functional components rely on to run, it is possible to avoid executing the application class files based on the default environment of the device, thereby improving the portability of the program. As an example, in the prior art, when the operation of the functional component relies on the JNDI capability of the Spring framework, a functional component may run normally when running on device A, but fail to run normally when the functional component is ported from device A to device B. The specific reason is that the environment provided by device A is different from the environment provided by device B. For example, the environment provided by device A supports JNDI capabilities, while device B does not. In contrast, the embodiment of the present application can load the class files of the functional component and create a container that is compatible with the class files, so that the application class files can run normally, instead of using the default system environment of the device, thereby avoiding the problem of the application class files being incompatible with the system environment, thereby improving portability. For example, when the functional component is deployed on device A, a container that is compatible with the class files will be created. When the functional component is deployed on device B, a container that is compatible with the class files will also be created, thus avoiding the reliance on the container (environment) provided by the system itself.

[0071] In some scenarios, the second class loader will also load component plug-ins and protocol interfaces used to support the operation of functional components. The plug-in functions implemented by the component plug-ins are called by the functional components in the form of calls. In this way, when the functional component is changed and needs to be re-released, since the component plug-in is not coupled with the functional component, only the functional component needs to be redeployed and tested, without the need to re-release or test the component plug-in, thereby avoiding the impact of changes to the functional component on the component plug-in and reducing the amount of code testing. On the other hand, the protocol interface is used to process data in a preset protocol encoding or decoding format. For example, when the functional component receives data sent by the server, the https protocol interface can be called to parse the data. Since changes to the functional component generally do not involve changes to the data communication protocol, that is, the data communication protocol generally processes data according to fixed processing steps and does not require changes, the protocol interface is independent of the functional component. When the functional component is changed and needs to be republished, only the functional component needs to be redeployed and tested, without the need to republish or test the protocol interface, thereby avoiding the impact of changes to the functional component on the protocol interface and reducing the amount of code testing.

[0072] Example 2

[0073] See also Figure 2 , Figure 2 This is a flow chart of a module deployment method disclosed in an embodiment of the present application. Figure 2 As shown, the method of the embodiment of the present application includes the following steps:

[0074] 101. When a deployment instruction for a functional component of an application is received, a module deployment interface is called based on the deployment instruction;

[0075] 102. Complete the deployment of functional components based on the module deployment interface.

[0076] In the embodiment of the present application, optionally, after completing the deployment of the functional component based on the module deployment interface, the method further includes:

[0077] Get test instructions for the functional components to be deployed;

[0078] Test the functional components to be deployed based on the test instructions and obtain the test results.

[0079] Example 3

[0080] See also Figure 3 , Figure 3 is a structural diagram of an electronic device disclosed in an embodiment of the present application, such as Figure 3 As shown, the electronic device of the embodiment of the present application includes:

[0081] A memory 201 storing executable program code;

[0082] a processor 202 coupled to the memory 201;

[0083] The processor 302 calls the executable program code stored in the memory 301 to execute the module deployment method according to the embodiment of the present application.

[0084] By implementing the module deployment method, the electronic device of the present application can isolate business function logic. Modifications to each business logic function independently affect each other. Modifying one business logic function does not affect other business logic functions due to the two-layer isolation mechanism. Bug fixes and feature additions are very convenient and reliable. Full regression testing is not required, greatly reducing testing workload. Releases only require the modified module. Because all capabilities are independent of the container itself, any standard web container can be ported and started normally without compatibility issues.

[0085] Example 4

[0086] An embodiment of the present application discloses a storage medium, which stores computer instructions. When the computer instructions are called, they are used to execute the module deployment method of the embodiment of the present application.

[0087] The storage medium of the present embodiment, through the module deployment method, can isolate business function logic. Modifications to each business logic function independently affect each other. Modifying one business logic function does not affect other business logic functions due to the two-layer isolation mechanism. Bug fixes and feature additions are very convenient and reliable. Full regression testing is not required, greatly reducing testing workload. Releases only require the modified module. Because all capabilities are independent of the container itself, any standard web container can be ported and started normally without compatibility issues.

[0088] In the embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, 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 through some communication interface, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0089] In addition, the units described as separate components may or may not be physically separate, and the 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 the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0090] Furthermore, the functional modules in each embodiment of the present application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0091] It should be noted that if the function is implemented in the form of a software function module 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 the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment 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.

[0092] In this document, relational terms such as first and second, etc. are used merely to distinguish one entity or operation from another entity or operation, but do not necessarily require or imply any actual relationship or order between these entities or operations.

[0093] The above description is merely an embodiment of the present application and is not intended to limit the scope of protection of the present application. For those skilled in the art, various modifications and variations of the present application are possible. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A modular development and deployment system, characterized in that: The system includes: a first subsystem, a second subsystem, and a third subsystem; The first subsystem includes a first module, and the first module is used to return an execution result of executing the first preset step to the application in the second subsystem; The second subsystem includes a first class loader for loading the application, wherein the first class loader loads the application based on an isolation mechanism; the third subsystem includes a second class loader for loading functional components of the application after the first class loader loads the application, wherein the second class loader loads multiple functional components based on the isolation mechanism; And, the first module includes a life cycle module, a monitoring module, a protocol support module, an application component management module and an isolation scheduling module; The life cycle module is used to manage the life cycle of the application; The monitoring module is used to monitor and visualize the running results of the application; The protocol support module is configured to process a communication request initiated by the application of the second subsystem based on a preset communication protocol; The application component management module is used to manage the components of the application of the second subsystem; The isolation scheduling module is used to determine the applications or functional components that need to be isolated and scheduled based on the preset isolation strategy; Furthermore, the second subsystem further includes a first Spring container, a common bean module, a unified exception handling module, a unified filtering module and a common plug-in module, wherein the first Spring container is used to manage objects of the application; The common bean module is used to execute the second preset step and obtain a second execution result, and provide the second execution result to the application; The unified exception handling module is used to capture the exception data generated by the application during operation and perform exception handling based on the exception data; The unified filtering module is used to filter the log information generated by the application during operation; The common plug-in module is used to execute the third preset step to obtain a third execution result, and provide the third execution result to the application.

2. The system according to claim 1, wherein The first subsystem also includes a module deployment interface, a resource interface, and a configuration interface; The module deployment interface is configured to receive deployment instructions for functional components of the application and deploy the functional components of the application based on the deployment instructions; The resource interface is configured to receive a resource setting instruction for the application and set resources for the application based on the resource setting instruction; The configuration interface is used to receive configuration instructions for the application and configure operating parameters of the application or functional components of the application based on the configuration instructions.

3. The system according to claim 1, wherein: The third subsystem includes a second Spring container, a component plug-in and a protocol interface; The second Spring container is used to manage objects of the functional components of the application in response; The component plug-in is used to respond to a plug-in calling instruction for the functional component of the application, and provide a plug-in for the functional component of the application based on the plug-in calling instruction; The protocol interface is used to respond to a communication request for the functional component of the application, so as to parse the communication request based on a preset communication protocol.

4. A deployment method applied to the modular development and deployment system according to any one of claims 1 to 3, characterized in that: The method comprises: When a deployment instruction for a functional component of an application is received, calling a module deployment interface based on the deployment instruction; The deployment of the functional components to be deployed is completed based on the module deployment interface.

5. The method according to claim 4, wherein After completing the deployment of the functional component based on the module deployment interface, the method further includes: Obtaining a test instruction for the functional component to be deployed; The functional component to be deployed is tested based on the test instruction, and a test result is obtained.

6. An electronic device, characterized in that: The electronic device is applied to the modular development and deployment system according to any one of claims 1 to 3, and the electronic device includes: a memory storing executable program code; a processor coupled to the memory; The processor calls the executable program code stored in the memory to execute the deployment method according to any one of claims 4 to 5.

7. A storage medium, characterized in that: The storage medium is applied to the modular development and deployment system according to any one of claims 1-3, and the storage medium stores computer instructions, which, when called, are used to execute the deployment method according to any one of claims 4-5.

Citation Information

Patent Citations

  • Application merging and deploying method, device and equipment and computer readable storage medium

    CN110018913A

  • Java class file loading method and device supporting component hot deployment

    CN112035192A