一种分布式数据系统的制作方法

文档序号:13625710阅读:130来源:国知局

本发明涉及分布式系统技术领域,特别是涉及一种分布式数据系统。



背景技术:

在项目开发过程中,尤其是在大型项目的开发过程中,为提高开发效率,往往需要将一个项目划分成多个业务模块,再由多名开发人员分别完成对各个业务模块的开发,最后再将开发出的各个业务模块集成为一个完整产品。

对于基于上述方式开发的分布式数据系统而言,在系统运行过程中,一个业务模块的执行往往需要依赖其他一个或多个业务模块的执行,也就是说,业务模块之间是具有关联关系的,例如,业务模块a执行需要业务模块b的执行结果,表明业务模块a与业务模块b具有关联关系。

一般的,各个业务模块中均预先存储有该分布式数据系统中各个业务模块之间的关联关系表,在业务模块的执行过程中需要从其自身所存储的关联关系表中查找与其具有关联关系的业务模块。当其中一个业务模块与其他业务模块的关联关系发生改变时,需要手动修改相应业务模块中的关联关系表,导致分布式数据系统的维护工作量大,尤其是当业务模块较多或关联关系发生更改的数据量较大或频率较高时,维护的工作量尤其大。



技术实现要素:

本发明实施例的目的在于提供一种分布式数据系统,能够降低分布式数据系统的维护工作量。

为达到上述目的,本发明实施例公开了一种分布式数据系统,包括:一个管理模块和多个业务模块;其中,

所述管理模块,用于存储并管理各个业务模块之间的关联关系,以及在接收到任意一个源业务模块发送的第一数据请求后,依据所存储的关联关系,查找当前与所述源业务模块具有关联关系的目的业务模块,判断所述源业务模块所请求的目标数据是否由当前相关联的目的业务模块提供,在判断结果为是时向当前相关联的目的业务模块发送第二数据请求,并将接收的由当前相关联的目的业务模块发送的目标数据反馈给所述源业务模块;

各个业务模块,用于向所述管理模块发送所述第一数据请求以及接收所述管理模块针对所述第一数据请求所反馈的所述目标数据,和/或,用于接收所述管理模块发送的第二数据请求,并向所述管理模块反馈针对所述第二数据请求的目标数据。

可选的,所述各个业务模块,具体用于:

在接收到所述第二数据请求之后,通过执行本业务模块自身的业务逻辑,获得与所述第二数据请求相对应的目标数据,并将所获得的目标数据发送至所述管理模块。

可选的,所述管理模块还用于:

在所述源业务模块所请求的目标数据不是由当前相关联的目的业务模块提供时,获得所述管理模块本地存储的各个业务模块所提供的备选数据;

根据所述源业务模块所请求的目标数据和所述备选数据,确定出提供所述目标数据的目的业务模块;

将所确定出的目的业务模块更新为当前相关联的目的业务模块。

可选的,所述管理模块中还存储有各个业务模块在开发过程中所依据的开发规范,其中,所述开发规范包括:开发、部署的目录规范,以及业务逻辑的编写规范;

所述各个业务模块为,基于所述开发规范并分别进行各自业务逻辑开发得到的模块。

可选的,所述各个业务模块为,基于模块化开发方式所开发得到的模块;其中,所述模块化开发方式为:以功能或业务为单元进行代码编写,并由各个功能或业务对应的代码来实现各个业务模块的业务逻辑。

可选的,所述管理模块中还预先存储有多个组件;

所述各个业务模块为,基于所述多个组件中的至少一个组件所开发得到的模块。

可选的,所述组件包括以下所列举的至少一种:

头部组件、尾部组件、搜索框组件、编辑组件、导航组件、对话框组件和提示组件。

本发明实施例提供的一种分布式数据系统,包括一个管理模块和多个业务模块。具体的,管理模块可以存储并管理各个业务模块之间的关联关系,以及在接收到任意一个源业务模块发送的第一数据请求后,依据所存储的关联关系,查找当前与源业务模块具有关联关系的目的业务模块,判断源业务模块所请求的目标数据是否由当前相关联的目的业务模块提供,在判断结果为是时向当前相关联的目的业务模块发送第二数据请求,并将接收的由当前相关联的目的业务模块发送的目标数据反馈给源业务模块;而各个业务模块可以向管理模块发送第一数据请求以及接收管理模块针对第一数据请求所反馈的目标数据,以及接收管理模块发送的第二数据请求,并向管理模块反馈针对第二数据请求的目标数据。由以上可见,应用本发明实施例提供的分布式数据系统,当其中一个业务模块与其他业务模块的关联关系发生改变时,仅需要管理模块自动更新所存储的关联关系即可,降低了分布式数据系统的维护工作量。

