零单点故障负载平衡器的设备及方法

文档序号:6456589阅读:125来源:国知局
专利名称:零单点故障负载平衡器的设备及方法
技术领域
所说明的方面涉及分布式处理系统,且更特定来说涉及零单点故障负载平衡器的 设备及方法。
背景技术
在计算机处理中, 一组命令经常可被划分为个别命令。可并行执行所述命令,且 随后可组合结果。另外,由于单个计算设备具有有限的处理能力,因此可使用多个计 算设备来执行所述命令。然而,使用多于单个计算装置可在所述计算装置之间分配及 组合命令时产生问题。当使用多个计算装置时,可将所述群组计算设备称为处理农场。
向多个设备分配命令的某些方法使用主装置来向若干从装置分配命令且组合执 行所述命令的结果。在这些方法中,主装置向从装置分配命令;从装置执行所述命令; 且主装置随后组合已执行命令的结果。所述从装置及主装置中的每一者可以是单独的 计算装置。用于在计算装置之间划分命令的方法或设备经常被称为负载平衡器,其可 被执行及/或其可驻存在主计算装置上。
此分配过程的方法的一个问题是如果主装置失灵,那么可能工作丢失且可能难以 替代主装置,因为主装置可能需要专业化的硬件及/或软件。因此,经常将更可靠且更 昂贵的计算设备用作主装置。可能也难以在不丢失所有计算设备的使用的情况下升级 主装置。
另一问题是可能难以动态地向系统添加从装置使得主装置可在不必重设所述系 统的情况下使用所述从装置。举例来说,可能难以在软件命令已被划分之后添加从装置。
另一问题是可能难以在从装置失灵且丢失执行命令的结果时恢复。 且使用主装置及多个从装置的又一问题是用于选择新主装置的过程可能较复杂。举例来说,如果主装置发生故障或另外不运转,那么必须建立程序以指定能够在先前 主装置停止的地方接班的新主装置。此类程序经常较麻烦。 因此,需要改善负载平衡器系统。

发明内容
下文提供对一个或一个以上方面的简化概述,以提供对此类方面的基本了解。此 概述并非是对所有涵盖方面的广泛概论,且既不打算识别所有方面的关键或紧要元件 也不打算刻化任何或所有方面的范围。其唯一的目的是以简化形式提供一个或一个以 上方面的某些概念来作为下文所提供的更详细说明的前序。
ll在一方面中,负载平衡器的从计算设备的计算机实施的方法包含根据可独立 地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护算法确定所 述负载平衡器的主装置是否起作用。如果所述主装置不起作用,那么所述方法包括尝 试根据可独立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定角 色转换算法变成主装置,其中所述预定角色转换算法包括在至少一个其它从装置在主
装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装 置数据库表中的所述主装置网络识别设定为自己的网络识别。
12在另一方面中,经配置以充当负载平衡器的从装置的至少一个处理器包含用 于根据可独立地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维 护算法确定所述负载平衡器的主装置是否起作用的第一模块。此外,所述至少一个处 理器还包括用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器 中的所述多个从装置中的每一者操作的共用预定角色转换算法变成主装置的第二模 块,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数据库表中设定 对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述 主装置网络识别设定为自己的网络识别。
13在再一方面中,用于负载平衡器的从装置的计算机程序产品包含具有用于致使 计算机执行动作的代码的计算机可读媒体。所述计算机可读媒体包括用于致使计算机 根据可独立地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护 算法确定所述负载平衡器的主装置是否起作用的第一代码集。此外,所述计算机可读 媒体包括用于致使所述计算机在所述主装置不起作用的情况下尝试根据可独立地由所 述负载平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成主装 置的第二代码集,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数 据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据
库表中的所述主装置网络识别设定为自己的网络识别。
14在其它方面中,负载平衡器的从设备包含确定装置,其用于根据可独立地由 所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护算法确定所述负
12载平衡器的主装置是否起作用;及尝试装置,其用于在所述主装置不起作用的情况下 尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定 角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少一个其它从装 置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所 述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
15在另一方面中,负载平衡器的从设备包含健康管理服务,其可操作以根据可 独立地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护算法确 定主装置是否起作用且进一步可操作以在所述主装置不起作用的情况下尝试根据可独 立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法 变成所述主装置,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数 据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据 库表中的所述主装置网络识别设定为自己的网络识别。另外,所述从设备包含与所述 健康管理服务进行通信且可操作以响应于所述健康管理服务向主装置数据库表读取及 写入的数据库服务。
16在再一方面中,用于负载平衡器的主计算设备的计算机实施的方法包含执行共 用预定角色转换算法以变成主装置。所述共用预定角色转换算法可独立地由所述负载 平衡器中的多个从装置中的每一者操作且包括在至少一个其它从装置在主装置数据库 表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表 中的所述主装置网络识别设定为自己的网络识别。此外,所述方法包括执行共用预定 健康维护算法以确定所述多个从装置中的每一者的健康。所述共用预定健康维护算法
可独立地由所述负载平衡器中的所述多个从装置中的每一者操作。此外,所述方法包 括将一组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的执行 确定为起作用的至少一个从装置。所述方法进一步包括将所述命令及对应的指派存储 在数据库表中,其中每一指派包含所述多个从装置中被指派到相应的命令的一者的网 络识别。此外,所述方法包括针对所述组命令中的每一者检查所述数据库表中的命令 状态,其中所述命令状态指示相应的命令是否已被执行。另外,所述方法包括在基于 所述命令状态确定所有所述命令被执行时执行回调函数。
17在其它方面中,经配置以充当负载平衡器的主设备的至少一个处理器包含用于 执行共用预定角色转换算法以变成主装置的第一模块。所述共用预定角色转换算法可 独立地由所述负载平衡器中的多个从装置中的每一者操作且包括在至少一个其它从装 置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所 述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述至少 一个处理器包括用于执行共用预定健康维护算法以确定所述多个从装置中的每一者的 健康的第二模块。所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多 个从装置中的每一者操作。此外,所述至少一个处理器包括用于将一组命令中的每一 者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少一个从装置的第三模块。此外,所述至少一个处理器包括用于将所述命令及对应的指派 存储在数据库表中的第四模块,其中每一指派包含所述多个从装置中被指派到相应的 命令的一者的网络识别。所述至少一个处理器进一步包括用于针对所述组命令中的 每一者检查所述数据库表中的命令状态的第五模块,其中所述命令状态指示相应的命 令是否己被执行;及用于在基于所述命令状态确定所有所述命令被执行时执行回调函 数的第六模块。
18在另一方面中,计算机程序产品包含具有用于执行动作的代码的计算机可读媒 体。所述计算机可读媒体包括致使计算机执行共用预定角色转换算法以变成主装置的 第一代码集。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置
中的每一者操作且包括在至少一个其它从装置在主装置数据库表中设定对应的其它从 装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识 别设定为自己的网络识别。此外,所述计算机可读媒体包括致使所述计算机执行共用 预定健康维护算法以确定所述多个从装置中的每一者的健康的第二代码集。所述共用 预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每一者操作。 此外,所述计算机可读媒体包括致使所述计算机将一组命令中的每一者指派到所述多 个从装置中基于所述预定健康维护算法的执行确定为起作用的至少一个从装置的第三 代码集。此外,所述计算机可读媒体包括致使所述计算机将所述命令及对应的指派存 储在数据库表中的第四代码集,其中每一指派包含所述多个从装置中被指派到相应的 命令的一者的网络识别。所述计算机可读媒体还包括致使所述计算机针对所述组命令 中的每一者检査所述数据库表中的命令状态的第五代码集,其中所述命令状态指示相 应的命令是否已被执行。另外,所述计算机可读媒体包括致使所述计算机在基于所述 命令状态确定所有所述命令被执行时执行回调函数的第六代码集。
19在其它方面中,负载平衡器的主设备包含用于执行共用预定角色转换算法以变 成主装置的装置。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从 装置中的每一者操作且包括在至少一个其它从装置在主装置数据库表中设定对应的其 它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网 络识别设定为自己的网络识别。此外,所述主设备包括用于执行共用预定健康维护算 法以确定所述多个从装置中的每一者的健康的装置。所述共用预定健康维护算法可独 立地由所述负载平衡器中的所述多个从装置中的每一者操作。此外,所述主设备包括 用于将一组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的执 行确定为起作用的至少一个从装置的装置。另外,所述主设备包括用于将所述命令及 对应的指派存储在数据库表中的装置,其中每一指派包含所述多个从装置中被指派到 相应的命令的一者的网络识别。此外,所述主设备包含用于针对所述组命令中的每一 者检查所述数据库表中的命令状态的装置,其中所述命令状态指示相应的命令是否已 被执行。另外,所述主设备包含用于在基于所述命令状态确定所有所述命令被执行时 执行回调函数的装置。
1420在再一方面中,负载平衡器的主设备包含可操作以执行共用预定角色转换算法 以变成主装置的健康维护服务。所述共用预定角色转换算法可独立地由所述负载平衡 器中的多个从装置中的每一者操作且包括在至少一个其它从装置在主装置数据库表中 设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的 所述主装置网络识别设定为自己的网络识别。此外,所述健康维护服务进一步可操作 以执行共用预定健康维护算法以确定所述多个从装置中的每一者的健康,其中所述共 用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每一者操 作。所述主设备还包括可操作以将一组命令中的每一者指派到所述多个从装置中基于 所述预定健康维护算法的执行确定为起作用的至少一个从装置的分配服务。此外,所 述主设备包含与所述分配服务进行通信且可操作以将所述命令及对应的指派存储在 数据库表中的数据库服务,其中每一指派包含所述多个从装置中被指派到相应的命令
的一个从装置的网络识别。此外,所述分配服务进一步可操作以针对所述组命令中的 每一者检查所述数据库表中的命令状态,其中所述命令状态指示相应的命令是否己被 执行。另外,所述主设备包含可操作以在基于所述命令状态确定所有所述命令被执行 时执行回调函数的用户命令执行器。
21为实现上述及相关目的,所述一个或一个以上方面包含若干在下文中全面说明 并在权利要求书中特别指出的特征。以下说明及附图详细阐述所述一个或一个以上方 面的某些说明性特征。然而,这些特征仅表示其中可采用各种方面的原理的各种方式 中的几种,且此说明打算包括所有此类方面及其等效物。


