A dynamic scaling system and method

By dynamically expanding the system and methods, and utilizing a combination of packaging, uploading, management, and operation and maintenance modules, the system achieves automatic installation and function invocation of plugins, solving the problem of requiring manual system restarts in existing technologies, and improving the system's scalability and user experience.

CN115718604BActive Publication Date: 2026-05-08HARBIN HYLINK INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HARBIN HYLINK INFORMATION TECH CO LTD
Filing Date
2022-11-23
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

The existing software system requires a manual restart to load plugin functionality during plugin installation, and cannot be automatically updated and upgraded, resulting in poor scalability.

Method used

This paper provides a dynamic expansion system and method. Through the communication connection between the plugin end and the platform end, and by using the combination of packaging module, upload module, management module and operation and maintenance module, the automatic installation and invocation of plugins are realized, forming a complete closed loop process, including plugin packaging, uploading, loading and function invocation, avoiding system restart.

Benefits of technology

It enables automatic installation and function invocation of plugins, improves the system's scalability, optimizes the user experience, enhances the system's scalability and compatibility, and reduces coupling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115718604B_ABST
    Figure CN115718604B_ABST
Patent Text Reader

Abstract

The application provides a dynamic expansion system and method, and relates to the technical field of computers.The system comprises a plug-in end and a platform end.The plug-in end comprises a packaging module and a plug-in.The platform end comprises an uploading module, a management module and an operation and maintenance module.The plug-in is used to expand the function of the platform end.The packaging module is used to generate a plug-in installation package.The uploading module is used to upload the plug-in installation package to the management module.The management module is used to load and install the plug-in installation package.The operation and maintenance module is used to obtain and call the data information of the installed plug-in of the management module.The application calls the plug-in through the operation and maintenance module, so that the correlation between the plug-ins is low.The complete closed-loop process of loading and installing the plug-in to putting the plug-in into use is formed through the sequential application of the packaging module, the uploading module, the management module and the operation and maintenance module.The operation of installing and using the plug-in is performed when the system is running, and the core code of the system does not need to be modified, so that the automatic updating improves the expansibility of the dynamic expansion system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and more specifically, to a dynamic expansion system and method. Background Technology

[0002] Software system development involves designing software systems based on the specific circumstances and requirements of an enterprise, and providing corresponding customized development services. With the development of technology and the rise of mid-sized enterprises, the level of enterprise informatization is constantly improving. Many enterprises have realized that using dedicated software systems can greatly improve the utilization rate of funds, the work efficiency of employees, reduce costs, and integrate with existing business.

[0003] However, existing software systems can no longer meet the business needs of society. When developing software systems, due to considerations such as system stability, the default setting requires a system restart to reload configuration files in the system memory. Therefore, when installing plugins to update business functions, the plugins are only installed on the hard drive; the software system cannot directly load the plugins into system memory, meaning that the plugin's functionality cannot be used directly. A manual restart of the software system is required to enable plugin usage, and automatic updates and upgrades are not possible, resulting in poor scalability of the software system. Summary of the Invention

[0004] The problem solved by this invention is that the software system needs to be manually restarted to use the plugin, and it cannot be automatically updated and upgraded, resulting in poor scalability of the software system.

[0005] To address the above problems, this invention provides a dynamic expansion system and method.

[0006] In a first aspect, the present invention provides a dynamic expansion system, comprising: a plug-in end and a platform end, the plug-in end and the platform end being communicatively connected, the plug-in end including a packaging module and plug-ins, the packaging module being communicatively connected to the plug-ins; the platform end including an upload module, a management module and an operation and maintenance module, the upload module, the management module and the operation and maintenance module being communicatively connected in sequence;

[0007] Plugins are used to extend the functionality of the platform.

[0008] The packaging module is used to generate plugin installation packages;

[0009] The upload module is used to upload plugin installation packages to the management module;

[0010] The management module is used to load and install plugin installation packages;

[0011] The operations and maintenance module is used to obtain and call the data information of the installed plugins of the management module.

[0012] Optionally, the management module includes a preloading unit, which is used to preload the plugin installation package and select the installation method of the plugin installation package according to preset information.

[0013] Optionally, the management module also includes a plugin management unit, which is used to uninstall, start, and stop installed plugins.