附图说明

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

图1为本发明实施例提供的一种分布式数据系统的架构示意图。

具体实施方式

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

为了降低分布式数据系统的维护工作量,本发明实施例提供了一种分布式数据系统。如图1所示,本发明实施例所提供的一种分布式数据系统,可以包括一个管理模块110和多个业务模块120。

具体的,管理模块110,用于存储并管理各个业务模块120之间的关联关系,以及在接收到任意一个源业务模块发送的第一数据请求后,依据所存储的关联关系,查找当前与源业务模块具有关联关系的目的业务模块,判断源业务模块所请求的目标数据是否由当前相关联的目的业务模块提供,在判断结果为是时向当前相关联的目的业务模块发送第二数据请求,并将接收的由当前相关联的目的业务模块发送的目标数据反馈给源业务模块。

举例而言,分布式数据系统中包括a和b两个业务模块,而业务模块a在执行自身业务逻辑的过程中,需要获得一个目标数据,而该目标数据是由业务模块b提供的,那么,可以称业务模块a和业务模块b具有关联关系,且业务模块a为源业务模块,业务模块b为业务模块a当前对应的目的业务模块。

可以理解的,源业务模块为向管理模块110发送第一数据请求并接收管理模块110发送的目标数据的业务模块;而目的业务模块为接收管理模块110发送的第二数据请求并向管理模块110反馈目标数据的业务模块。

可见,上述提及的向管理模块110发送第一数据请求以及接收管理模块110针对第一数据请求所反馈的目标数据,为各个业务模块作为源业务模块时所具有的功能;而上述提及的接收管理模块110发送的第二数据请求,并向管理模块110反馈针对第二数据请求的目标数据,为各个业务模块作为目的业务模块时所具有的功能。

需要说明的是,源业务模块和目的业务模块均属于业务模块,根据业务模块当前所具有的功能,用源业务模块和目的业务模块来进行区分;另外,各个业务模块可以仅作为源业务模块,也可以仅作为目的业务模块,还可以是既作为源业务模块又作为目的业务模块,本发明实施例无需对各个业务模块具体是源业务模块还是目的业务模块进行限定,各个业务模块所具有的功能需要根据各个业务模块之间的关联关系来确定。

举例而言,分布式数据系统中包括a、b和c三个业务模块,其中,业务模块a在执行自身业务逻辑过程中,需要业务模块b的执行结果;而业务模块b在执行自身业务逻辑过程中,又需要业务模块c的执行结果。可以看出,业务模块a仅具有作为源业务模块时的功能,业务模块c仅具有作为目的业务模块时的功能,而业务模块b具有作为业务模块a对应的目的业务模块时的功能,业务模块b还具有作为业务模块c对应的源业务模块时的功能。

具体的,各个业务模块120,用于向管理模块110发送第一数据请求以及接收管理模块110针对第一数据请求所反馈的目标数据,和/或,用于接收管理模块110发送的第二数据请求,并向管理模块110反馈针对第二数据请求的目标数据。

由以上可见,在本发明实施例提供的分布式数据系统中,管理模块能够根据源业务模块发送的第一数据请求得知源业务模块所要获得的目标数据,然后根据管理模块中存储的各个业务模块之间的关联关系,确定出该源业务模块当前对应的目的业务模块;而当其中一个业务模块与其他业务模块的关联关系发生改变时,管理模块仅需要在本地更新所存储的关联关系即可,由于无需在各个业务模块中存储各个业务模块之间的关联关系表,因此,当业务模块之间的关联关系发生改变时,也无需维护各个关联关系表,可见,应用本发明实施例提供的方案降低了分布式数据系统的维护工作量。

在本发明的一个实施例中,各个业务模块120,具体用于:

在接收到第二数据请求之后,通过执行本业务模块120自身的业务逻辑,获得与第二数据请求相对应的目标数据,并将所获得的目标数据发送至管理模块110。

