一种通过插件扩展管理信息系统功能的方法

文档序号:6524462阅读:316来源:国知局
一种通过插件扩展管理信息系统功能的方法
【专利摘要】一种通过插件扩展管理信息系统功能的装置及方法,所述的插件扩展管理信息系统具有松耦合的功能扩展机制。所述的插件是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进;对应到系统标准功能和客户个性化扩展功能的关系,在标准功能层预留插件接口,使标准功能层变成插件的容器;功能扩展时实现插件功能并注册,就能使扩展的功能松耦合地加入到系统的运行逻辑中去。本发明在标准管理信息系统的基础上,通过插件机制扩展系统功能,并实现扩展功能和标准功能的松耦合,提高客户化开发的灵活性和独立性。
【专利说明】一种通过插件扩展管理信息系统功能的方法
【技术领域】
[0001]本发明涉及一种扩展管理信息系统功能的装置及方法,特别是指一种通过插件扩展管理信息系统功能的装置及方法。
【背景技术】
[0002]在产品生命线管理PLM系统的开发过程中,由于不同的系统用户对功能的要求是多样化、个性化的,因而标准的管理信息系统产品必然不能满足最终用户的全部需求,而必须交替执行系统标准功能和客户个性化扩展功能的开发任务,同时满足系统标准功能的独立性和客户扩展功能的独特性。
[0003]传统的开发方式通常采用如下方法:
[0004]分线开发:基于某个基线将客户项目和标准系统彻底分离,客户项目进行独立扩展。这样做的问题是客户项目和标准系统脱离了关系,产品标准功能的优化和扩充很难体现到既有项目上。
[0005]局部替换:在标准系统的基础上,增加扩展模块,通过客户模块的实现类替换标准产品中的实现类,以满足客户要求的个性化功能。这样的问题也很明显,客户替换类必须随着标准产品类的改动和升级随时同步,以保证和系统标准功能部分特性的一致。
[0006]上述两种方法都不能很好地解决扩展功能和标准功能无法充分解耦问题,所以管理信息系统的开发过程中急需一种能实现松耦合的灵活的功能扩展机制。
[0007]现有技术:
[0008]对比文件1,申请号为200810241592.0的中国专利文献中公开了一种一种插件管理方法及其系统,其方法包括:A.将插件的操作接口抽象出来,封装成一上层调用接口 ;B.加载被调用插件时,存储获得的插件句柄并在内存中标记,建立该插件句柄与插件管理信息的对应关系;C.通过所述上层调用接口及所述内存中的插件句柄与插件管理信息的对应关系,对被调用插件进行加载、卸载、或查找操作。本发明完成了对插件进行了统一存储、操作和管理。该对比文件中解决了共享库静态加载与动态加载之间的差别,延伸了程序对插件使用的范围,与本申请的实现机制不同。
[0009]对比文件2,申请号为200510098550.2的中国专利申请文献中公开了一种用于二次开发平台的基于控件的插件管理系统及方法,包括封装有内部功能模块的控件、至少一个具有用户自定义外部功能的插件、接口协议模块,以及插件管理器,所述插件管理器包括插件加载模块、插件链模块,插件查询模块,本发明首先根据控件的标准接口,提供一个与所述控件的通讯连接与事件响应相符合的接口协议;然后遵照所述接口协议,提供至少一个具有外部自定义功能的插件;在所述控件中维护有一个插件链,当应用程序启动时,由控件调用所述接口协议,将所述插件加载入插件链中。该对比文件与本申请有部分类似,使用户在二次开发过程中,可以根据自身需要而加载并使用原有控件所不具有的新功能,但是两者的注册机制不同。
[0010]对比文件2中使用插件链的方式对各插件进行加载,这就需要独立维护插件链,运行时程序也需要先将插件加载入插件链中;而本发明利用运行容器的反射机制,插件可以脱离插件链独立注册,运行时根据插件注册地址直接在容器内存中反射调用,减少了中间环节,提高了效率;另外,在插件注册维护阶段,本发明提供了注册/反注册、启用/禁用、显示插件信息、插件参数配置等插件注册功能,使注册机制更灵活,扩展形式更多样。
[0011]有鉴于上述原因,本发明申请的发明人经过不断的实验研究,在现有技术的基础上,经过改进终于研发出本发明一种松耦合、灵活、健壮的功能扩展机制。

