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

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

Info

Publication number
CN101542445B
CN101542445B CN2007800442679A CN200780044267A CN101542445B CN 101542445 B CN101542445 B CN 101542445B CN 2007800442679 A CN2007800442679 A CN 2007800442679A CN 200780044267 A CN200780044267 A CN 200780044267A CN 101542445 B CN101542445 B CN 101542445B
Authority
CN
China
Prior art keywords
main
database
load balancer
network identification
health
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.)
Expired - Fee Related
Application number
CN2007800442679A
Other languages
English (en)
Other versions
CN101542445A (zh
Inventor
肯尼·福克
艾力克·志忠·叶
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Priority to US86868906P priority Critical
Priority to US60/868,689 priority
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to PCT/US2007/081555 priority patent/WO2008127372A2/en
Publication of CN101542445A publication Critical patent/CN101542445A/zh
Application granted granted Critical
Publication of CN101542445B publication Critical patent/CN101542445B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2861Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for providing operational support to end devices by emulation, e.g. when they are unavailable, or by off-loading in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance or administration or management of packet switching networks
    • H04L41/06Arrangements for maintenance or administration or management of packet switching networks involving management of faults or events or alarms
    • H04L41/0654Network fault recovery
    • H04L41/0668Network fault recovery selecting new candidate element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/40Techniques for recovering from a failure of a protocol instance or entity, e.g. failover routines, service redundancy protocols, protocol state redundancy or protocol service redirection in case of a failure or disaster recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques

Abstract

本发明涉及负载平衡器计算设备中的设备及方法,在若干方面中,其包括确定主装置是否起作用,且如果所述主装置不起作用,那么尝试通过在至少一个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别而变成所述主装置。在其它方面中,所述设备及方法包括:将一组命令中的每一者指派到多个从装置中的一者;将所述命令及对应的指派存储在数据库表中;针对所述组命令中的每一者检查所述数据库表中的命令状态,其中所述命令状态指示相应的命令是否已被执行;及在所有所述命令被执行时执行回调函数。

Description

零单点故障负载平衡器的设备及方法
[0001] 35U. S. C. § 119下的优先权请求
[0002] 本专利申请案请求对2006年12月5日提出申请的标题为“用于支持零单点故障负载平衡器的方法及设备(METHOD AND APPARATUS FOR SUPPORTING ZEROS INGLE POINT OFFAILURE LOAD BALANCER) ”的第60/868,689号临时申请案的优先权,且所述临时申请案受让予本申请案的受让人,且因此以引用方式明确并入本文中。
技术领域
[0003] 所说明的方面涉及分布式处理系统,且更特定来说涉及零单点故障负载平衡器的设备及方法。
背景技术
[0004] 在计算机处理中,ー组命令经常可被划分为个别命令。可并行执行所述命令,且随后可组合結果。另外,由于单个计算设备具有有限的处理能力,因此可使用多个计算设备来执行所述命令。然而,使用多于单个计算装置可在所述计算装置之间分配及组合命令时产生问题。当使用多个计算装置时,可将所述群组计算设备称为处理农场。
[0005] 向多个设备分配命令的某些方法使用主装置来向若干从装置分配命令且组合执行所述命令的結果。在这些方法中,主装置向从装置分配命令;从装置执行所述命令;且主装置随后组合已执行命令的結果。所述从装置及主装置中的每ー者可以是单独的计算装置。用于在计算装置之间划分命令的方法或设备经常被称为负载平衡器,其可被执行及/或其可驻存在主计算装置上。
[0006] 此分配过程的方法的一个问题是如果主装置失灵,那么可能工作丢失且可能难以替代主装置,因为主装置可能需要专业化的硬件及/或软件。因此,经常将更可靠且更昂贵的计算设备用作主装置。可能也难以在不丢失所有计算设备的使用的情况下升级主装置。
[0007] 另ー问题是可能难以动态地向系统添加从装置使得主装置可在不必重设所述系统的情况下使用所述从装置。举例来说,可能难以在软件命令已被划分之后添加从装置。
[0008] 另ー问题是可能难以在从装置失灵且丢失执行命令的结果时恢复。
[0009] 且使用主装置及多个从装置的又一问题是用于选择新主装置的过程可能较复杂。举例来说,如果主装置发生故障或另外不运转,那么必须建立程序以指定能够在先前主装置停止的地方接班的新主装置。此类程序经常较麻烦。
[0010] 因此,需要改善负载平衡器系统。
发明内容
[0011] 下文提供对ー个或ー个以上方面的简化概述,以提供对此类方面的基本了解。此概述并非是对所有涵盖方面的广泛概论,且既不打算识别所有方面的关键或紧要元件也不打算刻化任何或所有方面的范围。其唯一的目的是以简化形式提供ー个或ー个以上方面的某些概念来作为下文所提供的更详细说明的前序。[0012] 11在一方面中,负载平衡器的从计算设备的计算机实施的方法包含:根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定所述负载平衡器的主装置是否起作用。如果所述主装置不起作用,那么所述方法包括尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
[0013] 12在另一方面中,经配置以充当负载平衡器的从装置的至少ー个处理器包含:用于根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定所述负载平衡器的主装置是否起作用的第一模块。此外,所述至少ー个处理器还 包括用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成主装置的第二模块,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
[0014] 13在再一方面中,用于负载平衡器的从装置的计算机程序产品包含具有用于致使计算机执行动作的代码的计算机可读媒体。所述计算机可读媒体包括用于致使计算机根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定所述负载平衡器的主装置是否起作用的第一代码集。此外,所述计算机可读媒体包括用于致使所述计算机在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成主装置的第二代码集,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
[0015] 14在其它方面中,负载平衡器的从设备包含:确定装置,其用于根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定所述负载平衡器的主装置是否起作用;及尝试装置,其用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
[0016] 15在另一方面中,负载平衡器的从设备包含:健康管理服务,其可操作以根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定主装置是否起作用且进一歩可操作以在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。另外,所述从设备包含与所述健康管理服务进行通信且可操作以响应于所述健康管理服务向主装置数据库表读取及写入的数据库服务。[0017] 16在再一方面中,用于负载平衡器的主计算设备的计算机实施的方法包含执行共用预定角色转换算法以变成主装置。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述方法包括执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康。所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作。此外,所述方法包括将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少ー个从装置。所述方法进ー步包括将所述命令及对应的指派存储在数据库表中,其中每一指派包含所述多个从装置中被指派到相应的命令的一者的网络识别。此外,所述方法包括针对所述组命令中的姆ー者检查所述数据库表中的命令状态,其中所述命令状态指示相应的命令是否已被执行。另外,所述方法包括在基于所述命令状态确定所有所述命令被执行时执行回调函数。
[0018] 17在其它方面中,经配置以充当负载平衡器的主设备的至少ー个处理器包含用于执行共用预定角色转换算法以变成主装置的第一模块。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主 装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述至少一个处理器包括用于执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康的第二模块。所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作。此外,所述至少一个处理器包括用于将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少ー个从装置的第三模块。此外,所述至少一个处理器包括用于将所述命令及对应的指派存储在数据库表中的第四模块,其中每一指派包含所述多个从装置中被指派到相应的命令的一者的网络识别。所述至少ー个处理器进ー步包括:用于针对所述组命令中的每ー者检查所述数据库表中的命令状态的第五模块,其中所述命令状态指示相应的命令是否已被执行;及用于在基于所述命令状态确定所有所述命令被执行时执行回调函数的第六模块。
[0019] 18在另一方面中,计算机程序产品包含具有用于执行动作的代码的计算机可读媒体。所述计算机可读媒体包括致使计算机执行共用预定角色转换算法以变成主装置的第一代码集。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述计算机可读媒体包括致使所述计算机执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康的第二代码集。所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作。此外,所述计算机可读媒体包括致使所述计算机将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少ー个从装置的第三代码集。此外,所述计算机可读媒体包括致使所述计算机将所述命令及对应的指派存储在数据库表中的第四代码集,其中每一指派包含所述多个从装置中被指派到相应的命令的一者的网络识别。所述计算机可读媒体还包括致使所述计算机针对所述组命令中的姆ー者检查所述数据库表中的命令状态的第五代码集,其中所述命令状态指示相应的命令是否已被执行。另外,所述计算机可读媒体包括致使所述计算机在基于所述命令状态确定所有所述命令被执行时执行回调函数的第六代码集。
[0020] 19在其它方面中,负载平衡器的主设备包含用于执行共用预定角色转换算法以变成主装置的装置。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述主设备包括用于执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康的装置。所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作。此外,所述主设备包括用于将ー组命令中的每一者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少ー个从装置的装置。另外,所述主设备包括用于将所述命令及对应的指派存储在数据库表中的装置,其中每一指派包含所述多个从装置中被指派到相应的命令的一者的网络识别。此夕卜,所述主设备包含用于针对所述组命令中的每ー者检查所述数据库表中的命令状态的装 置,其中所述命令状态指示相应的命令是否已被执行。另外,所述主设备包含用于在基于所述命令状态确定所有所述命令被执行时执行回调函数的装置。
[0021] 20在再一方面中,负载平衡器的主设备包含可操作以执行共用预定角色转换算法以变成主装置的健康维护服务。所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。此外,所述健康维护服务进一歩可操作以执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作。所述主设备还包括可操作以将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的执行确定为起作用的至少ー个从装置的分配服务。此外,所述主设备包含与所述分配服务进行通信且可操作以将所述命令及对应的指派存储在数据库表中的数据库服务,其中每一指派包含所述多个从装置中被指派到相应的命令的ー个从装置的网络识别。此外,所述分配服务进一歩可操作以针对所述组命令中的每ー者检查所述数据库表中的命令状态,其中所述命令状态指示相应的命令是否已被执行。另外,所述主设备包含可操作以在基于所述命令状态确定所有所述命令被执行时执行回调函数的用户命令执行器。
[0022] 21为实现上述及相关目的,所述ー个或ー个以上方面包含若干在下文中全面说明并在权利要求书中特别指出的特征。以下说明及附图详细阐述所述ー个或ー个以上方面的某些说明性特征。然而,这些特征仅表示其中可采用各种方面的原理的各种方式中的几种,且此说明打算包括所有此类方面及其等效物。
附图说明
[0023] 图I是零单点故障负载平衡器系统的ー个方面的示意图;
[0024] 图2是图I的系统的通信装置的组件的ー个方面的示意图;[0025] 图3是图I的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意图;
[0026] 图4是图I的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意图;
[0027] 图5是图I的零单点故障负载平衡器系统的数据库表的成分的一个方面的示意图;
[0028] 图6是图I的系统的计算装置的组件的一个方面的示意图;
[0029] 图7是图I的系统的负载平衡器的额外组件的一个方面的示意图;
[0030] 图8是用于图I的零单点故障负载平衡器系统的健康维护的方法的一个方面的流程图; [0031] 图9是用于零单点故障负载平衡器系统的从装置的方法的一个方面的流程图;及
[0032] 图10是用于零单点故障负载平衡器系统的主装置的方法的一个方面的流程图。
具体实施方式
[0033] 本文中所说明的设备及方法提供将一组命令划分为个别命令且将所述命令分配到多个计算装置,且随后组合已执行命令的结果。包含所述计算装置的系统可称为处理农场。在某些方面中,所述计算装置中的每一者使用相同的方法。所述方法可以所述计算装置中的每一者尝试变成主装置开始。所述计算装置中的一者成功且变成主装置且剩余计算装置中的每一者变成从装置。有利地,可由每一计算装置独立地实施所述方法,而不需要单独的控制器来识别所述主装置。命令被提交到主装置以供执行。所述主装置将所述多个命令划分为个别命令。举例来说,可在(例如)一脚本中一同接收所述多个命令且所述主计算装置上的负载平衡器组件将所述脚本分裂为针对所述脚本的每一线的一个命令,且将所述命令分配到从装置。在某些方面中,从装置从主装置取所分配的命令且执行相应的命令,从而向所述主装置返回相应的结果。主装置追踪所分配的命令,且将在所有相关所分配命令的结果可用时编译并返回结果。
[0034] 另外,主装置可规则地进行检查以确保从装置中的每一者起作用。如果从装置不起作用,那么将被指派到所述不起作用的从装置的所分配命令重新指派到另一从装置及/或主装置可执行相应的所分配命令。
[0035] 此外,所述从装置中的至少一者可规则地进行检查以确保主装置仍起作用。如果从装置确定主装置不起作用,那么所述从装置将尝试根据可独立执行的方法变成主装置。在某些方面中,从装置中的每一者可尝试变成主装置直到所述从装置中的一者成功且变成新的主装置。未变成主装置的从装置将继续作为从装置进行工作。所述从装置可使用数据库来确定哪个从装置变成主装置。在某些方面中,可使用主装置代码(例如,常数值)作为数据库中主装置数据库表中的主关键字,使得仅一个从装置可变成主装置。
[0036] 另外,在某些方面中,主装置可使用数据库来维持指派记录及每一所分配命令的状态。
[0037] 因此,用于零点故障平衡器的系统通过以下各项中的一者或一者以上实现:从装置中的每一者规则地检查主装置的状态;如果所述主装置不起作用,那么由所述从装置中的至少一者尝试变成主装置;由所述从装置使用数据库来确定哪个从装置变成新的主装置;由所述计算装置规则地检查所述从装置中的每一者的状态;或由所述主装置使用数据库来维持所述任务。另外,通过计算装置中的每一者使用相同的方法,仅需要开发及维持一种方法。
[0038] 参照图I,零点故障负载平衡器系统20的方面包含计算装置22、24、26及通信装置28。在图I中,计算装置22中的一者是主装置21且其它计算装置22中的至少一者是从装置23。计算装置22中的每一者可正运行用于提供零点故障负载平衡器系统20的方法。所述方法针对每一计算装置22提供至少两个角色,一个角色是作为从装置23进行工作且另一角色是作为主装置21进行工作。
[0039] 在系统20中,计算装置22中的所指定主装置21 (例如)经由通信网络44从计算装置24的队列输入模块38接收一个或一个以上命令40。举例来说,每一命令40可涉及从一个或一个以上通信装置28收集且存储在数据库30中的与通信装置相关的数据29的处理。举例来说,与通信装置相关的数据29可包括关于对应的一个或一个以上无线通信网络 上的一个或一个以上通信装置的一个或一个以上操作的信息、一个或一个以上通信装置组件(例如,硬件及/或软件)的状态或两者的某一组合及/或某一相关性。因此,命令40可涉及确定与一个或一个以上通信装置28相关联、与通信装置28在其上操作的无线网络相关联或与两者的某一组合相关联的统计数据及/或其它特性。
[0040] 在任一情况下,为增加处理一个或一个以上命令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变成主装置的情况下执行主装置负载平衡功能。
[0041] 此外,主装置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介接。
[0042] 另外,在零点故障方面中,主装置21包括可操作以规则地尝试在通信网络44上与从装置23中的每一者联系的健康管理服务50。如果从装置23不可达,那么主装置21假设相应的从装置23不起作用且行动以重新分配被指派到所述相应从装置23的任何命令40以供处理。举例来说,主装置21的分配服务模块48可更新子命令索引表34且将来自每一不可达从装置23的命令重新分配到可达的另一从装置23。
[0043] 相对地,每一从装置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来识别彼此。 [0044] 因此,系统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的确定的零点故障系统。
[0045] 参照图I及2,通信装置28可包含可操作以与通信网络44交换消息的任何类型的装置。举例来说,通信装置28可包含移动通信装置,例如无线及/或蜂窝式电话。应了解,通信装置28不限于所图解说明的装置,但可进一步包括个人数字助理(PDA)、双向文本传呼机、具有有线或无线通信入口的便携式计算机及具有有线及/或无线通信入口的任何类型的计算机平台。此外,通信装置28可以是远程从装置或其它类似装置,例如远程感测器、远程服务器、诊断工具、数据中继器及类似装置,其不具有其端用户,但其经由无线或有线网络简单地传递数据。另外,应注意,任何数目的通信装置28的任一组合可用于系统20中。此外,应注意,尽管已在通信装置28与计算装置22、24及26之间做了区分,但某些装置可充当通信装置28及计算装置22、24及26两者。
[0046] 特定来说,系统20操作以从一个或一个以上通信装置28收集数据,且随后使用主计算装置21及从计算装置23处理并分析所收集的数据。具体来说,计算装置24 (例如,远程计算机)的用户将一个或一个以上命令40键入到队列输入模块38中,所述队列输入模块将命令40转发到主计算装置21。所述一个或一个以上命令40通常涉及将要收集的数据的识别及/或将对所收集的数据执行的分析的识别。主计算装置21随后执行负载平衡器模块42以处理所述一个或一个以上命令40并将结果返回到计算装置24。
[0047] 因此,通信装置28包括具有存储器31的计算机平台29,所述存储器存储用于收集关于通信装置、通信网络或其某一组合的所请求数据的至少一个数据收集模块33。数据收集模块33可包括硬件、软件及固件的任一组合,且可操作以动态地经配置以收集任何所需数据。计算机平台29进一步包括用于执行数据收集模块33的处理器35。此外,计算机平台29可包括应用编程接口(API) 37以实现数据收集模块33与处理器35之间的通信。
[0048] API 37可以是在相应的通信装置上执行的运行时间环境。一个此种运行时间环境是由加利福尼亚州圣地亚哥的高通(Qualcomm)公司开发的用于Wireless®(BREW®)软件的二进制运行时间环境。可使用其它(例如)操作以控制无线计算装置上的应用程序的执行的运行时间环境。在其它方面中,API 37可以是操作系统,例如微软WINDOWS、LINUS及MAC OS。所述操作系统可提供多个进程及/或允许执行多个进程的执行线程。
[0049] 另外,在某些方面中,处理器35可包括体现在硬件、固件、软件及其组合中的各种处理子系统,其实现通信装置28的功能性及通信装置28在通信网络44(图I)上的操作性。举例来说,处理子系统允许起始并维持通信,及与其它联网装置交换数据以及在通信装置28的组件内及/或之间交换数据。在一个方面中,例如在蜂窝式电话中,处理器35可 包括例如以下等处理子系统中的一者或其组合:声音、非易失性存储器、文件系统、传输、接收、搜索器、层I、层2、层3、主控制、远程程序、手机、电力管理、诊断、数字信号处理器、声码器、消息收发、呼叫管理器、Bluetooth®系统、Bluetooth® LPOS、位置确定、位置引擎、用户接口、睡眠、数据服务、安全、验证、USM/SM(通用订户身份模块/订户身份模块)、语音服务、图形、USB(通用串行总线)、多媒体(例如,MPEG(移动图片专家组)协议多媒体、GPRS(通用包无线电服务))、短消息服务(SMS)、短语音服务(SVS™)、网络浏览器等。在某些方面中,数据收集模块33从一个或一个以上处理子系统收集数据,其中所述数据可包含日志代码、空中激活事件(例如,对应于由通信装置28使用的通信协议的数据包)、描述通信28的一个或一个以上硬件及/或软件组件的数据(例如,当前状态、使用量等)或其任一组合。
[0050] 计算装置26操作数据库30,数据库30执行负载平衡的部分及本文中所论述的数据处理方面,且其另外可存储从一个或一个以上通信装置28收集的数据。
[0051 ] 数据库30可以是结构化数据收集。在一个方面中,数据库30可由数据库管理系统(DBMS)实现,例如在计算装置26上运行的ORACLE、MYSQL或微软ACCESS。数据库30包括内装冗余系统,例如群集器及冗余数据库,其提供高可靠性并减小发生故障的可能性。DBMS实现写入及读取数据库30的行(有时称作元组)及数据库表(例如,表32、34及36)的创建及删除。尽管图I图解说明数据库30由单个计算装置26实施,但数据库30可由具有多冗余的许多计算装置实施。此外,数据库30可实施在一个以上存储机构中。
[0052] 数据库30可由表组成,例如在图3-5中。表包含其中列是数据的名称的数据行且数据的值包含表的行。数据库30的表可具有主关键字。当数据库30具有主关键字时,那么具有特定值的仅单个行可以是表的成员。一般来说,DBMS使得计算装置22、24、26能够从数据库30中的表中写入及读取行。一般来说,行的值可以是可向计算机存储器读取及写入的任何类型的数据,包括由主装置21向从装置23发送的命令40。
[0053] 参照图I、3及4,在一方面中,可使用数据库30的两个表32及34来维持一个或一个以上命令40的状态。可使用命令索引表32来追踪每一命令40及其经分配以进行处理的对应子命令,而子命令索引表34可用于追踪每一子命令的状态及其与命令40的关系。
[0054] 在一个方面中,命令索引表32包括以下字段:命令设定识别符(CMD SET ID) 266,其可以是命令索引表32的主关键字,且包含相应命令40的唯一识别符;命令的数目268,其可以是经分配以处理对应命令40的子命令的总数目;及回调函数270,其可包含将要在命令40群组被成功执行时调用的机构,例如脚本。举例来说,回调函数270可包含:用以将命令40群组的结果汇集到单个结果中的操作;用以处理命令40群组的结果中的至少一者以产生命令40群组的新结果的操作或功能等。此外,举例来说,用户命令执行器46或负载平衡器42的某部分(例如,分配服务48)可执行或起始回调函数270。
[0055] 可使用子命令索引表34来存储实际的子命令且维持子命令的状态。子命令索引表34可包含以下字段:子命令识别符(SUB-CMD ID) 250,其可以是子命令索引表34的每一行的主关键字,且包括可针对由负载平衡器42分配的每一子命令产生的唯一识别符;命令(CMD) 252可以是供所指派计算装置的相应用户命令执行器46处理的对应于命令40的 一个单个子命令;回调函数254,其包含将要在命令群组被成功执行时调用的机构,例如脚本;回调函数状态256,其是回调函数的状态,举例来说,在一个非限制性情况下,已提交=0,执行中=1,已执行=2 ;命令(CMD)状态258,其包含对应于子命令的状态的值,例如,已提交=0,执行中=I且已执行=2 ;开始时间260,其包含相应的子命令出于执行的目的而被发送到相应的用户命令执行器46的时间;命令(CMD)设定ID 266,其是与向后参考相应的命令40的每一子命令群组相关联的识别符,其中CMD设定ID 266对应于如在命令索引表32中建立的相应命令40的值,且在某些方面中,CMD设定ID 266可用作回调函数id ;及地址264,其可以是相应子命令40被指派到其以供执行的计算装置22的识别符,例如,因特网协议(IP)地址或网络ID 56。
[0056] 因此,命令索引表32及子命令表34允许管理并追踪每一命令40的所分配处理,且进一步提供允许转换为主装置21的角色的任何装置确定系统20的当前状态的机制。
[0057] 此外,参照图I及5,在一方面中,主装置表36可用于维持主装置21的身份且用于管理哪个计算装置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的方面。
[0058] 往回参照图I,如上所述,计算装置24包括操作以允许用户向系统20发出命令40以收集数据及/或分析所收集数据的队列输入模块30。特定来说,队列输入模块38可包含可操作以向计算装置24提供将命令40输入到主装置21的负载平衡器42的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某些方面中,队列输入模块38可基于文本且允许用户输入文本命令40,例如命令脚本,其随后被发送到主装置21的负载平衡器42。因此,队列输入模块38通过准许命令40被接收且被发送到主装置21的负载平衡器42而使得命令40能够被输入到系统20。
[0059] 另外,参照图1,计算装置22、24及26可包含任何类型的计算装置。举例来说,如图I中所图解说明,计算装置22、24及26可包含固定的计算装置,例如网络装置、服务器、计算机工作站等。应了解,计算装置22、24及26并不限于所图解说明的装置,但可进一步包括具有有线或无线通信入口的便携式计算机及具有有线及/或无线通信入口的任何类型的计算装置。另外,尽管以类似方式图解说明计算装置22,但应注意计算装置22中的每一者可以是不同类型的计算装置。此外,计算装置22、24及26可以是远程从装置或其它类似计算装置,例如远程服务器,其不具有其端用户,但其经由无线或有线网络44简单地传递数据。在替代方面中,计算装置22、24及26中的每一者可以是多处理器系统。另外,应注意,任何数目的计算装置22、24及26的任一组合可用于系统20中。因此,可相应地在连接到有线或无线通信网络44的任何形式的计算装置上执行本设备及方法。
[0060] 另外,参照图6 (为简明起见,其参考计算装置22),计算装置22、24、26可包括与计算机平台62进行通信的用户接口 57,所述计算机平台包括具有可由处理器66执行的指令的存储器64且进一步包括实现相应计算装置内的通信及去往或来自所述相应计算装置的通信的通信模块74。
[0061] 用户接口 57包括可操作以产生或接收到装置22中的输入的输入机构58及可操作以产生及/或呈现供装置22的用户消耗的信息的输出机构60。举例来说,输入机构58可包括至少一个机构,例如小键盘及/或键盘、鼠标、触摸屏显示器、与语音辨识模块相关联的麦克风等。在某些方面中,输入机构58可提供命令40的至少一部分的用户输入。此夕卜,举例来说,输出机构60可包括显示器、音频扬声器、触觉回馈机构等。输出机构60可产生图形用户接口、声音、感觉,例如振动等。
[0062] 此外,存储器64可包含易失性及非易失性存储器部分,例如只读及/或随机存取存储器(RAM及ROM),可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器及/或对于计算机平台普遍的任何存储器。另外,存储器64可包括活动存储器及存储存储器,包括电子文件系统及任何二级及/或三级存储装置,例如磁性媒体、光学媒体、磁带、软磁盘及/或硬磁盘及可抽换式存储器组件。
[0063] 此外,计算机平台62包括至少一个处理器66,所述处理器可以是专用集成电路(ASIC),或其它芯片组、逻辑电路或其它数据处理装置。在某些任选方面中,如由虚线所识别,处理器66可执行与任何驻存软件组件70 (例如,存储器64中的任何应用程序或模块)介接的应用编程接口(API)层68。
[0064] 另外,通信模块74实现相应通信装置22的各种组件之间的通信,以及可操作以在所述装置与通信网络44(图I)之间交换通信消息54(图I)。通信模块74可体现在硬件、固件、软件及/或其组合中,且可进一步包括用于装置内通信及装置间通信中的所有协议。此外,通信模块74可操作以根据本文中所说明的设备及方法传输及/或接收信息,例如通ί目消息54。
[0065] 往回参考图1,在某些方面中,通信消息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。
[0066] 另外,参照图1,每一相应计算装置22的存储器可操作以存储网络识别符(ID)56的全部或至少一部分。网络ID 56可以是用于计算装置22、24、26及/或通信装置28的任何类型的识别符。在某些方面中,网络ID 56可以是计算装置22、24、26的IP地址或可以是用以识别无线通信装置28的ID(例如,蜂窝式电话号码)。在某些方面中,网络ID 56可不直接识别计算装置22、24及26或通信装置28的网络位置,但可提供可由负载平衡器42用来定位计算装置22、24及26或通信装置28的信息。
[0067] 另外,每一相应计算装置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或两者)的数据。
[0068] 参照图I及7,负载平衡器42可存储在每一相应计算装置22中且由每一相应计算装置22执行。负载平衡器42可包含可操作以向相应的计算装置22提供向其它计算装置22分配命令或从所述其它计算装置22接收命令且管理系统20的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。特定来说,每一计算机22的负载平衡器42可具有三个状态。所述状态中的第一者是主装置状态,其中主装置21 (图I)接收并分配命令40。所述状态中的第二者是从装置状态,其中负载平衡器42通过接收命令40、执行命令40且随后将所述执行的结果返回到主装置21来充当从装置23(图I)。且第三状态是角色转换状态,其中负载平衡器42不充当主装置21或从装置23,但可初始化主装置21与从装置23之间的角色转换。应注意,通过使用负载平衡器42的这三个状态,可针对从装置23及主装置21两者使用单个方法,使得从装置23可角色转换为主装置21且主装置21可角色转换为从装置23,从而避免需要单独的控制器来管理此类转换。[0069] 如上所述,负载平衡器42可被划分为三个模块:分配服务模块48、健康管理服务50及数据库服务模块52 ;然而,由负载平衡器42提供的功能性可在其它模块之间分裂或并入到单个模块中。因此,在某些方面中,负载平衡器42向计算装置22至少提供与其它计算装置22上的对应负载平衡器42进行通信的能力、将命令分配到其它计算装置22或从其它计算装置接收命令的能力、管理系统20的健康状态的能力及向数据库30读取及写入的能力。
[0070] 健康维护服务50可存储在相应计算装置22的存储器中及从所述存储器执行。健康维护服务50可包含可操作以向相应的计算装置22提供维护系统20的健康的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。一般来说,健康维护服务50提供充当从装置23的计算装置22确保主装置21正确起作用的能力。此外,如果主装置21不正确地起作用,那么健康维护服务50提供充当从装置23的计算装置22尝试变成主装置21的能力。此外,健康维护服务50提供充当主装置21的计算装置22确保从装置23正确起作用的能力。如果从装置23不正确地起作用,那么健康维护服务50提供充当主装置21的计算装置22重新分配可能已被指派到失灵的从装置23的任何命令的能力。
[0071] 在一个方面中,健康维护服务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上执行的同时进程的最小数目。
[0072] 参照图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的方法。
[0073] 块200是其中负载平衡器42可以初始化角色转换的状态开始的开始块。应认识至IJ,作为系统20的部分的计算装置22中的每一者可执行负载平衡器42,使得负载平衡器42的许多拷贝可同时在不同的计算装置22、24及26上执行,但负载平衡器42中的每一者可处于独立及可能不同的状态。
[0074] 在块202处,负载平衡器42将尝试变成主装置21。在一个非限制性情况下,负载平衡器42将尝试通过在主装置表36 (图I及5)中插入具有主装置代码280 (图5)(例如,常数值)的行及执行相应的负载平衡器42的计算装置22的网络ID 56来尝试变成主装置 21。在此情况下,主装置代码280是数据库的主关键字,使得负载平衡器42中的仅一者可成功向主装置表36写入。应注意,使用主装置表36及具有用于主装置表36的主关键字的常数值的主装置代码280仅为数据库表可用于管理主装置21的身份的共享资源的一种方法。下文论述其它方法。
[0075] 在块204处,负载平衡器42读取主装置表36以读取主装置21的网络ID 56。在一个方面中,此可以是主装置21的IP地址。
[0076] 在块206处,负载平衡器42将执行负载平衡器42的计算装置22的网络ID 56与主装置21的网络ID 56进行比较。如果所述网络ID 56相同,那么负载平衡器42成功变成主装置21,因此负载平衡器42进入主装置状态(块220)。如果所述网络ID 56不相同,那么负载平衡器42不变成主装置21,且在转换为从装置状态之前,其它动作可发生。
[0077] 在块208处,负载平衡器42尝试使用从主装置表36读取的网络ID 56连接到主装置21。
[0078] 在块210处,负载平衡器42确定到主装置21的连接是否成功。在一个方面中,负载平衡器42基于预定的等待时间来确定到主装置21的连接是否成功。
[0079] 如果到主装置21的连接不成功,那么在块212处,负载平衡器42将尝试使用主装置代码280及刚刚从主装置表36读取的主装置21的网络ID 56从主装置表36删除主装置21。在一个方面中,负载平衡器42尝试删除主装置21,因为负载平衡器42假设如果主装置21不可达那么主装置21不正确地起作用。
[0080] 在块214处,如果在块210中到主装置的连接成功,那么负载平衡器42作为从装置23进行工作。一般来说,作为从装置的工作包含接受并执行来自主装置21的命令,且随后将结果返回到主装置21或返回对存储结果的地方(例如,在数据库中)的参考。在某些方面中,接受命令40并返回执行命令40的结果是在TCP/IP上通过通信消息54进行的。
[0081] 在块216处,作为从装置23进行工作的负载平衡器42使用从主装置表36读取的主装置21的网络ID 56将包含心跳的通信消息54发送到主装置21。在某些方面中,主装置21的负载平衡器42可基于从从装置接收的心跳来构建从装置ID表84 (图2)。
[0082] 在块218处,作为从装置23进行工作的负载平衡器42确定是否从主装置21接收到包含确认的通信消息54。如果未从主装置21接收到确认,那么充当从装置23的负载平衡器42假设主装置21不正确地起作用且去往块212以尝试并删除主装置21。如果从主装置21接收到确认,那么充当从装置23的负载平衡器42回到块214。在一个方面中,负载平衡器42使用预定时间以等待确认直到确定主装置21不可达且假设主装置21不正确地起作用。
[0083] 返回到块206,当负载平衡器42确定其是主装置21时,负载平衡器42在块220中继续作为主装置21进行工作。一般来说,作为主装置21进行工作包括与以下各项相关的任务:维护系统20的健康,发送供从装置23执行的命令,接收从装置23执行所述命令的结果,检查是否已执行子命令群组中的所有命令,及确定从装置23中的每一者是否正确地起作用。
[0084] 在块222处,负载平衡器42响应于从从装置23接收到的每一心跳54来发送包含确认的通信消息54。此外,负载平衡器42向从装置23中的每一者发送心跳54。在某些方面中,可使用TCP/IP来发送所述心跳及确认。主装置21可维持从装置23的网络ID 56的列表(例如,从装置ID表84),且基于从从装置23接收到的心跳来更新所述列表。 [0085] 在块224处,负载平衡器42确定从装置23中的每一者是否已发送对心跳消息的确认。负载平衡器42可基于等待来自每一从装置23的确认达一预定量时间来作出此确定。
[0086] 在块226处,负载平衡器42重新分配被指派到基于不可达而确定为不正确起作用的从装置23中的每一者的命令。在某些方面中,负载平衡器42可基于从装置23的性能测量或某个其它预定度量来确定从装置23是否正确地起作用。负载平衡器42随后返回到块220。
[0087] 因此,负载平衡器42可操作以通过使得计算装置22中的每一者能够变成从装置23或主装置21且通过规则地确定从装置23及主装置21中的每一者是否正确地起作用来维护系统20的健康。
[0088] 另外,参照图I及7,分配服务模块48可存储在计算装置22的存储器中且从所述存储器执行。分配服务模块48可包含硬件、软件、固件、数据及可执行指令中的一者或其任一组合,其可操作以向相应的计算装置22提供将命令40 (其可以是子命令的列表)分配到从装置23的相应用户命令执行器46及/或主装置21的用户命令执行器46且随后组合已执行的命令且在某些方面中响应于队列输入模块38返回结果的能力。此外,分配服务模块48使得计算装置22能够重新分配被分配到停止正确起作用的从装置23的命令。此外,分配服务模块48使得队列输入模块38能够添加供在系统20上执行的命令40。在某些方面中,分配服务模块48通过确定向哪个计算装置22分配命令40来维持系统20的水平负载平衡以及垂直负载平衡。水平平衡是指跨越从装置23及/或主装置21平衡命令40。垂直平衡是指已向单个计算装置22指派多少负载。在一个非限制性情况下,举例来说,分配服务模块48与从装置23进行通信且从从装置23接收指示从装置23的负载的利用率。分配服务模块48随后将基于所接收的利用率来确定向从装置23中的哪一个分配命令。另外或另一选择为,分配服务模块48可将分配确定基于从从装置23接收的其它信息,例如,从装置23中的每一者可处置的最大进程数目。在某些方面中,分配服务44可向主装置21分配命令36。
[0089] 在某些方面中,分配服务模块48可通过使用数据库30来维持命令40的状态。在一个非限制性实例中,参照图1、3及4,可使用数据库30的两个表32及34。在某些方面中,分配服务模块48规则地更新子命令索引表34,使得如果主装置21失灵,那么新主装置21可使用子命令索引表34来继续分配命令而不丢失已完成的工作。另外,分配服务模块48可使用命令索引表32来追踪每一命令40的处理的分配。
[0090] 因此,由分配服务模块48使用数据库30来维持命令40且通过规则地更新子命令索引表34及命令索引表32,那么如果主装置21停止正确地起作用,新主装置21可继续分配命令40而不丢失从装置23的工作,且从而为用于零点故障负载平衡器的系统20做贡献。
[0091] 此外,在一个非限制性情况下,分配服务模块48可使用通信消息54来向从装置23分配命令40。此外,从装置23可使用通信消息54来将结果返回到主装置21。
[0092] 另外,参照图I及7,数据库服务模块52可存储在存储器64中且从所述存储器执行。数据库服务模块52可包含可操作以向相应的计算装置22提供向数据库30读取及写入的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某些方面中,数 据库服务模块52可使用数据库管理系统的应用程序接口(例如,ORACLE)来提供计算装置22向数据库30读取及写入的方便方式。因此,数据库服务48使得计算装置22能够向数据库30的表32、34、36读取及写入行或元组。
[0093] 另外,参照图1,用户命令执行器46可存储在相应计算装置22的存储器中且从所述存储器执行。用户命令执行器46可包含可操作以向相应的计算装置22提供执行命令40的能力的硬件、软件、固件、数据及可执行指令中的一者或其任一组合。在某些方面中,用户命令执行器46可派生线程以执行命令40。在其它方面中,用户命令执行器46可以是可直接执行命令40的应用程序。一般来说,用户命令执行器46使得计算装置22能够执行计算装置22上的任何命令40且进一步可提供与远程装置(例如,通信装置28)进行通信的功能性。一般来说,用户命令执行器46取且执行命令,且随后在通信网络44上将结果发送到主装置21。另一选择为或另外,用户命令执行器46可将所述结果存储在数据库30中的某种形式的存储器或存储装置中及/或存储在从装置23及/或主装置21上。因此,用户命令执行器46使得计算装置22能够执行命令。
[0094] 参照图I,另外及/或另一选择为,负载平衡器42可使用操作系统的线程来实现系统20的功能性。应注意,为方便起见,解释所述线程的功能性而不将所述功能性链接到负载平衡器42的子模块。在一个非限制性实例中,在用于主装置21的计算装置22上创建的线程可包含主装置线程,其任务包括创建数据库处置线程、在用户界定的端口号码上运行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的功能性。
[0095] 另外,往回参照图1,通信网络44可包含任何数据及/或语音通信网络。举例来说,通信网络44可包含以下各项中的任一者或其任一组合的全部或某部分:有线或无线电话网络;陆地电话网络;卫星电话网络;红外线网络,例如基于红外线数据协会(IrDA)的网络;短距离无线网络;Bluetooth®技术网络;ZigBee®协议网络;超宽带(UWB)协议网络;国内射频(国内RF)网络;共享无线接入协议(SWAP)网络;宽带网络,例如无线以太网兼容性联盟(WECA)网络、无线保真联盟(Wi-Fi联盟)网络及802. xx网络;包数据网络;因特网协议(IP)多媒体子系统(MS)网络;公共交换电话网络;公共异构通信网络,例如因特网•’专用通信网络;多播网络,例如唯正向链路(FLO)网络,包括可从加利福尼亚州圣地亚哥的高通公司购得的MediaFLO™系统;数字视频广播(DVB)网络,例如针对卫星的DVB-S、针对有线电视的DVB-C、针对陆地电视的DVB-T、针对用于手持装置的陆地电视的DVB-H ;及陆地移动无线电网络。
[0096] 此外,电话网络的可包括在通信网络44的某些方面中的实例包括以下各项中的一者或其任一组合的至少一部分:模拟及数字网络/技术,例如:码分多址(CDMA)、宽带码分多址(WCDMA)、通用移动电信系统(UMTS)、先进移动电话服务(AMPS)、时分多址(TDMA)、频分多址(FDMA)、正交频分多址(OFDMA)、全球移动通信系统(GSM)、单载波(IX)无线电传 输技术(RTT)、唯进化数据(EV-DO)技术、通用包无线电服务(GPRS)、增强型数据GSM环境(EDGE)、高速下行链路数据包存取(HSPDA)、模拟及数字卫星系统及任何其它可在无线通信网络及数据通信网络中的至少一者中使用的技术/协议。
[0097] 参照图8,在操作中,用于从装置处的零点故障负载平衡器系统的方法的一个非限制性情况包含确定主装置是否起作用(块300)。举例来说,在一个非限制性情况下,参照图I及6,从装置23可将通信消息54发送到主装置21且等待来自主装置21的确认54。从装置23可将主装置21是否起作用的确定基于预定时间76 (图2),所述预定时间是自从从装置23将通信消息54发送到主装置21以来所流逝的时间,或在其它方面中,从装置23可将所述确定基于主装置21的某个性能测量。
[0098] 如果主装置不起作用,那么所述方法可进一步包括尝试通过使用用于管理与至少一个其它从装置的通信的数据库来变成主装置(块302)。举例来说,在一个非限制性情况下,参照图I、5及6,从装置23可向主装置表36写入。从装置23可实施迪科斯彻的算法的某个变化形式以用于实施旗语,或另一选择为,从装置23可使用主装置表36中的单个行或元组,其中每一从装置23尝试设定具有相同常数值的行用于也是主装置表36的主关键字的字段,从而准许从装置23中的仅一者在主装置表36中写入所述行且因此变成新的主装置21。
[0099] 任选地,所述方法可进一步包括接收至少一个命令以执行;及将执行所述命令的结果发送到主装置。参照图I,从装置23可接收命令40以执行且随后执行命令40且随后将结果发送回主装置21。在某些方面中,从装置23可将执行的结果写入到数据库30且向主装置21发送所述执行完成的指示。从装置23可使用通信消息54与主装置21进行通信,在某些方面中可使用TCP/IP发送所述通信消息。
[0100] 任选地,所述方法可进一步包括从主装置接收消息;及向所述主装置发送确认(块306)。在一个非限制性情况下,举例来说,从装置23可从主装置21接收请求从装置23确认来自主装置21的通信消息54的通信消息54。主装置21及从装置23可使用局域网(LAN)在TCP/IP上进行通信。[0101] 参照图9,在操作中,用于主装置处的零点故障负载平衡器系统的方法的一个非限制性情况包含将不由主装置执行的命令中的每一者指派到多个从装置中的一者(块400)。举例来说,在一个非限制性情况下,参照图I及3,主装置21可通过通信消息54将命令40指派到从装置23且向子命令索引表34写入命令40及被指派到命令40的从装置23两者。
[0102] 所述方法可进一步包括将命令及对应的指派存储在数据库中,其中每一指派包含被指派到所述命令的从装置或主装置的识别(块402)。举例来说,在一个非限制性情况下,参照图1、4及5,可使用数据库30的两个表32及34来维持命令40的状态。
[0103] 所述方法可进一步包括确定多个从装置中的每一者是否起作用(块404)。举例来说,在一个非限制性情形下,参照图I及3,主装置21可向从装置23中的每一者发送通信消息54(图3的块222)且如果从装置23在预定量的时间内未返回通信消息54,那么主装置21将假设从装置23不起作用。
[0104] 如果从装置不起作用,那么所述方法可进一步包括将被指派到从装置的命令中的每一者指派到多个从装置23中的至少一者(块406)。举例来说,在一个非限制性情况下, 参照图I及3,主装置21可将命令重新指派到其它从装置23 (图3的块226)。主装置21可审查子命令索引表34且对于被指派到不起作用及/或不可达的从装置23的每一命令40,主装置21可将命令40重新指派到另一从装置23。
[0105] 结合本文中所揭示方面说明的各种说明性逻辑、逻辑块、模块及电路可用以下装置实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其设计用于执行本文中所说明功能的任一组合。通用处理器可以是微处理器,但另一选择为,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP核心的联合,或任何其它此类配置。
[0106] 此外,结合本文中所揭示方面说明的方法或算法的步骤及/或动作可直接体现在硬件中、体现在由处理器执行的软件模块中或体现在两者的组合中。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬磁盘、可抽换式磁盘、CD-ROM或所属技术中已知的任何其它形式的存储媒体中。实例性存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息及向存储媒体写入信息。另一选择为,存储媒体可整合到处理器中。此外,在某些方面中,处理器及存储媒体可驻存在ASIC中。另外,ASIC则可驻存在用户终端中。另一选择为,处理器及存储媒体可作为离散组件驻存在用户终端中。此外,在某些方面中,至少一个处理器可包含一个或一个以上可操作以致使计算机执行本文中所说明的任何方法或算法的步骤及/或动作的模块。另外,在某些方面中,方法或算法的步骤及/或动作可作为代码或指令集中的一者或其任一组合驻存在机器可读媒体及/或计算机可读媒体上,其可并入到计算机程序产品中。
[0107] 尽管前述揭示内容论述了说明性方面及/或各方面,但应注意,在不背离所附权利要求书所界定的所说明方面及/或各方面的范围的前提下,可对本文做出各种改变及修改。此外,尽管可以单数形式来说明或请求所说明方面及/或各方面的元素,但也涵盖复数形式,除非明确说明限于单数形式。另外,任一方面及/或方面的全部或一部分可与任一其它方面及/或方面的全部或一部分一起使用,除非另有说明。

