计算机系统中资源分配的方法、设备和系统的制作方法

文档序号:7673779阅读:257来源:国知局
专利名称:计算机系统中资源分配的方法、设备和系统的制作方法
技术领域
本发明涉及计算机处理领域。更准确地,本发明涉及用于计算机系统中资源分配的方法,设备和系统。
背景技术
现代的计算机系统通常包括一个或多个服务器,其被构造成服务于多个客户机,所述客户机经由计算机网络(例如局域网(LAN),广域网(WAN),因特网,或其任何组合)连接到服务器。客户机和服务器通常分别被称为客户机节点和服务器节点。在最近几年中,除了传统的文本处理方式之外,已经利用语音识别技术的进步开发出越来越多的应用和系统,以使不同的用户能通过音频的输入/输出与系统交互。尤其是,许多应用被实现成支持语音的交互式语音应答(IVR)应用,以容许用户提交请求到系统,和/或以音频形式(例如语音)从系统接收输出信息。
通常,客户机节点可以从外部通道取得输入数据流,并发送输入数据到与此客户机节点相连的服务器节点。典型地,连接到客户机节点的主叫方或用户在一个时期只能独占地使用通道,并且一个通道被构造成同时只具有一个输入数据流。服务器节点被构造成处理接收自客户机节点的输入数据,并且当服务器节点完成处理时,返回结果给客户机节点。每个服务器节点可以同时处理若干输入数据流。在这种类型的系统配置中,系统通常包括被称为资源管理子系统(RMS)或资源管理器的部件或子系统,其负责分配服务器节点以便服务于客户机节点。
在分布式计算系统环境中(例如,话音门户系统),资源管理(例如,资源分配和利用)总是在系统开发和实现中提出了重大的挑战。尤其是,由于各种原因,对于不同的系统,传统的或常规的资源分配方法(例如,为客户机固定分配服务器,先来先服务方式的资源分配,等等)不再有效和高效。不同的系统可能需要不同的资源管理。例如,如果每个服务器节点只专门服务于某些特定的客户机节点,由于不同客户机节点所需要的资源可能不同并且时常会变化显著的事实,可能会经常发生资源过多分配和/或资源过少利用。在此情况下,特定服务器因来自其提供服务的一个或多个特定客户机的服务请求而负载过重,而系统中的其他服务器可能空闲或过少使用,因为其各个客户机没有许多工作要那些服务器来做。类似地,在以先来先服务方式运行的系统中,资源分配也是很不可行和低效率的,因为一些特定的客户机可能发送许多低优先级服务请求,而其他客户机可能只发送仅仅少数的高优先级服务请求。在此情况下,如果低优先级服务请求在高优先级服务请求之前提交,这些低优先级服务请求将首先被处理,即使其具有较低的处理优先级。


下面参考附图更完整地理解本发明的特征和优点,其中图1是系统配置的一个实施例的模块图,其中实现了本发明的教导;图2是数据处理工作流的一个实施例的流图,其中实现了本发明的教导;图3A和3B示出了根据本发明教导的资源分配方法的一个实施例的流图;图4根据本发明的教导图解了由客户机节点执行的处理的一个实施例的流图;图5根据本发明的教导图解了由服务器节点执行的处理的一个实施例的流图;而图6是根据本发明的教导的方法的一个实施例的流图。
具体实施例方式
在以下具体实施中,阐明了许多具体细节以供对本发明进行全面理解。然而,本领域的技术人员将会理解到,可以在不具备这些具体细节的情况下理解和实施本发明。
在以下讨论中,使用本发明的教导以实现用于计算机系统中资源分配的方法,设备,系统和机器可读取介质。
在一个实施例中,从一个或多个客户机(在此也称为客户机节点)接收一个或多个服务分配请求。根据一个或多个系数为每个服务分配请求计算分值,所述系数包括对应于针对各个服务分配请求已接收的输入数据的量的第一系数,对应于可供分配的资源(例如,服务)的数量的第二系数,以及对应于各个服务分配请求的相对优先级(也被称为呼叫服务质量值)的第三系数,等等。然后根据为每个服务分配请求计算的分值,为一个或多个服务分配请求分配服务或资源。
在一个实施例中,在计算完特定的服务请求的分值之后,确定各个分值是否超过阈值。如果相应分值超过阈值,为该特定服务分配请求分配一个或多个服务。在一个实施例中,阈值可以是介于第一数值(例如,0)和第二数值(例如,1)之间的随机数字,或者是能通过试验法产生的固定数值。虽然这里的讨论使用语音门户系统作为示例,然而本领域的技术人员应当理解和明白,本发明的教导可以应用在其他类型的系统和应用中。
图1示出了系统100的一个实施例的模块图,其中实现了本发明的教导。如图1所示,系统100包括若干计算节点(例如,客户机节点110和服务器节点130,等等)。系统100还包括资源管理子系统(RMS)或资源管理器140。客户机节点110被构造成从通道120取得输入数据流并向服务器节点130发送输入数据。在一个实施例中,连接到每个客户机节点110的用户或主叫方可以在一个时期独占使用通道。在一个实施例中,一个通道在一个时期可以有一个输入数据流。每个服务器节点130可被构造成服务于一个或多个客户机节点110。每个服务器节点130可以被构造成处理从相应客户机节点110接收的特定通道120的输入数据,并返回结果给相应的客户机节点110。在一个实施例中,每个服务器节点130可以被构造成同时处理几个输入数据流或从客户机节点110接收的服务请求。在一个实施例中,为处理从客户机节点110接收的服务请求,服务器节点130可以创建或激活服务进程(此处也称为服务)以处理相应的服务请求。在一个实施例中,根据下面更详细讨论的各种系数,RMS或资源管理器140负责分配适当的服务器节点130给客户机节点110,以便处理客户机节点110提交的服务请求(例如,客户机节点110发送的输入数据流)。根据本发明的特定应用和实现,RMS或资源管理器140可以位于一个或多个计算节点上。图1所示的系统100能够从与客户机节点110相关的各个通道120接收输入数据(例如,服务请求),在服务器节点130中处理所接收到的输入数据,并经由相应客户机节点110返回处理结果到各个通道120。
图2图解了图1所示的系统100执行的高层数据处理工作流200的一个实施例的流图。在块210,当客户机节点检测到连接到此客户机节点的通道中输入数据的起始时,客户机节点向RMS或资源管理器140发送服务分配请求。在一个实施例中,在客户机节点中保存输入数据,直到分配服务给客户机节点,或者客户机节点决定舍弃数据。在块220,当RMS或资源管理器接收来自客户机节点的服务分配请求时,RMS或资源管理器根据以下更详细描述的资源分配方法,分配服务(例如,服务器节点)以便服务于相应的客户机节点。然后RMS或资源管理器向相应的客户机节点发送服务信息。在块230,当从RMS接收到服务信息时,客户机节点开始向为其分配的相应服务(例如,服务器节点)发送输入数据。在块240,在检测到通道中输入数据的结束时,客户机节点向相应的服务发送消息(例如,数据结束消息)。然后相应的服务向客户机节点返回结果,并向RMS发送消息(例如,服务完成消息)以释放服务。
图3A和3B根据本发明的教导示出了资源分配方法300的一个实施例的流图。以下提供了包含在资源分配方法300的讨论中的各种数据结构,术语和函数,等等。
-待决请求表这是用于存储接收自客户机的,其服务还没有被准许的服务分配请求的数据结构或表格。
-就绪请求表这是用于存储已经准许的服务分配请求的数据结构或表格。在一个实施例中,在此表中,新请求被放置在表尾,并将最老的请求放置在表头。例如,第一个请求位于表头(在第一表项中)。下一个请求被放置在表的第二表项,等等。在一个实施例中,如果从表中移除一个请求,剩余的请求以相同顺序形成新表。
-服务分配表这是用于存储系统提供的服务的数据结构或表格。应当注意到,特定的服务器节点可以对应于一个或多个服务。在一个实施例中,如果计算节点(例如,服务器节点)能处理多个请求,此计算或服务节点将在服务分配表中有多个表项。例如,如果服务器节点“A”能同时处理5个请求,则在服务分配表中,服务器“A”有5个表项。在一个实施例中,此表中的每个服务表项可以具有以下两个状态中的一个空闲或忙。每个服务表项被初始化为空闲。
-随机值生成函数r()是随机地产生介于0和1之间的浮点数值的函数。
-服务质量值在一个实施例中,系统的每个用户被指定介于0和1之间的数值,以指示其服务质量(这里也称为相关服务优先级或简单相对优先级)。在一个实施例中,如果用户有较高的服务质量值,表示用户更优先地得到服务。当客户机接受与用户或主叫方的连接时,客户机会通过一些预定机制(例如,通过与此特定用户相关的摘要(profile)信息或通过用户输入,等等)取得用户/主叫方的服务质量值。在一个实施例中,如果不能获得此用户/主叫方的服务质量信息,可以为特定用户/主叫方指定或设置默认的服务质量值。
-可用资源比率函数a(n)是返回不小于0的浮点数值的函数。这里n对应于系统中可用服务的数量(0<=n<=Nr,Nr是系统中服务的总数)。可以通过表定义,或者由函数简单地生成。在正常情况下,如果i<j,则a(i)<=a(j)。
-时间加权函数wt(tin)是返回不小于0的浮点数值的函数,其中tinmin<=tin<=tinmax。在正常情况下,如果t1>t2,则wt(t1)>wt(t2)。
tinmin/tinmax分别对应于输入数据流的最小和最大时间长度。tnormal对应于在客户机一侧接收最后数据的时间和接收最终结果的时间之间的最大容许延迟。
再次参考图3A和3B,资源分配方法300的操作如下-在块305执行系统初始化。
-在块310针对在待决请求表中的每个请求,以下述方式确定每个请求是否得到服务-在块312通过下述函数为相应的请求计算分值
-取得随机阈值rthreshold=r();-计算rthis=wt(tin)*a(n)*q,其中·wt()是时间加权函数;·a()是可用资源比率函数;·tin是已经按时接收的数据的长度;·n是系统中可用服务的数量;而·q是此请求的呼叫服务质量值。
-在决策块314,如果所计算的分值大于或等于随机阈值(rthis>=rthreshold),方法300前进到块316。否则方法300前进到块318以处理下一个请求。
-在块316,相应的请求被放入就绪请求表中并从待决请求表中移除。然后方法300前进到块318已处理待决请求表中的下一个请求。
-在待决请求表中的所有请求都如以上所描述的处理完毕之后,方法300前进到决策块320。
-在决策块320,如果有可用的服务(例如,空闲服务)并且就绪请求表非空,方法300前进到块322。否则方法300前进到块334(如图3B所示)。
-在块322,在就绪请求表中搜索已经接收到完整的输入数据流、具有最高服务质量值的请求。在一个实施例中,搜索从就绪请求表的表头开始执行。在一个实施例中,如果两个请求具有相同的服务质量值,那么最先发现的请求被赋予较高的优先级。
-在决策块324,如果发现了这样的请求(已经接收完全的输入数据流并且具有最高服务质量值的请求),方法300前进到块328。否则方法300前进到块326。
-在块326,搜索具有最高服务质量值的请求。在决策块330,如果存在这样的请求,方法300前进到块328。否则方法300循环回到块320。
-在块328,RMS将为在块322或块326中识别出的请求分配服务,并从就绪请求表中移除相应的请求。服务分配表因此被更新以反映相应服务的当前状态(例如,相应的服务的状态从“空闲”改变为“活跃”)。然后RMS向客户机节点和服务节点发送适当的消息(例如,服务分配通知消息)。然后方法300循环回到块320以继续处理就绪请求表中的请求。
-在决策块334,RMS检查是否已接收到新的服务分配请求。如果已接收到新的服务分配请求,方法300前进到决策块336。否则方法300前进到块344。
-在决策块336,如果相应请求的服务质量值比阈值(例如,0.5的阈值)大,方法300前进到块338。否则方法300前进到块340。
-在块338,相应的请求被放入就绪请求表尾。
-在块340,相应的请求被放入待决请求表尾。
-然后方法300从块338,或从块340前进到块334。
-在块344,如果RMS接收到指示在通道上检测到数据流的结束的消息(例如,数据结束消息),方法300前进到块346。否则方法300前进到块350。
-在块346,如果在待决请求表中发现相应的请求,则从待决请求表中移除相应的请求并将其放入就绪请求表中(例如,将请求放入就绪请求表尾)。
-在块348,如果在就绪请求表中发现相应的请求,则针对请求更新表中的信息,以指示相应请求的输入数据流是完整的。如果在就绪请求表中没有发现相应的请求,则忽略数据结束消息。
-在块350,如果RMS接收到指示请求被取消的消息,则或者从就绪请求表,或待决请求表中移除相应的请求,如果在那些表中存在此请求的表项。
-在块352,如果RMS接收到来自服务的、指示数据流已经被处理完毕的消息,RMS将在服务分配表中释放相应的服务。在一个实施例中,通过设置服务表项状态成空闲状态来释放服务。
-然后方法300循环回到块310以便继续处理。
图4示出了客户机节点执行的处理400的流图。在块410,系统启动之后,客户机节点将每个通道的状态设置为空闲状态,以指示此时在相应的通道上没有输入数据。在块420,如果客户机节点检测到输入数据流的起始,客户机节点向RMS发送包括此时已接收到的输入数据的长度的通知消息(例如,服务分配请求)。在块430,如果客户机节点检测到输入数据被取消,则客户机节点向RMS和相应的服务节点(如果已经分配服务以处理输入数据)发送请求取消消息。在块440,如果客户机节点检测到输入完成,则客户机节点向RMS和相应的服务节点(如果已经分配服务以处理输入数据)发送通知消息。在块450,如果客户机节点接收到来自RMS的、表明已经分配服务给客户机节点提交的服务分配请求的消息,客户机节点向指定的服务进程(即,已经分配以处理相应请求的服务)发送所有存储的该通道的输入数据。此通道的所有后续输入数据也将被发送到指定的服务进程。在块460,如果当客户机节点正在等待来自RMS的服务分配消息时,客户机节点接收到更多的数据(例如,在服务分配请求已经被发送到RMS之后),客户机节点将向RMS发送通知消息以指示其已经接收到的数据的长度。
图5示出了在服务器或服务节点执行的处理500的一个实施例的流图。在块510,当服务进程接收输入数据时,服务进程尽可能快地开始处理输入数据。在块520,当服务进程接收来自相应客户机节点的数据结束通知时,服务进程将尽可能快地完成输入数据的处理。在块530,一旦服务进程完成了全部输入数据的处理,服务进程向RMS和相应客户机节点发送通知消息(例如,服务完成消息)。在一个实施例中,如果必需,处理结果将被发送到系统中的另一个部件或单元以便作进一步的处理。在块540,当服务进程接收指示输入数据已经被取消的消息时,服务进程向RMS发送通知消息(例如,服务完成消息)。
在一个实施例中,这里描述的资源分配方法可以根据以下假定操作-在接收输入数据流时·资源分配方法占用一段时间(tin)以从通道取得完整的输入数据流。在服务器节点处理完整的输入数据流之后生成结果。
·如果输入数据流的最小时间长度用tinmin表示,输入数据流的最大时间长度用tinmax表示,则输入数据流的长度应满足以下约束tinmin<=tin<=tinmax。
超出范围的数据流被舍弃。
·外部的输入数据流被逐块送入客户机节点。块的大小在系统启动期间是可设置的。
-在处理输入数据流时·应当实时执行输入数据的处理。服务器节点能实时处理至少一个输入数据流。在此实例中,在客户机一侧,接收最后数据的时间和接收最终结果的时间之间的时间延迟应小于预定数值,即tnormal。tnormal是最大容许延迟。当服务器节点正在处理多个输入数据流时,用以得到最终处理结果的时间延迟与其处理的数据流的数量是成比例的。当更多数据流需要被处理时,时间延迟会变得更长。
·数据输入过程可与数据处理过程重叠。服务器节点不需要等待接收完整的数据流以启动处理。服务器节点能增量式地处理输入数据流(例如,逐个字节地)。换句话说,无论其已经接收了多少数据,服务器节点均能进行处理。然而,直到处理完全部数据流,才会有最终结果。这种配置使进程/过程的重叠成为可能。
图6根据本发明的教导示出了方法600的一个实施例的流图。方法600从块601开始并前进到块610。在块610,从多个客户机接收多个服务分配请求。在块620,根据一个或多个系数计算每个服务分配请求的分值,所述系数包括对应于针对相应服务分配请求已经接收的输入数据的量的第一系数,对应于可用于分配的资源(例如,服务)的数量的第二系数,以及对应于相应服务分配请求的相对优先级(也被称为呼叫服务质量值)的第三系数。在块630,根据为每个服务分配请求计算的分值,为多个服务分配请求分配服务。
已经结合优选实施例描述了本发明。显然,本领域的技术人员在参照以上描述情况下会明白许多替代,修改,变化。
权利要求
1.一种方法,包括从多个客户机接收多个服务分配请求;根据一个或多个系数计算每个服务分配请求的分值,所述系数包括对应于已经针对相应服务分配请求接收的输入数据的量的第一系数,对应于可用于分配的资源的数量的第二系数,以及对应于相应服务分配请求的相对优先级的第三系数;以及根据为每个服务分配请求计算的分值,为多个服务分配请求分配服务。
2.如权利要求1所述的方法,其中分配服务包括确定特定服务分配请求的分值是否超过阈值;以及如果特定服务分配请求的分值超过阈值,为该特定服务分配请求分配一个或多个服务。
3.如权利要求2所述的方法,其中阈值是其数值介于第一数值和第二数值之间的随机数。
4.如权利要求3所述的方法,其中第一数值对应于0,并且第二数值对应于1。
5.如权利要求1所述的方法,还包括在接收到新的服务分配请求时,确定分配给相应服务分配请求的相对优先级是否超过第一预定阈值;以及如果分配给相应服务分配请求的相对优先级超过第一预定阈值,指示相应的服务分配请求符合服务分配条件。
6.如权利要求5所述的方法,其中指示相应的服务分配请求符合服务分配条件的步骤包括将相应服务分配请求的表项添加到第一数据结构。
7.如权利要求6所述的方法,还包括如果所分配的相对优先级没有超过第一预定阈值,指示相应服务分配请求仍然不符合服务分配条件。
8.如权利要求7所述的方法,其中指示相应服务分配请求仍然不符合服务分配条件的步骤包括将相应服务分配请求的表项添加到第二数据结构。
9.如权利要求6所述的方法,还包括根据每个服务分配请求的相对优先级和与每个服务分配请求相关的输入数据的完整性,针对那些已经被识别为符合服务分配条件的服务分配请求执行服务分配。
10.如权利要求9所述的方法,其中所述执行步骤包括识别具有最高相对优先级,并且已经针对其接收了完整的输入数据的服务分配请求;和为所识别的服务分配请求分配一个或多个服务。
11.如权利要求10所述的方法,还包括从第一数据结构移除对应于相应服务分配请求的表项。
12.如权利要求10所述的方法,还包括如果没有这样的服务请求,识别具有最高相对优先级的服务分配请求;以及为所识别的服务分配请求分配一个或多个服务。
13.一种设备,包括用于从多个客户机接收多个服务分配请求的逻辑;用于根据一个或多个系数计算每个服务分配请求的分值的逻辑,所述系数包括对应于已经针对相应服务分配请求接收的输入数据的量的第一系数,对应于可用于分配的资源的数量的第二系数,以及对应于相应服务分配请求的相对优先级的第三系数;以及用于根据为每个服务分配请求计算的分值,为多个服务分配请求分配服务的逻辑。
14.如权利要求13所述的设备,其中用于分配服务的逻辑包括用于确定特定服务分配请求的分值是否超过阈值的逻辑;以及如果特定服务分配请求的分值超过阈值,用于为特定服务分配请求分配一个或多个服务的逻辑。
15.如权利要求14所述的设备,其中阈值是其数值介于第一数值和第二数值之间的随机数。
16.如权利要求13所述的设备,还包括用于在接收到新的服务分配请求时,确定分配给相应服务分配请求的相对优先级是否超过第一预定阈值的逻辑;以及如果分配给相应服务分配请求的相对优先级超过第一预定阈值,用于指示相应服务分配请求符合服务分配条件的逻辑。
17.如权利要求16所述的设备,还包括如果所分配的相对优先级没有超过第一预定阈值,用于指示相应服务分配请求仍然不符合服务分配条件的逻辑。
18.如权利要求16所述的设备,还包括用于根据每个服务分配请求的相对优先级和与每个服务分配请求相关的输入数据的完整性,为那些已经被识别为符合服务分配条件的服务分配请求执行服务分配的逻辑。
19.如权利要求18所述的设备,其中所述用于执行的逻辑包括用于识别具有最高相对优先级并且已经针对其接收了完整的输入数据的服务分配请求的逻辑;和用于为所识别的服务分配请求分配一个或多个服务的逻辑。
20.如权利要求19所述的设备,还包括如果没有这样的服务请求,用于识别具有最高相对优先级的服务分配请求的逻辑;以及用于为所识别的服务分配请求分配一个或多个服务的逻辑。
21.一种系统,包括多个客户机;经由网络连接到多个客户机的多个服务器;用以管理系统的资源分配的资源管理器,包括用于从多个客户机接收多个服务分配请求的逻辑;用于根据一个或多个系数为每个服务分配请求计算分值的逻辑;以及用于根据为每个服务分配请求计算的分值为多个服务分配请求分配服务的逻辑。
22.如权利要求21所述的系统,其中所述一个或多个系数包括对应于已经针对相应服务分配请求接收的输入数据的量的第一系数,对应于可用于分配的资源的数量的第二系数,以及对应于相应服务分配请求的相对优先级的第三系数。
23.如权利要求22所述的系统,其中用于分配服务的逻辑包括用于确定特定服务分配请求的分值是否超过阈值的逻辑;以及如果特定服务分配请求的分值超过阈值,用于为特定服务分配请求分配一个或多个服务的逻辑。
24.如权利要求23所述的系统,其中阈值是其数值介于第一数值和第二数值之间的随机数。
25.如权利要求23所述的系统,还包括用于在接收到新的服务分配请求时,确定分配给相应服务分配请求的相对优先级是否超过第一预定阈值的逻辑;以及如果分配给相应服务分配请求的相对优先级超过第一预定阈值,用于指示相应服务分配请求符合服务分配条件的逻辑。
26.如权利要求25所述的系统,还包括用于根据每个服务分配请求的相对优先级和与每个服务分配请求相关的输入数据的完整性,为那些已经被识别为符合服务分配条件的服务分配请求执行服务分配的逻辑。
27.一种机器可读取介质,包括当由机器执行时使机器执行操作的指令,所述操作包括从多个客户机接收多个服务分配请求;根据一个或多个系数计算每个服务分配请求的分值,所述系数包括对应于已经针对相应服务分配请求接收的输入数据的量的第一系数,对应于可用于分配的资源的数量的第二系数,以及对应于相应服务分配请求的相对优先级的第三系数;以及根据为每个服务分配请求计算的分值,为多个服务分配请求分配服务。
28.如权利要求27所述的机器可读取介质,其中分配服务包括确定特定服务分配请求的分值是否超过阈值;以及如果特定服务分配请求的分值超过阈值,为该特定服务分配请求分配一个或多个服务。
29.如权利要求28所述的机器可读取介质,还包括在接收到新的服务分配请求时,确定分配给相应服务分配请求的相对优先级是否超过第一预定阈值;以及如果分配给相应服务分配请求的相对优先级超过第一预定阈值,指示相应的服务分配请求符合服务分配条件。
30.如权利要求29所述的机器可读取介质,还包括根据每个服务分配请求的相对优先级和与每个服务分配请求相关的输入数据的完整性,针对那些已经被识别为符合服务分配条件的服务分配请求执行服务分配。
全文摘要
根据本发明的一个方面,提供了一种从多个客户机接收多个服务分配请求的方法。根据一个或多个系数为每个服务分配请求计算分值,所述系数包括对应于已经针对相应服务分配请求接收的输入数据的量的第一系数,对应于可用于分配的资源的数量的第二系数,以及对应于相应服务分配请求的相对优先级的第三系数。根据为每个服务分配请求计算的分值,为多个服务分配请求分配服务。
文档编号H04L29/08GK1545663SQ01823576
公开日2004年11月10日 申请日期2001年7月2日 优先权日2001年7月2日
发明者托凌云(音译), 黄涛(音译), 张洪毅(音译), 王智慧(音译), (音译), 粢 申请人:英特尔公司, 英特尔中国有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1