CN109873715B - 一种微服务架构下的服务调用关系合理性检测方法 - Google Patents
一种微服务架构下的服务调用关系合理性检测方法 Download PDFInfo
- Publication number
- CN109873715B CN109873715B CN201910028020.2A CN201910028020A CN109873715B CN 109873715 B CN109873715 B CN 109873715B CN 201910028020 A CN201910028020 A CN 201910028020A CN 109873715 B CN109873715 B CN 109873715B
- Authority
- CN
- China
- Prior art keywords
- service
- topo
- enterprise
- registered
- topological graph
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明提出了一种微服务架构下的服务调用关系合理性检测方法,从服务级别、服务类型和服务组成等多方面考虑了服务间的调用关系,并制定了相应的服务调用规则,为服务调用关系的合理性检测提供了全面有效的依据;构建了企业服务调用关系拓扑图Topo,在服务注册时便对服务调用关系的合理性进行检测,进一步提升了企业服务调用的合理性以及服务结构层次化的健壮性;利用了深度优先搜索算法保证企业服务调用关系拓扑图Topo的有效性与可行性,且只有服务注册成功的情况下企业服务调用关系拓扑图Topo才会更新,降低了企业服务管理的复杂度和难度,进而提高了企业服务管理的效率。
Description
技术领域
本发明涉及服务管理领域,更具体的,涉及一种微服务架构下的服务调用关系合理性检测方法。
背景技术
在计算机技术快速发展的时代,服务的种类和数量迅速增加,不同服务由于开发技术和通信协议等造成的异构性使得服务难以集成与管理,而企业为了应对激烈的竞争会不断增加新的服务以满足日新月异的各类业务需求,同时企业还需要提高服务查找、使用与维护的效率,以便对业务需求的频繁变化快速作出反应。而微服务架构是一个轻量级的分布式服务框架,将应用按照业务功能划分成独立的微服务,每个微服务可以使用合适的编程语言进行开发和独立部署,微服务之间通过轻量级的API接口进行通讯,外部客户端访问后台微服务需要经过API网关。因此,基于微服务架构为企业提供一个服务通信、集成和智能化管理的支撑工具(以下简称为“系统”),能够解决服务异构性带来的集成问题,管理服务的整个生命周期,使服务始终处于可控的状态下,从而保障企业的高效运作。
服务调用关系管理是服务管理中的重要一项。为了服务的合理使用与管理,企业内所有要使用的服务必须先注册到系统中(以下简称为“服务注册”),随着服务资源的日益增长,系统中服务之间的调用关系也愈加复杂,因为一次独立的服务请求往往需要涉及到多个服务。在实际的调用过程中,服务可能会因自身结构层级的不合理性而违反层级调用规则,或者服务经多次组合后形成了递归调用,这些情况会引起服务的执行异常,影响到服务的正常使用,进而危害到系统的健壮性。因此,对服务调用关系的合理性进行检测是一个具有重大意义的问题。
服务调用关系的合理性具体指的是服务按照其本身配置以及用户设置的调用逻辑关系在实际的调用过程中满足制定的服务调用规则,不会产生调用逻辑错误。在服务注册时即检测服务调用关系的合理性,判断所注册服务是否符合制定的服务调用规则,保证新服务的注册不会违反系统原有服务的逻辑调用,并剔除违反逻辑层级的服务,为企业服务的调用与运行提供保障。
发明内容
为了解决现有技术中无法对服务间调用关系的合理性进行检测的不足,本发明提供了一种微服务架构下的服务调用关系合理性检测方法。
为实现以上发明目的,采用的技术方案是:
一种微服务架构下的服务调用关系合理性检测方法,包括以下步骤:
第一步:根据服务提供者提供的服务注册信息获取所注册服务S以及所调用服务的权限级别信息,比较所注册服务S和所调用服务的权限级别,若所注册服务S权限级别低于所调用服务的权限级别,则跳转到第十步,否则跳转到第二步;
第二步:创建待注册服务集,并将所注册服务S加入待注册服务集中;
第三步:获取已注册服务的企业服务调用关系拓扑图Topo,并将已注册服务节点加入企业服务调用关系拓扑图Topo中;
第四步:依次从待注册服务集中取出一个未注册的服务ser,获取其关系服务集,判断关系服务集中是否存在未注册的服务,若存在,跳转第五步,否则跳转第六步;
第五步:在企业服务调用关系拓扑图Topo中添加未注册服务ser的节点,并添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边,然后将未注册服务加入待注册服务集;
第六步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边;
第七步:判断待注册服务集是否为空,若不为空,跳转到第四步,否则跳转到第八步;
第八步:检测企业服务调用关系拓扑图Topo中是否存在闭环,若存在,跳转第十步,否则跳转第九步;
第九步:服务注册成功,并保存更新后的企业服务调用关系拓扑图Topo;
第十步:拒绝服务注册,并撤销企业服务调用关系拓扑图Topo的更改。
优选的,所述的第八步中检测企业服务调用关系拓扑图Topo中是否存在闭环的具体步骤如下:
第一步:使用一个marks数组来标记企业服务调用关系拓扑图Topo中的每个服务节点是否被遍历过,并且保证每个服务节点只会被遍历一次;
第二步:依次遍历企业服务调用关系拓扑图Topo中的服务节点v,如果v正在遍历或者遍历完成,则企业服务调用关系拓扑图Topo中不存在闭环。
第三步,若v没有被遍历过,则使用深度优先搜索算法从当前服务节点v开始进行遍历,如果与之相连的服务节点u的遍历没有结束,则存在u->v的通路,也存在v->u的通路,即形成了循环闭环;否则,当前企业服务调用关系拓扑图Topo中不存在闭环。
与现有技术相比,本发明的有益效果是:
本发明提出一种微服务架构下的服务调用关系合理性检测方法,从服务级别、服务类型和服务组成等多方面考虑了服务间的调用关系,并制定了相应的服务调用规则,为服务调用关系的合理性检测提供了全面有效的依据;构建了企业服务调用关系拓扑图Topo,在服务注册时便对服务调用关系的合理性进行检测,进一步提升了企业服务调用的合理性以及服务结构层次化的健壮性;利用了深度优先搜索算法保证企业服务调用关系拓扑图Topo的有效性与可行性,且只有服务注册成功的情况下企业服务调用关系拓扑图Topo才会更新,降低了企业服务管理的复杂度和难度,进而提高了企业服务管理的效率。
附图说明
图1为企业服务调用关系合理性检测的流程图。
图2为单个服务的关系服务集获取的流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
先解释微服务架构下的服务调用关系合理性检测过程中相关元素的定义及其功能:
1)服务:由服务提供者提供的所有服务,可以是由企业内部人员开发的服务,也可以是网络发布的服务,包含微服务、应用、流程和组合服务这些可运行资源。
2)微服务:是最小粒度的服务类型,它作为一个独立的服务可以进行组合,但不能被分割。
3)应用:由一组微服务组成,可以完成某类完整的业务功能。
4)流程:是为达到特定的目标而由不同的人共同完成的一系列任务(此处指服务),任务之间有着严格的逻辑顺序。
5)组合服务:是一种可以由不同的服务类型按照一定的规则组合成的粒度较大的服务,包括非功能性组合服务和流程式组合服务。其中非功能性组合服务是由一组功能相同的服务组合成的虚拟服务,根据用户需求或设定的运行条件选择合适的子服务完成调用以提高服务质量;流程式组合服务是按照业务流程逻辑利用规则引擎组装的服务。组合服务通常用于满足复杂的业务需求。
6)服务调用关系:指服务之间的调用关系,包括了应用和流程内部的微服务调用关系、组合服务与其子服务之间的调用关系,以及在服务注册时显式定义的服务调用关系。
7)服务调用规则:为保证服务的正常调用和合理调用而设定的调用规则,主要是两种,第一,服务的调用不能违反逻辑层级,即低级别的服务不能调用高级别的服务;第二,服务间不能形成循环调用和递归调用,从而产生死锁。
8)关系服务集:与指定服务有服务调用关系的服务集合,称为该服务的关系服务集。
9)企业服务调用关系拓扑图:用于表示企业内部已注册服务的服务调用关系网络,其中节点表示服务,节点之间的有向边表示服务间的调用关系,如e(s1,s2)表示s1->s2,服务s1调用了服务s2。
如图1所示,一种微服务架构下的服务调用关系合理性检测方法,包括以下步骤:
第一步:根据服务提供者提供的服务注册信息获取所注册服务S以及所调用服务的权限级别信息,比较所注册服务S和所调用服务的权限级别,若所注册服务S权限级别低于所调用服务的权限级别,则跳转到第十步,否则跳转到第二步;
第二步:创建待注册服务集,并将所注册服务S加入待注册服务集中;
第三步:获取已注册服务的企业服务调用关系拓扑图Topo,并将已注册服务节点加入企业服务调用关系拓扑图Topo中;
第四步:依次从待注册服务集中取出一个未注册的服务ser,获取其关系服务集,判断关系服务集中是否存在未注册的服务,若存在,跳转第五步,否则跳转第六步;
第五步:在企业服务调用关系拓扑图Topo中添加未注册服务ser的节点,并添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边,然后将未注册服务加入待注册服务集;
第六步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边;
第七步:判断待注册服务集是否为空,若不为空,跳转到第四步,否则跳转到第八步;
第八步:检测企业服务调用关系拓扑图Topo中是否存在闭环,若存在,跳转第十步,否则跳转第九步;
第九步:服务注册成功,并保存更新后的企业服务调用关系拓扑图Topo;
第十步:拒绝服务注册,并撤销企业服务调用关系拓扑图Topo的更改。
优选的,所述的第八步中检测企业服务调用关系拓扑图Topo中是否存在闭环的具体步骤如下:
第一步:使用一个marks数组来标记企业服务调用关系拓扑图Topo中的每个服务节点是否被遍历过,并且保证每个服务节点只会被遍历一次;
第二步:依次遍历企业服务调用关系拓扑图Topo中的服务节点v,如果v正在遍历或者遍历完成,则企业服务调用关系拓扑图Topo中不存在闭环。
第三步,若v没有被遍历过,则使用深度优先搜索算法从当前服务节点v开始进行遍历,如果与之相连的服务节点u的遍历没有结束,则存在u->v的通路,也存在v->u的通路,即形成了循环闭环;否则,当前企业服务调用关系拓扑图Topo中不存在闭环。
实施例2
如图1以及图2所示,一种微服务架构下的服务调用关系合理性检测方法,其具体步骤如下:
首先,对单个服务的关系服务集获取流程如下:
所注册服务的关系服务集中存在未注册服务的情况主要是在所注册服务的服务类型为应用或者流程的场景下,其内部调用了未注册的服务;组合服务本是利用系统中已注册服务进行组合的,因此不存在这种情况。
图2给出了获取单个服务的关系服务集的流程图。首先输入一个服务,判断其是否为应用/流程类型的服务,若是,则获取其内部服务集;然后判断其是否为组合服务,若是,则获取其子服务集;接着判断其是否调用其他服务,若是,则获取其调用服务集。然后分别从其内部服务集、子服务集以及调用服务集中取出其调用的服务,并加入该服务的关系服务集中,直至相应集合为空,最终便得到了输入服务的关系服务集。
如图1所示,一种微服务架构下的服务调用关系合理性检测方法,其具体步骤如下:
第一步:根据服务提供者提供的服务注册信息获取所注册服务S以及所调用服务的权限级别信息,比较所注册服务S和所调用服务的权限级别,若所注册服务S权限级别低于所调用服务的权限级别,则跳转到第十步,否则跳转到第二步;
第二步:创建待注册服务集,并将所注册服务S加入待注册服务集中;
第三步:获取已注册服务的企业服务调用关系拓扑图Topo,并将已注册服务节点加入企业服务调用关系拓扑图Topo中;
第四步:依次从待注册服务集中取出一个未注册的服务ser,获取其关系服务集,判断关系服务集中是否存在未注册的服务,若存在,跳转第五步,否则跳转第六步;
第五步:在企业服务调用关系拓扑图Topo中添加未注册服务ser的节点,并添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边,然后将未注册服务加入待注册服务集;
第六步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边;
第七步:判断待注册服务集是否为空,若不为空,跳转到第四步,否则跳转到第八步;
第八步:检测企业服务调用关系拓扑图Topo中是否存在闭环,若存在,跳转第十步,否则跳转第九步;
第九步:服务注册成功,并保存更新后的企业服务调用关系拓扑图Topo;
第十步:拒绝服务注册,并撤销企业服务调用关系拓扑图Topo的更改。
优选的,所述的第八步中检测企业服务调用关系拓扑图Topo中是否存在闭环的具体步骤如下:
第一步:使用一个marks数组来标记企业服务调用关系拓扑图Topo中的每个服务节点是否被遍历过,并且保证每个服务节点只会被遍历一次;
第二步:依次遍历企业服务调用关系拓扑图Topo中的服务节点v,如果v正在遍历或者遍历完成,则企业服务调用关系拓扑图Topo中不存在闭环。
第三步,若v没有被遍历过,则使用深度优先搜索算法从当前服务节点v开始进行遍历,如果与之相连的服务节点u的遍历没有结束,则存在u->v的通路,也存在v->u的通路,即形成了循环闭环;否则,当前企业服务调用关系拓扑图Topo中不存在闭环。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (1)
1.一种微服务架构下的服务调用关系合理性检测方法,其特征在于,包括以下步骤:
第一步:根据服务提供者提供的服务注册信息获取所注册服务S以及所调用服务的权限级别信息,比较所注册服务S和所调用服务的权限级别,若所注册服务S权限级别低于所调用服务的权限级别,则跳转到第十步,否则跳转到第二步;
第二步:创建待注册服务集,并将所注册服务S加入待注册服务集中;
第三步:获取已注册服务的企业服务调用关系拓扑图Topo,并将已注册服务节点加入企业服务调用关系拓扑图Topo中;
第四步:依次从待注册服务集中取出一个未注册的服务ser,获取其关系服务集,判断关系服务集中是否存在未注册的服务,若存在,跳转第五步,否则跳转第六步;
第五步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点,并添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边,然后将未注册服务加入待注册服务集;
第六步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边;
第七步:判断待注册服务集是否为空,若不为空,跳转到第四步,否则跳转到第八步;
第八步:检测企业服务调用关系拓扑图Topo中是否存在闭环,若存在,跳转第十步,否则跳转第九步;
第九步:服务注册成功,并保存更新后的企业服务调用关系拓扑图Topo;
第十步:拒绝服务注册,并撤销企业服务调用关系拓扑图Topo的更改;
关系服务集:与指定服务有服务调用关系的服务集合,称为该服务的关系服务集;
所述的第八步中检测企业服务调用关系拓扑图Topo中是否存在闭环的具体步骤如下:
第一步:使用一个marks数组来标记企业服务调用关系拓扑图Topo中的每个服务节点是否被遍历过,并且保证每个服务节点只会被遍历一次;
第二步:依次遍历企业服务调用关系拓扑图Topo中的服务节点v,如果v正在遍历或者遍历完成,则企业服务调用关系拓扑图Topo中不存在闭环;
第三步,若v没有被遍历过,则使用深度优先搜索算法从当前服务节点v开始进行遍历,如果与之相连的服务节点u的遍历没有结束,则存在u→v的通路,也存在v→u的通路,即形成了循环闭环;否则,当前企业服务调用关系拓扑图Topo中不存在闭环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910028020.2A CN109873715B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务架构下的服务调用关系合理性检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910028020.2A CN109873715B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务架构下的服务调用关系合理性检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109873715A CN109873715A (zh) | 2019-06-11 |
CN109873715B true CN109873715B (zh) | 2021-07-02 |
Family
ID=66917667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910028020.2A Active CN109873715B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务架构下的服务调用关系合理性检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109873715B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650657A (zh) * | 2019-10-10 | 2021-04-13 | 浙江大搜车软件技术有限公司 | 基于流计算的业务系统的分析方法及装置 |
CN110784358A (zh) * | 2019-10-31 | 2020-02-11 | 北京宝兰德软件股份有限公司 | 网络调用关系拓扑图的构建方法及装置 |
CN111343029B (zh) * | 2020-03-17 | 2023-06-09 | 上海英方软件股份有限公司 | 一种基于数据转发节点拓扑监控的监控平台及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168330A (zh) * | 2014-08-28 | 2014-11-26 | 哈尔滨工程大学 | 一种基于关系图的解决Web服务组合异常问题的最优补偿方法 |
CN109120708A (zh) * | 2018-08-31 | 2019-01-01 | 北京神州泰岳软件股份有限公司 | 基于微服务组件的业务模块的构建方法、调用方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10310820B2 (en) * | 2016-05-12 | 2019-06-04 | Basal Nuclei Inc | Programming model and interpreted runtime environment for high performance services with implicit concurrency control |
CN106790718A (zh) * | 2017-03-16 | 2017-05-31 | 北京搜狐新媒体信息技术有限公司 | 服务调用链路分析方法及系统 |
CN107566153B (zh) * | 2017-07-21 | 2020-09-25 | 哈尔滨工程大学 | 一种自管理的微服务实现方法 |
CN108322351B (zh) * | 2018-03-05 | 2021-09-10 | 北京奇艺世纪科技有限公司 | 生成拓扑图的方法和装置、故障确定方法和装置 |
-
2019
- 2019-01-11 CN CN201910028020.2A patent/CN109873715B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168330A (zh) * | 2014-08-28 | 2014-11-26 | 哈尔滨工程大学 | 一种基于关系图的解决Web服务组合异常问题的最优补偿方法 |
CN109120708A (zh) * | 2018-08-31 | 2019-01-01 | 北京神州泰岳软件股份有限公司 | 基于微服务组件的业务模块的构建方法、调用方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109873715A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109873715B (zh) | 一种微服务架构下的服务调用关系合理性检测方法 | |
US6393473B1 (en) | Representing and verifying network management policies using collective constraints | |
Cheng et al. | Automatic composition of semantic web services based on fuzzy predicate petri nets | |
US7822785B2 (en) | Methods and apparatus for composite configuration item management in configuration management database | |
CN107517216B (zh) | 一种网络安全事件关联方法 | |
US20050065977A1 (en) | Configuration of a directory system | |
US7937462B2 (en) | Verification of correctness of networking aspects of an information technology system | |
US20040225680A1 (en) | Declarative rules for metadirectory | |
US8046322B2 (en) | Methods and framework for constraint-based activity mining (CMAP) | |
CN110175027A (zh) | 一种开发业务功能的方法和装置 | |
US20050154735A1 (en) | Resource management | |
CN115061910A (zh) | 一种基于pdca循环的半自动化安全性测试方法 | |
CN110968865B (zh) | 一种基于概率本体的安卓软件风险评估方法 | |
Ordóñez et al. | Comparing drools and ontology reasoning approaches for automated monitoring in telecommunication processes | |
CN113344526B (zh) | 服务网络环境下的参考服务流程及其构建方法和应用方法 | |
Chakraborty et al. | Formal analysis of rebac policy mining feasibility | |
Najar et al. | Towards semantic modeling of intentional pervasive information systems | |
Wang et al. | Web service selection with quantitative and qualitative user preferences | |
CN112383446B (zh) | 一种查找全链路中异常链路方法及系统 | |
CN113742538A (zh) | 基于图层级的业务分析方法、装置、电子设备及存储介质 | |
CN108011730A (zh) | 一种网管系统中环网资源自动变更的方法及装置 | |
CN107943569B (zh) | 基于特征模型的实时系统中早期决策的时间分析方法 | |
Xi et al. | SHAP: suppressing the detection of inconsistency hazards by pattern learning | |
Padmanabhan | DECIMAL: A requirements engineering tool for product families | |
Zheng et al. | Intelligent search of correlated alarms for GSM networks with model-based constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |