网站流量控制的系统和方法与流程

文档序号:13352429阅读:804来源:国知局
网站流量控制的系统和方法与流程

优先权

本国际申请要求于2015年5月11日提交的、标题为“systemandmethodofsitetrafficcontrol”、序列号为no.14/708,463的美国专利申请的优先权,其全部内容通过引用整体并入本文中。

本公开的实施例总体涉及数据处理,并且更具体地但并非限制性地涉及网站流量控制的系统和方法。



背景技术:

在线服务(例如,网站)可能遭受大量的用户流量(例如,请求)。大量流量可能压垮在线服务,并且导致服务器关闭或其它服务失败。

附图说明

在所附附图中通过示例而非限制的方式示出了本公开的一些实施例,在附图中相同的附图标记指示类似的元素。

图1是示出了根据一些示例实施例的联网系统的框图。

图2是示出了根据一些示例实施例的基于网络的发布系统的各种组件的框图。

图3是示出了根据一些示例实施例的流量控制系统的组件的框图。

图4示出了根据一些示例实施例的包括数据库中令牌与对应的返回时间参数之间的关联的表。

图5示出了根据一些示例实施例的在客户端设备上所显示的过载通知。

图6示出了根据一些示例实施例的在客户端设备上所显示的返回时间通知。

图7a示出了根据一些示例实施例的在客户端设备上所显示的具有对高过载级别的指示的过载通知。

图7b示出了根据一些示例实施例的在客户端设备上所显示的具有对中等过载级别的指示的过载通知。

图7c示出了根据一些示例实施例的在客户端设备上所显示的具有对低过载级别的指示的过载通知。

图8是示出了根据一些示例实施例的流量控制的方法的流程图。

图9是示出根据一些示例实施例的流量控制的另一方法的流程图。

图10是示出了根据一些示例实施例的确定返回时间参数的方法的流程图。

图11是示出了根据一些示例实施例的向用户提供返回时间通知的方法的流程图。

图12是示出了根据一些示例实施例的向用户提供过载通知的方法的流程图。

图13是示出了根据一些示例实施例的流量控制的又一方法的流程图。

图14是示出了根据一些示例实施例的流量控制的又一方法的流程图。

图15是示出了根据一些示例实施例的移动设备的框图。

图16示出了根据示例实施例的具有计算机系统的形式的机器的图示表示,在所述计算机系统中,可以执行指令集合以使所述机器执行本文讨论的方法中的任意一个或多个方法。

此处提供的标题仅为方便起见,而不一定影响所使用的术语的范围或含义。

具体实施方式

以下说明书包括具体实现说明性实施例的说明性的系统、方法、技术、指令序列和计算机程序产品。在下文的描述中,出于解释的目的,阐述了很多具体细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说将显而易见的是,本发明主题的实施例可以在没有这些具体细节的情况下实践。一般而言,公知的指令实例、协议、结构和技术不被详细示出。

本公开提供了用于管理在线服务的流量的技术解决方案。在一些示例实施例中,流量控制系统围绕在线服务的应用来实现排队系统。当流量控制系统确定应用已经达到其能力或处于达到其能力的预定范围内时,流量控制系统然后可以向对在线服务提交请求的用户发出令牌和所估计时间参数(比如,时间窗),用于使用户尝试提交另一请求。所估计时间可以与流量控制系统确定为应用可以更好地处理请求时(例如,当应用不处于最大能力时)的时间相对应。当具有令牌的用户根据时间参数(例如,在时间窗内)来提交随后的请求时,流量控制系统可以在其它请求之前为该请求提供服务。以这种方式,流量控制系统可以避免过载在线服务,并且可以为用户提供所估计等待时间。流量控制系统还可以在所估计时间参数出现时或者在所估计时间参数之前的预定时间量处通知用户:用户可以尝试再次提交请求并且期望快速响应。

在一些示例实施例中,流量控制系统可以确定在线服务过载程度的级别。然后,流量控制系统可以基于所确定的级别来生成不同类型的过载通知,用以呈现给用户。流量控制系统还可以基于所确定的级别来确定限制标准,然后在确定哪些用户请求要满足和哪些用户请求要暂时拒绝时应用所确定的限制标准。

本文公开了网站流量控制的系统和方法。在一些示例实施例中,从第一客户端设备上的第一用户接收针对在线服务的请求执行操作的第一请求,并且利用与第一请求的第一请求时间相对应的过载条件来检测或以其它方式来确定在线服务的至少一个过载条件。基于对过载条件的确定来确定第一用户的第一令牌和第一返回时间参数,并且将第一令牌与第一返回时间参数相关联地存储。将第一令牌和第一返回时间参数发送给第一客户端设备。从第一用户接收针对在线服务的请求执行操作的第二请求。第二请求具有对应时间并且包括第一令牌。基于第一令牌来识别第一返回时间参数。确定第二请求的对应时间满足第一返回时间参数,并且响应于此或者以其它方式基于确定第二请求的对应时间满足第一返回时间参数来执行操作。上述操作的变化以及其它实施例也处于本公开的范围内。

在一些示例实施例中,操作包括使得第一用户能够访问在线服务的页面。在一些示例实施例中,过载条件包括以下中的至少一个:在线服务的流量级别满足一个或多个预定流量级别标准、在线服务的网络连接速度满足一个或多个预定网络连接速度标准、以及在线服务的服务器速度满足一个或多个预定服务器速度标准。

在一些示例实施例中,第一返回时间参数包括指定的时间或指定的时间窗。在一些示例实施例中,确定第一返回时间参数包括:估计在线服务在将来时间(该将来时间在第一请求时间之后)的负载级别;确定所估计的负载级别满足一个或多个返回时间标准;以及基于确定所估计的负载级别满足一个或多个返回时间标准来将第一返回时间参数定义为包括所述将来时间。

在一些示例实施例中,向第一客户端设备发送第一令牌包括向第一客户端设备发送cookie,cookie包括第一令牌。

在一些示例实施例中,确定当前时间处于第一返回时间参数的预定时间量内,并且基于确定当前时间处于第一返回时间参数的预定时间量内来向第一用户发送返回时间通知,其中返回时间通知被配置为指示第一用户再次请求操作。

在一些示例实施例中,基于至少一个过载条件来从多个过载级别中选择过载级别,基于所选择的过载级别来生成过载通知,且使得过载通知显示在第一客户端设备上,其中过载通知包括对过载级别的指示。

在一些示例实施例中,基于至少一个过载条件来从多个限制标准中选择限制标准,基于所选择的限制标准来拒绝第一用户访问在线服务的操作,并且基于所选择的限制标准来允许第二用户访问在线服务的操作。

本文所公开的方法或实施例可以被实施为具有一个或多个模块(例如,硬件模块或软件模块)的计算机系统。计算机系统的一个或多个处理器可以执行这种模块。本文所公开的方法或实施例可以被体现为存储在机器可读介质上的指令,当一个或多个处理器执行该机器可读介质时使得该一个或多个处理器执行所述指令。

参考图1,示出了高级的基于客户端-服务器的网络架构100的示例实施例。具有基于网络的市场或支付系统的示例形式的联网系统102经由网络104(例如互联网或广域网(wan))向一个或多个客户端设备110提供服务器侧功能。图1示出了例如在客户端设备110上执行的web客户端112(例如浏览器,比如由华盛顿州雷德蒙德的公司开发的internet浏览器)、应用114和编程客户端116。