【发明内容】

[0012]为解决上述现有技术的缺陷,本发明的目的在于提供一种松耦合、灵活、健壮的、通过插件扩展管理信息系统功能的装置及方法。
[0013]为实现上述发明目的,本发明采用的技术方案如下:
[0014]一种通过插件扩展管理信息系统功能的装置,该装置包括:
[0015]主程序模块1,包含主要的业务功能,并且提供与插件的接口,使满足接口的外部插件能够按一定的规则进行数据交换,从而具有功能扩展功能;
[0016]插件服务模块2,该模块又包括插件注册模块21和接口定义模块22,插件注册模块21,用于注册和管理需要加入到系统运行逻辑中的插件,可以通过增减插件、改变插件注册顺序、调整插件参数等方式动态改变系统运行逻辑,所述的插件是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进,接口定义模块22,用于对各插件接口进行定义的模块;
[0017]功能扩展模块3,包含一个或多个实现部分功能的插件;
[0018]进行功能扩展时,在接口定义模块22中约定主程序模块1和功能扩展模块3之间的接口协议及接口方法;在主程序模块1中开放对已定义接口的调用支持;在功能扩展模块3中实现一个或多个满足接口定义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块21进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
[0019]所述的通过插件扩展管理信息系统功能的装置,在所述的主程序模块1中包括以下实现功能模块:
[0020]实现主要业务功能模块;
[0021]提供与插件的接口支持模块;
[0022]反射出插件实现类并完成调用,使满足接口的外部插件能够按一定的规则进行数据交换模块。
[0023]所述的通过插件扩展管理信息系统功能的装置,在所述的插件服务模块2中包括以下提供服务模块:
[0024]定义插件接口模块;
[0025]提供插件注册管理机制模块。
[0026]所述的通过插件扩展管理信息系统功能的装置,在所述的功能扩展模块3中包括以下实现功能模块:
[0027]实现插件接口模块;
[0028]实现业务功能模块。[0029]所述的通过插件扩展管理信息系统功能的装置,所述的功能扩展模块3是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进;对应到系统标准功能和客户个性化扩展功能的关系,在主程序模块1中预留插件接口,使主程序模块1变成插件的容器;在功能扩展模块3进行功能扩展时,实现插件功能并在插件服务模块2中完成注册,就能使扩展的功能松耦合地加入到系统的运行逻辑中去。
[0030]所述的通过插件扩展管理信息系统功能的装置,在所述的插件注册模块21中主要分为以下功能模块:
[0031]注册/反注册插件模块:插件在使用前必须能在主程序中进行注册,只有插件注册成功后,主程序才能正确找到此插件路径,并根据配置参数对其初始化;另外主程序还要能对已注册但不需要的插件进行反注册,从而使其不再作为程序逻辑的一部分;
[0032]启用/禁用插件模块:主程序能够根据用户需求,对已注册但暂时不启用的插件进行禁用功能;
[0033]显示插件信息模块:插件一般来源于项目,插件中要能提供插件功能、插件所属项目、插件作者等信息,便于管理;
[0034]插件参数配置模块:为了保证插件的一定程度的灵活性,插件除了可以注册本身的路径信息外,还需要注册执行顺序、执行条件、外部参数等。
[0035]一种通过插件扩展管理信息系统功能的方法,所述的插件扩展管理信息系统具有松耦合的功能扩展机制,运行时根据插件注册地址直接在容器内存中反射调用,在进行功能扩展时,在接口定义模块22中约定主程序模块1和功能扩展模块3之间的接口协议及接口方法;在主程序模块1中开放对已定义接口的调用支持;在功能扩展模块3中实现一个或多个满足接口定义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块21进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
[0036]所述的通过插件扩展管理信息系统功能的方法,在插件注册维护阶段,通过插件注册模块21实现对插件的动态管理,可以对插件随时进行注册/反注册、启用/禁用、参数修改等操作,从而动态控制扩展功能加入、不加入、如何加入;同时通过接口定义模块22可以自定义新的接口,并且在新的接口下实现新的插件;主程序的运行对插件没有依赖,功能扩展和主逻辑是松耦合的。
[0037]使用本发明的有益效果在于:本发明在标准管理信息系统的基础上,通过插件机制扩展系统功能,并实现扩展功能和标准功能的松耦合,提高客户化开发的灵活性和独立性。本发明可以有效地降低信息系统扩展功能和标准功能之间的耦合度,也增加了信息系统本身的可扩展性;标准功能通过插件注册、插件接口定义之后,以插件方式实现的扩展功能可以很容易地添加和摘除,便于测试,也便于控制代码风险;本发明有广泛的适用性,可以根据客户需求开放不同层次的插件化机制,改进系统的灵活性,降低客户化开发的难度。
【专利附图】

