首页> 中国专利> 任意粒度的模块化扩展与集成的方法、装置及系统

任意粒度的模块化扩展与集成的方法、装置及系统

摘要

本发明提供一种任意粒度的模块化扩展与集成的方法、装置及系统,该方法包括将系统按照预设的规则划分为多个模块,对任意两个模块执行如下处理:分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块;接收来自扩展模块的与扩展契约一一对应的扩展描述;根据被扩展模块和扩展模块建立模块总配置表;按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化;在扩展注册管理器中对每个模块对应的一个或多个扩展点ID及每个扩展点ID对应的一个或多个扩展描述进行注册;从扩展注册管理器中取得与预设扩展点ID对应的扩展描述,发送与预设扩展点ID对应的扩展描述至被扩展模块,提高了系统扩展能力,减小了模块耦合度。

著录项

说明书

技术领域

本发明涉及软硬件系统领域,具体地,涉及一种任意粒度的模块化扩展与集成的方法、装置及系统。

背景技术

模块化技术已经出现很多年了,例如地震勘探数据处理系统就是一种非常典型的模块化系统,它是由一系列算法模块组成,这些模块必须符合某种规范,才可以在数据系统中得到应用,其中数据的存取和传递是规范非常重要的。

随着生产实践的深入,其它各行业的系统先后都对系统的可扩展性提出了更多的要求。这些系统开始逐步增加可扩展性,但是其实现技术或者不具备一般性,不能推广到其它系统;或者实现太简单,扩展能力不强。例如:

1)模块不透明化,系统研发中需要知道某个功能在哪个模块中,没有做到真正解耦,这种情况出现得非常多。

2)模块之间的功能互用的协议不是可自己指定的。这种方式通常是由研发者给出几种固定的协议方式,要求其它模块必须遵守这种协议。这带来的问题通常是系统的扩展性非常有限,这种模块化方法没有一般性,常常和具体某种领域的业务关联太深,不具备可替换性和重用性。

3)模块的粒度是固定几种的。这种模块化方法的扩展能力以及适用性也很有限。

发明内容

本发明实施例的主要目的在于提供一种任意粒度的模块化扩展与集成的方法、装置及系统,以提高系统的扩展能力,减小系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性。

为了实现上述目的,本发明实施例提供一种任意粒度的模块化扩展与集成的方法,包括:

将一个或多个系统按照预设的规则划分为多个模块;

对多个模块中的任意两个模块执行如下处理:

分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块;

接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约;

发送每个扩展点ID对应的一个或多个扩展契约至扩展模块;

接收来自扩展模块的与扩展契约一一对应的扩展描述;

根据被扩展模块和扩展模块建立模块总配置表;

按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化;

在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册;

接收来自被扩展模块的预设扩展点ID;

从扩展注册管理器中取得与预设扩展点ID对应的扩展描述;

发送与预设扩展点ID对应的扩展描述至被扩展模块。

本发明实施例还提供一种任意粒度的模块化扩展与集成的方法,包括:

接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID;

生成与每个扩展点ID对应的一个或多个扩展契约;

发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置;

发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置;

接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述;

根据扩展描述从扩展模块中取得对应的功能。

本发明实施例还提供一种任意粒度的模块化扩展与集成的方法,包括:

接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约;

生成与扩展契约一一对应的扩展描述;

发送扩展描述至任意粒度的模块化扩展与集成的管理装置。

本发明实施例还提供一种任意粒度的模块化扩展与集成的装置,应用于任意粒度的模块化扩展与集成的管理装置,包括:

划分单元,用于将一个或多个系统按照预设的规则划分为多个模块;

分配单元,用于分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块;

第一接收单元,用于接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约;接收来自扩展模块的与扩展契约一一对应的扩展描述;接收来自被扩展模块的预设扩展点ID;

第一发送单元,用于发送每个扩展点ID对应的一个或多个扩展契约至扩展模块;发送与预设扩展点ID对应的扩展描述至被扩展模块;

总配置表单元,用于根据被扩展模块和扩展模块建立模块总配置表;

初始化单元,用于按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化;

注册单元,用于在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册;

获取单元,用于从扩展注册管理器中取得与预设扩展点ID对应的扩展描述。

