用于二次开发平台的基于控件的插件管理系统及方法技术方案

技术编号:2844648 阅读:205 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于二次开发平台的基于控件的插件管理系统及方法,包括封装有内部功能模块的控件、至少一个具有用户自定义外部功能的插件、接口协议模块,以及插件管理器,所述插件管理器包括插件加载模块、插件链模块,插件查询模块,本发明专利技术首先根据控件的标准接口,提供一个与所述控件的通讯连接与事件响应相符合的接口协议;然后遵照所述接口协议,提供至少一个具有外部自定义功能的插件;在所述控件中维护有一个插件链,当应用程序启动时,由控件调用所述接口协议,将所述插件加载入插件链中。本发明专利技术使用户在二次开发过程中,可以根据自身需要而加载并使用原有控件所不具有的新功能。

【技术实现步骤摘要】

本专利技术涉及一种插件管理系统及方法,尤其涉及一种。
技术介绍
随着计算机软件技术的发展,越来越多的软件用户能够使用一些简单的编程工具(如脚本语言、VBA语言)来开发出适合自身要求的软件功能模块。因此,现今的软件平台开发中,一般都要求在产品中能够提供让用户自行定制功能模块的功能,以满足用户实际的需要,为用户提供方便、快捷、简单的二次开发的功能与形式。目前,大部分的软件产品所提供的二次开发平台都是以控件(ActiveX)形式发布的,控件集成了平台功能,以接口方法、属性的形式提供给二次开发用户。一般来说,控件开发能够支持Windows下各类可视化编程语言,如Visual C++、Visual Basic、Borland Delphi。二次开发用户可以根据自身开发水平选择其中一种开发语言,基于控件功能设计开发应用程序。在这种控件模式下,控件提供接口都是基于IDispatch,二次开发中可以利用接口提供的方法和属性来实现应用程序中某一功能。控件技术在设计中有三个特点1、功能封装性一个软件平台包含众多的SDK(Software DevelopmentKit,软件开发工具包),控件技术就是将这些SDK封装起来,以简单地接口方法、属性开放给二次开发用户,这种封装性在具体项目中极大方便了项目应用程序地简单、快速完成。2、事件响应性控件技术包括了事件响应机制,它能够提供如数据加载、系统退出、鼠标事件之类事件消息。控件事件响应性可以通知基于该控件开发的应用程序某一过程或动作完成、取消、进行等状态,应用程序根据这些事件响应采用一些必要的操作以完成相关动作。3、功能有限性功能有限性表明控件中集成的SDK是一个有限集合。上述最后一个特点说明了控件功能是有限的,二次开发中只能利用这些有限功能在项目应用中完成一些基于这些有限功能的业务。因此,针对二次开发需求,目前的软件产品平台虽然几乎都提供了二次开发的接口和方法,但控件只是功能的组合或封装,也就是说在二次开发中所有开发的功能只是开发控件中功能的再次组合,而无法自定义模块功能。例如,如图1所示,为现有控件功能对外提供时通过采用的模式示意图。从图1可以看出,控件对平台功能进行了封装,二次开发出来的功能只是控件中包含功能的组合,其本质不是一个用户自定义开发的功能,如果在具体项目实施中,现场开发人员无法开发出控件中不具备的功能。也就是说,如果现有控件只包含有功能1、功能2、功能3,那么在二次开发中所开发出来的模块,其具有的所谓新功能1、2、3,只能是原有功能的组合,而无法开发出真正意义上的新功能。然而,事实上,在用户实际的二次开发中,往往要求根据自身的需要来开发出控件中所不具有的功能模块,但现有软件平台的控件管理系统与方法极大地限制了这种自定义开发模式。
技术实现思路
本专利技术所要解决的技术问题在于提供一种,解决了应用程序功能扩充的限制问题,在二次开发中使用户可以加载并使用根据自身需要而自定义的原有控件不具有的新功能模块,将原有控件的有限功能集合扩展为无限功能集合。本专利技术提供一种用于二次开发平台的基于控件的插件管理系统,包括封装有内部功能模块的控件,还包括至少一个具有用户自定义外部功能的插件;接口协议模块,用以根据控件的标准接口,为所述插件提供通讯连接与事件响应的接口协议;插件管理器,用以将所述至少一个插件组织起来供外部程序调用,该插件管理器包括插件加载模块,用于将所述插件加载到所述控件中;插件链模块,用于依序保存加载入控件的插件;插件查询模块,用于根据外部程序指令,查找保存入所述插件链模块中的插件。本专利技术进而提供一种用于二次开发平台的基于控件的插件管理方法,该方法包括如下步骤根据控件的标准接口,提供一个与所述控件的通讯连接与事件响应相符合的接口协议;遵照所述接口协议,提供至少一个具有外部自定义功能的插件;在所述控件中维护一个插件链,当应用程序启动时,由控件调用所述接口协议,将所述插件加载入插件链中。本专利技术还进一步包括如下步骤根据应用程序的指令,由控件在所述插件链中查找已加载的插件,并返回应用程序指定的插件的地址指针。本专利技术为用户提供了方便、快捷、简单的二次开发形式,使用户能够使用简单的语言就能够定制自身需要的功能和模块。通过本专利技术,用户开发出来的系统功能能够脱离系统平台独立运行,且具有自身的界面风格,极大提高了控件在应用项目中的实用性和灵活性。附图说明图1为现有控件功能对外提供时通过采用的模式示意图;图2为本专利技术的用于二次开发平台的基于控件的插件管理系统的实施例结构示意图;图3为本专利技术所述的插件管理器2041的内部结构实施例示意图;图4为本专利技术所述的用于二次开发平台的基于控件的插件管理模式实施例示意图; 图5为本专利技术所述的加载过程的实施例流程图;图6为本专利技术所述的查找并返回应用程序指定的插件地址指针过程的 具体实施例方式如图2所示,为本专利技术的用于二次开发平台的基于控件的插件管理系统的实施例结构示意图,包括封装有内部功能模块的控件201、一个用户自定义功能插件202、一个接口协议模块203,以及一个插件管理器204。其中,所述接口协议模块203,用以根据控件201的标准接口协议,为所述插件202提供通讯连接与事件响应的接口协议;插件管理器204,用以将所述至少一个插件202组织起来供外部程序调用。如图3所示,为本专利技术所述的插件管理器2041的内部结构实施例示意图,包括插件加载模块2041,用于将所述插件加载到所述控件中;插件链模块2042,用于依序保存加载入控件的插件;插件查询模块2043,用于根据外部程序指令,查找保存入所述插件链模块中的插件。本领域技术人员应当知道,本专利技术所述的各个模块,例如插件管理器204,既可以统一设计位于控件201之中,也可以独立存在。通过所述接口协议模块203提供的接口协议,所述插件202的接口定义符合所述控件201的标准接口定义。所述协议接口模块203,包括连接协议单元与事件协议单元。其中,连接协议单元,用以提供插件中的功能定义、事件定义以及通知控件加载,包括插件加载入口单元,用以说明插件的功能、加载事件定义,并通知控件做联桥;插件卸载入口单元,用以通知控件断开联桥,卸载事件定义;及插件退出入口单元,用以通知控件有插件开始退出并释放该插件所占用的内存控件。事件协议单元,用以提供用户与系统的交互操作,提供的事件包括应用程序事件、文档事件、视口事件、场景事件等。从图2、图3可以看出,二次开发用户开发的新功能插件202,通过本专利技术的接口协议模块203加入到控件201中,以此来弥补控件功能有限性所带来的不足,同时,控件201还保持了原有的模块功能,用户可以利用控件提供的方法和属性,重新组合或直接使用控件中的功能模块,以达到功能的最大化。如图4所示,为本专利技术所述的用于二次开发平台的基于控件的插件管理模式实施例示意图,首先,根据控件的标准接口,提供一个与所述控件的通讯连接与事件响应相符合的接口协议(步骤401);遵照所述接口协议,提供至少一个具有外部自定义功能的插件(步骤402);在所述控件中维护一个插件链,当应用程序启动时,由控件调用所述接口协议,将所述插件加载入插件链中;(步骤403);根据应用程序的指令,由控件在所述插件链中查找已加载的插件,并返回应用本文档来自技高网
...