客户端设备110可以包括但不限于:移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板计算机、超级本、上网本、笔记本计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒或用户可以用来访问联网系统102的任何其他通信设备。在一些实施例中,客户端设备110可以包括显示模块(未示出)以显示信息(例如,以用户接口的形式)。在另一些实施例中,客户端设备110可以包括触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(gps)设备等中的一个或多个。客户端设备110可以是用于执行涉及联网系统102内的数字项目的交易的用户设备。在一个实施例中,联网系统102是这样一种基于网络的市场:其响应针对产品列表的请求,发布包括在基于网络的市场上可获得的产品的项目列表在内的公告,并且管理用于这些市场交易的支付。一个或多个用户106可以是人、机器或与客户端设备110交互的其它装置。在实施例中,用户106不是网络架构100的一部分,但可以经由客户端设备110或另一装置与网络架构100进行交互。例如,网络104的一个或多个部分可以是自组织(adhoc)网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公共电话交换网(pstn)的一部分、蜂窝电话网、无线网络、wifi网络、wimax网络、另一类型的网络或两个或更多个这样的网络的组合。

客户端设备110中的每一个可以包括一个或多个应用(也称作“app”),例如但不限于web浏览器、消息传送应用、电子邮件(email)应用、电子商务网站应用(也称作市场应用)等。在一些实施例中,如果电子商务网站应用被包括在给定客户端设备110中的一个中,则该应用被配置为本地提供用户接口以及如下情况下的至少一些功能,所述情况为:所述应用被配置为根据需要与联网系统102通信,以获得本地不可获得的数据和/或处理能力(例如,访问可供销售的物品的数据库、认证用户、验证支付方法等)。相反,如果电子商务网站应用未被包括在客户端设备110中,则客户端设备110可以使用其web浏览器来访问联网系统102上容纳的电子商务网站(或其变型)。

一个或多个用户106可以是人、机器或与客户端设备110交互的其它装置。在示例实施例中,用户106不是网络架构100的一部分,但可以经由客户端设备110或其它装置与网络架构100进行交互。例如,用户向客户端设备110提供输入(例如,触摸屏输入或字母数字输入),并且该输入经由网络104被传送到联网系统102。在这种情况下,联网系统102响应于从用户接收输入,经由网络104将信息传达到客户端设备110以呈现给用户。以这种方式,用户可以使用客户端设备110与联网系统102交互。

应用程序接口(api)服务器120和web服务器122耦接到一个或多个应用服务器140,并分别向该一个或多个应用服务器140提供编程接口和web接口。应用服务器140可以主控(host)一个或多个发布系统142和支付系统144,发布系统142和支付系统144中的每一个可以包括一个或多个模块或应用,并且该模块或应用中的每一个可以体现为硬件、软件、固件或它们的任意组合。相应地,应用服务器140被示为耦接到一个或多个数据库服务器124,所述数据库服务器124有助于访问一个或多个信息存储库或数据库126。在示例实施例中,数据库126是存储要张贴到发布系统120的信息(例如,发布或列表)的存储设备。根据示例实施例,数据库126还可以存储数字项目信息。

另外,在第三方服务器130上执行的第三方应用132被示为经由api服务器120提供的编程接口对联网系统102进行编程访问。例如,第三方应用132利用从联网系统102取回的信息,来支持第三方所托管的网站上的一个或多个特征或功能。例如,第三方网站提供由联网系统102的相关应用支持的一个或多个促销、市场或支付功能。

发布应用142可以向访问联网系统102的用户提供多个发布功能和服务。支付系统144同样可以提供多个功能以执行或有助于支付和交易。虽然发布系统142和支付系统144在图1中都被示为均形成联网系统102的一部分,但是应当理解,在备选实施例中,每个系统142和144可以形成与联网系统102分离且不同的支付服务的一部分。在一些实施例中,支付系统144可以形成发布系统142的一部分。

流量控制系统150可以提供可操作以执行各种流量控制操作的功能,如将在下面进一步详细时论的。流量控制系统150可以从数据库126、第三方服务器130、发布系统120和其它源访问数据。在一些示例实施例中,流量控制系统150可以分析数据以执行流量控制操作。在一些示例实施例中,流量控制系统150可以与发布系统120(例如,访问项目列表)和支付系统122进行通信。在备选实施例中,流量控制系统150可以是发布系统120的一部分。

此外,虽然图1示出的基于客户端-服务器的网络架构100采用客户端-服务器架构,但是本发明主题当然不限于此种架构,并且可以同样良好地应用于例如分布式或对等的架构系统。各种发布系统142、支付系统144和流量控制系统150还可以被实现为独立的软件程序,所述独立的软件程序不一定具有联网能力。

web客户端112可以经由web服务器122所支持的web接口来访问各个发布系统142和支付系统144。类似地,编程客户端116经由api服务器120所提供的编程接口来访问由发布系统142和支付系统144提供的各种服务和功能。例如,编程客户端116可以是卖家应用(例如,由加利福尼亚州圣何塞的公司开发的turbolister应用),其用于使卖家能够以离线方式创作和管理联网系统102上的列表,并且执行编程客户端116与联网系统102之间的批处理模式通信。

附加地,在第三方服务器130上执行的第三方应用128被示出为经由api服务器114提供的编程接口对联网系统102进行编程访问。例如,第三方应用128可以利用从联网系统102取回的信息来支持由第三方托管的网站上的一个或多个特征或功能。例如,第三方网站可以提供由联网系统102的相关应用支持的一个或多个促销、市场或支付功能。

图2是示出了根据一些示例实施例的基于网络的发布系统142的各种组件的框图。发布系统142可以容纳在被通信地耦接以使得服务器机器之间的通信实现的专用或共享服务器机器上。组件自身彼此(例如经由适当的接口)通信地耦接并耦接至各种数据源,从而允许信息在应用之间传递或允许应用共享和访问公共数据。此外,组件可以经由数据库服务器124访问一个或多个数据库126。

发布系统142可以提供多个发布、列表和/或价格设置机制,由此销售者(也称第一用户)可以列出以供销售或交易的商品或服务(或发布关于以供销售或交易的商品或服务的信息),购买者(也称第二用户)可以表示对这些商品或服务的兴趣或表示希望购买或交易这些商品或服务,并且可以完成与商品或服务有关的交易(如贸易)。为此,发布系统142可以包括至少一个发布引擎202和一个或多个销售引擎204。发布引擎202可以在发布系统142上发布信息(比如,项目列表或产品描述页)。在一些实施例中,销售引擎204可以包括一个或多个固定价格引擎和一个或多个拍卖引擎,所述固定价格引擎支持固定价格列表和价格设置机制,所述拍卖引擎支持拍卖格式列表和价格设置机制(例如,英式、荷兰式、中式、双向、反向拍卖等)。各种拍卖引擎还可以提供若干特征,以支持这些拍卖格式列表,比如底价特征(通过该特征,销售者可以结合列表来指定底价)和代理投标特征(通过该特征,投标者可以调用自动化代理投标)。销售引擎204还可以包括支持商家生成的针对产品和服务的报价的一个或多个交易引擎。

列表引擎206允许销售者方便地编写项目列表或允许编写者编写发布。在一个实施例中,列表与用户(例如,销售者)希望经由发布系统142交易的商品或服务有关。在一些实施例中,列表可以是针对商品或服务的报价、交易、优惠券或折扣。每个商品或服务与特定类别相关联。列表引擎206可以接收列表数据(比如,标题、描述、和方面名称/值对)。此外,可以给商品或服务的每个列表分配项目标识符。在其它实施例中,用户可以创建作为广告或其它形式的信息发布的列表。然后,列表信息可以存储至耦接至发布系统142的一个或多个存储设备(例如数据库126)。列表还可以包括显示产品和与产品相关联的信息(例如产品标题、规格和评述)的产品描述页。在一些实施例中,产品描述页可以包括与在产品描述页上所描述的产品相对应的项目列表的累计。