本发明实施例还提供一种任意粒度的模块化扩展与集成的装置,应用于被扩展模块,包括:

第二接收单元,用于接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID;接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述;

扩展契约单元,用于生成与每个扩展点ID对应的一个或多个扩展契约;

第二发送单元,用于发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置;发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置;

功能单元,用于根据扩展描述从扩展模块中取得对应的功能。

本发明实施例还提供一种任意粒度的模块化扩展与集成的装置,应用于扩展模块,包括:

第三接收单元,用于接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约;

扩展描述单元,用于生成与扩展契约一一对应的扩展描述;

第三发送单元,用于发送扩展描述至任意粒度的模块化扩展与集成的管理装置。

本发明实施例还提供一种任意粒度的模块化扩展与集成的系统,包括:

如上所述的应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置;

如上所述的应用于被扩展模块的任意粒度的模块化扩展与集成的装置;

如上所述的应用于扩展模块的任意粒度的模块化扩展与集成的装置。

本发明实施例的任意粒度的模块化扩展与集成的方法、装置及系统可以根据各种业务需要将一个独立的系统分割为多个模块,并可以将分割得到的模块自动集成合并成为一个新的有机的整体,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置)的流程图;

图2是本发明另一实施例中任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置)的流程图;

图3是多个模块链接在一起的示意图;

图4是本发明一实施例中任意粒度的模块化扩展与集成的方法(从被扩展模块角度)的流程图;

图5是本发明一实施例中任意粒度的模块化扩展与集成的方法(从扩展模块角度)的流程图;

图6是本发明实施例中应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置的结构框图;

图7是本发明实施例中应用于被扩展模块的任意粒度的模块化扩展与集成的装置的结构框图;

图8是本发明实施例中应用于扩展模块的任意粒度的模块化扩展与集成的装置的结构框图;

图9是本发明实施例中任意粒度的模块化扩展与集成的系统的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

鉴于现有技术没有做到真正解耦,不具备可替换性和重用性,扩展能力以及适用性有限,本发明实施例提供一种任意粒度的模块化扩展与集成的方法,以提高系统的扩展能力,减小系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性。以下结合附图对本发明进行详细说明。

图1是本发明一实施例中任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置)的流程图。如图1所示,任意粒度的模块化扩展与集成的方法包括:

S101:将一个或多个系统按照预设的规则划分为多个模块。

具体实施时,可以根据业务的分布情况功能合理地按照需要的任意粒度分解为多个模块。

对多个模块中的任意两个模块执行如下处理:

S102:分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块。

其中,被扩展模块为被扩展的主模块。

S103:接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约。

S104:发送每个扩展点ID对应的一个或多个扩展契约至扩展模块。

其中,扩展模块为作为被扩展模块插件的从模块。

S105:接收来自扩展模块的与扩展契约一一对应的扩展描述。

S106:根据被扩展模块和扩展模块建立模块总配置表。

S107:按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化。

S108:在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册。

S109:接收来自被扩展模块的预设扩展点ID。

S110:从扩展注册管理器中取得与预设扩展点ID对应的扩展描述。

S111:发送与预设扩展点ID对应的扩展描述至被扩展模块。

图1所示的任意粒度的模块化扩展与集成的方法的执行主体可以为应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置。由图1所示的流程可知,本发明实施例的任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置角度)将一个或多个系统按照预设的规则划分为多个模块,并对多个模块中的任意两个模块执行如下处理:先分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块,接收并发送来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约至扩展模块,再接收来自扩展模块的与扩展契约一一对应的扩展描述,接着根据被扩展模块和扩展模块建立模块总配置表,按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化,然后在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册,接收来自被扩展模块的预设扩展点ID,最后从扩展注册管理器中取得并发送与预设扩展点ID对至被扩展模块,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

一实施例中,执行S110之后还包括:当与预设扩展点ID对应的扩展描述的数量为多个时,根据预设的筛选规则筛选扩展描述,发送筛选后的扩展描述至被扩展模块。

图2是本发明另一实施例中任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置)的流程图。如图2所示,任意粒度的模块化扩展与集成的方法还包括:

