一种会话处理的方法、设备和系统技术方案

技术编号:9936856 阅读:74 留言:0更新日期:2014-04-18 20:16
一种会话处理的方法,其特征在于,所述方法包括:API代理接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;所述API代理根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话数据;所述API代理接收从调用第二API的API调用设备发出的调用第二API的请求;所述API代理根据调用第二API的请求执行第二API的处理流程,在执行第二API的处理流程中,根据调用第二API的请求中包括的用于标识第一API对应的会话的外部事务标识ID,获取在执行第一API的处理流程中缓存的所述会话的会话数据,根据获取的所述会话数据对所述会话进行处理。

【技术实现步骤摘要】
一种会话处理的方法、设备和系统
本专利技术涉及计算机
,尤其涉及一种会话处理的方法、设备和系统。
技术介绍
随着互联网技术的快速发展,越来越多的服务都可以通过互联网提供,比如:订餐、订票、购物等。传统方式下,互联网服务提供商通过自己建立的WEB门户为用户提供服务,由于客户需求经常变化时,需要互联网服务提供商根据客户需求不断更新WEB门户的界面,维护难度较大。因此,部分互联网服务提供商将提供的服务以应用程序编程接口(ApplicationProgrammingInterface,API)的方式对外开放,第三方开发者或互联网公司利用这些API开发多种应用,以满足用户个性化、多样性的需求。如图1所示,当前的一种常用的开放API的方法为:在调用API的客户端和真正提供互联网服务的API(APIBackend,API后端)之间增加一个API代理(API代理),终端用户(EndUser)通过客户端使用API后端提供的服务,运行客户端的本地应用程序(NativeApp)或Web应用程序(WebApp),经由API代理访问API后端,使用API后端提供的服务。图1中的API代理通常也称作API网关(APIGateway)、能力开放平台(CapabilityOpenPlatform)或API开放平台(APIOpenPlatform),在API代理中实现API调用的管理、控制、计费、接口协议归一化等功能。图1中终端用户在运行客户端上的本地应用程序或Web应用程序时,本地应用程序或Web应用程序需要调用API后端的API。为了对API后端的API调用进行管理、控制或接口格式归一化等,API后端不直接对应用程序开放API,而是开放API给API代理,再由API代理开放API给应用程序。在目前的API开放过程中,调用API代理上的API的调用设备,以下简称“API调用设备”(可为图1中的客户端或API后端等)发起的多次API调用之间是独立的,无需建立会话关联。但对于某些特殊的业务场景下,希望将多次API调用进行会话关联但利用目前开放API的方法却无法实现。比如,在图2所示的API调用的过程中,消息交互主要流程如下:客户端调用API1;API代理设置会话数据并保存;API代理调用API后端的API2;API代理获取之前设置的数据;API代理调用API后端的API3;API代理根据API3的返回的数据设置会话数据;API代理综合API3调用返回信息和从会话中取回的数据进行逻辑处理;API代理返回API1的调用返回给客户端。在图2中所示的流程中,只能在一次客户端的API调用流程中进行会话数据的设置和提取,如果客户端发起两次API调用,则第二次调用无法获取第一次API调用设置的会话数据。综上,目前的API开放技术无法实现API调用设备在先后调用API代理的多个API时,后面调用的API获取前面API调用时设置的会话数据,以实现多个API调用的会话关联。
技术实现思路
本专利技术实施例提供一种会话处理的方法、设备和系统,用以实现API调用设备在先后调用API代理上的多个API时的会话关联。第一方面,本专利技术实施例提供一种会话处理的方法,所述方法包括:API代理接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;所述API代理根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话数据;所述API代理接收从调用第二API的API调用设备发出的调用第二API的请求;所述API代理根据调用第二API的请求执行第二API的处理流程,在执行第二API的处理流程中,根据调用第二API的请求中包括的用于标识第一API对应的会话的外部事务标识ID,获取在执行第一API的处理流程中缓存的所述会话的会话数据,根据获取的所述会话数据对所述会话进行处理。结合第一方面,在第一种可能的实现方式中,所述方法还包括:所述API代理在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的API调用设备发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;所述API代理在执行第二API的处理流程中,获取执行第一API的处理流程中缓存的所述会话的会话数据之前,判定在执行第一API的处理流程中确定的第一API对应的会话的外部事务ID与调用第二API的请求中包括的外部事务ID一致。结合第一方面,在第二种可能的实现方式中,所述方法还包括:所述API代理在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的应用发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;所述API代理在执行第一API的处理流程中,在确定第一API对应的会话的外部事务ID之后,根据第一API对应的API提供者的标识、第一API对应的API后端的标识,以及确定的外部事务ID,生成对应的内部事务ID,并记录生成的内部事务ID与缓存的所述会话的会话数据的对应关系;所述API代理在执行第二API的处理流程中,获取执行第一API的处理流程中缓存的所述会话的会话数据之前,根据第二API对应的API提供者的标识、第二API对应的API后端的标识以及调用第二API的请求中包括的外部事务ID,生成对应的内部事务ID,判定在执行第二API的处理流程中生成的内部事务ID与在执行第一API的处理流程中生成的内部事务ID一致。结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述API代理执行第一API的处理流程包括:所述API代理基于用于描述第一API处理流程的可扩展标记语言XML文件执行第一API的处理流程;所述API代理执行第二API的处理流程包括:所述API代理基于用于描述第二API处理流程的XML文件执行第二API的处理流程。第二方面,本专利技术实施例还提供了一种会话处理的方法,所述方法包括:在应用编程接口API代理执行第一API的处理流程中,API调用设备从所述API代理处返回的第一API的响应中获取第一API对应的会话的外部事务ID;或API调用设备向所述API代理发送外部事务ID,以使所述API代理将收到的所述外部事务ID确定为第一API对应的会话的外部事务ID。所述API调用设备向所述API代理发送调用第二API的请求,所述请求中包括所述第一API对应的所述会话的外部事务ID,以使所述API代理根据所述会话的外部事务ID,获取所述API代理在执行第一API处理流程中缓存的所述会话的会话数据,并根据获取的所述会话的会话数据对所述会话进行处理。第三方面,本专利技术实施例还提供了一种应用程序编程接口API代理,所述API代理包括:第一处理模块,用于接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话本文档来自技高网
...
一种会话处理的方法、设备和系统