[0014] Optionally, the operation and maintenance module includes a virtual machine unit and a plug-in operation and maintenance unit. The virtual machine unit and the plug-in operation and maintenance unit are connected in communication. The virtual machine unit integrates a class loader. The class loader is used to obtain data information of the installed plug-ins and upload the data information to the plug-in operation and maintenance unit. The plug-in operation and maintenance unit is used to call the data information. The class loader is also used to implement custom functions.

[0015] Optionally, the plugin includes a Flyway component, which is used to independently load the plugin's initialization data.

[0016] Optionally, the platform also includes a plugin ecosystem module, which communicates with the management module. The ecosystem module includes an acquisition unit, a parsing unit, a compatibility unit, and an output unit.

[0017] The acquisition unit is used to acquire business requirement data for the ecosystem and at least one ecosystem plugin;

[0018] The parsing unit is used to parse ecosystem plugins and obtain the dependencies and dependency information corresponding to at least one ecosystem plugin. The dependency information includes dependency data and dependency version.

[0019] The compatibility unit is used to traverse dependency information. When the dependency data is unique, the dependency with unique dependency data is retained; when at least two dependency data are the same, the dependency with the higher dependency version is retained.

[0020] The output unit is used to output dependencies with unique dependency data and dependencies with higher versions as an ecosystem deployment package and upload it to the management module.

[0021] Optionally, the platform also includes a plugin listening module, which communicates with both the management module and the operation and maintenance module. The plugin listening module integrates the PluginListener interface to monitor the status of plugins and installed plugins.

[0022] Optionally, the platform also includes multiple plugin interfaces. The plugin interfaces communicate with the management module. Each plugin interface includes a definition unit and a calling unit. The definition unit is used to define the plugin interface according to the function of the specified plugin, and the calling unit is used to call the specified plugin.

[0023] Optionally, the platform also includes an integrated dictionary module, which communicates with the management module and is used to integrate the underlying components for the basic operation of the platform.

[0024] This invention uses a packaging module to package plugins that extend platform functionality into a plugin installation package recognizable by the platform's management module, and then uploads it to the management module via the platform's upload module. The management module loads and installs the plugins, and the operation and maintenance module can call the installed plugins' functions at any time, enhancing the independence and reducing the interdependence between plugins. Through the sequential application of the packaging, upload, management, and operation and maintenance modules, a complete closed-loop process is formed from plugin loading and installation to system deployment. This process is executed while the platform is running, without requiring a platform restart or changes to the system's core code, enabling the platform to integrate plugin functionality and improving the scalability of the dynamically expanded system.

[0025] Secondly, the present invention provides a dynamic expansion method, based on the above-mentioned dynamic expansion system, comprising the following steps:

[0026] Retrieve plugins from the plugin side; plugins are used to extend the functionality of the platform side.

[0027] The plugin is packaged into an installation package using the packaging module within the plugin client.

[0028] The plugin installation package is uploaded to the management module within the platform via the upload module.

[0029] Load and install the plugin installation package through the management module;

[0030] The platform's operation and maintenance module acquires and calls data information of installed plugins from the management module. One embodiment of the present invention provides a dynamic expansion method that expands the platform's functionality by acquiring and installing plugins from the plugin module. By using the plugin packaging module and the platform's upload module, preliminary preparations are made for plugin installation, laying the foundation for automatic plugin installation. Through the platform's management and operation and maintenance modules, plugin installation can be achieved without restarting the dynamic expansion system. The sequential execution of the plugin packaging and upload modules, and the platform's management and operation and maintenance modules enables automatic plugin installation, allowing for automatic expansion of platform functionality. Furthermore, plugin installation and invocation occur while the platform is running, without requiring a restart of the dynamic expansion system, thus optimizing the user experience and enhancing the expansion capabilities of the dynamic expansion system. Attached Figure Description

[0031] Figure 1 This is a structural diagram of the dynamic expansion system in an embodiment of the present invention;

[0032] Figure 2 This is a flowchart of the dynamic expansion method in an embodiment of the present invention. Detailed Implementation

[0033] To make the above-mentioned objects, features, and advantages of the present invention more apparent and understandable, specific embodiments of the present invention will be described in detail below with reference to the accompanying drawings. Although some embodiments of the present invention are shown in the drawings, it should be understood that the present invention can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present invention. It should be understood that the accompanying drawings and embodiments of the present invention are for illustrative purposes only and are not intended to limit the scope of protection of the present invention.

