一种面向第三方服务资源的聚合与优化匹配方法,设备及存储介质与流程

文档序号:17488515发布日期:2019-04-23 20:12阅读:290来源:国知局
一种面向第三方服务资源的聚合与优化匹配方法,设备及存储介质与流程

本发明涉及分布式服务软件研发技术领域,尤其涉及一种面向第三方服务资源的聚合与优化匹配方法,设备及存储介质。



背景技术:

云计算技术的飞速发展改变了传统的软件开发模式和使用方法,软件以服务的方式提供给租用者使用,这一方式除了满足按需租用、随时租用的要求外,还打破了不同软件公司所存在的软件知识产权的壁垒,使得一个公司所开发的软件可通过internet接入其他公司的软件服务,并可以进行组装,以满足不同客户的多种不同的需求,达到敏捷开发的目的,快速适应多变的市场。但在第三方软件服务的选择中存在以下一些问题;(1)如何发现所需要的软件服务;(2)如何确保服务的稳定性;(3)如何进行服务适配。产生问题(1)的原因在于,现在由第三方提供软件服务很多,服务质量(qualityofservice,qos)参差不齐,且服务实际运行的qos与其描述的sla(servicelevelagreement,sla)很可能因自身条件或运行环境限制而不同,服务消费者很难自己选择一款满意的服务。产生问题(2)的原因在于,确定后的第三方软件服务是由某一公司(或厂商)提供,服务源单一,当访问链路异常或服务本身异常,则第三方软件服务将会受到影响甚至中断使用。产生问题(3)的原因在于第三方软件服务数据没有统一标准,服务消费者又有自己的数据格式,因此第三方软件服务若想更好的被使用,须要经过必要的转换,即所谓的服务适配。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种面向第三方服务资源的聚合与优化匹配方法,方法包括:

步骤一,将第三方所提供的api服务注册到网关系统内;

步骤二,评估影响第三服务资源api访问的因素,配置智能路由;

步骤三,适配api服务资源的响应报文。

优选地,步骤一还包括:

(1)api消费者的某个app将身份认证相关的信息封装在请求中,向网关发起一个api请求;

(2)请求到达网关,网关首先分析http请求头中的认证信息,如果认证失败,则不会对该请求进行转发处理,直接返回相应错误信息,如果认证成功,则会进行下一步智能路由工作;

(3)请求认证成功后,根据请求头中的策略字段对应的值来确定路由策略,不同的值代表不同的策略,用户可以选择的策略应该包括但是不限于:可用性优先策略,响应时间快优先策略,响应成功率高优先策略和高吞吐量优先策略;如果请求头中未发现策略字段,则将采用默认策略来路由;网关将会从缓冲中直接得到相应的策略得分最高的api的信息进行请求转发,同时进行本次请求的服务记账;

(4)在确定了要转发的api后,将用户的请求报文转换成对应的api服务需要的请求报文,把转换后的请求报文发送给api主机;

(5)网关得到响应报文后要进行返回报文的转换,将返回的原始报文转换成平台设定的标准的报文,同时修改当前请求的记账记录,更新响应时间和响应状态信息;

如果用户进一步定制了返回报文的内容,将标准的报文再进行一步处理后返回给用户。

优选地,步骤二还包括:

评估影响第三服务资源api访问的因素包括:可用性、响应时间、成功率和吞吐量:

可用性为某个服务对于某个用户在一段时间内的可用时间占比;

响应时间为某个用户对于某个服务请求时所得到的响应时间;用户ui对服务sj访问时的响应时间为rtij;采用如下公式进行计算:

其中,是平均响应时间;

成功率为某个用户对于某个服务访问时成功的概率;用户ui对服务sj访问时的响应时间为srij;

吞吐率为某个用户对于某个服务访问时吞吐率,一段时间内接受对某个服务并发访问次数/这段时间内该服务所在节点总的访问次数;

采用的评分规则是依据实际执行结果与sla中的值的比对而进行基于信誉的评价;将评分作为监督值,训练出方程,为路由做准备;评价规则如下:

设sla中规定的值为参照标准:标准有效性avstd、标准响应时间rtstd、标准成功率srstd、标准吞吐率分别tostd;实际测出来的值为:有效性av、响应时间rt、成功率sr、吞吐率分别to;则评分e的计算公式为:

