CN1977509A - 从服务器集中选择一个服务器的方法 - Google Patents

从服务器集中选择一个服务器的方法 Download PDF

Info

Publication number
CN1977509A
CN1977509A CN200480043501.2A CN200480043501A CN1977509A CN 1977509 A CN1977509 A CN 1977509A CN 200480043501 A CN200480043501 A CN 200480043501A CN 1977509 A CN1977509 A CN 1977509A
Authority
CN
China
Prior art keywords
server
vector
state information
state
value
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.)
Pending
Application number
CN200480043501.2A
Other languages
English (en)
Inventor
M·博兹诺夫斯基
M·雷克
R·塞迪
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.)
Nokia Solutions and Networks GmbH and Co KG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of CN1977509A publication Critical patent/CN1977509A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • 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/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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/101Server selection for load balancing based on network conditions
    • 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/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/1017Server selection for load balancing based on a round robin mechanism
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种从服务器集中选择一个服务器(S1-S4)的方法,用于请求一个或多个业务,例如请求与基于互联网的应用以及基于会话的应用有关的业务,该服务器集中的每个服务器(S1~S4)能够支持所述一个/多个业务,由此维持状态向量,该状态向量包括时间戳值(t1-t4),该时间戳值(t1-t4)表示相对应的服务器(S1-S4)的状态被确定的时刻,以相对于现有的服务器选择策略在其能力上进行改进,从而降低事务控制次数。

Description

从服务器集中选择一个服务器的方法
本发明涉及一种从服务器集(server set)中选择一个服务器的方法,用于请求一个或多个业务,例如请求与至少一个基于互联网的应用以及基于会话的应用有关的业务,该服务器集中的每个服务器能够支持所述一个/多个业务。
随着基于会话概念的互联网业务的数量和普及性快速增长,会话管理(控制)获得越来越高的重要性。基于会话的业务包括多媒体会议、网络电话呼叫和由诸如音频、视频等的一个或多个媒体类型组成的类似应用。部署实例包括第三代移动网络中的作为IP多媒体子系统(IMS)的部分的会话控制业务。在IMS中,呼叫会话控制功能(CSCF)服务器基于会话初始化协议(SIP)执行会话管理。诸如SIP的会话控制协议是事务协议(transactional protocol)。通常,事务由单个请求和对该请求的响应组成。
例如会话控制系统中的容错通过引入冗余度来实现。即,会话控制服务器在服务器集中倍增。服务器集由提供相同功能的N个服务器组成。在图1中,示出了这种容错的复制式会话控制系统。
在图1中,虚线1标明被发送到三个服务器中的中央服务器的客户端请求,假设该中央服务器是目前可用的。可用性首先包括该服务器正在运行,即该服务器能够提供所请求的业务。其次,该服务器必须是经由该服务器与其一个/多个客户端之间的(互联网)连接可接入的或可达到的。
在图1中,虚线2标明从中央服务器到左右位置的两个服务器的状态更新传播。交叉实线3意图说明中央服务器的故障情形。另外,客户端将确定,中央服务器不响应请求,并将通过把请求指向左边和右边的服务器来重复它们的请求。这用实线4来表示,从而示出了到其他“健康”服务器的故障切换(fail-over)。
会话控制是对时间要求严格的(time-critical)应用。会话控制的性能通过事务控制时间被量化。事务控制时间是发送请求的时刻与最终在用户处接收到响应(包括可能多次故障切换到不同服务器)的时刻之间的平均时间。会话控制系统中存在的问题是如何增强性能,即如何降低事务控制时间。服务器选择策略(SSP)在最小化事务控制时间时起主要作用。
现有的静态服务器选择策略使用预定的方案来选择服务器。静态SSP的实例是:
-循环法(Round Robin)指明循环策略,其中以连续的方式选择服务器,直到最初所选择的服务器再次被选择。
-加权循环法(Weighted Round Robin)指明循环法的简单扩展。该加权循环法给每个服务器都分配某个权重。该权重表示服务器的处理能力。如果此SSP可以至少不时地评估各个服务器的容量及其负载,则此SSP还可以是动态的。
不知道动态系统状态导致低复杂度,然而,却以降低性能和业务可靠性作为代价。自适应(动态)SSP基于系统状态的变化和对最佳服务器的动态估计做出决策。动态SSP的实例是:
-智能循环法(SRR,Smart Round Robin)。
在此SSP中,通过在最后已知是有效的当前服务器子集上应用循环法,新请求被发送到服务器。如果没有报告服务器是有效的,则该循环法被应用到整个服务器集。此算法处理关于服务器的活动状态的二进制信息,即,服务器是正常运行还是出故障了。
-每个会话的智能循环法(SRR-S,Smart Round Robin perSession)。
这是SRR的变型,其仅被用于选择用于新会话和用于中间会话请求的服务器,该中间会话请求由于错过的(missing)最后响应而需要进行故障切换。一旦选择了服务器,该会话内的所有后续请求就被发送到相同的服务器,直到会话结束或检测到请求失败。
-最少使用的SSP(Least Used SSP),参见R.R.Stewart、Q.Xie的Aggregate Server Access Protocol(聚合服务器接入协议)(ASAP)(<draft-ietf-rserpool-asap-08.txt>,2003年10月21日,摘自IETF(互联网工程任务组)Working Group“Reliable ServerPooling”)。在此SSP中,每个服务器的负载受到中央监视实体或受到客户端自身的监控。基于对服务器负载的监控,每个服务器被赋有所谓的策略值,该策略值与该服务器的负载成比例。根据最少使用的SSP,具有最低策略值的服务器被选为当前消息的接收机。重要的是要注意,此SSP意味着,始终选择相同的服务器,直到这些服务器的策略值被更新和改变。
-最少使用递减SSP(Least Used With Degradation SSP)[Stewart& Xie]除了一点不同之外与最少使用的SSP相同。即,每当从服务器集中选择具有最低策略值的服务器时,其策略值就递增。因此,此服务器可以不再具有服务器集中的最低策略值。这使最少使用递减SSP随着时间的过去朝着循环法SSP前进。每次更新服务器的策略值将SSP带回到最少使用递减。
动态SSP的效率取决于被用来评估最佳服务器的度量。对SSP的研究已主要集中于复制式Web服务器系统。在这种系统中,一般的度量基于服务器的接近度,该服务器的接近度包括地理距离、到每个服务器的跳跃数、往返时间(RTT)和HTTP响应次数,参见:RobertL.Carter和Mark E.Crovella的“Dynamic Server Selection usingBandwidth Probing in Wide Area Networks”(Proceedings ofInfocom’97,the Sixteenth Annual Joint Conference of the IEEEComputer and Communication Societies,1997年4月);Mark E.Crovella和Robert L.Carter的“Dynamic server selection inthe Internet”(Proceedings of the Third IEEE Workshop on theArchitecture and Implementation of High PerformanceCommunication Subsystems(HPCS’95),1995年8月);M.Sayal、Y.Breitbart、P.Scheuermann、R.Vingralek的“SelectionAlgorithms for Replicated Web Servers”(Workshop on InternetServer Performance,威斯康星州,麦迪逊,1998年);K.Obraczka和F.Silvia的“Network Latency Metrics for Server Proximity”(Proceedings of the IEEE Globecom,2000年11月)。
虽然Web系统中的SSP目的在于提供高吞吐量和小业务延迟,但是诸如SIP之类的会话控制协议处理小尺寸的消息(平均为500字节)。因此,吞吐量可能不是与在Web系统中一样重要的度量。就作者所知,没有利用会话控制系统对SSP进行广泛地调查。
根据上述内容,本发明的目的在于提出一种从服务器的集合中选择一个服务器的方法,该方法相对现有技术的SSP在其能力上进行了改进,以降低事务控制时间,并且本发明的目的在于提出一种实现这种改进的方法的客户端装置。
此问题通过根据权利要求1所述的方法和根据权利要求12所述的客户端装置来解决。
本发明下的实质思想之一是,优选地将会话请求发送到提供最高瞬时可用性(即,在即将发送请求的时刻的最高可用性)的服务器。因此,可以最小化直至成功的所尝试的服务器的平均数,并可以实现降低的事务控制时间。
本发明基于,在(n-1)次尝试不成功的条件下,利用第n次请求重发来最大化成功事务的瞬时概率。因此,本发明被称为最大可用性(MA)SSP。
根据本发明的MA算法,该客户端或每个客户端保留被表示为p的状态向量。该状态向量的大小是N(即,等于该集合中的服务器的数量):
p=[p1,p2,...,pn]
状态向量中的某个元素代表最后知道的特定服务器的状态时刻。如果最后的服务器的状态是在运行中(正常运行),则相对应的时间戳值被存储在该状态向量中。如果最后的服务器的状态是停止(出故障了),则相对应的时间戳值带有负号地被存储在状态向量中。该基本算法选择在状态向量中具有最大时间戳值的服务器。根据本发明的修改的实施例,选择时间戳值在最大时间戳值的某个范围之内的服务器。
为了更新客户端中的状态向量,在客户端中将实施下列三个选项中的一个或任意组合:
1)当被发送到给定服务器的事务成功完成或失败时。
2)当被发送到给定服务器的心跳成功完成或失败时。
心跳机制供给周期的或以任何其他方式有规律地重复的轮询,以由此主动地监控该给定服务器的状态。该轮询可能例如基于ICMP回声请求和回声答复机制(即公知为查验(ping)机制),或基于专用于那个目的的消息,该消息例如是根据R.Stewart等人的StreamControl Transmission Protocol(流控制传输协议)(RFC 2960,2000年10月,摘自IETF(互联网工程任务组)Working Group的“Signaling Transport”)的心跳消息(Heartbeat-Message)和心跳确认消息(Heartbeat-Ack-Message),或者该消息是根据ASAP协议[Stewart & Xie]的保持有效消息(Keep-Alive-Message)和保持有效确认消息(Keep-Alive-Ack-message)。
如果客户端未在超时所限定的时间间隔内接收到对该请求(或心跳请求)的响应,则事务(或心跳)失败。无论何时获得与服务器Si相关联的新的状态时刻ti(当已经被发送到给定服务器的事务或心跳成功完成或失败时),向量p中的与服务器Si相关联的录入项更新如下:
3)通过联系第三方,该第三方例如是保留和更新给定的服务器集的自己的状态向量的专用服务器或另一客户端。在与第三方进行通信期间,例如在使用专用协议与第三方进行通信期间,客户端得到第三方的当前或最新的状态向量。通过使用从第三方接收到的状态数据,客户端更新其本地状态向量。如果客户端的本地状态向量中的录入项比从第三方检索到的状态数据中的相对应的录入项更新(更新式),则该客户端并不更新其本地状态向量中的录入项。客户端和第三方中被用来测量时间戳的时钟必须要同步,例如通过部署网络时间协议(NTP)来同步,以通过相同的时间戳指示相同的时刻(同步还可通过校正第三方所递送的时间戳来实现,例如假设相对于第三方的恒定时移或漂移,这需要相对应的算法)。
MA SSP基于其最后知道的正常运行时间最接近实际时间的服务器大多可能在实际时间正常运行的假设。例如,当在运行中和停止间隔是具有指数概率密度函数的随机变量时,满足该假设。
MA SSP完成与具有成功事务的最高瞬时概率的服务器的会话事务,由此最小化直至成功的所尝试的服务器的平均数。这降低了事务控制时间。
在本发明的进一步研发的实施例内,能另外降低事务控制时间。此MA扩展基于利用当前所选择的服务器来最小化应用响应时间。应用响应时间是向给定服务器发送请求的时刻与在客户端接收到最终响应的时刻之间的持续时间。为此,客户端保留另外的状态数据(即被表示为d的所谓的延迟向量)。该延迟向量的大小同样是N:
d=[d1,d2,...,dN]
该延迟向量中的某个元素代表事务(最后一个被发送给那个服务器的事务)已经体验了那个服务器的应用响应时间。如果该事务未成功,则那个服务器的应用响应时间被认为是无穷大的。
注意,两个向量p和d与一个状态向量s等效,并且可通过该状态向量s来表示,该状态向量s的元素由时间戳和延迟数据组成:
s=[(p1,d1),(p2,d2),...,(pn,dn)]
由于此MA扩展除可用性时间戳以外还引入了另外的状态数据,所以可以应用基于这两个向量的另一服务器选择决策标准。
可以导出若干种可能的标准。下面给出了部署特定标准的本发明的两个优选实施例:
1)具有延迟向量元素的预定阈值的标准。
此标准定义了延迟向量元素的延迟阈值。该延迟阈值代表最大容许的应用响应时间。用于选择服务器的规则如下:
-识别了其延迟向量录入项低于延迟阈值的服务器的子集;
-如果存在这种子集,则在该子集上应用基本MA算法,即,选择具有最大状态向量录入项的服务器,
-如果不存在这种子集,则在整个服务器集上应用基本MA算法。
2)具有预定的时间戳范围的标准
此标准定义了状态向量元素的时间戳范围。该时间戳范围是其上界等于状态向量中的最大录入项值(如果存在最大录入项值的话)的时间间隔的持续时间。该想法在于,仅在那些服务器中进行选择,那些服务器在从最大时间戳向后计数的某个时间间隔中已经是可用的。用于选择服务器的规则如下:
-识别了其状态向量录入项为正且落入由该时间戳范围所定义的间隔内的服务器子集;
-如果存在这种子集,则选择具有最小延迟向量录入项的服务器;
-如果不存在这种子集,则在整个服务器集上应用基本MA算法。
本发明的优点如下:
-与诸如循环法的传统的SSP相比,显著的性能改善。
-MA是有效的服务器选择策略。
-MA具有低实施复杂度。客户端应当只保留具有与服务器集中的服务器一样多的元素的状态向量。
-MA SSP并不要求高处理能力。
-MA可被实施为动态的和自适应的算法,即使通信负载相当重,该动态的和自适应的算法也拥有容易且快速地检测集合中的最快服务器的能力。
本发明的其他方面和优点可由从属权利要求以及相对于附图对本发明的若干实施例的后续描述导出,其中:
图1示出容错复制式会话控制系统(已经论述过)的示意图;
图2示出说明根据本发明的实施例的服务器选择过程的实例的示意图;
图3是示出根据本发明的客户端装置的功能块的简化框图。
图2是说明根据本发明的实施例的服务器选择过程的实例的示意图。客户端做出要选择哪个服务器的决策。例如,服务器集由4个服务器S1至S4组成。在做出选择决策的时刻,状态向量包含服务器S1至S4中的每个服务器的录入项,即用t1、t2、t3和t4表示的时间戳值,这些时间戳值分别代表上次接入服务器S1、S2、S3和S4的时刻。在客户端的存储器中,时间戳值t1至t4被存储为由位串所表示的数。在图2中所示的实例中,假设S2具有最大的(正)时间戳,而S4具有最小的(负)时间戳。
在客户端查找所存储的状态向量。根据在客户端中所实施的本发明的实施例的选择规则,状态向量中的最大时间戳值被确定,并且选择相对应的服务器。因此,选择S2用于为当前的事务服务。注意,如果S2在该事务处理期间故障,则用根据相同规则所选择的另一服务器重新尝试该事务。于是,随后的尝试将指向S3,因为在S2之后,S3具有第二最大的(正)时间戳值。
作为本发明的服务器选择方法的实例,该方法给状态向量的每个元素配置可用性时间戳和延迟值,再次考虑服务器集中的四个服务器S1至S4。在给定的时间,对于服务器S1-S4,分别令包括可用性信息(在服务器故障的情况下符号为‘-’)的时间戳值为p=[-8.3s,11.2s,14.1s,13.5s]而延迟值为d=[∞,0.08s,0.55s 0.15s],并将延迟阈值设置成0.2s。
根据上面列出的标准,首先必须识别出其延迟向量录入项低于延迟阈值的服务器。这些服务器是服务器S2和S4。此外,由于存在延迟值低于阈值的服务器子集,所以必须应用基本MA算法,即,要选择具有最大状态向量录入项的服务器。因此,因为根据满足延迟条件的设置,服务器S4具有最大的状态向量录入项,所以服务器S4被选择来为该实际事务服务。
作为部署预定的时间戳范围值的本发明的服务器选择方法的实例,再次考虑四个服务器S1-S4。再次令服务器S1至S4的具有可用性信息的时间戳值为p=[-8.3s,11.2s,14.1s,13.5s]而延迟值为d=[∞,0.08s,0.55s,0.15s],并将时间戳范围设置成3s。
根据上面列出的标准,首先必须识别出其状态向量录入项是正的且落入由时间戳范围所限定的间隔内的服务器子集。该子集包括服务器S2、S3和S4。此外,因为存在子集,所以(不需要退回到基本MA算法并且)应选择具有最小的延迟向量录入项的服务器。因此,由于服务器S2具有最小的延迟向量录入项,所以选择S2来为该实际事务服务。
图3是说明将要从服务器集12请求业务的客户端装置10的必要功能块的简化框图。客户端装置10可以是硬件或固件,但是优选地被实施为(用户)装置(未示出)(例如移动装置)上的客户端软件块。假设服务器群12在UMTS网络的IP多媒体平台(IMS)的环境内提供基于SIP的应用,移动装置附属于该UMTS网络。为了以容错的方式提供应用或业务,服务器集12包括四个服务器S1至S4,这些服务器中的每一个完全适于提供通过寄主于(host)客户端装置10的移动装置能够请求的任何业务。
客户端装置10包括控制模块13、状态向量管理模块14、服务器选择模块16、存储器18和客户端模块20。假设存储器是寄主于客户端装置10的装置的较大存储器的一部分或段,但是也可以是一件专用于客户端装置10的存储器硬件。
参考图3,随后,根据每个元素具有可用性时间戳与延迟值的状态向量(上述的第2实例),更详细地描述了根据本发明的服务器选择过程。
首先,控制模块13由在客户端装置10的外部的某个单元触发,以便从服务器集12请求业务,即,在CSCF服务器S1至S4之一的控制下启动会话的建立。触发单元可以与移动装置上的多媒体应用相关联。
假设,在客户端装置10中已知服务器S1至S4中的每个服务器的传输(IP)地址和端口。这可由控制模块13通过从名称服务器(未示出)请求关于服务器集12的名称的名称解析列表(name resolutionlist)或以某些其他方式来实现。
除此动作及其他动作以外,控制模块向服务器选择模块16发送命令,以从存储器18中读出状态向量,并将与根据本发明的最大可用性服务器选择策略有关的规则用于状态向量元素。
状态向量包含四个元素,对于服务器S1至S4中的每个服务器均有一个元素。每个元素可以包含与相对应的服务器有关的某些信息(例如上述的传输地址),但是特别是包括与相对应的服务器有关的状态信息。关于状态信息,状态向量s可被表示为成对的向量s,s=[(-8.3,∞),(11.2,0.08),(14.1,0.55),(13.5,0.15)],其中,这些数作为位串被存储在存储器18中并代表单位为秒的时间值。
任何带负号的可用性信息(即作为负数值的时间戳值)根据本领域技术人员所公知的任何程序可以被表示在存储器中,例如包括通过反转所有位并加1来将负时间戳值表示为二进制补码。
这些实例值取自上述的第2实例。每对(,)的第一值是时间戳值,每对的第二值是延迟值。
已将状态向量读入,服务器选择模块16对状态向量元素的状态信息对的所有第二值(即延迟值)执行第一操作:比较每个延迟值与恒量(即延迟阈值),该延迟阈值在本例中在实施客户端装置10时已被设置一次。例如通过控制模块13还能改变该延迟阈值,但是不在如这里所述的服务器选择程序期间进行改变。
作为辨别的结果,延迟值低于延迟阈值的每个状态信息对连同指明相对应的服务器的关联信息一起被复制到子集向量中。此向量因此包含与服务器集中的其事务延迟短于预定的阈值延迟的所有服务器有关的状态信息。在所讨论的实例中,该子集向量因此包含服务器S2和S4的状态信息。
服务器选择模块16通过应用基本MA算法进一步在子集向量上进行操作。倘若因为所有延迟值大于延迟阈值而没有识别出子集,则模块16适于对状态向量本身应用基本MA算法。
由于基本MA算法,子集向量中的每个状态信息的第一值被扫描,并识别出具有这些第一个值中的最大值的状态信息对。换言之,识别出具有即便要也包括可用性信息(‘-’号)的、如所评估的最大时间戳值的服务器。在该实例中,第一子集向量元素具有时间戳值11.2s,第二元素具有13.5s(这两个元素中没有明显的可用性信息)。因此,第二子集向量元素被指明。
由于此元素对应于服务器S4,所以服务器选择模块识别出传输地址(和与此元素相关联的任何其他信息),并作为响应,将该传输地址返回到控制模块13。该控制模块使用所返回的信息来启动业务请求的汇编和业务请求经由客户端模块20向所识别出的服务器(S4)的发送。该请求如图3中的实线所示。
假设,服务器S4响应于该请求,并且与业务有关的事务在指明为如在主机装置内所测量的15.3s的时刻成功完成。响应于该请求的延迟是0.37s。根据如在此所述的本发明方法的实施例,被存储在存储器18中的状态向量必须通过使新时间戳和延迟值与服务器S4的传输地址相关联来进行更新。
为了实现此更新,控制模块一经由客户端模块20向服务器S4发送该请求就触发状态向量管理模块14。由于该触发,管理模块14首先通过请求主机装置(未示出)内部的时钟模块来确定当前时间,该时钟模块返回代表(在本例中为)值14.93s的字符串。其次,模块14起动专用于此特定请求的定时器。定时器运行10s的预定时间。
控制模块13一接收到服务器S4的最终响应就向管理模块14发送另一触发。由于第二触发,管理模块14首先通过请求时钟模块来再次确定当前时间,该时钟模块返回代表(在本例中为)值15.3s的字符串。其次,管理模块14停止定时器。
然后,管理模块准备新的状态信息对((可选的可用性信息)时间戳值、延迟值)。因为在定时器停止之前已经接收到第二触发,所以不必使可用性信息与时间戳相关联。该时间戳值被当作从时钟模块接收到的第二时间字符串。延迟值通过从第二时间字符串减去第一时间字符串来计算,这导致延迟值为0.37s。
如果服务器S4并不响应,则第二触发将不会到达状态管理模块14。然后,定时器在10秒之后溢出。在该时刻,模块14还向时钟模块发送其第二请求,这产生代表定时器已经溢出的时刻的第二时间字符串。此外,模块14还为服务器S4的状态向量元素准备可用性信息‘-、如通过从时钟模块返回的第二时间字符串所给出的时间戳和由为数值‘无穷大’或‘∞’的装置专用的表示给出的延迟值。在定时器停止后到达的第二触发不被管理模块14处理,而是被丢弃。最后,管理模块14在第四位置(即与服务器S4的传输地址相关联的位置)的存储器18中所存储的状态向量中存储所汇编的状态信息对。关于状态信息,假设与业务有关的事务已成功完成,因此,更新后的状态向量读取s=[(-8.3,∞),(11.2,0.08),(14.1,0.55),(15.3,0.37)]。
在此所述的特定实例仅仅说明了本发明的少数适当的实施例。在由随附的权利要求专门限定的本发明的范围内,通过技术动作,许多其他的实施例是可能的。
例如,状态向量管理模块(图3中的参考编号14)和服务器选择模块(16)已被描述为客户端装置(10)中的独立的实体。本领域技术人员应该理解,这些模块也可被实施为单个模块。
参考编号列表
S1-S4            服务器集中的服务器
t1-t4            状态向量中的时间戳值
10               客户端装置
12               服务器集
13               控制模块
14               状态向量管理模块
16               服务器选择模块
18               存储器
20               客户端模块

Claims (17)

1.一种从服务器集(12)中选择一个服务器(S1-S4)的方法,用于请求一个或多个业务,例如请求与至少一个基于互联网的应用以及基于会话的应用有关的业务,所述服务器集(12)中的服务器(S1-S4)中的每个服务器能够支持所述一个/多个业务,所述方法包括以下步骤:
-维持状态向量,由此将状态信息分配给所述状态向量的至少两个元素,每个状态信息代表所述服务器集(12)中的服务器(S1-S4)之一的状态,
-通过将预定的选择规则用于所述状态向量的元素的状态信息来选择服务器(S1-S4),以及
-从所选择的服务器(S1-S4)请求所述一个/多个业务,
其特征在于,
至少一种类型的状态信息包括时间戳值(t1-t4),该时间戳值(t1-t4)表示相对应的服务器(S1-S4)的状态被确定的时刻。
2.根据权利要求1所述的方法,其特征在于,所述选择规则包括确定所述状态向量中的最大时间戳值(t1-t4)和选择所述相对应的服务器(S1-S4)的步骤。
3.根据权利要求1或2所述的方法,其特征在于,所述状态信息包括可用性信息,该可用性信息表示所述相对应的服务器(S1-S4)的可用性,该可用性与所述时间戳值(图2中的t1、t4)相关联。
4.根据权利要求3所述的方法,其特征在于,如果所述相对应的服务器(图2中的S1、S4)不可用,则所述可用性信息用负号代表。
5.根据任一前述权利要求所述的方法,其特征在于以下步骤,即响应于利用所述相对应的服务器(S1-S4)完成事务或使事务失败,将状态信息分配给所述状态向量的特定元素。
6.根据任一前述权利要求所述的方法,其特征在于以下步骤,即响应于与所述相对应的服务器(S1-S4)互连的心跳的完成或失败,将状态信息分配给所述状态向量的特定元素。
7.根据任一前述权利要求所述的方法,其特征在于以下步骤,即对于所述服务器集(12)中的一个或多个服务器(S1-S4),响应于从第三方接收第三方状态信息,将状态信息分配给所述状态向量的一个或多个特定元素。
8.根据任一前述权利要求所述的方法,其特征在于,所述状态信息还包括表示所述相对应的服务器的应用响应时间的延迟值。
9.根据权利要求8所述的方法,其特征在于,所述选择规则包括确定所述状态向量的元素子集的步骤,所述子集包括其延迟值低于预定的延迟阈值的那些元素。
10.根据权利要求9所述的方法,其特征在于,所述选择规则包括确定所述状态向量元素的子集中的最大时间戳值和选择所述相对应的服务器(S1-S4)的步骤。
11.根据权利要求8至10中的任一权利要求所述的方法,其特征在于,所述选择规则包括确定所述状态向量的元素子集的步骤,所述子集包括那些元素,所述元素的时间戳值是正数,并且当从所述时间戳值的最大值中减去时产生小于预定的时间戳范围值的值。
12.根据权利要求11所述的方法,其特征在于,所述选择规则包括确定所述状态向量元素的子集中的最小延迟值和选择所述相对应的服务器(S1-S4)的步骤。
13.一种用于实现根据前述权利要求之一所述的方法的客户端装置(10),所述客户端装置(10)包括:
-控制模块(13),用于控制所述客户端装置(10)的其他模块(10,16,20),
-存储器(18),用于存储状态向量,所述状态向量的元素每个都包括对应于服务器集(12)中的服务器(S1-S4)之一的状态信息;
-状态向量管理模块(14),用于通过将状态信息写入所述存储器(18)来维持所述状态向量;
-服务器选择模块(16),用于从所述存储器(18)中读取所述状态向量,将预定的选择规则用于所述状态向量的元素,并由此确定要被选择的服务器(S1-S4);
-客户端模块(20),用于从所述所选择的服务器(S4)请求所述业务;
其特征在于,
所述存储器(18)适于存储包括时间戳值的状态信息,并且
所述状态向量管理模块(14)适于将这种状态信息写入所述存储器(18)。
14.根据权利要求13所述的客户端装置,其特征在于,所述服务器选择模块(16)适于确定所述状态向量中的最大时间戳值和所述相对应的服务器(S1-S4)。
15.根据权利要求13或14所述的客户端装置,其特征在于,所述状态向量管理模块(14)适于将可用性信息分配给所述时间戳值并将可用性信息和时间戳值作为所述状态信息写入所述存储器(18)。
16.根据权利要求13至15中的任一权利要求所述的客户端装置,其特征在于,所述存储器(18)适于存储包括延迟值的状态信息,而所述状态向量管理模块(14)适于将这种状态信息写入所述存储器(18)。
17.根据权利要求13至16中的任一权利要求所述的客户端装置,其特征在于,所述服务器选择模块(16)适于基于根据一个或多个预定恒量来辨别状态信息而确定所述状态向量的元素子集,所述预定恒量例如是延迟阈值或时间戳范围值。
CN200480043501.2A 2004-06-29 2004-06-29 从服务器集中选择一个服务器的方法 Pending CN1977509A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/007049 WO2006002659A1 (en) 2004-06-29 2004-06-29 Method of selecting one server out of a server set