[0034] It should be understood that the various steps described in the method embodiments of the present invention may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present invention is not limited in this respect.

[0035] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments"; the term "optionally" means "optionally embodiments". Definitions of other terms will be given in the description below.

[0036] It should be noted that the terms "a" and "a plurality of" used in this invention are illustrative rather than restrictive. Those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0037] The names of the messages or information exchanged between the multiple devices in the embodiments of the present invention are for illustrative purposes only and are not intended to limit the scope of these messages or information.

[0038] like Figure 1 As shown, this embodiment of the invention provides a dynamic expansion system, including: a plugin end and a platform end, the plugin end and the platform end being communicatively connected, the plugin end including a packaging module and a plugin, the packaging module being communicatively connected to the plugin; the platform end including an upload module, a management module and an operation and maintenance module, the upload module, the management module and the operation and maintenance module being communicatively connected in sequence;

[0039] Specifically, the platform is the main body of the dynamically expanding system, and the plugin is located on the platform. After the developers develop the corresponding plugins according to business needs, the developers save the plugins on the plugin side and then install them on the platform according to business needs.

[0040] In one embodiment, the platform and plugin sides of the dynamically extended system are written in JAVA. The platform side is developed using either the open-source framework Spring Boot or Spring MVC. Under the open-source framework, the platform and plugin sides are built from multiple different dependencies, which are components. Different dependencies have different functions. After the platform and plugin sides of the dynamically extended system are built, the functions of the platform side can be extended according to business needs.

[0041] The plugin is used to extend the functionality of the platform.

[0042] Specifically, in order for the dynamically extended system to complete the corresponding business functions, the developers develop plugins corresponding to the business functions and set the plugins on the plugin side so that the dynamically extended system can complete business updates or upgrades. For example, the platform needs to build a logging module with logging functions to record the operations, parameters, response time, response results, etc. of user requests using the dynamically extended system. The developers integrate the corresponding dependencies according to the logging function requirements, such as MySQL 5.0, Flyway, etc. After integrating the dependencies, a fully functional logging plugin is formed and saved on the plugin side for easy installation and use later.

[0043] The packaging module is used to generate a plugin installation package from the plugin.

[0044] In one embodiment, the packaging module acts as a connector between the platform and the plugin in the dynamic extension system. After developers create a plugin, the packaging module creates a plugin installation package that the platform management module can recognize and install. The packaging module serves as the starting step in the complete closed-loop process from plugin installation to system application, realizing the dynamic development function of the system and improving the system's scalability. In addition, the packaging module of this invention can use any one of the three packaging methods—Maven packaging, Gradle, or manual management of lib in the IntelliJ IDEA environment—to complete the packaging function.

[0045] The upload module is used to upload the plugin installation package to the management module;

[0046] Specifically, during the operation of the dynamically expanded system, the upload module on the platform side provides the function of uploading and importing the plugin installation package into the management module. The upload module is connected to the packaging module on the plugin side, serving as the port connecting the platform side and the plugin side, and realizing the closed-loop process function from plugin packaging to installation.

[0047] The management module is used to load and install the plugin installation package;

[0048] Specifically, the management module uses virtual machines and open-source frameworks to load and automatically install plugin installation packages.

[0049] In one embodiment, the management module includes a loading unit and an installation unit. The loading unit is used to load the plugin installation package, and the installation unit is used to install the plugin installation package according to the configuration file list.

[0050] Specifically, the loading unit loads the plugin installation package onto the installation unit, allowing the installation unit to install the plugin. The installation unit traverses the configuration file list to determine the information for each plugin. If the plugin installation package corresponds to the plugin required by the configuration file list, the plugin installation package is installed. If the plugin installation package does not correspond to the configuration file list, it is not installed automatically and an installation failure message is generated.