其中,(δ1,δ2,δ3,δ4)限定性参数,设定为δ1=δ2=δ3=δ4=1,或设定为δ1+δ2+δ3+δ4=1,用来要限制e随着qos参量的增长比率;用标准响应时间减去实际测出的响应时间rtstd–rt;

建立因子分解机模型,进行用实际测试的qos参数与监督数据进行训练,得出因子分解机模型中的参数,代入因子分解机模型中,建立服务选择方程,如下所示:

其中,w0∈r,w=(w1,w2,…,wn)t,w∈rn,<vi,vj>∈rn×k,xi∈qos,n是变量的个数,k<<n表示因子分解的维度,<vi,vj>表示两个大小为k的向量vi和向量vj;

此公式中的x就代表上述提及的可用性、响应时间、成功率和吞吐率;w及v为待训练参数;

将每个服务当前实际值的平均值代入方程得到每个服务实际qos值;在任务挑选时,将请求所要求的服务qos代入到方程中,计算获得相应的值,与每个服务qos实际值比对,选择出最合适的服务,将任务分配给所述服务。

优选地,步骤三还包括:网关将一类第三方服务资源中的不同的api服务返回的响应报文转化为统一格式的响应报文返回给用户,api服务资源响应报文适配步骤如下:

(1)将服务请求发送给选定的第三方api服务资源;

(2)得到api返回的响应体json报文;

(3)解析原始的json报文,获得所有的叶子信息并且编号;

(4)遍历设定好的标准的json报文,根据原始json报文与标准json报文叶子之间的映射关系构造标准报文;

返回标准报文给用户。

优选地,步骤一中将第三方所提供的api服务注册到网关系统内,注册信息包括api服务名称、api授权信息、api分类、api访问地址、api参数、报文格式。

一种实现面向第三方服务资源的聚合与优化匹配方法的设备,包括:

存储器,用于存储计算机程序及面向第三方服务资源的聚合与优化匹配方法;

处理器,用于执行所述计算机程序及实现面向第三方服务资源的聚合与优化匹配方法,以实现面向第三方服务资源的聚合与优化匹配方法的步骤。

一种具有实现面向第三方服务资源的聚合与优化匹配方法的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现面向第三方服务资源的聚合与优化匹配方法的步骤。

从以上技术方案可以看出,本发明具有以下优点:

1、本发明提供了第三服务资源注册的方法,对同种服务进行分类,可以在系统中聚集大量的第三方服务资源,这些访问路径对用户来说的透明的。这样用户只通过本发明中的提供的方法,在单一的系统中寻找所需要的第三服务资源,不需要花大量的时间在internet上寻找服务资源,节省了时间、简化了服务资源请求的流程。

2、通过本发明的中的方法可以聚集大量的第三方服务资源在系统内,用户按需求将请求发送给系统,并不与固定的第三方服务资源绑定,系统根据用户需求智能将请求路由到最适合的第三方服务资源,当资源出现故障时,系统继续路由并查找与需求相匹配的第三方服务资源,在完成了服务发现的同时,确保了资源访问的最优性、透明性及稳定性。

3、第三方api服务资源提供的响应报文通常没的统一的格式,与用户的需求大相径庭,本发明提供了报文适配的方法,可以将第三方api服务资源的响应报文转化成系统指定的格式,从而完成服务数据适配。

附图说明

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

图1为第三方服务资源请求示意图。

图2服务组件api资源的详细信息。

图3路由,将任务分派给服务组件api。

图4请求报文适配。

图5响应报文适配。

图6获得json中所有叶子信息并且编码算法流程图。

图7为面向第三方服务资源的聚合与优化匹配方法流程图。

具体实施方式

本发明提供一种面向第三方服务资源的聚合与优化匹配方法,如图1至7所示,方法包括:

s1,将第三方所提供的api服务注册到网关系统内;

s2,评估影响第三服务资源api访问的因素,配置智能路由;

s3,适配api服务资源的响应报文。

其中,内服务为互联网服务中心(internetservicecenter,isc)发送给网关的请求第三方服务时,由网关提供给isc的服务。分为内服务请求和内服务响应。

外服务为网关将内服务请求转发给第三方服务提供商并接收请求的服务。分为外服务请求和外服务响应。

互联网服务中心(即isc)是本发明应用软件的基本组织单位,isc可以申请使用外服务。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

