CN109873715A - 一种微服务架构下的服务调用关系合理性检测方法 - Google Patents

一种微服务架构下的服务调用关系合理性检测方法 Download PDF

Info

Publication number
CN109873715A
CN109873715A CN201910028020.2A CN201910028020A CN109873715A CN 109873715 A CN109873715 A CN 109873715A CN 201910028020 A CN201910028020 A CN 201910028020A CN 109873715 A CN109873715 A CN 109873715A
Authority
CN
China
Prior art keywords
service
topo
enterprises
topological diagram
service call
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.)
Granted
Application number
CN201910028020.2A
Other languages
English (en)
Other versions
CN109873715B (zh
Inventor
余阳
张照
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
National Sun Yat Sen University
Original Assignee
National Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Sun Yat Sen University filed Critical National Sun Yat Sen University
Priority to CN201910028020.2A priority Critical patent/CN109873715B/zh
Publication of CN109873715A publication Critical patent/CN109873715A/zh
Application granted granted Critical
Publication of CN109873715B publication Critical patent/CN109873715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 (2)

1.一种微服务架构下的服务调用关系合理性检测方法,其特征在于,包括以下步骤:
第一步:根据服务提供者提供的服务注册信息获取所注册服务S以及所调用服务的权限级别信息,比较所注册服务S和所调用服务的权限级别,若所注册服务S权限级别低于所调用服务的权限级别,则跳转到第十步,否则跳转到第二步;
第二步:创建待注册服务集,并将所注册服务S加入待注册服务集中;
第三步:获取已注册服务的企业服务调用关系拓扑图Topo,并将已注册服务节点加入企业服务调用关系拓扑图Topo中;
第四步:依次从待注册服务集中取出一个未注册的服务ser,获取其关系服务集,判断关系服务集中是否存在未注册的服务,若存在,跳转第五步,否则跳转第六步;
第五步:在企业服务调用关系拓扑图Topo中添加未注册服务ser的节点,并添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边,然后将未注册服务加入待注册服务集;
第六步:在企业服务调用关系拓扑图Topo中添加未注册的服务ser节点指向其关系服务集中每个服务节点的有向边;
第七步:判断待注册服务集是否为空,若不为空,跳转到第四步,否则跳转到第八步;
第八步:检测企业服务调用关系拓扑图Topo中是否存在闭环,若存在,跳转第十步,否则跳转第九步;
第九步:服务注册成功,并保存更新后的企业服务调用关系拓扑图Topo;
第十步:拒绝服务注册,并撤销企业服务调用关系拓扑图Topo的更改。
2.根据权利要求1所述的一种微服务架构下的服务调用关系合理性检测方法,其特征在于,所述的第八步中检测企业服务调用关系拓扑图Topo中是否存在闭环的具体步骤如下:
第一步:使用一个marks数组来标记企业服务调用关系拓扑图Topo中的每个服务节点是否被遍历过,并且保证每个服务节点只会被遍历一次;
第二步:依次遍历企业服务调用关系拓扑图Topo中的服务节点v,如果v正在遍历或者遍历完成,则企业服务调用关系拓扑图Topo中不存在闭环;
第三步,若v没有被遍历过,则使用深度优先搜索算法从当前服务节点v开始进行遍历,如果与之相连的服务节点u的遍历没有结束,则存在u->v的通路,也存在v->u的通路,即形成了循环闭环;否则,当前企业服务调用关系拓扑图Topo中不存在闭环。
CN201910028020.2A 2019-01-11 2019-01-11 一种微服务架构下的服务调用关系合理性检测方法 Active CN109873715B (zh)

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 true CN109873715A (zh) 2019-06-11
CN109873715B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110784358A (zh) * 2019-10-31 2020-02-11 北京宝兰德软件股份有限公司 网络调用关系拓扑图的构建方法及装置
CN111343029A (zh) * 2020-03-17 2020-06-26 上海英方软件股份有限公司 一种基于数据转发节点拓扑监控的监控平台及方法
CN112650657A (zh) * 2019-10-10 2021-04-13 浙江大搜车软件技术有限公司 基于流计算的业务系统的分析方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168330A (zh) * 2014-08-28 2014-11-26 哈尔滨工程大学 一种基于关系图的解决Web服务组合异常问题的最优补偿方法
CN106790718A (zh) * 2017-03-16 2017-05-31 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
US20170329578A1 (en) * 2016-05-12 2017-11-16 Basal Nuclei Inc. Programming model and interpreted runtime environment for high performance services with implicit concurrency control
CN107566153A (zh) * 2017-07-21 2018-01-09 哈尔滨工程大学 一种自管理的微服务实现方法
CN108322351A (zh) * 2018-03-05 2018-07-24 北京奇艺世纪科技有限公司 生成拓扑图的方法和装置、故障确定方法和装置
CN109120708A (zh) * 2018-08-31 2019-01-01 北京神州泰岳软件股份有限公司 基于微服务组件的业务模块的构建方法、调用方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168330A (zh) * 2014-08-28 2014-11-26 哈尔滨工程大学 一种基于关系图的解决Web服务组合异常问题的最优补偿方法
US20170329578A1 (en) * 2016-05-12 2017-11-16 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 北京搜狐新媒体信息技术有限公司 服务调用链路分析方法及系统
CN107566153A (zh) * 2017-07-21 2018-01-09 哈尔滨工程大学 一种自管理的微服务实现方法
CN108322351A (zh) * 2018-03-05 2018-07-24 北京奇艺世纪科技有限公司 生成拓扑图的方法和装置、故障确定方法和装置
CN109120708A (zh) * 2018-08-31 2019-01-01 北京神州泰岳软件股份有限公司 基于微服务组件的业务模块的构建方法、调用方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘峰等: ""基于深度优先搜索的Web服务合成算法"", 《计算机工程与科学》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650657A (zh) * 2019-10-10 2021-04-13 浙江大搜车软件技术有限公司 基于流计算的业务系统的分析方法及装置
CN110784358A (zh) * 2019-10-31 2020-02-11 北京宝兰德软件股份有限公司 网络调用关系拓扑图的构建方法及装置
CN111343029A (zh) * 2020-03-17 2020-06-26 上海英方软件股份有限公司 一种基于数据转发节点拓扑监控的监控平台及方法

Also Published As

Publication number Publication date
CN109873715B (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
Chen et al. Efficient resource allocation for on-demand mobile-edge cloud computing
Zhou et al. mCloud: A context-aware offloading framework for heterogeneous mobile cloud
Soualah et al. Energy efficient algorithm for VNF placement and chaining
CN109873715A (zh) 一种微服务架构下的服务调用关系合理性检测方法
Yokoo Distributed constraint satisfaction: foundations of cooperation in multi-agent systems
CN104202183B (zh) 一种解决sdn流级别配置一致性更新的方法和装置
CN103888360A (zh) 基于贪婪算法的集合覆盖方法获取sdn网中服务节点的方法
CN106161076A (zh) 虚拟网络功能扩展方法和装置
Hamadi et al. Recovery nets: Towards self-adaptive workflow systems
CN108616394A (zh) 一种虚拟网络功能备份和部署方法
Li et al. Blockchain-enhanced fair task scheduling for cloud-fog-edge coordination environments: Model and algorithm
CN103354506B (zh) 一种物联网业务架构以及业务组合方法
Ray et al. Trace-driven modeling and verification of a mobility-aware service allocation and migration policy for mobile edge computing
Filippone et al. Synthesis of context‐aware business‐to‐business processes for location‐based services through choreographies
Cardei et al. Resource management for ad-hoc wireless networks with cluster organization
Son et al. Prediction-based dynamic load balancing using agent migration for multi-agent system
Wang et al. Data-intensive service provision based on particle swarm optimization
Chen et al. Energy efficiency analysis of e-commerce customer management system based on mobile edge computing
Prasad Vasireddy et al. A novel autonomic design pattern for invocation of services
CN112883120A (zh) 一种利用信息技术实现制造资源高度共享的服务间关联关系判定算法
CA2543989C (en) System and method for generating safe and efficient component relationships in wireless applications
Blanco et al. A transactional-QoS driven approach for web service composition
Wang et al. Acra: An autonomic and expandable architecture for cognitive radio nodes
Liu et al. A MRP-based policy conflict resolution mechanism for micro-service composition
Zhao et al. SCM: A method to improve network service layout efficiency with network evolution

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