Publications (1)

Publication Number Publication Date
CN1977509A true CN1977509A (zh) 2007-06-06

Family

ID=34958243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200480043501.2A Pending CN1977509A (zh) 2004-06-29 2004-06-29 从服务器集中选择一个服务器的方法

Country Status (7)

Country Link
US (1) US20070260676A1 (zh)
EP (1) EP1762069B1 (zh)
CN (1) CN1977509A (zh)
AT (1) ATE421218T1 (zh)
DE (1) DE602004019151D1 (zh)
MX (1) MXPA06014841A (zh)
WO (1) WO2006002659A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102396187A (zh) * 2009-04-16 2012-03-28 菲尼克斯电气公司 用于确定输入输出设备中事件的发生时间的方法和通信系统
CN104025549A (zh) * 2012-12-18 2014-09-03 英特尔公司 与服务器事务延迟信息相关的技术
CN104298570A (zh) * 2014-11-14 2015-01-21 北京国双科技有限公司 数据处理方法和装置
CN105323290A (zh) * 2014-08-04 2016-02-10 中国移动通信集团公司 一种基于用户流量分布特征的内容调度方法和装置
CN107707938A (zh) * 2017-10-11 2018-02-16 湖南机友科技有限公司 降低直播视频播放延迟的方法及装置
CN112379987A (zh) * 2020-11-17 2021-02-19 中国电力财务有限公司 任务调度方法、装置、可读介质以及设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US8780917B2 (en) * 2007-03-14 2014-07-15 James Roger Hargrave System, method and computer readable medium for communication on a Zigbee network
US7523213B1 (en) 2008-05-20 2009-04-21 International Business Machines Corporation Efficient approach with the toleration of stale data to dynamically transform and unify data quality in client and server with continuous transaction flows
CN103312629B (zh) * 2012-03-09 2018-02-27 深圳市腾讯计算机系统有限公司 一种cdn流量分配方法、设备及系统
JP6079226B2 (ja) * 2012-12-27 2017-02-15 富士通株式会社 情報処理装置、サーバ管理方法およびサーバ管理プログラム
CN104270463A (zh) * 2014-10-21 2015-01-07 无锡云捷科技有限公司 一种cdn网络动态服务器选择方法
WO2016075671A1 (en) * 2014-11-13 2016-05-19 Telefonaktiebolaget L M Ericsson (Publ) Elasticity for highly availabile applications
CN105652237A (zh) * 2016-01-13 2016-06-08 广东欧珀移动通信有限公司 一种移动终端的定位方法、装置及移动终端
CN112527615B (zh) * 2020-12-07 2023-09-01 北京奇艺世纪科技有限公司 一种设备确定方法、装置、电子设备及存储介质
US20230007091A1 (en) * 2021-02-24 2023-01-05 Ip Technology Labs, Llc Systems and methods for automated, controllerless and stateless network connection selection based on distributed server information
US11477276B2 (en) * 2021-02-24 2022-10-18 Ip Technology Labs, Llc Systems and methods for automated, controllerless and stateless network connection selection based on distributed server information
US20230007090A1 (en) * 2021-02-24 2023-01-05 Ip Technology Labs, Llc Systems and methods for automated, controllerless and stateless network connection selection based on distributed server information

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047309A (en) * 1995-10-02 2000-04-04 International Business Machines Corporation Recording observed and reported response characteristics at server and/or client nodes in a replicated data environment, and selecting a server to provide data based on the observed and/or reported response characteristics
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US7035922B2 (en) * 2001-11-27 2006-04-25 Microsoft Corporation Non-invasive latency monitoring in a store-and-forward replication system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102396187A (zh) * 2009-04-16 2012-03-28 菲尼克斯电气公司 用于确定输入输出设备中事件的发生时间的方法和通信系统
CN102396187B (zh) * 2009-04-16 2014-05-14 菲尼克斯电气公司 用于确定输入输出设备中事件的发生时间的方法和通信系统
CN104025549A (zh) * 2012-12-18 2014-09-03 英特尔公司 与服务器事务延迟信息相关的技术
CN104025549B (zh) * 2012-12-18 2017-04-05 英特尔公司 与服务器事务延迟信息相关的技术
CN105323290A (zh) * 2014-08-04 2016-02-10 中国移动通信集团公司 一种基于用户流量分布特征的内容调度方法和装置
CN104298570A (zh) * 2014-11-14 2015-01-21 北京国双科技有限公司 数据处理方法和装置
CN104298570B (zh) * 2014-11-14 2018-04-06 北京国双科技有限公司 数据处理方法和装置
CN107707938A (zh) * 2017-10-11 2018-02-16 湖南机友科技有限公司 降低直播视频播放延迟的方法及装置
CN107707938B (zh) * 2017-10-11 2020-12-08 湖南机友科技有限公司 降低直播视频播放延迟的方法及装置
CN112379987A (zh) * 2020-11-17 2021-02-19 中国电力财务有限公司 任务调度方法、装置、可读介质以及设备