[0051] In some embodiments, the installation unit can also install the plugin while the dynamic extension system is running. For example, if an existing software server wants to upgrade or maintain, it can only pause the software to perform the upgrade and maintenance, and after the upgrade and maintenance, the main program needs to be restarted to load the upgrade and maintenance plugin. This affects the user's experience. The installation unit of this invention loads the .class files in the maintenance and upgrade plugin through the class loader and uploads them to the JVM virtual machine. Then, the open-source framework registers the class files in the JVM virtual machine with beans in the IOC container under the open-source framework for management. The installation unit adopts the Spring open-source framework and can perform the above maintenance and upgrade steps while the dynamic extension system is running. This solves the problem that the existing technology can only stop the system and stop the service to update the code. The installation unit of this invention does not need to restart the dynamic extension system to load the maintenance and upgrade plugin, so that the dynamic extension system has completed the maintenance and upgrade without the user's awareness, thus enhancing the user experience.

[0052] In another embodiment, the management module includes a preloading unit, which is used to preload the plugin installation package and select the installation method of the plugin installation package according to preset information.

[0053] Specifically, after the packaging module packages the plugin, the preloading unit preloads the plugin installation package from the packaging module. After preloading, based on preset information—that is, information pre-set according to specific business needs—the preloading unit selects an installation method to install the plugin installation package from the packaging module. Installation methods include scheduled automatic installation and manual installation. The preloading unit pre-obtains the data information of the plugin installation package, determines whether the plugin installation package is valid, and whether it is a plugin required by the system. If the plugin installation package is valid and a plugin required by the system, the preloading unit determines the installation method based on the preset information. If the business requires automatic installation, then automatic installation is performed according to the required time. If there is no need for automatic installation, a plugin installation reminder is generated to remind relevant personnel to manually install the plugin in a timely manner.

[0054] In some embodiments, the management module further includes a plugin management unit, which is used to uninstall, start, and stop the installed plugins.

[0055] Specifically, the management module implements functions such as loading, unloading, starting, stopping, and preloading of plugins installed on the platform through the virtual machine and open-source framework of the plugin management unit. The virtual machine and open-source framework can handle the installed plugins more stably. Each plugin is installed and loaded separately and managed through the IOC container of the open-source framework, which reduces the coupling and correlation of the various plugins in the system and increases compatibility.

[0056] The operation and maintenance module is used to obtain and call the data information of the installed plugins;

[0057] Specifically, after the management module loads and installs the plugin, the operation and maintenance module obtains the plugin's data information, including algorithms, functions, variables, databases, etc., that is, it obtains the plugin's functions. The module calls the plugin's functions in real time according to the needs of the system and business. If the plugin's functions are not needed, the module closes the call to the plugin, enabling the system to automatically clear the cache. This can optimize system operation, improve system efficiency, and extend the system's lifespan.

[0058] In one embodiment, the operation and maintenance module includes a virtual machine unit and a plugin operation and maintenance unit, which are communicatively connected. The virtual machine unit integrates a class loader, which is used to obtain data information of the installed plugins and upload the data information to the plugin operation and maintenance unit. The plugin operation and maintenance unit is used to call the data information. The class loader is also used to implement custom functions.

[0059] As a preferred approach, the operations and maintenance module uses a JVM virtual machine, and the class loader is selected as classLoader. The plugin operations and maintenance unit uses the SpringUtil.getBean function. After the management module installs the plugin on the platform, the class loader in the JVM virtual machine automatically loads the data information in the plugin, such as algorithms, dependencies, functions, variables, and databases, into the IOC container in the open-source framework. The IOC container manages this data. When the dynamically extended system needs the functionality of each plugin, the SpringUtil.getBean function can be used to call the plugin's functionality, that is, to load the algorithms, dependencies, functions, variables, and databases in the plugin into the system for execution. This allows for individual calls to plugin functionality, and there will be no call conflicts when calling different versions of the same type of dependency in the plugin. This enables the dynamically extended system to support multiple versions of the same type of dependency, reduces the coupling between dependencies, and enhances the compatibility of the dynamically extended system. For example, during system operation, the system needs to call different databases for different modules, namely the MySQL 5.7 database for user business and the MySQL 8.0 database for role management business. When it is necessary to call these two versions of the database separately, the class loader in the JVM virtual machine can automatically load the data information (algorithms, dependencies, functions, variables, databases, etc.) from the MySQL 5.7 database for user business and the MySQL 8.0 database for role management business into the IOC container in the open source framework. The IOC container manages this data. When the system is dynamically extended and the functionality of various plugins is required, the data information can be obtained and called through the SpringUtil.getBean function. The operation and maintenance module of this invention realizes the beneficial effect of dynamically extending the system to multiple versions of dependencies, improves system compatibility, and solves the problem of fixed dependency versions in existing technologies. The class loader can also implement custom functions. Developers can customize the class loader according to actual business needs. For example, according to actual business needs, when the platform installs plugins, it is necessary to perform data statistics on the installed plugins. Developers can add the custom function addCount to the class loader, which adds the count. When the input values ​​are 1 and 2, the platform can return the value 3. It should be understood that the custom functionality of the class loader is not limited to addCount. This invention only provides an example to illustrate the custom functionality of the class loader.

