用于将从客户接收的任务智能地分布于多个劳动资源间的系统和方法

文档序号:10654325阅读:199来源:国知局
用于将从客户接收的任务智能地分布于多个劳动资源间的系统和方法
【专利摘要】计算机实施的系统和方法将从客户接收的任务智能地分布于劳动资源间。一个或多个数据库存储关于劳动资源的信息和关于客户的信息。以通信方式耦接到所述数据库的任务分配服务器接收将针对所述客户执行的多个任务、存取关于所述劳动资源的所存储的信息、存取关于所述客户的所存储的信息,以及取决于关于所述多个劳动资源的信息且取决于关于所述多个客户的信息将大部分任务中的每一个分配到所述多个劳动资源中的一个,使得所述多个任务分布于所述多个劳动资源中的两个或更多个间。所述系统还可以包含多个队列,所述多个队列适用于存储关于分配到与所述多个队列相关联的所述劳动资源的任务的信息。
【专利说明】
用于将从客户接收的任务智能地分布于多个劳动资源间的系统和方法[0001 ]优先权主张[0002] 本申请案主张2015年3月31日递交的第14/674,622号美国专利申请案的优先权。
技术领域
[0003]本发明的实施例大体上涉及用于将从客户接收的任务智能地分布于劳动资源间的计算机实施的系统和方法。【背景技术】
[0004]已知的是负载平衡可用于将任务分布于多个资源间以避免任何单个资源的过载、 提高整个系统处理量,并且缩短响应时间。然而,常规的负载平衡通常未能考虑从中接收任务的所有客户并不都是相同的,且执行任务的所有资源并不都是相同的。
【发明内容】

[0005]根据某些实施例,一个或多个数据库存储关于劳动资源的信息和关于客户的信息。以通信方式耦接到数据库的任务分配服务器接收将针对客户执行的多个任务、存取关于劳动资源的所存储的信息、存取关于客户的所存储的信息,并且取决于关于多个劳动资源的信息且取决于关于多个客户的信息将大部分任务中的每一个分配到多个劳动资源中的一个,使得多个任务分布于多个劳动资源中的两个或更多个间。所述系统还可以包含多个队列,所述队列适用于存储关于分配到与队列相关联的劳动资源的任务的信息。【附图说明】
[0006]图1说明根据本发明技术的一个实施例用于将从客户接收的任务智能地分布于劳动资源间的计算机实施的系统。
[0007]图2A、2B和2C是根据本发明技术的各种实施例用于概述方法的高水平流程图,以用于将从客户接收的任务智能地分布于多个劳动资源间。
[0008]图3说明根据本发明技术的一个实施例引入在图1中的任务分配服务器的示例性细节。
[0009]附图标号说明
[0010]102系统
[0011]104-1 到 104-n客户
[0012]106-1 到 106-m劳动资源[〇〇13]112任务分配服务器[〇〇14]122-1劳动资源数据库
[0015]122-2客户数据库
[0016]122-3详细目录数据库
[0017]122-4关系数据库[〇〇18]122-5任务数据库
[0019]202-224步骤[〇〇2〇]302总线[〇〇21]304任务接口
[0022]306反馈接口[〇〇23]308数据库接口[〇〇24]310存储器
[0025]312队列接口[〇〇26]314劳动资源接口
[0027]316CPU
[0028]318驱动单元【具体实施方式】
[0029]在以下详细描述中,参考形成其一部分且其中借助于说明示出特定示意性实施例的附图。应理解,可利用其它实施例且可做出机械及电改变。因此,不应将以下详细描述视为具有限制意义。在以下描述中,类似数字或参考指定符将始终用于指代类似部分或元件。 另外,参考标号的第一数位识别参考标号第一次出现的图式。[〇〇3〇]图1说明根据本发明技术的实施例的计算机实施的系统。更确切地说,图1说明用于将从多个客户104接收的任务智能地分布于多个劳动资源106间的计算机实施的系统 102。在图1中标记为104-1、104-2……104n的客户可以单独地参考为一个客户104,或共同地参考为多个客户104。类似地,在图1中标记为106-1、106-2……106m的劳动资源可以单独地参考为一个劳动资源106,或共同地参考为多个劳动资源106。根据某些实施例,在任何给定时间存在总共“n”个客户以及总共“m”个劳动资源,其中“n”和“m”是正整数且n>m。因此, 至少一些且优选地所有劳动资源106将执行用于一个以上的客户104的任务。实际上,根据某些实施例n?m。根据替代实施例,n=m、n〈m或n〈〈m。[〇〇31]仍然参考图1,系统102示出为包含以通信方式耦接到多个数据库122-1、122-2、 122-3、122-4和122-5的任务分配服务器122。另外,任务分配服务器122以通信方式耦接到多个队列132-1、132-2……132-m,所述队列更确切地说被称作用于劳动资源的队列。数据库122-1、122-2、122-3、122-4和122-5可以单独地被称作一个数据库122,或共同地被称作多个数据库122。类似地,在图1中标记为132-1、132-2……132m的队列(用于劳动资源)可以单独地参考为一个队列132,或共同地参考为多个队列132。[〇〇32]如将在以下额外细节中描述,队列132中的每一个与劳动资源106中的一个相关联并且用于存储关于分配到与队列132相关联的劳动资源106中的一个的任务的信息。另外, 队列132可由劳动资源106存取以使得劳动资源能够获得关于分配到它们的任务的信息,使得它们可以执行任务。在某些实施例中,需要劳动资源106按照与劳动资源106相关联的队列132所规定的顺序在任务上工作。在其它实施例中,劳动资源106可以脱离与劳动资源106 相关联的队列132所规定的顺序在任务上工作。队列132可以使用软件、固件或硬件或其任何组合实施。
[0033]数据库122示出为包含劳动资源数据库122-1、客户数据库122-2和详细目录数据库122-3。根据一个实施例,劳动资源数据库122-1存储关于多个劳动资源106的信息,客户数据库122-2存储关于多个客户104的信息,并且详细目录数据库122-3存储关于可用于劳动资源106以执行用于客户104的任务的详细目录的信息。存储在劳动资源数据库122-1中的关于多个劳动资源106的信息可包含关于多个劳动资源106中的每一个的可用性信息以及关于多个劳动资源106中的每一个的一个或多个能力的能力信息,但不限于此。每个劳动资源的可用性信息可包含,例如,工作调度,以及劳动资源(在经调度以执行工作的同时)是否当前正作用于客户的任务,但不限于此。在一个实施例中,用于每个劳动资源106的能力信息可包含劳动资源属性,例如但不限于,专长、偏好、年龄、设备、地理位置和/或类似者。 在一个实施例中,存储在客户数据库122-2中的关于多个客户104的信息可包含客户属性, 例如但不限于,偏好、年龄、地理位置和/或类似者。[〇〇34]详细目录数据库122-3可以存储关于当前可用于劳动资源以执行任务的详细目录的当前详细目录信息。另外,详细目录数据库122-3可以存储关于将在未来可用于劳动资源 106以执行任务的详细目录的未来详细目录信息。此类未来详细目录信息可以基于已经做出以补充和/或扩展详细目录的详细目录顺序来确定,以及基于与此类顺序相关联的经调度到达信息来确定。未来详细目录还可以基于项目返回信息来确定,所述项目返回信息是指示客户所指示的项目因为不可被客户接受而返回。另外,系统可以追踪一般而言的项目或特定项目被客户返回的频率,并且可以基于此类追踪信息预测何时项目将被返回以及返回的程度并且用于补充详细目录。某些类型的返回项目可以重新补足,即,返回到详细目录,而其它类型的返回项目无法重新补足,即,无法返回到详细目录。在一个实施例中,包含在详细目录中的用于每个项目的详细目录信息包含项目属性。取决于包含在详细目录中的项目的类型,仅举几例,示例性项目属性包含项目库存单位(SKU)数目、项目类型、项目样式、项目材料、项目色彩、项目尺寸、项目成本、项目存放期和/或项目到期日期。
[0035]关系数据库122-4适用于存储关于在劳动资源106和客户104的特定组合之间的先前建立关系的关系信息。在一个实施例中,关系信息指示特定劳动资源106是否已经在先前执行了针对客户104中的特定的一个的任务,并且如果是,指示特定劳动资源106是否(和/ 或达到何种程度)成功地执行了针对客户104的任务。此类关系信息可以替代的存储在劳动资源数据库122-1和/或客户数据库122-2中,或存储在一些其它数据库或数据存储中。 [〇〇36]任务数据库122-5适用于存储关于从客户104接收的任务的信息。任务数据库122-5还可以追踪哪个劳动资源106被分配了哪个任务。举例来说,任务数据库122-5可以存储任务的列表,所述任务的列表规定请求执行该任务的客户、每个任务的最后期限、每个任务所分配到的劳动资源(假定它已经被分配)和/或类似者。在某些实施例中,上述队列132中的每一个提供与具有对存储在任务数据库122-5中的信息的特定部分的存取的队列相关联的劳动资源106。
[0037]任务数据库122-5还可以存储从客户104接收的反馈信息。此类反馈信息可以指示例如由劳动资源106中的一个为客户104执行的任务是否是成功地执行的。如下文所述,其它类型的反馈也是可能的。反馈信息可以替代地或另外存储在其它数据库中,例如上文所述的那些数据库,或者存储在反馈数据库中(未具体示出)。
[0038]还可能的是所有上述信息都存储在单个数据库中,或者上述信息存储在与示出的相比更多、更少或不同的数据库中。更一般地说,一个或多个数据库可用于存储劳动资源信息、客户信息、详细目录信息、关系信息和反馈信息,以及本文中描述的其它类型的信息。
[0039]根据一个实施例,客户104中的每一个可以提供反馈到任务分配服务器112,所述反馈是关于针对客户由劳动资源106中的一个执行的任务是否成功地执行的。如上文所提及且在下文中以额外细节所说明,可以存储此类反馈信息,这使得任务分配服务器112能够在将从客户接收的其它任务分配到劳动资源时存取和利用所存储的反馈信息。此类反馈信息可以存储在例如反馈数据库中和/或存储在参考图1所论述的其它数据库(例如,劳动资源数据库122-1)中的一个中,但不限于此。
[0040]取决于特定任务,并且取决于如何定义“成功”,关于特定劳动资源106先前是否 (和/或,达到何种程度)成功地为客户104执行任务的彳目息可以是二进制彳目息(例如,是或不,或1或0 ),或者可以是包含更多级别的粒度的信息(例如,在0和10之间的分数,或1和 100,或F和A之间的级别)。在特定劳动资源106先前针对特定客户104执行多个任务的情况下,关系信息可以指示特定劳动资源106针对特定客户104成功地执行多个任务的频率和/ 或程度。如将从下文中提供的额外细节中了解,当任务分配服务器112将从客户104接收的任务分配到劳动资源106时,此类存储的关系信息可以由任务分配服务器112使用。举例来说,假定存储的关系信息指示特定劳动资源106已经针对先前分配到特定劳动资源106的特定客户104成功地执行了所有任务。任务分配服务器122可考虑此类关系信息以将从特定客户104接收的其它任务分配到已经具有成功地执行针对该特定客户104的任务的优良追踪记录的相同劳动资源106。对于另一实例,假定存储的关系信息指示先前不成功地执行针对特定客户104的任务的特定劳动资源106,在此情况下,任务分配服务器122可决定从特定客户104接收的另一任务应该分配到不同的劳动资源106。
[0041]仍然参考图1,任务分配服务器122示出为从多个客户104接收多个任务。任务分配服务器122可在通信网络上接收任务,所述通信网络,例如,互联网、局域网(LAN)、广域网 (WAN)、无线网络、企业内部网、专用网络、公用网络、交换网络、这些的组合,和/或类似者。 各种通信协议可用于促进在客户104与任务分配服务器112之间的通信,例如,TCP/IP、HTTP 协议、无线应用协议(WAP)、供应商专有协议、定制协议,但不限于此。
[0042]由任务分配服务器122接收的任务中的每一个可以具有相关联的完成最后期限。 任务的完成最后期限可以由发送任务的客户104规定,或更一般而言,由针对其执行任务的客户104规定。可替代地,完成最后期限可以是从任务分配服务器122接收任务的时间起的固定时间量。还可能的是完成最后期限可以由针对其执行任务的客户104规定,但是如果客户未能规定完成最后期限,那么完成最后期限由从任务分配服务器122接收任务的时间起的固定时间量确定。在一个实施例中针对任务的完成最后期限不能小于从任务分配服务器 122接收任务的时间起的预先确定的最少时间量的时间。这确保了劳动资源106具有足够的时间来执行任务。在某些实施例中,客户或与客户相关联的实体可以支付费用以使其任务在加速或紧急的基础上执行。
[0043]根据一个实施例,取决于与劳动资源106相关联的可用性信息和能力信息,任务分配服务器112适用于将任务中的每一个分配到多个劳动资源106中的一个。举例来说,如果特定劳动资源106当前可用(或在未来将在规定的时间窗口内可用),那么任务分配服务器 112可针对特定客户104将任务分配到特定劳动资源106,并且特定劳动资源106在规定阈值或范围内具有与特定客户104和/或任务匹配的能力和/或其它属性。另外,如上文所提及, 任务分配服务器112可以将任务中的每一个分配到多个劳动资源106中的一个还取决于关系信息,其实例已在上文中论述。更确切地说,任务分配服务器可以适用于将任务中的至少一些分配到多个劳动资源中的至少一些还取决于关系信息。举例来说,任务分配服务器可给出将针对客户的任务分配到先前成功地执行针对该客户的任务的特定劳动资源的偏好。 各种不同类型的匹配、类似性和/或概率算法可以由任务分配服务器112使用以将任务分配到劳动资源。一个或多个算法可以利用自适应机器学习以基于从客户104和/或劳动资源 106接收的反馈修改其本身和/或修改存储在上述数据库中的信息。此类反馈可以由客户和/或劳动资源输入。另外或可替代地,反馈可以由客户和/或劳动资源的追踪行为产生。
[0044]在任务分配服务器112将特定任务分配到劳动资源106中的特定的一个之后,任务分配服务器可以将任务(或更具体来说,关于任务的信息)直接发送到特定劳动资源106。替代地,在任务分配服务器112将特定任务分配到劳动资源106中的特定的一个之后,任务分配服务器将任务(或更具体来说,关于任务的信息)放置在与任务分配到的劳动资源106中的特定的一个相关联的队列132中。根据一个实施例,队列132中的每一个存储分配到与队列132相关联的劳动资源106中的一个或多个任务,所述任务已经由劳动资源106执行/尚未由劳动资源106执行。在一个实施例中,任务仍然在队列132中(用于劳动资源106)直至劳动资源106已经开始作用于任务。在另一实施例中,任务仍然在队列132中(用于劳动资源106) 直至劳动资源106已经结束作用于(S卩,已经完成执行)任务。其它变化例是可能的并且在本文中描述的实施例的范围内。根据一个实施例,队列132由维持和控制任务分配服务器112 的相同实体维持和控制。
[0045]任务分配服务器122可以在一个或多个通信网络上将任务(或更具体来说,关于任务的信息)发送到劳动资源132,所述通信网络,例如,互联网、局域网(LAN)、广域网(WAN)、 无线网络、企业内部网、专用网络、公用网络、交换网络、这些的组合,和/或类似者。替代地, 任务分配服务器112将分配的任务(或更具体来说,关于任务的信息)存储在队列132内,并且劳动资源中的每一个经由通信接口存取其相关联的队列132,所述通信接口例如但不限于,网络浏览器,由此消除任何劳动资源获得使得劳动资源能够接受或者存取并且执行任务的定制软件的需要。换句话说,每个劳动资源106可以利用通信接口(例如,网络浏览器) 和通信网络(例如,互联网、LAN、WAN、无线网络、企业内部网、专用网络、公用网络、交换网络、这些的组合和/或类似者)来存取其队列以获得任务(或更具体来说,关于任务的信息) 并且开始作用于任务。
[0046]任务分配服务器112可以将任务分配到劳动资源106而无需响应于来自劳动资源 106的任务请求。换句话说,任务分配服务器112可以将任务分配到劳动资源106而无需首先接收来自劳动资源106的任务请求。另外,或替代地,任务分配服务器112可以响应于接收来自劳动资源106的任务请求以将任务分配到劳动资源106。举例来说,当劳动资源106闲置时、当在队列132中不存在与劳动资源106相关联的任务时,或当与劳动资源106相关联的队列132中的任务的数目低于对应的阈值时劳动资源可自动地请求任务,但不限于此。劳动资源106可替代地手动地请求任务,例如,通过选择预先确定的按钮或类似物。
[0047]当任务分配服务器112将任务分配到劳动资源106而不专门接收来自劳动资源106 的任务请求时,系统102可以据称是遵循“推动”模型的。替代地,当任务分配服务器112响应于接收来自劳动资源106的任务请求以将任务分配到劳动资源106时系统可以据称是遵循 “拉动”模型的。还可能的是系统102是遵循“推动”模型与“拉动”模型的组合的。举例来说, 任务分配服务器112可以遵循“推动”模型并且基本上紧接在接收任务的第一子集之后将任务的第一子集分配到劳动资源112的第一子集,例如,取决于与多个任务的第一子集相关联的完成最后期限,而无需响应于任务请求。另外,任务分配服务器112可以遵循“拉动”模型并且将多个任务的第二子集分配到多个劳动资源106的第二子集,这取决于与多个任务的第二子集相关联的完成最后期限,响应于接收来自多个劳动资源106的第二子集的任务请求。对于更具体的实例,在接收的任务的完成最后期限在特定最后期限阈值内(例如,在当前时间的72小时内)的情况下,该任务可以由任务分配服务器112“推动”到应该能够在完成最后期限完成任务的劳动资源106。另一方面,在接收的任务的完成最后期限不在特定最后期限阈值内(例如,不在当前时间的72小时内)的情况下,任务分配服务器112可以等待直至在将任务分配到劳动资源106中的一个之前劳动资源106中的一个请求任务为止,在此情况下劳动资源106可以据称为已经从任务分配服务器112中“拉动”任务。组合“推动”与“拉动” 模型的其它方式也是可能的并且在本文中描述的实施例的范围内。
[0048]根据一个实施例,存储在队列132中的任务仅是由任务分配服务器112“推动”到劳动资源106的任务。在此类实施例中,“拉动”的任务没有存储在队列132中。替代地,任务可以存储在队列132中而无论它们是否被劳动资源106“推动”或“拉动”。换句话说,存储在队列132中的一个中的一个或多个任务(或指示它的信息)可以已经使用“推动”模型分配,并且存储在队列132中的相同的一个中的一个或多个其它任务(或指示它的信息)可以已经使用“拉动”模型分配。
[0049]根据某些实施例,任务分配服务器112利用一个或多个任务分配规则以将从客户 104接收到的任务分配到劳动资源106。此类规则可以例如存储在任务分配服务器112的存储器中或存储在存储此类规则的数据库中。所述规则可以不时地手动更新,和/或可以利用自适应机器学习基于从客户104和/或劳动资源106接收的反馈自动修改。一个此类规则可以尝试最大化成功地执行任务的概率。另一此类规则可以尝试最大化在客户与劳动资源之间的类似性。另一规则可用于选择待随机分配的任务,并且又另一规则可用于执行任务的随机分配。如本文所使用术语“随机”还涵盖伪随机。在任何给定时间,可以利用单个规则来分配任务,或者规则的加权组合可用于分配任务。甚至可以存在规定如何加权各种其它规则的规则。
[0050]在一个实施例中,任务是基于将任务分配到劳动资源的顺序在用于劳动资源的队列中排序的。在另一实施例中,任务是基于与任务相关联的最后期限在队列中排序的。在一个实施例中,要求劳动资源按照它们的队列所规定的特定顺序作用于它们的队列中的任务。在另一实施例中,劳动资源可以不按顺序作用于任务,即,独立于由队列所规定的顺序。 其它变化例也是可能的并且在本文中描述的实施例的范围内。
[0051]在某些实施例中,任务分配服务器112可延迟将某些任务分配到劳动资源106,无论是遵循“推动”模型或“拉动”模型都是如此。举例来说,任务分配服务器106可确定在某些情况下存在任何劳动资源可以利用当前可用的详细目录成功地执行针对特定客户的任务的相对低的概率。然而,任务分配服务器106可确定一个或多个劳动资源能够成功地完成针对特定客户的任务的概率将在详细目录在超过下一24小时后重新补足之后显著增大。假定特定任务的完成最后期限被远远的超出了,例如,不是再有5天,那么取决于当前详细目录信息和未来详细目录信息任务分配服务器112可延迟将特定任务分配到劳动资源106中的一个。换句话说,在某些情况下对于任务分配服务器112而言可能更好的是等待直至在未来的一个时间点,在将针对特定客户104的任务分配到劳动资源106之前,当详细目录改进/改变时,例如,以提高劳动资源106将成功地执行针对特定客户104的任务的可能性。
[0052]根据一个实施例,对于任何单独的任务,任务分配服务器112可以确定任务是否应该被分配到劳动资源中的一个而不接收任务请求,或响应于接收任务请求。举例来说,分配服务器112可“推动”具有很快接近的完成最后期限的任务,同时允许具有相对较远的完成最后期限的其它任务被“拉动”。
[0053]另外或替代地,任务分配服务器112可延迟将特定任务分配到劳动资源直至更好的匹配劳动资源106变为可用为止。举例来说,在任务分配服务器112取决于关系信息分配至少一些任务的情况下,任务分配服务器112可给出将针对客户的任务分配到先前成功地执行针对该客户的任务的特定劳动资源的偏好。在此情况下,如果任务分配服务器112确定特定劳动资源106不是当前可用的、但是将在可接受的时间周期内变为可用的,那么任务分配服务器112在分配任务之前可等待直至该特定劳动资源106变为可用为止。换句话说,在某些情况下对于任务分配服务器112而言可能更好的是等待直至在未来的一个时间点为止,在将针对特定客户104的任务分配到劳动资源106之前,当一个或多个特定劳动资源将是可用时,例如,以保持在特定客户104与劳动资源106中的一个之间的先前建立的关系和/ 或以提高劳动资源106将成功地执行针对特定客户104的任务的可能性。
[0054]在一些实施例中,任务分配服务器112可以仅将任务分配到当前可用的劳动资源 106, S卩,在任务分配时可用的劳动资源。在其它实施例中,任务分配服务器112可以将任务分配到当前不可用的劳动资源106,但是基于劳动资源可用性信息预测劳动资源106具有将使得劳动资源106在任务的完成最后期限之前能够完成任务的未来可用性(例如,假定劳动资源需要特定时间量来完成任务)。假定劳动资源花费的完成任务的时间量可以是固定的预定时间量,或者它可以是计算的时间量,例如,通过确定劳动资源完成多个任务花费的平均(均值、中值或模式)时间量。可以假定所有劳动资源花费相同时间量来完成任务。替代地,假定劳动资源花费来完成任务的时间量可以针对单独的劳动资源确定,例如,通过确定每个单独的劳动资源完成多个任务花费的平均(均值、中值或模式)时间量。在劳动资源并不具有执行任务的历史或具有最少历史的情况下,假定劳动资源花费来完成任务的时间量可以最初是固定的预定时间量(或其它劳动资源的平均时间),并且随后在劳动资源具有执行任务的有意义的历史之后,该历史可用于确定假定劳动资源花费来完成任务的时间量。
[0055]在一些实施例中,任务分配服务器112可以仅将任务放置在与当前可用的劳动资源106相关联的队列132中。在其它实施例中,任务分配服务器112可以将任务放置在与当前不可用的劳动资源106相关联的队列132中,但是基于劳动资源可用性信息预测劳动资源 106具有将使得劳动资源106能够在任务的完成最后期限之前完成任务的未来可用性(例如,假定劳动资源需要特定时间量来完成任务)。
[0056]根据一个实施例,如果包含在与劳动资源106相关联的队列132中的任务的总量低于对应的队列阈值,那么任务分配服务器112将仅将任务分配到劳动资源106。对于所有劳动资源106队列阈值可以是相同的。替代地,不同劳动资源106可以具有不同队列阈值。举例来说,用于劳动资源106的队列阈值的幅值可以与劳动资源106的生产率成比例,使得劳动资源106已经在历史上示出它能够在规定时间量(例如,一周)内执行的任务越多,则劳动资源的队列阈值越大。相反地,在劳动资源106已经在历史上示出它仅能够在规定时间量(例如,一周)内执行相对较少的任务,则劳动资源的队列阈值可以相对较小。在此类实施例中, 如果劳动资源增大其随时间推移的处理量和/或效率,那么其队列阈值可以相应地增大。 [〇〇57]根据一个实施例,任务分配服务器112适用于针对多个劳动资源106中的每一个 (或至少一些)计算劳动资源将成功地执行客户104中的特定一个的任务中的一个的成功概率。任务分配服务器112可以由此取决于计算出的成功概率将针对客户中的特定一个的任务分配到劳动资源中的一个。举例来说,针对客户的任务可以分配到计算为具有最高的成功概率的劳动资源。如将在下文中以额外细节描述,并且如上文所提及,“成功”可以不同方式定义,例如,取决于任务的类型,或甚至可以存在针对特定类型的任务界定成功的不同方式。无论如何,任务分配服务器112可以适用于以特定方式计算特定劳动资源106将成功地执行针对特定客户104的任务的成功概率,使得类似地计算的成功概率可以彼此相比较并且由任务分配服务器112利用以确定将任务分配到哪个劳动资源106。
[0058]任务分配服务器112可以另外或替代地适于计算可以由任务分配服务器112使用以将任务分配到劳动资源的其它指标(成功概率除外)。举例来说,对于某些类型的任务可能有利的是针对客户执行任务的劳动资源类对于客户是类似的,在此情况下,任务分配服务器112可以计算一个或多个类似性指标,并且在分配任务时任务分配服务器112可以利用此类类似性指标。对于更具体的实例,任务分配服务器可以计算在与客户相关联的特定属性和与劳动资源相关联的特定属性之间的距离或类似性指标,其中每个距离或类似性指标分配有一个权重。任务分配服务器112可以计算的另一示例性指标是升级分数,其量化针对特定客户待成功地执行的任务的困难程度。可以使用此类升级分数例如以针对难以感到满意的客户将任务分配到已经在历史上证实它们可以成功地执行针对此类客户的任务的特定劳动资源。升级分数可以替代地或另外用于将难以执行的任务分配到已经在历史上证实它们可以成功地执行此类任务的特定劳动资源。可以计算的另一指标是紧急程度,在一个实施例中紧急程度经加权高于所有其它指标或覆盖所有其它指标。举例来说,在一个实施例中,如果任务具有最大的紧急程度并且因此需要立刻执行,那么其它指标都不重要了并且任务被分配到立刻可用并且具有迅速完成任务的证实历史的劳动资源。
[0059]根据一个实施例,任务分配服务器112适用于重新分配包含在与劳动资源106相关联的队列132中的任务使得针对客户104中的一个的任务中的一个从与劳动资源104的第一者相关联的队列132的第一者传递到与劳动资源106的第二者相关联的队列132的第二者。 举例来说,任务分配服务器112可以最初将从客户104-1接收的任务(或更具体来说,指示任务的信息)放置在与劳动资源106-1相关联的队列106-1中。之后,任务分配服务器112可以将任务重新分配到劳动资源106-2,在此情况下任务(或更具体来说,指示任务的信息)可以被从队列132-1中移除并且移动到队列132-2,或直接发送到劳动资源106-2。任务分配服务器112可以重新分配特定任务,例如,前提是任务的量(超过包含在与劳动资源106-1相关联的队列132-1中的特定任务)大于所规定的重新分配阈值。替代地或另外,如果任务分配服务器112确定存在具有与当前具有在其队列中的任务的劳动资源相比的较高成功概率的另一可用的劳动资源,那么任务分配服务器112可以将任务重新分配到具有较高的成功概率的劳动资源。替代地或另外,如果任务分配服务器112确定存在已经具有与针对其执行任务的客户的关系的另一可用的劳动资源,那么任务分配服务器112可以将任务重新分配到已经具有与客户的关系的劳动资源。其它变化例也是可能的,并且在实施例的范围内。
[0060]根据一个实施例,任务分配服务器112适用于以随机方式将它从客户104接收的任务中的至少一些(例如,少数的任务)分配到劳动资源106。这使得任务分配服务器112能够测试劳动资源与客户的新组合并且建立在劳动资源与客户之间的新关系。这还使得由任务分配服务器112实施的计算机模型能够获得使得计算机模型能够适应性地学习如何将任务最佳地分配到劳动资源以最大化成功概率和/或最大化其它指标的额外类型的数据。任务分配服务器112可以适用于以随机方式将规定的百分比(例如,1%或5%)的任务分配到劳动资源106。举例来说,每100个任务中的1个可以随机方式分配。以随机方式分配的任务的选择本身可以是随机的,可以是周期性的(例如,每第一百个新任务是随机分配的),或者可以基于特定标准。其它变化例也是可能的并且在本文中描述的实施例的范围内。
[0061]本文中描述的本发明技术的实施例可以与各种不同类型的客户、各种不同类型的任务、各种不同类型的劳动资源和各种不同类型的详细目录一起使用,在下文中论述了其一些实例。[〇〇62]根据一个实施例,客户104是客户计算装置,所述任务是在服务提供商的控制和/ 或协调下待针对客户计算装置执行的计算任务,并且劳动资源106是具有可用于执行计算任务的计算带宽的服务器计算装置。在此类实施例中,详细目录可以是服务器计算装置利用以执行计算任务的物理或虚拟组件。可用性信息可以指示哪些服务器计算装置可用于执行计算任务,例如,因为它们是开启的并且当前没有被完全利用和/或是闲置的。能力信息可以指示服务器计算装置是否具有某一类型的处理单元,例如但不限于,图形处理单元、加速处理单元、音频处理单元、和/或一定量和/或类型的内部存储器,和/或类似者。在此类实施例中,如果在规定量的分配时间内完成的任务被正确地执行,那么可以认为劳动资源106 成功地执行了计算任务。
[0063]根据另一实施例,客户104是无制造半导体制造商,任务是在服务提供商的控制和/或协调下的半导体装置的制造,并且劳动资源106是用于为客户制造半导体装置的半导体铸造厂、半导体制造生产线(例如,在铸造厂内)和/或半导体制造设备(例如,在制造生产线内)。在此类实施例中,详细目录可以是特定尺寸和/或类型的半导体晶圆、用于形成金属迹线、金属通孔和/或类似者的特定膜沉积材料和/或特定金属。可用性信息可以指示哪些半导体铸造厂、半导体制造生产线和/或半导体制造设备可用于制造半导体装置,例如,因为它们当前没有被完全利用和/或是闲置的。能力信息可以指示半导体铸造厂或半导体制造生产线是否具有某些类型的半导体制造工具、可以处理的晶片的大小、处理技术、容量和/或类似者。在此类实施例中,如果与完成的任务(即,制造半导体装置)相关联的产率满足或超过规定水平,并且任务是在规定量的分配时间内完成的(例如,在完成最后期限之前),那么可以认为劳动资源106成功地执行了任务。
[0064]根据另一实施例,客户104是定制车辆卖方类型的服务提供商的顾客,任务是在服务提供商的控制和/或协调下为客户/顾客构造定制车辆,并且劳动资源是与服务提供商签订合同以为服务提供商的客户/顾客构造定制车辆的制造商。在此类实施例中,详细目录可以是车辆零件,例如,轮胎、减震器、发动机、饰面材料和/或类似者。可用性信息可以指示哪些制造商可用于制造定制车辆。能力信息可以例如指示制造商的特定专长、制造商所拥有的特定设备和/或类似者。在此类实施例中,如果客户/客户满意并且购买定制车辆,那么可以认为劳动资源106成功地执行了任务。
[0065]根据另一实施例,客户104是服务提供商(例如,选择待运送到客户/顾客的产品的那些)的顾客,任务是在服务提供商的控制和/或协调下将为客户/顾客执行的服务,并且劳动资源是与服务提供商签订合同以为服务提供商的客户/顾客执行任务/服务的人们。在此类实施例中,详细目录可以是客户/顾客感兴趣的衣服、食物、饮料或其它类型的物理产品, 并且任务可以是选择用于运送到客户/顾客的(以及希望由客户/顾客购买的)详细目录的子集。可用性信息可以指示哪些人们经调度以代表服务提供商执行工作。能力信息可以例如指示劳动资源中的每一个的特定专长、偏好、年龄和/或类似者。在此类实施例中,如果客户104购买了运送或以其它方式提供给他们的特定数目或百分比的物品,那么可以认为劳动资源106成功地执行了任务。
[0066]图2A是根据本发明技术的某些实施例用于概述方法的高水平流程图,以用于将从客户接收的任务智能地分布于多个劳动资源间。参考图2A,步骤202涉及存储关于多个劳动资源的信息。步骤204涉及存储关于多个客户的信息。简要地返回参考图1,关于劳动资源的信息可以存储在劳动资源数据库122-1中,并且关于客户的信息可以存储在客户数据库 122-2中。同样参考图2A,在步骤202处存储的信息可包含关于多个劳动资源中的每一个的可用性信息。另外,在步骤202处存储的信息可包含关于多个劳动资源中的每一个的一个或多个能力的能力信息。在步骤204处存储的信息可以规定客户的属性,可以使用(例如,通过任务分配服务器112)所述信息以确定哪些劳动资源和客户是很好的匹配的。
[0067]仍然参考图2A,步骤212涉及接收将针对客户执行的任务。步骤214涉及取决于关于劳动资源的所存储的信息且取决于关于客户的所存储的信息将任务中的每一个分配到劳动资源中的一个,使得将任务分布于两个或更多个(并且优选地所有)劳动资源间。举例来说,与劳动资源相关联的可用性信息和能力信息可用于确定如何将任务分配到劳动资源。另外,客户的属性可用于确定如何分配任务。
[0068]仍然参考图2A,步骤216涉及将任务存储在与已经分配任务的劳动资源相关联的队列中。当陈述任务存储在队列中时,存储在队列中的信息可能并非恰好是与从客户获得的相同的任务信息,而是可能实际上是指示任务的信息。换句话说,与通过任务分配服务器 112从客户中接收的特定任务相关联的数据可能不与同任务分配服务器放置在队列132中的特定任务相关联的数据相同。然而,放置在队列中的数据实际上指示从客户接收的任务。
[0069]简要地返回参考图1,队列132是队列的实例,在步骤216处,可以在所述队列中存储任务。在一个实施例中,任务存储在队列132中直至与队列相关联的劳动资源开始作用于任务。在另一实施例中,任务存储在队列132中直至与队列相关联的劳动资源结束执行任务。当任务已经完成时从队列中移除任务。另外,如果任务被从一个劳动资源重新指派到另一个劳动资源,那么任务可被从一个队列中移除并且放置在另一个队列中。仍然返回参考图1,步骤212、214和216可以由任务分配服务器122执行。
[0070]如上文参考图1所述,在步骤214处分配可包含将任务分配到劳动资源而不接收来自劳动资源的请求,这在上文中被称作“推动”模型。另外,或替代地,在步骤214处分配可包含响应于接收来自劳动资源的任务请求以将任务分配到劳动资源,这在上文中被称作“拉动”模型。举例来说,步骤214可包含将多个任务的第一子集分配到多个劳动资源的第一子集而不接收来自多个劳动资源的第一子集的任务请求,以及响应于接收来自多个劳动资源的第二子集的任务请求以将多个任务的第二子集分配到多个劳动资源的第二子集。在利用 “推动”模型和“拉动”模型的组合的此类实施例中,在劳动资源的第一子集(任务被推动到它)与劳动资源的第二子集(其拉动任务)之间可以存在重叠。换句话说,相同劳动资源可以在不提出请求下接收一个或多个任务,并且响应于提出请求以接收一个或多个其它任务。 在某些实施例中,任务存储在与劳动资源相关联的队列中,其中任务被推动到劳动资源,但是并不存储在与劳动资源相关联的队列中,其中任务被劳动资源拉动。在其它实施例中,任务存储在与劳动资源相关联的队列而无论所述任务是否被推动到劳动资源或由劳动资源拉动。[〇〇71]同样参考图2A,如在步骤222处所指示,关于针对客户由劳动资源中的一个执行的任务是否是成功地执行的而从客户中的每一个接收反馈,这与简单地完成是不同的。换句话说,仅因为任务由劳动资源针对客户执行并不意味着成功地执行了任务。实际上,如在上文所论述的某些实例中所解释,客户可以确定并且提供由劳动资源代表任务执行和完成的任务不成功地执行的反馈。如在步骤224处所指示,可以存储此类反馈信息,这使得在将从客户接收的其它任务分配到劳动资源时任务分配服务器112能够存取且利用所存储的反馈信息。此类反馈信息可以存储在例如反馈数据库中和/或存储在上文参考图1所论述的其它数据库中的一个(例如,劳动资源数据库122-1)中,但不限于此。可以从客户接收替代和/或额外类型的反馈,例如,反馈可以提供与任务是否成功地完成相比的更多粒度。对于更具体的实例,客户可以提供规定他们对由劳动资源执行的任务的满意程度的反馈。另外或替代地,在某些实施例中,可以要求某些类型的客户对调查问题做出回应,其中对此类问题的回答是反馈的另一实例。更一般而言,系统(例如,102)可以促使客户(例如,104)提供针对与完成的任务和/或完成任务的劳动资源相关联的各种不同属性的反馈,所述反馈可以被称作明确的反馈,其在许多情况下是主观的。反馈可以替代地被视为暗示的,由于它是基于由客户做出的一个或多个动作的,例如,客户是否接受或返回(且因此拒绝)任务的结果。
[0072]现在参考图2B,其类似于图2A,但是添加了与用于将从客户接收的任务智能地分布于多个劳动资源间的本发明技术的某些实施例相关联的一些额外细节。更确切地说,参考图2B所描述的实施例在服务提供商将其视为重要的或者可用于建立且潜在地维持在劳动资源与客户之间的关系的情况下是尤其有用的。参考图2B,步骤202和204与在图2A中的相同,并且因此不必重复其细节。仍然参考图2B,步骤206涉及存储关于在劳动资源与客户的特定组合之间先前建立的关系信息。如上文在图1的论述中所指出,此类关系信息可以存储在关系数据库122-4、劳动资源数据库122-1和/或客户数据库122-2中,但不限于此。在一个实施例中,关系信息指示特定劳动资源106是否已经在先前执行了针对客户104中的特定的一个的任务,并且如果是,指示特定劳动资源106是否(和/或达到何种程度)成功地执行了针对客户104的任务。换句话说,存储的关系信息可包含反馈信息。替代地,反馈信息可以与关系信息分开存储,例如,存储在反馈数据库中(未具体示出)。在图2B中步骤212与在图 2A中相同,并且因此不必重复其细节。[〇〇73] 在图2B中,步骤214’是上文参考图2A所论述的步骤214的变体。更确切地说,步骤 214’涉及取决于关于劳动资源的所存储的信息、关于客户的所存储的信息并且还取决于关于在劳动资源与客户的特定组合之间先前建立的关系的所存储的关系信息将任务中的每一个(在步骤212处接收的)分配到劳动资源中的一个。举例来说,可以将偏好给予针对客户将任务分配到先前成功地执行针对该客户的任务的特定劳动资源。相反地,在劳动资源先前执行针对客户的任务但是任务没有成功地执行的情况下,那么下一次针对该客户的任务被分配的偏好可以是任务被分配到不同劳动资源。[〇〇74] 步骤216、222和224与在图2A中相同,并且因此不必重复其细节。在图2B中,在步骤 206处存储关系信息示出为与在步骤224处存储反馈信息分开执行。在另一实施例中,步骤 206和224可以组合成单个步骤。随时间推移,随着关系的发展和反馈的获得,在步骤206处存储更多关系信息和/或在步骤206处更新关系信息。[〇〇75]现在参考图2C,其类似于图2A和2B,但是添加了与用于将从客户接收的任务智能地分布于多个劳动资源间的本发明技术的某些实施例相关联的一些额外细节。更确切地说,参考图2C所描述的实施例在劳动资源利用包含在详细目录中的项目以执行针对客户的任务的情况下是尤其有用的。参考图2C,步骤202和204与在图2A中相同,并且步骤206与在图2B中相同,并且因此不必重复其细节。仍然参考图2C,步骤208涉及存储详细目录信息。此类详细目录信息可包含关于当前可用于劳动资源以执行任务的详细目录的当前详细目录信息。另外,详细目录信息可包含关于将在未来可用于劳动资源以执行任务的未来详细目录信息。如上文所解释,未来详细目录信息可以例如基于已经做出以补充和/或扩展详细目录的详细目录顺序以及与此类顺序相关联的经调度到达信息确定。未来详细目录还可以基于项目返回信息来确定,所述项目返回信息是指示客户所指示的项目因为不可被客户接受而返回。另外,所述方法可以包含追踪一般而言的项目或特定项目被客户返回的频率,并且可以基于此类追踪信息预测何时项目将被返回以及返回的程度并且用于补充详细目录。在一个实施例中,包含在详细目录中的用于每个项目的详细目录信息可包含项目属性。如上文在图1的论述中所指出,此类详细目录信息可以存储在详细目录数据库122-3中,但不限于此。[〇〇76] 在图2C中,步骤214”是上文参考图2A和2B所论述的步骤214和214’的变体。更确切地说,步骤214”涉及取决于所存储的详细目录信息,以及取决于关于劳动资源的所存储的信息、关于客户的所存储的信息和/或关于在劳动资源的特定组合之间先前建立的关系的所存储的关系信息,以将任务中的每一个(在步骤212处接收的)分配到劳动资源中的一个。
[0077]根据某些实施例,一个或多个任务分配规则可用于执行步骤214、214’或214”。上文中论述了此类规则的实例。根据某些实施例,在步骤214、214’或214”处执行的任务的分配可以有时以随机方式执行,如上文在参考图1的任务分配服务器112的论述中提到的。这使得能够测试劳动资源与客户的新组合,以建立在劳动资源与客户之间的新关系。这还使得计算机模型能够适应性地学习如何将任务最佳地分配到劳动资源以最大化成功概率和/ 或其它指标。举例来说,如上文所指出,任务的相对小的百分比可以随机方式分配到劳动资源。以随机方式分配的任务的选择本身可以是随机的,或者可以是周期性的,或者可以基于一些特定标准。
[0078]图3说明根据本发明技术的一个实施例引入在图1中的任务分配服务器112的示例性细节。参考图3,任务分配服务器示出为包含总线302、任务接口 304、反馈接口 306、数据库 (DB)接口 308、存储器310、队列接口 312、劳动资源接口 314、一个或多个中央处理单元(CPU)316和驱动单元318。总线302使得任务分配服务器112的各种组件能够彼此通信,例如,以在组件之间传递数据和/或其它类型的信息。虽然在图3中仅示出了一个总线302,但是可以包含一个以上总线。
[0079]任务接口304适用于从客户(例如,在图1中是104)接收任务。客户可以使用应用程序、网络界面或类似物以提交或以其它方式将任务发送到任务分配服务器112。反馈接口306适用于从针对其已经执行任务的客户接收反馈。客户可以使用应用程序、网络界面或类似物以提交或以其它方式将反馈提供到任务分配服务器112。在上文中论述了可以从客户接收的示例性反馈。数据库接口 308向任务分配服务器112提供对一个或多个数据库(例如,图1中的数据库122)的存取,由此使得信息和其它类型的数据能够由任务分配服务器112从数据库中存取或以其它方式获得,并且信息和其它类型的数据能够由任务分配服务器112存储在数据库中。数据库接口 308还可以使得任务分配服务器112能够例如基于经由反馈接口 306从客户接收的反馈修改存储在数据库中的数据。队列接口 312向任务分配服务器112提供对与劳动资源106相关联的队列(例如,在图1中的132)的存取,使得关于分配到劳动资源的任务的信息可以存储在队列中。当重新分配已经被分配的任务时任务分配服务器112也可以利用队列接口 312。劳动资源接口 314使得任务分配服务器112能够接受来自劳动资源的任务请求,以帮助实施上文所述的“拉动”模型。在允许在某些情况中规避队列的某些实施例中,劳动资源接口 314还可以用于将关于任务的信息直接提供到劳动资源或其计算机。
[0080]存储器310可以存储指令,在执行指令时使一个或多个处理器(例如,CPU316)执行本文中描述的方法以用于将从客户接收的任务智能地分布于多个劳动资源间。举例来说,存储器310可用于存储控制任务分配服务器112的软件和/或固件。各种不同类型的存储器可以包含在任务分配服务器112中,包含非易失性和易失性存储器。驱动单元318(例如,硬盘驱动器,但不限于此)还可以用于存储控制任务分配服务器的软件,但不限于此。存储器310和硬盘单元318可包含机器可读媒体,在机器可读媒体上存储有体现本文中描述的方法和/或功能中的一个或多个的可执行指令(例如,应用程序)的一个或多个集合。替代于驱动单元318或除驱动单元之外,任务分配服务器112还可包含固态存储装置,例如,包括快闪存储器或任何形式的非易失性存储器的那些。如本文所使用的术语“机器可读媒体”应被认为包含所有形式的存储媒体,以所有形式作为单个媒体或多个媒体;例如,集中或分布式数据库和/或相关联的高速缓冲存储器和服务器;一个或多个存储装置,例如,存储驱动器(包含例如,磁驱动和光驱以及存储机构),以及存储器装置或模块的一个或多个实例(无论是主存储器、处理器内部或外部的高速缓冲存储器,还是缓冲器)。术语“机器可读媒体”或“计算机可读媒体”应被认为包含能够存储或编码一系列指令以用于供机器执行且引起机器执行所述方法中的任一个的任何有形的非暂时性媒体。术语“非暂时性媒体”明确地包含所有形式的存储装置驱动器(光学、磁性等)以及所有形式的存储器装置(例如,DRAM、快闪(所有存储装置设计的)、SRAM,MRAM、相位变换等,以及设计为存储任何类型的信息以用于稍后检索的所有其它结构)。
[0081]CPU 316可用于控制任务分配服务器112的各种其它元件,例如,在存储于存储器310和/或驱动单元318中的软件和/或固件的控制下。每个CPU 316可包含,例如,控制单元、一个或多个处理器、寄存器和/或类似者。
[0082]本文中描述的某些实施例涉及计算机实施的系统以用于将从客户接收的任务智能地分布于多个劳动资源间。此类系统可包含适用于存储关于多个劳动资源的信息和关于多个客户的信息的一个或多个数据库。另外,所述系统可包含任务分配服务器,其以通信方式耦接到一个或多个数据库,并且适用于接收待针对多个客户执行的多个任务、存取关于多个劳动资源的所存储的信息、存取关于多个客户的所存储的信息,并且取决于关于多个劳动资源的信息且取决于关于多个客户的信息将大部分的任务中的每一个分配到多个劳动资源中的一个,使得将多个任务分布于多个劳动资源中的两个或更多个间。系统可以进一步包含以通信方式耦接到任务分配服务器的多个队列,每一个队列与劳动资源中的一个相关联并且每一个队列适用于存储关于一个或多个任务的信息,所述任务被分配到与队列相关联的劳动资源中的一个、且尚未由劳动资源中的一个执行。
[0083]如上文所解释,任务分配服务器可以将多个任务的第一子集分配到多个劳动资源的第一子集而接收来自多个劳动资源的第一子集的任务请求,并且可以响应于接收来自多个劳动资源的第二子集的任务请求以将多个任务的第二子集分配到多个劳动资源的第二子集。对于任务中的任何特定一个,任务分配服务器可以确定任务中的特定一个是否被分配到劳动资源中的一个而不接收来自其中的任务请求,或响应于接收来自其中的任务请求。
[0084]在某些实施例中,存储在一个或多个数据库中的关于多个劳动资源的信息包含关于多个劳动资源中的每一个的可用性信息以及关于多个劳动资源中的每一个的一个或多个能力的能力信息。这使得任务分配服务器能够取决于可用性信息和能力信息以将任务分配到多个劳动资源中的一个。一个或多个数据库还可以适用于存储关于在劳动资源与客户的特定组合之间的先前建立关系的关系信息。这使得任务分配服务器能够也取决于关系信息以将任务中的至少一些分配到多个劳动资源中的至少一些。一个或多个数据库还可以适于存储关于可用于劳动资源以执行任务的详细目录的详细目录信息。这使得任务分配服务器能够也取决于详细目录信息以将任务中的至少一些分配到多个劳动资源中的至少一些。详细目录信息可包含关于当前可用于劳动资源以执行任务的详细目录的当前详细目录信息,以及关于将在未来可用于劳动资源以执行任务的详细目录的未来详细目录信息。在此类实施例中,任务分配服务器可以适用于取决于当前详细目录信息和未来详细目录信息延迟分配任务中的至少一些。
[0085]多个任务中的每一个还可具有相关联的完成最后期限。在一个实施例中,取决于与多个任务的第一子集相关联的完成最后期限,基本上紧接着在接收多个任务的第一子集之后,任务分配服务器将多个任务的第一子集分配到多个劳动资源的第一子集。取决于与多个任务的第二子集相关联的完成最后期限、当前详细目录信息和未来详细目录信息,任务分配服务器还可延迟将多个任务的第二子集分配到多个劳动资源的第二子集。
[0086]在本文中描述的某些实施例中,任务分配服务器适用于针对多个劳动资源中的至少一些的每一个计算劳动资源将成功地针对客户中的特定一个执行任务中的一个的成功概率。在此类实施例中,取决于所计算的成功概率,任务分配服务器可以将针对客户中的特定一个的任务中的一个分配到劳动资源中的一个。
[0087]在本文中描述的某些实施例中,任务分配服务器适用于重新分配已经分配到客户的一个或多个任务使得关于针对客户中的一个的任务中的一个的信息从与劳动资源中的第一者相关联的队列的第一者传递到与劳动资源中的第二者相关联的队列的第二者。此类任务的重新分配可以取决于超过包含在与劳动资源中的第一者相关联的队列中的第一者中的任务中的一个的任务的量、与用于针对客户中的一个成功地执行任务中的一个的劳动资源中的第一者相比具有较高成功概率的劳动资源中的第二者和/或已经具有与客户中的一个的关系的劳动资源中的第二者来执行。
[0088]在本文中描述的某些实施例中,任务分配服务器适用于以随机方式将少数任务中的每一个分配到多个劳动资源中的一个以由此测试劳动资源与客户的新组合并且建立在劳动资源与客户之间的新关系。在此类实施例中,任务分配服务器可以适用于随机选择哪些任务将以随机方式分配。
[0089]本文中描述的实施例还涉及用于将从客户接收的任务智能地分布于多个劳动资源间的方法。此类方法可包含存储关于多个劳动资源的信息并且存储关于多个客户的信息。所述方法还可以包含接收将针对多个客户执行的多个任务,并且取决于关于多个劳动资源的所存储的信息且取决于关于多个客户的所存储的信息将大部分的任务中的每一个分配到多个劳动资源中的一个,使得将多个任务分布于多个劳动资源中的两个或更多个间。所述方法还可以包含在多个队列中的每一个中存储关于一个或多个任务的信息,所述多个队列中的每一个与劳动资源中的一个相关联,所述一个或多个任务被分配到与队列相关联的劳动资源中的一个、且尚未由劳动资源中的一个执行。另外,所述方法包含存储关于在劳动资源与客户的特定组合之间的先前建立的关系信息,并且分配可包含还取决于关系信息以将任务中的至少一些分配到多个劳动资源中的至少一些。另外,所述方法可包含存储关于可用于劳动资源以执行任务的详细目录的详细目录信息,并且分配可包含还取决于详细目录信息以将任务中的至少一些分配到多个劳动资源中的至少一些。
[0090]取决于所希望的配置,本文中所描述的标的物可以实施于系统、设备、方法和/或条款中。具体来说,本文中所描述的标的物的各种实施方案可以用计算机软件、固件或硬件和/或其组合以及用数字电子电路、集成电路及类似者实现。这些各种实施方案可包含在一个或多个计算机程序中的实施方案,所述计算机程序可在可编程系统上执行和/或解译,所述可编程系统包含至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,经耦合以从存储系统、至少一个输入装置以及至少一个输出装置接收数据和指令,并且向存储系统、至少一个输入装置以及至少一个输出装置发射数据和指令。
[0091]这些计算机程序(也被称作程序、软件、软件应用程序、应用程序、组件或代码)包含用于可编程处理器的机器指令,且可以在高级程序化和/或面向对象的编程语言中和/或在汇编/机器语言中实施。如本文中所使用,术语“机器可读媒体”指代用于将机器指令和/或数据提供到可编程处理器的任何计算机程序产品、设备和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD),但不限于此),包含接收机器指令作为机器可读信号的机器可读媒体。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
[0092]为了提供与用户的交互,本文中所描述的标的物可以在具有以下装置的计算机上实施:用于向用户显示信息的显示器装置(例如,阴极射线管(CRT)或液晶显示器(LCD)监视器,但不限于此)以及键盘、触摸屏和/或指向装置(例如,鼠标、触控板或轨迹球,但不限于此),用户可以通过所述键盘、触摸屏和/或指向装置向计算机提供输入。其它种类的装置也可以用于提供与用户、管理员和/或管理者的交互;例如,提供给用户、管理员和/或管理者的反馈可以采用任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);且可以任何形式接收来自用户的输入,包含声音、话音或触觉输入。
[0093]本文中所描述的标的物可以在计算系统中实施,所述计算系统包含后端组件(例如,作为数据服务器),或包含中间件组件(例如,应用程序服务器),或包含前端组件(例如,具有图形用户界面(GUI)或网络浏览器的客户端计算机,通过所述图形用户界面或网络浏览器用户可以与本文中所描述的标的物的实施方案交互),或此类后端、中间件或前端组件的任何组合。所述系统的组件可以通过任何形式或媒体的数字数据通信(例如通信网络)互连。通信网络的实例包含但不限于,局域网(“LAN”)、广域网(“WAN”)以及因特网。
[0094]计算系统可包含客户端和服务器。客户端和服务器大体上远离彼此且通常通过通信网络交互。客户端与服务器的关系借助于在对应的计算机上运行并且彼此具有客户端_服务器关系的计算机程序产生。
[0095]前述描述中所阐述的实施方案并不表示符合本文中所描述的标的物的所有实施方案。实际上,这些实施方案仅是符合与所描述的标的物相关的方面的一些实例。在可能的情况下,将在整个图式中使用相同的参考标号来指代相同或相似零件。
[0096]尽管上文已经描述了本发明的各种实施例,但是应理解,这些实施例仅通过实例来呈现,而不是限制性的。所属领域的技术人员将清楚,在不脱离本发明的精神和范围的情况下可在形式及细节方面进行各种变化。例如,尽管上文已经详细地描述几个变化,但其它修改或添加也是可能的。具体来说,除了在本文中阐述的那些特征和/或变化之外,还可以提供其它特征和/或变化。例如,上文所描述的实施方案可以涉及所揭示的特征的各种组合和子组合和/或上文揭示的若干其它特征的组合和子组合。另外,附图中所描绘的和/或本文中所描述的逻辑流并不需要所示出的特定次序或顺序次序来实现所希望的结果。其它实施例可在所附权利要求书的范围内。
[0097]上文已经借助于说明指定功能的性能及其关系的功能构建块来描述本发明的实施例。这些功能构建块的边界通常在本文中界定以用于描述的便利性。只要适当地执行指定功能及其关系,便可界定替代边界。因此任何此类替代边界都在所主张的发明的范围和精神内。所属领域的技术人员将认识到,这些功能构建块可以通过离散组件、专用集成电路、执行适当的软件的处理器及类似者或其任何组合来实施。
[0098]本发明的广度和范围不应受到上述示例性实施例中任一实施例限制,而应仅根据所附权利要求书及其等效物界定。
【主权项】
1.一种用于将从客户接收的任务智能地分布于多个劳动资源间的计算机实施的系统, 所述系统包括:一个或多个数据库,其适用于存储关于多个劳动资源的信息、关于多个客户的信息,及 在所述劳动资源与所述客户的特定组合之间的先前建立关系的关系信息;任务分配服务器,其包含一个或多个处理器,其以通信方式耦接到一个或多个数据库 并且适用于:接收将针对多个客户执行的多个任务,其包含三个或更多个任务,存取关于所述多个劳动资源的所存储信息,存取关于所述多个客户的所存储信息,存取关于所述劳动资源与所述客户的特定组合之间的先前建立关系的所述所存储关 系信息,其包含反馈信息,所述反馈信息规定是否进行以下项及进行的程度:(i)所述劳动 资源中的一个或多个针对所述客户中的一个或多个成功地执行一个或多个任务,(ii)所述 客户中的一个或多个满意由所述劳动资源中的一个或多个针对所述客户中的所述一个或 多个在先前执行的一个或多个任务,或者(iii)所述客户中的一个或多个接受或拒绝由所 述劳动资源中的一个或多个针对所述客户中的所述一个或多个在先前执行的一个或多个 任务的结果;且取决于关于所述多个劳动资源的所述所存储信息、取决于关于所述多个客户的所述所 存储信息,及取决于所述所存储关系信息,将所述任务中的至少一些分配到所述多个劳动 资源中的至少一些,使得所述多个任务中的两个或更多个分布于所述多个劳动资源中的两 个或更多个间;以及多个队列,其以通信方式耦接到所述任务分配服务器,所述队列中的每一个与所述劳 动资源中的一个相关联,并且所述队列中的每一个适用于存储关于所述任务的一个或多个 信息,所述任务被分配到与所述队列相关联的所述劳动资源中的所述一个、且尚未由与所 述队列相关联的所述劳动资源中的所述一个执行。2.根据权利要求1所述的系统,其中在不接收来自所述多个劳动资源的至少一个子集 要求的任务请求下,所述任务分配服务器将所述多个任务的至少一个子集分配到所述多个 劳动资源的所述至少一个子集。3.根据权利要求1所述的系统,其中响应于接收来自所述多个劳动资源的至少一个子 集的任务请求,所述任务分配服务器将所述多个任务的至少一个子集分配到所述多个劳动 资源的所述至少一个子集。4.根据权利要求1所述的系统,其中:在不接收来自所述多个劳动资源的第一子集的任务请求下,所述任务分配服务器将所 述多个任务的第一子集分配到所述多个劳动资源的所述第一子集;以及响应于接收来自所述多个劳动资源的第二子集的任务请求,所述任务分配服务器将所 述多个任务的第二子集分配到所述多个劳动资源的所述第二子集。5.根据权利要求4所述的系统,其中针对所述任务中的特定一个,所述任务分配服务器 确定所述任务中的所述特定一个是否被分配到所述劳动资源中的一个,其在不接收来自所 述劳动资源要求的任务请求下、或者响应于接收来自所述劳动资源要求的任务请求。6.根据权利要求1到5中任一权利要求所述的系统,其中:存储在所述一个或多个数据库中的关于所述多个劳动资源的所述信息包含关于所述 多个劳动资源中的每一个的可用性的可用性信息,及关于所述多个劳动资源中的每一个的 一个或多个能力的能力信息;以及所述任务分配服务器适用于取决于所述可用性信息和所述能力信息,以将大部分所述 任务中的每一个分配到所述多个劳动资源中的一个。7.根据权利要求1所述的系统,其中关于在所述劳动资源与所述客户的特定组合之间 的先前建立关系的所述所存储关系信息包含反馈信息,其规定所述劳动资源中的一个或多 个是否成功地执行针对所述客户中的一个或多个的任务、或所述劳动资源中的一个或多个 成功地执行针对所述客户中的一个或多个的任务的程度。8.根据权利要求1到5中任一权利要求所述的系统,其中:所述一个或多个数据库还适于存储关于可用于所述劳动资源以执行所述任务的详细 目录的详细目录信息;以及所述任务分配服务器适用于也取决于所述详细目录信息,以将所述任务中的至少一些 分配到所述多个劳动资源中的至少一些。9.根据权利要求8所述的系统,其中:所述详细目录信息包含:关于当前可用于所述劳动资源以执行所述任务的详细目录的 当前详细目录信息,及关于将在未来可用于劳动资源以执行所述任务的详细目录的未来详 细目录信息;以及所述任务分配服务器适用于取决于所述当前详细目录信息和所述未来详细目录信息, 以延迟分配所述任务中的至少一些。10.根据权利要求9所述的系统,其中:所述多个任务中的每一个具有相关联的完成最后期限;以及取决于与所述多个任务的第一子集相关联的所述完成最后期限,基本上紧接着在接收 所述多个任务的述第一子集之后,所述任务分配服务器将所述多个任务的所述第一子集分 配到所述多个劳动资源的第一子集;以及取决于与所述多个任务的第二子集相关联的所述完成最后期限、所述当前详细目录信 息和所述未来详细目录信息,所述任务分配服务器延迟将所述多个任务的所述第二子集分 配到所述多个劳动资源的第二子集。11.根据权利要求1到5中任一权利要求所述的系统,其中所述任务分配服务器适用于:针对所述多个劳动资源中的至少一些的每一个计算所述劳动资源将成功地执行针对所述客户中的特定一个的所述任务中的一个的成功概率;以及取决于所计算的所述成功概率将针对所述客户中的所述特定一个的所述任务中的所 述一个分配到所述劳动资源中的一个。12.根据权利要求1到5中任一权利要求所述的系统,其中所述任务分配服务器适用于 重新分配已经分配到客户的一个或多个任务,使得关于针对所述客户中的一个的所述任务 中的一个的信息从所述队列中与所述劳动资源中的第一者相关联的第一者传递到所述队 列中与所述劳动资源中的第二者相关联的第二者。13.根据权利要求12所述的系统,其中所述任务分配服务器重新分配针对所述客户中 的所述一个的所述任务中的所述一个,使得取决于以下各项中的一个或多个以将关于所述任务中的所述一个的信息从所述队列中与所述劳动资源中的所述第一者相关联的所述第 一者传递到所述队列中与所述劳动资源中的所述第二者相关联的所述第二者:任务量超过包含在所述队列中与所述劳动资源中的所述第一者相关联的所述第一者 中的所述任务中的所述一个,所述劳动资源中的所述第二者与所述劳动资源中的所述第一者相比具有更高的成功 概率来成功地执行针对所述客户中的所述一个的所述任务中的所述一个,或者所述劳动资源中的所述第二者已经具有与所述客户中的所述一个的关系。14.根据权利要求1到5中任一权利要求所述的系统,其中所述任务分配服务器适用于 以随机方式将少数所述任务中的每一个分配到所述多个劳动资源中的一个,从而测试所述 劳动资源与所述客户的新组合并且建立在所述劳动资源与所述客户之间的新关系。15.根据权利要求14所述的系统,其中所述任务分配服务器适用于随机选择哪些任务 将以随机方式分配。16.—种用于将从客户接收的任务智能地分布于多个劳动资源间的方法,所述方法包 括:存储关于多个劳动资源的信息;存储关于多个客户的信息;存储关于在所述劳动资源与所述客户的特定组合之间的先前建立关系的关系信息,所 述关系信息包含反馈信息,所述反馈信息规定是否进行以下项及进行的程度:(i)所述劳动 资源中的一个或多个针对所述客户中的一个或多个成功地执行一个或多个任务,(ii)所述 客户中的一个或多个满意由所述劳动资源中的一个或多个针对所述客户中的所述一个或 多个在先前执行的一个或多个任务,或者(iii)所述客户中的一个或多个接受或拒绝由所 述劳动资源中的一个或多个针对所述客户中的所述一个或多个在先前执行的一个或多个 任务的结果;接收将针对所述多个客户执行的多个任务,所述多个任务包含三个或更多个任务;取决于关于所述多个劳动资源的所存储的所述信息、取决于关于所述多个客户的所存 储的所述信息,且取决于所存储的所述关系信息,将所述任务中的至少一些分配到所述多 个劳动资源中的至少一些,使得所述多个任务中的两个或更多个分布于所述多个劳动资源 中的两个或更多个间;以及在多个队列的每一个中存储关于所述任务中的一个或多个的信息,所述队列中的每一 个与所述劳动资源中的一个相关联,所述任务被分配到与所述队列相关联的所述劳动资源 中的所述一个、且尚未由所述劳动资源中的所述一个执行。17.根据权利要求16所述的方法,其中所述分配包含在不接收来自所述多个劳动资源 的至少一个子集要求的任务请求下,将所述多个任务的至少一个子集分配到所述多个劳动 资源的所述至少一个子集。18.根据权利要求16所述的方法,其中所述分配包含响应于接收来自所述多个劳动资 源的至少一个子集的任务请求,将所述多个任务的至少一个子集分配到所述多个劳动资源 的所述至少一个子集。19.根据权利要求16所述的方法,其中所述分配包含在不接收来自所述多个劳动资源的第一子集的任务请求下,将所述多个任务的第一子集分配到所述多个劳动资源的所述第一子集;以及响应于接收来自所述多个劳动资源的第二子集的任务请求,将所述多个任务的第二子 集分配到所述多个劳动资源的所述第二子集。20.根据权利要求19所述的方法,其中针对所述任务中的特定一个,所述分配包含:确定所述任务中的所述特定一个是否将被分配到所述劳动资源中的一个,其在不接收 来自所述劳动资源要求的任务请求下、或响应于接收来自所述劳动资源要求的任务请求。21.根据权利要求16到20中任一权利要求所述的方法,其中:所述存储关于所述多个劳动资源的信息包含:存储关于所述多个劳动资源中的每一个的可用性的可用性信息;及存储关于所述多个劳动资源中的每一个的一个或多个能力的能力信息;且所述分配包含取决于所述可用性信息和所述能力信息,以将大部分所述任务中的每一 个分配到所述多个劳动资源中的一个。22.根据权利要求16所述的方法,其中所述存储关系信息包含存储关于在所述劳动资 源与所述客户的特定组合之间的先前建立关系的先前建立关系信息,所述先前建立关系信 息包含反馈信息,其规定所述劳动资源中的一个或多个是否成功地执行针对所述客户中的 一个或多个的任务、或所述劳动资源中的一个或多个成功地执行针对所述客户中的一个或 多个的任务的程度。23.根据权利要求16到20中任一权利要求所述的方法,其进一步包括:存储关于可用于所述劳动资源以执行所述任务的详细目录的详细目录信息;以及其中所述分配包含也取决于所述详细目录信息,以将所述任务中的至少一些分配到所 述多个劳动资源中的至少一些。24.根据权利要求23所述的方法,其中:所述存储详细目录信息包含存储关于当前可用于所述劳动资源以执行所述任务的详 细目录的当前详细目录信息,及关于将在未来可用于劳动资源以执行所述任务的详细目录 的未来详细目录信息;以及所述分配包含取决于所述当前详细目录信息和所述未来详细目录信息,以延迟分配所 述任务中的至少一些。25.根据权利要求24所述的方法,其中:所述多个任务中的每一个具有相关联的完成最后期限;以及所述分配包含:取决于与所述多个任务的第一子集相关联的所述完成最后期限,基本上紧接着在接收 所述多个任务的所述第一子集之后,将所述多个任务的所述第一子集分配到所述多个劳动 资源的第一子集;以及取决于与所述多个任务的第二子集相关联的所述完成最后期限、所述当前详细目录信 息和所述未来详细目录信息,延迟将所述多个任务的所述第二子集分配到所述多个劳动资 源的第二子集。26.根据权利要求16到20中任一权利要求所述的方法,其中所述分配包含:针对所述多个劳动资源中的至少一些的每一个计算所述劳动资源将成功地执行针对 所述客户中的特定一个的所述任务中的一个的成功概率;以及取决于所计算的所述成功概率将针对所述客户中的所述特定一个的所述任务中的所 述一个分配到所述劳动资源中的一个。27.根据权利要求16到20中任一权利要求所述的方法,其进一步包括:重新分配已经分配到客户的一个或多个任务,使得关于针对所述客户中的一个的所述 任务中的一个的信息从所述队列中与所述劳动资源中的第一者相关联的第一者传递到所 述队列中与所述劳动资源中的第二者相关联的第二者。28.根据权利要求27所述的方法,其中所述重新分配任务包含重新分配针对所述客户 中的所述一个的所述任务中的一个,使得取决于以下各项中的一个或多个以将关于所述任 务中的所述一个的信息从所述队列中与所述劳动资源中的第一者相关联的第一者传递到 所述队列中与所述劳动资源中的第二者相关联的第二者:任务量超过包含在所述队列中与所述劳动资源中的所述第一者相关联的所述第一者 中的所述任务中的所述一个,所述劳动资源中的所述第二者与所述劳动资源中的所述第一者相比具有更高的成功 概率来成功地执行针对所述客户中的所述一个的所述任务中的所述一个,或者所述劳动资源中的所述第二者已经具有与所述客户中的所述一个的关系。29.根据权利要求16到20中任一权利要求所述的方法,其进一步包括:以随机方式将少 数所述任务中的每一个分配到所述多个劳动资源中的一个,从而测试所述劳动资源与所述 客户的新组合并且建立在所述劳动资源与所述客户之间的新关系。30.根据权利要求28所述的方法,其进一步包括随机选择哪些任务将以随机方式分配。
【文档编号】G06F9/50GK106020966SQ201610195687
【公开日】2016年10月12日
【申请日】2016年3月31日
【发明人】艾瑞克·C·寇尔森, 布莱德利·J·克林格贝格, 杰佛瑞·S·玛努森, W·乔尔·史特莱特, 杰森·B·马汀
【申请人】史迪奇菲克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1