列表引擎206还可以允许购买者方便地编写对期望购买的项目的列表或请求。在一些实施例中,列表可以与用户(例如购买者)希望经由发布系统142交易的商品或服务有关。每个商品或服务与特定类型相关联。列表引擎206可以接收购买者关于所请求的项目所知道的尽可能多或尽可能少的列表数据(比如,标题、描述和方面名称/值对)。在一些实施例中,列表引擎206可以解析购买者提交的项目信息并可以完成列表的不完整部分。例如,如果购买者提供了所请求项目的简要描述,则列表引擎206可以解析该描述,提取关键术语并使用那些术语来确定项目的标识。使用所确定的项目标识,列表引擎206可以取回在购买者项目请求中所包括的内容的附加的项目细节。在一些实施例中,列表引擎206可以向商品或服务的每个列表分配项目标识符。

在一些实施例中,列表引擎206允许销售者产生对产品或服务的折扣的报价。列表引擎206可以接收列表数据(比如,报价了的产品或服务、产品或服务的价格和/折扣、报价有效的时段等)。在一些实施例中,列表引擎206许可销售者从其移动设备生成报价。可以将所生成的报价上传到发布系统142,以存储和跟踪。

搜索引擎208有助于搜索发布系统142。例如,搜索引擎208使得能够对经由发布系统142发布的列表进行关键字查询。在示例实施例中,搜索引擎208从用户的设备接收关键字查询,并且对存储列表信息的存储设备进行审核。审核将使得能够对可以被排序并返回给用户的客户端设备110的列表的结果集合进行编辑。搜索引擎208可以记录查询(例如关键字)以及任意后续用户动作和行为(例如导航)。

搜索引擎208还可以基于用户的位置执行搜索。用户可以经由移动设备访问搜索引擎208并生成搜索查询。使用搜索查询和用户位置,搜索引擎208可以向用户返回产品、服务、报价、拍卖等的相关搜索结果。搜索引擎208可以以列表形式和在图上图形化地标识搜索结果。在图上选择图形指示符可以提供关于所选搜索结果的附加细节。在一些实施例中,用户可以将距离用户当前位置的半径或距离作为搜索查询的一部分,以限制搜索结果。

搜索引擎208还可以基于图像执行搜索。图像可以从客户端设备的相机或成像组件获取,或者可以从存储器访问。

在另一示例中,导航引擎210允许用户根据哪些列表可以在发布系统142内被分类来导航遍历各种类别、目录或库存数据结构。例如,导航引擎210允许用户接连地向下导航包括类别层级的类别树(例如类别树结构),直至达到特定的列表集合。可以提供导航引擎210内的各种其它导航应用,以补充搜索和浏览应用。导航引擎210可以记录用户所执行的各种用户动作(例如点击),以便向下导航类别树。

图3是示出了根据一些示例实施例的流量控制系统150的组件的框图。在一些示例实施例中,流量控制系统150包括过载确定模块310、服务模块320和通知模块330中的一个或多个的任意组合。流量控制系统150还可以包括一个或多个数据库340。过载确定模块310、服务模块320、通知模块330和数据库340可以彼此通信地耦接,并且可以驻留在具有存储器和至少一个处理器的机器上并由该机器实现。流量控制系统150的这些组件也可以驻留在单独的机器上。数据库340可以并入到图1的数据库126中。

在一些示例实施例中,过载确定模块310被配置为从第一客户端设备上(例如,图1中的客户端设备110)的第一用户(例如,图1中的用户106)接收针对在线服务的请求执行操作的第一请求。在线服务可以包括网站。在一些示例实施例中,在线服务包括由图1中的公布系统142或支付系统144提供的任何服务。然而,可以预期的是,其它类型的在线服务也在本公开的范围之内。所述操作可以包括:允许第一用户访问在线服务的页面(例如,在其上查看项目的细节的页面、在其上订购或购买项目的页面);向第一客户端设备上的第一用户呈现在线服务的页面;或者处理针对项目的订单或交易。然而,其它类型的操作也在本公开的范围内。

在一些示例实施例中,过载确定模块310还被配置为检测在线服务的至少一个过载条件。过载条件可以包括如下这样的任意条件:其响应于在线服务执行针对附加用户的指定功能,将会使得在线服务将一个或多个指定功能的性能降低到至少预定程度。这样的过载条件可以包括但不限于:与在线服务的一个或多个数据库的状态和/或能力相关的条件、与在线服务的一个或多个服务器的状态和/或能力相关的条件、以及与在线服务的网络的状态和/或能力相关的条件。例如,在一些示例实施例中,过载条件可以包括以下项中的至少一个:在线服务的流量级别(例如,在特定时段期间处理多个请求、在特定时段期间堵塞或停滞多个请求)满足一个或多个预定流量级别标准(例如,超过预定阈值)、在线服务的网络连接速度满足一个或多个预定网络连接速度标准(例如,网络连接速度低于预定阈值)、在线服务的服务器速度满足一个或多个预定服务器速度标准(例如,服务器速度低于预定阈值)、以及对在线服务的可用资源(例如,数据库、服务器)的数量的确定。然而,其它类型的过载条件也在本公开的范围内。

在一些示例实施例中,过载条件与过载确定模块310接收到对应请求时的请求时间相对应。例如,如果过载确定模块310在上午8:43接收到请求,则可以针对上午8:43来确定过载条件。在另一示例中,过载确定模块310可以独立于接收请求来周期性地确定过载条件,然后可以将在与接收到请求的时间最接近的时间处已经确定出的过载条件确定为针对该请求的过载条件。

在一些示例实施例中,过载确定模块310还被配置为执行一个或多个监测操作,用以确定任何过载条件。可以在本公开的范围内采用的监测技术的示例包括但不限于合成监测技术。合成监测包括使用web交易的浏览器模拟或脚本记录执行的监测,在该检测中使用行为脚本(或路径)来仿真最终用户在网站或其它在线服务上将采取的动作或路径。然后,以特定的间隔来连续监测那些路径,以获得性能(例如可用性)。其它类型的监测技术也在本公开的范围之内。可以预期的是,过载确定模块410自身可以执行监测技术(比如,合成检测),或者可以备选地从执行这样的监测技术的外部源接收对过载条件的指示。

在一些示例实施例中,过载确定模块310被配置为:响应于或者以其它方式基于对过载条件的确定,来防止在线服务执行所请求的操作。在一些示例实施例中,过载确定模块310还被配置为基于对过载条件的确定来确定第一用户的第一令牌和第一返回时间参数。第一令牌可以包括标识符(比如,随机生成的数字或字母数字文本)。第一返回时间参数可以包括为了使在线服务针对第一用户执行所请求的操作而将要满足的任何时间条件。在一些示例实施例中,第一返回时间参数包括指定时间(例如,上午10:30),使得如果第一用户在指定时间已经达到之后再次请求操作,则在线服务将第一用户执行所请求的操作。在一些示例实施例中,第一返回时间参数包括指定时间窗(例如,上午10:30到上午12:30),使得如果第一用户在指定时间窗内再次请求操作,则在线服务将针对第一用户执行所请求的操作。然而,可以预期的是,其它返回时间参数也在本公开的范围之内。

在一些示例实施例中,过载确定模块310还被配置为基于对一个或多个返回时间标准可以被满足的最快时间的确定来确定第一返回时间参数。返回时间标准可以表示对在线服务可以充分处理第一用户的请求进行指示的标准。该确定可以基于一个或多个因素,比如对在线服务在将来时间处的流量流(trafficflow)的估计预测、活动级别或其它状态指标。例如,过载确定模块310可以估计其流量流将下降到预定阈值以下时的最快时间,然后基于该最快时间确定第一返回时间参数(比如,使该最快时间成为时间窗的起点)。然后,时间窗的终点也可以基于对在线服务在将来时间处的需求估计。

在一些示例实施例中,过载确定模块310被配置为:估计在线服务将来时间的负载级别;确定所估计的负载级别满足一个或多个返回时间标准;且然后基于确定所估计的负载级别满足一个或多个返回时间标准来将第一返回时间参数定义为包括所述将来时间。