[0060] This invention utilizes a platform-side management module to load and automatically install plugins, as well as uninstall, start, and stop them, improving the efficiency of plugin installation and loading. Through the class loader and the `SpringUtil.getBean` function in the operations module, the functionality of plugins loaded onto the platform can be obtained, integrating the functions of each plugin into the dynamically extended system. Furthermore, the functionality of each plugin remains independent, reducing coupling between plugins and enhancing system scalability. Through mutual calls and joint applications between platform-side and plugin-side modules, a complete closed loop from plugin installation to system application is formed, enabling dynamic system development and improving system scalability.

[0061] In another embodiment, the plugin includes a Flyway component, which is used to independently load the plugin's initialization data.

[0062] Specifically, in existing technologies, each system or module needs to load all initialization data uniformly when loading initialization data, which causes unnecessary data redundancy. The plugin including the Flyway component provided by this invention can avoid loading initialization data for all modules, loading only the necessary modules, optimizing the system flow and saving system memory. After the new plugin is developed, each plugin integrates the Flyway component. When the platform loads initialization data for the plugin, the corresponding plugin's Flyway component generates an initialization data record and saves it in the plugin's file directory. When the dynamically extended system loads initialization data for other plugins, the Flyway component that has already generated an initialization data record will prevent the system from loading plugins that have already loaded initialization data. This solves the problem of needing to centrally load all initialization data in traditional systems and the problem of data redundancy caused by a large amount of useless data after loading. It enables independent loading of initialization data according to the needs of each module, optimizing system operation.

[0063] To more clearly explain the operating principle of the Flyway component, one embodiment of the present invention provides the operating process of the Flyway component, including:

[0064] Integrate the Flyway component into the plugin;

[0065] In the plugin, configure the directory folder for storing data in the Flyway component, and define the directory folder name as db;

[0066] Configure the database address of the target plugin;

[0067] Write the initialization data into an SQL script;

[0068] The written initialization data will be generated into a file named v1_addUser.sql;

[0069] Store the v1_addUser.sql file into a db file;

[0070] When installing plugins on the platform, the Flyway components and db files are installed on the platform.

[0071] When the dynamic expansion system executes the command to load initialization data, the v1_addUser.sql file runs, the SQL script runs, and the initialization data is imported into the configured database address, thus completing the corresponding initialization data command.

[0072] At the same time, the Flyway component will generate a history record, namely the flyway_schema_history file, which stores the v1_addUser.sql file that has already executed the initialization command;

[0073] The flyway_schema_history file stores the name, version, and install_time of the v1_addUser.sql file.

[0074] The next time the initialization data command is run, the dynamic extension system will check the history and iterate through the name, version, and install_time of the v1_addUser.sql file in the flyway_schema_history file. If the plugin's v1_addUser.sql file corresponds to the history, the initialization data command of the plugin corresponding to the v1_addUser.sql file will be skipped, and the initialization data command of other plugins will be executed.

[0075] In one embodiment, the platform further includes a plugin ecosystem module, which is communicatively connected to the management module. The ecosystem module includes an acquisition unit, a parsing unit, a compatibility unit, and an output unit.

[0076] The acquisition unit is used to acquire ecosystem business requirement data and at least one ecosystem plugin;

[0077] The parsing unit is used to parse the ecosystem plugin to obtain at least one dependency and dependency information corresponding to the ecosystem plugin, wherein the dependency information includes dependency data and dependency version.

[0078] The compatibility unit is used to traverse the dependency information. When the dependency data is unique, the dependency with the unique dependency data is retained. When at least two dependency data are the same, the dependency with the higher dependency version is retained.

