用于处理在应用程序接口处接收的请求的系统和方法

文档序号:7915019阅读:314来源:国知局
专利名称:用于处理在应用程序接口处接收的请求的系统和方法
技术领域
本公开涉及数据通信的技术领域。更具体而言,描述了用于处理在应用程序接口处接收的请求的系统和方法。
背景技术
系统可包括被利用来接收来自客户端机器的请求的应用编程接口。该请求可包括提示系统传输数据到客户端机器的作业(job)。还有另一请求可包括提示系统从客户端机器取回数据的作业。在一些场合中,数据的量可能如此巨大以至于完成作业的时间可能是长得惊人的。


在附图中以示例而非限制方式图示了实施例,其中图I是图示根据实施例的用于处理在应用程序接口处接收的请求的系统的框图;图2A是图示根据实施例的作业的框图;图2B是图示根据实施例的处理节点的框图;图3A是图示根据实施例的本地资源信息的框图;图3B是图示根据实施例的远程资源信息的框图;图4是图示根据实施例的最大利用率(utilization)信息的框图;图5是图示根据实施例的用于处理在应用程序接口处接收的请求的系统的框图;图6是图示根据实施例的市场应用和支付应用的框图;图7是图示根据实施例的表格的框图;图8是图示根据实施例的用于处理在应用程序接口处接收的请求的方法的流程图;图9A是图示根据实施例的用于调度不同优先级的子作业(sub-job)以便并行处理的方法的流程图;图9B是图示根据实施例的用于调度相同优先级的子作业以便并行处理的方法的流程图;图10A是图示根据实施例的用于执行任务的方法的流程图;图10B是图示根据实施例的用于执行任务的方法的流程图;图11-19是图示根据实施例的各种界面的示图;并且图20是示出根据示例性实施例的采取计算机系统的示例性形式的机器的图示。
具体实施例方式在以下描述中,出于说明目的,记载了许多具体细节以帮助透彻理解一些示例性实施例。然而,对于本领域的普通技术人员来说很明显的,没有这些具体细节也可以实现本公开的实施例。如以下进一步描述的,根据这里描述和要求保护的所公开的主题的各种示例性实施例,提供了用于处理在应用程序接口处接收的请求的系统和方法。以下结合这里提供的附图来描述各种实施例。图I是图示根据实施例的用于处理在应用程序接口处接收的请求的系统3的框图。系统3被示为包括客户端机器5,该客户端机器5包括程序化客户端11,程序化客户端11生成请求并将该请求通过网络7传输到基于网络的平台9。基于网络的平台9进而可包括应用程序接口服务器13,该应用程序接口服务器13包括应用程序接口模块15,该应用程序接口模块15包括接收该请求的应用程序接口 17(API)。例如,接收到请求的API 17可包 括由库和/或操作系统提供的被利用来接收和响应请求的一组例程、数据、数据结构、对象类和/或协议。该请求可指定作业19,该作业19要求从客户端机器5取回数据。在另一示例中,作业19可要求从基于网络的平台9传输数据到客户端机器5。另外,在一个实施例中,该数据可被划分成可并行处理的个体部分。宽泛地说,应用程序接口模块15可通过将作业19存储在分散聚集(scattergather)逻辑数据库21中以便分散聚集对等网络23并行处理来异步处理该请求。例如,分散聚集对等网络23可通过基于作业19生成子作业20来分散作业19,调度子作业20以便基于本地和远程资源的可用性来处理,独立地并行处理子作业20到完成,从每个子作业20聚集作业结果,并且将作业19的结果传输到客户端机器5。从而,请求可包括针对大数据集合的作业19。这种作业19可被分散成子作业20以便最优地利用本地和远程资源的对等网络23并行处理,然后才异步响应该请求。应用程序接口服务器13还可包括监视模块18,用于收集、存储、访问和报告作业19和子作业20统计资料。监视模块18可被以用户界面和报告的形式传输命令和接收统计和跟踪信息的监视机器22利用。分散聚集逻辑数据库分散聚集逻辑数据库21包括作业表格35、作业队列25、作业重试队列29、子作业表格31、子作业队列27、子作业重试队列53、本地资源信息55、远程资源信息33以及统计信息34。作业作业表格35可用于最初存储在请求中接收到的作业19。另外,响应于接收到请求,可为作业19生成作业事件37并将其存储在作业队列25上。作业事件37可使得分散聚集对等网络23处理作业19。例如,作业事件37可被分散聚集对等网络23取回并且相应的作业19可被处理达预定的一段时间,此后作业事件37在带有相关联的超时的情况下被存储在作业重试队列29上。响应于该超时的期满,该作业19可再次被分散聚集对等网络23取回以便进一步处理。从而,作业事件37可以反复地被从作业重试队列29取回、处理并被存储回作业重试队列29上,直到作业19完成为止。分散聚集对等网络23可处理作业19以生成被存储在子作业表格31中的子作业20。例如,分散聚集对等网络23可处理特定作业19以生成被存储在子作业表格31中的20个子作业20。分散聚集对等网络23还可响应于识别出可用于相应子作业20的远程资源而调度子作业队列27上的子作业事件51。子作业子作业20可被分散聚集对等网络23并行处理。子作业20可分别对应于存储在子作业队列27上的子作业事件51。子作业事件51可被从子作业队列27取回,并且相应的子作业20可最初被分散聚集对等网络23处理,直到完成为止,或者直到子作业20被中断为止,这使得子作业事件5在带有相关联的超时的情况下被存储在子作业重试队列53上。响应于该超时的期满,子作业事件51可被分散聚集对等网络23取回以便进一步处理。从而,应用程序接口模块15可反复地被从子作业重试队列53取回、处理并被存储回子作业重试队列53上,直到相应的子作业20完成为止。每个子作业20可包括指定要执行的操作的一个或多个任务39,如下文进一步所述。
分散聚集对等网络分散聚集对等网络23可包括分别利用分散聚集逻辑数据库21来处理作业19和子作业20的多个处理节点26。从而,分散聚集对等网络23的处理力和存储容量可通过添加处理节点26来扩展或通过去除处理节点26来减小。(一个或多个)处理节点26如上所述可最初通过将作业19分散成子作业20来处理作业19。例如,处理节点26可基于作业19生成子作业20,将子作业20存储在子作业表格31中,并且将子作业事件51存储在子作业队列27中。子作业可包括任务39。通常,任务39包括可被执行来处理划分给子作业20的数据的部分的指令。接下来,处理节点26可识别一个或多个子作业20是否被调度来执行。处理节点26可基于子作业20分别利用的本地和远程资源41的可用性来调度一个或多个子作业20来执行。例如,处理节点26可响应于识别出可用的本地和远程资源41而将子作业事件51移动到子作业重试队列53。移动到子作业重试队列53上使得相应的子作业20对分散聚集对等网络23中的其他处理节点26可见。从而,分散聚集对等网络23中的处理节点26可随后识别子作业重试队列53上的子作业事件51并且处理子作业20。相反,因为本地和远程资源41不可用,则不可调度子作业20来执行。在这种情况下,处理节点26可等待,直到有充分的资源可用来调度子作业20来执行为止。在一个实施例中,处理节点26可利用本地资源信息55来识别是否有本地资源可用来处理子作业20。例如,本地资源可包括与处理节点26的池相关联的存储器和处理器。在一个实施例中,用于处理节点26的池的本地资源可被正规化成单个值,如下文进一步所述。从而,特定的处理节点26在处理子作业20之前可识别出在其池中是否有充分的本地资源可用。在一个实施例中,处理节点26可利用远程资源信息33来识别是否有远程资源41可用来处理子作业20。在一个实施例中,远程资源41可包括数据库服务器资源池43和API服务器资源池45。数据库服务器资源池43可包括提供对数据库47的访问的多个数据库服务器。API服务器资源池45可包括提供对客户端机器5和其他机器的网络访问的多个API服务器。其他组件统计信息34可用于存储统计数据、原始数据、跟踪数据和其他类型的数据以协助对作业19和子作业20的管理。竞争进程49可就远程资源41的分配与分散聚集对等网络23竞争。在一个实施例中,基于竞争进程49对远程资源41的预期或实际利用率,分散聚集对等网络23可被扼制住以限制对远程资源41的使用。例如,竞争进程49在一段时间期间可表现出对远程资源41的最大(例如峰值)和最小利用率。在竞争进程49对远程资源41的峰值利用率期间,分散聚集对等网络23可被扼制住以限制对远程资源41的使用。相反,在竞争进程49对远程资源41的低或最小利用率期间,分散聚集对等网络23可不被扼制住以限制对远程资源41的使用。在一个实施例中,分散聚集对等网络23中的处理节点26可利用重试机制来访问远程资源41。从而,处理节点26可区分可恢复的差错和不可恢复的差错。在识别出可恢复的差错的情况下,处理节点26可重试访问远程资源41 (例如数据库、应用编程接口)。在识别出不可恢复的差错的情况下,处理节点26可将作业注册为失败。
本领域普通技术人员将会明白,对作业19的处理在不同的时间可跨越多个处理节点26。为了协助诊断故障和跟踪多个处理节点26的操作,可利用监视模块18来集中收集和显示这种信息并进一步生成在监视机器22处可查看的包括这种信息的用户界面。用户界面可包括可选择的用户界面元素,这些可选择的用户界面元素可被利用来从作业19向下钻取到子作业20、从子作业20向下钻取到任务39、从任务39向下钻取到对任务39工作了的机器(例如处理节点26)/线程以及从对任务39工作了的处理节点26向下钻取可包括记录任务39的执行的日志事件的日志。图2A是图示根据实施例的作业19的框图。作业19包括作业模块标识符60、作业类型61和作业信息63。作业模块标识符60可用来标识作业模块,如后所述。作业类型61可用来标识作业19的类型。例如,基于网络的平台9可具有对于同一作业模块标识符60处理不同类型的作业19的能力。作业信息63可用来标识作业19的作者、要执行的功能、作业19的优先级、作业19和相关联的子作业20所利用的本地和远程资源的类型和量、数据的网络地址、数据的类型、数据的量以及作业19所利用的其他信息。图2B是图示根据实施例的处理节点26的框图。处理节点26可包括本地资源71和分布式应用程序接口应用73(例如模块)。本地资源71被示为包括三个处理器75。其他实施例可包括更多的或更少的处理器75。本地资源71还被示为包括特定量的存储器77,该量可被增大或减小。其他实施例可包括更多或更少的存储器。分布式应用程序接口应用73包括分散聚集框架79 (例如模块)和作业模块83。每个作业模块83对应于应用程序接口模块15(未示出)中的应用程序接口 17和作业19中的作业模块标识符60。从而,分散聚集框架79中的处理节点26可被配备为通过将作业模块83添加到分布式应用程序接口应用73并且通过将应用程序接口 17添加到应用程序接口模块15(未示出)来处理新作业19。分散聚集框架79可利用作业19中的作业标识符60来调用适当的作业模块83来处理作业19。从而,分散聚集框架79可执行的功能对于所有作业19保持恒定。与之不同,适当的作业模块83可执行的功能是依作业19和相应的应用程序接口 17而定的。分散聚集框架79可包括控制器模块85。控制器模块85可包括采取作业执行器87、调度器89和子作业执行器91的形式的组件。控制器模块85及其组件可调用作业模块83的组件来处理作业19。作业模块83包括采取作业预处理器93、作业解析器95、作业后期处理器97和任务处理器99形式的组件。控制器模块85可协调与在处理节点28中执行的其他模块的交互并且识别出处理节点26上的本地资源是否可用来处理作业19。例如,控制器模块85可识别出在处理节点26上是否有足够数目的处理器75和存储器77可用。作业执行器87可基于作业19中的作业模块标识符60来调用适当的作业预处理器93。作业预处理器93可执行预处理活动以使作业19为进一步处理作准备。例如,作业预处理器93可计算作业19的优先级。在一个实施例中,作业19的优先级可以是高、中或低。另外,作业预处理器93可从作业19中提取用户的名称并将用户的名称映射到用户的用户简档信息。在另一实施例中,作业预处理器93可从作业19中提取用户的名称并将用户的名称映射到被用户许诺拍卖或销售的物品。在另一实施例中,物品或用户还可被映射到与物品相关联的交易、与物品相关联的反馈和其他类型的信息。在一些实施例中,作业预处理器93可通过对数据库服务器作出调用来将一类信息映射到另一类信息。作业执行器87还可基于作业19中的作业模块标识符60来调用适当的作业解析器95。作业解析器95可 将作业19分解成包括任务39的子作业20。在一个实施例中,作业解析器95可根据相等量的工作来将作业19分解成子作业20。例如,可基于相等量的物品、交易、数据量等等来识别子作业20。最后,作业执行器87可调用作业后期处理器97以聚集来自子作业20的结果。调度器89可利用作业优先级和远程资源信息33 (未示出)来识别是否有远程资源41 (未示出)可用于子作业20。例如,调度器89可基于作业19的优先级(例如高、中、低)、用于执行子作业20的远程资源41和对远程资源41可用的识别,将关于子作业20的子作业事件51移动到子作业队列27。此外,调度器89可响应于识别出作业19的处理时间已期满而将作业19移动到作业重试队列29。在一个实施例中,调度器89按照公平性的概念操作。例如,调度器89可通过向作业19分配远程资源以使得具有相同大小(例如要处理的数据量)和相同优先级的两个作业如果同时开始则将同时结束,来确保公开性。子作业执行器91可识别子作业队列27上的子作业20并且基于作业模块标识符60调用适当的任务处理器99来执行子作业20中的任务39。图3A是图示根据实施例的本地资源信息55的框图。本地资源信息55可包括分别对应于处理节点26的不同池的多个条目。本地资源信息55可包括当前利用率信息110和最大利用率信息112。当前利用率信息110可用于针对相关联的处理节点26的池存储子作业20对本地资源(例如存储器、处理器等等)的当前利用率。例如,当前利用率110可被存储为正规化的容量,该容量可随着将子作业事件51移动到子作业重试队列53而被递增并且响应于子作业20的完成而被递减。特定子作业20所利用的容量的量(例如被递增或递减的值)可基于如相应作业19中的作业信息63所标识的本地资源要求。图3B是图示根据实施例的远程资源信息33的框图。远程资源信息33可包括分别对应于不同的远程资源41的多个条目。例如,可为数据库服务器资源池43维护远程资源信息33。另外,例如,可为API服务器资源池45维护远程资源信息33。远程资源信息33可包括当前利用率信息111和最大利用率信息113。当前利用率信息111可用于存储子作业20对远程资源(例如存储器、处理器等等)的当前利用率。例如,当前利用率可被存储为正规化的容量,该容量可随着将子作业事件51移动到子作业重试队列53而被递增并且响应于子作业20的完成而被递减。特定子作业20所利用的容量的量(例如被递增或递减的值)可基于如相应作业19中的作业信息63所标识的远程资源要求。图4是图示根据实施例的最大利用率信息113的框图。最大利用率信息113被示为包括时间信息115和最大利用率117。时间信息115可采取一天的钟点(例如军用时间)的形式。根据一个实施例,最大利用率117可包括表示在相应时间可由分散聚集对等网络23利用的远程资源41的最大量的正规化值。例如,在上午八点分散聚集对等网络23可利用的远程资源41的最大正规化值被示为5。此最大利用率是最低的,因为它对应于竞争进程49对远程资源41的峰值使用。在一个实施例中,可基于竞争进程49对远程资源41的历史使用来生成分散聚集对等网络23可利用的远程资源41的最大正规化值。在另一实施例中,可基于测量到的竞争进程49对远程资源41的使用来实时生成分散聚集对等网络23可利用的远程资源41的最大正规化值。从而,分散聚集对等网络23可被扼制住以不超过根据历史的或测量到的竞争进程49对远程资源41的最小和最大使用而确定的远程资源41的最大正规化值。
图5是示出一个示例性实施例可被部署于其内的联网系统201的网络图。系统201对应于图I的系统3,从而除非另有指出,否则相同或相似的标号被用于指示相同或相似的特征。基于网络的市场203经由网络7 (例如因特网或广域网(WAN))向一个或多个客户端提供服务器侧功能。图5例如图示了在客户端机器207上执行的web客户端205 (例如浏览器,比如由华盛顿州雷德蒙德的微软公司开发的Internet Explorer浏览器)和在客户端机器5上执行的程序化客户端11。应用程序接口(API)服务器13和web服务器209耦合到一个或多个应用服务器211并且分别向其提供程序化和web接口。应用服务器211容宿一个或多个市场应用213和支付应用215。应用服务器211进而被示为耦合到协助对一个或多个数据库47的访问的一个或多个数据库服务器217。应用服务器211还可包括分散聚集对等网络23,如前所述。市场应用213可向访问基于网络的市场203的用户提供数个市场功能和服务。支付应用215可类似地向用户提供数个支付服务和功能。支付应用215可允许用户在账户中积累价值并随后用积累的价值来兑换经由市场应用213提供的产品(例如商品或服务)。可以按商业货币例如美元来积累价值,或者可按专有货币例如“积分”来积累价值。虽然市场应用213和支付应用215在图5中被示为都形成基于网络的市场203的一部分,但将会明白,在替换实施例中,支付应用215可形成与基于网络的市场203分离并且不同的支付服务的一部分。另外,虽然图5中所示的联网系统201采用客户端-服务器体系结构,但本公开的实施例当然不限于这种体系结构,而是可同等地适用于例如分布式或者说对等体系结构系统。各种市场应用213和支付应用215也可被实现为不一定具有联网能力的独立软件程序。web客户端205和移动程序化客户端11经由web服务器209所支持的web接口访问各种市场应用213和支付应用215。类似地,程序化客户端11经由API服务器13所提供的程序化接口来访问市场应用213和支付应用215所提供的各种服务和功能。程序化客户端11例如可以是卖家应用(例如由加州圣何塞(San Jose, California)的电子湾有限公司(eBay Inc.)开发的TurboLister应用),用于使得卖家能够以离线方式编写和管理基于网络的市场203上的列出项(listing)并且在程序化客户端11和基于网络的市场203之间执行分批模式通信。API服务器13被示为包括各自如前所述的应用程序接口模块15、分散聚集逻辑数据库21、监视模块18和API服务器资源池45。图5还图示了在第三方服务器机器30上执行的第三方应用28能够经由API服务器13所提供的程序化接口对联网系统201进行程序化访问。例如,第三方应用28可利用从基于网络的市场203取回的信息来支持第三方所容宿的网站的一个或多个特征或功能。第三方网站例如可提供由联网系统201的相关应用所支持的一个或多个推广、市场或支持功能。市场和支付应用图6是图示在一个示例性实施例中作为联网系统201的一部分提供的市场应用213和支付应用215的框图。市场应用213和支付应用215可被容宿在专用或共享的服务器机器上,如图5所示。这些应用本身可通信地耦合到彼此(例如经由适当的接口)并且耦合到各种数据源,以允许在应用之间传递信息或者允许应用共享和访问共同的数据。这些应用还可经由数据库服务器217访问一个或多个数据库47,如图5所示。 基于网络的市场203可提供数个发布、列出和价格设定机制,藉此卖家可列出要销售的商品或服务(或发布关于其的信息);买家可表达对这种商品或服务的兴趣或指示出购买这种商品或服务的愿望;并且可为与商品或服务有关的交易设定价格。为此,市场应用213被示为包括至少一个发布应用221和支持拍卖格式列出和价格设定机制的一个或多个拍卖应用223(例如英式、荷兰式、维克瑞、中式、双边、反向拍卖等等)。各种拍卖应用223还可提供数个特征以支持这种拍卖格式列出项,例如卖家可用来联系一列出项指定反向价格的反向价格特征,以及竞价者可用来调用自动化代理竞价的代理竞价特征。数个固定价格应用225支持固定价格列出项格式(例如传统的分类广告型列出项或目录列出项)和买断型列出项。具体而言,买断型列出项(例如包括由加州圣何塞的电子湾有限公司开发的Buy-It-Now(BIN)技术)可联合拍卖格式列出项被提供并且可允许买家以通常高于拍卖的起始价格的固定价格购买也经由拍卖许诺销售的商品或服务。(一个或多个)商店应用227使得卖家可以将列出项聚合在一个“虚拟”商店内,该商店可以是有品牌的或者以其他方式被卖家个性化或针对卖家而个性化。这种虚拟商店还可以提供依相关卖家而定的、针对其而个性化的推广、激励和特征。声誉应用229使得进行交易的用户可以利用基于网络的市场203来建立、构建和维护声誉,这种声誉可以为潜在贸易伙伴所用并被发布给潜在贸易伙伴。考虑在例如基于网络的市场203支持个人之间的贸易的情况下,如果没有这种声誉用户就没有可用来评估潜在贸易伙伴的可信性和可靠性的历史或其他参考信息。声誉应用229使得用户例如可以通过由其他交易伙伴提供的反馈来随着时间的流逝在基于网络的市场203内建立声誉。其他潜在贸易伙伴随后可以参考这种声誉来评估可靠性和可信性。个性化应用231使得基于网络的市场203的用户可以对其与基于网络的市场203的交互的各种方面进行个性化。例如,用户可以利用适当的个性化应用231来创建个性化的参考页面,在该参考页面处可以查看关于用户所参与(或曾参与)的交易的信息。另外,个性化应用231可使得用户能够对列出项和其与联网系统201和其他当事人的交互的其他方面进行个性化。联网系统201可以支持针对例如特定的地理区域而定制的数个市场。联网系统201的一个版本可以针对英国而定制,而联网系统201的另一个版本可以针对美国而定制。这些版本中的一些可以作为独立的市场操作,或者可以是一个共同的基本市场的被定制的(或者国际化的)呈现。联网系统201从而可包括数个国际化应用233,这些国际化应用233根据预定的标准(例如,地理、人口统计或市场标准)来对联网系统201的信息(和/或信息的呈现)进行定制。例如,国际化应用233可用于支持对由联网系统201操作的并经由相应的服务器13和209可访问的数个地区网站的信息的定制。—个或多个巡览应用235可以协助对基于网络的市场203的巡览。例如,接收模块可接收用于搜索基于网络的市场203上的物品的搜索信息,并且处理应用可处理该请求。浏览应用可使得用户可以浏览据以在联网系统201内对列出项分类的各种类别、目录或库存数据结构。可以提供各种其他巡览应用来补充搜索和浏览应用。为了尽可能以视觉上有信息量和吸引力的方式经由联网系统201提供列出项,市场应用213可包括一个或多个图像应用237,利用这些图像应用237,用户可以上载图像以便包括在列出项内。图像应用237还进行操作以将图像结合在所查看的列出项内。图像应 用237还可支持一个或多个推广特征,例如呈现给潜在买家的图像库。例如,卖家可以支付额外的费用以将图像包括在用于推广的物品的图像库内。列出项创建应用239使得卖家可以方便地编写与其希望经由基于网络的市场203交易的商品或服务有关的列出项,而列出项管理应用241使得卖家可以管理这种列出项。具体而言,当特定的卖家编写或发布了大量的列出项时,对这种列出项的管理可能成为一种挑战。列出项管理应用241提供了数个特征(例如自动重列出,库存级别监视等等)来帮助卖家管理这种列出项。一个或多个列出后管理应用243也可帮助卖家进行通常在列出后发生的数个活动。例如,在完成由一个或多个拍卖应用223协助的拍卖之后,卖家可能希望留下关于特定买家的反馈。为此,列出后管理应用243可提供到一个或多个声誉应用229的接口,以便允许卖家方便地向声誉应用229提供关于多个买家的反馈。争端解决应用245可提供可用来解决交易当事人之间发生的争端的机制。例如,争端解决应用245可提供有引导的过程,藉此引导当事人经过数个步骤以尝试调解争端。在经由这些有引导的过程无法调解争端的情况下,可以将争端升级到第三方调停者或仲裁者。数个欺骗防止应用247可实现欺骗检测和防止机制以减少基于网络的市场203内欺骗的发生。消息传递应用251可负责生成和递送消息到基于网络的市场203的用户,这种消息例如将列出项在基于网络的市场203处的状态告知用户(例如,在拍卖过程期间向竞价者提供“出价较高”通知,或者向用户提供推广和营销信息)。各个消息传递应用251可利用数个消息递送网络和平台中的任何一个来向用户递送消息。例如,消息传递应用251可经由有线网络(例如因特网)、普通老式电话服务(POTS)或无线(例如移动、蜂窝、WiFi (例如包括802. Iln,802. Ilb,802. Ilg和802. Ila在内的IEEE 802. 11技术))、全球微波接入互操作性(例如,WiMAX-IEEE 802. 16)网络来递送电子邮件消息(e-mail)、即时消息(頂)、短消息服务(SMS)、文本、传真或者语音(例如IP语音(VoIP))消息。营销应用253支持各种营销功能,这些功能被提供给卖家来使卖家能够增加经由基于网络的市场203的销售。营销应用253还可操作可由卖家调用的各种营销特征,并且可监视和跟踪卖家所采用的营销策略的成功。基于网络的市场203自身或者经由基于网络的市场203交易的一方或者多方可以操作由一个或多个忠诚度促进应用255所支持的忠诚度程序。例如,对于与特定卖家之间建立和/或达成的交易,买家可以获得忠诚度或者促进积分,并且随后被提供以可以用积累的忠诚度积分来兑换的奖赏。基于网络的市场203还可包括分布式应用程序接口应用73,如前所述。数据结构图7是图示可在数据库47内维护并且被市场应用213和支付应用215利用并支持市场应用213和支付应用215的各种表格301和逻辑数据库303的高级别实体关系图。 用户表格305包含基于网络的市场203的注册用户的记录。用户在基于网络的市场203内可充当卖家、买家或两者。在一个示例性实施例中,买家可以是积累了价值(例如商业或专有货币)并且相应地能够用积累的价值来交换由基于网络的市场203许诺销售的物品的用户。表格301还包括物品表格307,其中对于可用于经由基于网络的市场203交易的或曾经由基于网络的市场203交易的商品和服务维护的物品记录。物品表格307内的物品记录还可被链接到用户表格305内的一个或多个用户记录,以将卖家和一个或多个实际或潜在买家与物品记录相关联。交易表格309包含与在物品表格307内存在其记录的物品有关的每个交易(例如购买或销售交易)的记录。定单表格311可被填充以定单记录,其中每个定单记录与一定单相关联。每个定单进而可与在交易表格309内存在其记录的一个或多个交易相关联。竞价表格313内的竞价记录可涉及在基于网络的市场203处联系由拍卖应用42支持的拍卖格式列出项而接收到的竞价。反馈表格315在一个示例性实施例中可被一个或多个声誉应用229利用来构造和维护关于用户的声誉信息。历史表格317可用于维护用户曾参与的交易的历史。一个或多个属性表格319记录与在物品表格307内存在其记录的物品有关的属性信息。仅考虑这种属性的单个示例,属性表格319可指示出与特定物品相关联的货币属性,该货币属性标识出由卖家指定的有关物品的价格的货币。搜索表格321可存储由正寻找特定类型的列出项的用户(例如买家)输入的搜索信息。如前所述还可使用分散聚集逻辑数据库21。操作的方法图8是图示根据实施例的用于处理在应用程序接口处接收的请求的方法401的流程图。在图8的左侧图示了在客户端机器5处执行的操作。在中间图示了在应用程序接口服务器13 (例如服务器机器)处执行的操作。在右侧图示了在处理节点26 (例如服务器机器)处执行的操作。在中右侧图示的操作是由分散聚集框架79执行的,并且在右侧图示的操作是由作业模块83执行的。方法401开始于操作403,其中客户端机器5向API服务器13传输包括作业19的请求。在一个实施例中,作业19可包括对于通过从客户端机器5取回列出项信息来在基于网络的市场203上添加列出项的请求。
在操作405,API服务器13接收该请求并且将作业19存储在作业表格35中,生成作业事件37并将作业事件37存储在作业队列25上。在操作407,在处理节点26处,控制器模块85可识别出有充分的本地资源可用来处理作业19。例如,控制器模块85根据一实施例可确定有足够数目的处理器75和存储器77可用来处理作业19。接下来,控制器模块85可调用作业执行器87。在操作409,作业执行器87可基于作业19中的作业类型调用作业预处理器93,并且在操作411,作业预处理器93可预处理作业19。例如,作业预处理器93可识别出作业19包括对于在基于网络的市场203上添加列出项的请求并且尝试识别出作出该请求的用户是否在基于网络的市场203上有账户。例如,作业预处理器93可请求在用户表格305中查找该用户。在操作413,作业执行器87可调用作业解析器95。在操作415,作业解析器95将作业19解析成包括任务39的子作业20。在一个实施例中,作业解析器95可解析作业19并根据在基于网络的市场203上要接收列出项的类别来生成带有适当的任务39的子作业20。例如,作业19可指定要向玩具类别添加10个列出项、要向书籍类别添加5个列出项并且要向IPod类别添加3个列出项。从而,作业解析器95可创建三个子作业20,这三个子 作业20分别包括针对玩具、书籍和IPod类别的类似任务39。例如,每个子作业20可包括用于从客户端机器5取回要添加到适当类别的列出项的列出项数据的任务39和用于响应于从客户端机器5接收到列出项数据而将列出项添加到适当类别的任务。在操作419,倘若有足够的本地和远程资源41可用于处理子作业20,则调度器89可调度子作业队列27上的子作业事件51和/或子作业重试队列53上的子作业事件51,如下文更详细所述。在操作421,相同或不同处理节点26处的子作业执行器91可从子作业队列27或子作业重试队列53取回子作业事件51并且基于相应作业19中的作业类型来调用适当的任务处理器99。将会明白,操作421可由多个处理节点26并行执行。处理节点26可继续处理子作业事件51,直到与作业19相关联的所有子作业事件51完成为止。在操作423,任务处理器99可执行子作业20中的任务39。在本示例中,任务处理器99可执行任务39,该任务39利用来自API服务器资源池45的API服务器13向客户端机器5请求列出项数据,如到操作425的虚线所示,其中客户端机器5接收对列出项数据的请求。响应于该请求,客户端机器5可将列出项数据传输到处理节点26上的任务处理器99。另外,在操作423,任务处理器99可执行利用数据库服务器资源池43中的数据库服务器来将列出项添加到基于网络的市场203上的物品表格307的任务。在操作427,作业执行器87确定与作业19相关联的所有子作业20已完成并且调用作业后期处理器97。在操作429,作业后期处理器97可聚集来自每个子作业20的任务结果并将作业结果传输给客户端机器5。在操作431,客户端机器5可接收作业结果。例如,作业结果可包括指示出对于添加列出项的请求是成功还是失败的作业结果信息。上述示例涉及作业19 一直被处理到完成,没有中断。然而,本领域技术人员将会明白,作业19可能由于缺乏本地资源71或由于某些其他原因而被中断。在这种情况下,可将作业事件移动到作业重试队列29并且可设定超时,该超时在期满时可引起对作业19的进一步处理,如前所述。图9A是图示根据实施例的用于调度不同优先级的子作业20以便并行处理的方法451的流程图。方法451对应于图8的操作419。方法451开始于操作453,其中调度器89尝试调度具有高优先级的子作20。例如,调度器89可尝试识别出远程资源41是否可用于特定的子作业20,如如下文进一步所述。如果远程资源41可用,则调度器89可将子作业事件15存储在子作业队列27上,如前所述。在操作455,调度器89尝试调度具有中优先级的子作业20,并且在操作457,调度器89尝试调度具有低优先级的子作业20。图9B是图示根据实施例的用于调度相同优先级的子作业20以便并行处理的方法475的流程图。方法475对应于图9A的操作453、455或457中的每一个。方法475开始于操作477,其中调度器89识别出执行子作业20所需的本地资源71。在一个实施例中,用于该子作业的本地资源71的量可由相应子作20的作业信息63来确定。在操作479,调度器89识别出当前被利用来处理子作业20的本地资源71的量。例如,可在当前利用率信息110中识别当前被利用来处理子作业20的本地资源71。在操作481,调度器89可识别出可被利用来处理子作业20的本地资源71的最大利用率。例如,可在最大利用率信息112中识别本地资源71的最大利用率。在判决操作483,调度器89可基于执行子作业20所需的本地资源71、当前被利用来处理子作业20的本地资源71和处理子作业20的本地资源71的最大利用率来临时确定调度子作业20。例如,调度器89可识别出调度子作20可将当前利用率提高到小于本地资源71的最大可接受利用率的量。如果调度器89确定有充分的容量来处理子作20,则分支到操作485。否则,分支到操作495。在操作485,调度器89识别出是否有充分的远程资源41可用来供子作业20利用。在操作485,调度器89识别出执行子作业20所需的远程资源41。在一个实施例中,可经由相应子作业20的作业信息63确定用于子作业20的远程资源41的量。在操作487,调度器89识别出当前被利用来处理子作业20的远程资源41的量。例如,可在当前利用率信息111中识别当前被利用来处理子作业20的远程资源41。在操作489,调度器89可识别出可利用来处理子作业20的远程资源41的最大利用率。例如,可在最大利用率信息113中识别远程资源41的最大利用率。在判决操作491,调度器89可基于执行子作业20所需的远程资源41、当前被利用来处理子作业20的远程资源41和处理子作业20的远程资源41的最大利用率来确定调度子作业20。例如,调度器89可识别出调度子作业20可将当前利用率提高到小于远程资源41的最大可接受利用率的量。如果调度器89确定有充分的容量来处理子作业20,则分支到操作493。否则,分支到操作495。在操作493,调度器89调用子作业20。例如,子作业20被移动到子作业队列27,作业19被移动到作业队列25,并且该过程结束。在操作495,调度器89将作业19移动到作业重试队列29并将子作业20移动到子作业表格31,并且该过程结束。可对子作业队列27上的相似优先级的其他子作业20重复上述方法475。 图IOA是图示根据实施例的用于并行执行子作业20的方法501的流程图。方法501开始于第一处理器75处的操作503,其中任务处理器99向客户端机器5传输对于第一多个列出项的列出项数据的请求。例如,任务处理器99可向客户端机器5传输对于要被添加到玩具类别的列出项的列出项数据的请求。在操作505,第一处理器75可接收第一多个列出项(例如要被添加到玩具类别的列出项)的列出项数据。在操作507,第一处理器75可自动将第一多个列出项添加到基于网络的市场203。例如,第一处理器75可将第一多个列出项添加在玩具类别中。在操作509,在第二处理器75处,任务处理器99向客户端机器5传输对于第二多个列出项的列出项数据的请求。第二处理器75被示为与第一处理器75位于同一处理节点26上;然而,本领域普通技术人员将会明白,第二处理器75可位于不同处理节点26上。例如,任务处理器99可传输对于要被添加到书籍类别的列出项的列出项数据的请求。在操作511,第二处理器75可接收第二多个列出项(例如要被添加到书籍类别的列出项)的列出项数据。在操作513,第二处理器75可自动将第二多个列出项添加到基于网络的市场203。例如,第二处理器75可将第二多个列出项添加在书籍类别中。图IOB是图示根据实施例的用于并行执行子作业的方法521的流程图。方法521开始于第一处理器75处的操作523,其中任务处理器99向客户端机器5传输第一多个列出项的交易数据。例如,任务处理器99可以与特定用户相关联的玩具类别中的列出项的交易的形式传输交易数据,并且子作业20结束。在操作525,在第二处理器75处,任务处理器99向客户端机器5传输第二多个列 出项的交易数据。例如,任务处理器99可按与特定用户相关联的书籍类别中的列出项的交易的形式传输交易数据,并且子作业20结束。图11是图示根据实施例的用于激活和暂停重现的作业19的用户界面531的示图。用户界面531可用于激活或暂停周期性执行的重现作业19。用户界面531包括用户界面元素533、535、537和541,这些用户界面元素是搜索参数形式的,用以识别重现的作业19来显示、激活和暂停。用户界面元素533可用于接收作业模块81。例如,操作监视机器22的用户可从下拉菜单中选择作业模块81。用户界面元素535可用于接收“激活”或“暂停”的作业状态。从而,“激活”的作业19可被“暂停”,反之亦然。用户界面元素537可用于接收所标识的处理节点26,从而将对作业19的搜索限制到指定的处理节点26。在一个实施例中,用户界面元素537可用于接收“ALL”处理节点26的标识符。用户界面元素539可被选择来提交前述搜索参数。响应于对用户界面元素539的选择,监视模块18接收搜索参数,在统计信息34中识别所请求的信息并且在显示区域540中显示所请求的信息。用户界面531提供了另一种激活和暂停重现的作业19的方式。用户界面元素541可用于接收标识特定的重现作业19的作业标识符。响应于该选择,监视模块18可识别重现的作业19并且在显示区域540中显示重现的作业19。显示区域540 包括列 543、545、547、549、551、553、557 和 559。列 543 显示与特定作业19相关联的唯一地将该作业19与其他作业19标识开来的重现作业标识符。列545显示作业状态,如前所述。列547显示作业执行的周期类型。例如,周期类型可包括标准时间单位,例如日、星期、月、双月,等等。列549显示作业执行的周期间隔。周期间隔标识在该周期类型期间发起作业19的特定时刻。列551可显示作业19的开始时间。列553可显示可为作业19收集的作业信息。所收集的信息可由作业模块81的作者限定。在一个实施例中,列553中的一行可被选择来显示包括与相应的作业19相关联的作业信息的弹出窗口555。列557可用于显示作业19的创建日期。列559可用于显示在用户界面531上最后更新作业19的日期。图12是图示根据实施例的用于监视作业19的用户界面561的示图。用户界面561包括用户界面元素563、565、567、569、571、573和577,这些用户界面元素是搜索参数形式的,用以识别作业19来监视。用户界面元素563可用于接收作业模块81。例如,用户界面561被示为将“BDX”作业模块603显示为选中。用户界面元素565可用于接收作业类型。作业类型可由作业模块81的作者限定。用户界面元素567可用于接收作业状态。例如,作业状态可包括“完成”和“失败”。用户界面元素569可用于接收作业优先级。例如,作业优先级可由作业模块81的作者限定。在一个实施例中,作业优先级可包括“低”、“中”和“高”。用户界面元素571可用于接收处理节点26的标识符,如前所述。用户界面元素573可用于限定时间窗口。例如,在该时间窗口期间执行的任何作业19可被显示在用户界面561上。用户界面元素575可被选择来提交前述搜索参数。响应于对用户界面元素575的选择,监视模块18接收搜索参数,在统计信息34中识别所请求的作业19并且分别将这些作业19显示在显示区域576的行中。用户界面561还支持为特定作业19显示信息。例如,用户界面元素577可接收标识特定作业19的分散聚集作业标识符。响应于对用户界面元素575的选择,监视模块18以分散聚集作业标识符的形式接收搜索参数,在统计信息34中识别所请求的作业19并且 在显示区域576中显示该作业19。显示区域576 包括列 579、581、583、585、587、589、591、593、595、597、574、578、580、582、584和586。列579显示与特定作业19相关联并且唯一地将该作业19与其他作业19标识开来的分散聚集框架作业标识符。列581显示与特定作业19相关联的唯一地将该作业19与该特定作业模块83处理的其他作19标识开来的作业模块标识符。列583显示作业类型,如前所述。列585显示作业状态,如前所述。列587显示作业优先级,如前所述。列589显示在所标识的时间窗口期间要执行的作业19的最后任务39的任务标识符。列591显示作19开始的时间。列593显示创建作业19的日期。列595显示最后修改作19的日期和时间。列597显示对于作业是否达到了服务水平目标(SLO)。例如,服务水平目标可限定性能标准,这些性能标准可被对照作业19的实际性能应用来确定作业19的执行是超过还是低于服务水平目标。列574可显示作业19的重现状态。例如,作业19可以是重现的或非重现的(例如一次执行)。列578可显示由作业19的开始和结束测量的逝去时间。列580可显示作业19中的任务39的总数。列582可显示作业19成功完成的任务39的数目。列584可显示作19结束的任务39。列586可显示底层事件的唯一标识符。图13是图示根据实施例的用于监视积聚的作业19的统计资料的用户界面601的示图。用户界面601包括用户界面元素603、605、607、609、613和615,这些用户界面元素是搜索参数形式的,用以显示积聚的作业19的统计资料。用户界面元素603可用于接收作业模块81的标识符。例如,用户界面601被示为接收“BDX”作业模块603的标识符。用户界面元素605可用于接收作业类型,如前所述。用户界面元素607可用于接收作业优先级。用户界面元素609可用于接收作业状态,如前所述。用户界面元素613可用于根据作业类型和/或作业优先级和/或作业状态对作业19分组。用户界面元素615可被选择来限定时间窗口,如前所述。响应于对用户界面元素617的选择,监视模块18接收搜索参数,在统计信息34中识别作业19的积聚,并且在显示区域619中为作业19的积聚显示所请求的信肩、O显示区域619 包括列 621、623、625、627、629、631、633、635、637、639、641、643 和645。列621、623和625分别根据作业类型、作业优先级和作业状态集中标识由“BDX”作业模块83处理的作业19的积聚。列627可显示所指示的作业19的积聚的作业19的计数。列629可显示所指示的作业19的积聚的重现作业19的计数。列631、633和635可分别为作业19的积聚显示如前所述的任务的计数。列637可显示对于所指示的作业19的积聚中的作业19的执行逝去的最小时间。列639可显示对于所指示的作业19的积聚中的作业19的执行逝去的最大时间。列641可显示为作业19的积聚计算的对于作业19的执行逝去的平均时间。列643可显示所指示的作业19的积聚中的特定作业19的最大服务水平目标,并且列645可显示作业19的积聚的平均服务水平目标。图14是图示根据实施例的用于监视积聚的作业19的统计资料的用户界面651的示图。用户界面 651 包括列 653、655、657、659、661、663、665、667、669、671、673、675、677、679、681、683和685。列653、655、657、659和661可分别根据作业模块81、用户名、作业类型、作业优先级和作业状态集中标识作业19的特定聚集。列655可显示创建所标识的作业19的积聚的用户的用户名。列663可显示所指示的作业19的积聚的作业19的计数。列665可显示所指示的作业19的积聚的重现作业19的计数。列667可显示所指示的作业19的积聚的平均服务水平目标。列669可显示未达到服务水平目标(SLO)的作业19的数目。列671可显示所指示的作业19的积聚的平均完成时间。列673和675可分别显示最大和 最小作业19完成时间。列677可显示所指示的作业19的积聚的平均任务计数。列679和681可分别显示与特定作业19相对应的最大和最小任务计数。列683可显示未达到SLO的作业的平均时间。列685可显示未达到SLO的作业19的最大时间。图15是图示根据实施例的用于监视积聚的任务的统计资料的用户界面689的示图。用户界面 689 包括列 691、693、694、695、696、697、698 和 699。列 691、693、694 和 695分别根据远程资源41、动作、任务状态和原因代码集中标识任务39的特定积聚。列696可显示积聚的任务中的任务39的计数。列697显示对于积聚的任务访问远程资源41的平均响应时间。列698和699可分别显示特定任务39访问远程资源41的最大和最小作业19响应时间。图16是图示根据实施例的用于监视与作19相关联的子作20的用户界面701的示图。用户界面701可包括用户界面元素703、705、707和709,这些用户界面元素是搜索参数形式的,用以标识统计信息34来显示。用户界面元素703可接收标识特定作业19的分散聚集作业标识符。例如,操作监视机器22的用户可输入分散聚集作业标识符。在另一实施例中,用户界面元素703可接收先前从如图12所示的用户界面561上的列579中选择的分散聚集作业标识符。用户界面元素705可用于接收子作业状态。在一个实施例中,子作业状态可包括“创建”、“调度”和“完成”。用户界面元素707可用于接收标识子作20的子作业标识符。用户界面元素709可被选择来提交前述搜索参数。响应于对用户界面元素709的选择,监视模块18接收搜索参数,在统计信息34中识别所请求的信息并且在显示区域710中显示所请求的信息。显示区域710 包括列 711、713、715、717、719、721、723、725、727、729 和 731。列 711可显示与所标识的作19相关联的子作业20的子作业标识符。对子作业20标识符中的任何一个的选择可显示带有所选择的子作业20的任务的用户界面,如下文进一步所述。列713可用于显示子作业状态,如前所述。列715可显示资源名称。列717可用于显示创建子作业20的日期。列719可用于显示最后修改子作业20的日期和时间。列721可显示资源的本地总花费。列723可用于显示资源的远程总花费。列725可用于显示资源的本地当前花费。列727可用于显示资源的远程当前花费。列729可用于显示调用全局用户标识符。列731可用于显示可选择的用户界面元素。图17是图示根据实施例的用于监视与子作业20相关联的任务39的用户界面751的示图。用户界面751可包括用户界面元素753、755、757和759,这些用户界面元素是搜索参数形式的,用以标识任务39来显示。用户界面元素753可接收标识特定作业19的分散聚集作业标识符。例如,操作监视机器22的用户可输入分散聚集作业标识符来标识特定作业19。用户界面元素755可接收标识特定子作业20的分散聚集子作业标识符。例如,操作监视机器22的用户可输入分散聚集子作业标识符。在另一实施例中,用户界面元素753可自动接收分散聚集作业标识符,并且用户界面元素755可基于对先前从如图16所示的用户界面701上的列711中选择的分散聚集子作业标识符的选择来自动接收分散聚集子作业标识符。用户界面元素757可用于接收任务状态。在一个实施例中,任务状态可包括“初始”、“创建”、“调度”、“完成”、“失败”和“无效”。用户界面元素759可用于接收标识特定任务39的任务标识符。用户界面元素761可被选择来提交前述搜索参数。响应于对用户界面元素 761的选择,监视模块18可接收搜索参数,在统计信息34中为任务39识别所请求的信息,并且在显示区域763中显示所请求的信息。显示区域763 可包括列 765、767、769、771、773、775、777、779、781 和 783。列 765可用于显示与所标识的作业19相关联的子作业20的任务标识符。列767可用于显示任务状态,如前所述。列769可用于显示动作名称(例如对远程资源41所作的动作的名称)。列771可用于显示表示任务39执行的重试次数的重试计数。列773可显示顺序标识符。例如,作业19中的任务可被排序为I至100以便标识各个任务。列775可显示创建任务的日期。列777可显示最后修改任务39的日期和时间。列779可显示可选择来显示包括描述对任务39工作了的机器(例如处理节点26)/线程的信息的用户界面的用户界面元素,如下文进一步所述。列781可显示请求并且列783可显示响应。请求/响应字段可由应用的用户定制以存储与该请求和响应有关的值。图18是图示根据实施例的用于显示对任务39工作了的机器(例如处理节点26)的用户界面780的示图。用户界面781包括列782、785、787、789、791、793、795和797。列782可显示标识处理了任务39的进程的进程标识符。列785可显示标识与包括任务39的子作业20相关联的作业19的分散聚集作业标识符。列787可显示标识执行了任务39的处理节点26的机器标识符。列789可显示标识处理了任务39的线程的线程标识符。列791可显示创建线程的日期。列793可显示最后修改线程的日期和时间。列795可显示可被选择来显示对于任务39发生的日志记录的用户界面元素,如下文更充分所述。列797可显示分区密钥。例如,分区密钥可存储数据库表格分区值。可根据同一分区值和所限定的保留时段来添加在同一时间段期间创建的记录。在一个实施例中,保留时段的期满可使得分区中的记录被清除,以确保对数据库存储的高效使用。图19是图示根据实施例的用于显示对任务39工作的机器(例如处理节点26)/线程的日志的用户界面799的示图。可通过从图18中的用户界面781上的列795中选择用户界面元素来显示用户界面799。用户界面799被示为包括按时间顺序标识并包括各种信息的多个日志条目。
上述用户界面被示为包括用户界面元素和用于显示的列。然而,本领域技术人员将会明白,用户界面也可实现为包括机器界面元素的机器界面(例如标准通用标记语言-SGML)、包括音频界面元素的音频介质、包括动态界面元素的动态界面或者使用某种其他类型的界面元素的某种其他类型的界面。在一些实施例中,这里描述的方法可实现于在三层级体系结构范例下设计的分布式或非分布式软件应用中,藉此实现此方法的计算机代码的各种组件可被分类为属于这三个层级中的一个或多个。一些实施例可包括相对没有应用处理的作为界面的第一层级(例如界面层级)。另外,第二层级可以是逻辑层级,该逻辑层级以对通过界面级输入的数据的逻辑/数学操纵的形式执行应用处理并且将这些逻辑/数学操纵的结果传输到界面层级和/或传输到后端或者说存储层级。这些逻辑/数学操纵可涉及整体上约束软件应用的某些商业规则或过程。第三存储层级可以是持久性存储介质或非持久性存储介质。在一些情况下,这些层级中的一个或多个可被合并到另一层级中,从而产生两层级体系结构或者甚至一层级体系结构。例如,界面和逻辑层级可被整合,或者逻辑和存储层级可被整合,就像具有嵌入式数据库的软件应用的情况中那样。这个三层级体系结构可利用一种技术或者如下文所述利用多种技术来实现。这个三层级体系结构和用来实现它的技术可在按服务器-客 户端、对等或某种其他适当的配置来组织的一个或多个计算机系统上执行。另外,这三个层级可作为各种软件组件被分布在多个计算机系统之间。一些示例性实施例可包括被写为一个或多个软件组件的上述层级以及构成它们的进程或操作。这些组件中的许多所共同的是生成、使用和操纵数据的能力。这些组件以及与每个相关联的功能可被客户端、服务器或对等体计算机系统使用。这各种组件可由计算机系统按需实现。这些组件可用面向对象的计算机语言来编写,以使得可利用可视化组件库(VCL)、跨平台组件库(CLX)、Java Beans (JB)、Java Enterprise Beans (EJB)、组件对象模型(COM)、分布式组件对象模型(DCOM)或其他适当技术来实现面向组件或面向对象的编程技术。这些组件可经由各种API来链接到其他组件,然后被编译成一个完成的服务器、客户端和/或对等体软件应用。另外,这些API可能够作为分布式计算组件通过各种分布式编程协议通信。一些示例性实施例可包括远程过程调用,用于在分布式编程环境上将上述组件中的一个或多个实现为分布式计算组件。例如,界面组件(例如界面层级)可存在于位置远离包含逻辑组件(例如逻辑层级)的第二计算机系统的第一计算机系统上。这些第一和第二计算机系统可按服务器-客户端、对等或某种其他适当的配置来配置。这各种组件可利用上述面向对象的编程技术来编写,并且可用相同的编程语言或不同的编程语言来编写。可实现各种协议来使得这各种组件能够通信,而不管用于编写这些组件的编程语言为何。例如,通过使用诸如公共对象请求代理体系结构(CORBA)、简单对象访问协议(SOAP)或某种其他适当的协议之类的分布式计算协议,用C++编写的组件可能够与用Java编程语言编写的另一组件通信。一些实施例可包括将这些协议中的一个或多个与用于限定网络用来传送数据的协议的开放系统互连(OSI)模型或者传输控制协议/因特网协议(TCP/IP)协议栈模型中概述的各种协议一起使用。一些实施例可利用OSI模型或TCP/IP协议栈模型来限定网络用来传送数据的协议。在应用这些模型时,服务器和客户端之间或者对等体计算机系统之间的数据传送的系统被例示为一系列大体五层,包括应用层、传输层、网络层、数据链路层和物理层。在具有三层级体系结构的软件的情况下,各种层级(例如界面、逻辑和存储层级)存在于TCP/IP协议栈的应用层上。在使用TCP/IP协议栈模型的示例性实现方式中,来自存在于应用层的应用的数据被加载到存在于传输层的TCP片段的数据载荷字段中。此TCP片段还包含存在于远程的接收者软件应用的端口信息。此TCP片段被加载到存在于网络层的IP数据报的数据载荷字段中。接下来,此IP数据报被加载到存在于数据链路层的帧中。此帧随后在物理层被编码,并且数据被通过诸如互联网、局域网(LAN)、WAN或某种其他适当的网络之类的网络传送。在一些情况下,互联网指的是网络的网络。这些网络中使用多种协议来交换数据,包括上述的TCP/IP,并且还包括异步传送模式(ATM)、系统网络体系结构SNA、SDI或某种其他适当协议。这些网络可被组织在多种拓扑(例如星形拓扑)或结构内。图20示出了采取计算机系统800的示例性形式的机器的图示,在该机器内可以执行用于使得该机器执行这里论述的方法中的任何一个或多个的指令。在替换实施例中,该机器可以作为独立的设备操作或者可以连接到(例如联网到)其他机器。在联网部署中,该机器在服务器-客户端网络环境中可以作为服务器或客户端机器操作,或者在对等(或 分布式)网络环境中可以作为对等体机器操作。该机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、PDA、蜂窝电话、web用具、网络路由器、交换机或网桥、或者能够执行指定该机器应采取的动作的一组指令(顺序的或者其他形式的)的任何机器。另外,虽然只图示了单个机器,但是术语“机器”应当也被理解为包括单独或联合执行一组(或多组)指令以执行这里论述的方法中的任何一个或多个的机器的任何集合。示例性计算机系统800包括处理器802 (例如,中央处理单元(CPU)、图形处理单元(GPU)或两者)、主存储器804和静态存储器806,它们经由总线808相互通信。计算机系统800还可包括视频显示单元810 (例如液晶显示器(LCD)或阴极射线管(CRT))。计算机系统800还包括输入设备812 (例如键盘)、光标控制设备814 (例如鼠标)、盘驱动单元816、信号生成设备818 (例如扬声器)以及网络接口设备820。盘驱动单元816包括机器可读介质822,其上存储着体现这里描述的方法或功能中的任何一个或多个的一组或多组指令(例如软件)824。指令824在其被计算机系统800执行期间也可完全或至少部分地存在于主存储器804、静态存储器806和/或处理器802内。主存储器804和处理器802也可构成机器可读介质。指令824还可经由网络接口设备820通过网络826被发送或接收。可包括各种实施例的装置和系统的应用广泛地包括多种电子和计算机系统。一些实施例将功能实现在两个或更多个特定的互连硬件模块或设备中,其中有关的控制和数据信号在模块之间并通过模块传输,或者将功能实现为专用集成电路的部分。从而,示例性系统可应用到软件、固件和硬件实现。在示例性实施例中,由应用配置的计算机系统(例如独立的、客户端或服务器计算机系统)可构成被配置并操作来执行如这里所述的某些操作的“模块”。在其他实施例中,可机械或电子地实现“模块”。例如,模块可包括被永久配置为(例如在专用处理器内)执行某些操作的专用电路或逻辑。模块还可包括由软件临时配置为执行某些操作的可编程逻辑或电路(例如包含在通用处理器或其他可编程处理器内)。将会明白,对于是在专用且永久配置的电路中机械地实现模块还是在临时配置的电路(例如由软件配置)中实现模块的决定可由成本和时间考虑来驱动。从而,术语“模块”应当被理解为包含有形实体,无论是物理构成的、永久配置的(例如硬连线的)还是临时配置的(例如编程的)以某种方式操作和/或执行这里描述的某些操作的实体。虽然机器可读介质822在示例性实施例中被示为单个介质,但是术语“机器可读介质”应当被理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储、编码或携带一组指令以供机器执行并且使得机器执行这里描述的方法中的任何一个或多个的任何介质。术语“机器可读介质”从而应当被理解为包括但不限于固态存储器、光介质和磁介质。如注意到的,可利用传送介质通过网络传送软件。术语“传送介质”应被理解为包括能够存储、编码或携带用于传送到机 器并由机器执行的指令的任何介质,并且包括数字或模拟通信信号或其他无形介质以协助这种软件的传送和通信。这里描述的实施例的例示是欲提供对各种实施例的结构的一般理解,并且它们并不欲用作对可利用这里描述的结构的装置和系统的所有元素和特征的完整描述。本领域普通技术人员在阅读上述描述后将清楚许多其他实施例。可根据其利用和得出其他实施例,从而在不脱离本公开的范围的情况下可作出结构和逻辑替代和变化。这里提供的附图只是表示性的而并不是按比例绘制的。其某些比例可能被夸大,而其他的可能被最小化。从而,说明书和附图应当被认为是例示性的而不是限制性的。从而,公开了用于处理在应用程序接口处接收的请求的方法和系统。虽然已就若干示例性实施例描述了本公开,但本领域普通技术人员将会认识到,本公开并不限于所描述的实施例,而是可在所附权利要求的精神和范围内在经修改和更改的情况下实现。这里的描述从而应被认为是例示性的而不是限制性的。
权利要求
1.一种用于处理请求的系统,该系统包括 应用程序接口模块,该应用程序接口模块通过网络接收来自客户端机器的请求,该请求包括与数据相关联的作业,该请求是在应用程序接口处接收的;以及 处理节点的对等网络,该处理节点的对等网络基于所述作业生成多个子作业,所述多个子作业分别包括与所述数据的一部分相对应的至少一个任务,所述处理节点的对等网络基于所述子作业分别利用的资源的可用性来调度所述多个子作业以便并行处理,所述处理节点的对等网络并行处理所述多个子作业并且生成分别与所述多个子作业相关联的任务结果。
2.如权利要求I所述的系统,其中,所述作业被利用来在基于网络的市场上添加列出项,并且所述处理节点的对等网络基于与第一多个列出项的列出项数据相关联的第一子作业向所述客户端机器传输对列出项数据的第一请求,并且所述处理节点的对等网络基于与第二多个列出项的列出项数据相关联的第二子作业向所述客户端机器传输对列出项数据的第二请求,并且所述处理节点的对等网络还自动将所述第一多个列出项和所述第二多个列出项添加到所述基于网络的市场。
3.如权利要求I所述的系统,其中,所述系统包括基于网络的市场,并且所述作业被利用来将交易数据从所述基于网络的市场传输到所述客户端机器,并且所述处理节点的对等网络将第一多个交易的交易数据传输到所述客户端机器并且将第二多个交易的交易数据传输到所述客户端机器。
4.如权利要求I所述的系统,其中,所述资源包括本地资源,并且所述处理节点的对等网络基于所述子作业利用的本地资源的可用性来调度所述多个子作业。
5.如权利要求I所述的系统,其中,所述资源包括远程资源,并且所述处理节点的对等网络基于所述子作业利用的远程资源的可用性来调度所述多个子作业。
6.如权利要求I所述的系统,其中,所述处理节点的对等网络计算所述作业的优先级。
7.如权利要求I所述的系统,还包括数据库服务器的池,并且所述处理节点的对等网络基于与所述数据库服务器的池相关联的峰值负载来限制所调度的子作业的数目。
8.如权利要求7所述的系统,其中,与所述数据库服务器的池相关联的峰值负载是由除所述对等网络外的实体对所述数据库服务器的利用引起的。
9.如权利要求I所述的系统,其中,所述处理节点的对等网络识别不可访问的数据库服务器并且重试访问该数据库服务器。
10.如权利要求I所述的系统,其中,所述处理节点的对等网络将任务结果聚集成作业结果。
11.一种用于处理请求的方法,该方法包括 通过网络接收来自客户端机器的请求,该请求包括与数据相关联的作业,该请求是在应用程序接口处接收的;以及 基于所述作业生成多个子作业,所述多个子作业分别包括与所述数据的一部分相对应的至少一个任务,所述生成是由处理节点的对等网络中的处理节点执行的; 基于所述子作业分别利用的资源的可用性来调度所述多个子作业以便并行处理,所述调度是由处理节点的对等网络中的处理节点执行的;以及 利用多个处理器并行处理所述子作业以生成分别与所述多个子作业相关联的任务结果,所述并行处理是由所述处理节点的对等网络中的至少一个处理节点执行的。
12.如权利要求11所述的方法,其中,所述作业被利用来在基于网络的市场上添加列出项,权利要求I所述的方法还包括 基于与第一多个列出项的列出项数据相关联的第一子作业从所述基于网络的市场向所述客户端机器传输对列出项数据的第一请求; 基于与第二多个列出项的列出项数据相关联的第二子作业从所述基于网络的市场向所述客户端机器传输对列出项数据的第二请求;以及 自动将所述第一多个列出项和所述第二多个列出项添加到所述基于网络的市场。
13.如权利要求11所述的方法,其中,所述作业被利用来从基于网络的市场取回交易数据,并且对所述请求的接收包括接收对取回交易数据的请求,并且与所述作业相关联的子作业包括取回第一多个交易的交易数据的第一子作业和取回第二多个交易的交易数据的第二子作业,并且子作业的并行处理包括 将所述第一多个交易的交易数据传输到所述客户端机器;以及 将所述第二多个交易的交易数据传输到所述客户端机器。
14.如权利要求11所述的方法,还包括向所述处理节点的对等网络添加节点以增大所述对等网络的处理和存储容量。
15.如权利要求11所述的方法,还包括从所述处理节点的对等网络去除节点以减小所述对等网络的处理和存储容量。
16.如权利要求11所述的方法,其中,所述资源包括本地资源,并且所述多个子作业的调度是基于所述子作业利用的本地资源的可用性的。
17.如权利要求11所述的方法,其中,所述资源包括远程资源,并且所述多个子作业的调度是基于所述子作业利用的远程资源的可用性的。
18.如权利要求11所述的方法,还包括在调度所述多个子作业之前计算所述作业的优先级,并且所述多个子作业的调度是基于所述作业的优先级的。
19.如权利要求11所述的方法,其中,所述资源包括数据库服务器的池,并且所述调度包括响应于识别出与所述数据库服务器的池相关联的峰值负载来限制所调度的子作业的数目。
20.如权利要求19所述的方法,其中,与所述数据库服务器的池相关联的峰值负载是由除所述对等网络外的利用所述数据库服务器的池的实体对所述数据库服务器的利用引起的。
21.如权利要求11所述的方法,还包括识别不可访问的数据库服务器的池并且响应于该识别而重试访问该数据库服务器的池。
22.如权利要求11所述的方法,还包括将任务结果聚集成作业结果,所述聚集是由所述处理节点的对等网络中的处理节点执行的。
23.一种用于处理请求的系统,该系统包括 用于通过网络接收来自客户端机器的请求的装置,该请求包括与数据相关联的作业,该请求是在应用程序接口处接收的;以及 处理节点的对等网络,用于基于所述作业生成多个子作业,所述多个子作业分别包括与所述数据的一部分相对应的至少一个任务,所述处理节点的对等网络用于基于所述子作业分别利用的资源的可用性来调度所述多个子作业以便并行处理,所述处理节点的对等网络用于并行处理所述子作业以生成分别与所述子作业相关联的任务结果。
24.一种存储指令的计算机可读介质,所述指令在被至少一个处理器执行时使得该至少一个处理器执行以下动作 通过网络接收来自客户端机器的请求,该请求包括与数据相关联的作业,该请求是在应用程序接口处接收的;以及 基于所述作业生成多个子作业,所述多个子作业分别包括与所述数据的一部分相对应的至少一个任务; 基于所述子作业分别利用的资源的可用性来调度所述多个子作业以便并行处理;以及 利用多个处理器并行处理所述子作业以生成分别与所述子作业相关联的任务结果。
全文摘要
描述了用于处理在应用程序接口处接收的请求的方法和系统。系统接收来自客户端机器的包括与数据相关联的作业的请求。该请求是在应用程序接口处接收的。接下来,处理节点的对等网络基于作业生成多个子作业。处理节点的对等网络基于子作业分别利用的资源的可用性来调度多个子作业以便并行处理,并且并行处理多个子作业,然后生成分别与多个子作业相关联的任务结果。
文档编号H04M11/00GK102783129SQ201080056110
公开日2012年11月14日 申请日期2010年9月1日 优先权日2009年10月8日
发明者劳拉·王, 塞瑞志·佩里世瓦洛, 斯里卡拉·木那马拉, 海曼特·泰汉卡, 邹萍 申请人:电子湾有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1