在一些示例实施例中,过载确定模块310还被配置为将第一令牌与第一返回时间参数相关联地存储在数据库340中。图4示出了根据一些示例实施例的包括存储在数据库340中的令牌和对应的返回时间参数之间的关联的表400。

返回参考图3,在一些示例实施例中,通知模块330被配置为向第一客户端设备发送第一令牌和第一返回时间参数。通知模块330可以被配置为向第一客户端设备发送cookie,其中,cookie包括第一令牌。

在一些示例实施例中,过载确定模块310还被配置为从第一用户接收针对在线服务的请求在对应时间处执行操作的第二请求。第一令牌被与第二请求相关联地接收(例如,经由存储在第一客户端设备上的cookie)。

在一些示例实施例中,过载确定模块310还被配置为基于被与第二请求相关联地接收的第一令牌来识别第一返回时间参数。过载确定模块310可以通过查找数据库340中所存储的第一令牌并且确定与第一令牌相关联地存储的第一返回时间参数来识别第一返回时间参数。

在一些示例实施例中,过载确定模块310还被配置为确定第二请求的对应时间是否满足第一返回时间参数。例如,如果第一返回时间参数是上午10:30到上午12:30的窗,并且第二请求的对应时间是上午10:22,则过载确定模块310将确定第二请求的对应时间不满足第一返回时间参数。另一方面,假设相同的第一返回时间参数,如果第二请求的对应时间是上午10:42,则过载确定模块310将确定第二请求的对应时间确实满足第一返回时间参数。

在一些示例实施例中,服务模块320被配置为:响应于确定第二请求的对应时间满足第一返回时间参数来执行所请求的操作;并且响应于确定第二请求的对应时间不满足第一返回时间参数来防止执行所请求的操作。

在一些示例实施例中,通知模块310被配置为生成过载通知并向第一客户端设备发送该过载通知。图5示出了根据一些示例实施例的在客户端设备10上所显示的过载通知510。尽管图5将客户端设备110示出为智能手机,但是可以预期的是,如之前所讨论的,其它类型的客户端设备也在本公开的范围内。

过载通知510可以包括对在线服务在当前时间处不能处理第一用户的请求的指示。过载通知510还可以包括对已经使得在线服务不能满足第一用户的请求的过载条件的指示。过载通知510还可以包括第一返回时间参数和如下这样的指示,所述指示为:如果第一用户的请求根据第一返回时间参数而重新提交,则第一用户的请求将被给予优先。

在某些情况下,第一用户可以决定使用与起初使用的客户端设备不同的客户端设备来重新提交请求。因此,由于随后的不同的客户端设备可能不具有存储在其上并可用于与第二请求相关联地提供的第一令牌,过载通知510可包括对与第二请求相关联地手动提交针对第一用户的第一令牌的指示。

在一些示例实施例中,通知模块330还可以被配置为:确定当前时间处于第一返回时间参数的预定时间量内;以及基于确定当前时间处于第一返回时间参数的预定时间量内来向第一用户发送返回时间通知,由此在第一返回时间参数之前不久(例如,在指定时间窗之前的5分钟)或者在第一返回时间参数时(例如,在指定时间窗的起点处)通知第一用户。

图6示出了根据一些示例实施例的在客户端设备110上所显示的返回时间通知610。尽管图6将客户端设备110示出为智能手机,但是可以预期的是,如之前所讨论的,其它类型的客户端设备也在本公开的范围内。

返回时间通知610可以被配置为指示第一用户再次请求操作。返回时间通知610还可以被配置为指示第一用户:再次提交的请求将被赋予优于其它用户的请求的特定优先级,或者保证重新提交的请求在被第一用户提交时会被完全处理。在一些示例实施例中,返回时间通知610还包括一个或多个可选择的用户接口元素620,所述可选择用户接口元素620被配置为向第一用户提供向在线服务重新提交请求的选项。与重新提交请求相对应的用户接口元素620之一可以被配置为响应于其选择来触发或以其它方式发起重新提交请求。在一些示例实施例中,对与重新提交请求相对应的用户接口元素620的选择触发或以其它方式发起对第一用户可在其上重新提交请求的页面进行加载。

返回参考图3,在一些示例实施例中,过载确定模块310还被配置为基于过载条件从多个过载级别中选择过载级别。可以基于过载确定模块310的负载计算器计算的所估计响应时间来确定过载级别。可以基于过载条件来计算响应时间。在一些示例实施例中,过载确定模块310在估计响应时间时采用模型,其中模型将某些过载条件与某些时间量相关联,可以在针对一个或多个过载条件的特定集合计算在线服务的总体响应时合计所述时间量。在这方面,过载确定模块310可以根据所请求的操作的执行将要被延迟的程度来对在线服务的状态进行分类。

在一些示例实施例中,多个过载级别可以与不同的所估计响应时间范围相对应。例如,多个过载级别可以包括高过载级别、中等过载级别和低过载级别。针对在1分钟到15分钟之间的估计响应时间可以选择低过载级别,针对在15分钟到45分钟之间的估计响应时间可以选择中等过载级别,并且针对在45分钟以上的任何估计响应时间可以选择高过载级别。

在一些示例实施例中,多个过载级别可以与检测到的不同数量的过载条件相对应。如先前所讨论的,过载条件可以包括将使得在线服务将一个或多个指定功能的性能降低到预定程度的任何条件。这样的过载条件可以包括但不限于:与在线服务的数据库的状态和/或能力相关的条件、与在线服务的服务器的状态和/或能力相关的条件、以及与在线服务的网络的状态和/或能力相关的条件。过载条件的示例包括但不限于:在线服务的流量级别(例如,在特定时段期间处理多个请求、在特定时段期间堵塞或停滞多个请求)满足一个或多个预定流量级别标准(例如,超过预定阈值)、在线服务的网络连接速度满足一个或多个预定网络连接速度标准(例如,网络连接速度低于预定阈值)、以及在线服务的服务器速度满足一个或多个预定服务器速度标准(例如,服务器速度低于预定阈值)。过载确定模块310可以被配置为确定在请求执行操作的时间期间应用了多少过载条件,然后基于所确定的过载条件的数量来确定过载级别。例如,可以基于检测到一个过载条件来选择低过载级别,可以基于检测到两个过载条件来选择中等过载级别,并且基于检测到三个以上(threeofore)的过载条件来选择高过载级别。其它配置也在本公开的范围之内。

在一些示例实施例中,通知模块330还被配置为:基于所选择的过载级别来生成过载通知,并且使得过载通知显示在第一客户端设备上。过载通知可以包括对所确定的过载级别的指示。

图7a示出了根据一些示例实施例的在客户端设备110上所显示的具有高过载级别的指示的过载通知710a。尽管图7a将客户端设备110示出为智能手机,但是可以预期的是,如之前所讨论的,其它类型的客户端设备也在本公开的范围内。

在一些示例实施例中,指示可以包括过载数据,比如,对高过载级别的文本解释和对用户应该再次请求操作的时间的指示(例如,图7a中的“请在1小时15分钟后再次尝试”)。指示还可以包括与高过载级别相对应的图形元素720a。图形元素720a可以包括与高过载级别相对应的不同的图形(例如,针对高过载级别的生气的面部表情)和/或颜色(例如,针对高过载级别的红色)。

图7b示出了根据一些示例实施例的在客户端设备110上显示的具有中等过载级别的指示的过载通知710b。尽管图7b将客户端设备110示出为智能手机,但是可以预期的是,如之前所讨论的,其它类型的客户端设备也在本公开的范围内。

在一些示例实施例中,指示可以包括过载数据,比如,对中等过载级别的文本解释和对用户应该再次请求操作的时间的指示(例如,图7b中的“请在45分钟后再次尝试”)。指示还可以包括与中等过载级别相对应的图形元素720b。图形元素720b可以包括与中等过载级别相对应的不同的图形(例如,针对中等过载级别的令人遗憾的面部表情)和/或颜色(例如,针对中等过载级别的灰色)。

