基于加权成本捆绑并发送工作单元到服务器的方法和系统的制作方法

文档序号:7970487阅读:118来源:国知局
专利名称:基于加权成本捆绑并发送工作单元到服务器的方法和系统的制作方法
技术领域
本发明一般地涉及一种计算机系统,尤其涉及基于加权成本捆绑并发送工作单元到服务器。
背景技术
1948年的EDVAC计算机系统的研制经常引述为计算机时代的开始。自那时以来,计算机系统已经发展成非常复杂的设备,并且计算机系统可以在许多不同的设置中发现。计算机系统典型地包括硬件,例如半导体和电路板,以及软件,也称作计算机程序。
多年前,计算机是不彼此通信的独立设备,但是今天,计算机日益地连接在网络中,并且称作客户端的一个计算机可能请求称作服务器的另一个计算机以执行操作。随着因特网的出现,该客户端/服务器模型日益地在在线业务和服务中使用,例如在线拍卖行、股票贸易、银行业、商业以及信息存储和取回。
用于连接客户端和服务器的两种当前技术称作面向服务的体系结构(SOA)和效用计算。面向服务的体系结构包括彼此通信的服务的集合。服务是一种明确定义、独立的功能,并且不依赖于其他服务的上下文或状态。服务之间的通信可能涉及简单的数据传递或者可能涉及协调一些活动的两个或多个服务。效用计算是一种服务供应模型,其中服务提供商使得计算资源根据需要对用户可用,并且针对资源的具体使用而不是统一价格向客户收费。像其他类型的按需计算(例如网格计算)一样,效用模型设法使得资源的有效使用达到最大和/或使得相关成本达到最小。另一种版本的效用计算在共享池效用模型中在企业内部实施。在共享池效用模型中,企业集中其计算资源以服务较大量的用户而没有不必要的冗余。
在面向服务的体系结构和效用计算中,客户端确定接收并处理请求的服务器,并且客户端可能具有发送到多个服务器的多个请求。每个服务器处理其接收的请求并且将响应发送到发起请求的客户端。随着该大量请求和响应变成大量的网络通信量,其降低网络性能从而增加请求的响应时间。
因此,需要一种在客户端和服务器之间通信请求和响应的更好技术。

发明内容
本发明提供一种方法、装置、系统和信号承载介质,在一种实施方案中,其将多个工作单元累积成束并且将该束发送到所选主动服务器。主动服务器基于工作单元的相对成本和服务器的成本来选择。在一种实施方案中,选择主动服务器包括确定相对工作单元成本和相对服务器成本,基于相对工作单元成本和相对服务器成本计算服务器的总加权成本,并且选择具有最低总加权成本的主动服务器。主动服务器可能在本地处理束中的工作或者将工作单元发送到被动服务器进行处理。主动服务器确定每个工作单元是否可以在主动服务器处执行。如果工作单元可以在主动服务器上执行,主动服务器执行该工作单元并且创建本地结果。如果工作单元不能在服务器上执行,主动服务器将工作单元发送到被动服务器,并且被动服务器创建远程结果。主动服务器从被动服务器接收远程结果,将本地结果和远程结果组合成组合结果,并且将组合结果发送到客户端。在各种实施方案中,分支和相关性数据包括在束中,主动服务器使用其来排序和有条件地处理工作单元。