Claims (44)

1. ー种用于负载平衡器的从计算设备的计算机实施的方法,其包含: 根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法来确定所述负载平衡器的主装置是否起作用;及 如果所述主装置不起作用,那么尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
2.如权利要求I所述的方法,其中尝试变成所述主装置进ー步包括在所述主装置数据库表的具有主装置代码的一部分中设定所述自己的网络识别,其中所述主装置代码包含用于所述主装置数据库表的主关键字的预定值。
3.如权利要求I所述的方法,其中尝试变成所述主装置进ー步包含通过使用所述主装 置数据库表的一部分实施旗语来控制对所述主装置网络识别的存取。
4.如权利要求I所述的方法,其中尝试变成所述主装置进ー步包含: 基于主装置代码从所述主装置数据库表的一部分中读取所述主装置网络识别;及尝试删除所述主装置数据库表的包含所述主装置代码及所述主装置网络识别的所述部分。
5.如权利要求I所述的方法,其进ー步包含: 从所述主装置数据库表的对应于主装置代码的一部分中读取所述主装置网络识别; 检查所述主装置网络识别是否对应于所述自己的网络识别; 如果所述主装置网络识别不对应于所述自己的网络识别,那么作为从装置进行工作;及 否则如果所述主装置网络识别对应于所述自己的网络识别,那么作为所述主装置进行工作。
6.如权利要求I所述的方法,其中确定所述主装置是否起作用,进ー步包含: 基于所述主装置网络识别向所述主装置发送通信;及 如果在预定时间内未从所述主装置接收到确认,那么尝试变成所述主装置。
7.如权利要求I所述的方法,其中确定所述主装置是否起作用进ー步包含在局域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述主装置发送通信消息。
8.如权利要求I所述的方法,其进ー步包含: 从所述主装置接收通信消息;及 向所述主装置发送确认。
9.如权利要求I所述的方法,其进ー步包含: 从所述主装置接收至少ー个命令以执行;及 将执行所述命令的结果发送到所述主装置。
10.如权利要求9所述的方法,其进ー步包含执行所述命令,其中执行所述命令包含处理对应于在无线网络上操作的至少ー个无线装置的性能统计数据。
11.如权利要求I所述的方法,其进ー步包含: 获得主装置性能要求 '及获得所述从装置的实际性能測量;及 仅在所述实际性能测量满足所述主装置性能要求的情况下允许所述从装置变成所述主装置。
12. ー种用于负载平衡器的从计算设备的装置,其包含: 第一模块,其用于根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法来确定所述负载平衡器的主装置是否起作用;及 第二模块,其用于在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别。
13. —种负载平衡器的从设备,其包含: 健康管理服务模块,其可操作以根据可独立地由所述负载平衡器中的多个从装置中的每ー者操作的共用预定健康维护算法确定主装置是否起作用且进一歩可操作以在所述主装置不起作用的情况下尝试根据可独立地由所述负载平衡器中的所述多个从装置中的每一者操作的共用预定角色转换算法变成所述主装置,其中所述预定角色转换算法包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别;及 数据库服务模块,其与所述健康管理服务模块进行通信且可操作以响应于所述健康管理服务模块向所述主装置数据库表读取及写入。
14.如权利要求13所述的从设备,其中响应于所述健康管理服务模块,所述数据库服务模块进ー步可操作以在所述主装置数据库表的具有主装置代码的一部分中设定所述自己的网络识别,其中所述主装置代码包含用于所述主装置数据库表的主关键字的预定值。
15.如权利要求13所述的从设备,其中响应于所述健康管理服务模块,所述数据库服务模块进ー步可操作以通过使用所述主装置数据库表的一部分实施旗语来控制对所述主装置网络识别的存取。
16.如权利要求13所述的从设备,其中响应于所述健康管理服务模块,所述数据库服务模块进ー步可操作以: 基于主装置代码从所述主装置数据库表的一部分中读取所述主装置网络识别;及 尝试删除所述主装置数据库表的包含所述主装置代码及所述主装置网络识别的所述部分。
17.如权利要求13所述的从设备,其中所述健康管理服务模块或所述数据库服务模块中的至少ー者进ー步可操作以: 从所述主装置数据库表的对应于主装置代码的一部分中读取所述主装置网络识别; 检查所述主装置网络识别是否对应于所述自己的网络识别; 如果所述主装置网络识别不对应于所述自己的网络识别,那么致使所述从设备作为从装置进行工作;及 否则如果所述主装置网络识别对应于所述自己的网络识别,那么致使所述从设备作为所述主装置进行工作。
18.如权利要求13所述的从设备,其中所述健康管理服务模块进ー步可操作以: 基于所述主装置网络识别向所述主装置发送通信;及 如果在预定时间内未从所述主装置接收到确认,那么尝试变成所述主装置。
19.如权利要求13所述的从设备,其中所述健康管理服务模块进ー步可操作以在局域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述主装置发送通信消息。
20.如权利要求13所述的从设备,其进ー步包含: 从所述主装置接收通信消息;及 向所述主装置发送确认。
21.如权利要求13所述的从设备,其进ー步包含: 用户命令执行器,其可操作以在通信网络上从所述主装置接收命令,执行所述命令,且在所述通信网络上将执行所述命令的结果发送到所述主装置。
22.如权利要求13所述的从设备,其中所述用户命令执行器进ー步可操作以处理对应于在无线网络上操作的至少ー个无线装置的性能统计数据。
23.如权利要求13所述的从设备,其进ー步包含具有主装置性能要求及所述从装置的实际性能测量的存储器,其中所述健康维护服务模块进ー步可操作以允许所述从装置在所述实际性能测量满足所述主装置性能要求的情况下变成所述主装置。
24. ー种用于负载平衡器的主计算设备的计算机实施的方法,其包含: 执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别; 执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作;将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的所述执行确定为起作用的至少ー个从装置; 将所述命令及对应的指派存储在数据库表中,其中每一指派包含所述多个从装置中被指派到所述相应命令的ー个从装置的网络识别; 针对所述组命令中的每ー者检查所述数据库表中的命令状态,其中所述命令状态指示所述相应命令是否已被执行;及 当基于所述命令状态确定所有所述命令被执行时执行回调函数。
25.如权利要求24所述的方法,其中执行所述回调函数进ー步包含对通过执行所述组命令中的每ー者产生的至少ー个结果执行命令脚本。
26.如权利要求24所述的方法,其中执行所述共用预定健康维护算法进ー步包含: 确定所述多个从装置中的每ー者是否起作用;及 如果所述多个从装置中的相应ー者不起作用,那么将被指派到所述不起作用的相应从装置的每ー相应命令重新指派到所述多个从装置中起作用的至少ー个从装置,其中执行所述回调函数是基于所述重新指派。
27.如权利要求26所述的方法,其中确定所述从装置中的每ー者是否起作用,进ー步包含:向所述多个从装置中的每ー者发送通信消息;及 如果在预定时间内未从所述多个从装置中的每ー者接收到确认,那么将所述从装置设定为不起作用。
28.如权利要求27所述的方法,其中发送进一歩包含在局域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述多个从装置中的每ー者发送通信消息。
29.如权利要求24所述的方法,其中指派进ー步包含基于已经被指派到所述多个从装置中的每ー者的命令的数目进行指派。
30.如权利要求24所述的方法,其中指派进ー步包含基于所述多个从装置中的每ー者的利用率进行指派。
31.如权利要求24所述的方法,其进ー步包含通过使用从所述多个从装置中的每ー者接收的通信消息来构建从装置识别表,其中所述从装置识别表包括每ー从装置的网络识 别。
32.如权利要求24所述的方法,其进ー步包含在变成所述主装置之前执行所述共用预定健康维护算法以确定现有主装置的健康,且其中基于确定所述现有主装置不起作用而触发所述共用预定角色转换算法的所述执行以变成所述主装置。
33.如权利要求32所述的方法,其中变成所述主装置进ー步包含: 确定实际性能測量; 确定主装置性能要求;及 如果所述实际性能测量满足所述主装置性能要求,那么充当所述主装置。
34. ー种用于负载平衡器的主计算设备的装置,其包含: 第一模块,其用于执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别; 第二模块,其用于执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作; 第三模块,其用于将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的所述执行确定为起作用的至少ー个从装置; 第四模块,其用于将所述命令及对应的指派存储在数据库表中,其中每一指派包含所述多个从装置中被指派到所述相应命令的ー个从装置的网络识别; 第五模块,其用于针对所述组命令中的每ー者检查所述数据库表中的命令状态,其中所述命令状态指示所述相应命令是否已被执行;及 第六模块,其用于在基于所述命令状态确定所有所述命令被执行时执行回调函数。
35. 一种负载平衡器的主设备,其包含: 健康维护服务模块,其可操作以执行共用预定角色转换算法以变成主装置,其中所述共用预定角色转换算法可独立地由所述负载平衡器中的多个从装置中的每ー者操作且包括在至少ー个其它从装置在主装置数据库表中设定对应的其它从装置网络识别作为主装置网络识别之前将所述主装置数据库表中的所述主装置网络识别设定为自己的网络识别; 其中所述健康维护服务模块进ー步可操作以执行共用预定健康维护算法以确定所述多个从装置中的每ー者的健康,其中所述共用预定健康维护算法可独立地由所述负载平衡器中的所述多个从装置中的每ー者操作; 分配服务模块,其可操作以将ー组命令中的每ー者指派到所述多个从装置中基于所述预定健康维护算法的所述执行确定为起作用的至少ー个从装置; 数据库服务模块,其与所述分配服务模块进行通信且可操作以将所述命令及对应的指派存储在数据库表中,其中每一指派包含所述多个从装置中被指派到所述相应命令的ー个从装置的网络识别; 其中所述分配服务模块进ー步可操作以针对所述组命令中的每ー者检查所述数据库表中的命令状态,其中所述命令状态指示所述相应命令是否已被执行;及 用户命令执行器,其可操作以在基于所述命令状态确定所有所述命令被执行时执行回 调函数。
36.如权利要求35所述的主设备,其中所述回调函数包含可对通过执行所述组命令中的每ー者产生的至少ー个结果执行的命令脚本。
37.如权利要求35所述的主设备,其进ー步包含与所述分配服务模块进行通信的健康维护服务模块,其中所述健康维护服务模块可操作以: 确定所述多个从装置中的每ー者是否起作用;及 如果所述多个从装置中的相应ー者不起作用,那么将被指派到所述不起作用的相应从装置的每ー相应命令重新指派到所述多个从装置中起作用的至少ー个从装置,其中所述回调函数的执行是基于所述重新指派。
38.如权利要求37所述的主设备,其中所述健康管理服务模块进ー步可操作以: 向所述多个从装置中的每ー者发送通信消息;及 如果在预定时间内未从所述多个从装置中的每ー者接收到确认,那么将所述从装置设定为不起作用。
39.如权利要求38所述的主设备,其中所述健康维护服务模块进ー步可操作以在局域网(LAN)上使用传送控制协议/因特网协议(TCP/IP)向所述多个从装置中的每ー者发送通イ目消息。
40.如权利要求35所述的主设备,其中所述分配服务模块进ー步可操作以基于已经被指派到所述多个从装置中的每ー者的命令的数目进行指派。
41.如权利要求35所述的主设备,其中所述分配服务模块进ー步可操作以基于所述多个从装置中的每ー者的利用率进行指派。
42.如权利要求35所述的主设备,其中所述数据库服务模块进一歩可操作以通过使用从所述多个从装置中的每ー者接收的通信消息来构建从装置识别表,其中所述从装置识别表包括每ー从装置的网络识别。
43.如权利要求35所述的主设备,其中在变成所述主装置之前,所述健康维护服务模块进一歩可操作以执行所述共用预定健康维护算法以确定现有主装置的健康,且其中所述 健康维护服务模块经触发以执行所述共用预定角色转换算法以基于确定所述现有主装置不起作用而变成所述主装置。
44.如权利要求43所述的主设备,其进ー步包含具有实际性能測量及主装置性能要求的存储器,其中所述健康维护服务模块进ー步可操作以使所述主设备能够在所述实际性能测量满足所述主装置性能要求的情况下充当所述主装置。
CN2007800442679A 2006-12-05 2007-10-16 零单点故障负载平衡器的设备及方法 Expired - Fee Related CN101542445B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US86868906P true 2006-12-05 2006-12-05
US60/868,689 2006-12-05
PCT/US2007/081555 WO2008127372A2 (en) 2006-12-05 2007-10-16 Apparatus and methods of a zero single point of failure load balancer