图7c示出了根据一些示例实施例的在客户端设备110上所显示的具有低过载级别的指示的过载通知710c。尽管图7c将客户端设备110示出为智能手机,但是可以预期的是,如之前所讨论的,其它类型的客户端设备也在本公开的范围内。

在一些示例实施例中,指示可以包括过载数据,比如,对低过载级别的文本解释和对用户应该再次请求操作的时间的指示(例如,图7c中的“请在15分钟后再次尝试”)。指示还可以包括与低过载级别相对应的图形元素720c。图形元素720c可以包括与低过载级别相对应的不同的图形(例如,针对低过载级别的高兴的面部表情)和/或颜色(例如,针对低过载级别的黄色)。

尽管以上示例使用了三种不同的过载级别,但是可以预期的是,其它数量个过载级别也在本公开的范围内。

返回参考图3,在一些示例实施例中,过载确定模块310还被配置为基于所确定的过载条件来从多个限制标准中选择限制标准,并且服务模块320还被配置为基于所选择的限制标准来确定是允许还是拒绝执行所请求的操作。多个限制标准可以包括允许执行用户所请求的操作的不同技术和程度。

可以采用的限制标准的一个示例是许可用户在先进先出(fifo)队列系统上执行所请求的操作。

可以采用的限制标准的另一示例是:许可对队列系统中的每第n(其中n是数字)个用户所请求的操作(例如,队列中的每第二个用户、队列中的每第三个用户、队列中的每第四个用户),同时拒绝执行其他用户所请求的操作(例如,将他们重新引导到重新引导页面)。

可以采用的限制标准的另一示例是:许可针对在重复的间隔(或窗)期间提交请求的每个用户执行所请求的操作,该重复的间隔(或窗)散布在非执行时间段之间。例如,可以针对在30秒间隔期间提交请求的每个用户许可所请求的操作,而暂时地拒绝在该间隔之外提交请求的用户的所请求的操作,并且将这些用户重新引导到重新引导页面,直到做出请求操作的另一尝试为止。可以基于过载条件来调整间隔时间。在一些示例实施例中,时间间隔的长度与过载条件的数量或过载级别成反比,使得过载条件的数量越多或者过载级别越高则事件间隔越短(即,流量控制系统150在许可所请求的操作方面的限制性越大)。

在一些示例实施例中,过载确定模块310还被配置为响应于或以其它方式基于接收到请求执行在线服务的操作的请求来将用户分到两组中的一个中。第一组针对于被授权许可由在线服务执行其所请求的操作的用户,而第二组针对于拒绝许可由在线服务执行其所请求的操作的用户。可以向第一组中的用户发出第二令牌(例如,发送给用户客户端设备的许可令牌),流量控制系统150可以使用第二令牌来发起执行所请求的操作(例如,所请求的页面被加载到用户客户端设备上)。第二组中的用户可以被引导到重新引导页面(例如,图7a、图7b和图7c中在其上分别示出过载通知710a、710b和710c的页面)。过载确定模块310可以被配置为:拒绝执行所请求的操作,直到满足返回时间参数为止(例如,直到特定时间窗出现为止),在满足返回时间参数的时间处,过载确定模块310可以许可执行所请求的操作。在一些示例实施例中,第二令牌是被配置为授权用户访问内部系统的入口令牌,其中内部系统被配置为执行所请求的在线服务的操作。流量控制系统150可以担当到内部系统的网关。

在一些示例实施例中,过载确定模块310还被配置为:基于确定满足返回时间参数,许可执行第二组中的用户(例如,其请求已经被拒绝了的用户)所请求的操作。过载确定模块310可以响应于返回时间参数被满足同时重新引导页面被加载到了用户客户端设备上,自动地使得执行所请求的操作。以这种方式,用户仅需等待,直到返回时间参数满足为止。在一些示例实施例中,响应于确定已满足返回时间参数,过载确定模块310可以使得向用户显示可选择用户接口元素(例如,链接),其中可选择用户接口元素被配置为响应于被用户选择来重新提交请求先前所请求的操作的请求。在一些示例实施例中,向第二组中的用户发出第一令牌和返回时间参数,如前所述,当根据返回时间参数来请求所请求的操作时,可以使用第一令牌和返回时间参数来许可执行所请求的操作。

图8是示出了根据一些示例实施例的流量控制的方法800的流程图。方法800的操作可以由系统或系统的模块执行。方法800的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法800可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作810处,可以从第一客户端设备上的第一用户接收针对在线服务的请求执行操作的第一请求。在操作820处,可以利用与第一请求的第一请求时间相对应的过载条件来检测或以其它方式来确定在线服务的至少一个过载条件。在操作830处,可以基于对过载条件的确定来确定第一用户的第一令牌和第一返回时间参数。可以响应于或者以其它方式基于对过载条件的确定来拒绝执行所请求的操作。在操作840处,可以将第一令牌与第一返回时间参数相关联地存储。在操作850处,可以将第一令牌和第一返回时间参数发送给第一客户端设备。在操作860处,可以从第一用户接收针对在线服务的请求执行操作的第二请求。第二请求可以具有对应时间并且包括第一令牌。在操作870处,可以基于第一令牌来识别第一返回时间参数。在操作880处,可以确定第二请求的对应时间满足第一返回时间参数。在操作890处,可以响应于或者以其它方式基于确定第二请求的对应时间满足第一返回时间参数来执行操作。可以预期的是,方法800的操作可以并入本文中所公开的任意其它特征。

图9是示出了根据一些示例实施例的流量控制的方法900的流程图。方法900的操作可以由系统或系统的模块执行。方法900的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法900可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

图9中的操作810至870可以与图8中的操作810到870相同。在操作980处,可以确定第二请求的对应时间不满足第一返回时间参数。在操作990处,可以响应于或者以其它方式基于确定第二请求的对应时间不满足第一返回时间参数来拒绝执行所请求的操作。可以预期的是,方法900的操作可以并入本文中所公开的任意其它特征。

图10是示出了根据一些示例实施例的确定返回时间参数的方法1000的流程图。方法1000的操作可以由系统或系统的模块执行。方法1000的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法1000可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作1010处,可以估计在线服务在将来时间的负载级别。在操作1020处,可以确定所估计的负载级别满足一个或多个返回时间标准。在操作1030处,可以确定基于所估计的负载级别满足一个或多个返回时间标准来将第一返回时间参数定义为或设置为包括将来时间。可以预期的是,方法1000的操作可以并入本文中所公开的任意其它特征。

图11是示出了根据一些示例实施例的向用户提供返回时间通知的方法1100的流程图。方法1100的操作可以由系统或系统的模块执行。方法1100的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法1100可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作1110处,可以确定当前时间处于第一返回时间参数的预定时间量内。在操作1120处,可以响应于或者以其它方式基于确定当前时间处于第一返回时间参数的预定时间量内来向第一用户发送返回时间通知。返回时间通知可以被配置为指示第一用户再次请求操作。可以预期的是,方法1100的操作可以并入本文中所公开的任意其它特征。

图12是示出了根据一些示例实施例的向用户提供过载通知的方法1200的流程图。方法1200的操作可以由系统或系统的模块执行。方法1200的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法1200可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作1210处,可以基于过载条件从多个过载级别中选择过载级别。在操作1220处,可以基于所选择的过载级别来生成过载通知。过载通知可以包括对过载级别的指示。在操作1230处,可以使得过载通知显示在第一客户端设备上。可以预期的是,方法1200的操作可以并入本文中所公开的任意其它特征。

图13是示出了根据一些示例实施例的流量控制的方法1300的流程图。方法1300的操作可以由系统或系统的模块执行。方法1300的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法1300可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作1310处,可以基于过载条件从多个限制标准中选择限制标准。在操作1320处,可以基于所选择的限制标准来限制执行所请求的在线服务的操作。可以基于所选择的限制标准来拒绝一个或多个用户访问在线服务的操作,同时可以基于所选择的限制标准来允许一个或多个其他用户访问在线服务的操作。可以预期的是,方法1300的操作可以并入本文中所公开的任意其它特征。