本发明的各种实施方案在下文结合附图描述。
图1描绘用于实现本发明实施方案的实例系统的高级框图。
图2描述根据本发明实施方案实例系统所选组件的框图。
图3A描绘根据本发明实施方案工作单元相对成本数据的实例数据结构的框图。
图3B描绘根据本发明实施方案服务器成本数据的实例数据结构的框图。
图4A描绘根据本发明实施方案调用流的实例数据结构的框图。
图4B描绘根据本发明实施方案请求束的实例数据结构的框图。
图5描绘根据本发明实施方案动作的实例处理的流程图。
图6描绘根据本发明实施方案在主动服务器处请求束的实例处理的流程图。
图7描绘根据本发明实施方案在被动服务器处工作单元的实例处理的流程图。
但是,应当注意,附图仅说明本发明的实例实施方案,因此不认为是其范围的限制,因为本发明可以允许其他等效的实施方案。
具体实施例方式
参考附图,其中遍及几个视图类似的数字表示类似的部件,图1描绘根据本发明实施方案经由网络130连接到服务器132的客户端计算机系统100的高级框图表示。在一种实施方案中,客户端计算机系统100的硬件组件可以由从Armonk,New York的国际商业机器获得的eServer iSeries计算机系统实现。但是,本领域技术人员将理解,本发明实施方案的机构和装置同样适用于任何适当的计算系统。计算机系统100用作服务器132的客户端,但是术语“客户端”和“服务器”仅为了方便而使用,在其他实施方案中,在一个场景中用作服务器的电子设备可能在另一个场景中用作客户端,反之亦然。
客户端计算机系统100的主要组件包括一个或多个处理器101,主存储器102,终端接口111,存储器接口112,I/O(输入/输出)设备接口113,以及通信/网络接口114,其全部连接以经由存储器总线103、I/O总线104和I/O总线接口单元105进行组件间通信。
客户端计算机系统100包含一个或多个通用可编程中央处理单元(CPU)101A、101B、101C和101D,这里一般地称作处理器101。在一种实施方案中,客户端计算机系统100包含典型相对大系统的多个处理器;但是,在另一种实施方案中,客户端计算机系统100可能作为选择是单个CPU系统。每个处理器101执行存储在主存储器102中的指令,并且可能包括一个或多个板上高速缓冲存储器级别。
主存储器102是用于存储数据和程序的随机存取半导体存储器。在另一种实施方案中,主存储器102表示客户端计算机系统100的整个虚拟内存,并且可能也包括连接到客户端计算机系统100或经由网络130连接的其他计算机系统的虚拟内存。主存储器102在概念上是单个单一实体,但是在其他实施方案中,主存储器102是更复杂的配置,例如高速缓冲存储器和其他存储设备的分层结构。例如,主存储器102可能存在于多级高速缓冲存储器中,并且这些高速缓冲存储器可能还根据功能划分,使得一个高速缓冲存储器保存指令而另一个高速缓冲存储器保存由一个或多个处理器使用的非指令数据。主存储器102可能进一步分布并与不同CPU或CPU集合相关联,如在各种所谓非均匀存储器存取(NUMA)计算机体系结构的任何一种中已知的。
主存储器102包括服务器选择机构160、应用162、工作单元相对成本数据164、服务器成本数据165、调用流166以及请求束168。虽然服务器选择机构160、应用162、工作单元相对成本数据164、服务器成本数据165、调用流166和请求束168所示包含在客户端计算机系统100中的存储器102中,在其他实施方案中,它们中一些或全部可能在不同的计算机系统上并且可能例如经由网络130远程访问。客户端计算机系统100可以使用虚拟寻址机制,其允许客户端计算机系统100的程序表现好像它们仅访问大且单个存储实体而不是访问多个较小的存储实体。因此,虽然服务器选择机构160、应用162、工作单元相对成本数据164、服务器成本数据165、调用流166和请求束168所示包含在存储器102中,这些单元不一定都同时完全包含在相同的存储设备中。此外,虽然服务器选择机构160、应用162、工作单元相对成本数据164、服务器成本数据165、调用流166和请求束168所示为单独的实体,在其他实施方案中,它们中一些,或者它们中一些的部分可能封装在一起。
在一种实施方案中,服务器选择机构160包括能够在处理器101上执行的指令或能够由在处理器101上执行的指令解释的语句以执行下面参考图2和5进一步描述的功能。在另一种实施方案中,服务器选择机构160可能在微码中实现。在另一种实施方案中,服务器选择机构160可能经由逻辑门和/或其他适当硬件技术在硬件中实现,代替或除了基于处理器的系统之外。应用162可能是用户应用、第三方应用、操作系统或者其任何组合或部分。工作单元相对成本数据164参考图3A在下面进一步描述。服务器成本数据165参考图3B在下面进一步描述。调用流166参考图4A在下面进一步描述。请求束168参考图4B在下面进一步描述。
存储器总线103提供在处理器101、主存储器102和I/O总线接口单元105之间传送数据的数据通信路径。I/O总线接口单元105还连接到用于将数据传送到各种I/O单元以及传送来自各种I/O单元的数据的系统I/O总线104。I/O总线接口单元105通过系统I/O总线104与也已知为I/O处理器(IOP)或I/O适配器(IOA)的多个I/O接口单元111,112,113和114通信。系统I/O总线104可能是例如工业标准PCI总线或任何其他适当总线技术。
I/O接口单元支持与多种存储器和I/O设备的通信。例如,终端接口单元111支持一个或多个用户终端121,122,123和124的连接。存储器接口单元112支持一个或多个直接存取存储设备(DASD)125,126和127(其典型地是旋转磁盘驱动器存储设备,虽然它们可能作为选择是其他设备,包括配置以对主机表现为单个大存储设备的磁盘驱动器阵列)的连接。主存储器102的内容可以根据需要存储到直接存取存储设备125,126和127或从其中取回。
I/O和其他设备接口113提供到各种其他输入/输出设备或其他类型设备中任何一个的接口。两个这种设备,打印机128和传真机129在图1的实例实施方案中显示,但是在其他实施方案中,许多其他这种设备可能存在,其可能具有不同类型。网络接口114提供从客户端计算机系统100到其他数字设备和计算机系统的一个或多个通信路径;这种路径可能包括例如一个或多个网络130。
虽然存储器总线103在图1中显示为提供处理器101、主存储器102和I/O总线接口105之间直接通信路径的相对简单、单个总线结构,实际上,存储器总线103可能包括多个不同的总线或通信路径,其可能以各种形式中任何一种排列,例如分层、星形或网状结构中的点到点链路、多个分层总线、并行冗余路径或者任何其他适当类型的结构。此外,虽然I/O总线接口105和I/O总线104显示为单个各自单元,客户端计算机系统100实际上可能包含多个I/O总线接口单元105和/或多个I/O总线104。当显示多个I/O接口单元时,其将系统I/O总线104与运行到各种I/O设备的各种通信路径分离,在其他实施方案中,I/O设备的一些或全部直接连接到一个或多个系统I/O总线。
图1中描绘的客户端计算机系统100具有多个连接的终端121,122,123和124,例如可能是典型的多用户“大型”计算机系统。典型地,在这种情况下,连接设备的实际数目大于图1中所示的那些,虽然本发明并不局限于任何特定大小的系统。客户端计算机系统100可能作为选择是典型地仅包含单个用户显示器和键盘输入的单用户系统,或者可能是具有很少或不具有直接用户接口,但是接收来自其他计算机系统(客户端)请求的服务器或类似设备。在其他实施方案中,客户端计算机系统100可能实现为个人计算机、便携式计算机、膝上型或笔记本计算机、PDA(个人数字助理)、平板计算机、袖珍计算机、电话、传呼机、汽车、电话会议系统、仪表或任何其他适当类型的电子设备。
网络130可能是任何适当的网络或网络组合并且可能支持适合于到/来自客户端计算机系统100的数据和/或代码的通信的任何适当协议。在各种实施方案中,网络130可能代表直接或间接连接到客户端计算机系统100的存储设备或存储设备的组合。在一种实施方案中,网络130可能支持Infiniband。在另一种实施方案中,网络130可能支持无线通信。在另一种实施方案中,网络130可能支持硬布线通信,例如电话线或电缆。在另一种实施方案中,网络130可能支持以太网IEEE(电器和电子工程师协会)802.3x规范。在另一种实施方案中,网络130可能是因特网并且可能支持IP(因特网协议)。
在另一种实施方案中,网络130可能是局域网(LAN)或广域网(WAN)。在另一种实施方案中,网络130可能是热点服务提供商网络。在另一种实施方案中,网络130可能是内联网。在另一种实施方案中,网络130可能是GPRS(通用分组无线电服务)网络。在另一种实施方案中,网络130可能是FRS(家庭无线电服务)网络。在另一种实施方案中,网络130可能是任何适当的蜂窝状数据网络或基于蜂窝的无线电网络技术。在另一种实施方案中,网络130可能是IEEE 802.11B无线网络。在另一种实施方案中,网络130可能是任何适当的网络或网络的组合。虽然显示一个网络130,在其他实施方案中,任何数目(包括零个)网络(相同或不同类型)可能存在。
服务器132可能包括已经对客户端计算机系统100描述的硬件组件的一些或全部。服务器132还包括对等服务器处理程序136和服务器调用协调程序138。服务器132参考图2在下面进一步描述。
在一种实施方案中,对等服务器处理程序136和服务器调用协调程序138,或者其任何组合或部分,包括能够在类似于处理器101的处理器上执行的指令或者能够由在处理器上执行的指令解释的语句以执行如参考图2,6和7在下面进一步描述的功能。在另一种实施方案中,对等服务器处理程序136和服务器调用协调程序138,或者其任何组合或部分,可能在微码中实现。在另一种实施方案中,对等服务器处理程序136和服务器调用协调程序138,或者其任何组合或部分,可能经由逻辑门和/或其他适当硬件技术在硬件中实现,代替或除了基于处理器的系统之外。
应当理解,图1目的在于在高级别描绘客户端计算机系统100、网络130和服务器132的代表性主要组件,各个组件可能具有比图1中表现的更大复杂度,不同于或除了图1中所示那些之外的组件可能存在,以及这些组件的数目、类型和结构可能变化。这种其它复杂度或其它变化的几个特定实例在这里公开;应当理解,这些仅作为实例并且不一定仅是这种变化。
图1中所示并实现本发明各种实施方案的各种软件组件可能以多种方式实现,包括使用各种计算机软件应用程序、例程、组件、程序、对象、模块、数据结构等,在下文称作“计算机程序”或简单地“程序”。计算机程序典型地包括在各种时刻驻留在客户端计算机系统100中各种存储器和存储设备中,并且当由客户端计算机系统100中一个或多个处理器101读取并执行时,使得客户端计算机系统100完成执行包括本发明实施方案各个方面的步骤或单元必要的步骤的一个或多个指令。
而且,虽然本发明的实施方案已经并且在下文将在全功能的计算机系统的上下文中描述,本发明的各种实施方案能够以多种形式作为程序产品发行,并且本发明同样适用而不管用来实际执行发行的特定类型的信号承载介质。定义该实施方案功能的程序可能经由多种有形信号承载介质存储在客户端计算机系统100和/或服务器132中,在客户端计算机系统100和/或服务器132上编码以及递送到客户端计算机系统100和/或服务器132,其中有形信号承载介质包括但不局限于下面的计算机可读介质(1)永久地存储在不可重写存储介质,例如连接到计算机系统或位于其中的只读存储器或存储设备,例如CD-ROM、DVD-R或DVD+R上的信息;(2)存储在可重写存储介质,例如硬盘驱动器(例如DASD 125,126或127)、CD-RW、DVD-RW、DVD+RW、DVD-RAM或软盘上的可更改信息;或者(3)由通信或传输介质,例如通过计算机或电话网络,例如网络130传送的信息。
这种有形信号承载介质,当承载指导或控制本发明功能的计算机可读、处理器可读或机器可读指令或语句或者使用其编码时,代表本发明的实施方案。
本发明的实施方案也可能作为与客户端公司、非盈利组织、政府实体、内部组织结构等的服务约定的一部分而递送。这些实施方案的方面可能包括配置计算机系统以执行这里描述的方法中的一些或全部,以及使用实现这里描述的方法中一些或全部的软件系统或web服务。这些实施方案的方面也可能包括分析客户端公司,响应分析产生建议,产生软件以实现建议的部分,将软件集成到现有处理和基础结构中,计量这里描述的方法和系统的使用,分配费用给客户,并且针对他们对这些方法和系统的使用给用户开账单。
另外,在下文描述的各种程序可能基于它们在本发明具体实施方案中实现的应用而识别。但是,下面的任何特定程序命名仅为了方便而使用,因此本发明的实施方案不应当局限于仅在由这种命名法识别和/或隐含的任何具体应用中使用。
图1中所示的实例环境并不意在限制本发明。实际上,其他备选硬件和/或软件环境可以使用而不背离本发明的范围。
图2描绘根据本发明实施方案图1的实例系统的所选组件的框图。说明的是经由网络130(图1)可通信地连接到主动服务器132-1的客户端100。主动服务器132-1经由网络130(图1)可通信地连接到被动服务器132-2和132-3,但是在其他实施方案中,任何数目的客户端、主动服务器和被动服务器可能存在。服务器132(图1)一般地指主动服务器132-1以及被动服务器132-2和132-3。
主动服务器132-1包括主动对等服务器处理程序136-1和主动服务器调用协调程序138-1。被动服务器132-2包括被动对等服务器处理程序136-2和被动服务器调用协调程序138-2。被动服务器132-3包括被动对等服务器处理程序136-3和被动服务器调用协调程序138-3。对等服务器处理程序136(图1)一般地指主动对等服务器处理程序136-1以及被动对等服务器处理程序136-2和136-3。服务器调用协调程序138(图1)一般地指主动服务器调用协调程序138-1以及被动服务器调用协调程序138-2和138-3。术语“主动”和“被动”在这里仅为了方便而使用,并且在其他实施方案中,对于一个请求束为“主动”的服务器132、对等服务器处理程序136和服务器调用协调程序138可能对于另一个请求束为“被动”,反之亦然。因此,例如,服务器132-1可能作为一个请求束的主动服务器操作,而同时作为其他请求束的被动服务器操作。类似地,例如,服务器132-2可能作为一个请求束的被动服务器操作,而同时作为其他请求束的主动服务器操作。
服务器选择机构160累积来自应用162的动作直到达到边界。边界可以由事务、由活动或由用户指定。服务器选择机构160基于动作创建工作单元并且在边界处将工作单元捆绑成请求束168。服务器选择机构160进一步经由工作单元相对成本数据164和服务器成本数据165从多个服务器132中选择主动服务器132-1,以接收请求束168。服务器选择机构160可以对于不同的请求束168选择不同的主动服务器132-1。服务器选择机构160基于请求束168的性质、请求束168中工作单元的相对成本数据164以及它们的平均服务器成本数据165确定主动服务器132-1,以便使得在不同服务器132处理请求束168的成本达到最小。服务器选择机构160将请求束168发送到所选主动服务器132-1的主动服务器调用协调程序138-1。
主动服务器调用协调程序138-1协调请求束168中的工作单元。主动服务器调用协调程序138-1确定本地主动对等服务器处理程序136-1是否能够处理请求束168中的工作单元。如果本地主动对等服务器处理程序136-1不能处理工作单元,主动服务器调用协调程序138-1将工作单元发送到远程被动服务器132-2或132-3,在那里工作单元由被动对等服务器处理程序136-2或136-3处理。主动服务器调用协调程序138-1检查工作单元与工作单元条件处理的分支之间的相关性,以便增加请求束168中不同工作单元的并行计算。主动服务器调用协调程序138-1等待来自所有工作单元的结果。当接收到结果时,主动服务器调用协调程序138-1组合结果并将组合结果发送到客户端100。
图3A描绘根据本发明实施方案工作单元相对成本数据164的实例数据结构的框图。工作单元相对成本数据164包括记录305,310,315,320和325,但是在其他实施方案中,具有任何适当数据的任何数目的记录可能存在。记录305,310,315,320和325的每个包括工作单元字段330和相对成本字段335,但是在其他实施方案中,更多或更少的字段可能存在。
工作单元字段330标识事务、计算、操作、功能、请求、命令、或能够完成或执行的任何其他类型的工作单元。相对成本字段335标识当与其他工作单元相比较时完成或执行各个工作单元330的相对成本,而不管工作单元在哪个服务器132执行或完成。作为工作单元相对成本的实例,实现取回动作的工作单元可能比实现更新动作的工作单元具有较低的相对成本,并且实现浏览动作的工作单元可能比实现事务动作的工作单元具有较低的相对成本,而不管哪个服务器处理由该动作产生的工作单元。但是,在其他实施方案中,任何适当的动作、工作单元和相对成本可以使用。
图3B描绘根据本发明实施方案服务器成本数据165的实例数据结构的框图。服务器成本数据165包括记录350,355和360,但是在其他实施方案中,具有任何适当数据的任何数目的记录可能存在。记录350,355和360的每个包括服务器标识字段365和服务器成本字段370,但是在其他实施方案中,更多或更少的字段可能存在。服务器标识字段365标识服务器132。服务器成本370指示在服务器365处理工作单元的相对或绝对成本。在一种实施方案中,服务器成本370指示与特定服务器365相关联的成本,而不管服务器365完成或执行哪个工作单元330。在另一种实施方案中,服务器成本370取决于服务器365正在处理哪个工作单元330,所以服务器成本370可能取决于服务器365自身是否可以处理工作单元330或必须将工作单元330转发到被动服务器132-2或132-3而对服务器365变化。
作为服务器成本370的实例,由不同服务器标识符365标识的不同服务器132可能具有依赖于服务器132的类型、服务器132位于的国家、服务器132的工作量、服务器132的购买价格或操作成本、本地对等服务器处理程序136能够执行的服务,或任何其他适当因素的不同成本。在各种实施方案中,服务器132可能经由基于历史数据的训练,由基于规则的计算确定它们的成本,或可能具有由管理员设置的成本。
图4A描绘根据本发明实施方案调用流166的实例数据结构的框图。调用流166包括工作单元405,410,415,420和425,但是在其他实施方案中,具有任何适当数据的任何数目的工作单元可能存在。工作单元405,410,415,420和425的每个包括标识符字段430、对象字段435、方法字段440、参数字段450、分支字段455、相关性字段460以及主动服务器标识字段470。
标识符字段430标识调用流166中的工作单元和记录。对象435标识工作单元针对的对象,或工作单元需要访问的数据或设备。对象435的实例包括数据库、数据库表格、文档、文件、电子设备、存储设备、I/O处理器、网络接口设备、或方法440针对的任何其他适当类型的对象。方法440标识对等服务器处理程序136用来完成或执行工作单元的方法、功能、程序、模块或任何其他逻辑。参数450标识可能由从应用162接收的动作传递到方法440的任何数据。参数450的实例可能包括关键字、列、行标识符、账号、密码、条目或由方法完成或执行工作单元所需的任何其他适当数据。
分支455标识指定工作单元的顺序和条件执行的逻辑条件。例如,工作单元405具有分支455,指示如果工作单元A 405(由“A”的ID430标识)成功,那么工作单元B 410(由“B”的ID 430标识)将完成或执行,但是如果工作单元A 405不成功,那么工作单元C 415(由“C”的ID 430标识)将完成或执行。由主动服务器字段470指定的主动服务器132-1的主动服务器调用协调程序138-1读取分支455并且基于分支455的逻辑条件排序指定工作单元的执行,如参考图6在下面进一步描述的。
相关性字段460标识影响工作单元的处理或执行顺序或影响工作单元的可能并行处理的工作单元之间的相关性。例如,工作单元425具有相关性字段460,指示工作单元“A”和“D”的结果(例如,由工作单元“A”和“D”取回的数据)将由工作单元“E”使用。因此,主动服务器调用协调程序138-1不发送工作单元“E”到适当的对等服务器处理程序136直到工作单元“A”和“D”已经完成。但是,工作单元“A”和“D”可能以任何顺序或同时执行。由主动服务器字段470指定的主动服务器132-1的主动服务器调用协调程序138-1读取相关性460并且基于相关性460排序指定工作单元的执行,如参考图6在下面进一步描述的。
主动服务器标识字段470标识工作单元可能发送到的主动服务器132-1。服务器选择机构160选择主动服务器132-1并且因此设置主动服务器标识字段470,如参考图5在下面进一步描述的。
图4B描绘根据本发明实施方案请求束168的实例数据结构的框图。实例请求束168包括使用相同主动服务器470(图4A)的任何数目的捆绑工作单元,例如所示工作单元405,410,415,420和425。服务器选择机构160选择工作单元405,410,415,420和425并且将它们捆绑成请求束168,如参考图5在下面进一步描述的。
图5描绘根据本发明实施方案的实例动作处理的流程图。控制在块500开始。然后控制继续到块505,在那里服务器选择机构160接收来自应用162的动作。然后控制继续到块510,在那里服务器选择机构160确定是否已经遇到动作边界。在各种实施方案中,动作边界可以由应用162的事务,由应用162的活动,或由用户指定。
如果块510的确定成立,那么已经遇到动作边界,所以控制继续到步骤515,在那里服务器选择机构160确定由接收的累积动作产生的工作单元的相对成本335。在一种实施方案中,服务器选择机构160通过基于接收的动作在工作单元相对成本数据164中查找工作单元330并且读取相关相对成本335来确定相对成本。在另一种实施方案中,服务器选择机构160也使用来自应用162的动作基于接收的任何相关参数调节相对成本335。
然后控制继续到块520,在那里服务器选择机构160确定可用于处理与接收和累积的动作相关联的工作单元的服务器132的服务器成本370。在一种实施方案中,各种可用服务器的成本固定而不管工作单元,并且服务器选择机构160基于可用于处理工作单元的服务器365从服务器成本数据165中读取服务器成本370。
在另一种实施方案中,服务器选择机构160基于工作单元调节服务器成本370。例如,如果服务器365具有在可以本地处理工作单元的主动对等服务器处理程序136-1中可用的服务,那么服务器选择机构160使用服务器成本数据165中的服务器成本370而不修改。但是,如果服务器365必须引起发送或路由工作单元到被动服务器(例如被动服务器132-2或132-3)以由远程被动对等服务器处理程序(例如被动对等服务器处理程序136-2或136-3)处理的进一步通信成本,那么服务器选择机构160因此增加服务器365的服务器成本370。
然后控制继续到块525,在那里服务器选择机构160计算由服务器标识符365标识的可能可用服务器132的每个的总加权成本,其处理包括由累积动作产生的工作单元的请求束168。使用图3A,3B和4A的实例,各个记录405,410,415,420和425中的工作单元A,B,C,C和E具有各自的工作单元相对成本2,4,3,5和6。三个可能的服务器132存在在服务器成本数据165中各自服务器成本370为2,4和3的记录350的服务器A,记录355的服务器B以及记录360的服务器C。
如果服务器A自身能够处理工作单元A,B和C,但是需要发送或路由工作单元D和E到服务器B,那么服务器选择机构160将工作单元D和E的服务器成本370从2增加(在块520)到例如4。因此,服务器A具有总加权成本(2*2)+(2*4)+(2*3)+(4*5)+(4*6)=62。
如果服务器B自身能够处理工作单元B,C,D和E,但是需要发送或路由工作单元A到服务器C,那么服务器选择机构160将工作单元E的服务器成本370从4增加(在块520)到例如6。因此,服务器B具有总加权成本(6*2)+(4*4)+(4*3)+(4*5)+(4*6)=84。
如果服务器C自身能够处理工作单元A,B,D和E,但是需要发送或路由工作单元C到服务器A,那么服务器选择机构160将工作单元C的服务器成本370从3增加(在块520)到例如4。因此,服务器C具有总加权成本(3*2)+(3*4)+(4*3)+(3*5)+(3*6)=63。
服务器选择机构160然后比较每个服务器的计算的总加权成本(62比84比63),并且选择具有最低总加权成本的服务器A,并且指定该服务器为主动服务器132-1。
然后控制继续到块530,在那里服务器选择机构160基于累积动作和先前在块525确定的主动服务器创建工作单元的调用流166,包括创建标识符430、对象435、方法440、参数450、分支455、相关性460和主动服务器470。然后控制继续到块535,在那里服务器选择机构160基于调用流创建工作单元的请求束168并且发送请求束到所选主动服务器470。然后控制继续到块540,在那里主动服务器132-1处理请求束168,如参考图6在下面进一步描述的。然后控制继续到块599,在那里图5的逻辑返回。
如果块510的确定不成立,那么还没有遇到动作边界,所以控制继续到块510,在那里服务器选择机构160累积接收的动作。然后控制返回到块505,如先前在上面描述的。
图6描绘根据本发明实施方案在主动服务器132-1处请求束168的实例处理的流程图。控制在块600开始。然后控制继续到块605,在那里主动服务器调用协调程序138-1接收来自客户端100的请求束168。然后控制继续到块610,在那里主动服务器调用协调程序138-1确定请求束168中不具有分支455或相关性460的工作单元。主动服务器调用协调程序138-1还确定请求束168中使其分支455和相关性460满足的工作单元。
工作单元使其分支455满足,如果相关逻辑条件满足。使用图4A的实例,主动服务器调用协调程序138-1确定工作单元A是否已经执行并且成功。如果工作单元A已经执行并且成功,那么主动服务器调用协调程序138-1确定工作单元B使其分支满足并且可用于执行。类似地,如果工作单元A已经执行但是不成功,那么主动服务器调用协调程序138-1确定工作单元C使其分支满足并且可用于执行。
工作单元使其相关性460满足,如果在相关性460中指定的相关工作单元已经执行,也就是,如果工作单元的执行顺序满足。使用图4A中记录425的实例,主动服务器调用协调程序138-1确定工作单元A和D是否已经执行。如果工作单元A和D已经执行,那么工作单元E使其相关性460满足,因为工作单元E依赖的工作单元(A和D)已经执行,因此在相关性460中指定的执行顺序满足。
主动服务器调用协调程序138-1然后决定确定的工作单元是否可以由主动对等服务器处理程序136-1在本地处理。在一种实施方案中,主动服务器调用协调程序138-1基于执行确定的工作单元所必需的资源、服务或功能当前是否在主动对等服务器处理程序136-1可用,决定确定的工作单元是否可以在本地处理。
如果确定的工作单元可以在本地处理,那么主动服务器调用协调程序138-1将确定的工作单元发送到主动对等服务器处理程序136-1。如果工作单元不能在本地处理,那么主动服务器调用协调程序138-1将确定的工作单元发送到能够处理工作单元的适当被动服务器132-2或132-3。在一种实施方案中,主动服务器调用协调程序138-1基于执行确定的工作单元所必需的资源、服务或功能当前是否在被动服务器132-2或132-3可用来选择适当被动服务器132-2或132-3。
然后控制继续到块615,在那里主动对等服务器处理程序136-1处理或执行任何发送的工作单元并且创建或计算本地结果。被动服务器132-2或132-3处理或执行任何发送的工作单元并且创建或计算远程结果(如参考图7在下面进一步描述的)。主动服务器调用协调程序138-1接收本地结果和/或远程结果。
然后控制继续到块620,在那里主动服务器调用协调程序138-1确定请求束168中仍然未处理的任何工作单元是否需要远程被动服务器132-2或132-3。如果块620的确定成立,那么请求束168中的未处理工作单元不能在本地处理并且需要远程被动服务器132-2或132-3,所以控制继续到块625,在那里主动服务器调用协调程序138-1将在块620确定的工作单元发送到适当被动服务器132-2或132-3。然后控制继续到块630,在那里被动服务器132-2或132-3处理工作单元,如参考图7在下面进一步描述的。
然后控制继续到块635,在那里主动服务器调用协调程序138-1接收来自被动服务器132-2或132-3的远程结果。然后控制继续到块640,在那里主动服务器调用协调程序138-1组合远程结果和本地结果,如果有的话。然后控制继续到块645,在那里主动服务器调用协调程序138-1确定请求束168中的任何工作单元是否仍未处理。
如果块645的确定成立,那么至少一个未处理工作单元仍然存在于请求束168中,所以控制返回到块610,如先前在上面描述的。
如果块645的确定不成立,那么请求束168中所有工作单元都已处理,所以控制继续到块650,在那里主动服务器调用协调程序138-1将工作单元的组合结果发送到客户端100。然后控制继续到块699,在那里图6的逻辑返回。
如果块620的确定不成立,那么请求束168中任何未处理工作单元不需要远程被动服务器132-2或132-3,所以控制继续到块655,在那里主动服务器调用协调程序138-1将在块620确定的工作单元发送到本地主动对等服务器处理程序136-1,其处理工作单元并返回本地结果。然后控制继续到块640,在那里主动服务器调用协调程序138-1组合本地结果和远程结果,如果有的话。然后控制继续到块645,如先前在上面描述的。
图7描绘根据本发明实施方案在被动服务器132-2或132-3处工作单元的实例处理的流程图。控制在块700开始。然后控制继续到块705,在那里被动服务器调用协调程序138-2或138-3接收来自主动服务器调用协调程序138-1的工作单元并且发送工作单元到其本地被动对等服务器处理程序136-2或136-3。然后控制继续到块710,在那里被动对等服务器处理程序136-2或136-3确定工作单元是否必须同步完成或执行。如果块710的确定成立,那么工作单元必须同步完成或执行,所以控制继续到块715,在那里被动对等服务器处理程序136-2或136-3保持到主动服务器调用协调程序138-1的连接。然后控制继续到块720,在那里被动对等服务器处理程序136-2或136-3执行工作单元或计算工作单元的结果,并且将结果经由保持的连接返回到主动服务器调用协调程序138-1。然后控制继续到块799,在那里图7的逻辑返回。
如果块710的确定不成立,那么工作单元不需要同步完成或执行,所以控制继续到块725,在那里被动对等服务器处理程序136-2或136-3释放到主动服务器调用协调程序138-1的连接。然后控制继续到块730,在那里被动对等服务器处理程序136-2或136-3执行工作单元并且计算工作单元的结果。然后控制继续到块735,在那里被动对等服务器处理程序136-2或136-3发起到主动服务器调用协调程序138-1的新连接,并且经由新连接发送计算的结果。然后控制继续到块799,在那里图7的逻辑返回。
在本发明实例实施方案的前面详细描述中,参考形成其一部分的附随附图(其中类似的数字表示类似的单元),并且其中作为说明显示本发明可以在其中实践的具体实例实施方案。这些实施方案足够详细地描述以使得本领域技术人员能够实践本发明,但是其他实施方案可以使用,并且可以进行逻辑、机械、电气和其他变化而不背离本发明的范围。在该说明书中使用的词语“实施方案”的不同实例不一定指相同的实施方案,但是它们可能指相同的实施方案。这里说明或描述的任何数据和数据结构仅是实例,并且在其他实施方案中,不同的数据量、数据类型、字段、字段的数目和类型、字段名、记录的数目和类型、条目或数据组织可以使用。另外,任何数据可以与逻辑组合,使得单独的数据结构不是必需的。因此,前面的详细描述不在限制的意义上进行,并且本发明的范围仅由附加权利要求定义。
在前面的描述中,陈述了许多具体细节以提供本发明实施方案的彻底理解。但是,本发明可以不以这些具体细节而实践。在其他实例中,众所周知的电路、结构和技术没有详细显示以便不遮盖本发明。
权利要求
1.一种方法,包括创建多个工作单元的束;从多个服务器中选择主动服务器,其中选择还包括确定多个工作单元的多个相对工作单元成本,确定多个服务器的多个相对服务器成本,基于相对工作单元成本和相对服务器成本计算多个服务器的多个总加权成本,并且选择具有最低总加权成本的主动服务器;以及将该束从客户端发送到主动服务器。
2.根据权利要求1的方法,其中创建工作单元束还包括创建工作单元之间的相关性。
3.根据权利要求2的方法,其中创建工作单元之间的相关性还包括创建工作单元的执行顺序。
4.根据权利要求1的方法,其中创建工作单元束还包括创建工作单元之间的分支。
5.根据权利要求4的方法,其中创建工作单元之间的分支还包括创建指定工作单元的条件执行的逻辑条件。
6.根据权利要求3的方法,其中主动服务器确定工作单元的每个是否可以在主动服务器执行,如果工作单元可以在主动服务器上执行,主动服务器执行工作单元并创建本地结果,以及如果工作单元不能在该服务器上执行,主动服务器将工作单元发送到被动服务器,其中被动服务器创建远程结果。
7.根据权利要求6的方法,其中主动服务器接收来自被动服务器的远程结果,将本地结果与远程结果组合成组合结果,并且将组合结果发送到客户端。
8.根据权利要求6的方法,其中主动服务器执行工作单元并且顺序地发送工作单元到被动服务器。
9.一种系统,包括创建多个工作单元的束的装置;从多个服务器中选择主动服务器的装置,其中选择还包括确定多个工作单元的多个相对工作单元成本,确定多个服务器的多个相对服务器成本,基于相对工作单元成本和相对服务器成本计算多个服务器的多个总加权成本,并且选择具有最低总加权成本的主动服务器;以及将该束从客户端发送到主动服务器的装置,其中主动服务器确定工作单元的每个是否可以在主动服务器执行,如果工作单元可以在主动服务器上执行,主动服务器执行工作单元并创建本地结果,以及如果工作单元不能在该服务器上执行,主动服务器将工作单元发送到被动服务器,其中被动服务器创建远程结果。
10.根据权利要求9的系统,其中创建工作单元束的装置还包括创建工作单元之间的相关性的装置。
11.根据权利要求10的系统,其中创建工作单元之间的相关性的装置还包括创建工作单元的执行顺序的装置。
12.根据权利要求9的系统,其中创建工作单元束的装置还包括创建工作单元之间的分支的装置。
13.根据权利要求12的系统,其中创建工作单元之间的分支的装置还包括创建指定工作单元条件的执行的逻辑条件的装置。
14.根据权利要求9的系统,其中主动服务器接收来自被动服务器的远程结果,将本地结果与远程结果组合成组合结果,并且将组合结果发送到客户端。
15.根据权利要求13的系统,其中主动服务器执行工作单元并且基于逻辑条件发送工作单元到被动服务器。
16.一种配置计算机的方法,包括配置计算机以创建多个工作单元的束;配置计算机以从多个服务器中选择主动服务器,其中选择还包括确定多个工作单元的多个相对工作单元成本,确定多个服务器的多个相对服务器成本,基于相对工作单元成本和相对服务器成本计算多个服务器的多个总加权成本,并且选择具有最低总加权成本的主动服务器;以及配置计算机以将该束从计算机发送到主动服务器,其中主动服务器确定工作单元的每个是否可以在主动服务器执行,如果工作单元可以在主动服务器上执行,主动服务器执行工作单元并创建本地结果,如果工作单元不能在该服务器上执行,主动服务器将工作单元发送到被动服务器,其中被动服务器创建远程结果,以及其中主动服务器接收来自被动服务器的远程结果,将本地结果与远程结果组合成组合结果,并且将组合结果发送到计算机。
17.根据权利要求16的方法,其中配置计算机以创建工作单元的束还包括配置计算机以创建工作单元的执行顺序。
18.根据权利要求17的方法,其中主动服务器执行工作单元并且根据执行顺序发送工作单元到被动服务器。
19.根据权利要求16的方法,其中配置计算机以创建工作单元的束还包括配置计算机以创建指定工作单元的条件执行的逻辑条件。
20.根据权利要求19的方法,其中主动服务器执行工作单元并且基于逻辑条件发送工作单元到被动服务器。
全文摘要
本发明公开一种方法、装置、系统和信号承载介质。在一种实施方案中,将多个工作单元累积成束并将该束发送到所选主动服务器。在一种实施方案中,选择主动服务器包括确定相对工作单元成本和相对服务器成本,据此计算服务器的总加权成本,并且选择具有最低总加权成本的主动服务器。主动服务器可在本地处理束中的工作或者将工作单元发送到被动服务器进行处理。主动服务器确定每个工作单元是否可以在主动服务器执行。如果工作单元可以在主动服务器上执行,主动服务器执行工作单元并创建本地结果;否则,主动服务器发送工作单元到被动服务器,并且被动服务器创建远程结果。主动服务器接收来自被动服务器的远程结果,将本地结果与远程结果组合成组合结果,并将组合结果发送到客户端。在各种实施方案中,分支和相关性数据包含在束中,主动服务器使用其排序并条件处理工作单元。
文档编号H04L29/06GK1956454SQ20061014285
公开日2007年5月2日 申请日期2006年10月27日 优先权日2005年10月28日
发明者沈金梅, 王浩, 理查德·A·迪耶德里奇 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1