Publications (2)

Publication Number Publication Date
CN101542445A CN101542445A (zh) 2009-09-23
CN101542445B true CN101542445B (zh) 2012-10-10

Family

ID=39767139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800442679A Expired - Fee Related CN101542445B (zh) 2006-12-05 2007-10-16 零单点故障负载平衡器的设备及方法

Country Status (8)

Country Link
US (1) US8732261B2 (zh)
EP (1) EP2100223B1 (zh)
JP (1) JP5074516B2 (zh)
KR (1) KR101073171B1 (zh)
CN (1) CN101542445B (zh)
AT (1) AT496336T (zh)
DE (1) DE602007012148D1 (zh)
WO (1) WO2008127372A2 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979364B1 (ko) 2005-11-24 2010-08-31 지티이 코포레이션 자동 교환 광통신망에서 다중송출 서비스 접속의 보호 및 복원 방법
KR101073171B1 (ko) 2006-12-05 2011-10-12 콸콤 인코포레이티드 패일러 로드 밸런서의 제로 싱글 포인트의 장치 및 방법들
US8572237B2 (en) * 2008-12-16 2013-10-29 Sap Ag Failover mechanism for distributed process execution
JP2010176472A (ja) * 2009-01-30 2010-08-12 Nec Corp サービス提供システム、サービス提供方法およびプログラム
JP5472296B2 (ja) * 2009-05-22 2014-04-16 日本電気株式会社 スクリプト記述分離再構築装置、スクリプト記述分離再構築方法及びスクリプト記述分離再構築プログラム
US8717948B2 (en) 2009-07-16 2014-05-06 Telefonaktiebolaget Lm Ericsson (Publ) Technique for providing an asymmetric multipoint call between a plurality of network nodes
CN101640688B (zh) * 2009-08-20 2014-03-12 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
US8411447B2 (en) * 2009-12-18 2013-04-02 Teledyne Paradise Datacom, Llc Power amplifier chassis
US20120083902A1 (en) * 2010-09-30 2012-04-05 Wolf Daum Communication system and method for communicating between master and slave devices
FR2967274B1 (fr) * 2010-11-05 2012-12-07 Thales Sa METHOD FOR DETERMINING A "LEADER" EQUIPMENT IN AN ASYNCHRONOUS ENVIRONMENT COMPRISING A PLURALITY OF ELECTRONIC EQUIPMENT
JP5660394B2 (ja) * 2011-09-20 2015-01-28 株式会社ダイフク 設備制御システム
JP5776937B2 (ja) * 2011-09-20 2015-09-09 株式会社ダイフク 設備制御システム
US8874311B2 (en) * 2011-11-16 2014-10-28 The Boeing Company Control panel system for a vehicle
US8906320B1 (en) * 2012-04-16 2014-12-09 Illumina, Inc. Biosensors for biological or chemical analysis and systems and methods for same
EP2955886B1 (en) 2012-04-18 2020-05-06 Nicira Inc. Using transactions to compute and propagate network forwarding state
US9276807B2 (en) * 2013-10-23 2016-03-01 Verizon Patent And Licensing Inc. Redundant communication framework
CN104580338B (zh) * 2013-10-29 2018-09-07 华为技术有限公司 一种业务处理方法、系统及设备
EP3026553A1 (en) * 2014-11-26 2016-06-01 Hewlett-Packard Development Company, L.P. Web browser emulator
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
KR20160119513A (ko) * 2015-04-06 2016-10-14 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 상기 시스템의 작동 방법
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
EP3562100A4 (en) * 2016-12-22 2021-01-13 Nidec Corporation ENGINE UNIT AND MULTI-ENGINE SYSTEM
US10541876B2 (en) 2017-02-14 2020-01-21 Nicira, Inc. Inter-connecting logical control planes for state data exchange
JP6812900B2 (ja) * 2017-05-17 2021-01-13 富士通株式会社 ストレージ装置、ストレージ制御装置、およびストレージ制御プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
CN1578320A (zh) * 2003-06-30 2005-02-09 微软公司 利用主机状态信息进行网络负载平衡
CN1614936A (zh) * 2003-11-06 2005-05-11 西门子医疗健康服务公司 处理设备管理系统
WO2006065661A2 (en) * 2004-12-17 2006-06-22 Ubiquity Software Corporation Systems and methods providing high availability for distributed systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03174647A (en) * 1989-12-04 1991-07-29 Toshiba Corp Multiprocessor control system
US6185601B1 (en) * 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US6324571B1 (en) * 1998-09-21 2001-11-27 Microsoft Corporation Floating single master operation
US6006259A (en) * 1998-11-20 1999-12-21 Network Alchemy, Inc. Method and apparatus for an internet protocol (IP) network clustering system
US6993587B1 (en) * 2000-04-07 2006-01-31 Network Appliance Inc. Method and apparatus for election of group leaders in a distributed network
US6990511B2 (en) * 2000-07-27 2006-01-24 Bea Systems, Inc. System and method for concentration and load-balancing of requests
CN100431320C (zh) * 2000-10-26 2008-11-05 普里斯梅迪亚网络有限公司 大有效负载文件的分段的实时并行交付方法和设备
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
JP2004030204A (ja) * 2002-06-25 2004-01-29 Jmnet Inc 負荷分散装置及びそれに接続するノードコンピュータ
US7284054B2 (en) 2003-04-11 2007-10-16 Sun Microsystems, Inc. Systems, methods, and articles of manufacture for aligning service containers
JP2006072880A (ja) * 2004-09-06 2006-03-16 Seiko Epson Corp 情報処理方法、情報処理プログラム、及び情報処理システム
US7461130B1 (en) * 2004-11-24 2008-12-02 Sun Microsystems, Inc. Method and apparatus for self-organizing node groups on a network
US20060168084A1 (en) * 2004-11-29 2006-07-27 Leonid Kogan Method and apparatus for rendering load balancing and failover
JP2006323526A (ja) * 2005-05-17 2006-11-30 Fujitsu Ltd クラスタ管理プログラム、該プログラムを記録した記録媒体、クラスタ管理方法、ノード、およびクラスタ
KR101073171B1 (ko) 2006-12-05 2011-10-12 콸콤 인코포레이티드 패일러 로드 밸런서의 제로 싱글 포인트의 장치 및 방법들

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
CN1578320A (zh) * 2003-06-30 2005-02-09 微软公司 利用主机状态信息进行网络负载平衡
CN1614936A (zh) * 2003-11-06 2005-05-11 西门子医疗健康服务公司 处理设备管理系统
WO2006065661A2 (en) * 2004-12-17 2006-06-22 Ubiquity Software Corporation Systems and methods providing high availability for distributed systems