【技术保护点】
一种用于二次开发平台的基于控件的插件管理系统,包括封装有内部功能模块的控件,其特征在于,还包括:至少一个具有用户自定义外部功能的插件;接口协议模块,用以根据控件的标准接口,为所述插件提供通讯连接与事件响应的接口协议;插件管理器,用以将所述至少一个插件组织起来供外部程序调用,该插件管理器包括:插件加载模块,用于将所述插件加载到所述控件中;插件链模块,用于依序保存加载入控件的插件;插件查询模块,用于根据外部程序指令,查找保存入所述插件链模块中的插件。

【技术特征摘要】
1.一种用于二次开发平台的基于控件的插件管理系统,包括封装有内部功能模块的控件,其特征在于,还包括至少一个具有用户自定义外部功能的插件;接口协议模块,用以根据控件的标准接口,为所述插件提供通讯连接与事件响应的接口协议;插件管理器,用以将所述至少一个插件组织起来供外部程序调用,该插件管理器包括插件加载模块,用于将所述插件加载到所述控件中;插件链模块,用于依序保存加载入控件的插件;插件查询模块,用于根据外部程序指令,查找保存入所述插件链模块中的插件。2.如权利要求1所述的系统,其特征在于,所述插件管理器,位于所述控件之中。3.如权利要求1所述的系统,其特征在于,通过所述接口协议模块提供的接口协议,所述插件的接口定义符合所述控件的标准接口定义。4.如权利要求1所述的系统,其特征在于,所述协议接口模块,包括连接协议单元,用以提供插件中的功能定义、事件定义以及通知控件加载,包括插件加载入口单元,用以说明插件的功能、加载事件定义,并通知控件做联桥;插件卸载入口单元,用以通知控件断开联桥,卸载事件定义;及插件退出入口单元,用以通知控件有插件开始退出并释放该插件所占用的内存控件;及事件协议单元,用以提供用户与系统的交互操作,提供的事件包括应用程序事件、文档事件、视口事件、场景事件。5.一种用于二次开发平台的基于控件的插件管理方法,其特征在于,该方法包括如下步骤根据控件的标准接口,提供一个与所述控件的通讯连接与事件响应相符合的接口协议;遵照所述接口协议,提供至少一个具有外部自定义功能的插件;在所述控件中维护一个插件链,当应用程序启动时,由控件调用所述接口协议,将所述插件加载...

【专利技术属性】
技术研发人员:孙庆文
申请(专利权)人:北京灵图软件技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1