非阻塞请求处理方法及装置与流程

文档序号:11254574
非阻塞请求处理方法及装置与流程
本发明涉及一种非阻塞请求处理方法及装置。

背景技术:
OneM2M标准组织致力于指定面向多个物联网领域的统一的服务层标准。OneM2MTS-0001功能架构定义了协议的总体框架并定义了三类功能实体:应用实体AE、公共服务实体CSE、以及网络服务实体NSE。在应用实体AE和公共服务实体CSE之间、在公共服务实体CSE和公共服务实体CSE之间、以及在公共服务实体CSE和网络服务实体NSE之间均通过请求原语(RequestPrimitive)和响应原语(ResponsePrimitive)进行交互。根据请求原语和响应原语交互方式的不同,OneM2M定义了三种交互模式:阻塞请求、非阻塞请求同步、非阻塞请求异步。在图1A、图1B和图1C中分别示出了这三种交互模式,并示出了三种交互模式之间的区别。如图1A所示,阻塞请求是指请求方发送请求后,一直保持会话连接,直至接收到接收方发送的执行结果响应。如图1B所示,非阻塞请求同步是指请求方发送请求后,接收方立即发送响应以向请求方通知已经成功接收请求,然后请求方在接收到接收方发送的响应消息后,间隔一段时间后主动向接收方发送请求以获取执行结果。如图1C所示,非阻塞请求异步是指请求方发送请求后,接收方立即发送响应以向请求方通知已经成功接收请求,然后接收方执行完毕后向接收方发送携带执行结果的执行完成通知。非阻塞请求同步和非阻塞请求异步适用于不同的场景,非阻塞请求同步适用于请求方不能接收通知消息的场景,非阻塞请求异步适用于请求方可接收通知消息的场景。图2中示出了非阻塞请求同步的一般交互流程。首先,在步骤S1,请求方发送资源请求;在步骤S2,接收方创建请求资源,并在请求资源中记录资源请求的详细信息,同时创建资源索引Req-Ref;在步骤S3,接收方将资源索引Req-Ref返回给接收方;在步骤S4,接收方执行请求资源;在步骤S5,请求方向资源索引Req-Ref发送执行结果获取请求;在步骤S6,由于接收方 尚未执行完成所述非阻塞请求,接收方向请求方发送请求未执行完成响应;在步骤S7,请求方间隔一段时间后,重新向资源索引Req-Ref发送执行结果获取请求;在步骤S8,由于接收方尚未执行完成所述非阻塞请求,接收方向请求方发送请求未执行完成响应;在步骤S9,接收方执行完成所述非阻塞请求,并记录执行结果;在步骤S10,请求方重新向资源索引Req-Ref发送执行结果获取请求;在步骤S11,接收方向请求方发送执行结果响应。在图2所示的非阻塞请求同步的交互流程中,在请求方收到资源索引Req-Ref后,请求方无法预知接收方执行完成时间,需要多次向资源索引Req-Ref发送请求尝试获取执行结果,相应地接收方要多次向接收方发送未执行完成响应,由此增加了请求方和接收方的工作负荷,增加了请求方和接收方的设备功耗。因此,需要能够降低非阻塞请求同步交互流程中由于频繁的执行结果获取请求所引起的请求方和接收方的工作负荷和设备功耗。

技术实现要素:
为了解决上述技术问题,本发明提出了一种非阻塞请求处理方法和装置,其通过在接收方接收到非阻塞请求后确定所述非阻塞请求的执行完成预估时间并将所述执行完成预估时间提供给接收方,可以避免接收方由于无法预知请求执行完成时间而多次尝试获取执行结果的情况,从而可以减轻由于频繁的执行结果获取请求所引起的请求方和接收方的工作负荷和设备功耗。根据本发明一方面,提供了一种非阻塞请求处理方法,应用于接收方,包括:从请求方接收非阻塞请求;确定所述非阻塞请求的执行完成预估时间;以及将所述执行完成预估时间发送给所述请求方。根据本发明实施例,所述确定所述非阻塞请求的执行完成预估时间包括:根据执行完成预估时间的确定策略确定所述非阻塞请求的执行完成预估时间。根据本发明实施例,根据以下至少一项来确定所述执行完成预估时间的确定策略:所述请求方的指示;所述接收方的当前状态;以及所述非阻塞请求的执行参数。根据本发明实施例,根据执行完成预估时间的确定策略确定所述非阻塞请求的执行完成预估时间包括:根据预定的执行完成预估时间计算策略计算 所述非阻塞请求的执行完成预估时间,其中,所述预定的执行完成预估时间计算策略根据所述非阻塞请求的请求理想执行时间、所述非阻塞请求的任务优先级、以及接收方负荷量中的至少一项计算所述执行完成预估时间;所述接收方负荷量包括以下至少一项:处理器占有率、内存占有率、网络占有率。根据本发明实施例,根据该非阻塞请求的理想执行时间、该非阻塞请求所对应的任务优先级的延迟时间、以及所述接收方负荷量所对应的延迟时间来计算该非阻塞请求的执行完成预估时间。根据本发明实施例,根据执行完成预估时间的确定策略确定所述非阻塞请求的执行完成预估时间,包括:根据所记录的各类历史请求的执行完成时间来确定所述非阻塞请求的执行完成预估时间。根据本发明实施例,根据所记录的各类历史请求的执行完成时间来确定所述非阻塞请求的执行完成预估时间包括:选择与所述非阻塞请求匹配的至少一个历史请求;获取所述至少一个历史请求的历史执行完成时间;以及根据所述至少一个历史请求的历史执行完成时间,确定所述非阻塞请求的执行完成预估时间。优选地,根据所述非阻塞请求的请求种类以及请求操作对象,或者根据所述非阻塞请求的请求种类,来选择与所述非阻塞请求匹配的所述至少一个历史请求。优选地,将所述至少一个历史请求的历史执行完成时间的最大值确定为所述非阻塞请求的执行完成预估时间。根据本发明实施例,根据执行完成预估时间的确定策略确定所述非阻塞请求的执行完成预估时间,包括:根据预设的各类非阻塞请求的执行完成预估时间,来确定所接收到的非阻塞请求的执行完成估计时间。优选地,按照请求类型、或者按照请求种类和请求操作对象对所接收到的非阻塞请求进行分类以确定所接收到的非阻塞请求的请求分类,并且将与该请求分类对应的预设执行完成预估时间作为所接收到的非阻塞请求的执行完成预估时间。根据本发明实施例,在响应原语中包括所述执行完成预估时间,并且通过所述响应原语将所述执行完成预估时间发送给所述请求方。根据本发明实施例,所述非阻塞请求处理方法还包括:在从请求方接收到所述非阻塞请求之后,创建请求资源以及资源索引;以及将所述资源索引发送给所述请求方。根据本发明实施例,在响应原语中包括所述资源索引和所述执行完成预估时间,并且通过所述响应原语将所述资源索引和所述执行完成预估时间一 起发送给所述请求方。根据本发明实施例,所述非阻塞请求处理方法还包括:在所述执行完成预估时间之后,并且在接收到请求方的对所述非阻塞请求的执行结果获取请求之后,将对所述非阻塞请求的执行结果发送给所述请求方。根据本发明另一方面,提供了一种非阻塞请求处理方法,应用于请求方,包括:向接收方发送非阻塞请求;以及从接收方接收所述非阻塞请求的执行完成预估时间。根据本发明实施例,通过响应原语从所述接收方接收所述执行完成预估时间。优选地,通过响应原语从所述接收方接收所述执行完成预估时间以及所述接收方为所述非阻塞请求创建的请求资源的资源索引。根据本发明另一方面,提供了一种非阻塞请求处理装置,包括:请求接收模块,被配置为从请求方接收非阻塞请求;时间预估模块,被配置为确定所述非阻塞请求的执行完成预估时间;以及响应模块,被配置为将所述执行完成预估时间发送给所述请求方。根据本发明实施例,所述时间预估模块根据执行完成预估时间的确定策略确定所述非阻塞请求的执行完成预估时间。根据本发明实施例,所述时间预估模块根据以下至少一项来确定所述执行完成预估时间的确定策略:所述请求方的指示;所述接收方的当前状态;以及所述非阻塞请求的执行参数。根据本发明实施例,所述时间预估模块根据预定的执行完成预估时间计算策略计算所述非阻塞请求的执行完成预估时间,其中,所述预先指定的执行完成预估时间计算策略根据所述非阻塞请求的请求理想执行时间、所述非阻塞请求的任务优先级、以及接收方负荷量中的至少一项计算所述执行完成预估时间;所述接收方负荷量包括以下至少一项:处理器占有率、内存占有率、网络占有率。根据本发明实施例,所述时间预估模块根据该非阻塞请求的理想执行时间、该非阻塞请求所对应的任务优先级的延迟时间、以及所述接收方负荷量所对应的延迟时间来计算该非阻塞请求的执行完成预估时间。根据本发明实施例,所述时间预估模块选择与所述非阻塞请求匹配的至少一个历史请求;获取所述至少一个历史请求的历史执行完成时间;以及根据所述至少一个历史请求的历史执行完成时间,确定所述非阻塞请求的执行 完成预估时间。优选地,所述时间预估模块根据所述非阻塞请求的请求种类以及请求操作对象、或者根据所述非阻塞请求的请求种类,来选择与所述非阻塞请求匹配的所述至少一个历史请求。优选地,所述时间预估模块将所述至少一个历史请求的历史执行完成时间的最大值确定为所述非阻塞请求的执行完成预估时间。根据本发明实施例,所述时间预估模块根据预设的各类非阻塞请求的执行完成预估时间,来确定所接收到的非阻塞请求的执行完成估计时间。优选地,所述时间预估模块按照请求种类、或者按照请求种类和请求操作对象对所接收到的非阻塞请求进行分类以确定所接收到的非阻塞请求的请求分类,并且将与该请求分类对应的预设执行完成预估时间作为所接收到的非阻塞请求的执行完成预估时间。根据本发明实施例,所述响应模块将所述执行完成预估时间包括在响应原语中,并且通过所述响应原语将所述执行完成预估时间发送给所述请求方。根据本发明实施例,所述非阻塞请求处理装置还包括:资源创建模块,被配置为创建请求资源以及资源索引;其中,所述响应模块被配置为将所述资源索引发送给所述请求方。根据本发明实施例,所述响应模块将所述资源索引和所述执行完成预估时间包括在响应原语中,并且通过所述响应原语将所述资源索引和所述执行完成预估时间一起发送给所述请求方根据本发明实施例,所述非阻塞请求处理装置还包括:请求执行模块,被配置为执行所述非阻塞请求;其中,所述请求接收模块还被配置为从所述请求方接收执行结果获取请求,所述执行结果获取请求用于获取对所述非阻塞请求的执行结果;以及所述响应模块还被配置为将对所述非阻塞请求的执行结果发送给所述请求方。采用根据本发明实施例的非阻塞请求处理方法和装置,通过在接收到非阻塞请求后估计该非阻塞请求的执行完成预估时间并将所估计的执行完成预估时间发送给所述请求方,使得所述请求方能够大致了解该非阻塞请求的预计执行完成时间,在所述执行完成预估时间后再向接收方发送所述执行结果获取请求,从而避免了所述请求方不断发送执行结果获取请求尝试获取执行结果的情况,并且降低了由于频繁的执行结果获取请求所引起的请求方和接收方的工作负荷和设备功耗。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。图1A、图1B和图1C分别示出了OneM2M定义的三种交互模式的示意性交互过程;图2示出了非阻塞请求同步的一般交互流程;图3A和图3B示出了根据本发明实施例的非阻塞请求处理方法的示意性流程图;图4示出了根据本发明实施例的请求方和接收方之间的示意性交互过程;图5示出了根据本发明实施例的请求方向接收方发送的响应参数的示例;图6示出了根据本发明第一实施例的请求方和接收方之间的示意性交互过程;图7示出了根据本发明第一实施例的计算执行完成预估时间的示意性表格;图8示出了根据本发明第二实施例的请求方和接收方之间的示意性交互流程图;图9示出了根据本发明第二实施例的根据所记录的各类历史请求的执行完成时间来确定所述非阻塞请求的执行完成预估时间的方法;图10示出了根据本发明第二实施例的计算执行完成预估时间的示意性表格;图11示出了根据本发明第三实施例的请求方和接收方之间的示意性交互流程图;图12示出了根据本发明第三实施例的计算执行完成预估时间的示意性表格;图13示出了根据本发明实施例的在接收方实现的非阻塞请求处理设备的示意性框图;图14示出了根据本发明实施例的在接收方实现的非阻塞请求处理装置的示意性框图;图15示出了根据本发明实施例的在请求方实现的非阻塞请求处理设备的示意性框图;图16示出了根据本发明实施例的在请求方实现的非阻塞请求处理装置的示意性框图。具体实施方式为了使得本发明实施例的目的、技术方案和优点更为明显,下面将参照附图详细描述本发明的示例实施例。显然,所描述的示例实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,本领域技术人员在没有付出创造性劳动的情况下所得到...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1