Also Published As

Publication number Publication date
EP2100223A2 (en) 2009-09-16
KR20090096508A (ko) 2009-09-10
WO2008127372A2 (en) 2008-10-23
US8732261B2 (en) 2014-05-20
KR101073171B1 (ko) 2011-10-12
JP5074516B2 (ja) 2012-11-14
EP2100223B1 (en) 2011-01-19
DE602007012148D1 (de) 2011-03-03
CN101542445A (zh) 2009-09-23
AT496336T (de) 2011-02-15
JP2010511964A (ja) 2010-04-15
WO2008127372A3 (en) 2009-05-22
US20080133687A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
CN101542445B (zh) 零单点故障负载平衡器的设备及方法
CN101567013B (zh) 一种etl调度的实现方法及装置
CN103458086B (zh) 一种智能手机及其故障检测方法
CN101438261B (zh) 执行逐步升级的方法及系统
CN100435152C (zh) 组合书签的方法及建立更新的主书签数据库的计算机设备
CN103034735B (zh) 一种大数据分布式文件导出方法
CN103699548B (zh) 一种通过使用日志恢复数据库数据的方法及设备
CN102609281B (zh) 分布式软件补丁更新方法及系统
WO2019006654A1 (zh) 金融自助设备维修派单生成方法、手持终端及电子设备
CN103164506A (zh) 用于使用推送通知以减少打开的浏览器连接的方法和系统
CN101248416A (zh) 组件架构
CN108173840A (zh) 基于云平台的智能物流终端集成中间件
CN103257852B (zh) 一种分布式应用系统的开发环境搭建的方法和装置
CN100456238C (zh) 实现分布式对象持久化的方法、装置及编译单元
US20080178182A1 (en) Work state returning apparatus, work state returning method, and computer product
CN105450737B (zh) 一种数据处理方法、装置和系统
CN105608097A (zh) 适应性调整数据库结构的方法与调整装置
CN103617077A (zh) 智能型云端化移转的方法与系统
Silva Souza et al. Designing an adaptive computer‐aided ambulance dispatch system with Zanshin: an experience report
US10963161B2 (en) Storage apparatus and its control method
CN102316073A (zh) 服务器及利用该服务器实现uefi bios远程升级的方法
CN103678974A (zh) 化学机械抛光控制系统的远程访问客户端
Parkhomenko et al. Complex requirements analysis for the high-level design of embedded systems
CN105095639A (zh) 借助患者通信系统控制医学检查的方法和患者通信系统
CN106204031A (zh) 卡应用处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
GR01 Patent grant
C14 Grant of patent or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121010

Termination date: 20181016

CF01 Termination of patent right due to non-payment of annual fee