[0079] The output unit is used to output the unique dependencies in the dependency data and the dependencies with higher versions into an ecosystem deployment package and upload it to the management module.

[0080] Specifically, when developing features, business requirements are often not a single, simple requirement, but rather a combination of multiple requirements forming a complete ecosystem business requirement. In this case, developing features based on the ecosystem business requirement is not something that can be solved simply by developing a plugin. Based on this, the present invention provides a plugin ecosystem module. Through the acquisition unit, it acquires ecosystem business requirement data and at least one ecosystem plugin. The ecosystem business data includes the functions of the business requirement, the selection of plugins, etc. The ecosystem plugin is a pre-developed plugin, that is, a plugin that has been installed on the platform and a plugin deployed on the plugin platform. Through the parsing unit, compatibility unit, and output unit, the developed plugin can be parsed and made compatible, and finally an ecosystem deployment package is generated.

[0081] In one embodiment, the ecosystem module is implemented using Java. A parsing unit parses the class files in each plugin JAR package, and an output unit aggregates all class files into an ecosystem deployment package (ZIP). During this aggregation process, a compatibility unit iterates through the dependency information of each plugin, compares and verifies each dependency. If a plugin's dependency information is unique, it is retained. If the dependency information is not unique (i.e., the plugins have different version information), the compatibility unit compares the versions of these dependencies and retains only the dependency with the highest version. If two dependencies have the same version information, one of them is randomly retained. This ensures backward compatibility and guarantees the complete functionality of the ecosystem deployment package. After the ecosystem module completes the final output of the ecosystem deployment package, the management module automatically installs and loads the ecosystem deployment package using the class loader in the JVM virtual machine. It also pre-loads ecosystem business requirement data to determine the installation method, which may include scheduled automatic installation or manual installation.

[0082] It should be understood that the plugin installation packages and ecosystem deployment packages generated by each module in this invention can be deleted after the management module is installed, based on the pre-set management rules, in order to reduce caching or reuse.

[0083] In one embodiment, the platform further includes a plugin listening module, which is communicatively connected to the management module and the operation and maintenance module. The plugin listening module integrates the PluginListener interface to monitor the status of the plugin.

[0084] Specifically, the plugin monitoring module can monitor the status information of the plugin, including but not limited to: the status before initialization, the status during initialization, the status after initialization; the status during loading, the status after loading is successful or failed, the status after uninstallation is successful or failed, the stability of the runtime, whether it is working, etc. The plugin monitoring module can obtain all the status information of the plugin. Based on this, the status of the dynamically extended system can be deduced and clearly displayed, which is convenient for developers or users to work.

[0085] In one embodiment, the platform further includes multiple plugin interfaces, which are communicatively connected to the management module. Each plugin interface includes a definition unit and a calling unit. The definition unit is used to define the plugin interface according to the function of a specified plugin, and the calling unit is used to call the specified plugin.

[0086] Specifically, the dynamically expandable system can install specified plugins on the plugin interface. A specified plugin refers to a plugin with specific and frequently changing functionality. When installing a specified plugin, the definition unit defines the plugin interface based on the plugin's function. Then, the plugin interface calls the specified plugin to complete the installation. For example, if the platform wants to have the functionality of a specific canvas, after developing the specified plugin for the canvas, the plugin interface is defined as the canvas plugin interface, and the specified plugin for the canvas is called. At this point, the platform has the canvas functionality. If subsequent requirements necessitate upgrading the canvas functionality or replacing it with a different canvas, then only the specified plugin for the new canvas needs to be developed according to the requirements, and the canvas plugin interface can directly call the specified plugin for the new canvas. The plugin interface of this invention enables rapid plugin replacement, standardizes the structure of the dynamically expandable system, and achieves loosely coupled dynamic expansion of the dynamically expandable system.

[0087] In one embodiment, the defining unit implements the function of defining a plugin interface by creating a class and selecting an interface category. If the plugin function is specified as deleting data, then the name of the defined plugin interface is delData. After the calling unit calls the specified plugin's data deletion function, the plugin interface can implement the function of deleting data.

[0088] In one embodiment, the platform further includes an integrated dictionary module, which is communicatively connected to the management module and is used to integrate the underlying components for the basic operation of the platform.