图14是示出了根据一些示例实施例的流量控制的又一方法的流程图。方法1400的操作可以由系统或系统的模块执行。方法1400的操作可以通过可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合在内的处理逻辑来执行。在一个示例实施例中,方法1400可以由图1和图3的流量控制系统150来执行,或者由如上所述的流量控制系统150的组件或模块中的一个或多个的任意组合来执行。

在操作1410处,客户端设备上的用户(比如,由在与网站交互时提供输入(例如,点击可选择的用户界面元素)的客户端设备上的用户)参与到流量控制系统150。输入可以包括提交请求访问网站的页面的请求(例如,请求加载网站的项目细节页面或订购页面)。

在操作1420处,流量控制系统150确定是否满足用户对访问页面的请求。如前所述,该确定可以基于确定是否检测到任何过载条件(并且如果检测到了过载条件,确定过载条件有多少和/或过载条件的质量或程度如何)来做出。如果确定满足请求,则在操作1430处,许可用户访问所请求的页面。如果确定不满足请求,则在操作1440处,将用户重新引导到重新引导页面。重新引导页面可以显示过载通知,如前所述,过载通知包括指示过载条件的信息、返回时间参数和指示在线服务的状态的用户接口元素。

在操作1450处,流量控制系统150采用时间分配器功能来限制用户访问所请求的页面,直到达到所确定的时间(例如,返回时间参数)为止。然后,用户可以再次尝试访问页面。在操作1420处,再次确定是否满足用户的请求。流量控制系统150(例如,过载确定模块310)可以例如基于用户的互联网协议(ip)地址来确定用户的标识,并且基于用户的标识来识别用户的对应返回时间参数。在一些示例实施例中,用户标识(例如,用户的ip地址)可以与返回时间参数相关联地存储在数据库340中。以这种方式,可以使用用户标识(比如,用户的ip地址)来确定适当的返回时间参数,以作为使用发出的令牌的备选方案,用来决定在用户的重复请求期间是否允许用户访问。

在一些示例实施例中,流量控制系统150(例如,过载确定模块310)向其请求被拒绝并被重新引导到重新引导页面的用户发出cookie。所发出的cookie可以存储在用户的客户端设备上。流量控制系统150可以使用用户的客户端设备上的脚本处理器来限制执行所请求的操作(例如,进入或访问特定页面)。用户的客户端设备上的cookie可以存储用户进入重新引导页面的时间(例如,重新引导页面被加载在客户端设备上的时间)。然后,流量控制系统150可以将用户尝试重新提交请求的当前时间(例如,当用户尝试再次进入或访问特定页面时)和cookie中所存储的时间进行比较。使用该比较,流量控制系统150可以确定用户的请求是否依据对应的返回时间参数,并且从而确定是拒绝用户的重复的请求还是授权该重复的请求。

可以预期的是,方法1400的操作可以并入本文中所公开的任意其它特征。

可以理解的是,本文公开的任意实施例的任意特征可以与本文公开的任意其他实施例的任意其他特征组合。因此,这些任何这样的混合实施例在本公开的范围内。

图15是示出了根据一些示例实施例的移动设备1500的框图。移动设备1500可以包括处理器1502。处理器1502可以是适用于移动设备1500的各种不同类型的商业可获得的处理器中的任意一个(例如,xscale架构微处理器、无互锁管线级(mips)架构处理器的微处理器、或者另一种类型的处理器)。处理器1502通常可访问存储器1504(例如随机存取存储器(ram)、闪存或其它类型的存储器)。存储器1504可以适用于存储操作系统(os)1506以及应用程序1508(比如,可以向用户提供lbs的移动位置使能应用)。处理器1502可以直接地或者经由合适的中间硬件耦接到显示器1510,并且连接到一个或多个输入/输出(i/o)设备1512(例如键盘、触摸板传感器、麦克风等)。类似地,在一些示例实施例中,处理器1502可以耦接到与天线1516接口连接的收发机1514。根据移动设备1500的性质,收发机1514可以被配置为经由天线1516发送和接收蜂窝网络信号、无线数据信号或其它类型的信号。此外,在一些配置中,gps接收机1518还可以利用天线1516来接收gps信号。

某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,机器可读介质上所体现的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以按照某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)可由软件(例如应用或应用部分)配置为操作以执行本文描述的特定操作的硬件模块。

在一些实施例中,硬件模块可以按照机械方式、电子方式或其任意适当组合来实现。例如,硬件模块可以包括永久地被配置为执行特定操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,比如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件模块还可以包括由软件暂时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其它可编程处理器执行的软件。一旦由这样的软件配置,硬件模块就变成特定的机器(或机器的特定组件),其专门定制用于执行所配置的功能,而不再是通用处理器。应理解:以机械方式、以专用和永久配置的电路或以暂时配置的电路(例如由软件配置)实现硬件模块的决定可出于成本和时间的考虑。

因此,短语“硬件模块”应理解为涵盖有形实体,是在物理上构造、永久配置(例如硬连线的)或暂时配置(例如编程)为以某种方式操作或执行本文描述的某些操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑暂时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,在硬件模块包括被软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件将特定的一个或多个处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。

硬件模块可以向其它硬件模块提供信息并从其它硬件模块接收信息。因此,所描述的硬件模块可以被看作通信地耦接。在同时存在多个硬件模块的情况下,可以通过两个或更多个硬件模块之间的信号发送(例如通过适当的电路和总线)实现通信。在多个硬件模块在不同时间被配置或实例化的实施例中,可以例如通过存储并取回多个硬件模块访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与该硬件模块通信耦接的存储设备中。另一硬件模块接着可以稍后访问存储设备,以取回并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)进行操作。

本文中所述的示例方法的各种操作可以至少部分地由(例如通过软件)暂时配置或永久配置为执行相关操作的一个或多个处理器执行。无论暂时还是永久配置,这样的处理器可以构成操作以执行本文所述一个或多个操作或功能的处理器实现的模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。

类似地,本文描述的方法可以利用特定处理器或作为硬件的示例的处理器来至少部分地由处理器实现。例如,方法的至少一些操作可以由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可以操作以支持在“云计算”环境中或作为“软件即服务”(saas)执行有关操作。例如,操作中的至少一些可以由计算机(作为包括处理器的机器的示例)组执行,其中这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(api))来访问。

某些操作的执行可以分布在处理器中,并不只驻留在单个机器中,而是部署在多个机器中。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公环境或服务器群中)。在其它示例实施例中,处理器或处理器实现的模块可以分布在多个地理位置。

在一些实施例中,结合图1至图14描述的模块、方法、应用等在机器和关联的软件架构的上下文中实现。以下部分描述了适用于与所公开的实施例一起使用的代表性软件架构和机器(例如,硬件)架构。

软件架构与硬件架构一起使用,以创建针对特定用途定制的设备和机器。例如,与特定软件架构相耦接的特定硬件架构将创建移动设备,诸如移动电话、平板设备等。稍微不同的硬件和软件架构可以产生用于“物联网”的智能设备。而另一组合产生了在云计算架构中使用的服务器计算机。本文并没有介绍这样的软件架构和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在不同于本文所包含的公开的背景下实现本公开的特征。

