WO2012037818A1 - Method and device for deploying and loading plug-ins - Google Patents
Method and device for deploying and loading plug-ins Download PDFInfo
- Publication number
- WO2012037818A1 WO2012037818A1 PCT/CN2011/075394 CN2011075394W WO2012037818A1 WO 2012037818 A1 WO2012037818 A1 WO 2012037818A1 CN 2011075394 W CN2011075394 W CN 2011075394W WO 2012037818 A1 WO2012037818 A1 WO 2012037818A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- plug
- interface
- plugin
- deployment
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Definitions
- the invention relates to a loading technology of a software plug-in, in particular to a method and a device for deploying and loading a plug-in. Background technique
- plugin interfaces are different, and for the convenience of processing, these different interfaces can be derived from the same base interface.
- the object of the present invention is to provide a plug-in deployment and loading method and device, which utilizes a large software plug-in group management, a process sharing program directory, a distributed in-process plug-in deployment and a plug-in loading method, and solves different professional networks of large network management. The problem.
- a plug-in deployment and loading method including the following steps:
- the deployment file analysis module calculates the plug-in group dependency tree according to the plug-in deployment file and the dependency relationship of the plug-in group;
- the program entry module obtains the process name of the process, and starts the process
- the plugin load module loads the plugin by process according to the plugin group dependency tree.
- a plug-in deployment and loading apparatus including: a plug-in grouping module, configured to divide a plug-in to be loaded into a plug-in group suitable for loading by a process;
- the plug-in deployment module is configured to establish a plug-in deployment file for the deployment process to load the plug-in group; and a deployment file analysis module, configured to calculate the plug-in group dependency tree according to the plug-in deployment file and the dependency relationship of the plug-in group;
- a program entry module configured to acquire a process name of the process, and start a process
- a plugin load module for loading plugins by process according to the plugin group dependency tree is
- the present invention supports distributed management by means of a plug-in in a grouping manner, and separates a process working directory from a program directory, and implements sharing of program files by different functional processes.
- FIG. 1 is a schematic flow chart of a plug-in deployment and loading method provided by the present invention
- FIG. 2 is a schematic structural diagram of a plug-in deployment and loading device provided by the present invention.
- FIG. 3 is a schematic diagram of grouping of network management plug-ins provided by an embodiment of the present invention.
- FIG. 4 is a schematic diagram of a process startup process and an analysis command line acquisition process name provided by an embodiment of the present invention
- FIG. 5 is a structural diagram of a software publishing directory provided by an embodiment of the present invention. detailed description
- FIG. 1 is a schematic flowchart of a plug-in deployment and loading method provided by the present invention, as shown in FIG. 1:
- Step 101 Group the plugins to be loaded.
- the method further includes: defining a plug-in interface: establishing a base extension point interface of the program and a plug-in base extension point interface instance function of the base extension point interface; establishing a derived interface derived from the base extension point and the derived interface Plugin derived interface instance function; Define the description file format of the plugin: Define the plugin ID, plugin interface type and plugin library name.
- the plug-in products can be divided into product plug-in units (PPU), PPU is the top-level group, and there are multiple plug-in management units (PMUs) under one PPU.
- PPU plug-in management units
- PMU Function plug-in function groups
- plugins or data files under the group. These plugin function groups can have cross plugins and data files.
- Step 102 Create a plug-in deployment file, in which the deployed plug-in group to be loaded by the process is deployed, and a process may have multiple deployment files, and the process loads the plug-ins according to the union of the files.
- Step 103 The deployment file analysis module calculates the plug-in group dependency tree according to the plug-in deployment file and the dependencies of the plug-in group.
- Step 104 The program entry module starts the process by analyzing the command line function to obtain the process name of the process.
- the program entry module needs to create the plugin factory interface, create a context interface, and then parse the plugin deployment file, the property data file, and the plugin group dependency tree.
- This step also includes: Establishing an attribute data file, which is a set of name value pairs required to define the process during startup or operation.
- attribute files are hierarchical, and multiple layers can be defined as needed.
- Step 105 The plugin loading module loads the plugin by process according to the plugin group dependency tree.
- 2 is a schematic structural diagram of a plug-in deployment and loading apparatus provided by the present invention. As shown in FIG. 2, the apparatus includes a plug-in definition module, a plug-in grouping module, a plug-in deployment module, a deployment file analysis module, a program entry module, an attribute data module, and The plugin loads the module. among them,
- the plugin definition module includes a plugin base extension point definition unit, a plugin derived interface definition unit, and a plugin description file definition unit;
- the plug-in base extension point definition unit is used to establish a program base extension point interface and an instance function of the base extension point interface.
- a plug-in derived interface definition unit that is used to build a derived interface derived from the underlying extension point interface and an instance function of the derived interface.
- a plug-in description file definition unit that defines a description file format of the plug-in, including: a plug-in ID, a plug-in interface type, and a plug-in library name.
- a plug-in grouping module configured to divide the plug-in to be loaded into a plug-in group suitable for loading by process.
- a plug-in deployment module that is used to establish a plug-in deployment file for the deployment process to load a plug-in group.
- the deployment file analysis module is configured to calculate a plug-in group dependency tree according to the plug-in deployment file and the dependencies of the plug-in group.
- a program entry module configured to acquire a process name of the process, start a process, and establish a plug-in factory interface for managing a plug-in base extension point interface instance function and a plug-in derived interface instance function, and establishing a context interface describing the runtime environment, and parsing the plug-in deployment Files, attribute data files, and plug-in group dependency trees.
- An attribute data module that defines the attribute data file for the process to start and run the required name-value pairs.
- a plugin load module for loading plugins by process according to the plugin group dependency tree.
- FIG. 3 shows a grouping diagram of the network management plug-in provided by the embodiment of the present invention.
- the top layer has two PPUs, bn.ppu and uca.ppu, and bn.ppu has bn-core-c.pmu, bn- Necommon-c.pmu and bn-res.pmu multiple PMUs, multiple plug-in function groups PMUFunction under each PMU, such as bn-res.pmu there are two functional groups osf and emf, each containing some directories, and There is a common directory common, and there are some numbers in the same directory as common. According to files, plugins and description files, the same level of dll is a normal dynamic library.
- the name is some code number
- the ratio bn represents the company's network
- the uca represents the unified public application
- the bn-necommon-c represents the bearer network element common module.
- Bn-res indicates the bearer network resource module
- osf indicates the operating system function
- emf indicates the network element mediation function.
- a program entry module first creates a plugin factory interface, and then creates a context interface, in a context initialization plugin function.
- Create a local system interface ILocalSystem the local system interface is responsible for analyzing the deployment and loading the launch plugin.
- the plugin factory interface IExtensionService, the context interface IContext, and the local system interface ILocalSystem must have one instance for each process.
- Under procs is the program and data files.
- There are some subdirectories under the corresponding directory of the process such as l 0 g directory to store the logs generated during the running process, and deploy to store the plug-ins. Deployment files and attribute data files.
- devices of various product lines need to be managed in one network management system.
- Each product line has multiple types of devices, and the difference between the devices is large.
- Managing devices in multiple product lines in a single network management system saves resources and facilitates unified management. In the case of a large number of devices, distributed management is required.
- ACE ADAPTIVE Communication Environment
- compiler vc7 or gcc supports multiple operating systems such as Win32, Solaris and Linux.
- Virtual void ProcessDebugCommand (std::string& cmd, :: StringList& paras, std::ostream&os);
- ProcessDebugCommand is a method that supports command line adaptation, similar to the basic functions to add functions as needed.
- IExtension *Create_Extension (const char* path, CProperties* properties) is the only export function of the plugin dynamic library pair, create an instance of the plugin base extension point, path is the directory path where the plugin is located, properties is The name-value pair of the plug-in property, the function returns the extension point pointer.
- the name of the plugin uses '., split string, such as ican.context.localservice.log to indicate a plugin id, ican. context. localservice indicates that it is an ILocalService corresponding plugin, and its sub-plugin is represented by the extension of the plugin id.
- ican.context.localservice.log.xxplg means ican. context. localservice sub-plugin, this id is a bit long, you can use the alias method to simplify the plugin id, such as log can be used as ican.context.localservice.log ⁇ another ll name .
- the plugin description file is defined by an xml file. The file defines the plugin ID, the version, the name of the corresponding dll, etc. It is also possible to stipulate that a certain type of sub-plugin is loaded by its parent plugin.
- Prelnit is used to set the context
- GetCtx is used to get the context
- IServant provides services to the process or remote process.
- the service provision is mainly implemented by Get and Set:
- Prelnit is used to set the context
- Get is the response message processing function
- CMsg is the message
- headinfo is the command code and the user header information
- Set is the non-response message processing function.
- the client can call IServant's Get and Set through IService, and IContext::HasServant can determine whether the servant is local.
- Prelnit is used to set the context and the name of the corresponding IServant servantName
- SetServant is used to set the name of the corresponding IServant
- Get is the response message processing function
- Set is the non-response message processing function.
- plugin grouping divide into multiple PPUs according to product functions, and PPU is the top group, one There are multiple PMUs under one PPU, and there are multiple PMUFunctions under one PMU.
- the PPU corresponds to a directory, and the PMU corresponds to a subdirectory under the PPU.
- a plugin function group can contain multiple directories of the PMU. Each directory has multiple plugins or data files. These plugin function groups may have cross directories. Dependencies on other functional groups are also defined in PMUFunction.
- IContext and IExtensionService interfaces which can be derived from IExtension.
- CreateExtension creates a base extension point instance named extName as a singleton.
- DestroyExtension destroys the extension point.
- GetExtensions gets all the child plugins of the principal pcSubject, that is, the partial prefix of the plugin ID split by V.
- IContext creates and runs the context of the plugin in a process: virtual void PreInit(IExtensionService*)
- Virtual IService* GetService (const char* extName, const char* strpmufunc);
- Virtual bool HasServant (const char* extName, const char* strpmufunc); Prelnit is used to set the plugin factory.
- GetLocalService gets the plugin function group strpmufunc
- the ILocalService named extName, strpmufunc is NULL, where the lookup scope is all PMUs of the process.
- GetServant gets the IServant named extName under the plugin function group strpmufunc.
- GetService gets the IService named extName under the plugin function group strpmufunc.
- HasServant determines whether the process plugin function group strpmufunc has an IServant named extName.
- GetExtService gets the plugin factory.
- Plug-ins and dlls are placed in the Procs directory according to the PPU and PMU sub-directories.
- PMUFunction contains those directories and plug-ins.
- Each function group corresponds to an xml description file.
- the Works directory is defined at the same level as Procs.
- the works directory is some process directories. Some data files related to the process, such as process deployment files and attribute data files.
- the program entry module specifies the process name through the program's command line, and the process's working directory is known by the process name, so that the process entry module can load different processes.
- Create IContext and IExtensionService pass the process working directory to ILocalSystem, ILocalSystem is responsible for loading the plug-ins needed for startup according to the deployment, and directly calling IContext to load the plug-ins on demand.
- the present invention has the following technical effects: 1. A group management plug-in, which facilitates management of plug-ins by large software. 2.
- the plug-in id and type can be defined by files. 3, has a unified plug-in interface, easy to create extension points. 4.
- the process working directory and the program directory are separated, so that multiple processes can share program files. 6, support process-related attribute name value pairs, to facilitate the definition of process variables. 7, because of the use of object-oriented interface mechanism, has a high degree of abstract processing power.
- the methods themselves are generic, independent of the specific operating system and specific object-oriented languages, and even implemented in structured languages.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
一种插件部署和加载的方法及装置 技术领域 Method and device for plug-in deployment and loading
本发明涉及一种软件插件的加载技术, 特别涉及一种插件部署和加载 的方法及装置。 背景技术 The invention relates to a loading technology of a software plug-in, in particular to a method and a device for deploying and loading a plug-in. Background technique
在大型软件开发中, 为了方便对软件进行功能扩展, 实现模块内的高 内聚, 模块间的低耦合; 为了实现发布软件功能的可定制性, 往往釆用插 件式开发, 将一个个功能封装在插件中实现, 这些插件有多种类型, 即遵 循的插件接口不一样, 而为了处理上的方便, 这些不同的接口可以派生于 同一个基础接口。 In large-scale software development, in order to facilitate the function expansion of the software, high cohesion within the module, low coupling between modules; in order to achieve the customizable function of the release software, plug-in development is often used, and the functions are packaged one by one. Implemented in the plugin, there are many types of plugins, that is, the plugin interfaces are different, and for the convenience of processing, these different interfaces can be derived from the same base interface.
在综合型的网管中, 需要管理各种专业网产品, 而每种专业网产品拥 有很多种设备, 专业网的特性也各有不同, 由于不同设备之间存在差异, 一个网管要管理数以万计的设备就需要多个进程、 分布式管理。 由于不同 进程所需部署的功能也不同 , 因此提供一种软件架构来开发这种大型网管 , 管理不同的专业网, 成为我们需要解决的问题。 发明内容 In the integrated network management, various professional network products need to be managed, and each professional network product has many kinds of devices, and the characteristics of the professional network are also different. Due to the difference between different devices, one network management has to manage tens of thousands. The metering device requires multiple processes and distributed management. Since the functions required for different processes are also different, providing a software architecture to develop such a large network management and managing different professional networks becomes a problem that we need to solve. Summary of the invention
本发明的目的在于提供一种插件部署和加载方法及装置, 釆用大型软 件插件分组管理、 进程共享程序目录和分布式进程内插件部署及插件加载 的方法, 解决了大型网管管理不同的专业网的问题。 The object of the present invention is to provide a plug-in deployment and loading method and device, which utilizes a large software plug-in group management, a process sharing program directory, a distributed in-process plug-in deployment and a plug-in loading method, and solves different professional networks of large network management. The problem.
根据本发明的一个方面, 提供了一种插件部署和加载方法, 包括以下 步骤: According to an aspect of the present invention, a plug-in deployment and loading method is provided, including the following steps:
A、 将待加载的插件进行分组; A. Group the plugins to be loaded;
B、 建立用于部署进程要加载分组后的插件组的插件部署文件; c、部署文件分析模块根据插件部署文件及插件组的依赖关系计算得到 插件组依赖树; B. Establish a plug-in deployment file for the deployment process to load the grouped plug-in group; c. The deployment file analysis module calculates the plug-in group dependency tree according to the plug-in deployment file and the dependency relationship of the plug-in group;
D、 程序入口模块获取进程的进程名, 启动进程; D, the program entry module obtains the process name of the process, and starts the process;
E、 插件加载模块根据插件组依赖树按进程加载插件。 E. The plugin load module loads the plugin by process according to the plugin group dependency tree.
根据本发明的另一方面, 提供了一种插件部署和加载装置, 包括: 插件分组模块, 用于将待加载的插件按类型划分成适于按进程加载的 插件组; According to another aspect of the present invention, a plug-in deployment and loading apparatus is provided, including: a plug-in grouping module, configured to divide a plug-in to be loaded into a plug-in group suitable for loading by a process;
插件部署模块, 用于建立部署进程要加载插件组的插件部署文件; 部署文件分析模块, 用于根据插件部署文件及插件组的依赖关系计算 得到插件组依赖树; The plug-in deployment module is configured to establish a plug-in deployment file for the deployment process to load the plug-in group; and a deployment file analysis module, configured to calculate the plug-in group dependency tree according to the plug-in deployment file and the dependency relationship of the plug-in group;
程序入口模块, 用于获取所述进程的进程名, 启动进程; a program entry module, configured to acquire a process name of the process, and start a process;
插件加载模块, 用于根据插件组依赖树按进程加载插件。 A plugin load module for loading plugins by process according to the plugin group dependency tree.
与现有技术相比较, 本发明的有益效果在于: 本发明通过分组形式加 载插件, 支持分布式管理, 进程工作目录和程序目录分离, 实现了不同功 能进程共享程序文件。 附图说明 Compared with the prior art, the present invention has the following advantages: The present invention supports distributed management by means of a plug-in in a grouping manner, and separates a process working directory from a program directory, and implements sharing of program files by different functional processes. DRAWINGS
图 1是本发明提供的插件部署和加载方法的流程示意图; 1 is a schematic flow chart of a plug-in deployment and loading method provided by the present invention;
图 2是本发明提供的插件部署和加载装置的结构示意图; 2 is a schematic structural diagram of a plug-in deployment and loading device provided by the present invention;
图 3是本发明实施例提供的网管插件分组示意图; 3 is a schematic diagram of grouping of network management plug-ins provided by an embodiment of the present invention;
图 4是本发明实施例提供的进程启动过程和分析命令行获取进程名称 的示意图; 4 is a schematic diagram of a process startup process and an analysis command line acquisition process name provided by an embodiment of the present invention;
图 5是本发明实施例提供的软件发布目录结构图。 具体实施方式 FIG. 5 is a structural diagram of a software publishing directory provided by an embodiment of the present invention. detailed description
以下结合附图对本发明的优选实施例进行详细说明, 应当理解, 以下 所说明的优选实施例仅用于说明和解释本发明, 并不用于限定本发明。 图 1显示了本发明提供的插件部署和加载方法的流程示意, 如图 1所 示: DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, The preferred embodiments illustrated are for illustrative purposes only and are not intended to limit the invention. FIG. 1 is a schematic flowchart of a plug-in deployment and loading method provided by the present invention, as shown in FIG. 1:
步骤 101 : 将待加载的插件进行分组。 Step 101: Group the plugins to be loaded.
本步骤之前还包括: 需对插件接口进行定义: 建立程序的基础扩展点 接口和该基础扩展点接口的插件基础扩展点接口实例函数; 建立派生于该 基础扩展点的派生接口和该派生接口的插件派生接口实例函数; 定义插件 的描述文件格式: 定义插件 ID、 插件接口类型和插件库名称。 Before this step, the method further includes: defining a plug-in interface: establishing a base extension point interface of the program and a plug-in base extension point interface instance function of the base extension point interface; establishing a derived interface derived from the base extension point and the derived interface Plugin derived interface instance function; Define the description file format of the plugin: Define the plugin ID, plugin interface type and plugin library name.
如按产品功能可将插件产品分为产品插件单元( PPU ), PPU是顶层组, 一个 PPU下有多个插件管理单元( PMU ), PMU下有多个插件功能组( PMU Function ), 插件功能组下有多个插件或数据文件, 这些插件功能组可以有 交叉插件和数据文件。 According to the product function, the plug-in products can be divided into product plug-in units (PPU), PPU is the top-level group, and there are multiple plug-in management units (PMUs) under one PPU. There are multiple plug-in function groups (PMU Function) under the PMU. There are multiple plugins or data files under the group. These plugin function groups can have cross plugins and data files.
步骤 102: 建立插件部署文件, 在该文件中部署进程要加载的分组后的 插件组, 一个进程可能有多个部署文件, 进程按这些文件的并集加载插件。 Step 102: Create a plug-in deployment file, in which the deployed plug-in group to be loaded by the process is deployed, and a process may have multiple deployment files, and the process loads the plug-ins according to the union of the files.
步骤 103:部署文件分析模块根据插件部署文件及插件组的依赖关系计 算得到插件组依赖树。 Step 103: The deployment file analysis module calculates the plug-in group dependency tree according to the plug-in deployment file and the dependencies of the plug-in group.
步骤 104: 程序入口模块通过分析命令行函数获取进程的进程名, 启动 进程。 Step 104: The program entry module starts the process by analyzing the command line function to obtain the process name of the process.
此外, 程序入口模块需先创建插件工厂接口, 再创建上下文接口, 然 后解析插件部署文件、 属性数据文件和插件组依赖树。 In addition, the program entry module needs to create the plugin factory interface, create a context interface, and then parse the plugin deployment file, the property data file, and the plugin group dependency tree.
本步骤之前还包括: 建立属性数据文件, 该文件是定义进程在启动或 运行过程中需要的一些名值对, 这些属性文件是分层的, 根据需要可以定 义多层。 Before this step, it also includes: Establishing an attribute data file, which is a set of name value pairs required to define the process during startup or operation. These attribute files are hierarchical, and multiple layers can be defined as needed.
步骤 105: 插件加载模块根据插件组依赖树按进程加载插件。 其中, 加 载插件可以有两种方式: 进程启动过程中加载某些插件, 或者运行过程中 按需加载插件。 图 2是本发明提供的插件部署和加载装置的结构示意, 如图 2所示, 该装置包括插件定义模块、 插件分组模块、 插件部署模块、 部署文件分析 模块、 程序入口模块、 属性数据模块和插件加载模块。 其中, Step 105: The plugin loading module loads the plugin by process according to the plugin group dependency tree. There are two ways to load a plugin: some plugins are loaded during the process startup, or plugins are loaded on demand during the run. 2 is a schematic structural diagram of a plug-in deployment and loading apparatus provided by the present invention. As shown in FIG. 2, the apparatus includes a plug-in definition module, a plug-in grouping module, a plug-in deployment module, a deployment file analysis module, a program entry module, an attribute data module, and The plugin loads the module. among them,
插件定义模块包括插件基础扩展点定义单元、 插件派生接口定义单元 和插件描述文件定义单元; 其中, The plugin definition module includes a plugin base extension point definition unit, a plugin derived interface definition unit, and a plugin description file definition unit; wherein
插件基础扩展点定义单元, 用于建立程序基础扩展点接口和该基础扩 展点接口的实例函数。 The plug-in base extension point definition unit is used to establish a program base extension point interface and an instance function of the base extension point interface.
插件派生接口定义单元, 用于建立派生于基础扩展点接口的派生接口 和该派生接口的实例函数。 A plug-in derived interface definition unit that is used to build a derived interface derived from the underlying extension point interface and an instance function of the derived interface.
插件描述文件定义单元, 用于定义插件的描述文件格式, 包括: 插件 ID、 插件接口的类型和插件库名称。 A plug-in description file definition unit that defines a description file format of the plug-in, including: a plug-in ID, a plug-in interface type, and a plug-in library name.
插件分组模块, 用于将待加载的插件划分成适于按进程加载的插件组。 插件部署模块, 用于建立部署进程要加载插件组的插件部署文件。 部署文件分析模块, 用于根据插件部署文件及插件组的依赖关系计算 得到插件组依赖树。 A plug-in grouping module, configured to divide the plug-in to be loaded into a plug-in group suitable for loading by process. A plug-in deployment module that is used to establish a plug-in deployment file for the deployment process to load a plug-in group. The deployment file analysis module is configured to calculate a plug-in group dependency tree according to the plug-in deployment file and the dependencies of the plug-in group.
程序入口模块, 用于获取所述进程的进程名, 启动进程, 并建立管理 插件基础扩展点接口实例函数和插件派生接口实例函数的插件工厂接口和 建立描述运行环境的上下文接口, 以及解析插件部署文件、 属性数据文件 和插件组依赖树。 a program entry module, configured to acquire a process name of the process, start a process, and establish a plug-in factory interface for managing a plug-in base extension point interface instance function and a plug-in derived interface instance function, and establishing a context interface describing the runtime environment, and parsing the plug-in deployment Files, attribute data files, and plug-in group dependency trees.
属性数据模块, 用于定义进程启动和运行所需名值对的属性数据文件。 插件加载模块, 用于根据插件组依赖树按进程加载插件。 An attribute data module that defines the attribute data file for the process to start and run the required name-value pairs. A plugin load module for loading plugins by process according to the plugin group dependency tree.
图 3显示了本发明实施例提供的网管插件分组示意, 如图 3所示, 顶 层有 bn.ppu、 uca.ppu 两个 PPU , 其中 bn.ppu 下有 bn-core-c.pmu、 bn-necommon-c.pmu和 bn-res.pmu多个 PMU, 每个 PMU下多个插件功能 组 PMUFunction, 如其中 bn-res.pmu下有两个功能组 osf和 emf, 各包含有 一些目录, 且存在共同的目录 common, 与 common同级的目录下是一些数 据文件、 插件及描述文件, 其中同级的 dll中为普通的动态库。 FIG. 3 shows a grouping diagram of the network management plug-in provided by the embodiment of the present invention. As shown in FIG. 3, the top layer has two PPUs, bn.ppu and uca.ppu, and bn.ppu has bn-core-c.pmu, bn- Necommon-c.pmu and bn-res.pmu multiple PMUs, multiple plug-in function groups PMUFunction under each PMU, such as bn-res.pmu there are two functional groups osf and emf, each containing some directories, and There is a common directory common, and there are some numbers in the same directory as common. According to files, plugins and description files, the same level of dll is a normal dynamic library.
这里只是具体实施例中的一个插件分组例子, 其中的名称是一些代号, 比^口 bn表示 A公司的^载网, uca表示统一公共应用 , bn-necommon-c表 示承载网网元公共模块, bn-res表示承载网资源模块, osf表示操作系统功 能, emf表示网元中介功能。 Here is only an example of a plug-in grouping in a specific embodiment, wherein the name is some code number, the ratio bn represents the company's network, the uca represents the unified public application, and the bn-necommon-c represents the bearer network element common module. Bn-res indicates the bearer network resource module, osf indicates the operating system function, and emf indicates the network element mediation function.
图 4显示了本发明实施例提供的进程启动过程和分析命令行获取进程 名称的示意, 如图 4所示, 程序入口模块首先创建插件工厂接口, 再创建 上下文接口 , 在上下文的初始化插件函数中创建本地系统接口 ILocalSystem, 本地系统接口负责分析部署及加载启动插件。 插件工厂接口 IExtensionService、 上下文接口 IContext和本地系统接口 ILocalSystem对于 每个进程必须存在一个实例。 procs下是程序和数据文件, 在 works下是一些进程对应的目录, 进程对应 的目录下有一些子目录, 如 l0g 目录用来存放运行过程中产生的日志, 而 deploy下用来存放插件部署文件和属性数据文件。 4 is a schematic diagram of a process startup process and an analysis command line acquisition process name provided by an embodiment of the present invention. As shown in FIG. 4, a program entry module first creates a plugin factory interface, and then creates a context interface, in a context initialization plugin function. Create a local system interface ILocalSystem, the local system interface is responsible for analyzing the deployment and loading the launch plugin. The plugin factory interface IExtensionService, the context interface IContext, and the local system interface ILocalSystem must have one instance for each process. Under procs is the program and data files. Under the works, there are some corresponding directories of the process. There are some subdirectories under the corresponding directory of the process, such as l 0 g directory to store the logs generated during the running process, and deploy to store the plug-ins. Deployment files and attribute data files.
下面结合图 1~图 3对统一网管的需求进行说明。 The requirements of the unified network management are described below with reference to FIG. 1 to FIG. 3.
(一)需求来源。 (1) Source of demand.
在统一网管中, 需要将各种产品线的设备在一个网管中管理, 各产品 线有多种类型的设备, 各设备的差异较大。 在一个网管中管理多个产品线 的设备, 既节省资源又便于统一管理, 在设备数量庞大的情况下, 需要分 布式的管理。 In a unified network management system, devices of various product lines need to be managed in one network management system. Each product line has multiple types of devices, and the difference between the devices is large. Managing devices in multiple product lines in a single network management system saves resources and facilitates unified management. In the case of a large number of devices, distributed management is required.
(二)开发平台。 (2) Development platform.
自适配通信环境 ACE ( ADAPTIVE Communication Environment ), 编 译器 vc7或 gcc, 支持 Win32、 Solaris和 linux等多个操作系统。 Self-adapted communication environment ACE (ADAPTIVE Communication Environment), compiler vc7 or gcc, supports multiple operating systems such as Win32, Solaris and Linux.
(三)插件式开发的实现。 (3) Implementation of plug-in development.
首先、 定义基础扩展点。 class IExtension { First, define the base extension point. Class IExtension {
public: Public:
IExtension(const char* version = "VI.0"); IExtension(const char* version = "VI.0");
virtual ~IExtension(){ } Virtual ~IExtension(){ }
virtual int Init(int argc, char *argv[]); Virtual int Init(int argc, char *argv[]);
virtual int Finish (); Virtual int Finish ();
virtual void SetVersion(const char* version); Virtual void SetVersion(const char* version);
virtual const char* GetVersion(); Virtual const char* GetVersion();
virtual void ProcessDebugCommand(std::string& cmd, :: StringList& paras, std::ostream& os); Virtual void ProcessDebugCommand(std::string& cmd, :: StringList& paras, std::ostream&os);
private: Private:
_STD_ string m_strVersion; _STD_ string m_strVersion;
Init根据进程启动参数初始化插件。 Finish用于在扩展点销毁前做清理 工作, 如关闭句柄和释放内存等。 GetVersion和 SetVersion用于设置插件版 本。 ProcessDebugCommand是一个支持命令行调适的方法, 类似基础功能 可根据需要添加函数。 Init initializes the plugin based on the process startup parameters. Finish is used to clean up the extension point before it is destroyed, such as closing the handle and freeing the memory. GetVersion and SetVersion are used to set the plugin version. ProcessDebugCommand is a method that supports command line adaptation, similar to the basic functions to add functions as needed.
插件基础扩展点实例创建函数 IExtension *Create_Extension (const char* path, CProperties* properties)是插件动态库对唯一的导出函数, 创建该 插件基础扩展点的实例, path是插件所在的目录路径, properties是该插件 属性的名值对, 函数返回扩展点指针。 Plugin base extension point instance creation function IExtension *Create_Extension (const char* path, CProperties* properties) is the only export function of the plugin dynamic library pair, create an instance of the plugin base extension point, path is the directory path where the plugin is located, properties is The name-value pair of the plug-in property, the function returns the extension point pointer.
插件的名称用 '., 分割字符串, 如 ican.context.localservice.log表示一 个插件 id, ican. context. localservice表示是一个 ILocalService对应々插件 , 通 过 对 插 件 id 加 扩 展 的 方 式 表 示 其 子 插 件 , 如 ican.context.localservice.log.xxplg表示 ican. context. localservice 子插件, 这 种 id 有点长, 可以釆用别名方式来简化插件 id , 如 log 可以作为 ican.context.localservice.log 々另 ll名。 插件描述文件用 xml文件定义, 文件中定义插件 ID、 版本、 对应 dll 的名称等, 也可以约定某种类型得子插件由其父插件来加载。 The name of the plugin uses '., split string, such as ican.context.localservice.log to indicate a plugin id, ican. context. localservice indicates that it is an ILocalService corresponding plugin, and its sub-plugin is represented by the extension of the plugin id. For example, ican.context.localservice.log.xxplg means ican. context. localservice sub-plugin, this id is a bit long, you can use the alias method to simplify the plugin id, such as log can be used as ican.context.localservice.log 々 another ll name . The plugin description file is defined by an xml file. The file defines the plugin ID, the version, the name of the corresponding dll, etc. It is also possible to stipulate that a certain type of sub-plugin is loaded by its parent plugin.
接着、 定义本地服务提供者接口 ILocalService、 服务接口 IServant和 IServant的本地或远程代理 IService接口, 这些接口派生自 lExtension, 这 些插件实现了网管的具体功能, 因此这些插件在数量上有很多, 如果需要 还可以定义一些其它插件接口。 下面给出了这三个接口的主要方法: Next, define the local service provider interface ILocalService, the service interface IServant and the IServant local or remote proxy IService interface, these interfaces are derived from lExtension, these plug-ins implement the specific functions of the network management, so there are many of these plug-ins, if necessary Some other plugin interfaces can be defined. The main methods of these three interfaces are given below:
( 1 ) ILocalService对本进程模块提供服务: (1) ILocalService provides services to this process module:
virtual void PreInit(IContext* ctx) Virtual void PreInit(IContext* ctx)
virtual IDefaultContext* GetCtx(void) Virtual IDefaultContext* GetCtx(void)
其中, Prelnit用于设置上下文, GetCtx用于获得上下文。 Among them, Prelnit is used to set the context, and GetCtx is used to get the context.
( 2 ) IServant对本进程或远程进程提供服务, 服务提供主要通过 Get、 Set来实现: (2) IServant provides services to the process or remote process. The service provision is mainly implemented by Get and Set:
virtual void PreInit(IContext* ctx) Virtual void PreInit(IContext* ctx)
virtual CMsg* Get (CMsg & msgbuf,CMsgHead & headinfo) Virtual CMsg* Get (CMsg & msgbuf, CMsgHead & headinfo)
virtual void Set (CMsg & msgbuf,CMsgHead& headinfo) Virtual void Set (CMsg & msgbuf, CMsgHead& headinfo)
Prelnit用于设置上下文, Get是有应答报文处理函数, CMsg表示报文, headinfo表示命令码和用户等报文头信息, Set是无应答报文处理函数。 Prelnit is used to set the context, Get is the response message processing function, CMsg is the message, headinfo is the command code and the user header information, and Set is the non-response message processing function.
( 3 )客户通过 IService 实现对 IServant 的 Get和 Set 的调用,通过 IContext::HasServant可以判断 servant是否在本地。 (3) The client can call IServant's Get and Set through IService, and IContext::HasServant can determine whether the servant is local.
virtual void PreInit(IContext* ctx, const char* servantName) Virtual void PreInit(IContext* ctx, const char* servantName)
virtual void SetServant(IIcanServant* servant) Virtual void SetServant(IIcanServant* servant)
virtual CMsg* Get(CMsg & msgbuf,CMsgHead& headinfo) Virtual CMsg* Get(CMsg & msgbuf,CMsgHead& headinfo)
virtual void Set(CMsg & msgbuf,CMsgHead& headinfo) Virtual void Set(CMsg & msgbuf,CMsgHead& headinfo)
Prelnit 用于设置上下文以及对应 IServant 的名称 servantName , SetServant用于设置对应 IServant的名称, Get是有应答报文处理函数, Set 是无应答报文处理函数。 Prelnit is used to set the context and the name of the corresponding IServant servantName , SetServant is used to set the name of the corresponding IServant, Get is the response message processing function, and Set is the non-response message processing function.
然后、 定义插件分组, 按产品功能分为多个 PPU, PPU是顶层组, 一 个 PPU下有多个 PMU, —个 PMU下有多个 PMUFunction。 PPU对应一个 目录, 而 PMU对应 PPU下的一个子目录, 一个插件功能组可以含有 PMU 的多个目录, 每个目录下有多个插件或数据文件, 这些插件功能组可能有 交叉目录。 PMUFunction中还定义了对其它功能组的依赖关系。 Then, define the plugin grouping, divide into multiple PPUs according to product functions, and PPU is the top group, one There are multiple PMUs under one PPU, and there are multiple PMUFunctions under one PMU. The PPU corresponds to a directory, and the PMU corresponds to a subdirectory under the PPU. A plugin function group can contain multiple directories of the PMU. Each directory has multiple plugins or data files. These plugin function groups may have cross directories. Dependencies on other functional groups are also defined in PMUFunction.
再定义进程部署, 在进程工作目录的文件中部署定义, 该文件可以有 多个, 部署定义文件用于定义本进程部署哪些 PMUFunction。 Redefine the process deployment, deploy the definition in the file of the process working directory, there can be more than one file, and the deployment definition file is used to define which PMUFunctions are deployed by the process.
之后定义 IContext 和 IExtensionService接口, 这些接口可以派生自 IExtension。 包括: Then define the IContext and IExtensionService interfaces, which can be derived from IExtension. Includes:
( 1 )定义 IExtensionService的方法: (1) Define the method of IExtensionService:
virtual IExtension* CreateExtension(const char* extName, bool isSingleton); Virtual IExtension* CreateExtension(const char* extName, bool isSingleton);
virtual void DestroyExtension(IExtension *pcExtension) = 0; Virtual void DestroyExtension(IExtension *pcExtension) = 0;
virtual StringList GetExtensions(const char* pcSubject) = 0; Virtual StringList GetExtensions(const char* pcSubject) = 0;
CreateExtension按照是否以单例方式创建名为 extName的基础扩展点 实例。 DestroyExtension销毁扩展点。 GetExtensions获取主体 pcSubject的 所有子插件,即用 V 分割的插件 ID的部分前缀。 CreateExtension creates a base extension point instance named extName as a singleton. DestroyExtension destroys the extension point. GetExtensions gets all the child plugins of the principal pcSubject, that is, the partial prefix of the plugin ID split by V.
( 2 ) IContext在某个进程中创建和运行插件的上下文的方法: virtual void PreInit(IExtensionService*) (2) IContext creates and runs the context of the plugin in a process: virtual void PreInit(IExtensionService*)
virtual ILocalService* GetLocalService(const char* extName,const char* strpmufunc); Virtual ILocalService* GetLocalService(const char* extName, const char* strpmufunc);
virtual IServant* GetServant(const char* extName,const char* strpmufunc); Virtual IServant* GetServant(const char* extName, const char* strpmufunc);
virtual IService* GetService (const char* extName,const char* strpmufunc); Virtual IService* GetService (const char* extName, const char* strpmufunc);
virtual IExtensionService* GetExtService(); Virtual IExtensionService* GetExtService();
virtual bool HasServant(const char* extName,const char* strpmufunc); Prelnit用于设置插件工厂。 GetLocalService获得插件功能组 strpmufunc 下的名为 extName的 ILocalService , strpmufunc为 NULL, 其中, 查找范围 为本进程的所有 PMU。 GetServant获得插件功能组 strpmufunc 下的名为 extName 的 IServant。 GetService 获得插件功能组 strpmufunc 下的名为 extName的 IService。 HasServant判断本进程插件功能组 strpmufunc是否存 在名为 extName的 IServant。 GetExtService获得插件工厂。 Virtual bool HasServant(const char* extName, const char* strpmufunc); Prelnit is used to set the plugin factory. GetLocalService gets the plugin function group strpmufunc The ILocalService named extName, strpmufunc is NULL, where the lookup scope is all PMUs of the process. GetServant gets the IServant named extName under the plugin function group strpmufunc. GetService gets the IService named extName under the plugin function group strpmufunc. HasServant determines whether the process plugin function group strpmufunc has an IServant named extName. GetExtService gets the plugin factory.
随后、 ILocalSystem派生于 ILocalService, 是本进程部署分析和插件组 分析模块, 读取本进程属性数据文件中的名值对, 分析本进程部署哪些插 件组及插件组依赖树, 在本实施方式中只要分析部署哪些功能组 PmuFunction以及它们的依赖树, 依赖树中叶子节点对父节点有依赖, 然后 从树^ =艮节点分层向叶子节点加载插件, 同一个 PMUFunction下的插件可以 按目录或插件名定义先后加载顺序。 约定某种原则在程序启动时加载某些 类型插件, 有些类型插件按需加载, 如本实施方式中启动时加载具有 IServant扩展点的插件。 Subsequently, ILocalSystem is derived from ILocalService, which is the process deployment analysis and plug-in group analysis module. It reads the name value pairs in the process attribute data file, and analyzes which plug-in groups and plug-in group dependency trees are deployed in this process. In this embodiment, Analyze which functional groups PmuFunction and their dependency trees are deployed. The leaf nodes in the dependency tree have dependencies on the parent nodes. Then, the plugins are loaded from the tree ^=艮 node layer to the leaf nodes. The plugins under the same PMUFunction can be named by directory or plugin. Define the order of loading. Some principles are agreed to load certain types of plugins when the program starts, and some types of plugins are loaded as needed. For example, in this embodiment, plugins with IServant extension points are loaded at startup.
在实现上面各接口功能或插件后, 发布软件。 插件及 dll按 PPU、 PMU 分目录放在 Procs目录下, PMUFunction中含有那些目录和插件, 每个功能 组对应一个 xml描述文件, 在 Procs同级别定义 works目录, works目录下 是一些进程目录, 存放与进程相关的一些数据文件, 如进程部署文件和属 性数据文件等。 After implementing the above interface functions or plug-ins, release the software. Plug-ins and dlls are placed in the Procs directory according to the PPU and PMU sub-directories. PMUFunction contains those directories and plug-ins. Each function group corresponds to an xml description file. The Works directory is defined at the same level as Procs. The works directory is some process directories. Some data files related to the process, such as process deployment files and attribute data files.
最后、 程序入口模块通过程序的命令行指定进程名称, 通过进程名称 知道进程的工作目录, 这样进程入口模块可以加载不同的进程。 创建 IContext 和 IExtensionService , 传递进程工作目录给 ILocalSystem , ILocalSystem负责按部署加载启动时需要的插件, 运行时直接调用 IContext 按需加载插件。 Finally, the program entry module specifies the process name through the program's command line, and the process's working directory is known by the process name, so that the process entry module can load different processes. Create IContext and IExtensionService, pass the process working directory to ILocalSystem, ILocalSystem is responsible for loading the plug-ins needed for startup according to the deployment, and directly calling IContext to load the plug-ins on demand.
此外, 可以根据本发明的技术方案的说明和具体实施方式做出各种可 能的改变或替换, 如 IContext和 IExtensionService合并, 描述文件不釆用 xml格式,基础扩展点接口添加或减少一些方法,或是才用面向过程语言的 结构及函数指针实现接口。 In addition, various possible changes or substitutions may be made according to the description and specific embodiments of the technical solutions of the present invention, such as IContext and IExtensionService merge, the description file does not use the xml format, the basic extension point interface adds or reduces some methods, or Process-oriented language The structure and function pointers implement the interface.
综上所述, 本发明具有以下技术效果: 1、 分组管理插件, 便于大型软 件对插件进行管理 2、 可以通过文件定义插件 id和类型。 3、 具有统一的插 件基础接口, 便于创建扩展点。 4、 支持分布式部署。 5、 进程工作目录和 程序目录分离,便于多个进程共享程序文件。 6、支持进程相关属性名值对, 便于进程变量的定义。 7、 由于釆用面向对象接口机制, 有很高的抽象处理 能力。 此外, 方法本身是通用的, 不依赖于特定的操作系统和特定的面向 对象语言, 甚至在结构化语言中也能实现这种插件机制。 In summary, the present invention has the following technical effects: 1. A group management plug-in, which facilitates management of plug-ins by large software. 2. The plug-in id and type can be defined by files. 3, has a unified plug-in interface, easy to create extension points. 4. Support distributed deployment. 5. The process working directory and the program directory are separated, so that multiple processes can share program files. 6, support process-related attribute name value pairs, to facilitate the definition of process variables. 7, because of the use of object-oriented interface mechanism, has a high degree of abstract processing power. In addition, the methods themselves are generic, independent of the specific operating system and specific object-oriented languages, and even implemented in structured languages.
尽管上文对本发明进行了详细说明, 但是本发明不限于此, 本领域技 术人员可以根据本发明的原理进行各种修改。 因此, 凡按照本发明原理所 作的修改, 都应当理解为落入本发明的保护范围。 Although the invention has been described in detail above, the invention is not limited thereto, and various modifications may be made by those skilled in the art in accordance with the principles of the invention. Therefore, modifications in accordance with the principles of the invention should be understood as falling within the scope of the invention.
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201010290022.8 | 2010-09-20 | ||
| CN201010290022.8A CN101937353B (en) | 2010-09-20 | 2010-09-20 | Method and device for deploying and loading plug-in unit |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2012037818A1 true WO2012037818A1 (en) | 2012-03-29 |
Family
ID=43390700
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2011/075394 Ceased WO2012037818A1 (en) | 2010-09-20 | 2011-06-07 | Method and device for deploying and loading plug-ins |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN101937353B (en) |
| WO (1) | WO2012037818A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9983861B2 (en) | 2016-07-11 | 2018-05-29 | International Business Machines Corporation | Reusable deployment plans and dependencies thereof |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101937353B (en) * | 2010-09-20 | 2014-11-05 | 中兴通讯股份有限公司 | Method and device for deploying and loading plug-in unit |
| CN102156663B (en) * | 2011-03-22 | 2013-07-31 | 北京书生国际信息技术有限公司 | Implementation method and device of plugin |
| CN102810065B (en) * | 2011-05-31 | 2016-04-27 | 国际商业机器公司 | For the method and system of loader module |
| CN102520967A (en) * | 2011-12-28 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | Method, system and mobile terminal for creating and using mobile platform plug-in component |
| CN103197935A (en) * | 2012-01-09 | 2013-07-10 | 腾讯科技(深圳)有限公司 | Application loading method and system |
| CN103246525B (en) * | 2012-02-06 | 2017-03-08 | 腾讯科技(深圳)有限公司 | A kind of method and client realizing applying operation |
| CN103309700B (en) | 2012-03-16 | 2016-05-18 | 腾讯科技(深圳)有限公司 | A kind of plug-in management control method and device |
| CN103389905B (en) * | 2012-05-10 | 2016-08-17 | 航天信息股份有限公司 | Plug-in loading method and system |
| CN102722368B (en) * | 2012-05-21 | 2013-09-04 | 北京广利核系统工程有限公司 | Plug-in software designing method based on document tree and message pump |
| CN103425471A (en) * | 2012-05-22 | 2013-12-04 | 航天信息股份有限公司 | Plug-in type taxation billing system |
| CN103856396B (en) * | 2012-11-30 | 2017-05-31 | 中兴通讯股份有限公司 | Message transmission method and device, proxy plug-ins between plug-in unit |
| CN103593195A (en) * | 2013-11-22 | 2014-02-19 | 安一恒通(北京)科技有限公司 | Method and device for customizing personalized software |
| CN105099739B (en) * | 2014-05-15 | 2018-08-17 | 中国移动通信集团公司 | One kind being based on plug-in type software deployment method, apparatus and application server |
| CN104077140B (en) * | 2014-07-04 | 2017-11-07 | 用友网络科技股份有限公司 | Automation Compilation Method and compilation device for continuous integrating |
| CN105704188B (en) * | 2014-11-27 | 2019-04-12 | 华为软件技术有限公司 | Using the dispositions method and device with service |
| CN105373396B (en) * | 2015-08-14 | 2018-01-05 | 腾讯科技(深圳)有限公司 | Update of plug-in loading method and device in plug-platform |
| CN106325939A (en) * | 2016-08-25 | 2017-01-11 | 苏州蓝海彤翔系统科技有限公司 | Target object starting method and business program system |
| CN106406961B (en) * | 2016-09-27 | 2021-01-15 | 北京奇虎科技有限公司 | Method and device for loading and providing application program based on browser |
| CN109614158B (en) * | 2017-09-30 | 2021-11-26 | 北京国双科技有限公司 | Plug-in calling method, system, storage medium and processor |
| CN110245279B (en) * | 2019-05-06 | 2023-05-30 | 创新先进技术有限公司 | Dependency tree generation method, device, equipment and storage medium |
| CN110764836B (en) | 2019-09-18 | 2024-02-09 | 华为技术有限公司 | Plug-in implementation method and plug-in implementation system |
| CN113590233B (en) * | 2021-08-24 | 2024-11-05 | 芯河半导体科技(无锡)有限公司 | A method for supporting multi-client deployment plug-in framework based on Felix |
| CN117251140B (en) * | 2023-09-28 | 2024-12-13 | 厦门绘生花网络科技有限公司 | Multi-level dynamically scalable software processing method, system, chip and device |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1968154A (en) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | System and method for service expansion using plug |
| CN101488996A (en) * | 2009-01-22 | 2009-07-22 | 中兴通讯股份有限公司 | Information expansion management apparatus and method for mobile terminal |
| CN101937353A (en) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | A method and device for deploying and loading plug-ins |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030018694A1 (en) * | 2000-09-01 | 2003-01-23 | Shuang Chen | System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks |
| GB2415066A (en) * | 2004-06-09 | 2005-12-14 | Symbian Software Ltd | Selecting most suitable plug-in |
-
2010
- 2010-09-20 CN CN201010290022.8A patent/CN101937353B/en not_active Expired - Fee Related
-
2011
- 2011-06-07 WO PCT/CN2011/075394 patent/WO2012037818A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1968154A (en) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | System and method for service expansion using plug |
| CN101488996A (en) * | 2009-01-22 | 2009-07-22 | 中兴通讯股份有限公司 | Information expansion management apparatus and method for mobile terminal |
| CN101937353A (en) * | 2010-09-20 | 2011-01-05 | 中兴通讯股份有限公司 | A method and device for deploying and loading plug-ins |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9983861B2 (en) | 2016-07-11 | 2018-05-29 | International Business Machines Corporation | Reusable deployment plans and dependencies thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| CN101937353B (en) | 2014-11-05 |
| CN101937353A (en) | 2011-01-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2012037818A1 (en) | Method and device for deploying and loading plug-ins | |
| CN111290753B (en) | Method, device, equipment and storage medium for building front-end development environment | |
| CN100492989C (en) | System and method for service expansion using plug | |
| CN102314358B (en) | A method for deploying conventional applications in SOA mode on cloud platform | |
| CN101895431B (en) | RIA-based high-performance Web transmission network management system and implementation method thereof | |
| CN100530160C (en) | Architecture for distributed computing system and automated design, deployment, and management of distributed applications | |
| CN112306586B (en) | Data processing method, device, equipment and computer storage medium | |
| US20150120889A1 (en) | System and method for providing a clone service for use with a cloud platform environment | |
| CN106850788A (en) | Towards the integrated framework and integrated approach of multi-source heterogeneous geographic information resources | |
| CN102323884A (en) | Web service container and method for issuing multiple Web services | |
| WO2014190544A1 (en) | Application deployment method and device | |
| TW202113622A (en) | An access docking device and system, and a method and device applied to the access docking device | |
| Kritikos et al. | Towards the modelling of hybrid cloud applications | |
| CN113360386B (en) | Method and device for testing driving of switching chip, electronic equipment and storage medium | |
| CN114077435A (en) | Electronic deposit certificate system and method based on containerization rapid deployment | |
| CN112667205A (en) | Development method and device for power failure editing microservice and computer equipment | |
| Sampaio et al. | Uni4cloud: an approach based on open standards for deployment and management of multi-cloud applications | |
| CN114281399A (en) | Distributed application packaging delivery method, system, terminal and storage medium | |
| Datta et al. | Extending datatweet iot architecture for virtual iot devices | |
| CN101339520B (en) | Method for accessing EJB into enterprise service bus | |
| CN120066624B (en) | Application calling method, computer device and storage medium | |
| CN102272720A (en) | Service providing device, service providing system, service providing method, and storage medium | |
| CN118092982B (en) | Multi-cluster operation and maintenance method, equipment and medium for cloud native application | |
| HK1218011A1 (en) | Web services provided from software framework | |
| CN119002938A (en) | Method and system for combining and deploying multiple micro services |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11826345 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 11826345 Country of ref document: EP Kind code of ref document: A1 |