S201:在扩展注册管理器中对每个扩展点ID对应的一个或多个扩展契约进行注册。

S202:从扩展注册管理器中取得与预设扩展点ID对应的扩展契约。

S203:判断与预设扩展点ID对应的扩展契约是否和与预设扩展点ID对应的扩展描述一一对应。

S204:当与预设扩展点ID对应的扩展契约和与预设扩展点ID对应的扩展描述一一对应时,发送与预设扩展点ID对应的扩展描述至被扩展模块。

上述步骤可以防止将错误的扩展描述发送至被扩展模块。

任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置角度)的具体流程如下:

1、将一个或多个系统按照预设的规则划分为多个模块。

具体实施时,需要根据系统各部分的功能分配对系统进行模块划分,定义好模块的功能边界。以地震勘探数据解释系统为例,它可以分解为常规解释子系统、三维可视化解释子系统、地震正反演子系统,以及测井解释子系统等,这些子系统仍然可以按照业务规则继续分解,例如测井解释子系统可以细分为测井数据显示场景模块,其上可以挂接各种交互编辑模块,也可以扩展新的测井数据显示模块,尤其是可以支持第三方的模块开发与挂接。既可以把一个子系统定义为一个模块,甚至整个系统就是一个大的模块,也可以分解为若干足够小的模块。

2、对多个模块中的任意两个模块执行如下处理:分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块,接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约。发送每个扩展点ID对应的一个或多个扩展契约至扩展模块,接收来自扩展模块的与扩展契约一一对应的扩展描述。

其中,被扩展模块为被扩展的主模块,扩展模块为作为被扩展模块插件的从模块。被扩展的主模块需要扩展点才能实现扩展,且每个扩展点必须有一个唯一的标识号ID,并给出一个扩展契约。作为插件的扩展模块如果要给被扩展模块扩展功能,需要遵守这个契约,才能把扩展模块和被扩展模块链接上。

扩展契约一般用XML格式节点来描述,例如:

index-property-name=""

file="itogglewindow.h"

inertface="MainFrame::IToggleWindow">

extension-point="EXTP_ToggleWindow"

id=""

class=""

icon=""

label=""

single-inst="true"

hide-only=""

can-create-empty=""

accept-data=""

single-data=""

ribbon-pages=""/>

一个模块可以有多个扩展契约,每个扩展契约都可以被其它模块扩展,契约的内容完全由被扩展模块来决定,而不受任何其它条件限制,使得被扩展模块的扩展能力非常强。如果被扩展模块还需要有可执行扩展能力,它还可以通过给出interface属性来指明接口类型,并要求扩展模块给出class属性的值。此外,被扩展模块也可以用其它方式来定义可执行扩展能力,例如通过增加python属性,使得其它模块可以用python指令来实现可执行扩展。被扩展模块究竟如何扩展其它模块的功能,完全取决于扩展契约的内容。

同样,扩展模块如果要对被扩展模块的做功能扩展,也就是它要链接到被扩展模块上,则扩展模块也必须给出自己的扩展描述,用XML格式的节点来描述,例如:

extension-point="EXTP_ToggleWindow"

id="ToggleWindow.well"

class="MyWindow"

icon="abc.png"

label="my window"

single-inst="true"

hide-only="yes"

can-create-empty="false"

accept-data=""

single-data=""

ribbon-pages="">

扩展模块必须遵守被扩展模块给出的扩展契约,因此扩展模块的扩展描述不能由扩展模块任意确定,而是按照被扩展模块给出的扩展契约的描述来定义的,其内容必须按照扩展契约配置,扩展模块的扩展描述中必须指出扩展点ID(extension-point="EXTP_ToggleWindow"),扩展点ID指出了扩展模块是对被扩展模块中哪一个扩展点(extension-point)进行扩展。

一个扩展点可以被一个或多个扩展描述(扩展,扩展描述是扩展的一部分)链接,一个扩展描述只能链接到一个扩展点上。模块通常并不只拥有一个扩展点,它可以有多个扩展点以及多个与扩展点一一对应的扩展契约;同时一个模块通常也可以实现对多个其它模块进行扩展,因此它也可能有多个扩展描述。模块在最小粒度时只有一个扩展契约或者扩展描述。有了扩展契约和扩展描述,这就自然建立了多个模块之间的链接,最终所有模块都链接在一起,自动形成一个统一的系统。图3是多个模块链接在一起的示意图。如图3所示,每个模块可以既是被扩展模块(被扩展的主模块),也是扩展模块(作为另一个被扩展模块插件的从模块)。

