CN101937353A - 一种插件部署和加载的方法及装置 - Google Patents
一种插件部署和加载的方法及装置 Download PDFInfo
- Publication number
- CN101937353A CN101937353A CN2010102900228A CN201010290022A CN101937353A CN 101937353 A CN101937353 A CN 101937353A CN 2010102900228 A CN2010102900228 A CN 2010102900228A CN 201010290022 A CN201010290022 A CN 201010290022A CN 101937353 A CN101937353 A CN 101937353A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- interface
- module
- extension point
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
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
技术领域
本发明涉及一种软件插件的加载技术,特别涉及一种插件部署和加载的方法及装置。
背景技术
在大型软件开发中,为了方便对软件进行功能扩展,实现模块内的高内聚,模块间的低耦合,为实现发布软件功能的可定制性,往往采用插件式开发,将一个个功能封装在插件中实现,这些插件有多种类型,即遵循的插件接口不一样,而为了处理上的方便,这些不同的接口可以派生于同一个基础接口。
在综合型的网管中要管理各种专业网产品,而每种专业网产品拥有很多种设备,专业网的特性也各有不同,由于不同设备之间存在差异,一个网管要管理数以万计的设备就需要多个进程、分布式管理。由于不同进程所需部署的功能也不同,因此提供一种软件架构来开发这种大型网管,管理不同的专业网,成为我们需要解决的问题。
发明内容
本发明的目的在于提供一种插件部署和加载方法,采用大型软件插件分组管理、进程共享程序目录和分布式进程内插件部署及插件加载的方法,解决了大型网管管理不同的专业网的问题。
本发明的另一目的在于提供一种插件部署和加载装置,采用大型软件插件分组管理、进程共享程序目录和分布式进程内插件部署及插件加载的方法,解决了大型网管管理不同的专业网的问题。
根据本发明的一个方面,提供了一种插件部署和加载方法,包括以下步骤:
A、将待加载的插件进行分组;
B、建立用于部署进程要加载分组后的插件组的插件部署文件;
C、部署文件分析模块根据插件部署文件及插件组的依赖关系计算得到插件组依赖树;
D、程序入口模块获取进程的进程名,启动进程;
E、插件加载模块根据插件组依赖树按进程加载插件。
根据本发明的另一方面,提供了一种插件部署和加载装置,包括:
插件分组模块,用于将待加载的插件按类型划分成适于按进程加载的插件组;
插件部署模块,用于建立部署进程要加载插件组的插件部署文件;
部署文件分析模块,用于根据插件部署文件及插件组的依赖关系计算得到插件组依赖树;
程序入口模块,用于获取所述进程的进程名,启动进程;
插件加载模块,用于根据插件组依赖树按进程加载插件。
与现有技术相比较,本发明的有益效果在于:本发明通过分组形式加载插件,支持分布式管理,进程工作目录和程序目录分离,实现了不同功能进程共享程序文件。
附图说明
图1是本发明提供的插件部署和加载方法的流程示意图;
图2是本发明提供的插件部署和加载装置的结构示意图;
图3是本发明实施例提供的网管插件分组示意图;
图4是本发明实施例提供的进程启动过程和分析命令行获取进程名称的示意图;
图5是本发明实施例提供的软件发布目录结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1显示了本发明提供的插件部署和加载方法的流程示意,如图1所示:
步骤S101,将待加载的插件进行分组。
在此之前,需对插件接口进行定义:建立程序的基础扩展点接口和该基础扩展点接口的插件基础扩展点接口实例函数;建立派生于该基础扩展点的派生接口和该派生接口的插件派生接口实例函数;定义插件的描述文件格式:定义插件ID、插件接口类型和插件库名称。
如按产品功能可将插件产品分为产品插件单元PPU,PPU是顶层组,一个PPU下有多个插件管理单元PMU,PMU下有多个插件功能组PMUFunction,插件功能组下有多个插件或数据文件,这些插件功能组可以有交叉插件和数据文件。
步骤S102,建立插件部署文件,在该文件中部署进程要加载的分组后的插件组,一个进程可能有多个部署文件,进程按这些文件的并集加载插件。
步骤S103,部署文件分析模块根据插件部署文件及插件组的依赖关系计算得到插件组依赖树。
步骤S104,程序入口模块通过分析命令行函数获取进程的进程名,启动进程。
此外,程序入口模块需先创建插件工厂接口,再创建上下文接口,然后解析插件部署文件、属性数据文件和插件组依赖树。
在此之前,需建立属性数据文件,该文件是定义进程在启动或运行过程中需要的一些名值对,这些属性文件是分层的,根据需要可以定义多层。
步骤S105,插件加载模块根据插件组依赖树按进程加载插件。加载插件有两种方式:进程启动过程中加载某些插件或运行过程中按需加载插件。
图2是本发明提供的插件部署和加载装置的结构示意,如图2所示,该装置包括插件定义模块、插件分组模块、插件部署模块、部署文件分析模块、程序入口模块、属性数据模块和插件加载模块。
其中,插件定义模块包括插件基础扩展点定义单元、插件派生接口定义单元和插件描述文件定义单元。
插件基础扩展点定义单元建立程序基础扩展点接口和该基础扩展点接口的实例函数。
插件派生接口定义单元建立派生于基础扩展点接口的派生接口和该派生接口的实例函数。
插件描述文件定义单元定义插件的描述文件格式,包括:插件ID、插件接口的类型和插件库名称。
插件分组模块将待加载的插件划分成适于按进程加载的插件组。
插件部署模块建立部署进程要加载插件组的插件部署文件。
部署文件分析模块根据插件部署文件及插件组的依赖关系计算得到插件组依赖树。
程序入口模块获取所述进程的进程名,启动进程,并建立管理插件基础扩展点接口实例函数和插件派生接口实例函数的插件工厂接口和建立描述运行环境的上下文接口,以及解析插件部署文件、属性数据文件和插件组依赖树。
属性数据模块定义进程启动和运行所需名值对的属性数据文件。
插件加载模块根据插件组依赖树按进程加载插件。
图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中为普通的动态库。
图4显示了本发明实施例提供的进程启动过程和分析命令行获取进程名称的示意,如图4所示,程序入口模块首先创建插件工厂接口,再创建上下文接口,在上下文的初始化插件函数中创建本地***接口ILocalSystem,本地***接口负责分析部署及加载启动插件。插件工厂接口IExtensionService、上下文接口IContext和ILocalSystem对于每个进程必须存在一个实例。
图5显示了本发明实施例提供的软件发布目录结构,如图5所示,在procs下是程序和数据文件,在works下是一些进程对应的目录,进程对应的目录下有一些子目录,如log目录用来存放运行过程中产生的日志,而deploy下用来存放插件部署文件和属性数据文件。
下面结合图1~图3对统一网管的需求进行说明。
(一)需求来源
在统一网管中,需要将各种产品线的设备在一个网管中管理,各产品线有多种类型的设备,各设备的差异较大。在一个网管中管理多个产品线的设备,既节省资源又便于统一管理,在设备数量庞大的情况下,需要分布式的管理。
(二)开发平台
自适配通信环境ACE(ADAPTIVE Communication Environment),编译器vc7或gcc,支持win32、solaris和linux等多个操作***。
(三)插件式开发的实现
1、定义基础扩展点。
class IExtension {
public:
IExtension(const char*version=″V 1.0″);
virtual~IExtension(){}
virtual int Init(int argc,char*argv[]);
virtual int Finish();
virtual void SetVersion(const char*version);
virtual const char*GetVersion();
virtual void ProcessDebugCommand(std::string&cmd,::StringList¶s,std::ostream&os);
private:
_STD_string m_strVersion;
};
Init根据进程启动参数初始化插件。Finish用于在扩展点销毁前做清理工作,如关闭句柄和释放内存等。GetVersion和SetVersion用于设置插件版本。ProcessDebugCommand是一个支持命令行调适的方法,类似基础功能可根据需要添加函数。
插件基础扩展点实例创建函数IExtension*Create_Extension(const char*path,CProperties*properties)是插件动态库对唯一的导出函数,创建该插件基础扩展点的实例,path是插件所在的目录路径,properties是该插件属性的名值对,函数返回扩展点指针。
插件的名称用‘.’分割字符串,如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的别名。
插件描述文件用xml文件定义,文件中定义插件ID、版本、对应dll的名称等,也可以约定某种类型得子插件由其父插件来加载。
2、定义本地服务提供者接口ILocalService、服务接口IServant和IServant的本地或远程代理IService接口,这些接口派生自IExtension,这些插件实现了网管的具体功能,因此这些插件在数量上有很多,如果需要还可以定义一些其它插件接口。下面给出了这三个接口的主要方法:
2.1ILocalService对本进程模块提供服务:
virtual void PreInit(IContext*ctx)
virtual IDefaultContext*GetCtx(void)
其中,PreInit用于设置上下文,GetCtx用于获得上下文。
2.2IServant对本进程或远程进程提供服务,服务提供主要通过Get、Set来实现:
virtual void PreInit(IContext*ctx)
virtual CMsg*Get(CMsg&msgbuf,CMsgHead&headinfo)
virtual void Set(CMsg&msgbuf,CMsgHead&headinfo)
PreInit用于设置上下文,Get是有应答报文处理函数,CMsg表示报文,headinfo表示命令码和用户等报文头信息,Set是无应答报文处理函数。
2.3客户通过IService实现对IServant的Get和Set的调用,通过IContext::HasServant可以判断servant是否在本地。
virtual void PreInit(IContext*ctx,const char*servantName)
virtual void SetServant(IIcanServant*servant)
virtual CMsg*Get(CMsg&msgbuf,CMsgHead&headinfo)
virtual void Set(CMsg&msgbuf,CMsgHead&headinfo)
PreInit用于设置上下文以及对应IServant的名称servantName,SetServant用于设置对应IServant的名称,Get是有应答报文处理函数,Set是无应答报文处理函数。
3、定义插件分组,按产品功能分为多个PPU,PPU是顶层组,一个PPU下有多个PMU,一个PMU下有多个PMUFunction。PPU对应一个目录,而PMU对应PPU下的一个子目录,一个插件功能组可以含有PMU的多个目录,每个目录下有多个插件或数据文件,这些插件功能组可能有交叉目录。PMUFunction中还定义了对其它功能组的依赖关系。
4、定义进程部署,在进程工作目录的文件中部署定义,该文件可以有多个,部署定义文件用于定义本进程部署哪些PMUFunction。
5、定义IContext和IExtensionService接口,这些接口可以派生自IExtension。
5.1定义IExtensionService的方法:
virtual IExtension*CreateExtension(const char*extName,bool isSingleton);
virtual void DestroyExtension(IExtension*pcExtension)=0;
virtual StringList GetExtensions(const char*pcSubject)=0;
CreateExtension按照是否以单例方式创建名为extName的基础扩展点实例。DestroyExtension销毁扩展点。GetExtensions获取主体pcSubject的所有子插件,即用‘.’分割的插件ID的部分前缀。
5.2IContext在某个进程中创建和运行插件的上下文的方法:
virtual void PreInit(IExtensionService*)
virtual ILocalService*GetLocalService(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 IExtensionService*GetExtService();
virtual bool HasServant(const char*extName,const char*strpmufunc);
PreInit用于设置插件工厂。GetLocalService获得插件功能组strpmufunc下的名为extName的ILocalService,strpmufunc为NULL,其中,查找范围为本进程的所有PMU。GetServant获得插件功能组strpmufunc下的名为extName的IServant。GetService获得插件功能组strpmufunc下的名为extName的IService。HasServant判断本进程插件功能组strpmufunc是否存在名为extName的IServant。GetExtService获得插件工厂。
6、ILocalSystem派生于ILocalService,是本进程部署分析和插件组分析模块,读取本进程属性数据文件中的名值对,分析本进程部署哪些插件组及插件组依赖树,在本实施方式中只要分析部署哪些功能组PmuFunction以及它们的依赖树,依赖树中叶子节点对父节点有依赖,然后从树根节点分层向叶子节点加载插件,同一个PMUFunction下的插件可以按目录或插件名定义先后加载顺序。约定某种原则在程序启动时加载某些类型插件,有些类型插件按需加载,如本实施方式中启动时加载具有IServant扩展点的插件。
7、实现上面各接口功能或插件,发布软件。插件及dll按PPU、PMU分目录放在Procs目录下,PMUFunction中含有那些目录和插件,每个功能组对应一个xml描述文件,在Procs同级别定义works目录,works目录下是一些进程目录,存放与进程相关的一些数据文件,如进程部署文件和属性数据文件等。
8、程序入口模块通过程序的命令行指定进程名称,通过进程名称知道进程的工作目录,这样进程入口模块可以加载不同的进程。创建IContext和IExtensionService,传递进程工作目录给ILocalSystem,ILocalSystem负责按部署加载启动时需要的插件,运行时直接调用IContext按需加载插件。
此外,可以根据本发明的技术方案的说明和具体实施方式做出各种可能的改变或替换,如IContext和IExtensionService合并,描述文件不采用xml格式,基础扩展点接口添加或减少一些方法,或是才用面向过程语言的结构及函数指针实现接口。
综上所述,本发明具有以下技术效果:1、分组管理插件,便于大型软件对插件进行管理2、可以通过文件定义插件id和类型。3、具有统一的插件基础接口,便于创建扩展点。4、支持分布式部署。5、进程工作目录和程序目录分离,便于多个进程共享程序文件。6、支持进程相关属性名值对,便于进程变量的定义。7、由于采用面向对象接口机制,有很高的抽象处理能力。此外,方法本身是通用的,不依赖于特定的操作***和特定的面向对象语言,甚至在结构化语言中也能实现这种插件机制。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
Claims (9)
1.一种插件部署和加载方法,其特征在于,包括以下步骤:
A、将待加载的插件进行分组;
B、建立用于部署进程要加载分组后的插件组的插件部署文件;
C、部署文件分析模块根据所述插件部署文件及所述插件组的依赖关系计算得到插件组依赖树;
D、程序入口模块获取所述进程的进程名,启动进程;以及
E、插件加载模块根据所述插件组依赖树按所述进程加载插件。
2.根据权利要求1所述的一种插件部署和加载方法,其特征在于,在所述步骤A之前,还包括以下步骤:
建立用于添加插件实现基础功能的基础扩展点接口和所述基础扩展点接口的插件基础扩展点接口实例函数;
建立派生于所述基础扩展点的用于管理不同类型插件的相应派生接口和所述派生接口的插件派生接口实例函数;以及
定义所述插件接口的类型。
3.根据权利要求1所述的一种插件部署和加载方法,其特征在于,在所述步骤D之前,建立用于定义进程启动和运行所需名值对的属性数据文件。
4.根据权利要求3所述的一种插件部署和加载方法,其特征在于,在所述步骤D和步骤E之间,还包括以下步骤:
所述程序入口模块建立用于管理所述插件基础扩展点接口实例函数和所述插件派生接口实例函数的插件工厂接口;
所述程序入口模块建立用于描述运行环境的上下文接口;以及
所述程序入口模块解析所述插件部署文件、所述属性数据文件和所述插件组依赖树。
5.一种插件部署和加载装置,其特征在于,包括:
插件分组模块,用于将待加载的插件按类型划分成适于按进程加载的插件组;
插件部署模块,用于建立部署进程要加载插件组的插件部署文件;
部署文件分析模块,用于根据所述插件部署文件及所述插件组的依赖关系计算得到插件组依赖树;
程序入口模块,用于获取所述进程的进程名,启动进程;以及
插件加载模块,用于根据所述插件组依赖树按所述进程加载插件。
6.根据权利要求5所述的一种插件部署和加载装置,其特征在于,还包括:
插件定义模块,用于定义插件基础扩展点接口、派生接口、所述插件基础扩展点接口的实例函数、所述派生接口的实例函数和所述插件接口的类型。
7.根据权利要求6所述的一种插件部署和加载装置,其特征在于,所述插件定义单元包括:
插件基础扩展点定义单元,用于建立添加插件实现基础功能的基础扩展点接口和所述基础扩展点接口的插件基础扩展点接口实例函数;
插件派生接口定义单元,用于建立派生于所述基础扩展点的用于管理不同类型插件的相应派生接口和所述派生接口的插件派生接口实例函数;以及
插件描述文件定义单元,用于定义所述插件接口的类型。
8.根据权利要求5所述的一种插件部署和加载装置,其特征在于,还包括:
属性数据模块,用于定义进程启动和运行所需名值对的属性数据文件。
9.根据权利要求8所述的一种插件部署和加载装置,其特征在于,所述程序入口模块还用于建立管理所述插件基础扩展点接口实例函数和所述插件派生接口实例函数的插件工厂接口;建立描述运行环境的上下文接口;以及解析所述插件部署文件、所述属性数据文件和所述插件组依赖树。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010290022.8A CN101937353B (zh) | 2010-09-20 | 2010-09-20 | 一种插件部署和加载的方法及装置 |
PCT/CN2011/075394 WO2012037818A1 (zh) | 2010-09-20 | 2011-06-07 | 一种插件部署和加载的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010290022.8A CN101937353B (zh) | 2010-09-20 | 2010-09-20 | 一种插件部署和加载的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101937353A true CN101937353A (zh) | 2011-01-05 |
CN101937353B CN101937353B (zh) | 2014-11-05 |
Family
ID=43390700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010290022.8A Active CN101937353B (zh) | 2010-09-20 | 2010-09-20 | 一种插件部署和加载的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101937353B (zh) |
WO (1) | WO2012037818A1 (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156663A (zh) * | 2011-03-22 | 2011-08-17 | 北京书生国际信息技术有限公司 | 一种实现插件的方法和装置 |
WO2012037818A1 (zh) * | 2010-09-20 | 2012-03-29 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102520967A (zh) * | 2011-12-28 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种创建与使用移动平台插件的方法、***和移动终端 |
CN102722368A (zh) * | 2012-05-21 | 2012-10-10 | 北京广利核***工程有限公司 | 一种基于文档树和消息泵的插件式软件设计方法 |
CN102810065A (zh) * | 2011-05-31 | 2012-12-05 | 国际商业机器公司 | 用于加载程序模块的方法和*** |
CN103197935A (zh) * | 2012-01-09 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 应用加载方法及*** |
CN103246525A (zh) * | 2012-02-06 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
WO2013135133A1 (zh) * | 2012-03-16 | 2013-09-19 | 腾讯科技(深圳)有限公司 | 一种插件管理控制方法及装置、计算机存储介质 |
CN103389905A (zh) * | 2012-05-10 | 2013-11-13 | 航天信息股份有限公司 | 插件加载方法及*** |
CN103425471A (zh) * | 2012-05-22 | 2013-12-04 | 航天信息股份有限公司 | 插件式税务开票*** |
CN103593195A (zh) * | 2013-11-22 | 2014-02-19 | 安一恒通(北京)科技有限公司 | 一种个性化软件的定制方法和装置 |
CN103856396A (zh) * | 2012-11-30 | 2014-06-11 | 中兴通讯股份有限公司 | 插件间的报文传递方法及装置、代理插件 |
CN104077140A (zh) * | 2014-07-04 | 2014-10-01 | 用友软件股份有限公司 | 用于持续集成的自动化编译方法和编译装置 |
CN105099739A (zh) * | 2014-05-15 | 2015-11-25 | ***通信集团公司 | 一种基于插件式软件部署方法、装置及应用服务器 |
CN105373396A (zh) * | 2015-08-14 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 插件平台中的插件更新方法和装置 |
CN105704188A (zh) * | 2014-11-27 | 2016-06-22 | 华为软件技术有限公司 | 应用与服务的部署方法和装置 |
CN106325939A (zh) * | 2016-08-25 | 2017-01-11 | 苏州蓝海彤翔***科技有限公司 | 目标对象启动方法和业务程序*** |
CN106406961A (zh) * | 2016-09-27 | 2017-02-15 | 北京奇虎科技有限公司 | 一种基于浏览器加载、提供应用程序的方法、装置 |
CN109614158A (zh) * | 2017-09-30 | 2019-04-12 | 北京国双科技有限公司 | 一种插件的调用方法、***、存储介质和处理器 |
CN110245279A (zh) * | 2019-05-06 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 依赖树生成方法、装置、设备及存储介质 |
CN112181514A (zh) * | 2019-09-18 | 2021-01-05 | 华为技术有限公司 | 插件实现的方法和插件实现的*** |
CN113590233A (zh) * | 2021-08-24 | 2021-11-02 | 芯河半导体科技(无锡)有限公司 | 一种基于Felix的支持多客户的部署插件框架的方法 |
Families Citing this family (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 |
Citations (4)
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 |
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的***及其方法 |
CN1969257A (zh) * | 2004-06-09 | 2007-05-23 | 西姆毕恩软件有限公司 | 选择计算装置中插件程序代码模块的方法 |
CN101488996A (zh) * | 2009-01-22 | 2009-07-22 | 中兴通讯股份有限公司 | 一种移动终端信息扩展管理装置和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937353B (zh) * | 2010-09-20 | 2014-11-05 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
-
2010
- 2010-09-20 CN CN201010290022.8A patent/CN101937353B/zh active Active
-
2011
- 2011-06-07 WO PCT/CN2011/075394 patent/WO2012037818A1/zh active Application Filing
Patent Citations (4)
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 |
CN1969257A (zh) * | 2004-06-09 | 2007-05-23 | 西姆毕恩软件有限公司 | 选择计算装置中插件程序代码模块的方法 |
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的***及其方法 |
CN101488996A (zh) * | 2009-01-22 | 2009-07-22 | 中兴通讯股份有限公司 | 一种移动终端信息扩展管理装置和方法 |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012037818A1 (zh) * | 2010-09-20 | 2012-03-29 | 中兴通讯股份有限公司 | 一种插件部署和加载的方法及装置 |
CN102156663B (zh) * | 2011-03-22 | 2013-07-31 | 北京书生国际信息技术有限公司 | 一种实现插件的方法和装置 |
CN102156663A (zh) * | 2011-03-22 | 2011-08-17 | 北京书生国际信息技术有限公司 | 一种实现插件的方法和装置 |
CN102810065B (zh) * | 2011-05-31 | 2016-04-27 | 国际商业机器公司 | 用于加载程序模块的方法和*** |
CN102810065A (zh) * | 2011-05-31 | 2012-12-05 | 国际商业机器公司 | 用于加载程序模块的方法和*** |
CN102520967A (zh) * | 2011-12-28 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种创建与使用移动平台插件的方法、***和移动终端 |
CN103197935A (zh) * | 2012-01-09 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 应用加载方法及*** |
CN103246525B (zh) * | 2012-02-06 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
CN103246525A (zh) * | 2012-02-06 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 一种实现应用运行的方法及客户端 |
WO2013135133A1 (zh) * | 2012-03-16 | 2013-09-19 | 腾讯科技(深圳)有限公司 | 一种插件管理控制方法及装置、计算机存储介质 |
US9396005B2 (en) | 2012-03-16 | 2016-07-19 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and computer storage medium for plug-in management and control |
CN103389905A (zh) * | 2012-05-10 | 2013-11-13 | 航天信息股份有限公司 | 插件加载方法及*** |
CN103389905B (zh) * | 2012-05-10 | 2016-08-17 | 航天信息股份有限公司 | 插件加载方法及*** |
CN102722368A (zh) * | 2012-05-21 | 2012-10-10 | 北京广利核***工程有限公司 | 一种基于文档树和消息泵的插件式软件设计方法 |
CN103425471A (zh) * | 2012-05-22 | 2013-12-04 | 航天信息股份有限公司 | 插件式税务开票*** |
CN103856396A (zh) * | 2012-11-30 | 2014-06-11 | 中兴通讯股份有限公司 | 插件间的报文传递方法及装置、代理插件 |
CN103856396B (zh) * | 2012-11-30 | 2017-05-31 | 中兴通讯股份有限公司 | 插件间的报文传递方法及装置、代理插件 |
CN103593195A (zh) * | 2013-11-22 | 2014-02-19 | 安一恒通(北京)科技有限公司 | 一种个性化软件的定制方法和装置 |
CN105099739B (zh) * | 2014-05-15 | 2018-08-17 | ***通信集团公司 | 一种基于插件式软件部署方法、装置及应用服务器 |
CN105099739A (zh) * | 2014-05-15 | 2015-11-25 | ***通信集团公司 | 一种基于插件式软件部署方法、装置及应用服务器 |
CN104077140B (zh) * | 2014-07-04 | 2017-11-07 | 用友网络科技股份有限公司 | 用于持续集成的自动化编译方法和编译装置 |
CN104077140A (zh) * | 2014-07-04 | 2014-10-01 | 用友软件股份有限公司 | 用于持续集成的自动化编译方法和编译装置 |
CN105704188A (zh) * | 2014-11-27 | 2016-06-22 | 华为软件技术有限公司 | 应用与服务的部署方法和装置 |
CN105704188B (zh) * | 2014-11-27 | 2019-04-12 | 华为软件技术有限公司 | 应用与服务的部署方法和装置 |
CN105373396A (zh) * | 2015-08-14 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 插件平台中的插件更新方法和装置 |
CN105373396B (zh) * | 2015-08-14 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 插件平台中的插件更新加载方法和装置 |
CN106325939A (zh) * | 2016-08-25 | 2017-01-11 | 苏州蓝海彤翔***科技有限公司 | 目标对象启动方法和业务程序*** |
CN106406961B (zh) * | 2016-09-27 | 2021-01-15 | 北京奇虎科技有限公司 | 一种基于浏览器加载、提供应用程序的方法、装置 |
CN106406961A (zh) * | 2016-09-27 | 2017-02-15 | 北京奇虎科技有限公司 | 一种基于浏览器加载、提供应用程序的方法、装置 |
CN109614158A (zh) * | 2017-09-30 | 2019-04-12 | 北京国双科技有限公司 | 一种插件的调用方法、***、存储介质和处理器 |
CN109614158B (zh) * | 2017-09-30 | 2021-11-26 | 北京国双科技有限公司 | 一种插件的调用方法、***、存储介质和处理器 |
CN110245279A (zh) * | 2019-05-06 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 依赖树生成方法、装置、设备及存储介质 |
CN110245279B (zh) * | 2019-05-06 | 2023-05-30 | 创新先进技术有限公司 | 依赖树生成方法、装置、设备及存储介质 |
CN112181514A (zh) * | 2019-09-18 | 2021-01-05 | 华为技术有限公司 | 插件实现的方法和插件实现的*** |
US11880695B2 (en) | 2019-09-18 | 2024-01-23 | Huawei Technologies Co., Ltd. | Plug-in implementation method and plug-in implementation system |
CN113590233A (zh) * | 2021-08-24 | 2021-11-02 | 芯河半导体科技(无锡)有限公司 | 一种基于Felix的支持多客户的部署插件框架的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101937353B (zh) | 2014-11-05 |
WO2012037818A1 (zh) | 2012-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101937353B (zh) | 一种插件部署和加载的方法及装置 | |
CN101237326B (zh) | 设备日志实时解析的方法、装置和*** | |
CN103425511B (zh) | 云计算环境中应用软件安装部署的***及方法 | |
CN101315640B (zh) | 一种目录管理方法和装置 | |
CN101405696B (zh) | 用于生成产品签名的方法和*** | |
CN105224466A (zh) | 一种基于Docker的集成测试方法及*** | |
CN106155651A (zh) | 应用程序版本的自动化发布及更新的方法和*** | |
CN103838573A (zh) | 应用程序生成方法及装置 | |
CN101447891B (zh) | 业务模型自适应***及方法 | |
CN101964795A (zh) | 日志采集***、日志采集方法和日志回收服务器 | |
US20020184252A1 (en) | File tree comparator | |
CN101122854A (zh) | 结构化的代码自动配置方法及装置 | |
CN114706564B (zh) | 软件包制作方法、装置、电子设备及存储介质 | |
CN102314358A (zh) | 一种在云平台上以soa的方式部署常规应用的方法 | |
CN103777985B (zh) | 存储介质上同一分区安装多个操作***的方法及装置 | |
CN101702158A (zh) | 一种索引文件创建同步方法和搜索*** | |
CN101183370A (zh) | 基于类定义和关系定义的拓扑建模方法 | |
CN103324474A (zh) | 基于Linux操作***跨体系构造ISO的方法及模块 | |
CN102508916A (zh) | 一种海量数据的文件指纹分析方法 | |
CN106406923A (zh) | 动态库文件的处理方法及装置 | |
CN113595832A (zh) | 一种网络数据获取***和方法 | |
CN103077115B (zh) | 一种兼容性测试平台搭建方法及装置 | |
US9176974B1 (en) | Low priority, multi-pass, server file discovery and management | |
CN102932476A (zh) | 网络存储同步*** | |
CN112306504A (zh) | 基于配置需求的模块部署方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |