用于服务处理的系统、方法和计算机程序产品的制作方法

文档序号:10663999阅读:493来源:国知局
用于服务处理的系统、方法和计算机程序产品的制作方法
【专利摘要】一种用于管理过程请求的系统,包括:至少一个存储器,所述存储器能够操作为存储请求队列和响应队列;以及耦合至所述存储器的处理器。接收执行过程的请求以及将所述请求存储在请求队列集合当中的请求队列中,所述请求队列与所述过程相对应。确定网络上的一个或多个节点是否能够用于执行所述过程。基于所述过程的类型来设置所述请求的期满值。将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程。从所述一个或多个节点接收响应。将所述响应存储在响应队列集合当中的响应队列中,所述响应队列与所述过程相对应。从所述响应队列调度所述响应。
【专利说明】
用于服务处理的系统、方法和计算机程序产品
技术领域
[0001]本发明涉及服务处理,更具体地涉及用于依据服务、过程、和组件的可用性来管理服务请求的系统、方法、和计算机程序产品。
【背景技术】
[0002]在网络上的服务处理领域中,通常通过利用网络上的多个不同节点(例如系统或实体)来执行服务(和/或包括该服务的过程)。例如,在移动商务环境中,一个系统可以负责管理通信中的安全,而另一个系统可以负责生成诸如报价的内容。通过使用跨网络的多个节点,各自提供不同的服务,通常可能提供跨网络的稳健的服务集合。
[0003]然而,由于有计划或无计划的情况,在网络上可以发生服务中断。例如,由于有计划的停运或故障,网络上的节点可以在一段时间内变得不可用。由此,与该节点相关联(例如由该节点执行或实施)的任何服务也将变得不可用。
[0004]因此,一个技术挑战涉及在发生服务中断的情况下保持可靠的处理。具体的,不同于立即拒绝每个服务请求(或将该请求视为失败),期望的是至少试图等待一段时间来查看是否能够提供服务。同时,需要控制对请求的处理,使得在这样的服务中断期间或其后系统不会无法承受。
[0005]此外,常规系统可以简单地指示节点关闭或开启,而没有考虑该节点的不可用性的后果。因此,另一个技术挑战涉及提供较稳健地考虑网络上“不可用”的场境。

【发明内容】

[0006]通过提供用于依据服务和/或系统可用性来对服务请求进行响应的系统、方法、和计算机程序产品,本文所介绍的示例实施例解决了以上指出的需求。
[0007]在一个示例实施例中,一种用于管理过程请求的系统,包括:至少一个存储器,所述存储器能够操作为存储请求队列和响应队列;以及耦合至所述存储器的处理器。接收执行过程的请求。将所述请求存储在请求队列集合当中的请求队列中,所述请求队列与所述过程相对应。确定网络上的一个或多个节点是否能够用于执行所述过程。在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值。在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程。从所述一个或多个节点接收响应。将所述响应存储在响应队列集合当中的响应队列中,所述响应队列与所述过程相对应。从所述响应队列调度所述响应。
[0008]在另一示例实施例中,一种用于管理过程请求的方法,包括:存储请求队列和响应队列;接收执行过程的请求;将所述请求存储在请求队列集合当中的请求队列中,其中所述请求队列与所述过程相对应;确定网络上的一个或多个节点是否能够用于执行所述过程;在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值;在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程;从所述一个或多个节点接收响应;将所述响应存储在响应队列集合当中的响应队列中,其中所述响应队列与所述过程相对应;以及,从所述响应队列调度所述响应。
[0009]在另一示例实施例中,一种存储其上有指令的非暂时性计算机可读存储介质,所述指令在由包括至少一个处理器和至少一个存储器的系统来执行时使得所述系统执行以下步骤:存储请求队列和响应队列;接收执行过程的请求;将所述请求存储在请求队列集合当中的请求队列中,其中所述请求队列与所述过程相对应;确定网络上的一个或多个节点是否能够用于执行所述过程;在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值;在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程;从所述一个或多个节点接收响应;将所述响应存储在响应队列集合当中的响应队列中,其中所述响应队列与所述过程相对应;以及,从所述响应队列调度所述响应。
【附图说明】
[0010]本发明的特征和优点在结合以下附图时根据以下阐述的【具体实施方式】将变得更加显而易见。
[0011]图1是根据示例性实施例的用于依据服务可用性来对服务请求进行排队以及对其进tx响应的移动商务系统的不意图;
[0012]图2是根据示例性实施例的图示用于依据服务可用性来对服务请求进行排队以及对其进行响应的步骤的流程图;
[0013]图3是根据示例实施例的图示用于对服务请求进行排队以及对其进行响应的框架的不意图;
[0014]图4是根据示例实施例的图示服务可用性服务的操作的示意图;
[0015]图5是根据示例实施例的图示用于依据服务可用性来对服务请求进行排队以及对其进行响应的示例架构的示意图;
[0016]图6是通用或专用计算机的框图。
【具体实施方式】
[0017]本文所介绍的示例实施例针对用于依据服务和/或系统可用性来对服务请求进行排队以及对其进行响应的系统、方法、和计算机程序产品,本文在示例移动商务环境方面对其进行描述。本说明并不意图限制本文所介绍的示例实施例的应用。事实上,在阅读以下描述后,对于相关领域的技术人员显而易见的是,如何以诸如web服务或基于web媒体的环境等的替选实施例来实现以下示例实施例。
[0018]依据本文所述的实施例,传入的对于过程的请求(或者包括过程集合的服务)被排队,以及进行关于网络上的一个或多个节点是否可用于执行所请求的过程的确定。该确定基于:检测不可用节点,以及确定由该不可用节点执行的服务或依赖于该不可用节点的节点的服务。在一个或多个节点可用于执行所请求的过程的情况下,将该请求从所述队列调度走。另一方面,如果一个或多个节点不可用于执行所请求的过程,则基于该过程的类型来设置该请求的期满值。
[0019]下面参照图1至图6来对以上所讨论的特征进行详细描述。
[0020]术语“钱包客户端”、“移动钱包应用”、“移动钱包”和/或这些术语的复数形式在本文被可互换地使用以指代在移动设备上所部署、存储和/或运行的移动钱包应用。
[0021]如本文所使用的,“服务”是代码的集合或子集,所述服务当被(例如在移动设备、服务器等中的)一个或多个处理器执行时,使得所述处理器执行特定任务。服务可以包括一个或多个过程。例如,钱包客户端应用可以包括若干服务,诸如“激活钱包”或“个性化钱包”,所述若干服务中的每个可以由一个或多个过程组成。
[0022]如本文所使用的,“过程”是指令的集合,执行所述集合以执行服务所需的功能。例如,一个或多个过程可以包括服务所需的步骤,或者可以包括被提供作为服务的一部分的各个功能。在一些实例中,客户端可以从与过程相关联的服务单独请求该过程。
[0023]如本文所使用的,网络上的“节点”是连接到网络的系统、计算机、移动设备或者其他实体。
[0024]如本文所使用的,根据某些实施例,“请求”也可以被称作“消息”或“请求/消息”,所述请求被以消息的格式来处理。
[0025]图1是根据示例性实施例的用于提供资源的可用性的系统100的示意图。如图1中所示,系统100包括:移动设备120-1、120-2、…、120-n(统称为“120”或“移动设备120”);移动钱包提供者平台130,其包括企业服务总线(ESB) 135;服务提供者140-1、140-2、...、140_n(统称为“140”或“服务提供者140”);以及通信网络150。
[0026]例如,移动设备120可以是蜂窝电话、平板计算机等。移动设备120-1、120-2、…、120-n中的每一个包括处理器、存储器、以及诸如显示屏的输出显示器。安全元件(SE)可以被包括在每个移动设备中,以及可以被实现为通用集成电路卡(UICC)、嵌入式SE卡、安全微型安全数字(microSD)卡等。安全元件也可以被实现在与其相关联的移动设备外部。例如,安全元件可以被实现在基于云的、远程或虚拟的存储等中。
[0027]移动设备120-1、120-2、…、120-n包括或具有存储在其上的钱包客户端应用125-
1、125-2、…、125-n(统称为“125”或“钱包客户端应用125” ),其包括指令,所述指令当被对应的移动设备120的处理器执行时,使得该移动设备充当例如用于处理非接触交易的装置。
[0028]可以通过移动钱包提供者平台130来存储和管理交易期间所使用的报价。移动钱包提供者平台130可以是独立平台,或者可以是移动钱包系统和/或移动钱包架构的一部分。该移动钱包系统和/或移动钱包架构可以包括各种系统,诸如ESB 135。
[0029]ESB 135管理服务提供者系统与移动设备之间的交互,以及授予服务提供者系统有效率且安全地与移动设备进行通信的能力以便例如建立(例如安装)服务账户或传输消息,而无需服务提供者与每个移动设备直接通信。在示例实施例中,ESB 135是被实现为充当服务提供者140-1、140-2、…、140-n(统称为“140”)与移动设备120之间的媒介的硬件和/或软件。ESB 101经由通信网络150被通信地耦合到服务提供者140。
[0030]移动钱包提供者平台130通过通信网络150被通信地耦合到服务提供者140。诸如服务提供者140-1的服务提供者是由合作方和/或商户(例如公司、零售商、银行)管理的系统、平台、计算机架构等。在一个示例中,服务提供者可以向移动设备120提供报价。
[0031]图2是根据示例性实施例的图示用于依据服务可用性来对服务请求进行排队和对其进行响应的步骤的流程图。在此方面,尽管图2—般涉及对于特定服务的服务请求,但是应当理解,请求也可以针对与一个或多个服务相关联的特定的一个或多个过程。
[0032]在步骤201中,接收请求以实施或执行服务和/或与该服务相关联的过程。具体的,客户端(例如移动设备120-1)经由ESB 135来请求服务。例如,该客户端可以提交激活钱包客户端应用125-1的请求。
[0033]在步骤202中,该请求与该客户端的其他请求一起被排队。如以下所更充分地描述的,通过将请求存储在队列中,通常有可能通过以下方式来提供流控制:保持该请求并且在适当时候处理该请求,或者通过如果在预定时间段之后所请求的服务仍不可用,则允许所述请求期满。
[0034]在步骤203中,基于所请求的服务的可用性来进行关于是否使该请求期满或者对其进行调度的确定。具体的,通过与网络上的节点(例如系统、实体等)进行通信,能够检测网络上的节点的可用性或者不可用性,以及能够基于节点的不可用性来确定一个或多个不可用服务。此外,由于某些服务之间的依赖,所述一个或多个不可用服务可以是由不可用节点执行的任何服务以及由依赖于该不可用节点的其他节点执行的任何服务。如以下参照图5所更充分地描述的,与每个节点进行的通信可以是确定节点自身可用或不可用的“健康检查”通信,或者是提供与可用服务或可用过程相关的更具体信息的服务监控通信。如果所请求的服务在预定时间段中不可用,则可以确定使该请求期满,通知用户,并且结束该过程。另一方面,如果服务可用,则将请求调度到调用所请求的过程的代理(proxy)服务。
[0035]进而,在步骤204中,通过调用和/或执行所述一个或多个所请求的过程来执行该服务,并且由该过程生成响应。
[0036]在步骤205中,从该过程接收该响应,以及将该响应放入步骤206中的响应队列内。与请求队列一样,响应队列允许对存储和转发响应的更精细调节的流控制。
[0037]在步骤207中,该响应被调度到进行请求的客户端。
[0038]图3是根据示例实施例的用于解释用于对服务和过程请求进行排队以及对其进行响应的框架300的视图。在一个实施例中,在图1中所示的ESB 135中实现该框架。
[0039]简单来说,如图3中所示,请求和响应队列被用于存储来自客户端301的请求以及对其的响应。对于过程(或包含过程集合的服务)接收请求,以及将该请求存储在请求队列中。对于每个类型的服务和/或过程存在相应的请求队列。
[0040]进行关于网络上的一个或多个节点是否可用于执行所请求的服务和/或过程的确定。在一个示例实施例中,该确定基于在入站请求调度器308中的服务可用性服务308-a。具体的,服务可用性服务308-a存储与网络上的服务的可用性相关的信息,检测网络上的节点的不可用性,以及基于该节点的不可用性来确定一个或多个不可用服务。所述一个或多个不可用服务是由该不可用节点执行的任何服务以及由依赖于该不可用节点的其他节点执行的任何服务。节点可以因为例如其处于关闭状态而不可用,或者当该节点不具有处理一个或多个传入请求的容量时即使其处于开启状态仍可以不可用(例如因为超出容量限制而不可用)。这样的确定可以发生在使用服务可用性服务308-a的调度处理期间。
[0041]在网络上的一个或多个节点不可用于执行所请求的过程的情况下,基于所请求的过程的类型来设置该请求的期满时间。另一方面,在网络上的一个或多个节点可用于执行所请求的过程的情况下,将该请求调度到网络上的一个或多个节点以在预定定时执行所请求的过程。从所述一个或多个节点接收响应以及将该响应存储在响应队列中。从该响应队列中调度该响应。
[0042]回到图3,客户端301可以对应于驻留在移动设备(例如移动设备120-1)上的钱包客户端应用(例如钱包客户端应用125-1),或者可以对应于另一客户端应用。
[0043]入站请求拦截器302是实现Web服务描述语言(WSDL)接口的硬件和/或软件,以及接受来自客户端301的过程/服务请求。因此,客户端301可以请求服务或者具体过程。入站请求拦截器302将请求传送到请求策略服务303以确定请求期满值和目的地过程请求队列。入站请求拦截器302将该请求变换为Java消息服务(JMS)消息,(通过调用请求策略服务303)设置消息上的期满值和客户端ID,以及将该过程请求/消息发布到请求过程队列304。即,入站请求拦截器302用期满值和客户端ID来修改该请求。如图3中所示,在一些情况下,(例如在请求策略服务303中的)策略配置可以规定,立即将请求从入站请求拦截器302调度到代理服务309,从而绕开队列。
[0044]请求策略服务303是提供用于确定对于给定客户端和过程/服务的类型的请求期满值的服务接口和实现的硬件和/或软件。考虑到请求包含过程类型和客户端ID,请求策略服务303返回请求期满值和目的地过程请求队列。请求期满值限定在过程不可用的场景中保持该请求的时间。因此,期满值指示,例如在用于该类型的过程的节点不可用之后对于该类型的过程的请求将被排队的时长。不同的期满值能够与不同的客户端相关联。在一个示例实施例中,客户端(例如客户端301)可以输入排队和期满参数,诸如在例如建立或激活服务、过程、或节点期间的期满值。在一个示例中,请求策略服务303可以在表中存储策略,所述策略包括对于每个客户端ID的期满值(例如30分钟)、服务状况(例如如果先前已经获得了这样的信息则开启或关闭)、以及队列状况(例如开启或关闭)。如上面所提到的,请求策略服务303也可以规定立即将某些请求调度到代理服务309,从而绕开队列。例如,请求策略服务303可以被配置为当用于该类型的请求的对应队列关闭时立即对请求进行调度。
[0045]请求过程队列304是例如提供过程/服务的请求/消息的持久存储的硬件和/或软件JMS队列或其他队列资源。每种类型的过程可以具有专用请求过程队列304,或者说多个客户端可以共享对于给定过程类型的共同请求过程队列304。请求过程队列304负责将已期满的消息移到请求期满队列305。
[0046]请求期满队列305是另一个硬件和/或软件队列,例如提供已经期满的过程请求/消息的持久存储的JMS队列或其他队列资源。每个请求过程队列304都具有其自己的请求期满队列305。
[0047]期满调度器306是负责消费和处理已期满的过程请求/消息的硬件和/或软件。具体的,期满调度器306负责对于请求(使用已期满的消息)创建合适的响应并且将该响应路由至响应队列集合312a、312b、…、312c(以下称为“响应队列集合312”)中的合适的队列。在一个示例实施例中,基于与已期满的过程请求/消息相关联的客户端ID来进行路由。尽管未示出,可以存在与每个请求期满队列305相关联的(专用于该过程类型的)期满调度器306。
[0048]调度控制器307是负责管理消息调度器例如入站请求调度器308的消费/处理的活动状态和流速率的硬件和/或软件。具体的,调度控制器307可以提供:活动状态管理,例如将入站请求调度器308配置为开启或关闭;以及流控制,例如配置入站请求调度器308的消费处理速率(诸如每分钟特定数目的请求);或者这两者。调度控制器307可以自动或手动操作。如能够在图3中看到的,调度控制器313和调度控制器315被分别连接到响应调度器314和响应调度器316,并且能够提供与以上所讨论的那些相似的服务。
[0049]在一个示例中,能够使用工作管理器(未示出)来将流控制实现为与调度控制器相关联的硬件和/或软件,所述调度控制器结合经由例如Java调出被应用到调用请求的“等待”策略将与该调度控制器相关联的并发线程的数目限制到最大数目。因此,在一个实施例中,通过限制从请求队列调度的请求的数目来实现流控制。例如,依据已经从请求队列调度的先前请求的数目来限制从请求队列调度的请求的数目。在另一示例中,在与网络上的请求相关联的一个或多个节点不可用之后的预定量时间内限制从请求队列调度的请求的数目。
[0050]入站请求调度器308是负责消费和执行过程请求/消息的硬件和/或软件。入站请求调度器308能够处于开启状态或关闭状态。在开启状态下,消息被消费、处理以及被递送到网络上的相关过程组件(以例如用于通过web服务指定过程内的动作的业务流程执行语言(BPEL)标准可执行语言来递送)。在关闭状态下,消息消费被禁用。入站请求调度器308可以与至少一个手动调度控制器307以及零个或多个自动调度控制器307相关联。
[0051]服务可用性服务308-a是用于存储与网络上的服务的可用性相关的信息、检测网络上的节点的不可用性、以及基于节点的不可用性来确定一个或多个不可用服务的硬件和/或软件。所述一个或多个不可用服务包括由不可用节点执行的任何服务和由依赖于该不可用节点的其他节点执行的任何服务。以下将参照图4和图5来更充分地描述服务可用性服务308-a。
[0052]代理服务309是用于充当用于每个服务和服务可用性服务308-a的代理的硬件和/或软件,并且具体地说,用以提供不同过程和服务的服务可用性服务308-a的视图,以及用以允许入站请求调度器308调用服务和/或相关联的过程(例如过程310)。
[0053]过程310是表示由网络上的一个或多个节点执行的现有过程(例如BPEL过程)的硬件和/或软件。过程310接收例如客户端301的字母数字的客户端标识(客户端ID),以及在应答时将该客户端ID与过程响应一起返回。例如,客户端ID可以是被添加到跨BPEL过程传播的现有消息报头值的新元素。
[0054]出站请求拦截器311是实现与过程响应相关联的回调接口的硬件和/或软件。出站请求拦截器311通过传递客户端ID来调用响应策略服务317,以及从响应策略服务317接收响应队列目的地(例如响应队列集合312中的响应队列312a)。出站请求拦截器311将响应发布到目的地响应队列。如图3中所示,在一些情况下可以立即将响应从出站请求拦截器311调度到回调服务318,从而绕开队列(例如基于用于该类型的响应的策略配置)。
[0055]响应队列集合312是硬件和/或软件队列,例如提供过程响应消息的持久存储的JMS队列或其他队列资源。起初,响应队列集合将由所有符合条件的过程共享。即,队列(例如响应队列312a)将包含与所有过程类型相关联的响应消息。例如,诸如钱包激活和建立服务账户的服务会将响应发布到相同队列。然而,在响应队列集合312内,每个客户端可以具有专用(分布式)队列。
[0056]响应调度器314和响应调度器316是负责消费和执行过程响应消息的硬件和/或软件。响应调度器314和响应调度器316处于(或者可以处于)开启状态或者关闭状态。在开启状态下,消息被消费、处理以及被递送到客户端301。在关闭状态下,消息消费被禁用。例如,当客户端301由于有计划或无计划的停运而不可用,或者由于业务原因已经禁用了与客户端301的交互时,响应调度器(例如响应调度器314)可以进入关闭状态。响应调度器314和响应调度器316可以与至少一个手动调度控制器以及零个或多个自动调度控制器相关联。
[0057]响应策略服务317是用于提供用于确定给定客户端ID的响应队列目的地的服务接口和实现的硬件和/或软件。考虑到请求包含过程类型和客户端ID,响应策略服务317返回响应队列目的地(例如响应队列集合312中的响应队列312a)。在一个示例中,响应策略服务317可以在表中存储策略,所述策略包括对于每个客户端ID的期满值(例如30分钟)、和队列状况(例如开启或关闭)。因此,在一些情况下,基于客户端301不可达的假设,响应消息可以从响应队列集合312期满,尽管可以将其处理为没有信道响应(例如使用电子邮件)。
[0058]回调服务318是用于将响应传输到客户端301的硬件和/或软件。在此方面,在客户端301对应于钱包客户端应用(例如钱包客户端应用125-1)的情况下,回调服务318可以是与该钱包客户端应用相关联的钱包服务器的代理。
[0059]将对图3中所示的使用该系统来处理的示例场景进行描述。
[0060](I)完全可用性
[0061]在图3中的组件可用(例如客户端301和所需的过程310正在运行)的场景下,充当服务消费者的客户端301将异步请求提交到与具体过程类型相关联的入站代理服务(未示出)。例如,客户端301可以提交对于与钱包客户端应用125-1相关联的服务或过程“激活钱包”的请求。与客户端301相对应的客户端ID被包括在该请求和/或消息报头中,或者被包括在这两者中,或者由该请求的接收方来添加该客户端ID。
[0062]入站请求拦截器302使用过程类型和客户端ID来调用请求策略服务303以获得期满值。
[0063]进而,入站请求拦截器302通过将客户端ID和期满值添加为JMS报头来修改请求/消息,以及将该请求/消息路由至请求过程队列304。
[0064]入站请求调度器308被配置为开启并且进而消费该请求/消息。入站请求调度器308提取客户端ID、填入消息报头、以及将请求/消息变换为由对应的过程310限定的请求。
[0065]过程310接收和处理该请求,并且将响应发送到出站响应拦截器311。该响应包括客户端ID。
[0066]出站响应拦截器311使用过程类型和客户端ID来调用响应策略服务317以获得响应队列集合312中的具体客户端队列。出站响应拦截器311将请求变换为消息并且将其发布到指定客户端队列(例如客户端队列312a)。
[0067]进而,与客户端队列(例如响应调度器316)相关联的响应调度器消费响应消息。基于响应类型,响应调度器将响应路由至用于回调服务318中的服务类型的响应处理机,该响应处理机将响应返回到客户端301。
[0068](2)过程不可用
[0069]在此场景下,例如,由于有计划或无计划的停运或由于过程依赖的服务的不可用性,一个或多个过程310为不可用。由服务可用性服务308-a来进行与服务的不可用性相关的确定,并且参照图4和图5在以下进行更充分的描述。
[0070]在此场景下,充当服务消费者的客户端301将异步请求提交到与具体过程类型相关联的入站代理服务(未示出)。例如,客户端301可以提交对于与钱包客户端应用125-1相关联的过程或服务“激活钱包”的请求。与客户端301相对应的客户端ID被包括在该请求和/或消息报头中,或者被包括在这两者中,或者由该请求的接收方来添加该客户端ID。
[0071]入站请求拦截器302使用过程类型和客户端ID来调用请求策略服务303以获得期满值。
[0072]入站请求拦截器302通过将客户端ID和期满值添加为JMS报头来修改请求/消息,以及将该请求/消息路由至请求过程队列304。
[0073]在此场景下,由于如服务可用性服务308-a所确定的一个或多个过程310的不可用性,入站请求调度器308被配置为关闭,并且所述请求/消息保持在请求过程队列304上。
[0074]如果入站请求调度器308转变为开启(由于服务变为可用),过程如上面所讨论的完全可用性场景中那样进行。因此,进而,入站请求调度器308消费所述请求/消息。入站请求调度器308提取客户端ID、填入消息报头、以及将请求/消息变换为由对应的过程310限定的请求。过程310接收该请求,处理响应并将该响应发送到出站响应拦截器311。该响应包括客户端ID。出站响应拦截器311使用过程类型和客户端ID来调用响应策略服务317以获得响应队列集合312中的具体客户端队列。进而,出站响应拦截器311将请求变换为消息并且将其发布到指定客户端队列(例如客户端队列312a)。与客户端队列(例如响应调度器316)相关联的响应调度器消费响应消息。基于响应类型,响应调度器将响应路由至用于回调服务318中的服务类型的响应处理机,该响应处理机将响应返回到客户端301。
[0075]另一方面,如果基于请求策略服务303中所限定的期满,消息在未经处理的情况下期满,则将该消息移到请求期满队列305。进而,期满调度器306消费该请求/消息,以及创建针对期满条件的有效服务响应。期满调度器306使用客户端ID来将服务响应消息发布到响应队列集合312中的客户端队列。将基于与客户端队列相关联的响应调度器(例如响应调度器314)的操作状况来处理所述服务响应消息。
[0076](3)客户端不可用
[0077]在此示例实施例中,客户端301不可用于接收响应回调。这可以由于客户端301上的有计划或无计划的停运。
[0078]此场景从完成将响应消息排队到响应队列集合312内的客户端队列开始。这能够发生在以上所描述的完全可用性场景或过程不可用场景这两者下。
[0079]响应于客户端301的不可用性,与客户端队列相关联的响应调度器(例如响应调度器316)被设置为关闭状态。在响应调度器316关闭时,响应消息保持在响应队列集合312中的队列中。
[0080]如果响应调度器316转变为开启状态,则该消息被消费并且尝试向客户端301递送该消息。即,该消息被正常递送或在递送失败时,服从于被配置在客户端队列(例如队列312a)上的重试策略。典型的重试策略能够要求若干次重试将消息最终推送至死信目的地。在一个示例中,递送失败可能中止正常重试策略行为并且将响应调度器316转变为关闭状
??τ O
[0081 ](4)不可用到可用
[0082]在此示例实施例中,过程不可用场景或客户端不可用场景涉及从不可用转变为可用。
[0083]此场景从通过入站请求调度器308或与客户端队列相关联的响应调度器(例如响应调度器316)发起消息处理开始。在此场景下,如上文所讨论的,消息处理速率受与所述调度器相关联的调度控制器(例如与入站请求调度器308相关联的调度控制器307、与响应调度器316相关联的调度控制器315)限制。调度控制器提供流速率策略执行以防止消息接收系统饱和。
[0084]图4是根据示例实施例的图示服务可用性服务308-a的操作的示意图。在一个实施例中,在图1所示的ESB 135中实现服务可用性服务308-a。
[0085]如上文所提到的,服务可用性服务308-a可以是硬件和/或软件,所述硬件和/或软件除其他以外用于存储与网络上的服务的可用性相关的信息、检测网络上的节点的不可用性、以及基于所述节点的不可用性来确定一个或多个不可用服务。所述一个或多个不可用服务可以包括由所述不可用节点执行的任何服务以及由依赖于所述不可用节点的其他节点执行的任何服务。所存储的信息被更新以反映所述一个或多个不可用服务。
[0086]更具体的,服务可用性服务308-a负责维护状态,例如系统100中的系统和元件(包括框架300中的那些系统和元件)和过程的操作状况。服务可用性服务308-a提供用于更新服务和/或过程的操作状况的接口,并且在系统100上的其他元件处的监控代理(agent)可以使用该接口。响应于系统更新、有计划或无计划的停运、或者服务的不可用性的其他变化,服务可用性服务308-a负责确定哪些过程会受影响或者哪些客户端系统受影响。
[0087]进而,服务可用性服务308-a将通知发布到控制器通知代理(未示出),所述控制器通知代理指示过程或客户端系统的操作状况的变化。控制器通知代理是负责接收和监控由服务可用性服务308-a发布的系统和/或过程的状态变化事件的硬件和/或软件。响应于该事件,所述控制器通知代理负责将一个或多个调度控制器(例如调度控制器307)的状态更新为开启或关闭。因此,控制器通知代理能够是调度控制器的子组件和/或相关组件。
[0088]服务可用性服务308-a更新服务可用性服务持久存储308-b(SAS持久存储308-b)以维护与系统、依赖过程和客户端系统相关联的操作状况状态。因此,在一个方面,SAS持久存储308-b包括与网络上的服务的可用性相关的所存储的信息。在一个实施例中,服务可用性服务308-a可以直接响应于来自钱包客户端应用的请求来提供SAS持久存储308-b中的信息。
[0089]依赖性映射308-c是存储过程和/或服务及其相依系统的列表的硬件和/或软件,诸如数据库。服务可用性服务308-a参考依赖性映射308-c以确定:哪些过程和/或服务受到网络上的节点/系统(例如可信服务管理(TSM)系统)的不可用性的影响,以及哪些过程或服务受到由第一停运所影响的那些系统的不可用性的影响。换一种说法,依赖性映射308-c允许服务可用性服务308-a来查看如何将系统、过程和服务互连,使得也能够将一个节点处的停运或不可用性适当地传播至依赖于该不可用节点的那些节点(并且由此其自身也不可用)。因此,服务可用性服务308-a能够使用依赖性映射308-c来确定:一个或多个不可用服务或者由不可用节点执行的任何服务、以及由依赖于该不可用节点的其他节点所执行的任何服务。因此,依赖性映射308-c包括依赖性规则,服务可用性服务308-a能够应用所述依赖性规则来确定哪些服务是由依赖于不可用节点的其他节点来执行的。
[0090]依赖性映射308-c也可以被用于确定服务是否能够由其他节点来执行。特别的,一个以上的节点可能提供所请求的服务或过程。因此,对于这样的服务或过程,一个节点处的失败或不可用性对所述服务或过程的执行可能不会有致命影响。因此,在一个实施例中,月艮务可用性服务308-a能够应用依赖性映射308-c中的依赖性规则来确定包括服务的一个或多个过程是否能够由网络上的其他节点来执行。在这样的实施例中,即在网络上的其他节点能够执行不可用节点的服务的情况下,服务可用性服务308-a改变SAS持久存储308-b中的信息以反映此情况。
[0091]服务可用性服务门户(SAS门户)308-d经由企业总线540向服务提供者140、内部系统560、和企业管理器550提供接口。例如,SAS门户308_d提供查询接口,所述查询接口允许系统组件、服务提供者、客户端等具有获得过程的操作状况的能力。在这方面,这些参与方/元件中的每个被提供有SAS门户308-d的受控视图,该SAS门户308-d提供手动覆写控制、有计划的停运控制等。例如,服务提供者140-1可以使用SAS门户308-d来利用相关联的服务向服务可用性服务308-a通知即将到来的有计划停运。SAS门户308-d可以依据这样的信息,使用诸如setSystemStatus( SystemIdentif ier,0N/0FF)的函数,利用服务标识符将相关联的服务的状况设置为开启或关闭;或者可以利用函数g e t S e r V i c e S t a t u s(ServiceIdentifier)来检索服务提供者140、内部系统560、以及企业管理器550的服务状况。
[0092]如上面所讨论的,调度控制器(例如调度控制器307)维护例如消息调度器(例如入站请求调度器308)上的开启或关闭的操作状态。在此方面,可以使用“拉”模式或“推”模式来实现调度控制器。在拉模式下,请求被消费以及调度控制器查询过程或客户端系统的状况以确定其操作状况。如果不可用,则对应的请求被排队。拉模式需要该服务可用性服务308-a在运行。在推模式中,经由控制器通知代理将调度控制器配置为开启或关闭的状态。在关闭状态下,不消费来自队列的消息。
[0093]如上面关于图1也提到的,服务提供者140是由合作方和/或商户(例如公司、零售商、银行)管理的系统、平台、计算机架构等,其向移动设备120提供服务,诸如与移动设备120上的钱包客户端应用上的忠诚度计划和报价相对应的服务。再参照图4,对于与Serviceldentifier相对应的服务,服务提供者140可以通过经由服务可用性服务代理(SAS代理)541调用函数getServiceStatus( Service Identifier)来请求服务的状况(例如可用、不可用)。
[0094]内部系统560包括除移动设备和服务提供者外的移动商务系统内部的元件,例如移动钱包提供者平台130的元件。内部系统560可以通过调用函数“getServiceStatus(Service Identifier)”来确定与服务相关联的网络上的一个或多个系统的可用性,所述函数通过企业总线540,并且尤其通过服务可用性任务(SAS任务)542,来从服务可用性服务308-a请求与ServiceIdentifier相关联的系统的状况(例如可用性)。对于与ServiceIdentifier相对应的服务,内部系统560也可以通过经由服务可用性服务代理(SAS代理)541调用函数getServiceStatus( Service Identifier)来请求服务的状况(例如可用、不可用)。
[0095]企业管理器550是负责监控图4中所示的服务可用性生态系统内的系统(合作方、外部提供者、内部提供者)的硬件和/或软件。为此,企业管理器5 50调用函数“getSystemStatus(Serviceldentif ier)”,其以与内部系统560相同的方式来请求系统的状况(例如可用性)。企业管理器550也负责使用“setSystemStatus”函数来向服务可用性服务308-a登记从所监控的系统接收到的系统状况事件(例如在线、离线)。
[0096]企业总线540是向服务可用性服务308-a提供具有不同视图/特征的代理服务的硬件和/或软件。例如,企业总线540包括:SAS代理541,其用于接收和处理GetServiceStatus请求;SAS任务542,其用于接收和处理GetSystemStatus请求;以及服务可用性服务事件代理(SAS事件代理)543,其用于接收和发布对来自服务可用性服务308-a的以上请求的响应。例如,SAS事件代理543可以将所述响应发布到JMS队列520 AAS任务542也可以被用于使用由例如企业管理器550调用的setSystemStatus函数来将系统的状况设置为开启或关闭。如以下关于图5所更充分描述的,企业总线540也充当用于某些服务的“健康检查”工具的托管目标。
[0097]图5是根据示例实施例的用于依据服务可用性来对服务请求进行排队以及对其进行响应的示例架构的示意图。
[0098]如图5中所示,移动钱包提供者平台130包括:服务可用性服务308-a、企业管理器550、企业总线540(包括:SAS代理541—此处也称为“健康检查工具”、SAS任务542以及SAS事件代理543)、以及内部系统560。在图5中将SAS持久存储308-b示出为在移动钱包提供者平台130的外部,但是在其他实施例中所述SAS持久存储308-b也可以在移动钱包提供者平台130的内部。出于简洁的目的,此处将不再重复上文已经讨论过的那些元件的方面。在此方面,在一个实施例中,除内部系统560外的图5的这些元件,可以具体位于ESB 135内。
[0099]发行者501-1、501-2、...、501-η(此后称作“发行者501”)包括账户发放实体,诸如商户、卡组织、银行、营销公司、以及交通机构。这些账户可以被绑定和/或关联至移动设备120上的应用,诸如钱包客户端应用125。
[0100]移动网络运营商510-1、510-2、…、510-η(此后称作“ΜΝ0 510”)使用诸如移动电话蜂窝网络、无线电网络等的移动网络(例如图1中的通信网络150内的那些网络)来向移动设备(例如图1中的移动设备120)提供无线通信服务。每个MNO可以控制跨移动网络的数据的访问和限制。
[0101]TSM 141是可以通过向移动设备配备诸如与服务提供者相关联的非接触小应用的小应用来为MNO和账户发放服务提供者服务的硬件和/或软件系统。操作管理器(0Μ)144是外部服务提供者,其包括用于向网络上的客户端配备诸如客户服务145的客户服务的硬件和/或软件系统。
[0102]图5也描绘了内部系统560的附加方面。具体的,钱包服务器561管理与钱包客户端应用125的通信、跟踪钱包客户端应用125的状态(例如通过将钱包客户端应用125的状态存储在钱包数据库中来跟踪),以及提供用于与其他计算机系统通信的接口。移动商务平台(MoCom)564是负责管理包括忠诚度账户和报价的消费者数据的硬件和/或软件系统。此外,MoCom 564充当报价的活动管理器,所述活动管理器提供经由钱包客户端应用125内的可用商户门户使得对消费者可用的报价的远程数据存储。照管门户567是管理诸如钱包事件历史、消费者简档等的与钱包客户端应用125相关联的信息的硬件和/或软件系统。
[0103]图5也描绘了“健康检查工具(HealthCheck Utility)”(此后称作“健康检查工具”)和“服务监控器(Service Monitor)”(此后称为“服务监控器”)的各种实例。具体地,发行者501-1包括健康检查工具502-1和服务监控器503-1,发行者501-n包括健康检查工具502-n和服务监控器503-n,移动网络运营商(MN0)510-1包括健康检查工具511-1和服务监控器512-1,ΜΝ0 510-2包括健康检查工具511-2和服务监控器512-2,ΜΝ0 510_n包括健康检查工具511-n和服务监控器512-n,TSM 141包括健康检查工具142和服务监控器143,钱包服务器561包括服务监控器563,移动商务平台(MoCom)564包括服务监控器566,以及顾客照管门户(照管门户)567包括服务监控器569。
[0104]在此方面,每个健康检查工具与服务相对应,所述服务提供用于例如服务提供者140-1、发行者501的系统,以及不由企业管理器550直接监控的其他系统或实体的轻量“监控点”。具体的,每个健康检查工具可以披露与对应系统的总体可用性相关的信息,例如返回“可用”或“不可用”状态指示(或者开启或关闭)。在一个示例实施例中,例如,可以将每个健康检查工具实现为“Ping”工具,所述“ping”工具将分组发送至目标并且之后等待响应。由于此信息较小,每个系统上的负担是轻量的。如图5所示,每个健康检查工具经由移动钱包提供者平台130,并且特别经由ESB 135,来向系统的其他元件披露此信息。此外,由于钱包服务器561、MoCom 564和照管门户567受企业管理器550监控,这些兀件分别包括企业管理器代理562、企业管理器代理565和企业管理器代理569,其用于传送与由相应的健康检查工具向企业管理器550提供的信息类似的信息。
[0105]另一方面,每个服务监控器提供更具体的可用性信息。具体的,每个服务监控器披露关于特定过程和/或服务的信息,例如:它们当前的和有计划的可用性或不可用性、它们当前的容量和/或负载、所估计的等待时间等。因此,服务监控器比健康检查工具更为详细。由此,能够进行更细粒度(f ine-grained)的可用性的确定。例如,如上面所提到的,例如当节点由于其超出了容量限制而不具有处理一个多个传入请求的容量时,即使该节点处于开启状态,仍然可以将该节点视为不可用。
[0106]如图5所示,每个服务监控器经由移动钱包提供者平台130,并且尤其经由ESB135,来将此信息披露至系统的其他元件。在一个示例实施例中,根据调度表计划节点的不可用性,并且例如,使用来自每个服务监控器的信息,服务可用性服务308-a能够基于所述调度表来确定对于一个或多个不可用服务的可用性的所估计的等待时间。
[0107]根据上文由服务可用性服务380-a所收集的可用性事件(例如不可用的系统或过程的状况)能够被发布到例如JMS队列520的队列。在此示例实施例中,与服务的可用性相关的信息被发布到供网络上的其他节点消费的队列。进而,可用性事件消费者530消费来自该队列的可用性事件信息。在一个示例实施例中,可用性事件消费者530可以对应于图3中的入站请求调度器308。
[0108]示例计算机可读介质的实施方式
[0109]例如,上面所描述的示例实施例诸如结合图1至图5所描绘或讨论的系统和过程或其任何部分或功能可以通过使用硬件、软件或这两者的组合来实现。所述实施方式可以在一个或多个计算机或其他处理系统中。尽管可能已经以通常与由操作人员来执行的思维操作相关联的术语提到了通过这些示例实施例执行的操纵,但是并不需要操作人员来执行本文所述的任何操作。换言之,可以使用机器操作来完全实现所述操作。用于执行本文所呈现的示例实施例的操作的有用的机器包括通用数字计算机或类似的设备。
[0110]图6是依据本发明的示例实施例中的一些实施例的通用和/或专用计算机600的框图,所述计算机600可以是通用和/或专用计算设备。例如,除其他设备以外,计算机600可以是用户设备、用户计算机、客户端计算机、和/或服务器计算机。
[0111]计算机600可以包括但不限于处理器设备630、主存储器635、和互连总线637。处理器设备630可以包括但不限于单个微处理器,或者可以包括多个微处理器以用于将计算机600配置为多处理器系统。除其他以外,主存储器635存储供处理器设备630执行的指令和/或数据。主存储器635可以包括动态随机存取存储器(DRAM)以及高速缓存存储器的库。
[0112]计算机600还可以包括大容量存储设备640、外围设备642、便携式非暂时性存储介质设备646、输入控制设备644、图形子系统648、和/或输出显示界面649。出于解释的目的,在图6中将计算机600中的所有组件示出为经由总线637来耦合。然而,计算机600并非局限于此。计算机600的设备可以经由一种或多种数据传输方式来耦合。例如,处理器设备630和/或主存储器635可以经由本地微处理器总线来耦合。大容量存储设备640、外围设备642、便携式存储介质设备646、和/或图形子系统648可以经由一个或多个输入/输出(I/O)总线来耦合。大容量存储设备640可以是用于存储供处理器设备630使用的数据和/或指令的非易失性存储设备。例如,可以使用磁盘驱动器或光盘驱动器来实现大容量存储设备640。在软件实施例中,大容量存储设备640被配置用于将大容量存储设备640的内容加载到主存储器635内。
[0113]便携式存储介质设备646结合诸如例如压缩盘只读存储器(CD-ROM)的非易失性便携式存储介质来操作以将数据和代码输入至计算机600以及从计算机600输出数据和代码。在一些实施例中,用于存储信息的软件可以被存储在便携式存储介质上,并且可以经由便携式存储介质设备646被输入至计算机600内。外围设备642可以包括任何类型的计算机支持设备,诸如例如被配置用于向计算机600添加附加功能的输入/输出(I/O)接口。例如,夕卜围设备642可以包括用于将计算机600与网络相接口的网络接口卡。
[0114]输入控制设备644为计算机600的用户提供用户接口的部分。输入控制设备644可以包括小键盘和/或光标控制设备。小键盘可以被配置用于输入字母数字字符和/或其他键信息。光标控制设备可以包括例如手持控制器或鼠标、轨迹球、触控笔、和/或光标方向键。为了显示文本和图形信息,计算机600可以包括图形子系统648和输出显示器649。输出显示器649可以包括阴极射线管(CRT)显示器和/或液晶显示器(IXD)。图形子系统648接收文本和图形信息,并且处理供输出至输出显示器649的信息。
[0115]计算机600的每个组件可以表示广泛类别的通用和/或专用计算机的计算机组件。计算机600的组件不限于此处所提供的特定实施方式。
[0116]本文所呈现的示例实施例的软件实施例可以被提供为计算机程序产品或软件,其可以包括在具有指令的机器可存取或机器可读的介质上的制品。非暂时性的机器可存取机器可读或计算机可读的介质上的指令可以被用于对计算机系统或其他电子设备编程。机器可读介质或计算机可读介质可以包括但不限于软盘、光盘、CD-ROM、及磁光盘或者适于存储或传输电子指令的其他类型的介质/机器可读介质。本文所描述的技术不限于任何特定的软件配置。它们可以在任何计算或处理环境中找到适用性。本文所用的术语“计算机可读”、“机器可存取介质”或“机器可读介质”应当包括能够存储、编码、或传输供机器执行的指令序列并且使得机器执行本文所述的方法中的任意一种方法的任何介质。此外,在本领域中通常以一种形式或另一形式(例如程序、流程、过程、应用、模块、单元、逻辑等)将软件表述为采取行动或导致结果。这样的表达仅仅是陈述由处理系统执行软件使得处理器执行动作以产生结果的简短表达方式。
[0117]对于计算机领域的技术人员显而易见的是,可以通过使用根据本公开的教导所编程的常规通用计算机、专用数字计算机、和/或微处理器来方便地实现本发明的示例实施例的部分。可以由熟练的程序员基于本公开的教导容易地准备合适的软件编码。
[0118]还可通过准备专用集成电路、现场可编程门阵列、或者通过互连常规组件电路的合适网络来实现一些实施例。
[0119]—些实施例包括计算机程序产品。所述计算机程序产品可以是具有其上或其中所存储的指令的存储介质或媒介,所述指令能够被用于控制或使得计算机执行本发明的示例实施例的任何流程。所述存储介质可以包括但不限于软盘、迷你盘、光盘、蓝光盘、DVD、CD或CD-ROM、微驱动器、磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器、闪存卡、磁卡、光卡、纳米系统、分子存储器集成电路、RAID、远程数据存储/存档/仓库存储、和/或适于存储指令和/或数据的任何其他类型的设备。
[0120]存储在计算机可读介质或媒介中的任何一个上的一些实施方式包括软件,所述软件用于控制通用和/或专用计算机或微处理器这两者的硬件,以及用于使得计算机或微处理器能够与人类用户或利用本发明的示例实施例的结果的其他机构进行交互。这样的软件可以包括但不限于设备驱动器、操作系统、和用户应用。最后,如上所述,这样的计算机可读媒介还包括用于执行本发明的示例方面的软件。
[0121]在通用和/或专用计算机或微处理器的程序和/或软件中所包括的是用于实现以上所述的流程的软件模块。
[0122]尽管上面已经描述了本发明的各个示例实施例,但是应当理解,仅以示例而非限制的方式的对它们进行呈现。对于相关领域的技术人员显而易见的是,能够在其中做出形式和细节上的各种变化。因此,本发明不应当被任何上述的示例实施例所限制,而应当仅依据所附的权利要求书及其等同物来被限定。
[0123]此外,应当理解,仅出于示例目的呈现了附图。本文所呈现的示例实施例的架构是充分灵活且可配置的,使得可以以除所附的附图中示出的方式以外的方式来对其进行利用和导航。
[0124]此外,前述的摘要的目的在于使得美国专利商标局和一般公众,尤其是不熟悉专利或法律术语或措辞的本领域的科学家、工程师和从业人员,来根据粗略的审查而快速确定本申请的技术公开的本质和精髓。本摘要并非旨在以任何方式来限制本文所呈现的示例实施例的范围。还应当理解,不必以所呈现的顺序来执行权利要求书中所记载的流程。
【主权项】
1.一种用于管理过程请求的系统,包括: 至少一个存储器,所述至少一个存储器能够操作为存储请求队列和响应队列;以及 耦合至所述存储器的处理器,所述处理器能够操作为: 接收执行过程的请求; 将所述请求存储在请求队列集合当中的请求队列中,其中所述请求队列与所述过程相对应; 确定网络上的一个或多个节点是否能够用于执行所述过程; 在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值; 在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程; 从所述一个或多个节点接收响应; 将所述响应存储在响应队列集合当中的响应队列中,其中所述响应队列与所述过程相对应;以及 从所述响应队列调度所述响应。2.根据权利要求1所述的系统,其中,所述处理器能够操作为限制从所述请求队列所调度的请求的数目。3.根据权利要求2所述的系统,其中,依据在预定量的时间内从所述请求队列所调度的先前请求的数目来限制从所述请求队列所调度的请求的数目。4.根据权利要求1所述的系统,其中,所述期满值指示在确定能够操作为执行所述类型的所述过程的节点不可用之后多久将对所述类型的所述过程的请求进行排队。5.根据权利要求1所述的系统,进一步包括能够操作为从移动设备接收所述期满值的接口。6.根据权利要求1所述的系统,其中,相应的期满值与移动设备相关联。7.根据权利要求1所述的系统,其中,确定网络上的一个或多个节点是否能够用于执行所述过程通过与服务可用性服务通信来执行。8.一种用于管理过程请求的方法,包括: 存储请求队列和响应队列; 接收执行过程的请求; 将所述请求存储在请求队列集合当中的请求队列中,其中所述请求队列与所述过程相对应; 确定网络上的一个或多个节点是否能够用于执行所述过程; 在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值; 在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程; 从所述一个或多个节点接收响应;将所述响应存储在响应队列集合当中的响应队列中,其中所述响应队列与所述过程相对应;以及从所述响应队列调度所述响应。9.根据权利要求8所述的方法,进一步包括限制从所述请求队列所调度的请求的数目。10.根据权利要求9所述的方法,其中,依据在预定量的时间内从所述请求队列所调度的先前请求的数目来限制从所述请求队列所调度的请求的数目。11.根据权利要求8所述的方法,其中,所述期满值指示在确定能够操作为执行所述类型的所述过程的节点不可用之后多久将对所述类型的所述过程的请求进行排队。12.根据权利要求8所述的方法,进一步包括从移动设备接收所述期满值。13.根据权利要求8所述的方法,其中,相应的期满值与移动设备相关联。14.根据权利要求8所述的方法,其中,确定网络上的一个或多个节点是否能够用于执行所述过程通过与服务可用性服务通信来执行。15.—种其上存储有指令的非暂时性计算机可读存储介质,所述指令在由包括至少一个处理器和至少一个存储器的系统执行时使得所述系统执行以下步骤: 存储请求队列和响应队列; 接收执行过程的请求; 将所述请求存储在请求队列集合当中的请求队列中,其中所述请求队列与所述过程相对应; 确定网络上的一个或多个节点是否能够用于执行所述过程; 在所述网络上的所述一个或多个节点不能够用于执行所述过程的情况下,基于所述过程的类型来设置所述请求的期满值; 在所述网络上的所述一个或多个节点能够用于执行所述过程的情况下,将所述请求调度至所述网络上的所述一个或多个节点以在预定定时执行所述过程; 从所述一个或多个节点接收响应;将所述响应存储在响应队列集合当中的响应队列中,其中所述响应队列与所述过程相对应;以及 从所述响应队列调度所述响应。16.根据权利要求15所述的存储介质,其中,所述指令进一步使得所述系统限制从所述请求队列所调度的请求的数目。17.根据权利要求16所述的存储介质,其中,依据在预定量的时间内从所述请求队列所调度的先前请求的数目来限制从所述请求队列所调度的请求的数目。18.根据权利要求15所述的存储介质,其中,所述期满值指示在确定能够操作为执行所述类型的所述过程的节点不可用之后多久将对所述类型的所述过程的请求进行排队。19.根据权利要求15所述的存储介质,其中,所述指令进一步使得所述系统从移动设备接收所述期满值。20.根据权利要求15所述的存储介质,其中,相应的期满值与移动设备相关联。
【文档编号】H04L12/16GK106031088SQ201480074131
【公开日】2016年10月12日
【申请日】2014年12月15日
【发明人】兰斯·C·拉普兰特
【申请人】谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1