图1是零单点故障负载平衡器系统的一个方面的示意图; 图2是图1的系统的通信装置的组件的一个方面的示意图3是图1的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意
图4是图1的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意
图5是图1的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意
图6是图1的系统的计算装置的组件的一个方面的示意图7是图1的系统的负载平衡器的额外组件的一个方面的示意图8是用于图1的零单点故障负载平衡器系统的健康维护的方法的一个方面的流
程图9是用于零单点故障负载平衡器系统的从装置的方法的一个方面的流程图;及 图10是用于零单点故障负载平衡器系统的主装置的方法的一个方面的流程图。
具体实施例方式
本文中所说明的设备及方法提供将一组命令划分为个别命令且将所述命令分配 到多个计算装置,且随后组合已执行命令的结果。包含所述计算装置的系统可称为处 理农场。在某些方面中,所述计算装置中的每一者使用相同的方法。所述方法可以所 述计算装置中的每一者尝试变成主装置开始。所述计算装置中的一者成功且变成主装 置且剩余计算装置中的每一者变成从装置。有利地,可由每一计算装置独立地实施所 述方法,而不需要单独的控制器来识别所述主装置。命令被提交到主装置以供执行。 所述主装置将所述多个命令划分为个别命令。举例来说,可在(例如) 一脚本中一同 接收所述多个命令且所述主计算装置上的负载平衡器组件将所述脚本分裂为针对所述 脚本的每一线的一个命令,且将所述命令分配到从装置。在某些方面中,从装置从主 装置取所分配的命令且执行相应的命令,从而向所述主装置返回相应的结果。主装置 追踪所分配的命令,且将在所有相关所分配命令的结果可用时编译并返回结果。
另外,主装置可规则地进行检査以确保从装置中的每一者起作用。如果从装置不 起作用,那么将被指派到所述不起作用的从装置的所分配命令重新指派到另一从装置 及/或主装置可执行相应的所分配命令。
此外,所述从装置中的至少一者可规则地进行检查以确保主装置仍起作用。如果 从装置确定主装置不起作用,那么所述从装置将尝试根据可独立执行的方法变成主装 置。在某些方面中,从装置中的每一者可尝试变成主装置直到所述从装置中的一者成 功且变成新的主装置。未变成主装置的从装置将继续作为从装置进行工作。所述从装 置可使用数据库来确定哪个从装置变成主装置。在某些方面中,可使用主装置代码(例 如,常数值)作为数据库中主装置数据库表中的主关键字,使得仅一个从装置可变成 主装置。
另外,在某些方面中,主装置可使用数据库来维持指派记录及每一所分配命令的 状态。
因此,用于零点故障平衡器的系统通过以下各项中的一者或一者以上实现从装
置中的每一者规则地检查主装置的状态;如果所述主装置不起作用,那么由所述从装
置中的至少一者尝试变成主装置;由所述从装置使用数据库来确定哪个从装置变成新
的主装置;由所述计算装置规则地检查所述从装置中的每一者的状态;或由所述主装 置使用数据库来维持所述任务。另外,通过计算装置中的每一者使用相同的方法,仅 需要开发及维持一种方法。
参照图l,零点故障负载平衡器系统20的方面包含计算装置22、 24、 26及通信 装置28。在图1中,计算装置22中的一者是主装置21且其它计算装置22中的至少 一者是从装置23。计算装置22中的每一者可正运行用于提供零点故障负载平衡器系 统20的方法。所述方法针对每一计算装置22提供至少两个角色, 一个角色是作为从装置23进行工作且另一角色是作为主装置21进行工作。
在系统20中,计算装置22中的所指定主装置21 (例如)经由通信网络44从计 算装置24的队列输入模块38接收一个或一个以上命令40。举例来说,每一命令40 可涉及从一个或一个以上通信装置28收集且存储在数据库30中的与通信装置相关的 数据29的处理。举例来说,与通信装置相关的数据29可包括关于对应的一个或一个 以上无线通信网络上的一个或一个以上通信装置的一个或一个以上操作的信息、 一个 或一个以上通信装置组件(例如,硬件及/或软件)的状态或两者的某一组合及/或某一 相关性。因此,命令40可涉及确定与一个或一个以上通信装置28相关联、与通信装 置28在其上操作的无线网络相关联或与两者的某一组合相关联的统计数据及/或其它 特性。
在任一情况下,为增加处理一个或一个以上命令40的效率,主装置21执行可经 由分配服务48操作的负载平衡器模块42以将命令40中的一者或一者以上分配到计算 装置22 (包括从装置23以及主装置21)中的一者或一者以上以供处理。举例来说, 每一命令40可被分解为一个以上子命令且被分配。特定来说,每一计算装置22包括 可操作以处理命令40中的一者或一者以上且将结果返回到主装置21的用户命令执行 器46。主装置21上的负载平衡器42随后可操作以重新汇集所有结果(具有进一步处 理所述结果的任选方面),且返回对应于相应命令40的终端结果41。举例来说,可 将终端结果41与对对应命令40的参考一同存储在数据库30中,从而使得经授权的用 户(例如,计算装置24的用户)能够检索并观看终端结果41。如上所述,终端结果 41可以是至少部分地基于从一个或一个以上通信装置28收集的数据29的与一个或一 个以上通信装置28或一个或一个以上无线网络相关的某种类别的特性。此外,在零点 故障方面中,每一计算装置22 (例如,从装置23)还包括类似的负载平衡器模块42 以与主装置21的负载平衡器模块42进行通信或在相应的计算装置22变成主装置的情 况下执行主装置负载平衡功能。
此外,主装置21包括可操作以提供与数据库30的通信接口的数据库服务52以 存储与所指派的处理任务相关的信息及终端结果41以及与用于建立主装置21及从装 置23的方法相关的信息。在零点故障方面中,数据库30包含具有高可靠性及内装冗 余系统的存储机构。举例来说,数据库30可包括存储对由主装置21接收的每一命令 40的参考的命令索引表32。此外,数据库30可包括存储对由主装置21分配到计算装 置22的各种命令的参考及所分配命令的状态(对应于相应命令40的处理)的子命令 索引表34。另外,在零点故障方面中,数据库30可包括存储关于主装置21的信息且 用于建立新主装置的主装置表36。此外,在零点故障方面中,每一计算装置22(例如, 从装置23)也包括类似的数据库服务52以与数据库30及/或主装置21的数据库服务 52介接。
另外,在零点故障方面中,主装置21包括可操作以规则地尝试在通信网络44上 与从装置23中的每一者联系的健康管理服务50。如果从装置23不可达,那么主装置
1721假设相应的从装置23不起作用且行动以重新分配被指派到所述相应从装置23的任 何命令40以供处理。举例来说,主装置21的分配服务模块48可更新子命令索引表 34且将来自每一不可达从装置23的命令重新分配到可达的另一从装置23。
相对地,每一从装置23的健康管理服务50可规则地尝试联系主装置21。如果从 装置23的健康管理服务50确定主装置21不正确地起作用,例如,如果未从所述主装 置接收到响应,那么从装置23的健康管理服务50将尝试将相应从装置23的角色改变 为主装置21的角色。从装置23的健康管理服务50可尝试通过使用数据库30的主装 置表36管理从装置23之间的通信来变成主装置21。在某些方面中,主装置表36使 用可以是常数的主装置代码,其中所述主装置代码是主装置表36的主关键字,使得仅 单个从装置23将成功地向主装置表36写入。在某些方面中,通过使用数据库30的主 装置表36中的行实施或模仿旗语来管理为确定哪个从装置23将变成主装置21而在从 装置23之间进行的通信。在某些方面中,从装置23及主装置21使用通信消息54彼 此进行通信及与数据库30进行通信,且使用网络识别符(ID) 56来识别彼此。
因此,系统20通过为主装置21提供数据库30以管理命令40到从装置23的分 配且通过从装置23规则地检查主装置21的状态且尝试在主装置21停止正确地起作用 的情况下变成主装置21来提供用于零点故障负载平衡器的设备及方法。此外,主装置 21规则地检查从装置23中的每一者的状态,且如果从装置23不响应,那么主装置21 将被指派到所述不可达从装置23的命令40重新指派到可达从装置23及/或主装置21 。 在某些方面中,命令40及其状态存储在数据库30中。因此,系统20有利地提供在计 算装置22之间分配命令、经由在数据库30中存储与命令相关的信息管理命令分配、 经由健康管理服务50之间的通信维护系统的健康且经由数据库30管理用于负载平衡 的主装置21的确定的零点故障系统。
参照图1及2,通信装置28可包含可操作以与通信网络44交换消息的任何类型 的装置。举例来说,通信装置28可包含移动通信装置,例如无线及/或蜂窝式电话。 应了解,通信装置28不限于所图解说明的装置,但可进一步包括个人数字助理(PDA)、 双向文本传呼机、具有有线或无线通信入口的便携式计算机及具有有线及/或无线通信 入口的任何类型的计算机平台。此外,通信装置28可以是远程从装置或其它类似装置, 例如远程感测器、远程服务器、诊断工具、数据中继器及类似装置,其不具有其端用 户,但其经由无线或有线网络简单地传递数据。另外,应注意,任何数目的通信装置 28的任一组合可用于系统20中。此外,应注意,尽管已在通信装置28与计算装置22、 24及26之间做了区分,但某些装置可充当通信装置28及计算装置22、 24及26两者。
特定来说,系统20操作以从一个或一个以上通信装置28收集数据,且随后使用 主计算装置21及从计算装置23处理并分析所收集的数据。具体来说,计算装置24(例 如,远程计算机)的用户将一个或一个以上命令40键入到队列输入模块38中,所述 队列输入模块将命令40转发到主计算装置21 。所述一个或一个以上命令40通常涉及 将要收集的数据的识别及/或将对所收集的数据执行的分析的识别。主计算装置21随
18后执行负载平衡器模块42以处理所述一个或一个以上命令40并将结果返回到计算装 置24。
因此,通信装置28包括具有存储器31的计算机平台29,所述存储器存储用于收 集关于通信装置、通信网络或其某一组合的所请求数据的至少一个数据收集模块33。 数据收集模块33可包括硬件、软件及固件的任一组合,且可操作以动态地经配置以收 集任何所需数据。计算机平台29进一步包括用于执行数据收集模块33的处理器35。 此外,计算机平台29可包括应用编程接口 (API) 37以实现数据收集模块33与处理 器35之间的通信。
API 37可以是在相应的通信装置上执行的运行时间环境。 一个此种运行时间环境 是由加利福尼亚州圣地亚哥的高通(Qualcomm)公司开发的用于Wireless (BREW ) 软件的二进制运行时间环境。可使用其它(例如)操作以控制无线计算装置上的应用 程序的执行的运行时间环境。在其它方面中,API 37可以是操作系统,例如微软 WINDOWS、 LINUS及MAC OS。所述操作系统可提供多个进程及/或允许执行多个进 程的执行线程。
另外,在某些方面中,处理器35可包括体现在硬件、固件、软件及其组合中的 各种处理子系统,其实现通信装置28的功能性及通信装置28在通信网络44 (图1) 上的操作性。举例来说,处理子系统允许起始并维持通信,及与其它联网装置交换数 据以及在通信装置28的组件内及/或之间交换数据。在一个方面中,例如在蜂窝式电 话中,处理器35可包括例如以下等处理子系统中的一者或其组合声音、非易失性存 储器、文件系统、传输、接收、搜索器、层l、层2、层3、主控制、远程程序、手机、 电力管理、诊断、数字信号处理器、声码器、消息收发、呼叫管理器、Bluetooth⑧系 统、Bluetooth LPOS、位置确定、位置引擎、用户接口、睡眠、数据服务、安全、验 证、USIM/SIM (通用订户身份模块/订户身份模块)、语音服务、图形、USB (通用 串行总线)、多媒体(例如,MPEG (移动图片专家组)协议多媒体、GPRS (通用包 无线电服务))、短消息服务(SMS)、短语音服务(SVSTM)、网络浏览器等。在 某些方面中,数据收集模块33从一个或一个以上处理子系统收集数据,其中所述数据 可包含日志代码、空中激活事件(例如,对应于由通信装置28使用的通信协议的数据 包)、描述通信28的一个或一个以上硬件及/或软件组件的数据(例如,当前状态、 使用量等)或其任一组合。
计算装置26操作数据库30,数据库30执行负载平衡的部分及本文中所论述的数 据处理方面,且其另外可存储从一个或一个以上通信装置28收集的数据。
数据库30可以是结构化数据收集。在一个方面中,数据库30可由数据库管理系 统(DBMS)实现,例如在计算装置26上运行的ORACLE、 MYSQL或微软ACCESS。 数据库30包括内装冗余系统,例如群集器及冗余数据库,其提供高可靠性并减小发生 故障的可能性。DBMS实现写入及读取数据库30的行(有时称作元组)及数据库表 (例如,表32、 34及36)的创建及删除。尽管图1图解说明数据库30由单个计算装
19置26实施,但数据库30可由具有多冗余的许多计算装置实施。此外,数据库30可实 施在一个以上存储机构中。
数据库30可由表组成,例如在图3-5中。表包含其中列是数据的名称的数据行且 数据的值包含表的行。数据库30的表可具有主关键字。当数据库30具有主关键字时, 那么具有特定值的仅单个行可以是表的成员。 一般来说,DBMS使得计算装置22、 24、 26能够从数据库30中的表中写入及读取行。 一般来说,行的值可以是可向计算机存 储器读取及写入的任何类型的数据,包括由主装置21向从装置23发送的命令40。
参照图l、 3及4,在一方面中,可使用数据库30的两个表32及34来维持一个 或一个以上命令40的状态。可使用命令索引表32来追踪每一命令40及其经分配以进 行处理的对应子命令,而子命令索引表34可用于追踪每一子命令的状态及其与命令 40的关系。
在一个方面中,命令索引表32包括以下字段命令设定识别符(CMDSETID) 266,其可以是命令索引表32的主关键字,且包含相应命令40的唯一识别符;命令的 数目268,其可以是经分配以处理对应命令40的子命令的总数目;及回调函数270, 其可包含将要在命令40群组被成功执行时调用的机构,例如脚本。举例来说,回调函 数270可包含用以将命令40群组的结果汇集到单个结果中的操作;用以处理命令 40群组的结果中的至少一者以产生命令40群组的新结果的操作或功能等。此外,举 例来说,用户命令执行器46或负载平衡器42的某部分(例如,分配服务48)可执行 或起始回调函数270。
可使用子命令索引表34来存储实际的子命令且维持子命令的状态。子命令索引 表34可包含以下字段子命令识别符(SUB-CMD ID) 250,其可以是子命令索引表 34的每一行的主关键字,且包括可针对由负载平衡器42分配的每一子命令产生的唯 一识别符;命令(CMD) 252可以是供所指派计算装置的相应用户命令执行器46处理 的对应于命令40的一个单个子命令;回调函数254,其包含将要在命令群组被成功执 行时调用的机构,例如脚本;回调函数状态256,其是回调函数的状态,举例来说, 在一个非限制性情况下,已提交=0,执行中=1,已执行=2;命令(CMD)状态258, 其包含对应于子命令的状态的值,例如,已提交=0,执行中=1且已执行=2;开始时 间260,其包含相应的子命令出于执行的目的而被发送到相应的用户命令执行器46的 时间;命令(CMD)设定ID 266,其是与向后参考相应的命令40的每一子命令群组 相关联的识别符,其中CMD设定ID 266对应于如在命令索引表32中建立的相应命 令40的值,且在某些方面中,CMD设定ID266可用作回调函数id;及地址264,其 可以是相应子命令40被指派到其以供执行的计算装置22的识别符,例如,因特网协 议(IP)地址或网络ID56。
因此,命令索引表32及子命令表34允许管理并追踪每一命令40的所分配处理, 且进一步提供允许转换为主装置21的角色的任何装置确定系统20的当前状态的机制。
此外,参照图1及5,在一方面中,主装置表36可用于维持主装置21的身份且
20用于管理哪个计算装置22变成主装置21 。主装置表36包含以下字段:主装置代码280, 其包含主装置表36的主关键字且识别主装置被建立;创建时间276,其可以是插入相 应主装置代码280的时间;及主装置地址278,其可以是将其自身设定为主装置的计 算装置22的识别符,例如IP地址或网络ID 56。如果主装置代码280包含指示相应的 行识别主装置21的预定值,那么主装置地址278将识别作为当前主装置21的计算装 置。 一般来说,主装置表36可用于解决主装置21与从装置23之间的码段以确定哪个 计算装置是主装置。由于存在多个计算装置22,其每一者可在大约相同的时间尝试变 成主装置21,那么必须使用某种通信装置来使得计算装置能够确定主装置。因此,使 用主装置表36来实施或模拟软件旗语解决方案,例如迪科斯彻(Dijkstra)的算法。 因此,当主装置代码280用作主装置表36的主关键字时,那么仅一个计算装置可在主 装置表36中写入其身份且因此变成主装置。因此,通过针对从装置23及主装置21 使用数据库30来确定计算装置22中的哪一个变成主装置21,且通过使用数据库30 来提供主装置21的网络ID 54,实现了用于零点故障负载平衡器的系统20的方面。
往回参照图l,如上所述,计算装置24包括操作以允许用户向系统20发出命令 40以收集数据及/或分析所收集数据的队列输入模块30。特定来说,队列输入模块38 可包含可操作以向计算装置24提供将命令40输入到主装置21的负载平衡器42的能 力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某些方面中, 队列输入模块38可基于文本且允许用户输入文本命令40,例如命令脚本,其随后被 发送到主装置21的负载平衡器42。因此,队列输入模块38通过准许命令40被接收 且被发送到主装置21的负载平衡器42而使得命令40能够被输入到系统20。
另外,参照图1,计算装置22、 24及26可包含任何类型的计算装置。举例来说, 如图1中所图解说明,计算装置22、 24及26可包含固定的计算装置,例如网络装置、 服务器、计算机工作站等。应了解,计算装置22、 24及26并不限于所图解说明的装 置,但可进一步包括具有有线或无线通信入口的便携式计算机及具有有线及/或无线通 信入口的任何类型的计算装置。另外,尽管以类似方式图解说明计算装置22,但应注 意计算装置22中的每一者可以是不同类型的计算装置。此外,计算装置22、 24及26 可以是远程从装置或其它类似计算装置,例如远程服务器,其不具有其端用户,但其 经由无线或有线网络44简单地传递数据。在替代方面中,计算装置22、 24及26中的 每一者可以是多处理器系统。另外,应注意,任何数目的计算装置22、 24及26的任 一组合可用于系统20中。因此,可相应地在连接到有线或无线通信网络44的任何形 式的计算装置上执行本设备及方法。
另外,参照图6 (为简明起见,其参考计算装置22),计算装置22、 24、 26可 包括与计算机平台62进行通信的用户接口 57,所述计算机平台包括具有可由处理器 66执行的指令的存储器64且进一步包括实现相应计算装置内的通信及去往或来自所 述相应计算装置的通信的通信模块74。
用户接口 57包括可操作以产生或接收到装置22中的输入的输入机构58及可操作以产生及/或呈现供装置22的用户消耗的信息的输出机构60。举例来说,输入机构 58可包括至少一个机构,例如小键盘及/或键盘、鼠标、触摸屏显示器、与语音辨识模 块相关联的麦克风等。在某些方面中,输入机构58可提供命令40的至少一部分的用 户输入。此外,举例来说,输出机构60可包括显示器、音频扬声器、触觉回馈机构等。 输出机构60可产生图形用户接口、声音、感觉,例如振动等。
此外,存储器64可包含易失性及非易失性存储器部分,例如只读及/或随机存取 存储器(RAM及ROM),可擦除可编程只读存储器(EPROM)、电可擦除可编程只 读存储器(EEPROM)、快闪存储器及/或对于计算机平台普遍的任何存储器。另外, 存储器64可包括活动存储器及存储存储器,包括电子文件系统及任何二级及/或三级 存储装置,例如磁性媒体、光学媒体、磁带、软磁盘及/或硬磁盘及可抽换式存储器组 件。
此外,计算机平台62包括至少一个处理器66,所述处理器可以是专用集成电路 (ASIC),或其它芯片组、逻辑电路或其它数据处理装置。在某些任选方面中,如由 虚线所识别,处理器66可执行与任何驻存软件组件70 (例如,存储器64中的任何应 用程序或模块)介接的应用编程接口 (API)层68。
另外,通信模块74实现相应通信装置22的各种组件之间的通信,以及可操作以 在所述装置与通信网络44 (图1)之间交换通信消息54 (图1)。通信模块74可体现 在硬件、固件、软件及/或其组合中,且可进一步包括用于装置内通信及装置间通信中 的所有协议。此外,通信模块74可操作以根据本文中所说明的设备及方法传输及/或 接收信息,例如通信消息54。
往回参考图l,在某些方面中,通信消息54可代表心跳请求,其是请求所请求 计算装置22进行响应的请求;或确认,其指示心跳请求的接收或指示另一类型的通信 消息54的接收。在其它方面中,通信消息54可包含被发送到从装置23的命令40或 被发送到主装置21的命令40的执行的结果。在另外的方面中,通信消息54可以是用 以读取或写入数据库表32、 34及36的全部或部分的命令。且在另外的方面中,通信 消息54可以是被发送到通信装置28以搜集对应于通信装置28的操作的数据的命令, 且通信消息54可以是通信装置28已搜集的数据。 一般来说,通信消息54使得通信装 置28及/或计算装置22及/或24及/或26能够经由通信网络44进行通信。应注意,通 信消息54可由通信网络44从一个格式转变为另一格式。举例来说,通信消息54可作 为TCP/IP包源自计算装置22且被转变为无线格式使得通信包54被传输到通信装置 28。
另外,参照图l,每一相应计算装置22的存储器可操作以存储网络识别符(ID) 56的全部或至少一部分。网络ID 56可以是用于计算装置22、 24、 26及/或通信装置 28的任何类型的识别符。在某些方面中,网络ID 56可以是计算装置22、 24、 26的 IP地址或可以是用以识别无线通信装置28的ID (例如,蜂窝式电话号码)。在某些 方面中,网络ID56可不直接识别计算装置22、 24及26或通信装置28的网络位置,但可提供可由负载平衡器42用来定位计算装置22、 24及26或通信装置28的信息。
另外,每一相应计算装置22的存储器可操作以存储命令40的全部或至少一部分。 命令40可以是供系统20执行的任何类型的命令。命令40可以是单个命令40或命令 40可以是命令群组或子命令群组,例如命令脚本。命令40可包括文本命令、二进制 可执行文件,且一般来说命令40包括可存储在存储器64中且引导系统20的操作的任 何形式的表示。在某些方面中,命令40包括用于无线装置管理系统的用户管理者的一 系列命令40。命令40可包括指令主装置21将执行命令40的结果放置在哪里的命令。 命令40可进一步包括既定由另一装置执行的指令。举例来说,在一个方面中,命令 40可包括无线通信装置28指令无线装置28收集关于无线装置28的操作的统计数据 的指令。命令40可包括无线装置28应在哪里发送收集关于无线装置28的操作的统计 数据(例如,数据库30)的结果的指令。命令40可花费许多天来完成或可以是可立 即执行的命令40。另外,命令40可包括主装置21的相应负载平衡器42进一步处理 从执行与相应命令40相关联的子命令的从装置23返回的所得数据的指令。此外,主 装置21可添加命令40中不包含的额外信息以促进命令40的分配、执行及结果返回。 另外,命令40的执行可产生可存储在相应的计算装置22上且返回到网络上的某个预 定地方(例如,返回到主装置21或数据库30或两者)的数据。
参照图1及7,负载平衡器42可存储在每一相应计算装置22中且由每一相应计 算装置22执行。负载平衡器42可包含可操作以向相应的计算装置22提供向其它计算 装置22分配命令或从所述其它计算装置22接收命令且管理系统20的能力的硬件、软 件、固件、数据及可执行指令中的一者或其任一组合。特定来说,每一计算机22的负 载平衡器42可具有三个状态。所述状态中的第一者是主装置状态,其中主装置21 (图 1)接收并分配命令40。所述状态中的第二者是从装置状态,其中负载平衡器42通过 接收命令40、执行命令40且随后将所述执行的结果返回到主装置21来充当从装置23 (图l)。且第三状态是角色转换状态,其中负载平衡器42不充当主装置21或从装 置23,但可初始化主装置21与从装置23之间的角色转换。应注意,通过使用负载平 衡器42的这三个状态,可针对从装置23及主装置21两者使用单个方法,使得从装置 23可角色转换为主装置21且主装置21可角色转换为从装置23,从而避免需要单独的 控制器来管理此类转换。
如上所述,负载平衡器42可被划分为三个模块分配服务模块48、健康管理服 务50及数据库服务模块52;然而,由负载平衡器42提供的功能性可在其它模块之间 分裂或并入到单个模块中。因此,在某些方面中,负载平衡器42向计算装置22至少 提供与其它计算装置22上的对应负载平衡器42进行通信的能力、将命令分配到其它 计算装置22或从其它计算装置接收命令的能力、管理系统20的健康状态的能力及向 数据库30读取及写入的能力。
健康维护服务50可存储在相应计算装置22的存储器中及从所述存储器执行。健 康维护服务50可包含可操作以向相应的计算装置22提供维护系统20的健康的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。 一般来说,健康维护 服务50提供充当从装置23的计算装置22确保主装置21正确起作用的能力。此外, 如果主装置21不正确地起作用,那么健康维护服务50提供充当从装置23的计算装置 22尝试变成主装置21的能力。此外,健康维护服务50提供充当主装置21的计算装 置22确保从装置23正确起作用的能力。如果从装置23不正确地起作用,那么健康维 护服务50提供充当主装置21的计算装置22重新分配可能已被指派到失灵的从装置 23的任何命令的能力。
在一个方面中,健康维护服务50使用通信消息54使得从装置23与主装置21能 够进行通信以确定系统20的健康。从装置23规则地向主装置21发送请求主装置21 返回确认所述请求的通信消息54的通信消息54。下文所论述的图8图解说明经由健 康维护算法维护系统20的健康且经由角色转换算法在从装置23与主装置21状态之间 转换负载平衡器42的健康维护服务50的某些方面。应注意,健康维护算法及角色转 换算法两者对于负载平衡器的所有计算装置是共用的,从而允许计算装置在不需要外 部控制器的辅助的情况下管理所述负载平衡器。在某些方面中,健康维护服务50或负 载平衡器42可包含可用于作出计算装置22何时可达及何时应将计算装置22确定为不 可达的确定的预定时间76。预定时间76可以是基于一个或一个以上因素(例如,通 信网络44的负载)变化等待通信消息54 (另外称作心跳)的时间的可执行程序。另 外,在某些方面中,健康维护服务50在允许从装置23角色转换为主装置21之前将检 查从装置23的实际性能测量78是否满足在主装置性能要求82中所界定的一个或一个 以上准则。举例来说,性能测量78可以是存储器的实际量或相应的计算装置22—次 可执行的同时进程的实际数目,而主装置性能要求82可以是准许装置22变成主装置 21所需的最小存储器量,或其可以是在准许从装置23变成主装置21之前可在从装置 23上执行的同时进程的最小数目。
参照图8,用于维护系统20的健康的方法200的一个非限制性实例包括由每一计 算装置22经由负载平衡器模块42的健康维护服务50采取的动作以允许(i)主装 置与从装置之间的角色转换,(ii)作为主装置进行工作,包括,及(iii)作为从装置 进行工作,包括检验从装置健康并检査主装置的健康。参照块202、 204、 206、 208、 210及212,角色转换动作可并入到共用角色转换算法中,所述算法允许每一计算装置 22尝试变成主装置,或在不能够建立到主装置的连接的情况下尝试变成主装置。此外, 参照块220、 222、 224及226,作为主装置进行工作的与健康相关的动作包括检验主 装置健康,检查从装置的健康及重新分配发送到确定为不健康或非响应性从装置的任 何命令。另外,参照块214、 216及218,作为从装置进行工作的与健康相关的动作包 括检验从装置健康,检查主装置的健康,且如果不能够检验主装置的健康,那么尝试 通过进入角色转换状态且尝试变成主装置来从主装置的可能故障恢复。应注意,在块 220、 222、 224及226中作为主装置进行工作的与健康相关的动作及在块214、 216及 218中作为从装置进行工作的与健康相关的动作可并入到对于负载平衡器的计算装置为共用且可由所述计算装置执行的健康维护算法中。因此,方法200允许系统20对失 灵或不响应的计算装置22作出反应,允许向系统20添加新计算装置22,且提供用以 开始系统20的方法。
块200是其中负载平衡器42可以初始化角色转换的状态开始的开始块。应认识 到,作为系统20的部分的计算装置22中的每一者可执行负载平衡器42,使得负载平 衡器42的许多拷贝可同时在不同的计算装置22、 24及26上执行,但负载平衡器42 中的每一者可处于独立及可能不同的状态。
在块202处,负载平衡器42将尝试变成主装置21。在一个非限制性情况下,负 载平衡器42将尝试通过在主装置表36 (图l及5)中插入具有主装置代码280 (图5) (例如,常数值)的行及执行相应的负载平衡器42的计算装置22的网络ID 56来尝 试变成主装置21。在此情况下,主装置代码280是数据库的主关键字,使得负载平衡 器42中的仅一者可成功向主装置表36写入。应注意,使用主装置表36及具有用于主 装置表36的主关键字的常数值的主装置代码280仅为数据库表可用于管理主装置21 的身份的共享资源的一种方法。下文论述其它方法。
在块204处,负载平衡器42读取主装置表36以读取主装置21的网络ID56。在 一个方面中,此可以是主装置21的IP地址。
在块206处,负载平衡器42将执行负载平衡器42的计算装置22的网络ID 56 与主装置21的网络ID 56进行比较。如果所述网络ID 56相同,那么负载平衡器42 成功变成主装置21,因此负载平衡器42进入主装置状态(块220)。如果所述网络 ID56不相同,那么负载平衡器42不变成主装置21,且在转换为从装置状态之前,其 它动作可发生。
在块208处,负载平衡器42尝试使用从主装置表36读取的网络ID 56连接到主 装置21。
在块210处,负载平衡器42确定到主装置21的连接是否成功。在一个方面中, 负载平衡器42基于预定的等待时间来确定到主装置21的连接是否成功。
如果到主装置21的连接不成功,那么在块212处,负载平衡器42将尝试使用主 装置代码280及刚刚从主装置表36读取的主装置21的网络ID 56从主装置表36删除 主装置21。在一个方面中,负载平衡器42尝试删除主装置21,因为负载平衡器42 假设如果主装置21不可达那么主装置21不正确地起作用。
在块214处,如果在块210中到主装置的连接成功,那么负载平衡器42作为从 装置23进行工作。 一般来说,作为从装置的工作包含接受并执行来自主装置21的命 令,且随后将结果返回到主装置21或返回对存储结果的地方(例如,在数据库中)的 参考。在某些方面中,接受命令40并返回执行命令40的结果是在TCP/IP上通过通信 消息54进行的。
在块216处,作为从装置23进行工作的负载平衡器42使用从主装置表36读取 的主装置21的网络ID 56将包含心跳的通信消息54发送到主装置21 。在某些方面中,主装置21的负载平衡器42可基于从从装置接收的心跳来构建从装置ID表84(图2)。 在块218处,作为从装置23进行工作的负载平衡器42确定是否从主装置21接 收到包含确认的通信消息54。如果未从主装置21接收到确认,那么充当从装置23的 负载平衡器42假设主装置21不正确地起作用且去往块212以尝试并删除主装置21。 如果从主装置21接收到确认,那么充当从装置23的负载平衡器42回到块214。在一 个方面中,负载平衡器42使用预定时间以等待确认直到确定主装置21不可达且假设 主装置21不正确地起作用。
返回到块206,当负载平衡器42确定其是主装置21时,负载平衡器42在块220 中继续作为主装置21进行工作。 一般来说,作为主装置21进行工作包括与以下各项 相关的任务维护系统20的健康,发送供从装置23执行的命令,接收从装置23执行 所述命令的结果,检查是否已执行子命令群组中的所有命令,及确定从装置23中的每 一者是否正确地起作用。
在块222处,负载平衡器42响应于从从装置23接收到的每一心跳54来发送包 含确认的通信消息54。此外,负载平衡器42向从装置23中的每一者发送心跳54。在 某些方面中,可使用TCP/IP来发送所述心跳及确认。主装置21可维持从装置23的网 络ID56的列表(例如,从装置ID表84),且基于从从装置23接收到的心跳来更新 所述列表。
在块224处,负载平衡器42确定从装置23中的每一者是否已发送对心跳消息的 确认。负载平衡器42可基于等待来自每一从装置23的确认达一预定量时间来作出此 确定。
在块226处,负载平衡器42重新分配被指派到基于不可达而确定为不正确起作 用的从装置23中的每一者的命令。在某些方面中,负载平衡器42可基于从装置23 的性能测量或某个其它预定度量来确定从装置23是否正确地起作用。负载平衡器42 随后返回到块220。
因此,负载平衡器42可操作以通过使得计算装置22中的每一者能够变成从装置 23或主装置21且通过规则地确定从装置23及主装置21中的每一者是否正确地起作 用来维护系统20的健康。
另外,参照图1及7,分配服务模块48可存储在计算装置22的存储器中且从所 述存储器执行。分配服务模块48可包含硬件、软件、固件、数据及可执行指令中的一 者或其任一组合,其可操作以向相应的计算装置22提供将命令40 (其可以是子命令 的列表)分配到从装置23的相应用户命令执行器46及/或主装置21的用户命令执行 器46且随后组合已执行的命令且在某些方面中响应于队列输入模块38返回结果的能 力。此外,分配服务模块48使得计算装置22能够重新分配被分配到停止正确起作用 的从装置23的命令。此外,分配服务模块48使得队列输入模块38能够添加供在系统 20上执行的命令40。在某些方面中,分配服务模块48通过确定向哪个计算装置22 分配命令40来维持系统20的水平负载平衡以及垂直负载平衡。水平平衡是指跨越从
26装置23及/或主装置21平衡命令40。垂直平衡是指已向单个计算装置22指派多少负 载。在一个非限制性情况下,举例来说,分配服务模块48与从装置23进行通信且从 从装置23接收指示从装置23的负载的利用率。分配服务模块48随后将基于所接收的 利用率来确定向从装置23中的哪一个分配命令。另外或另一选择为,分配服务模块 48可将分配确定基于从从装置23接收的其它信息,例如,从装置23中的每一者可处 置的最大进程数目。在某些方面中,分配服务44可向主装置21分配命令36。
在某些方面中,分配服务模块48可通过使用数据库30来维持命令40的状态。 在一个非限制性实例中,参照图l、 3及4,可使用数据库30的两个表32及34。在某 些方面中,分配服务模块48规则地更新子命令索引表34,使得如果主装置21失灵, 那么新主装置21可使用子命令索引表34来继续分配命令而不丢失已完成的工作。另 外,分配服务模块48可使用命令索引表32来追踪每一命令40的处理的分配。
因此,由分配服务模块48使用数据库30来维持命令40且通过规则地更新子命 令索引表34及命令索引表32,那么如果主装置21停止正确地起作用,新主装置21 可继续分配命令40而不丢失从装置23的工作,且从而为用于零点故障负载平衡器的 系统20做贡献。
此外,在一个非限制性情况下,分配服务模块48可使用通信消息54来向从装置 23分配命令40。此外,从装置23可使用通信消息54来将结果返回到主装置21。
另外,参照图1及7,数据库服务模块52可存储在存储器64中且从所述存储器 执行。数据库服务模块52可包含可操作以向相应的计算装置22提供向数据库30读取 及写入的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某 些方面中,数据库服务模块52可使用数据库管理系统的应用程序接口 (例如, ORACLE)来提供计算装置22向数据库30读取及写入的方便方式。因此,数据库服 务48使得计算装置22能够向数据库30的表32、 34、 36读取及写入行或元组。
另外,参照图l,用户命令执行器46可存储在相应计算装置22的存储器中且从 所述存储器执行。用户命令执行器46可包含可操作以向相应的计算装置22提供执行 命令40的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某 些方面中,用户命令执行器46可派生线程以执行命令40。在其它方面中,用户命令 执行器46可以是可直接执行命令40的应用程序。 一般来说,用户命令执行器46使得 计算装置22能够执行计算装置22上的任何命令40且进一步可提供与远程装置(例如, 通信装置28)进行通信的功能性。 一般来说,用户命令执行器46取且执行命令,且 随后在通信网络44上将结果发送到主装置21。另一选择为或另外,用户命令执行器 46可将所述结果存储在数据库30中的某种形式的存储器或存储装置中及/或存储在从 装置23及/或主装置21上。因此,用户命令执行器46使得计算装置22能够执行命令。
参照图1,另外及/或另一选择为,负载平衡器42可使用操作系统的线程来实现 系统20的功能性。应注意,为方便起见,解释所述线程的功能性而不将所述功能性链 接到负载平衡器42的子模块。在一个非限制性实例中,在用于主装置21的计算装置
2722上创建的线程可包含主装置线程,其任务包括创建数据库处置线程、在用户界定的 端口号码上运行TCP/IP服务器以用于与从装置23进行通信及为与主装置21进行通信 的每一从装置23创建单独的从装置处置线程。数据库处置线程的任务包括读取及写入 数据库表32、 34及36。从装置处置线程的任务包括向从装置23发送消息以确保从装 置23仍起作用,向从装置23发送命令及接收从装置23执行命令40的结果。在用于 从装置23的计算装置22上创建的线程可包含从装置线程,其任务包括建立与主装置 21的TCP/IP连接,向主装置21发送关于性能的信息(例如,可在从装置23上运行 的同时进程的最大数目),向主装置21发送心跳,从主装置接收心跳及向及从主装置 21发送及接收确认。从装置23及主装置21可包含分支下一进程线程,其任务包括执 行从主装置21接收的命令。因此,可使用串线式操作系统实现主装置21及从装置23 的功能性。
另外,往回参照图1,通信网络44可包含任何数据及/或语音通信网络。举例来 说,通信网络44可包含以下各项中的任一者或其任一组合的全部或某部分有线或无 线电话网络;陆地电话网络;卫星电话网络;红外线网络,例如基于红外线数据协会 (IrDA)的网络;短距离无线网络;Bluetooth⑧技术网络;ZigBee⑧协议网络;超宽带 (UWB)协议网络;国内射频(国内RF)网络;共享无线接入协议(SWAP)网络; 宽带网络,例如无线以太网兼容性联盟(WECA)网络、无线保真联盟(Wi-Fi联盟)
网络及802.XX网络;包数据网络;因特网协议(IP)多媒体子系统(IMS)网络;公 共交换电话网络;公共异构通信网络,例如因特网;专用通信网络;多播网络,例如 唯正向链路(FLO)网络,包括可从加利福尼亚州圣地亚哥的高通公司购得的 MediaFLOTM系统;数字视频广播(DVB)网络,例如针对卫星的DVB-S、针对有线 电视的DVB-C、针对陆地电视的DVB-T、针对用于手持装置的陆地电视的DVB-H; 及陆地移动无线电网络。
此外,电话网络的可包括在通信网络44的某些方面中的实例包括以下各项中的 一者或其任一组合的至少一部分模拟及数字网络/技术,例如码分多址(CDMA)、 宽带码分多址(WCDMA)、通用移动电信系统(UMTS)、先进移动电话服务(AMPS)、 时分多址(TDMA)、频分多址(FDMA)、正交频分多址(OFDMA)、全球移动通 信系统(GSM)、单载波(IX)无线电传输技术(RTT)、唯进化数据(EV-DO)技 术、通用包无线电服务(GPRS)、增强型数据GSM环境(EDGE)、高速下行链路 数据包存取(HSPDA)、模拟及数字卫星系统及任何其它可在无线通信网络及数据通 信网络中的至少一者中使用的技术/协议。
参照图8,在操作中,用于从装置处的零点故障负载平衡器系统的方法的一个非 限制性情况包含确定主装置是否起作用(块300)。举例来说,在一个非限制性情况 下,参照图1及6,从装置23可将通信消息54发送到主装置21且等待来自主装置21 的确认54。从装置23可将主装置21是否起作用的确定基于预定时间76 (图2),所 述预定时间是自从从装置23将通信消息54发送到主装置21以来所流逝的时间,或在其它方面中,从装置23可将所述确定基于主装置21的某个性能测量。
如果主装置不起作用,那么所述方法可进一步包括尝试通过使用用于管理与至少 一个其它从装置的通信的数据库来变成主装置(块302)。举例来说,在一个非限制 性情况下,参照图l、 5及6,从装置23可向主装置表36写入。从装置23可实施迪 科斯彻的算法的某个变化形式以用于实施旗语,或另一选择为,从装置23可使用主装 置表36中的单个行或元组,其中每一从装置23尝试设定具有相同常数值的行用于也 是主装置表36的主关键字的字段,从而准许从装置23中的仅一者在主装置表36中写 入所述行且因此变成新的主装置21 。
任选地,所述方法可进一步包括接收至少一个命令以执行;及将执行所述命令的 结果发送到主装置。参照图1,从装置23可接收命令40以执行且随后执行命令40且 随后将结果发送回主装置21。在某些方面中,从装置23可将执行的结果写入到数据 库30且向主装置21发送所述执行完成的指示。从装置23可使用通信消息54与主装 置21进行通信,在某些方面中可使用TCP/IP发送所述通信消息。
任选地,所述方法可进一步包括从主装置接收消息;及向所述主装置发送确认(块 306)。在一个非限制性情况下,举例来说,从装置23可从主装置21接收请求从装置 23确认来自主装置21的通信消息54的通信消息54。主装置21及从装置23可使用局 域网(LAN)在TCP/IP上进行通信。
参照图9,在操作中,用于主装置处的零点故障负载平衡器系统的方法的一个非 限制性情况包含将不由主装置执行的命令中的每一者指派到多个从装置中的一者(块 400)。举例来说,在一个非限制性情况下,参照图1及3,主装置21可通过通信消 息54将命令40指派到从装置23且向子命令索引表34写入命令40及被指派到命令 40的从装置23两者。
所述方法可进一步包括将命令及对应的指派存储在数据库中,其中每一指派包含 被指派到所述命令的从装置或主装置的识别(块402)。举例来说,在一个非限制性 情况下,参照图1、4及5,可使用数据库30的两个表32及34来维持命令40的状态。
所述方法可进一步包括确定多个从装置中的每一者是否起作用(块404)。举例 来说,在一个非限制性情形下,参照图1及3,主装置21可向从装置23中的每一者 发送通信消息54 (图3的块222)且如果从装置23在预定量的时间内未返回通信消息 54,那么主装置21将假设从装置23不起作用。
如果从装置不起作用,那么所述方法可进一步包括将被指派到从装置的命令中的 每一者指派到多个从装置23中的至少一者(块406)。举例来说,在一个非限制性情 况下,参照图1及3,主装置21可将命令重新指派到其它从装置23 (图3的块226)。 主装置21可审查子命令索引表34且对于被指派到不起作用及/或不可达的从装置23 的每一命令40,主装置21可将命令40重新指派到另一从装置23。
结合本文中所揭示方面说明的各种说明性逻辑、逻辑块、模块及电路可用以下装 置实施或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组
件或其设计用于执行本文中所说明功能的任一组合。通用处理器可以是微处理器,但 另一选择为,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也
可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一 个或一个以上微处理器与DSP核心的联合,或任何其它此类配置。
此外,结合本文中所揭示方面说明的方法或算法的步骤及/或动作可直接体现在硬 件中、体现在由处理器执行的软件模块中或体现在两者的组合中。软件模块可驻存在 RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存 器、硬磁盘、可抽换式磁盘、CD-ROM或所属技术中已知的任何其它形式的存储媒体 中。实例性存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息及向存储媒 体写入信息。另一选择为,存储媒体可整合到处理器中。此外,在某些方面中,处理 器及存储媒体可驻存在ASIC中。另外,ASIC则可驻存在用户终端中。另一选择为, 处理器及存储媒体可作为离散组件驻存在用户终端中。此外,在某些方面中,至少一 个处理器可包含一个或一个以上可操作以致使计算机执行本文中所说明的任何方法或 算法的步骤及/或动作的模块。另外,在某些方面中,方法或算法的步骤及/或动作可作 为代码或指令集中的一者或其任一组合驻存在机器可读媒体及/或计算机可读媒体上, 其可并入到计算机程序产品中。
尽管前述揭示内容论述了说明性方面及/或各方面,但应注意,在不背离所附权利 要求书所界定的所说明方面及/或各方面的范围的前提下,可对本文做出各种改变及修 改。此外,尽管可以单数形式来说明或请求所说明方面及/或各方面的元素,但也涵盖 复数形式,除非明确说明限于单数形式。另外,任一方面及/或方面的全部或一部分可 与任一其它方面及/或方面的全部或一部分一起使用,除非另有说明。
权利要求
1、一种用于负载平衡器的从计算设备的计算机实施的方法,其包含根据可独立地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护算法来确定所述负载平衡器的主装置是否起作用;及如果所述主装置不起作用,那么尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
2、 如权利要求1所述的方法,其中尝试变成所述主装置进一步包括在所述主装 置数据库表的具有主装置代码的一部分中设定所述自己的网络识别,其中所述主装置 代码包含用于所述主装置数据库表的主关键字的预定值。
3、 如权利要求1所述的方法,其中尝试变成所述主装置进一步包含通过使用所 述主装置数据库表的一部分实施旗语来控制对所述主装置网络识别的存取。
4、 如权利要求l所述的方法,其中尝试变成所述主装置进一步包含 基于主装置代码从所述主装置数据库表的一部分中读取所述主装置网络识别;及 尝试删除所述主装置数据库表的包含所述主装置代码及所述主装置网络识别的所述部分。
5、 如权利要求1所述的方法,其进一步包含从所述主装置数据库表的对应于主装置代码的一部分中读取所述主装置网络识别;检査所述主装置网络识别是否对应于所述自己的网络识别;如果所述主装置网络识别不对应于所述自己的网络识别,那么作为从装置进行工 作;及否则如果所述主装置网络识别对应于所述自己的网络识别,那么作为所述主装置 进行工作。
6、 如权利要求l所述的方法,其中确定所述主装置是否起作用,进一步包含 基于所述主装置网络识别向所述主装置发送通信;及如果在预定时间内未从所述主装置接收到确认,那么尝试变成所述主装置。
7、 如权利要求1所述的方法,其中确定所述主装置是否起作用进一步包含在局 域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述主装置发送通信消息。
8、 如权利要求1所述的方法,其进一步包含 从所述主装置接收通信消息;及 向所述主装置发送确认。
9、 如权利要求1所述的方法,其进一步包含 从所述主装置接收至少一个命令以执行;及 将执行所述命令的结果发送到所述主装置。
10、 如权利要求9所述的方法,其进一步包含执行所述命令,其中执行所述命令 包含处理对应于在无线网络上操作的至少一个无线装置的性能统计数据。
11、 如权利要求l所述的方法,其进一步包含-获得主装置性能要求;及 获得所述从装置的实际性能测量;及仅在所述实际性能测量满足所述主装置性能要求的情况下允许所述从装置变成 所述主装置。
12、 至少一种经配置以充当负载平衡器的从装置的处理器,其包含 第一模块,其用于根据可独立地由所述负载平衡器中的多个从装置中的每一者操作的共用预定健康维护算法来确定所述负载平衡器的主装置是否起作用;及第二模块,其用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载 平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成所述主装 置,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数据库表中设定 对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述 主装置网络识别设定为自己的网络识别。
13、 一种用于负载平衡器的从装置的计算机程序产品,其包含 计算机可读媒体,其包含-第一代码集,其用于致使计算机根据可独立地由所述负载平衡器中的多个从 装置中的每一者操作的共用预定健康维护算法来确定所述负载平衡器的主装置是 否起作用;及第二代码集,其用于致使所述计算机在所述主装置不起作用的情况下尝试根 据可独立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少一个其它从 装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之 前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
14、 一种负载平衡器的从设备,其包含-确定装置,其用于根据可独立地由所述负载平衡器中的多个从装置中的每一者操 作的共用预定健康维护算法来确定所述负载平衡器的主装置是否起作用;及尝试装置,其用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载 平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成所述主装 置,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述 主装置网络识别设定为自己的网络识别。
15、 一种负载平衡器的从设备,其包含健康管理服务,其可操作以根据可独立地由所述负载平衡器中的多个从装置中的 每一者操作的共用预定健康维护算法确定主装置是否起作用且进一步可操作以在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中 的每一者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为 主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网 络识别;及数据库服务,其与所述健康管理服务进行通信且可操作以响应于所述健康管理服 务向所述主装置数据库表读取及写入。
16、 如权利要求15所述的从设备,其中响应于所述健康管理服务,所述数据库 服务进一步可操作以在所述主装置数据库表的具有主装置代码的一部分中设定所述自 己的网络识别,其中所述主装置代码包含用于所述主装置数据库表的主关键字的预定 值。
17、 如权利要求15所述的从设备,其中响应于所述健康管理服务,所述数据库 服务进一步可操作以通过使用所述主装置数据库表的一部分实施旗语来控制对所述主 装置网络识别的存取。
18、 如权利要求15所述的从设备,其中响应于所述健康管理服务,所述数据库 服务进一步可操作以基于主装置代码从所述主装置数据库表的一部分中读取所述主装置网络识别;及尝试删除所述主装置数据库表的包含所述主装置代码及所述主装置网络识别的 所述部分。
19、 如权利要求15所述的从设备,其中所述健康管理服务或所述数据库服务中 的至少一者进一步可操作以从所述主装置数据库表的对应于主装置代码的一部分中读取所述主装置网络识别;检查所述主装置网络识别是否对应于所述自己的网络识别;如果所述主装置网络识别不对应于所述自己的网络识别,那么致使所述从设备作 为从装置进行工作;及否则如果所述主装置网络识别对应于所述自己的网络识别,那么致使所述从设备 作为所述主装置进行工作。
20、 如权利要求15所述的从设备,其中所述健康管理服务进一步可操作以-基于所述主装置网络识别向所述主装置发送通信;及如果在预定时间内未从所述主装置接收到确认,那么尝试变成所述主装置。
21、 如权利要求15所述的从设备,其中所述健康管理服务进一步可操作以在局 域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述主装置发送通信消息。
22、 如权利要求1所述的从设备,其进一步包含 从所述主装置接收通信消息;及 向所述主装置发送确认。
23、 如权利要求15所述的从设备,其进一步包含用户命令执行器,其可操作以在通信网络上从所述主装置接收命令,执行所述命 令,且在所述通信网络上将执行所述命令的结果发送到所述主装置。 .
24、 如权利要求15所述的从设备,其中所述用户命令执行器进一步可操作以处 理对应于在无线网络上操作的至少一个无线装置的性能统计数据。
25、 如权利要求15所述的从设备,其进一步包含具有主装置性能要求及所述从 装置的实际性能测量的存储器,其中所述健康维护服务进一步可操作以允许所述从装 置在所述实际性能测量满足所述主装置性能要求的情况下变成所述主装置。
26、 一种用于负载平衡器的主计算设备的计算机实施的方法,其包含执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独 立地由所述负载平衡器中的多个从装置中的每一者操作且包括在至少一个其它从装置 在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述 主装置数据库表中的所述主装置网络识别设定为自己的网络识别;执行共用预定健康维护算法以确定所述多个从装置中的每一者的健康,其中所述 共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每一者操 作;将一组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的 所述执行确定为起作用的至少一个从装置;将所述命令及对应的指派存储在数据库表中,其中每一指派包含所述多个从装置 中被指派到所述相应命令的一个从装置的网络识别;针对所述组命令中的每一者检查所述数据库表中的命令状态,其中所述命令状态 指示所述相应命令是否已被执行;及当基于所述命令状态确定所有所述命令被执行时执行回调函数。
27、 如权利要求26所述的方法,其中执行所述回调函数进一步包含对通过执行 所述组命令中的每一者产生的至少一个结果执行命令脚本。
28、 如权利要求26所述的方法,其中执行所述共用预定健康维护算法进一步包含确定所述多个从装置中的每一者是否起作用;及如果所述多个从装置中的相应一者不起作用,那么将被指派到所述不起作用的相 应从装置的每一相应命令重新指派到所述多个从装置中起作用的至少一个从装置,其 中执行所述回调函数是基于所述重新指派。
29、 如权利要求28所述的方法,其中确定所述从装置中的每一者是否起作用, 进一步包含-向所述多个从装置中的每一者发送通信消息;及如果在预定时间内未从所述多个从装置中的每一者接收到确认,那么将所述从装 置设定为不起作用。
30、 如权利要求29所述的方法,其中发送进一步包含在局域网(LAN)上使用 传送控制协议/因特网协议(TCP/IP)向所述多个从装置中的每一者发送通信消息。
31、 如权利要求26所述的方法,其中指派进一步包含基于已经被指派到所述多 个从装置中的每一者的命令的数目进行指派。
32、 如权利要求26所述的方法,其中指派进一步包含基于所述多个从装置中的每一者的利用率进行指派。
33、 如权利要求26所述的方法,其进一步包含通过使用从所述多个从装置中的 每一者接收的通信消息来构建从装置识别表,其中所述从装置识别表包括每一从装置 的网络识别。
34、 如权利要求26所述的方法,其进一步包含在变成所述主装置之前执行所述 共用预定健康维护算法以确定现有主装置的健康,且其中基于确定所述现有主装 置不 起作用而触发所述共用预定角色转换算法的所述执行以变成所述主装置。
35、 如权利要求34所述的方法,其中变成所述主装置进一步包含 确定实际性能测量;确定主装置性能要求;及如果所述实际性能测量满足所述主装置性能要求,那么充当所述主装置。
36、 至少一个经配置以充当负载平衡器的主装置的处理器,其包含第一模块,其用于执行共用预定角色转换算法以变成主装置,其中所述共用预定 角色转换算法可独立地由所述负载平衡器中的多个从装置中的每一者操作且包括在至 少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别;第二模块,其用于执行共用预定健康维护算法以确定所述多个从装置中的每一者 的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每一者操作;第三模块,其用于将一组命令中的每一者指派到所述多个从装置中基于所述预定 健康维护算法的所述执行确定为起作用的至少一个从装置;第四模块,其用于将所述命令及对应的指派存储在数据库表中,其中每一指派包 含所述多个从装置中被指派到所述相应命令的一个从装置的网络识别;第五模块,其用于针对所述组命令中的每一者检查所述数据库表中的命令状态, 其中所述命令状态指示所述相应命令是否已被执行;及第六模块,其用于在基于所述命令状态确定所有所述命令被执行时执行回调函数。
37、 一种计算机程序产品,其包含.-计算机可读媒体,其包含第一代码集,其致使计算机执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每一 者操作且包括在至少一个其它从装置在主装置数据库表中设定对应的其它从装置 网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识 别设定为自己的网络识别;第二代码集,其致使所述计算机执行共用预定健康维护算法以确定所述多个 从装置中的每一者的健康,其中所述共用预定健康维护算法可独立地由所述负载 平衡器中的所述多个从装置中的每一者操作;第三代码集,其致使所述计算机将一组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的所述执行确定为起作用的至少一个从装置;第四代码集,其致使所述计算机将所述命令及对应的指派存储在数据库表中, 其中每一指派包含所述多个从装置中被指派到所述相应命令的一个从装置的网络 识别;第五代码集,其致使所述计算机针对所述组命令中的每一者检查所述数据库 表中的命令状态,其中所述命令状态指示所述相应命令是否已被执行;及第六代码集,其致使所述计算机在基于所述命令状态确定所有所述命令被执行时执行回调函数。
38、 一种负载平衡器的主设备,其包含执行装置,其用于执行共用预定角色转换算法以变成主装置,其中所述共用预定 角色转换算法可独立地由所述负载平衡器中的多个从装置中的每一者操作且包括在至 少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网 络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别;执行装置,其用于执行共用预定健康维护算法以确定所述多个从装置中的每一者 的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从 装置中的每一者操作;指派装置,其用于将一组命令中的每一者指派到所述多个从装置中基于所述预定 健康维护算法的所述执行确定为起作用的至少一个从装置;存储装置,其用于将所述命令及对应的指派存储在数据库表中,其中每一指派包 含所述多个从装置中被指派到所述相应命令的一个从装置的网络识别;检查装置,其用于针对所述组命令中的每一者检查所述数据库表中的命令状态, 其中所述命令状态指示所述相应命令是否已被执行;及执行装置,其用于在基于所述命令状态确定所有所述命令被执行时执行回调函数。
39、 一种负载平衡器的主设备,其包含健康维护服务,其可操作以执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每一者操作且 包括在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为 主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网 络识别;其中所述健康维护服务进一步可操作以执行共用预定健康维护算法以确定所述 多个从装置中的每一者的健康,其中所述共用预定健康维护算法可独立地由所述负载 平衡器中的所述多个从装置中的每一者操作;分配服务,其可操作以将一组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的所述执行确定为起作用的至少一个从装置;数据库服务,其与所述分配服务进行通信且可操作以将所述命令及对应的指派存 储在数据库表中,其中每一指派包含所述多个从装置中被指派到所述相应命令的一个 从装置的网络识别;其中所述分配服务进一步可操作以针对所述组命令中的每一者检査所述数据库 表中的命令状态,其中所述命令状态指示所述相应命令是否己被执行;及用户命令执行器,其可操作以在基于所述命令状态确定所有所述命令被执行时执 行回调函数。
40、 如权利要求39所述的主设备,其中所述回调函数包含可对通过执行所述组 命令中的每一者产生的至少一个结果执行的命令脚本。
41、 如权利要求39所述的主设备,其进一步包含与所述分配服务进行通信的健 康维护服务,其中所述健康维护服务可操作以确定所述多个从装置中的每一者是否起作用;及如果所述多个从装置中的相应一者不起作用,那么将被指派到所述不起作用的相 应从装置的每一相应命令重新指派到所述多个从装置中起作用的至少一个从装置,其 中所述回调函数的执行是基于所述重新指派。
42、 如权利要求41所述的主设备,其中所述健康管理服务进一步可操作以-向所述多个从装置中的每一者发送通信消息;及如果在预定时间内未从所述多个从装置中的每一者接收到确认,那么将所述从装 置设定为不起作用。
43、 如权利要求42所述的主设备,其中所述健康维护服务进一步可操作以在局 域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述多个从装置中的每一 者发送通信消息。
44、 如权利要求39所述的主设备,其中所述分配服务进一步可操作以基于己经被指派到所述多个从装置中的每一者的命令的数目进行指派。
45、 如权利要求39所述的主装置,其中所述分配服务进一步可操作以基于所述 多个从装置中的每一者的利用率进行指派。
46、 如权利要求39所述的主设备,其中所述数据库服务进一步可操作以通过使 用从所述多个从装置中的每一者接收的通信消息来构建从装置识别表,其中所述从装 置识别表包括每一从装置的网络识别。
47、 如权利要求39所述的主设备,其中在变成所述主装置之前,所述健康维护 服务进一步可操作以执行所述共用预定健康维护算法以确定现有主装置的健康,且其 中所述健康维护服务经触发以执行所述共用预定角色转换算法以基于确定所述现有主 装置不起作用而变成所述主装置。
48、 如权利要求47所述的主设备,其进一步包含具有实际性能测量及主装置性 能要求的存储器,其中所述健康维护服务进一步可操作以使所述主设备能够在所述实 际性能测量满足所述主装置性能要求的情况下充当所述主装置。
全文摘要
本发明涉及负载平衡器计算设备中的设备及方法,在若干方面中,其包括确定主装置是否起作用,且如果所述主装置不起作用,那么尝试通过在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别而变成所述主装置。在其它方面中,所述设备及方法包括将一组命令中的每一者指派到多个从装置中的一者;将所述命令及对应的指派存储在数据库表中;针对所述组命令中的每一者检查所述数据库表中的命令状态,其中所述命令状态指示相应的命令是否已被执行;及在所有所述命令被执行时执行回调函数。
文档编号G06F11/20GK101542445SQ200780044267
公开日2009年9月23日 申请日期2007年10月16日 优先权日2006年12月5日
发明者肯尼·福克, 艾力克·志忠·叶 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1