[0089] Specifically, the underlying components running on the platform include Mybatis-plus, Logback, and Swagger. As the core foundation of the dynamically expanding system, the platform undertakes the operation functions of the entire system. In order to enable the platform to have CRUD (Create, Read, Update, Delete) functions, this invention integrates the specific dependencies for running CRUD functions on the platform by integrating a dictionary module. In subsequent use, the dependencies for running on the platform can be added at any time by integrating the dictionary module according to the increase of business needs.

[0090] It should be understood that the platform's functionality is not limited to CRUD operations. As business needs increase, the platform can be integrated with a dictionary module to add dependencies for its operation.

[0091] For example, the dynamic expansion system of the present invention can also enable rapid plugin development. For instance, during the development of an IoT platform, if the IoT platform needs to connect to multiple hardware devices according to business requirements, then multiple driver plugins for devices connected to the IoT platform need to be developed. In traditional systems, each driver plugin needs to be developed separately, which is inefficient and time-consuming. With the dynamic expansion system of the present invention, a common software development kit (SDK) can be extracted from the interaction content between the IoT platform and the hardware devices. Subsequently, driver plugins for hardware devices can be developed based on the SDK, thus enabling rapid plugin development and saving manpower, material resources, and time costs.

[0092] In some embodiments, to more clearly explain the operating mechanism of the management module, the present invention provides another specific implementation step for installing a management module plugin, the installation step including:

[0093] The management module retrieves the plugin installation package;

[0094] Load all class files from the plugin installation package using the virtual machine in the management module;

[0095] The management module iterates through the names of all classes and uploads all classes to beans for management via the beanFactory under the open-source framework.

[0096] Upload the name and version number of the plugin installation package and bind it to all class classes;

[0097] Save the bound class, name, and version number.

[0098] In summary, this enables the installation of plugins in the management module of the dynamically expanded system.

[0099] In some embodiments, to more clearly explain the operating mechanism of the management module, the present invention provides specific implementation steps for uninstalling the management module plugin, the uninstallation steps including:

[0100] The management module queries all classes bound to a given name and version number.

[0101] Remove all classes using the removeBeanDefinition function in beanFactory;

[0102] Remove the name and version number that are bound to all classes.

[0103] In summary, this enables the management module in the dynamic expansion system to uninstall plugins.

[0104] like Figure 2 As shown, in order to implement the dynamic expansion system provided in the embodiments of the present invention, another embodiment of the present invention provides a dynamic expansion method, including:

[0105] Step 210: Obtain the plugins in the plugin side. The plugins are used to extend the functionality of the platform side.

[0106] Specifically, in order to enable the dynamic expansion system to fulfill business requirements, multiple plugins are deployed on the plugin side. These plugins are developed by developers based on actual business needs, or pre-developed plugins can be directly called and deployed on the plugin side. Each plugin has different functions and data information to fulfill the business requirements of the dynamic expansion system.

[0107] Step 220: Package the plugin into a plugin installation package using the packaging module within the plugin client.

[0108] Specifically, plugins on the plugin side need to be packaged into modules, which are then packaged into plugin installation packages that can be recognized by the dynamic extension system, in preparation for the subsequent installation of plugins in the management module.

[0109] Step 230: Upload the plugin installation package to the management module within the platform via the upload module.

[0110] Specifically, the plugin installation package is imported into the platform's management module through the platform's upload module for the management unit to install.

[0111] Step 240: Load and install the plugin installation package through the management module;

[0112] Specifically, after the management unit loads the plugin installation package, it iterates through the configuration file list to determine the plugin information to be installed. If the plugin installation package corresponds to the plugin information in the configuration file list, the plugin installation package is installed; otherwise, it is not installed and an installation failure message is generated. The management module installs plugins while the dynamic expansion system is running, and the dynamic expansion system does not need to stop business services or restart to load plugins.

[0113] Step 250: Obtain and call the data information of the installed plugins of the management module through the operation and maintenance module in the platform;

[0114] Specifically, the operation and maintenance unit can obtain data information of installed plugins, including algorithms, functions, variables, databases, etc., that is, obtain the functions of the plugins, and call the functions of the plugins in real time according to the business needs of the dynamically expanded system.