图16是示出了根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)中读取指令并执行本文所讨论的方法中的任何一个或多个的机器1600的组件的框图。具体地,图16示出了计算机系统的示例形式的机器1600的图示,在机器1600中可以执行用于使机器1600执行本文讨论的方法中的任何一种或多种的指令1616(例如,软件、程序、应用、小应用程序、app或其它可执行代码)。例如,指令可以使机器执行图11至图14的流程图。附加地或备选地,指令可以实现图4的运行中断检测模块410、列表标识模块420和管理动作模块430等。指令将通用的未编程的机器转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器。在备选实施例中,机器1600作为独立设备操作或可以耦接(例如,联网)到其它机器。在联网部署中,机器1600可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1600可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能家电)、其它智能设备、web电器、网络路由器、网络交换机、网络桥接器、或能够顺序地或以其它方式执行指定待由机器1600采取的动作的指令1616的任意机器。此外,尽管仅示出了单个机器1600,但是术语“机器”也应被认为包括单独地或联合地执行指令1616以执行本文讨论的方法中的任何一个或多个的机器1600的集合。

机器1600可以包括可被配置为诸如经由总线1602彼此通信的处理器1610、存储器1630和i/o组件1650。在示例实施例中,处理器1610(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一处理器或它们的任何合适的组合)可以包括例如可以执行指令1616的处理器1612和处理器1614。术语“处理器”旨在包括可以包括可以同时执行指令的两个或更多个独立处理器(有时也称为“核”)的多核处理器。尽管图16示出了多个处理器,但是机器1600可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理)、具有单个核的多个处理器、具有多个核的多个处理器或其任意组合。

存储器/存储设备1630可以包括存储器1632(比如,主存储器或其它存储储存设备)、以及存储单元1636,储存器1632和存储单元1636两者例如经由总线1602均可访问处理器1610。存储单元1636和存储器1632存储体现本文所述的方法或功能中的任何一种或多种的指令1616。在由机器1600执行指令1616期间,指令1616还可以完全地或部分地驻留在存储器1632内、存储单元1636内、处理器1610中的至少一个内(例如,处理器的高速缓存存储器内)、或其任何合适的组合内。因此,存储器1632、存储单元1636和处理器1610的存储器是机器可读介质的示例。

如本文所使用的,“机器可读介质”是指能够暂时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令1616的单个介质或多个介质(例如集中式或分布式数据库、或关联的高速缓存和服务器)。术语“机器可读介质”还应被认为包括能够存储或执行由机器(例如机器1600)执行的指令(例如,指令1616)的任何介质或多个介质的组合,使得指令在被机器1600的一个或多个处理器(例如,处理器1610)执行时使机器1600执行本文所描述的方法中的任何一个或多个。因此,“机器可读介质”指单个存储装置或设备、以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。

i/0组件1650可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种组件。包括在特定机器中的特定i/o组件1650将取决于机器的类型。例如,诸如移动电话之类的便携式机器可能会包括触摸输入设备或其它这样的输入机构,而无头服务器机器可能不包括这样的触摸输入设备。应当理解,i/o组件1650可以包括图16中未示出的许多其它组件。可以根据功能将i/o组件1650分组,以仅用于简化以下讨论,并且分组不以任何方式进行限制。在各种示例实施例中,i/o组件1650可以包括输出组件1652和输入组件1654。输出组件1652可以包括可视组件(例如显示器,比如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如,扬声器)、触觉组件(例如,振动电机、阻抗机构)、其它信号发生器等。输入组件1654可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它定点仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触觉输入组件)、音频输入组件(例如,麦克风)等。

在另一些示例实施例中,i/o组件1650可以包括位于其它组件的广泛阵列中的生物测定组件1656、运动组件1658、环境组件1660或位置组件1662。例如,生物测定组件1656可以包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1658可以包括加速度传感器组件(例如,加速度计)、吸引力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1660可以包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为安全而检测有害气体浓度或测量大气中的污染物的气体检测传感器)、或可以提供与周围物理环境相对应的指示、测量或信号的其它组件。位置组件1662可以包括位置传感器组件(例如,全球定位系统(gps)接收机组件)、高度传感器组件(例如,高度计或检测气压(根据气压可以导出高度)的气压计)、取向传感器组件(例如,磁力计)等。

可以使用各种各样的技术来实现通信。i/o组件1650可以包括通信组件1664,通信组件1664可操作以分别经由耦接1682和耦接1672来将机器1600耦接到网络1680或设备1670。例如,通信组件1664可以包括网络接口组件或用以与网络1680接口连接的其它合适设备。在另一些示例中,通信组件1664可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如低能耗)、组件、以及用以经由其它形式提供通信的其它通信组件。设备1670可以是另一机器或各种外围设备中的任一种(例如,经由通用串行总线(usb)耦接的外围设备)。

此外,通信组件1664可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件1664可以包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(如通用产品代码(upc)条形码)、多维条形码(如快速响应(qr)码)、aztec码、数据矩阵(datamatrix)、数据字(dataglyph)、maxicode、pdf417、超级码、统一商业码缩减空间符号(uccrss)-2d条形码、以及其它光学代码)的光学传感器)、或声学检测组件(例如,识别带标签的音频信号的麦克风)。另外,可以经由通信组件1664导出各种信息,诸如经由互联网协议(ip)地理定位的位置、经由信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等等。

在各种示例实施例中,网络1680的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网,互联网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络1680或网络1680的一部分可以包括无线或蜂窝网络,并且耦接1682可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其它类型的蜂窝或无线耦接。在该示例中,耦接1682可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、gsm演进增强数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其它标准、其它远程协议或其它数据传输技术。

指令1616可以经由网络接口设备(例如,通信组件1664中所包括的网络接口组件)使用传输介质并且利用多个公知的传输协议(例如,超文本传输协议(http))通过网络1680发送或接收。类似地,可以使用传输介质经由耦接1672(例如,对等耦接)向设备1670发送或从设备1670接收指令1616。术语“传输介质”应被认为包括能够存储、编码或携带用于被机器1600执行的指令1616的任意无形介质,并且包括用于有助于该软件的通信的数字或模拟通信信号或其它无形介质。传输介质是机器可读介质的一个实施例。

下面的编号示例是实施例。

1.一种系统,包括:

一种处理器实现的过载确定模块,被配置为:

从第一客户端设备上的第一用户接收针对在线服务的请求执行操作的第一请求;

检测所述在线服务的至少一个过载条件,所述至少一个过载条件与所述第一请求的第一请求时间相对应;

基于对所述过载条件的确定来确定所述第一用户的第一令牌和第一返回时间参数;

将所述第一令牌与所述第一返回时间参数相关联地存储;

从所述第一用户接收针对所述在线服务的执行所述操作的第二请求,所述第二请求具有对应时间并且包括所述第一令牌;

基于所述第一令牌来识别所述第一返回时间参数;以及

确定所述第二请求的所述对应时间满足所述第一返回时间参数;

处理器实现的通知模块,被配置为向所述第一客户端设备发送所述第一令牌和所述第一返回时间参数;以及

处理器实现的服务模块,被配置为响应于确定所述第二请求的所述对应时间满足所述第一返回时间参数来执行所述操作。

2.根据示例1的系统,其中,所述操作包括使得所述第一用户能够访问所述在线服务的页面。

3.根据示例1或示例2的系统,其中,所述至少一个过载条件包括以下中的至少一个:所述在线服务的流量级别满足一个或多个预定流量级别标准、所述在线服务的网络连接速度满足一个或多个预定网络连接速度标准、以及所述在线服务的服务器速度满足一个或多个预定服务器速度标准。

4.根据示例1至示例3中的任一项的系统,其中,所述第一返回时间参数包括指定的时间或指定的时间窗。

5.根据示例1至4中任一项的系统,其中,过载确定模块还被配置为:

估计所述在线服务在将来时间的负载级别,所述将来时间在所述第一请求时间之后;

确定所估计的负载级别满足一个或多个返回时间标准;以及

基于确定所估计的负载级别满足一个或多个返回时间标准,将所述第一返回时间参数定义为包括所述将来时间。

6.根据示例1至5中任一项的系统,其中,所述通知模块还被配置为向所述第一客户端设备发送cookie,所述cookie包括所述第一令牌。