3、根据被扩展模块和扩展模块建立模块总配置表,按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化。

4、在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册。

注册后,系统会自动按照扩展注册管理器中模块间的链接关系构成有机的整体。系统集成后,各个模块之间可以通过公用服务、链接点与链接等方式做到了功能扩展与使用,并能实现模块的透明化,也就是说,在使用其它模块提供的功能时,无需关心该功能来自哪一个模块,也无需知道模块何时能够被加载,极大地减少了模块之间的耦合性。

5、接收来自被扩展模块的预设扩展点ID,从扩展注册管理器中取得与预设扩展点ID对应的扩展描述,发送与预设扩展点ID对应的扩展描述至被扩展模块。

其中,当与预设扩展点ID对应的扩展描述的数量为多个时,可以根据预设的筛选规则筛选扩展描述,发送筛选后的扩展描述至被扩展模块。例如,从多个扩展描述中选取最新版本的扩展描述。

综上,本发明实施例的任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置角度)将一个或多个系统按照预设的规则划分为多个模块,并对多个模块中的任意两个模块执行如下处理:先分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块,接收并发送来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约至扩展模块,再接收来自扩展模块的与扩展契约一一对应的扩展描述,接着根据被扩展模块和扩展模块建立模块总配置表,按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化,然后在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册,接收来自被扩展模块的预设扩展点ID,最后从扩展注册管理器中取得并发送与预设扩展点ID对至被扩展模块,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

图4是本发明一实施例中任意粒度的模块化扩展与集成的方法(从被扩展模块角度)的流程图。如图4所示,任意粒度的模块化扩展与集成的方法包括:

S301:接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID。

S302:生成与每个扩展点ID对应的一个或多个扩展契约。

S303:发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置。

S304:发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置。

S305:接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述。

S306:根据扩展描述从扩展模块中取得对应的功能。

图4所示的任意粒度的模块化扩展与集成的方法的执行主体可以为应用于被扩展模块的任意粒度的模块化扩展与集成的装置。由图4所示的流程可知,本发明实施例的任意粒度的模块化扩展与集成的方法(从被扩展模块角度)先接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID,再生成与每个扩展点ID对应的一个或多个扩展契约,然后发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置,发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置,最后接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述,并根据扩展描述从扩展模块中取得对应的功能,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

图5是本发明一实施例中任意粒度的模块化扩展与集成的方法(从扩展模块角度)的流程图。如图5所示,任意粒度的模块化扩展与集成的方法包括:

S401:接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约。

S402:生成与扩展契约一一对应的扩展描述。

S403:发送扩展描述至任意粒度的模块化扩展与集成的管理装置。

图5所示的任意粒度的模块化扩展与集成的方法的执行主体可以为应用于扩展模块的任意粒度的模块化扩展与集成的装置。由图5所示的流程可知,本发明实施例的任意粒度的模块化扩展与集成的方法(从扩展模块角度)先接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约,再生成与扩展契约一一对应的扩展描述,然后发送扩展描述至任意粒度的模块化扩展与集成的管理装置,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

基于同一发明构思,本发明实施例还提供了一种任意粒度的模块化扩展与集成的装置。由于该装置解决问题的原理与任意粒度的模块化扩展与集成的方法(从任意粒度的模块化扩展与集成的管理装置角度)相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图6是本发明实施例中应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置的结构框图。如图6所示,应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置包括:

划分单元,用于将一个或多个系统按照预设的规则划分为多个模块;

分配单元,用于分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块;

第一接收单元,用于接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约;接收来自扩展模块的与扩展契约一一对应的扩展描述;接收来自被扩展模块的预设扩展点ID;

第一发送单元,用于发送每个扩展点ID对应的一个或多个扩展契约至扩展模块;发送与预设扩展点ID对应的扩展描述至被扩展模块;

总配置表单元,用于根据被扩展模块和扩展模块建立模块总配置表;