面向第三方服务资源的聚合与优化匹配方法包括三个组成部分:第三方服务资源注册、报文适配、智能路由。

根据本发明优选的,第三方服务资源注册是将第三方所提供的api服务注册到网关系统内,注册信息包括api服务名称、api授权信息、api分类、api访问地址、api参数、报文格式。通过第三方服务资源注册,可以将第三方服务资源聚合到云服务平台上。报文适配就将第三方服务提供的信息转换为标准格式。智能路由是根据内服请求动态选定符合要求的服务访问路径去选择服务路径,并将服务生成的结果反馈给内服务请求。

1、第三方服务资源api请求的步骤

(6)api消费者的某个app将身份认证相关的信息封装在请求中,向网关发起一个api请求。

(7)请求到达网关,网关首先分析http请求头中的认证信息,如果认证失败,则不会对该请求进行转发处理,直接返回相应错误信息,如果认证成功,则会进行下一步智能路由工作。

(8)请求认证成功后,根据请求头中的策略字段对应的值来确定路由策略,不同的值代表不同的策略,用户可以选择的策略应该包括但是不限于:可用性优先策略,响应时间快优先策略,响应成功率高优先策略和高吞吐量优先策略。如果请求头中没有发现策略字段,则将采用默认策略来路由。网关将会从缓冲中直接得到相应的策略得分最高的api的信息进行请求转发,同时进行本次请求的服务记账。

(9)在确定了要转发的api后,需要将用户的请求报文转换成对应的api服务需要的请求报文,把转换后的请求报文发送给api主机。

(10)网关得到响应报文后要进行返回报文的转换,将返回的原始报文转换成平台设定的标准的报文,同时修改当前请求的记账记录,更新响应时间和响应状态等信息。

(11)如果用户进一步定制了返回报文的内容,那就将标准的报文再进行一步处理后返回给用户。

这里所描述的技术可以实现在硬件,软件,固件或它们的任何组合。所述的各种特征为模块,单元或组件可以一起实现在集成逻辑装置或分开作为离散的但可互操作的逻辑器件或其他硬件设备。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路器件,诸如集成电路芯片或芯片组。

智能路由的依据是评估影响第三服务资源api访问的主要因素来确定的,它包括四个方面:可用性、响应时间、成功率和吞吐量。绝大多数api资源都是付费的,通常的情况下,时间越短效率越高,可用性、成功率及吞吐量代表着api服务的稳定性。这四个因素的定义及计算方法如下:

(1)可用性(availability,av)某个服务对于某个用户在一段时间内的可用时间占比。

(2)响应时间(responsetime,rt)某个用户对于某个服务请求时所得到的响应时间。用户用户ui对服务sj访问时的响应时间为rtij。由于响应时间越大,越不符要求,它与其他几个参数变化率并不相同,所以,采用如下公式进行计算:

其中,是平均响应时间。

(3)成功率(successrate,sr)某个用户对于某个服务访问时成功的概率。用户用户ui对服务sj访问时的响应时间为srij。

(4)吞吐率(throughout,to)某个用户对于某个服务访问时吞吐率,一段时间内接受对某个服务并发访问次数/这段时间内该服务所在节点总的访问次数。这里不能用绝对吞吐量,以防止该参数值太大而淹没了其他参数的影响。

路由的目的实际就是把不同的任务分派给不同服务组件上去执行,它的特点是调度时间短而次数频繁,来自用户的服务评价可能会不及时,而且大部分情况下只能表示用户对服务的喜好,而不能精确表示服务质量,因而在路由过程中,可能会有选择错误。因此,本方法所采用的评分规则是依据实际执行结果与sla中的值的比对而进行基于信誉的评价。将评分作为监督值,训练出方程,为路由做准备。评价规则如下:

设sla中规定的值为参照标准:标准有效性avstd、标准响应时间rtstd、标准成功率srstd、标准吞吐率分别tostd;实际测出来的值为:有效性av、响应时间rt、成功率sr、吞吐率分别to;则评分e的计算公式为:

其中,(δ1,δ2,δ3,δ4)限定性参数,可以设定为δ1=δ2=δ3=δ4=1,也可以设定为δ1+δ2+δ3+δ4=1,它们是用来要限制e随着qos参量的增长比率。响应时间的比率计算与其他参数计算不同,是用标准响应时间减去实际测出的响应时间rtstd–rt,这是因为高于响应时间的服务则视为不能完全满足要求,若高出很多,则视为失败。

