一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于图的科技资源服务发现方法及装置

2022-05-18 04:26:10 来源:中国专利 TAG:


1.本发明涉及web服务发现、科技资源、图等技术领域,特别是涉及一种基于图的科技资源服务发现方法及装置。


背景技术:

2.科技资源是从事科技活动的人力、物力、财力以及组织、管理、信息等软、硬件要素的总称,或是强调其中某些要素的集合。它为科技活动提供了物质保障,也为科技管理、决策和科学研究提供了基本性条件保障,是国家的重要战略资源。
3.web服务是一种服务导向架构的技术,通过标准的web协议提供服务,目的是保证不同平台的应用服务可以互操作。根据w3c的定义,web服务(web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(api)所组成的,它们透过网络,例如国际互联网(internet)的远程服务器端,执行客户所提交服务的请求。
4.服务发现(service discovery)是自动检测一个计算机网络内的设备及其提供的服务。服务发现议定(service discovery protocol)帮助发现服务的网络传输协议。服务发现的目的在于为用户自行配置而减负。
5.科技资源服务具有分布式、跨域、异构等特征,特别是分布式属性,它是大数据时代的显著特征,避免了单点故障、加快了响应速度、提升了吞吐量。随着计算机技术的发展,internet上web服务的数量迅速增长,web服务采用的描述语言是xml语言,具有跨平台、跨语言、低耦合等优点。web服务作为面向服务的架构(soa)的一种具体实现,具有的基本角色是服务提供者和服务请求者。由于服务请求者从大量的web服务中获得所需的服务变得愈发困难,如何快速准确地找到满足用户请求的服务是web服务发现所要解决的关键问题。
6.服务发现方法大致分为两类:(1)基于语法的服务发现和基于语义的服务发现。基于语法的服务发现采用匹配算法对注册中心的服务进行逐个匹配计算,选择最佳的服务。这种方法简单、易于实现,不足之处是逐个匹配的过程相当耗时、效率低下,同时查全率和查准率较低,无法应对web服务爆发式增长的现状、无法解决文本一词多义等问题;(2)基于语义的web服务发现方法也有很大的弊端,本体库需要掌握领域知识的资源专家构建,每个领域都需要建立相应的本体,人力物力消耗较大,同时缺乏公共的认知标准。


技术实现要素:

7.为了克服上述现有技术的不足,本发明针对科技资源服务分布式特征,提供了一种基于图的科技资源服务发现方法及装置,能够提高web服务发现的效率。
8.本发明所采用的技术方案是:
9.一种基于图的科技资源服务发现方法,包括以下步骤:
10.将科技资源服务的每条服务信息创建为一个服务节点,针对该服务节点中的输入参数集合和输出参数集合中的每个参数创建参数节点,将参数节点与服务节点连接起来;
11.比较每两个服务节点的输入参数集合和输出参数集合是否存在交集,如果存在交集,则在该两个服务节点间创建有向边;由上述参数节点、服务节点和有向边构成图数据;
12.根据一服务请求的初始参数集合和目标参数集合,在图数据中初始状态节点和目标状态节点,计算当前状态能调用的每个服务w的服务节点到初始状态节点的距离d(w),并根据该距离d(w)计算服务的输出参数集合中的每个输出参数p的参数节点到该初始状态节点的距离当满足时,则更新其中η(w)为科技资源服务间的调用花费;
13.获取每个服务w的每个输出参数p的前缀服务prews(p),当满足时,则将服务w记为参数p的前缀服务prews(p)即prews(p)=w;参数p的前缀服务w是指,p是服务w的其中一个输出参数,即p∈wo;
14.在调用服务w后,将服务w的输出参数集合加入到服务的当前状态中,将当前调用的服务合并到已调用的服务集合中,直到当前状态包含服务请求的目标参数集合时,生成服务发现集合。
15.进一步地,在创建有向边时,根据两个服务节点的输入参数集合和输出参数集合是否为完全匹配进行标记。
16.进一步地,的计算公式如下:
[0017][0018]
其中,ow(p)为能输出参数p的服务集合,对于都有p∈wo,wo为输出参数集合;p

为输出参数,且p

∈wi,wi为输入参数集合。
[0019]
进一步地,ri为服务请求的初始参数集合。
[0020]
进一步地,在获取前缀服务时,将当前状态的输入参数集合设为请求的初始参数集合,将当前已访问的服务集合设为空集;若当前状态还未包含服务请求的目标参数集合,则对服务进行搜索;在每轮搜索过程中,计算出在当前状态时能调用的服务集合,计算过程中记录或更新输出参数p的前缀服务prews(p)。
[0021]
一种基于图的科技资源服务发现装置,包括存储器和处理器,在该存储器上存储有计算机程序,该处理器执行该程序时实现上述方法的步骤。
[0022]
一种计算机可读存储介质,存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
[0023]
与现有技术相比,本发明的有益效果是:
[0024]
1、本发明通过将科技资源服务转化为图,将单个的web服务有机关联起来,从而将web服务发现问题转成图论中的有向图最短路问题,应用启发式算法求解目标服务集合,实现web服务发现。实验结果表明,相比于传统的服务发现方法,本发明节省了大量的人力物力成本,同时提高了服务发现的效率和准确率。
[0025]
2、本发明能够提高web服务的响应速度,提升用户的满意度。过去的服务发现使用的非功能属性(qos)大多为价格、信誉度等属性。本发明针对科技资源服务的特征,使用一
种新的qos属性—分布式属性,从而实现在在功能属性相似的web服务中,快速筛选出服务质量qos最优的web服务,有效改善了过去服务发现存在的响应时间长,吞吐量不高等问题。
[0026]
3、本发明考虑到科技资源服务的应用日益广泛,同时科技资源服务具有跨域、异构、分布式等显著特点。本发明借助图结构存储该类型web服务,服务的增加和删除只和相邻节点有关,这种局部更新的特性,使得基于图的科技资源服务发现方法相比于其他方法更加灵活、高效、易于扩展。
附图说明
[0027]
图1为基于图的科技资源服务发现流程框架;
[0028]
图2为图节点的构建流程;
[0029]
图3为有向边的创建流程;
[0030]
图4为最短路方法寻找目标服务集合的执行流程;
[0031]
图5为科技资源服务的服务关系图。
具体实施方式
[0032]
下面结合附图对本发明进一步说明。
[0033]
本发明提供的一种基于图的科技资源服务方法,将科技资源服务创建为图节点,科技资源服务间的关系创建为边,将科技资源服务间调用花费作为服务的qos属性,花费值作为边的权重,在服务发现的启发式算法中,实现了基于服务qos属性的有向图最短路径搜索,完成了前缀服务集合的筛选。主要包括5个步骤:(1)图节点创建;(2)图边创建;(3)距离计算;(4)前缀服务计算;(5)服务发现集合生成。如图1所示。
[0034]
(1)图节点创建
[0035]
根据科技资源服务的每个服务创建服务节点,根据服务的输入参数集合和输出参数集合中的每个参数创建参数节点。创建服务节点的算法伪代码如算法1所示,算法开始时,输入科技资源服务文件信息,依次遍历文件中的服务si,提取出服务的信息,创建一个服务节点。第5-11行提取服务的参数信息,将创建出服务的每个参数节点,并将参数节点与服务节点连接起来,如图2所示。
[0036][0037]
算法1中,qi为服务的qos属性信息,ii为输入参数,oi为输出参数,vi为服务节点,pi为参数节点。
[0038]
(3)图中边的创建
[0039]
根据科技资源服务间的关系创建服务节点之间的有向边,创建服务间有向边的算法伪代码如算法2所示。算法起始时,遍历每个服务节点,并对每两个服务节点的输入参数集合和输出参数集合进行比较,如果存在交集,那么就在这两个服务节点间创建边,根据匹配关系标记为部分匹配或完全匹配,如图3所示。
[0040][0041]
算法2中,i
vi
,o
vi
表示服务节点vi的输入参数集合和输出参数集合,
[0042]
(4)距离计算
[0043]
计算距离时,输入服务请求r的初始参数集合ri和目标参数集合ro,构建初始状态和目标状态,对应为初始状态节点和目标状态节点。计算的距离包括两种:其一是服务节点的输出参数集合wo中每个输出参数p与初始状态的距离(即当前状态能调用的服务的参数节点到初始状态节点的距离),其二是服务w与初始状态的距离d(w)(即当前状态能调用的服务节点到初始状态节点的距离)。当满足更新计算时,针对当前状态curs可调用服务集合curws中的每个服务w∈curws,计算服务w与初始状态的距离d(w),并根据d(w)计算出服务的输出参数集合wo中的每个输出参数p与初始状态的距离的计算公式表示如下:
[0044][0045]
上述公式中,ow(p)为能输出参数p的服务集合,即:都有p∈wo;p

为输出参数,且p

∈wi,wi为输入参数集合;η(w)为科技资源服务的qos属性,即科技资源服务调用的花费(如响应时间),赋值为边的权重。
[0046]
下文将说明在为何是从初始状态ri到参数p的最小获取费用。首先,如果想调用一个服务w,则已有输出参数集合p(算法中表示为状态curs)必须包含服务w的输入参数集合wi,即因此调用服务w需要等到wi的所有参数都被获取到,因此从ri出发到能调用服务w的状态的最小距离为如图4所示。因此通过服务w获取到参数p∈wo的花费代价为:
[0047][0048]
这样,通过比较参数p的所有前缀服务,最终得到p的最小花费代价初始化的规则如下:
[0049][0050]
(5)前缀服务计算
[0051]
针对当前状态curs可调用服务集合curws中的每个服务w,在算法开始时,将当前状态curs的输入参数集合设为请求的初始参数集合ri,将当前已访问的服务集v设为空集。若当前状态curs还未包含请求的目标参数集合ro,那么开始对服务进行搜索。在每轮搜索过程中,计算出在当前状态curs时可调用的服务集合curws。在这一步计算中记录或更新p的前缀服务prews(p)。遍历服务w的输出参数集合wo时,计算从ri到输出参数p的最小距离当满足更新参数p的最短距离,在更新时,同时更新参数p的前缀服务prews(p)=w,将当前服务w记为获取到参数p的前缀服务prews(p)。
[0052]
(6)服务发现集合生成
[0053]
在调用服务w后,将服务w的输出参数集合wo合并到当前状态curs中,将当前调用的服务集合curws合并到已调用的服务集合c中。最终,状态curs包含到请求的目标参数集合ro时,搜索过程停止,服务发现集合生成。服务发现算法3如下:
[0054][0055]
算法3中,c为已访问的服务集合,pd
ws
为所有参数的前缀服务集合,p’为服务w的输入参数集合wi中的参数。
[0056]
实施例:
[0057]
为使本发明的目的、技术方案和优点更加清楚,易于理解,下面将结合具体实施例,对本发明提出的基于图的科技资源服务发现方法的技术方案细节做进一步阐释说明。
[0058]
科技资源服务具有分布式特征,体现在科技资源常位于不同地域多个系统中,跨域的服务质量(qos)将依赖服务的响应时间。本发明提出了一种基于图的科技资源服务发现方法,将服务的响应时间作为服务的qos属性加入到图中,有效的实现了服务发现算法。具体实施如下:
[0059]
首先假设有5个web服务:w1、w2、w3、w4、w5,分别为:
[0060]
服务w1:输入参数集合{统一编码d,年份c},输出参数集合{科研经费f,在职员工人数g,人才引进情况h},服务提供方地理位置(广东省湛江市)。
[0061]
服务w2:输入参数集合{大学名称b、年份c},输出参数集合{科研经费j、在职教师人数k},服务提供方地理位置(广西壮族自治区南宁市)。
[0062]
服务w3:输入参数集合{科研院所科研经费f,科研院所人员数g,大学科研经费j,大学人员数k},输出参数集合{科研院所人均科研经费l,大学人均科研经费m,二者平均人均科研经费n},服务提供方地理位置(海南省海口市)。
[0063]
服务w4:输入参数集合{科研院所名称a},输出参数集合{统一编码d,地址详情i},服务提供方地理位置(广东省湛江市)。
[0064]
服务w5:输入参数集合{科研院所名称a、年份c},输出参数集合{统一编码d,人才引进情况p},服务提供方地理位置(广东省湛江市)。
[0065]
服务请求者位于北京市,发起的请求使用r表示,请求输入集合ri={科研院所名称a、大学名称b、年份c},请求输出集合ro={科研院所人均科研经费l、大学人均科研经费m,二者平均人均科研经费n}。
[0066]
基于图的科技资源服务发现方法包括服务关系图的构建和服务发现集合的生成两大过程。具体步骤如下:
[0067]
步骤1:根据以上服务,构建服务关系图,具体构建的过程又细分为以下步骤:
[0068]
步骤1.1:图节点创建
[0069]
将服务的输入、输出参数,服务的类别信息、科技资源服务间调用的花费(qos)等信息写入服务文件,去掉失效服务后形成服务文件,遍历服务文件中的每个服务,根据服务的名称和科技资源服务间调用的花费(qos)创建服务节点ns,对于服务的输入参数集合和输出参数集合中的每个参数依次创建参数节点n
p
,然后将参数节点和服务节点进行关联。可以发现一个服务节点对应多个参数节点。创建图节点的流程如图2所示。
[0070]
步骤1.3:图边创建。
[0071]
针对本实施例中的5个科技资源服务,由于建立的是有向边,所以需要考虑20个组合,判断是否存在有向边。下面考虑建立服务w1到服务w3的有向边,首先考察服务w1的输出参数集合α={f、g、h},接着考察服务w3的输入参数集合β={f、g、j、k},可以发现α∩β不为空,考虑建立有向边,如果为空,则不做任何处理。因为不成立,所以有向边的属性标记为部分匹配,对应的服务关系图中的线为虚线,如果成立,则标记为完全匹配,服务关系图中的线标记为实线。创建边节点的流程图如图3所示。服务关系图如图5所示。
[0072]
步骤2:以服务关系图作为根据,考虑到单纯构建服务规划图进行搜索遍历,时间复杂度是指数级别的,所以使用基于图规划的启发式算法,该算法可以在多项式复杂度的量级上实现高效的服务发现,并且取得近似最优解。
[0073]
算法以请求输入集合ri作为当前状态curs的初始值,目标状态为请求输出集合ro。以服务关系图作为根据,具体实现过程又可以细分为以下步骤:
[0074]
步骤2.1:距离计算
[0075]
定义其中表示从初始状态ri到当前参数p的距离,d(w)表示从当前状态ri到调用w之前的最大距离,η(w)表示调用当前服务的代价。
[0076]
步骤2.2:前缀服务集合生成
[0077]
遍历当前状态可调用服务集合curws中的每个服务,对应每个服务的每个输出参数p,如果满足则更新p的前缀w。
[0078]
步骤2.3:服务发现集合生成
[0079]
当前状态包含ro则搜索完成,服务发现集合即为prews。
[0080]
将以上假设的web服务使用该服务发现算法,具体步骤如下:
[0081]
初始化:输入请求集合ri={a、b、c},输出请求集合ro={l、m、n}。假设根据服务的
响应时间和分布式属性得出调用该服务的代价花费分别为:η(w1)=2,η(w2)=1,η(w3)=3,η(w4)=2,η(w5)=1。
[0082]
第一次迭代:当前状态curs=ri,可调用服务集合curws={w2,w4,w5},d(w2)=0,d(w4)=0,d(w5)=0,
[0083]
d(w5) η(w5))=iin(0 2,0 1)=1,prews(d)=w5,prews(i)=w4,
[0084]
prews(p)=w5,
[0085]
prews(j)=w2,
[0086]
prews(k)=w2,
[0087]
更新curs={a,b,c,d,i,p,j,k},v={w2,w4,w5},如果不满足则执行第二次迭代。
[0088]
第二次迭代:当前状态为curs={a,b,c,d,i,p,j,k},可调用服务集合curws={w1},
[0089]
prews(f)=w1,
[0090]
prews(g)=w1,
[0091]
prews(h)=w1,
[0092]
更新curs={a,b,c,d,i,p,j,k,f,g,h},v={w1,w2,w4,w5},如果不满足则执行第三次迭代。
[0093]
第三次迭代:当前状态为curs={a,b,c,d,i,p,j,k,f,g,h},v={w1,w2,w4,w5},可调用服务集合curws=={w3},
[0094]
prews(l)=w3
[0095]
prews(m)=w3
[0096]
prews(n)=w3
[0097]
更新curs={a,b,c,d,i,p,j,k,f,g,h,l,m,n},v={w1,w2,w3,w4,w5}。满足迭代终止。
[0098]
生成服务发现集合prews={w1,w2,w3,w4,w5}。各个输出参数对应的直接前缀服务如下表所示:
[0099]
表1:前缀服务
[0100]
abcdfghijklmnp———w5w1w1w1w4w2w2w3w3w3w5
[0101]
需要说明的是,以上实施例仅是本发明的具体个案,所描述的实施例旨在解释本发明的技术方案,不能理解为对本发明的限制。普通技术人员对本发明的相关技术方案或技术特征进行的等同替换、修改,皆应落入本发明的专利保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献