初始化单元,用于按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化;

注册单元,用于在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册;

获取单元,用于从扩展注册管理器中取得与预设扩展点ID对应的扩展描述。

在其中一种实施例中,还包括:

筛选单元,用于当与预设扩展点ID对应的扩展描述的数量为多个时,根据预设的筛选规则筛选扩展描述;

第一发送单元具体用于:发送筛选后的扩展描述至被扩展模块。

在其中一种实施例中,注册单元还用于:在扩展注册管理器中对每个扩展点ID对应的一个或多个扩展契约进行注册;

获取单元还用于:从扩展注册管理器中取得与预设扩展点ID对应的扩展契约;

任意粒度的模块化扩展与集成的装置还包括:判断单元,用于判断与预设扩展点ID对应的扩展契约是否和与预设扩展点ID对应的扩展描述一一对应;

第一发送单元还用于:当与预设扩展点ID对应的扩展契约和与预设扩展点ID对应的扩展描述一一对应时,发送与预设扩展点ID对应的扩展描述至被扩展模块。

综上,本发明实施例的任意粒度的模块化扩展与集成的装置(从任意粒度的模块化扩展与集成的管理装置角度)将一个或多个系统按照预设的规则划分为多个模块,并对多个模块中的任意两个模块执行如下处理:先分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块,接收并发送来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约至扩展模块,再接收来自扩展模块的与扩展契约一一对应的扩展描述,接着根据被扩展模块和扩展模块建立模块总配置表,按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化,然后在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册,接收来自被扩展模块的预设扩展点ID,最后从扩展注册管理器中取得并发送与预设扩展点ID对至被扩展模块,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

基于同一发明构思,本发明实施例还提供了一种任意粒度的模块化扩展与集成的装置。由于该装置解决问题的原理与任意粒度的模块化扩展与集成的方法(从被扩展模块角度)相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图7是本发明实施例中应用于被扩展模块的任意粒度的模块化扩展与集成的装置的结构框图。如图7所示,应用于被扩展模块的任意粒度的模块化扩展与集成的装置包括:

第二接收单元,用于接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID;接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述;

扩展契约单元,用于生成与每个扩展点ID对应的一个或多个扩展契约;

第二发送单元,用于发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置;发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置;

功能单元,用于根据扩展描述从扩展模块中取得对应的功能。

综上,本发明实施例的任意粒度的模块化扩展与集成的装置(从被扩展模块角度)先接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID,再生成与每个扩展点ID对应的一个或多个扩展契约,然后发送每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置,发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置,最后接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述,并根据扩展描述从扩展模块中取得对应的功能,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

基于同一发明构思,本发明实施例还提供了一种任意粒度的模块化扩展与集成的装置。由于该装置解决问题的原理与任意粒度的模块化扩展与集成的方法(从扩展模块角度)相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图8是本发明实施例中应用于扩展模块的任意粒度的模块化扩展与集成的装置的结构框图。如图8所示,应用于扩展模块的任意粒度的模块化扩展与集成的装置包括:

第三接收单元,用于接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约;

扩展描述单元,用于生成与扩展契约一一对应的扩展描述;

第三发送单元,用于发送扩展描述至任意粒度的模块化扩展与集成的管理装置。

本发明实施例的任意粒度的模块化扩展与集成的装置(从扩展模块角度)先接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约,再生成与扩展契约一一对应的扩展描述,然后发送扩展描述至任意粒度的模块化扩展与集成的管理装置,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

基于同一发明构思,本发明实施例还提供了一种任意粒度的模块化扩展与集成的系统。图9是本发明实施例中任意粒度的模块化扩展与集成的系统的结构框图。如图9所示,任意粒度的模块化扩展与集成的系统包括如上所述的应用于任意粒度的模块化扩展与集成的管理装置的任意粒度的模块化扩展与集成的装置;如上所述的应用于被扩展模块的任意粒度的模块化扩展与集成的装置;如上所述的应用于扩展模块的任意粒度的模块化扩展与集成的装置。

任意粒度的模块化扩展与集成的系统的具体流程如下:

