CN1610348B - 动态可重配置负载均衡的方法和系统 - Google Patents

动态可重配置负载均衡的方法和系统 Download PDF

Info

Publication number
CN1610348B
CN1610348B CN200410084190.6A CN200410084190A CN1610348B CN 1610348 B CN1610348 B CN 1610348B CN 200410084190 A CN200410084190 A CN 200410084190A CN 1610348 B CN1610348 B CN 1610348B
Authority
CN
China
Prior art keywords
quality
service
server
client computer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200410084190.6A
Other languages
English (en)
Other versions
CN1610348A (zh
Inventor
陈华民
阿鲁恩·克瓦吉尔·伊延格
伊莎贝拉·M·鲁韦洛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hulu LLC
Coral Bay Innovations LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1610348A publication Critical patent/CN1610348A/zh
Application granted granted Critical
Publication of CN1610348B publication Critical patent/CN1610348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明动态涉及可重配置负载均衡的方法和系统,具体而言,提供了在客户机-服务器环境中为多个客户机提供数据服务的技术。在本发明的一个方面,该技术提供多个版本的数据,其中至少两个版本具有与之相关的不同开销。将各个客户机赋给多个服务质量类中的一个。满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。

Description

动态可重配置负载均衡的方法和系统
技术领域
本发明涉及根据信息系统管理内容请求的技术,特别是涉及动态可重配置负载均衡的技术。 
背景技术
已知例如因特网或万维网(WWW或Web)的信息系统上的动态内容量正在迅速增长。Web站点通常部署了生成动态内容的数据库。请求进入前端并被发送到一个或多个后端数据库中。满足针对后端数据库的请求所需的开销可能很高。高性能Web站点通常具有多个后端数据库。然而,存在关于如何将请求(包含对请求负载进行均衡)发送到多个后端数据库以及发送到其它例如管理/事务系统、用于在运行时刻(on-the-fly)创建数据的服务器程序等等的后端系统的问题。 
目前存在的Web服务器在访问后端系统的性能改善和服务质量(QoS)提供方面的支持有限。例如,现有的技术包含连接池(connectionpooling)和(可能的)服务器池(server pooling)。连接池维护针对后端系统的打开连接,并对收集到池中的连接上调度查询。因此,减少了Web应用的连接开销。然而,这种技术没有支持负载均衡和QoS提供的机制。 
而且,如果现有的应用没有变化,则难以使Web服务器不用了解后端系统的配置。例如Java数据库连接(JDBC)协议、使得Web服务器能够与后端系统进行通信的现有协议通常只接受一个系统作为数据源。因此,Web服务器被静态配置成使用一个后端系统。当例如服务器容量和后端系统的QoS策略的配置发生变化时,必须对Web应用进行适当的变化以反映这些变化。 
于是,需要提供克服上述提到的和与现有负载均衡和QoS传送 
方法相关的其它局限性的技术。 
发明内容
方法相关的其它局限性的技术。 
本发明提供了根据信息系统管理内容请求的技术。 
在本发明的第一个方面,对客户机-服务器环境中的多个客户机伺服数据的技术包括下列步骤/操作。提供多个(例如,二个或更多的)版本的数据,其中至少两个版本具有与之相关的不同开销。各个客户机被赋给多个服务质量类中的一个类。满足请求,使得属于高服务质量类的客户机被赋予访问需要较高开销以提供服务的数据版本的优先。 
而且,服务于一个版本的开销可以与版本的质量相关。多个版本可以包括不同分辨率的图像,并且属于高服务质量类的客户机被给予访问较高分辨率图像的优先。版本的质量可以与建立此版本所需的处理时间有关。服务于一个版本的开销可以与版本的最新程度有关。该技术可以进一步包括:响应于系统负载超过门限,以较低的服务开销的版本满足属于较低服务质量类的客户机的较大部分请求。服务器可以包括多个节点,并且不同的节点可以提供需要不同服务开销的数据版本。 
此外,该技术可以包括实现指定内容质量和等待时间中的至少一个的服务质量策略。可以为属于高级(premium)服务质量类的一个或多个客户机提供高质量内容和低等待时间的服务。可以为属于中等服务质量类的一个或多个客户机提供具有高质量内容和低等待时间之一特性的服务。可以为属于最大努力(best-effort)服务类的一个或多个客户机提供不指定内容质量和等待时间的服务。 
可以使用该客户机的身份、内容质量、至少一个服务器上的负载、至少一个服务器上的数据分布和/或至少一个服务器的容量路由客户机请求。 
在本发明的第二个方面,系统包括多个客户机,每个客户机属于一个服务质量类;用于将客户机请求发送到至少一个后端服务器的负 载均衡器;和提供不同对象的多个版本的至少一个后端服务器,其中一个对象的至少两个版本具有与之相关的不同开销。 
在本发明的第三个方面,一种用于提供数据伺服服务的方法包括服务提供方:(i)提供多个数据版本,其中至少两个版本具有与之相关的不同开销;(ii)将各个客户机赋给多个服务质量类中的一个类;(iii)满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。 
在本发明的第四个方面,对多个客户机伺服数据的技术包括下列步骤/操作。建立至少两个服务质量类。然后使请求得到满足,使得为属于一个服务质量类的客户机提供具有与之相关的开销的数据版本的服务,而为属于另一个服务质量类的客户机提供具有与之相关的另一开销的数据版本的服务。 
因此,本发明可以有利地向后端服务器提供有效的负载均衡,以及向某些客户机提供比其它客户机更好的服务质量的服务质量路由。负载均衡可以遵循能够动态地进行修正(重新配置)而不必重新编译应用或中间代码的策略。 
根据本发明的一个方面,提供了一种在客户机-服务器环境中为多个客户机提供数据服务的方法,包括步骤:提供多个版本的数据,其中至少两个版本具有与其质量相关的不同开销;将各个客户机赋给多个服务质量类中的一个;以及满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。 
根据本发明的另一个方面,提供了一种用于在客户机-服务器环境中为多个客户机提供数据服务的设备,包括:存储器,和至少一个与该存储器相连的处理器,用于:提供多个版本的数据,其中至少两个版本具有与其质量相关的不同开销;将各个客户机赋给多个服务质量类中的一个;以及满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。 
根据本发明的另一个方面,提供了一种系统,包括:多个客户机,每个客户机属于一个服务质量类;用于发送来自客户机的请求到至少 一个后端服务器的负载均衡器;和用于提供不同对象的多个版本的至少一个后端服务器,其中一个对象的至少两个版本属于与之相关的不同开销。 
根据本发明的另一个方面,提供了一种在客户机-服务器环境中提供数据伺服服务的方法,包括步骤:服务器提供方:提供多个版本的数据,其中至少两个版本具有与其质量相关的不同开销;将各个客户机赋给多个服务质量类中的一个;以及满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。 
根据本发明的另一个方面,提供了一种在客户机-服务器环境中向多个客户机提供数据服务的方法,包括步骤:建立至少两个服务质量类;和满足请求,使得用具有一个与之相关的开销的数据版本为属于一个服务质量类的客户机提供服务,并且用具有另一个与之相关的开销的数据版本为属于另一个服务质量类的客户机提供服务。 
当结合附图一起阅读下列所例举的实施例的细节描述时,本发明的这些和其它目的、特性和优点变得更为明显。 
附图说明
图1是一个举例说明本发明信息系统实现技术的方框图; 
图2是一个举例说明本发明的示例性分层后端信息系统实现技术的方框图; 
图3是一个根据本发明的实施例,举例说明基于负载的质量区分方法的方框图; 
图4是一个根据本发明的实施例,举例说明基于类的质量区分方法的方框图; 
图5是一个根据本发明的实施例,举例说明混合质量区分方法的方框图; 
图6是一个根据本发明的实施例,举例说明后端服务器选择方法的方框图; 
图7是一个根据本发明的实施例,举例说明集中式负载均衡模式 的方框图; 
图8是一个根据本发明的实施例,举例说明分布式负载均衡模式的方框图; 
图9是一个根据本发明的实施例,举例说明路由中间设备(routing intermediary)的方框图; 
图10是一个根据本发明的实施例,根据可实现的信息系统的一个或多个部分,举例说明计算机系统的硬件实现的方框图。 
具体实施方式
本发明将在下面所例举的因特网或Web实现的背景下进行阐述。不过,应当理解的是本发明并不限于这样的信息网络结构。本发明一般可应用到希望进行有效和高效负载均衡和QoS路由的环境中。 
为了引用方便,细节描述的剩余部分将被分为下列各节:(1)说明性结构概述;(2)说明性的方法/系统。 
1.说明性结构概述 
最先参照图1,它是一个举例说明本发明信息系统实现技术的方框图。如图所示,信息系统10包括一个或多个属于高服务质量类的客户机11-H、一个或多个属于低服务质量类的客户机11-L,一个或多个Web服务器12、通过统一资源定位符(URL)13-1至13-n可访问的内容源14-1至14-n。应当理解的是,内容源可以但不限于后端数据库和/或其它例如消息/事务系统的后端系统、用于在运行时刻创建数据的服务器程序等等。应当进一步理解的是,系统100中的组成部分可以是例如因特网或万维网的较大分布式信息系统的一部分。 
也可具有更多服务质量类(例如3,4,5,6个等等)。属于较高服务质量类的客户机被给予访问较高质量内容的优先。在许多情形中,较高的质量内容要求较多的服务开销。较高质量内容的例子包含但并不限于更详细的内容、更新的内容和更高分辨率的图像等等。系统将每个内容源描述为包含高开销版本(15-1至15-n)和低开销版本(16-1至16-n)的内容。高开销版本通常比低开销版本有更高的质量。注意,可以有多于二个的内容版本(例如3,4,5,6个等等)。不同的 版本通常会要求不同的服务开销。版本的服务开销通常与此版本的质量相关。 
可以通过高质量内容或较低质量内容满足Web客户机要求。高质量内容通常消耗更多的生成开销。为了满足广泛的需求以提高服务满意度,Web页面可以被区分成具有不同级别开销的版本。这样的方法同样可以适于配置具有不同容量的Web服务器以为客户机提供不同的服务。如图1所示,Web页面具有多个版本,这些版本通常使用不同的开销来生成。 
在数据驱动的Web站点中,内容可以从例如数据库服务器和主机的后端信息系统中检索出来。在这样的环境中,内容的区分通过区分的内容复制和查询路由来实现。 
图2举例说明的是一个本发明的示例性分层后端信息系统实现技术的方框图。如图所示,系统20包括一个或多个(前端)Web服务器、一个或多个应用服务器21、一个或多个智能路由中间设备22和分层后端服务器23和24。这些后端服务器可以是数据库服务器。同样,可以有多个高端服务器23和/或多个低端服务器24。 
高端服务器23存储具有最高级的质量的最新信息。如果高端服务器被太多的客户机请求所吞没,则响应时间会受到不利的影响。因此,在负载过重期间,高端服务器23可以仅满足这些请求中的一部分请求。 
低端服务器24周期性地从高端服务器23复制内容。低端服务器24含有不太频繁更新的信息或精度要求不高的信息。当业务量超过高端服务器23的容量时,低端服务器24开始服务于请求,请求来自于低优先(less-favored)的客户机,并且/或者低端服务器24中的内容足以满足客户机的要求(例如图像分辨率、文件大小等等)。 
低端服务器24可不同于高端服务器23以减少与不同查询类型相关的成本。例如,高端服务器23能够运行DB2(可以从纽约州的Armonk的IBM公司获取),而低端服务器24则能够运行MySQL(可从华盛顿州的西雅图的MySQL有限公司获取)。低端服务器可以服务 于所选择的查询以在该种类型的操作中利用MySQLT限制。能够使用DB2的DataPropogator/DataJoiner将数据传输给MySQL。重要的是解决这两个系统之间可能会出现的不兼容问题。 
2.说明性方法/系统 
2.1 QoS方法 
伺服一个版本的内容的开销通常与它的质量有关。高质量的版本通常消耗更多的资源。基于数据的质量和系统的配置,存在多种方式来实现本发明的QoS方法,例如:质量区分、数据划分和查询类型区分。 
在质量区分方法中,后端服务器存储具有不同开销的内容。高端服务器23存储高质量内容,而低端服务器24包含具有较低开销的数据。应当理解的是,可以存在多于二个的服务器,其存储多于两种的不同质量级别的内容。处理低开销数据时的低端服务器的性能可以匹配或甚至超过高端服务器的性能。在数据划分方法中,所有后端服务器中的数据可以具有相同的开销,但是某些后端服务器不完全复制整个数据集。在第三种方法中,后端服务器以不同的方式进行优化,以服务于特定查询类型。 
在质量区分方法中,客户机可以较多开销的成本被提供高质量的内容。高质量内容可以消耗较多的中央处理单元(CPU)时间。高分辨率的图像消耗更多的网络带宽。最新的时间敏感内容不经常进行高速缓存,因此要求较多的开销进行检索。 
质量区分方法可以应用于下列类型的环境中: 
(i)高端服务器存储更详细的文件和高分辨率的图像,而低端服务器存储降级的版本。当业务量少的时候,请求被路由到高端服务器。在高负载状态下,高级客户机仍然路由到高端服务器,而其它客户机由低端服务器提供服务。客户机简表可以基于它们的预订(例如付费高的顾客比付费低的顾客享受更好的数据质量),或基于例如其设备的容量的客户机特性。例如,使用手提式设备的那些顾客可以享受与该设备的呈现能力匹配的低分辨率图像的服务。 
(ii)在流式查询服务中,内容频繁更新,数据的最新程度决定了服务的质量。高端服务器存储最新的数据,低端服务器周期性地从高端服务器复制内容。当业务量很大时,低付费顾客从低端服务器得到内容服务以防高端服务器过载。 
尽管在许多情况下希望获得高质量的内容,但是存在低等待时间优先的情形。使用例如无线或拨号网络的低带宽链路的客户机可以优先选择服务器的响应而不是内容质量。因此,客户机具有不同的服务需求。于是能够通过区分内容质量并且改变响应的等待时间而提供QoS。 
在数据划分方法中,数据集被划分和分配给不同的后端服务器。例如,在电子商务(e-commerce)Web站点中,一个后端服务器可存储详细目录数据,而另一个后端服务器可存储顾客信息。对不同数据源操作的查询被路由到合适的后端服务器。这种方法能够进行有效的数据缓存、检索,并且利于磁盘和存储器访问密集的操作。然而,其效率取决于数据相关性。如果操作频繁地同时使用详细目录数据和顾客数据,则需要多个连接以从不同的后端服务器检索出数据。 
使用查询类型区分的应用如下所述。后端服务器具有不同的系统类型,其中某些后端服务器比其它后端服务器能够更好地进行特定的操作。路由模块使用这种差别在性能和成本方面获益。例如,像MySQL那样的简单数据库实现在例如选择的查询类型方面优于其它数据库。因此某些后端服务器可以被定制成对这些类型的查询提供服务。对硬件配置进行定制以加速指定操作也是有益的。例如,更多的随机访问存储器(RAM)可以大大加速联合操作。更加强大的CPU可以加速计算密集的查询的执行。这种方法可以考虑数据分布以改善数据局部性。 
2.2基于负载的质量区分 
图3是一个根据本发明的实施例,举例说明基于负载质量区分方法的方框图。所例举的方法可以通过一个或多个后端服务器来实施。在图3的基于负载的质量区分方法中,以相同方式对待多个客户机。服务于服务的内容的版本由系统负载决定。系统负载可以是CPU使用 率和存储设备的业务强度的函数。 
例如,示例性策略可以定义如下:(i)当CPU使用率在80%以下时,所有的请求都能享受高质量的服务;(ii)当CPU使用率大于90%时,所有的请求都享受低质量的服务;(iii)当CPU使用率在80%和90%之间时,50%的请求给予高质量的服务,而另外50%给予低质量的服务。 
在这种方法中,版本选择器32从Web服务器31接收URL。如果URL具有不同开销的多个版本,则咨询系统负载监视器33。系统负载监视器33监视Web服务器、网络和后端服务器的负载。监视器将负载信息34发送到版本选择器32。负载信息34可以是例如CPU使用率、磁盘业务量等等的形式。版本选择器32基于负载信息和策略选择合适的URL版本(例如,低开销版本35或高开销版本36),检索出内容并与Web服务器31进行通信。 
2.3基于类的质量区分 
图4是一个根据本发明的实施例,举例说明基于类的质量区分方法的方框图。所例举的方法可以通过一个或多个后端服务器来实现。正如图4所描述的那样,所请求的URL的版本由该客户机所属的QoS类来确定。该客户机的QoS类通过请求所来自的网际协议(IP)地址和/或其它例如登录名、Cookie等等的客户信息来识别。 
较高优先类的请求享受较高质量的内容服务。例如,基于类的路由策略如下:(i)类1:100%为高质量;(ii)类2:35%为高质量,25%为中等质量,45%为低质量;(iii)类3:50%为中等质量,50%为低质量。 
在这种方法中,Web服务器41对超文本传输协议(HTTP)请求进行分析,提取该客户机的身份和浏览器特性。这样的信息42被送给版本选择器43。版本选择器43基于QoS信息和策略选择适当的URL版本(例如,低开销版本44或高开销版本45),检索出相应的内容,并与Web服务器41进行通信。 
2.4混合质量区分 
图5是一个根据本发明的实施例,举例说明混合质量区分方法的方框图。所例举的方法可以通过一个或多个后端服务器来实现。在图5中,用于服务于请求的版本由该客户机的QoS类和当前系统的负载共同确定。例如,能够制定如下策略:(a)当CPU的使用率在80%以下时,为所有的请求提供高质量的服务;(b)当CPU使用率大于80%时:(i)类1:80%的请求享受高质量的服务,20%采用低质量的服务;(ii)类2:35%为高质量,20%为中等质量,45%为低质量;(iii)类3:50%为中等质量,50%为低质量。 
在这种方法中,版本选择器53从Web服务器51接收该客户机的URL和QoS类52。如果URL具有不同开销的多个版本,则咨询系统负载监视器54。系统负载监视器54监视Web服务器、网络和后端服务器的负载。监视器54向版本选择器53发送负载信息55。版本选择器53基于负载信息、该客户机的QoS类和策略选择适当的URL版本(例如版本号56)信息,检索出(57)内容,并与Web服务器51进行通信。 
2.5分层配置 
在图2所示的多层环境中,内容可以通过后端服务器23和24检索。请求被路由到适当的服务器以获得恰当的服务。路由中间设备22执行路由功能。分层后端服务器可以具有不同容量。例如,在数据库环境中,数据表可以不完全在所有的后端服务器中进行复制。具有最完整复制的服务器则是高端服务器23,具有部分复制的服务器是低端服务器24。高端服务器通常比低端服务器24具有更多的容量。 
当HTTP请求到达时,前端Web服务器21对请求进行分析并提取客户机身份(如果有的话)。客户机身份与服务于请求的QoS类有关。Web服务器21可以调用应用服务器(例如IBM公司的WebSphere应用服务器)中的业务应用逻辑。这些业务应用不必知道后端服务器的配置。因此,对这些应用进行重写可能并无必要。 
当业务应用与后端服务器进行通信时,它们首先将查询传递到路由中间设备22。后者基于查询所属的QoS类、后端服务器的负载分 布和查询的类型(例如,它们是否更新数据源)将这些查询发送到适当的后端服务器。下面描述所例举的路由策略和实施方法。 
2.6路由策略 
路由中间设备22根据特定路由策略将查询发送到后端服务器。在这种配置中的路由策略的例子可以包含: 
(1)数据仿射性(affinity) 
如果应用需要访问没有驻留在低端服务器24中的数据库表,该应用使用高端服务器23。这种策略适用于数据没有完全被复制的情形。 
(2)数据一致性 
如果已知应用包含数据插入、更新或删除操作,则虚拟驱动程序(下面在图9的环境中描述)选择高端服务器23作为它的数据源,以保持低端服务器24的更新。也可以将路由中间设备22编程为调度此查询,以在应用完成时对低端服务器24进行更新。 
(3)查询复杂度 
如果应用含有不好在一个服务器中处理、否则会使得对这些查询的处理过程与其它服务器相比导致其等待时间很长的查询,这个应用将使用高端服务器23。这些操作的例子包含联合和递归选择。这种情形的检测可以不需要分析该应用代码。可通过对两个服务器以前的访问时间进行比较来进行识别。 
(4)QoS策略 
在基于QoS的策略中,服务器选择是业务量构成和请求的优先级的函数。这样的策略在下面的2.11节将进一步地阐述。 
(5)服务器负载 
在负载均衡策略中,如果高端服务器23表现为高负载,则接下来的请求使用低端服务器24。这样的策略将在下面的2.10节进行进一步的阐述。 
2.7后端服务器选择 
在多节点后端服务器配置中,具有不同版本的内容可以在后端服 务器间进行复制。含有高质量内容的版本的后端服务器通常为服务这些请求而消耗更多的资源。例如,一个服务器可以是频繁接收外部更新处理的数据库服务器。它维持着最新的数据。其它的服务器可以是文件服务器,它缓存来自数据库服务器的查询结果。数据库服务器会比文件服务器花费更多的CPU时间以处理查询。然而,该数据库产生更新的版本。 
图6是一个根据本发明的实施例,举例说明后端服务器选择方法的方框图。如图6所述,URL和QoS信息被传给版本选择器61,它决定URL的哪一个版本应当服务于请求。然后版本选择器61将该版本号传给服务器映射模块62。服务器映射模块62维护内容复制信息63,该信息在所有后端服务器中映射内容和其多个版本的复制位置。服务器映射模块62基于版本号和复制状态提取服务器地址。然后模块62连接到地址64并将查询路由到此地址。这种功能可以在路由中间设备22中实现。 
2.8系统实现方案 
本发明提供了不同的可选实现方式,包含集中式模式和分布式模式。 
在集中式模式中,由集中式路由中间设备作出路由决策,集中式路由中间设备具有关于业务量、系统负载和/或后端服务器之间的配置差别的知识。Web应用与路由中间设备进行通信以获得路由指令。 
在分布式模式中,路由决策不是通过集中式实体来做出的。Web应用基于后端服务器中负载分布的局部估计将查询发送到适当的后端服务器。Web应用周期性地将它们各自的路由策略集中起来,如果在必要时对其进行修改以保持策略的一致性。 
2.8.1集中式模式 
图7是一个根据本发明的实施例,举例说明集中式负载均衡模式的方框图。如图所示,Web应用71-1至71-m与交换机72进行通信。交换机72使用路由策略73以处理服务器选择、查询传输和将结果转送到Web应用。交换机72可以作为上述的路由中间设备模块 22(图2)来实施。路由策略73在上述的2.6节举例进行了说明。 
一个优点是路由中间设备对针对后端服务器75-1至75-n的业务量具有全局的观点。交换机72因此能够确保路由决策的一致性。然而,当业务量很大时,交换机72可以成为一个瓶颈。这样的实现同样对驻留在不同机器中的多个Web应用会需要特殊的应用程序设计接口(APIs)74,以便和与后端服务器75-1至75-n交互的交换机72进行通信。因此这种模式会需要改变已存在的应用。 
2.8.2分布式模式 
图8是一个根据本发明的实施例,举例说明分布式负载均衡模式的方框图。在这种模式下,Web应用81-1至81-m使用相应的交换机83-1至83-m局部地做出它们自己的路由决策(就后端服务器84-1至84-n而言),并周期性地与仲裁器82进行通信。仲裁器82将全局路由和业务量信息85合并,并指示Web应用调整它们的路由策略。这种模式对路由功能进行分布,因而比集中式模式更加可伸缩。仲裁器81可以利用分别在下面的2.10节和2.11节阐述的本地检测方法和QoS策略协调方法。 
2.9路由中间设备的实现 
图9是一个根据本发明的实施例,举例说明路由中间设备的方框图。在这个实施例中,路由中间设备是根据基于Java servlet的系统进行实施的。假定数据库服务器提供后端服务。 
如图9所示,路由中间设备由两部分组成:调用方servlet 91和虚拟JDBC驱动程序93。调用方servlet 91能够通过信息传递或共享存储器与虚拟JDBC驱动程序93进行通信。 
在Java servlet环境中,调用方servlet(91)可以是指在Web服务器(90)结束协议处理之后获得HTTP请求的处理句柄的服务器。调用方servlet可以解析URL和实际业务应用逻辑之间的映射,并为业务应用逻辑构建运行时间环境。应用servlet 92可以由调用方servlet 91进行调用,并实现业务逻辑。 
JDBC驱动程序94-1至94-n可以是应用(例如Java servlet)和 数据库服务器95-1至95-n之间的接口。JDBC驱动程序从应用接收命令(结构化查询语言命令或SQL),根据指定协议对它们进行转换,将命令发送到数据库服务器,并从数据库中检索出结果。 
虚拟JDBC驱动程序93驻留在应用和实际的JDBC驱动程序94-1至94-n之间,驱动程序94-1至94-n与数据库服务器95-1至95-n进行通信。驱动程序93从这些应用接收命令并将它们转递到实际的JDBC驱动程序。在传递期间,驱动程序93可以根据目的驱动程序的规格接收命令。驱动程序93同样也能够选择命令发送的目的地。 
调用方servlet 91从HTTP请求中获得客户机信息。这样的信息可以包含确定其优先级的客户机身份和指示其呈现能力的浏览器类型。然后,在将请求发送给执行业务逻辑的应用servlet 92之前,调用方servlet 91将此信息94发送到虚拟JDBC驱动程序93。当应用servlet 92需要与数据库联系时,它可以首先建立数据库连接。 
一个建立数据库连接的示例性方法是调用例如下面的函数: 
Connection conn=DriverManager.getConnection(url,“username”,“password”) 
其中url是一个指向数据库服务器地址的字符串。 
与直接连接到实际数据库服务器相反,应用servlet 92可以首先通过将其地址赋给参数url来调用虚拟JDBC驱动程序93。然后,后续命令可以被虚拟JDBC驱动程序93截取。 
虚拟JDBC驱动程序93处理查询路由和查询语法差别的消除。更具体地,当虚拟JDBC驱动程序93被调用时,驱动程序决定哪个实际数据库服务器应当服务于来自应用servlet的后续查询。这种方法在这里的2.6节、2.7节、2.10节和2.11节进行了描述。 
在不同的数据库服务器中有许多依赖于平台的SQL模式。因此,可能有必要向不同的数据库提供适当的SQL。有多种解决方案,例如延缓查询具体化(deferred query materialization)和查询重写。 
延缓查询具体化为查询语言提供抽象层。与直接使用SQL查询 相反,应用逻辑使用与后端数据库实现无关的特殊API以构建查询逻辑,并将其翻译成与真实平台相关的数据库查询。因此,应用逻辑经常不需要了解其与之交互的实际数据库,而且程序员能够把更多的注意力集中在业务逻辑本身。这种类型的例子包含Java数据对象(JDO)规范(加利福尼亚州圣克拉拉市的Sun Microsystem公司)。这个方法的缺点是现有的应用可能必须重新编写以采用分层服务。可选地,查询也能够在被导向分层服务器之前进行重写以消除语法差别;于是,分摊(amortize)了修改现有应用的开销。 
在选择实际数据库服务器和消除查询语法差别之后,虚拟JDBC驱动程序93调用与数据库服务器相关的实际JDBC驱动程序并将查询传递给该实际JDBC驱动程序。后者执行数据库处理逻辑。 
2.10负载检测 
检测服务器负载的一种方式是利用响应时间变化。然而,因为对单个数据库查询的访问时间可能变化很大,它并不总是服务器负载的可靠标志。 
负载检测技术可以基于每个URL的总数据库访问时间和相关HTTP请求处理时间之比的变化。数据库访问时间可以通过结果集的大小、查询复杂性和查询并发度来决定,而查询并发度是非常不稳定的。然而,相应的servlet可能需要处理结果集并构建查询命令,查询的复杂性与访问数据库服务器的复杂性成近似为线性的关系。于是,当数据集变化不是很大时,该比值能够表示哪个服务器是过载的。由于数据库的访问时间过长而产生的较高比值表明该数据库负载更多。相反,较低的比值表明该Web负载较少。 
更具体地,那些没有数据更新操作的URL的数据库服务器选择算法如下。如果以前的访问表明URL是数据库访问密集的(以总数据库访问时间为特征),则在完成时,它的总数据库访问时间和HTTP处理时间的比值可以估计出来,并可以与先前的值进行比较。如果它们的差值超过了一定的门限,可以指令交换机将某些业务量路由到辅助数据库服务器。否则,当前的业务量负载对于高端服务器(图2中的 23)容量可以被认为是可接受的,而且当前业务量速率和比值可以作为将来的参考而记录下来。 
负载检测算法可以确定使用高端服务器23的同时请求的最大数目Max。量Max可以定义如下: 
在上述方程式中: 
(i)正实数a和b是调节参数并且满足a+b=1。较高的a值导致高端服务器23的业务量更加逐渐的减少,而较低的a值对于防止高端服务器23的过载更有效。 
(ii)Max是同时请求的最大数目的先前值。 
(iii)Rate是高端服务器23的当前业务量速率。 
(iv)r是被监视查询的数据库访问时间和HTTP处理时间之比,而 是它的均值。 
(v)Δ是控制多大的r的变化被认为是正常的变化门限。超出该门限的变化被认为是出现过载。 
该方程式的思路如下。同时连接的当前最大值由它的历史值和当前的业务量速率所确定。调节参数a和b确定每个分量影响Max值的程度;a值越大,b值越小使得Max受业务量变化的影响较小,反之亦然。如果比值r在变化范围之内,则高端服务器23可以被认为是未得到充分利用,使得能够处理额外的业务量而不受惩罚。一旦r在它的变化范围之外,当前的业务量速率和Max的历史值接近高端服务器23的容量。这种方法的一个优点是对当前应用的修正很少,并且可适应各种各样的servlet应用。 
该算法的一个说明性实施例以下面示例性代码(FACILITIES)的形式明确表达出来。本领域的技术人员同样可以在本发明的宗旨和范围内进行变化。 
FACILITIES: 
boolean contain_update(url):布尔函数,断定所给定的url是否包含插入/删除/更新查询。 
long db_processing_time(url,db):返回数据库db处对给定url的处理时间的函数。 
float ratio(url):返回URL的数据库访问时间与HTTP处理时间的比值的函数。 
R:主服务器的当前业务量速率。 
delta:比值变化的门限。 
Max:主服务器的最大并发连接。 
Conn DB_select(url) 
if(contain_update(url)) 
return primary;/*更新查询被发送到主服务器*/ 
if(R>Max) 
return secondary;/*如果主服务器的业务量很大,辅助服务器开始工作*/ 
if(db_processing_time(url,primary)>db_processing_time(url,secondary)) 
return secondary;/*url由最能够处理该查询的服务器服务*/ 
Postprocessing(url) 
计算和存储选定数据库db处URL的平均数据库访问时间。 
计算数据库访问时间与HTTP处理时间的比值,用r表示。如果URL由辅助数据库提供服务,则退出。 
if(r>ratio(url)*(1+delta)) 
Max=a*Max+b*R; 
Else 
Max++; 
Helper modules: 
boolean contain_update().... 
long db_processing_time().... 
float ratio().... 
R:.... 
Dealta:.... 
Max:.... 
Functions: 
Conn DB_select().... 
Postprocessing().... 
当servlet建立访问数据库的连接时,调用函数DB_select。函数返回数据库连接。当该servlet终止时,调用函数Postprocessing。此函数收集运行时间统计并重新计算用于选择数据库连接的全局变量。算法的复杂性与跟踪的URL数目成线性关系,大部分操作是字符串匹配。路由开销相对很低。 
2.11 QoS策略协调 
QoS策略协调处理接收从Web服务器接收业务量组成和数据库选择信息,并且检查数据库调度的综合效果是否一致。如果有必要,QoS策略协调处理通知Web服务器改变其本地决策函数参数。 
可以利用多个因素对数据库查询进行路由,包含:请求优先级和来自不同类的业务量组成。该算法一个说明性实施例如下。本领域的技术人员同样可在本发明的宗旨和范围内进行各种变化。 
对于属于类i的请求r,布尔变量Si表示r是否能够访问高端服务器23: 
S i = 1 ( λ i * W i Max Σ j λ j * W j > C i )
其中 
(i)1()是布尔函数。 
(ii)λi是属于类I的自从时间点t以来已经到达的请求的数目。 
(iii)Wi是优先级权重。 
(iv)Max是高端服务器23能够接受的同时请求的最大数目。 
(v)Ci是自时间t以来已经使用高端服务器23的类i的请求的数目。 
从该方程式推出,在集群Web服务器环境(服务器基于它自己的业务量条件进行数据库选择)中,总体上整个Web服务器上的请求路由可能是不正确的。因此,可以设立代理(agent)对分布式选择算法进行仲裁以逼近理想值。 
在时间帧T期间,在Web服务器p处的高端服务器23的使用率Np为: 
N p = λ i p * W i p * Max p Σ j λ j p * W j p
其中λi p和Maxp是Web服务器p处的本地观测值。Wi p为这个服务器所用的本地优先级权重。 
从所有Web服务器中得出的高端服务器23的理想综合使用率Nideal为: 
N ideal = Σ p λ i p * W i * Σ p Max p Σ j ( Σ p λ j p * W j )
在大部分情形下,Wj+Wj p不能确保 N ideal + Σ p N p . 因此,本地优先级加权矢量Wi p可以调整以近似于理想值。 
2.12外化(externalized)程序逻辑 
本发明的另一方面是将用于对顾客分类或选择后端的程序逻辑外化。通过为系统提供一个或多个具有可变性的点来完成外化(externalization),这些点是程序代码中作为针对外化库(externalizedrepository)的需要执行的逻辑的调用的点。绑定是动态的,逻辑可以随时间变化而不用对系统代码重新进行编译。可以使用例如“BRBeans”的技术(纽约州,Armonk的IBM公司)来产生这种效果,例如见A.Nartovich等人的“WebSphere Application ServerEnterprise,A Programmer”,第4版,第3章,IBM红皮书,2002年2月,这里参考引用了其公开内容。 
外化的逻辑可以进一步被指定为信息技术中非专业人员能够编 写的一组规则,见例如,I.Rouvellou等人的“Extending BusinessObjects with Business Rules”,第33届面向对象语言和系统技术国际会议论文集,法国Mont Saint-Michel/St-Malo,IEEE计算机学会出版,第238-249页面,2000年6月,这里参考引用了其公开内容。 
2.13服务器提供方 
本发明的另一方面是如何确定客户机的类、如何创建有区分的内容。这些功能能够由服务器提供方来执行。服务器提供方最好依据愿意付多少费用以得到更好的服务而赋予客户机不同的服务质量类。付费较高的客户机赋予较高的服务质量类。 
服务器提供方也具有提供不同内容的能力。服务器提供方通过找出高峰期间的瓶颈资源来达到此目的。例如,服务器提供方可以确定通过数据库提供大量动态内容的Web站点的瓶颈资源为数据库。为了降低数据库的开销,服务器提供方会为频繁的查询提供缓存器。该缓存器能够用于以较低的开销创建动态内容。缺陷在于该缓存器可能没有完全最新的数据。高付费客户会被给予访问最新版本的优先。 
服务器提供方能够周期性地监视系统以确定出该系统的哪些部分在不同时期将成为瓶颈。例如,在某些点上,瓶颈可以是数据库。在其它点上,瓶颈可以是网络。服务器提供方不断地修正有区分的内容,以及如何服务于不同的客户机,以响应条件的变化。 
例如,服务器提供方根据以前与客户确立的服务协议,可以指定服务质量策略。该策略可以包括多个预订,每个预订被指定内容质量和服务等待时间。对有限的高级服务预订可以以低服务等待时间和高内容质量提供服务。对中等服务预订可以提供高质量内容或低等待时间的服务。对未加限制的最大努力服务预订可以提供未指定内容质量和等待时间的服务。 
2.14说明性计算系统 
图10是一个根据本发明的实施例,根据可实现的信息系统的一个或多个部分/步骤(例如,可根据该信息系统执行的图1至图9的情形中描述的系统/方法),举例说明计算机系统的硬件实现的方框图。 例如,图10中所例举的结构可以用于实现上述提到的任何和所有的客户机设备、服务器、路由中间设备、版本选择器、服务器映射模块、交换机、仲裁器、servlet、驱动程序等等。 
此外,应当理解的是,各个组成部分/步骤可以在一个这样的计算机系统上实现,或更好地,在多于一个的这样的计算机系统上实现。在分布式计算系统的实现情形中,单个计算机系统和/或设备可以通过适当的网络,例如因特网或万维网连接。另一方面,该系统可以通过专用或本地网络实现。本发明并不限于任何特定的网络。 
如图所示,该计算机系统100可以根据通过计算机总线110或可选连接方案连接的处理器102、存储器104、I/O设备106和网络接口108实现。 
应当理解的是,在这里术语“处理器”旨在包含任何处理设备,例如包含CPU(中央处理单元)和/或其它处理电路的设备。同时应当理解,术语“处理器”可以指多于一个的处理设备,并且各种与处理设备相关的单元可由其它处理设备共享。 
在这里使用的术语“存储器”旨在包含与处理器或CPU相关的存储器,例如RAM、ROM、固定存储器设备(例如,硬盘驱动器)、可移动存储设备(例如,软盘)、闪存等等。 
此外,这里使用的短语“输入/输出设备”或“I/O设备”旨在包含一个或多个输入数据给处理单元的输入设备(例如,键盘、鼠标等等),和/或一个或多个提供与处理单元相关的结果的输出设备(例如扬声器、显示器等等)。 
还有,在这里使用的短语“网络接口”旨在包含例如一个或多个无线收发信机,其使得该计算机系统能够通过适当的通信协议与另一个计算机系统进行通信。 
因此,包含执行这里描述的方法的指令或代码的软件部件可以存储于一个或多个相关的存储设备(例如,ROM,固定或移动的存储器)中,当准备利用它时,部分或全部装载(例如,装入RAM)并由CPU执行它。 
尽管在这里参照附图描述了本发明的说明性实施例,然而应当理解的是,本发明并不限于这些精心设计的实施例,可以由本领域的技术人员对其做出各种其它的变化和修正,并且不背离本发明的范围和实质。 

Claims (34)

1.一种在客户机-服务器环境中为多个客户机提供数据服务的方法,包括步骤:
提供多个版本的数据,其中至少两个版本具有与其质量相关的不同开销;
将各个客户机赋给多个服务质量类中的一个;以及
满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。
2.如权利要求1中所述的方法,其中多个版本包括具有不同分辨率的图像,并且属于高服务质量类的客户机被给予访问较高分辨率图像的优先。
3.如权利要求1中所述的方法,其中一个版本的质量与创建该版本所需的处理时间相关。
4.如权利要求1中所述的方法,其中服务于一个版本的开销与该版本的最新程度相关。
5.如权利要求1中所述的方法,进一步包括下列步骤:
响应于系统负载超过门限,用需要较低服务开销的版本满足来自属于较低服务质量类的客户机较大部分请求。
6.如权利要求1中所述的方法,其中服务器包括多个节点,并且不同节点提供需要不同服务开销的数据版本。
7.如权利要求1中所述的方法,进一步包括实现指定内容质量和等待时间中的至少一个的服务质量策略的步骤。
8.如权利要求7中所述的方法,其中为属于高级服务类的一个或多个客户机提供高内容质量和低等待时间的服务。
9.如权利要求7中所述的方法,其中为属于中等服务类的一个或多个客户机提供具有高内容质量和低等待时间特性之一的服务。
10.如权利要求7中所述的方法,其中为属于最大努力服务类的一个或多个客户机提供不指定内容质量和等待时间的服务。
11.如权利要求1中所述的方法,其中使用客户机身份、内容质量、至少一个服务器的负载、至少一个服务器的数据分布和至少一个服务器的容量中的一个路由客户机请求。
12.如权利要求1中所述的方法,其中客户机被从服务器外化的程序逻辑赋给一个服务质量类。
13.如权利要求12中所述的方法,其中外化程序逻辑包括一组能够由信息技术领域的非专家修改的业务规则。
14.如权利要求1中所述的方法,进一步包括使用由从服务器外化的程序逻辑确定的策略来满足请求的步骤。
15.如权利要求14中所述的方法,其中外化程序逻辑包括一组能够由信息技术领域的非专家修改的业务规则。
16.一种用于在客户机-服务器环境中为多个客户机提供数据服务的设备,包括:
用于提供多个版本的数据的装置,其中至少两个版本具有与其质量相关的不同开销;
用于将各个客户机赋给多个服务质量类中的一个的装置;以及
用于满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先的装置。
17.如权利要求16中所述的设备,其中多个版本包括具有不同分辨率的图像,并且属于高服务质量类的客户机被给予访问较高分辨率图像的优先。
18.如权利要求16中所述的设备,其中一个版本的质量与创建该版本所需的处理时间相关。
19.如权利要求16中所述的设备,其中服务于一个版本的开销与该版本的最新程度相关。
20.如权利要求16中所述的设备,还包括:
用于响应于系统负载超过门限,用需要较低服务开销的版本满足来自属于较低服务质量类的客户机较大部分请求的装置。
21.如权利要求16中所述的设备,其中服务器包括多个节点,并且不同节点提供需要不同服务开销的数据版本。
22.如权利要求16中所述的设备,还包括:
用于实现指定内容质量和等待时间中的至少一个的服务质量策略的装置。
23.如权利要求22中所述的设备,其中为属于高级服务类的一个或多个客户机提供高内容质量和低等待时间的服务。
24.如权利要求22中所述的设备,其中为属于中等服务类的一个或多个客户机提供具有高内容质量和低等待时间特性之一的服务。
25.如权利要求22中所述的设备,其中为属于最大努力服务类的一个或多个客户机提供不指定内容质量和等待时间的服务。
26.如权利要求16中所述的设备,其中使用客户机身份、内容质量、至少一个服务器的负载、至少一个服务器的数据分布和至少一个服务器的容量中的一个路由客户机请求。
27.一种在客户机-服务器环境中为多个客户机提供数据服务的系统,包括:
多个客户机,每个客户机属于一个服务质量类;
用于发送来自客户机的请求到至少一个后端服务器的负载均衡器;和
用于提供不同对象的多个版本的至少一个后端服务器,其中一个对象的至少两个版本属于与之相关的不同开销。
28.一种在客户机-服务器环境中提供数据伺服服务的方法,包括步骤:
服务器提供方:提供多个版本的数据,其中至少两个版本具有与其质量相关的不同开销;将各个客户机赋给多个服务质量类中的一个;以及满足请求,使得属于高服务质量类的客户机被给予访问要求较高服务开销的数据版本的优先。
29.如权利要求28中所述的方法,其中数据伺服服务包括指定内容质量和等待时间中的至少一个的服务质量策略规范。
30.如权利要求29中所述的方法,其中服务质量策略规范包括:
多个预订,每个预订被指定内容质量和服务等待时间,其中为有限的高级服务类预订提供高内容质量和低等待时间的服务,为中等服务类预订提供高内容质量或低等待时间的服务,为未加限制的最大努力服务预订提供未指定内容质量和等待时间的服务。
31.如权利要求28中所述的方法,其中服务器提供方修正数据内容,以及如何将数据内容提供给客户机,以响应一个或多个变化的条件。
32.如权利要求31中所述的方法,其中一个或多个变化的条件包括瓶颈源。
33.如权利要求28中所述的方法,其中将各个客户机赋给多个服务质量类中的一个的步骤基于客户机付费。
34.一种在客户机-服务器环境中向多个客户机提供数据服务的方法,包括步骤:
建立至少两个服务质量类;和
满足请求,使得用具有一个与之相关的开销的数据版本为属于一个服务质量类的客户机提供服务,并且用具有另一个与之相关的开销的数据版本为属于另一个服务质量类的客户机提供服务。
CN200410084190.6A 2003-10-23 2004-10-15 动态可重配置负载均衡的方法和系统 Active CN1610348B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/693,238 US7987268B2 (en) 2003-10-23 2003-10-23 Methods and systems for dynamically reconfigurable load balancing
US10/693,238 2003-10-23

Publications (2)

Publication Number Publication Date
CN1610348A CN1610348A (zh) 2005-04-27
CN1610348B true CN1610348B (zh) 2012-02-01

Family

ID=34522337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410084190.6A Active CN1610348B (zh) 2003-10-23 2004-10-15 动态可重配置负载均衡的方法和系统

Country Status (2)

Country Link
US (1) US7987268B2 (zh)
CN (1) CN1610348B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271651B1 (en) * 2003-12-31 2012-09-18 Google Inc. Methods and systems for regulating resource usage
US8321858B1 (en) 2003-12-31 2012-11-27 Google Inc. Systems and methods for providing software updates
US8831026B2 (en) * 2004-03-19 2014-09-09 International Business Machines Corporation Method and apparatus for dynamically scheduling requests
US8150797B2 (en) * 2004-05-21 2012-04-03 Computer Associates Think, Inc. Method and apparatus for enhancing directory performance
US20060224720A1 (en) * 2005-03-10 2006-10-05 Bhogal Kulvir S Method, computer program product, and system for mapping users to different application versions
US20070179981A1 (en) * 2006-01-31 2007-08-02 International Business Machines Corporation Efficient data management in a cluster file system
EP1855478A1 (en) * 2006-05-09 2007-11-14 Alcatel Lucent Method for fast zapping between tv channels
US20090013267A1 (en) 2007-04-27 2009-01-08 Bea Systems, Inc. Constructor web-based change control system and method
KR101431003B1 (ko) 2007-06-13 2014-08-20 삼성전자주식회사 영상신호의 디스플레이방법 및 이를 적용한 디스플레이시스템
US20090049024A1 (en) * 2007-08-14 2009-02-19 Ncr Corporation Dynamic query optimization between systems based on system conditions
US8392404B2 (en) * 2007-11-19 2013-03-05 Teradata Us, Inc. Dynamic query and step routing between systems tuned for different objectives
US7852849B2 (en) * 2008-03-04 2010-12-14 Bridgewater Systems Corp. Providing dynamic quality of service for virtual private networks
US7809833B2 (en) * 2008-07-15 2010-10-05 International Business Machines Corporation Asymmetric dynamic server clustering with inter-cluster workload balancing
EP2161896A1 (en) * 2008-09-05 2010-03-10 Zeus Technology Limited Supplying data files to requesting stations
CN101715003B (zh) * 2009-11-12 2012-06-20 北京交通大学 互操作平台的负载控制优化方法
US8880679B2 (en) 2009-12-07 2014-11-04 Oracle International Corporation Techniques for web server management
US20110252127A1 (en) * 2010-04-13 2011-10-13 International Business Machines Corporation Method and system for load balancing with affinity
US9495119B1 (en) 2010-07-08 2016-11-15 EMC IP Holding Company LLC Static load balancing for file systems in a multipath I/O environment
US8745232B2 (en) * 2010-08-18 2014-06-03 Dell Products L.P. System and method to dynamically allocate electronic mailboxes
KR20120023883A (ko) * 2010-09-02 2012-03-14 주식회사 팬택 증강현실 정보 표시 방법 및 장치
CN102158533B (zh) * 2011-01-28 2013-11-13 浙江大学 基于QoS的分布式web服务选择方法
US9078025B2 (en) * 2011-07-19 2015-07-07 Yahoo! Inc. Using companion ads in adlite rich media
US9432402B1 (en) 2011-09-06 2016-08-30 Utility Associates, Inc. System and method for uploading files to servers utilizing GPS routing
US20130159068A1 (en) * 2011-12-19 2013-06-20 Kabam, Inc. System and method for determining quality of service for actions to be performed in a virtual space
CN102611735B (zh) * 2011-12-21 2015-12-09 北京奇虎科技有限公司 一种应用服务的负载均衡方法及系统
US9052955B2 (en) * 2012-07-25 2015-06-09 Cisco Technology, Inc. System and method for seamless application hosting and migration in a network environment
US9154492B2 (en) * 2013-09-27 2015-10-06 The University Of North Carolina At Charlotte Moving target defense against cross-site scripting
CN105302808B (zh) * 2014-06-05 2019-08-09 腾讯科技(深圳)有限公司 一种降低用户组匹配过程中负载峰值的方法和装置
US9652971B1 (en) * 2015-03-12 2017-05-16 Alarm.Com Incorporated System and process for distributed network of redundant central stations
US11315209B2 (en) * 2020-05-08 2022-04-26 Black Sesame Technolgies Inc. In-line and offline staggered bandwidth efficient image signal processing
CN113760318A (zh) * 2020-11-24 2021-12-07 北京沃东天骏信息技术有限公司 信息处理方法、装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312996A (zh) * 1998-06-12 2001-09-12 艾利森电话股份有限公司 用于综合业务分组交换网络的接纳控制方法和交换节点
CN1323483A (zh) * 1998-10-15 2001-11-21 英国电讯有限公司 提供服务质量的计算机通信方法
CN1433617A (zh) * 1999-12-01 2003-07-30 艾利森电话股份有限公司 分组交换网中服务质量的动态升级

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442603B1 (en) * 1998-10-13 2002-08-27 3Com Corporation Methods for ordered delivery of electronic content
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
EP1226495A2 (en) 1999-11-03 2002-07-31 Accenture LLP Architectures for netcentric computing systems
US6804717B1 (en) * 2000-03-30 2004-10-12 Intel Corporation Providing quality of service by transmitting XML files indicating requested resources
US6785769B1 (en) * 2001-08-04 2004-08-31 Oracle International Corporation Multi-version data caching
US7426560B2 (en) * 2002-06-27 2008-09-16 Intel Corporation Method and system for managing quality of service in a network
US7535900B2 (en) * 2003-01-21 2009-05-19 Symmetricom, Inc. Multiple transmission bandwidth streams with defferentiated quality of service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312996A (zh) * 1998-06-12 2001-09-12 艾利森电话股份有限公司 用于综合业务分组交换网络的接纳控制方法和交换节点
CN1323483A (zh) * 1998-10-15 2001-11-21 英国电讯有限公司 提供服务质量的计算机通信方法
CN1433617A (zh) * 1999-12-01 2003-07-30 艾利森电话股份有限公司 分组交换网中服务质量的动态升级

Also Published As

Publication number Publication date
US7987268B2 (en) 2011-07-26
CN1610348A (zh) 2005-04-27
US20050091344A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN1610348B (zh) 动态可重配置负载均衡的方法和系统
Cherniack et al. Scalable Distributed Stream Processing.
Tanenbaum et al. The Amoeba distributed operating system—a status report
Abadi et al. The design of the borealis stream processing engine.
Jing et al. Client-server computing in mobile environments
CN100466651C (zh) 用于应用实例级工作负荷分配亲合性的方法和系统
US7546284B1 (en) Virtual message persistence service
JP2893019B2 (ja) プロキシ階層におけるステージング/バッファリングを伴う動的プッシュ・フィルタリング方法
US6457047B1 (en) Application caching system and method
US5974409A (en) System and method for locating information in an on-line network
US8504557B2 (en) System, method and computer program product for querying data relationships over a network
CN100556024C (zh) 用于网络场通信控制的方法和网络场
EP0953904A2 (en) Message broker apparatus, method and computer program product
US9195681B2 (en) System, method and computer program product for transmitting a group of data elements
US20060053368A1 (en) Conduit manager for occasionally-connected application server
JP4588704B2 (ja) 自己管理仲介情報フロー
CZ289563B6 (cs) Server připojitelný k síti a způsob jeho provozu
CN102197395A (zh) 存储器端存储请求管理
JP2007502464A (ja) データベースの自動的および動的な提供
US20100050181A1 (en) Method and System of Group-to-Group Computing
US20050021511A1 (en) System and method for load balancing in database queries
JP2003518290A (ja) アノニマスなサブジェクトベース・アドレッシングの方法および装置
Seng-cho Migrating to the web: a web financial information system server
Johansson et al. Modeling network latency and parallel processing in distributed database design
KR20030014513A (ko) 서버 부하의 분산을 위한 클라이언트 데이터 공유 시스템및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20161207

Address after: American California

Patentee after: HULU, LLC

Address before: American New Jersey

Patentee before: Coral Bay Innovation Ltd.

Effective date of registration: 20161207

Address after: American New Jersey

Patentee after: Coral Bay Innovation Ltd.

Address before: American New York

Patentee before: International Business Machines Corp.