Also Published As

Publication number Publication date
MXPA06014841A (es) 2007-03-26
EP1762069B1 (en) 2009-01-14
ATE421218T1 (de) 2009-01-15
US20070260676A1 (en) 2007-11-08
DE602004019151D1 (de) 2009-03-05
WO2006002659A1 (en) 2006-01-12
EP1762069A1 (en) 2007-03-14

Similar Documents

Publication Publication Date Title
CN1977509A (zh) 从服务器集中选择一个服务器的方法
US8521851B1 (en) DNS query processing using resource identifiers specifying an application broker
US9444759B2 (en) Service provider registration by a content broker
US20120151051A1 (en) Method, system and device for searching active peer in p2p streaming media system
CN101156407B (zh) 通过通信网络提供内容的方法
US9729407B2 (en) Distributed media resources in VoIP networks for providing services
WO2015180339A1 (zh) 消息推送处理方法、装置、推送服务器及应用服务器
WO2008025297A1 (fr) Procédé de téléchargement de fichiers selon la technique p2p (pair à pair) et système de téléchargement p2p
CN1848778A (zh) 用于监控信令消息行进的方法和网络监控装置
CN110336848B (zh) 一种访问请求的调度方法及调度系统、设备
CN1881944A (zh) 改进型分布式核心操作系统
CN102111426A (zh) 点对点技术的实现方法、系统和装置
CN105357246A (zh) 基于信息中心网络的缓存方法和系统
CN102625287A (zh) 一种手机应用软件的下载方法
WO2017071669A1 (zh) 缓存加速的方法及装置
CN101616171B (zh) 一种维护引导节点状态的方法、装置和系统
CN102257792B (zh) 用于包括策略数据库的内容传递的方法
CN106101468B (zh) 传输链路的确定方法及装置
CN101360105A (zh) 内容点播方法和用于该方法的网络
CN106209952B (zh) 服务节点分配方法、装置、cdn管理服务器及系统
CN110661836B (zh) 消息路由方法、装置及系统、存储介质
CN1968097A (zh) 一种注册设备的方法和系统
CN113163029B (zh) 网络会话账号部署方法、装置、终端、服务器及存储介质
RU2344562C2 (ru) Способ выбора сервера из набора серверов
CN1913469A (zh) 分布式网络通讯系统及其建立通讯的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NOKIA SIEMENS COMMUNICATION CO., LTD.

Free format text: FORMER OWNER: SIEMENS AG

Effective date: 20080118

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20080118

Address after: Munich, Germany

Applicant after: Nokia Siemens Networks GmbH

Address before: Munich, Germany

Applicant before: Siemens AG

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070606