[0115] An embodiment of the present invention provides a dynamic expansion method that expands the functionality of a platform by acquiring and installing plugins within the plugin terminal. By using the packaging module on the plugin terminal and the upload module on the platform terminal, preliminary preparations are made for plugin installation, laying the foundation for automatic plugin installation. Through the management and maintenance modules on the platform terminal, plugin installation can be achieved without restarting the dynamic expansion system. The sequential operation of the packaging and upload modules on the plugin terminal, and the management and maintenance modules on the platform terminal, enables automatic plugin installation, allowing for automatic expansion of platform functionality. Furthermore, plugin installation and invocation occur while the platform is running, without requiring a restart of the dynamic expansion system, thus optimizing the user experience and enhancing the expansion capabilities of the dynamic expansion system.

[0116] While the present invention has been disclosed above, its scope of protection is not limited thereto. Those skilled in the art can make various changes and modifications without departing from the spirit and scope of the present invention, and all such changes and modifications will fall within the scope of protection of the present invention.

Claims

1. A dynamically expandable system, characterized in that, include: The system includes a plugin end and a platform end, which are connected in communication. The plugin end includes a packaging module and a plugin, and the packaging module is connected in communication with the plugin. The platform end includes an upload module, a management module, and an operation and maintenance module, which are connected in communication with each other in sequence. The plugin is used to extend the functionality of the platform. The packaging module is used to generate a plugin installation package from the plugin. The upload module is used to upload the plugin installation package to the management module; The management module is used to load and install the plugin installation package; The operation and maintenance module is used to obtain and call the data information of the installed plugins of the management module; The operation and maintenance module includes a virtual machine unit and a plugin operation and maintenance unit. The virtual machine unit and the plugin operation and maintenance unit are communicatively connected. The virtual machine unit integrates a class loader. The class loader is used to obtain the data information of the installed plugins and upload the data information to the plugin operation and maintenance unit. The plugin operation and maintenance unit is used to call the data information. The class loader is also used to implement custom functions. The plugin includes a Flyway component, which is used to independently load the plugin's initialization data; The platform also includes a plugin ecosystem module, which is communicatively connected to the management module. The ecosystem module includes an acquisition unit, a parsing unit, a compatibility unit, and an output unit. The acquisition unit is used to acquire ecosystem business requirement data and at least one ecosystem plugin; The parsing unit is used to parse the ecosystem plugin to obtain at least one dependency and dependency information corresponding to the ecosystem plugin, wherein the dependency information includes dependency data and dependency version. The compatibility unit is used to traverse the dependency information. When the dependency data is unique, the dependency with the unique dependency data is retained. When at least two dependency data are the same, the dependency with the higher dependency version is retained. The output unit is used to output the unique dependencies in the dependency data and the dependencies with higher versions into an ecosystem deployment package and upload it to the management module.

2. The dynamic expansion system according to claim 1, characterized in that, The management module includes a preloading unit, which is used to preload the plugin installation package and select the installation method of the plugin installation package according to preset information.

3. The dynamic expansion system according to claim 2, characterized in that, The management module also includes a plugin management unit, which is used to uninstall, start, and stop the installed plugins.

4. The dynamic expansion system according to claim 1, characterized in that, The platform also includes a plugin listening module, which is communicatively connected to the management module and the operation and maintenance module. The plugin listening module integrates the PluginListener interface to monitor the status of the plugins and the installed plugins.

5. The dynamic expansion system according to claim 1, characterized in that, The platform also includes multiple plugin interfaces, which are communicatively connected to the management module. Each plugin interface includes a definition unit and a calling unit. The definition unit is used to define the plugin interface according to the function of a specified plugin, and the calling unit is used to call the specified plugin.

6. The dynamic expansion system according to claim 1, characterized in that, The platform also includes an integrated dictionary module, which is communicatively connected to the management module and is used to integrate the underlying components for the basic operation of the platform.

7. A dynamic expansion method, implemented based on the dynamic expansion system according to any one of claims 1-6, characterized in that, include: Obtain plugins from the plugin side, which are used to extend the functionality of the platform side; The plugin is packaged into a plugin installation package using the packaging module within the plugin client. The plugin installation package is uploaded to the management module within the platform via the upload module. The plugin installation package is loaded and installed through the management module. The platform's operation and maintenance module obtains and calls the data information of the installed plugins of the management module.

Citation Information

Patent Citations

  • Easily-extensible data sharing system and method based on data sharing plug-in

    CN115237631A