1、任意粒度的模块化扩展与集成的管理装置将一个或多个系统按照预设的规则划分为多个模块,对多个模块中的任意两个模块执行如下处理:分配一个或多个扩展点以及与扩展点一一对应的扩展点ID至被扩展模块。

2、被扩展模块接收来自任意粒度的模块化扩展与集成的管理装置的一个或多个扩展点以及与扩展点一一对应的扩展点ID,生成并发送与每个扩展点ID对应的一个或多个扩展契约至任意粒度的模块化扩展与集成的管理装置。

3、任意粒度的模块化扩展与集成的管理装置接收来自被扩展模块的每个扩展点ID对应的一个或多个扩展契约,发送每个扩展点ID对应的一个或多个扩展契约至扩展模块。

4、扩展模块接收来自任意粒度的模块化扩展与集成的管理装置的每个扩展点ID对应的一个或多个扩展契约,生成并发送与扩展契约一一对应的扩展描述至任意粒度的模块化扩展与集成的管理装置。

5、任意粒度的模块化扩展与集成的管理装置接收来自扩展模块的与扩展契约一一对应的扩展描述。

6、任意粒度的模块化扩展与集成的管理装置根据被扩展模块和扩展模块建立模块总配置表,按照模块总配置表加载被扩展模块和扩展模块,并对每个模块进行初始化。任意粒度的模块化扩展与集成的管理装置还在扩展注册管理器中对每个模块对应的一个或多个扩展点ID以及每个扩展点ID对应的一个或多个扩展描述进行注册。

7、被扩展模块发送预设扩展点ID至任意粒度的模块化扩展与集成的管理装置。

8、任意粒度的模块化扩展与集成的管理装置接收来自被扩展模块的预设扩展点ID,从扩展注册管理器中取得并发送与预设扩展点ID对应的扩展描述至被扩展模块。

9、被扩展模块接收来自任意粒度的模块化扩展与集成的管理装置的与预设扩展点ID对应的扩展描述,根据扩展描述从扩展模块中取得对应的功能。

例如,当被扩展模块想要某个扩展模块的功能时,发送该扩展模块的功能对应的扩展点ID至任意粒度的模块化扩展与集成的管理装置,由任意粒度的模块化扩展与集成的管理装置根据扩展点ID获取扩展模块的扩展描述以获取扩展描述对应的功能。功能可以是扩展模块给出的某些资源,也可以是扩展模块提供计算服务,或者某种其它业务功能等等。

本发明实施例的任意粒度的模块化扩展与集成的系统可以根据各种业务需要将一个独立的系统分割为多个模块,并可以将分割得到的模块自动集成合并成为一个新的有机的整体,提高了系统的扩展能力,减小了系统各模块之间的耦合度,增加了系统各模块的可替换性、重用性和适用性,使得单个模块出现的问题不会影响到系统的安全,为单独生产、开发和测试各自独立的子模块提供了基础。

综上所述,本发明实施例提供的任意粒度的模块化扩展与集成的系统具有以下有益效果:

1、支持模块的粒度的任意大小。对于任意系统,支持多种方式的模块化方法:全模块化方法,或者是主模块+扁平模块方法。

2、模块的扩展契约被推广(不再仅仅只包含API),并有准确的描述;这使得扩展能力几乎变得无任何限制。

3、模块多样化。模块的含义被推广了,只要遵循扩展契约和扩展描述,就可以被集成到系统。

4、各个模块的功能可以互用,使得模块本身被透明化,研发人员无需关心模块存在何处。

5、实现了系统的扩展性、可重用性和可替换性。基于本发明建立的系统,如果系统现有功能不足以完成某些业务,可以由系统开发者或者第三方用户有经验人员开发自己的模块,并将这些模块添加到系统中,这些模块自动和原有系统模块集成为一个有机整体,这是可扩展性;在任意某个模块出现问题后,不会影响到整个系统,只要将这个模块替换或者修改后,就能快速地使用系统。还可以弃掉有问题的模块,系统一般仍然可以运行,这是可重用性和可替换性。生产时,还可以根据团队规模将系统分解为适合的模块数,每个小组负责一个模块,模块研发完成后,再根据需要合并一些模块。只要研发时尽可能地减少各部分的耦合,合并模块是非常容易的。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号