7.根据示例1至6中任一项的系统,其中,所述通知模块还被配置为:

确定当前时间处于所述第一返回时间参数的预定时间量内;以及

基于确定当前时间处于所述第一返回时间参数的预定时间量内来向所述第一用户发送返回时间通知,所述返回时间通知被配置为指示所述第一用户再次请求所述操作。

8.根据示例1至7中任一项的系统,其中:

所述过载确定模块还被配置为基于所述至少一个过载条件来从多个过载级别中选择过载级别;以及

所述通知模块还被配置为:基于所选择的过载级别来生成过载通知,且使所述过载通知显示在所述第一客户端设备上,其中,所述过载通知包括对过载级别的指示。

9.根据示例1至8中任一项的系统,其中:

所述过载确定模块还被配置为基于所述至少一个过载条件来从多个限制标准中选择限制标准;以及

所述服务模块还被配置为:基于所选择的限制标准来拒绝所述第一用户访问所述在线服务的所述操作,且基于所选择的限制标准来允许第二用户访问所述在线服务的所述操作。

10.一种计算机实现的方法,包括:

从第一客户端设备上的第一用户接收针对在线服务的请求执行操作的第一请求;

确定所述在线服务的至少一个过载条件,所述至少一个过载条件与所述第一请求的第一请求时间相对应;

基于对所述过载条件的确定,通过具有存储器和至少一个处理器的机器来确定所述第一用户的第一令牌和第一返回时间参数;

将所述第一令牌与所述第一返回时间参数相关联地存储;

将所述第一令牌和所述第一返回时间参数发送给所述第一客户端设备;

从所述第一用户接收针对所述在线服务的请求执行所述操作的第二请求,所述第二请求具有对应时间并且包括所述第一令牌;

基于第一令牌来识别第一返回时间参数;

确定所述第二请求的所述对应时间满足所述第一返回时间参数;以及

响应于确定所述第二请求的所述对应时间满足所述第一返回时间参数来执行所述操作。

11.根据示例10的方法,其中,所述操作包括使得所述第一用户能够访问所述在线服务的页面。

12.根据示例10或示例11的方法,其中,所述至少一个过载条件包括以下中的至少一个:所述在线服务的流量级别满足一个或多个预定流量级别标准、所述在线服务的网络连接速度满足一个或多个预定网络连接速度标准、以及所述在线服务的服务器速度满足一个或多个预定服务器速度标准。

13.根据示例10至示例12中的任一个的方法,其中,所述第一返回时间参数包括指定的时间或指定的时间窗。

14.根据示例10至示例13中任一项的方法,其中,确定所述第一返回时间参数包括:

估计所述在线服务在将来时间的负载级别,所述将来时间在所述第一请求时间之后;

确定所估计的负载级别满足一个或多个返回时间标准;以及

基于确定所估计的负载级别满足一个或多个返回时间标准,将所述第一返回时间参数定义为包括所述将来时间。

15.根据示例10至示例14中任一项的方法,其中,向所述第一客户端设备发送所述第一令牌包括:向所述第一客户端设备发送cookie,所述cookie包括所述第一令牌。

16.根据示例10至示例15中任一项的方法,还包括:

确定当前时间处于所述第一返回时间参数的预定时间量内;以及

基于确定当前时间处于所述第一返回时间参数的预定时间量内来向所述第一用户发送返回时间通知,所述返回时间通知被配置为指示所述第一用户再次请求所述操作。

17.根据示例10至示例16中任一项的方法,还包括:

基于所述至少一个过载条件来从多个过载级别中选择过载级别;

基于所选择的过载级别来生成过载通知,所述过载通知包括对过载级别的指示;以及

使得所述过载通知显示在所述第一客户端设备上。

18.根据示例10至示例17中任一项的方法,还包括:

基于所述至少一个过载条件来从多个限制标准中选择限制标准;

基于所选择的限制标准来拒绝所述第一用户访问所述在线服务的所述操作;以及

基于所选择的限制标准来允许第二用户访问所述在线服务的所述操作。

19.一种存储指令集的机器可读存储介质,所述指令集在由至少一个处理器执行时,使所述至少一个处理器执行包括以下各项的操作:

从第一客户端设备上的第一用户接收针对在线服务的请求执行操作的第一请求;

确定所述在线服务的至少一个过载条件,所述至少一个过载条件与所述第一请求的第一请求时间相对应;

基于对所述过载条件的确定,通过具有存储器和至少一个处理器的机器来确定所述第一用户的第一令牌和第一返回时间参数;

将所述第一令牌与所述第一返回时间参数相关联地存储;

将所述第一令牌和所述第一返回时间参数发送给所述第一客户端设备;

从所述第一用户接收针对所述在线服务的请求执行所述操作的第二请求,所述第二请求具有对应时间并且包括所述第一令牌;

基于所述第一令牌来识别所述第一返回时间参数;

确定所述第二请求的所述对应时间满足所述第一返回时间参数;以及

基于确定所述第二请求的所述对应时间满足所述第一返回时间参数来执行所述操作。

20.根据示例19的机器可读介质,其中,所述操作还包括:

估计所述在线服务在将来时间的负载级别,所述将来时间在所述第一请求时间之后;

确定所估计的负载级别满足一个或多个返回时间标准;以及

基于确定所估计的负载级别满足一个或多个返回时间标准,将所述第一返回时间参数定义为包括所述将来时间。

21.一种携带指令集的机器可读介质,当所述指令被至少一个处理器执行时,使所述至少一个处理器执行根据示例10至示例18中任一项所述的方法。

在整个说明书中,复数实例可以实现如单个实例所述的组件、操作或结构。虽然一个或多个方法的各个操作被示出和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其它变型、修改、添加和改进落入本主题的范围内。

尽管已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”提及,以仅仅为了方便,并且不旨在自动地将本申请的范围限制为任何单个公开或发明构思(如果事实上公开了一个以上)。

本文充分详细地描述了示出的实施例以使得本领域技术人员能够实现公开的教导。可以利用并根据这些实施例得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。

如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界在某种程度上是任何的,并且在具体说明性配置的上下文中示出了特定操作。设想了功能的其他分配,并且这些分配可以落入本公开的各种实施例的范围内。一般来说,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图应当被看做说明性的而不是限制意义的。

尽管已经参考具体示例实施例描述了实施例,但显而易见的是,在不脱离本公开的更宽范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图应被认为是说明性的而不是限制性的。形成本公开的一部分的附图以说明的方式而非限制性地示出了可以实践本主题的具体实施例。充分详细地描述了所示出的实施例,以使得本领域技术人员能够实践本文中所公开的教导。可以根据以上教导导出并利用其它实施例,使得可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”部分不应当看做是具有限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。

本发明主题的这些实施例在本文中可以单独地和/或共同地由术语“发明”来引用,仅仅是为了方便,而不意图将本申请的范围自动地限制到事实上已经得到公开的多于一个的发明或发明概念中的任何一个。因此,尽管本文示出并描述了特定实施例,但是应当理解,可以用所计算的用于实现相同目的的任何布置来代替所示的特定实施例。本公开意在覆盖各种实施例的任意和所有的适应性修改或变化。通过研究上述内容,上述实施例的组合以及本文中没有具体描述的其它实施例对于本领域技术人员来说将是明显的。

提供本公开的摘要以允许读者快速确定本技术公开的性质。应理解,其并不用于解释或限制权利要求的范围或含义。此外,在上文的具体实施方式中,可以看出,出于简化本公开的目的,将各种特征一起组合为单个实施例。这种公开方式不应被解释为反映了要求保护的实施例需要比每一个权利要求中明确记载的特征更多特征的意图。相反地,如以下权利要求所反映的那样,发明主题具有比所公开的单一实施例的所有特征更少的特征。因此,下述权利要求被并入具体实施方式中,每个权利要求作为单独的实施例独立存在。

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