【附图说明】
[0038]图1是原主程序执行过程的原理示意图;
[0039]图2是按插件方式改造后功能扩展的执行过程原理示意图;
[0040]图3是实施例中对按插件方式改造后功能扩展的执行过程原理示意图:[0041]图4是插件扩展机制在工作流处理上的具体实施示意图。
【具体实施方式】
[0042]下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0043]一般的,对于插件式开发原理,简单来说,插件式开发是指能通过在软件的设计和研发过程中把软件的需求和功能进行划分,使程序分为两个主要部分:主程序和插件;主程序:包含主要的业务功能,并且提供与插件的接口,使满足接口的外部插件能够按一定的规则进行数据交换,从而具有功能扩展功能;插件:一个实现部分功能的组件,可以通过增减插件或修改插件内部功能来调整软件的功能。插件是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进;对应到系统标准功能和客户个性化扩展功能的关系,在标准功能层预留插件接口,使标准功能层变成插件的容器;功能扩展时实现插件功能并注册,就能使扩展的功能松耦合地加入到系统的运行逻辑中去。
[0044]此间说明的是:耦合性是指组件互相依赖的程度。在软件开发过程中,紧耦合通常会使程序灵活性受到限制,带来功能扩展、代码修改、应用灵活性方面的问题;而松耦合使程序的各个部分保持相对的独立性,便于替换和扩展,给系统应用带来可扩展的空间。
[0045]如图1所示,原主程序1的执行过程包括三个步骤:主程序开始11,主功能执行12,主程序结束13。要进行功能扩展只能对主功能程序进行修改,耦合性较强,丧失了主功能的独立性。
[0046]在按插件方式改造后,功能扩展的执行过程:如图2所示,主程序模块1,包含主要的业务功能,并且提供与插件的接口,使满足接口的外部插件能够按一定的规则进行数据交换,从而具有功能扩展功能;插件服务模块2,该模块又包括插件注册模块21和接口定义模块22,插件注册模块21,用于注册和管理需要加入到系统运行逻辑中的插件,可以通过增减插件、改变插件注册顺序、调整插件参数等方式动态改变系统运行逻辑,所述的插件是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进,接口定义模块22,用于对各插件接口进行定义的模块;功能扩展模块3,包含一个或多个实现部分功能的插件;进行功能扩展时,在接口定义模块22中约定主程序模块1和功能扩展模块3之间的接口协议及接口方法;在主程序模块1中开放对已定义接口的调用支持;在功能扩展模块3中实现一个或多个满足接口定义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块21进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
[0047]在所述的主程序模块1中包括以下实现功能模块:实现主要业务功能模块;提供与插件的接口支持模块;反射出插件实现类并完成调用,使满足接口的外部插件能够按一定的规则进行数据交换模块。
[0048]在所述的插件服务模块2中包括以下提供服务模块:定义插件接口模块;提供插件注册管理机制模块。
[0049]在所述的功能扩展模块3中包括以下实现功能模块:实现插件接口模块;实现业务功能模块。所述的功能扩展模块3是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进;对应到系统标准功能和客户个性化扩展功能的关系,在主程序模块1中预留插件接口,使主程序模块1变成插件的容器;在功能扩展模块3进行功能扩展时,实现插件功能并在插件服务模块2中完成注册,就能使扩展的功能松耦合地加入到系统的运行逻辑中去。
[0050]对于插件的管理,在采用插件式开发时,插件服务层的设计要能实现对其对应的插件提供管理,插件服务层中插件的管理功能主要实现以下4个方面的功能:
[0051]1、注册/反注册插件:插件在使用前必须能在主程序中进行注册。只有插件注册成功后,主程序才能正确找到此插件路径,并根据配置参数对其初始化;另外主程序还要能对已注册但不需要的插件进行反注册,从而使其不再作为程序逻辑的一部分;
[0052]2、启用/禁用插件:主程序能够根据用户需求,对已注册但暂时不启用的插件进行禁用功能;
[0053]3、显示插件信息:插件一般来源于项目,插件中要能提供插件功能、插件所属项目、插件作者等信息,便于管理;
[0054]4、插件参数配置:为了保证插件的一定程度的灵活性,插件除了可以注册本身的路径信息外,还需要注册执行顺序、执行条件、外部参数等。
[0055]一种通过插件扩展管理信息系统功能的方法,所述的插件扩展管理信息系统具有松耦合的功能扩展机制,运行时根据插件注册地址直接在容器内存中反射调用,在进行功能扩展时,在接口定义模块22中约定主程序模块1和功能扩展模块3之间的接口协议及接口方法;在主程序模块1中开放对已定义接口的调用支持;在功能扩展模块3中实现一个或多个满足接口定 义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块21进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
[0056]在插件注册维护阶段,通过插件注册模块21实现对插件的动态管理,可以对插件随时进行注册/反注册、启用/禁用、参数修改等操作,从而动态控制扩展功能加入、不加入、如何加入;同时通过接口定义模块22可以自定义新的接口,并且在新的接口下实现新的插件;主程序的运行对插件没有依赖,功能扩展和主逻辑是松耦合的。
[0057]对于插件式开发的适用范围,主要针对业务逻辑层的业务对象、业务操作以及工作流,插件式开发方式都有很好的适用性。
[0058]下面就以业务对象和业务操作的插件机制为例,对插件扩展方法介绍如下:
[0059]1、定义业务对象源+操作类型,作为触发插件的事件源;
[0060]2、在事件源上注册插件;如表1所示:
[0061]
业务对象|操作编码|关联插件|插件执行顺序
PARTBEF0RE_INSERT plm.plugin, pluginl~?
PARTBEF0RE_INSERT plm.plugin.plugin2~2
PARTAFTER—INSERT plm.plugin.plugin3~?
[0062]表 1[0063]3、根据业务需求实现插件功能;
[0064]4、在需要扩展插件功能的主功能中增加对插件的加载和反射调用,按插件顺序执行插件功能;如图3所示,在插件注册区中安装有接口,用户可以将插件1或插件2与接口相连。
[0065]此外,这种插件开发方法对工作流等机制同样适用,其方法步骤如下:
[0066]1、在工作流引擎中增加对节点前后插件的加载和调用支持;
[0067]2、按照定义的接口实现插件;
[0068]3、将插件注册到工作流节点的相关位置(节点进入前/节点离开后);如图4所示,在方法开始执行时,先由编制者向设计主管、工艺主管等流程插件代理者提交请求,流程插件代理者有可能同意、驳回或者作废该请求,如果驳回请求,回到初始状态;如果作废请求,程序直接结束;如果同意了请求,则工作流卡片显示创建流程插件代理,同意对此工作流进行插件引入;
[0069]4、针对步骤3中的由工作流引擎触发插件的方法执行;其各节点的说明如表2所
示;
[0070]
【权利要求】
1.一种通过插件扩展管理信息系统功能的装置,其特征在于,该装置包括:主程序模块(1),包含主要的业务功能,并且提供与插件的接口,使满足接口的外部插件能够按一定的规则进行数据交换,从而具有功能扩展功能;插件服务模块(2),该模块又包括插件注册模块(21)和接口定义模块(22),插件注册模块(21 ),用于注册和管理需要加入到系统运行逻辑中的插件,可以通过增减插件、改变插件注册顺序、调整插件参数等方式动态改变系统运行逻辑,所述的插件是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进,接口定义模块(22),用于对各插件接口进行定义的模块;功能扩展模块(3),包含一个或多个实现部分功能的插件;进行功能扩展时,在接口定义模块(22)中约定主程序模块(1)和功能扩展模块(3)之间的接口协议及接口方法;在主程序模块(1)中开放对已定义接口的调用支持;在功能扩展模块(3)中实现一个或多个满足接口定义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块(21)进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
2.根据权利要求1所述的通过插件扩展管理信息系统功能的装置,其特征在于,在所述的主程序模块(1)中包括以下实现功能模块:实现主要业务功能模块;提供与插件的接口支持模块;反射出插件实现类并完成调用,使满足接口的外部插件能够按一定的规则进行数据交换模块。
3.根据权利要求1所述的通过插件扩展管理信息系统功能的装置,其特征在于,在所述的插件服务模块(2)中包括以下提供服务模块:定义插件接口模块;提供插件注册管理机制模块。
4.根据权利要求1所述的通过插件扩展管理信息系统功能的装置,其特征在于,在所述的功能扩展模块(3)中包括以下实现功能模块:实现插件接口 1吴块;实现业务功能模块。
5.根据权利要求1所述的通过插件扩展管理信息系统功能的装置,其特征在于,所述的功能扩展模块(3)是独立的部分,可以独立进行开发、测试和增减,从而实现软件功能的扩展和不断改进;对应到系统标准功能和客户个性化扩展功能的关系,在主程序模块(1)中预留插件接口,使主程序模块(1)变成插件的容器;在功能扩展模块(3)进行功能扩展时,实现插件功能并在插件服务模块(2)中完成注册,就能使扩展的功能松耦合地加入到系统的运行逻辑中去。
6.根据权利要求1所述的通过插件扩展管理信息系统功能的装置,其特征在于,在所述的插件注册模块(21)中主要分为以下功能模块:注册/反注册插件模块:插件在使用前必须能在主程序中进行注册,只有插件注册成功后,主程序才能正确找到此插件路径,并根据配置参数对其初始化;另外主程序还要能对已注册但不需要的插件进行反注册,从而使其不再作为程序逻辑的一部分;启用/禁用插件模块:主程序能够根据用户需求,对已注册但暂时不启用的插件进行禁用功能;显示插件信息模块:插件一般来源于项目,插件中要能提供插件功能、插件所属项目、插件作者等信息,便于管理;插件参数配置模块:为了保证插件的一定程度的灵活性,插件除了可以注册本身的路径信息外,还需要注册执行顺序、执行条件、外部参数等。
7.—种通过插件扩展管理信息系统功能的方法,其特征在于:所述的插件扩展管理信息系统具有松耦合的功能扩展机制,运行时根据插件注册地址直接在容器内存中反射调用,在进行功能扩展时,在接口定义模块(22)中约定主程序模块(1)和功能扩展模块(3)之间的接口协议及接口方法;在主程序模块(1)中开放对已定义接口的调用支持;在功能扩展模块(3)中实现一个或多个满足接口定义的功能插件;将需要加入主程序运行逻辑的插件通过插件注册模块(21)进行注册和管理;则主程序运行时会自动加载已经注册的并且满足接口定义的插件,完成功能的扩展。
8.根据权利要求7所述的通过插件扩展管理信息系统功能的方法,其特征在于:在插件注册维护阶段,通过插件注册模块(21)实现对插件的动态管理,可以对插件随时进行注册/反注册、启用/禁用、参数修改等操作,从而动态控制扩展功能加入、不加入、如何加入;同时通过接口定义模块(22)可以自定义新的接口,并且在新的接口下实现新的插件;主程序的运行对插 件没有依赖,功能扩展和主逻辑是松耦合的。
【文档编号】G06F9/445GK103645919SQ201310701632
【公开日】2014年3月19日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】陈明 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1