【技术保护点】
一种会话处理的方法,其特征在于,所述方法包括:API代理接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;所述API代理根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话数据;所述API代理接收从调用第二API的API调用设备发出的调用第二API的请求;所述API代理根据调用第二API的请求执行第二API的处理流程,在执行第二API的处理流程中,根据调用第二API的请求中包括的用于标识第一API对应的会话的外部事务标识ID,获取在执行第一API的处理流程中缓存的所述会话的会话数据,根据获取的所述会话数据对所述会话进行处理。

【技术特征摘要】
1.一种会话处理的方法,其特征在于,所述方法包括:API代理接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;所述API代理根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话数据;所述API代理接收从调用第二API的API调用设备发出的调用第二API的请求;所述API代理根据调用第二API的请求执行第二API的处理流程,在执行第二API的处理流程中,根据调用第二API的请求中包括的用于标识第一API对应的会话的外部事务标识ID,获取在执行第一API的处理流程中缓存的所述会话的会话数据,根据获取的所述会话数据对所述会话进行处理。2.如权利要求1所述的方法,其特征在于,所述方法还包括:所述API代理在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的API调用设备发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;所述API代理在执行第二API的处理流程中,获取执行第一API的处理流程中缓存的所述会话的会话数据之前,判定在执行第一API的处理流程中确定的第一API对应的会话的外部事务ID与调用第二API的请求中包括的外部事务ID一致。3.如权利要求1所述的方法,其特征在于,所述方法还包括:所述API代理在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的应用发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;所述API代理在执行第一API的处理流程中,在确定第一API对应的会话的外部事务ID之后,根据第一API对应的API提供者的标识、第一API对应的API后端的标识,以及确定的外部事务ID,生成对应的内部事务ID,并记录生成的内部事务ID与缓存的所述会话的会话数据的对应关系;所述API代理在执行第二API的处理流程中,获取执行第一API的处理流程中缓存的所述会话的会话数据之前,根据第二API对应的API提供者的标识、第二API对应的API后端的标识以及调用第二API的请求中包括的外部事务ID,生成对应的内部事务ID,判定在执行第二API的处理流程中生成的内部事务ID与在执行第一API的处理流程中生成的内部事务ID一致。4.如权利要求1~3任一项所述的方法,其特征在于,所述API代理执行第一API的处理流程包括:所述API代理基于用于描述第一API处理流程的可扩展标记语言XML文件执行第一API的处理流程;所述API代理执行第二API的处理流程包括:所述API代理基于用于描述第二API处理流程的XML文件执行第二API的处理流程。5.一种会话处理的方法,其特征在于,所述方法包括:在应用编程接口API代理执行第一API的处理流程中,API调用设备从所述API代理处返回的第一API的响应中获取第一API对应的会话的外部事务ID;或API调用设备向所述API代理发送外部事务ID,以使所述API代理将收到的所述外部事务ID确定为第一API对应的会话的外部事务ID;所述API调用设备向所述API代理发送调用第二API的请求,所述请求中包括所述第一API对应的所述会话的外部事务ID,以使所述API代理根据所述会话的外部事务ID,获取所述API代理在执行第一API处理流程中缓存的所述会话的会话数据,并根据获取的所述会话的会话数据对所述会话进行处理。6.一种会话处理装置,其特征在于,所述装置包括:第一处理模块,用于接收从调用第一应用编程接口API的API调用设备发出的调用第一API的请求;根据调用第一API的请求执行第一API的处理流程,在执行第一API的处理流程中,缓存第一API对应的会话的会话数据;第二处理模块,用于接收从调用第二API的调用设备发出的调用第二API的请求;根据调用第二API的请求执行第二API的处理流程,在执行第二API的处理流程中,根据调用第二API的请求中包括的用于标识第一API对应的会话的外部事务标识ID,获取所述第一处理模块在执行第一API的处理流程中缓存的所述会话的会话数据,根据获取的所述会话数据对所述会话进行处理。7.如权利要求6所述的装置,其特征在于,所述第一处理模块还用于:在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的API调用设备发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;所述第二处理模块还用于:在执行第二API的处理流程中,获取所述第一处理模块执行第一API的处理流程中缓存的所述会话的会话数据之前,判定在执行第一API的处理流程中确定的第一API对应的会话的外部事务ID与调用第二API的请求中包括的外部事务ID一致。8.如权利要求6所述的装置,其特征在于,所述第一处理模块还用于:在执行第一API的处理流程中,确定第一API对应的会话的外部事务ID,并将确定的外部事务ID通知给调用第二API的API调用设备;或接收从调用第二API的API调用设备发出的外部事务ID,并将接收的外部事务ID确定为第一API对应的会话的外部事务ID;在确定第一API对应的会话的外部事务ID之后,根据第一API对应的API提供者的标识、第一API对应的API后端的标识,以及确定的外部事务ID,生成对应的内部事务ID,并记录生成的内部事务ID与缓存的所述会话的会话数据的对应关系;所述第二处理模块还用于:在执行第二API的处理流程中,获取所述第一处理模块执行第一API的处理流程中缓存的所述会话的会话数据之前,根据第二API对应的API提供者的标识、第二API对应的API后端的标识以及调用第二API的请求中包括的外部事务ID,生成对应的内部事务ID,判定在执行第二API的处理流程中生成的内部事务ID与所述第一处理模块在执行第一API的处理流程中生成的内部事务ID一致。9.如权利要求6~8任一项所述的装置,其特征在于,所述第一处理模块具体用于:基于用于描述第一API处理流程的可扩展标记语言XML文件执行第一API的处理流程;所述第二处理模块具体用于:基于用于描述第二API处理流程的XML文件执行第二API的处理流程。10.一种API调用设备,其特征在于,所述设备包括:第一处理模块,用于在应用编程接口API代理执行第一API的处理流程中,从所述API代理处返回的...

【专利技术属性】
技术研发人员:李世华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1