建立因子分解机模型,进行用实际测试的qos参数与监督(评分规则计算得出)数据进行训练,得出因子分解机模型中的参数,代入因子分解机模型中,建立服务选择方程,如下所示:

其中,w0∈r,w=(w1,w2,…,wn)t,w∈rn,<vi,vj>∈rn×k,xi∈qos,n是变量的个数,k<<n表示因子分解的维度,<vi,vj>表示两个大小为k的向量vi和向量vj。

此公式中的x就代表上述提及的可用性、响应时间、成功率和吞吐率。w及v为待训练参数。

方程生成后,将每个服务当前实际值的平均值代入方程得到每个服务实际qos值。在任务挑选时,将请求所要求的服务qos代入到方程中,计算获得相应的值,与每个服务qos实际值比对,选择出最合适的服务,将任务分配给它。

如果在硬件中实现,本发明涉及一种装置,例如可以作为处理器或者集成电路装置,诸如集成电路芯片或芯片组。可替换地或附加地,如果软件或固件中实现,所述技术可实现至少部分地由计算机可读的数据存储介质,包括指令,当执行时,使处理器执行一个或更多的上述方法。例如,计算机可读的数据存储介质可以存储诸如由处理器执行的指令。

报文适配为网关会将一类第三方服务资源中的不同的api服务返回的响应报文转化为统一格式的响应报文返回给用户,这样既可以整合不同的api资源,也可以让用户定制需要的服务内容。api服务资源响应报文适配步骤如下:

(5)将服务请求发送给选定的第三方api服务资源。

(6)得到api返回的响应体—json报文。

(7)解析原始的json报文,获得所有的叶子信息并且编号。

(8)遍历设定好的标准的json报文,根据原始json报文与标准json报文叶子之间的映射关系构造标准报文。

(9)返回标准报文给用户。

所述代码或指令可以是软件和/或固件由处理电路包括一个或多个处理器执行,如一个或多个数字信号处理器(dsp),通用微处理器,特定应用集成电路(asics),现场可编程门阵列(fpga),或者其它等价物把集成电路或离散逻辑电路。因此,术语“处理器,”由于在用于本文时可以指任何前述结构或任何其它的结构更适于实现的这里所描述的技术。另外,在一些方面,本公开中所描述的功能可以提供在软件模块和硬件模块。

下面结合说明书附图和实施用例对本发明作进一步说明,但不限于此。

在本实例中第三方服务资源表现为可被调用的服务组件当中的api。服务请求将给出请求api的qos要求,系统平台将应用本方法找到与这些要求相匹配的服务组件api。按照图1展示的第三方服务资源请求场景,具体步聚如下:

(1)api服务在系统中登记,登记的内容包括api服务的基本信息及相应的qos服务信息。所有api服务信息聚集成为一张api的表格,等待调度,如图2所示。这是以离散分布集中调度的方式进行第三方服务资源的聚集。

(2)每隔1分钟就扫描一遍所有api服务的历史访问数据,分别算出每个api服务最近的可用性、响应时间、成功率、吞吐量等数据,计算每条记录的得分e,将这些数据和e值代入因子分解机,进行训练,获得方程的参数值,将其存入数据库中。

(3)访问api服务的历史数据,求得每一项qos的平均值,代入所训练出来的对应api方程中,计算获得该api的最新评分,存入hash表中。

(4)当有服务请求到达时,首先进行身份认证,如下表所示:

(5)认证并获得访问权限后,该请求从数据库调出对应服务的方程,进行计算,得到新的e值。代入hash函数,通过e’=hash(e)转换为hash表中的值,从该表中找到对应的api服务访问地址,将这一请求分派给该服务。

(6)将请求到的数据按报文适配进行转换。通过观察json的数据特征可以发现:所要获取的数据其实都在json的叶子上,对于非叶子结点的数据其实并不是特别重要,如果可以将原始的api返回的json报文的叶子与一个网关制定的标准的json报文的叶子对应起来,就可以实现原始的json响应报文向标准的json响应报文的转化。因此,响应报文的转化问题被简化成为json的叶子定位问题,由此便可以设计出一个递归算法获得一个json对象的所有的叶子信息并且编码,算法流程图如图6所示。

将转换后的数据传递给请求者。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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