需要说明的是,各个业务模块之间的业务逻辑是独立的,各个业务模块所接收的第二数据请求仅为触发相应的业务模块执行自身业务逻辑的一个触发条件,虽然,各个业务模块在执行各自业务逻辑的过程中可能需要其他业务模块提供的目标数据,但是,各个业务模块也仅仅是向管理模块发送第一数据请求去请求数据即可,并不需要与其他业务模块建立连接,也无需知晓具体是那个业务模块为其提供的目标数据。这样的好处在于,在本领域内的技术人员在业务模块的开发过程中,可以仅关注于各个业务模块内部逻辑的开发即可,无需统一各个业务模块开发时所使用的具体技术也能够实现一个完整系统的统一集成,能够大大提升系统开发效率。

在本发明的另一个实施例中,管理模块110还用于:

在源业务模块所请求的目标数据不是由当前相关联的目的业务模块提供时,获得管理模块110本地存储的各个业务模块120所提供的备选数据;

根据源业务模块所请求的目标数据和备选数据,确定出提供目标数据的目的业务模块;

将所确定出的目的业务模块更新为当前相关联的目的业务模块。

可以理解的,在源业务模块与原目的业务模块之间的关联关系发生改变后,需要在管理模块中更新源业务模块与改变后的目的业务模块之间的关联关系。

具体的,当源业务模块所请求的目标数据不是由当前相关联的目的业务模块提供时,表明源业务模块所请求的目标数据已经由之前的目的业务模块变成了其他的业务模块,因此需要重新确定当前与该源业务模块具有关联关系的目的业务模块,根据管理模块110中存储的各个业务模块所提供的备选数据与业务模块之间的对应关系,确定出当前向该源业务模块提供目标数据的目的业务模块,并将所确定出的目的业务模块更新为当前相关联的目的业务模块。显然,这个关联关系的更新过程并不需要手动修改,因此,降低了分布式数据系统的维护工作量。

具体的,管理模块110中还存储有各个业务模块120在开发过程中所依据的开发规范。

其中,开发规范包括:开发、部署的目录规范,以及业务逻辑的编写规范。

可以理解的,由于系统部署等原因,往往还需要对各个业务模块的业务逻辑进行更新完善,而在此过程中,本领域内的技术人员可以依据管理模块中所存储的开发规范进行修改,可以极大的提高业务模块的更新效率。

上述提及的开发、部署的目录规范,以及业务逻辑的编写规范为本发明实施例所提供的一种开发规范所包括的具体条项,需要说明的是,本发明实施例无需对开发规范的具体内容进行限定,本领域内的技术人员可以根据实际应用中的具体需要进行合理的设置。

各个业务模块120为,基于开发规范并分别进行各自业务逻辑开发得到的模块。

其中,各个业务模块120为,基于模块化开发方式所开发得到的模块。

其中,模块化开发方式为:以功能或业务为单元进行代码编写,并由各个功能或业务对应的代码来实现各个业务模块120的业务逻辑。

举例而言,针对基于js(javascript,脚本语言)和css(cascadingstylesheets,层叠样式表)的前端项目开发而言,就可以按照具体的功能或业务为单元组织代码。其中,js负责解决独立作用域、依赖管理、api(applicationprogramminginterface,应用程序编程接口)暴露、按需加载与执行、安全合并等问题;而css则负责解决依赖管理、组件内部样式管理等问题,可见,模块化开发方式是提升前端开发效率的重要基础。

需要说明的是,由于各个业务模块是基于模块化的方式开发得到的,因此,在对分布式系统的后期维护过程中,可以很方便的定位到具体功能或业务单元,因此,可以大大提高后期维护的效率。

其中,管理模块110中还预先存储有多个组件;

各个业务模块120为,基于多个组件中的至少一个组件所开发得到的模块。

具体的,组件包括以下所列举的至少一种:

头部组件、尾部组件、搜索框组件、编辑组件、导航组件、对话框组件和提示组件。

举例而言,在模块化开发的基础上,还可以以页面小部件component为单位将页面小部件的js、css、html(hypertextmarkuplanguage,超文本标记语言)代码片段放在一起开发维护。需要说明的是,各个组件是资源独立的,因此各个组件在系统内部重复使用。还需要说明的是,不同业务模块需要对组件化的js部分进行必要的封装,以解决一些常见组件的渲染和交互问题。

需要说明的是,无论是在各个业务模块的开发过程中,还是在各个业务模块的后期维护过程中,组件的方式能够大大提高本领域内的技术人员的代码编写效率,也可以提高开发过程以及后期维护的效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1