可扩展的、高可用性网络的制作方法

文档序号:7658825阅读:208来源:国知局

专利名称::可扩展的、高可用性网络的制作方法
技术领域
:本发明-般涉及计算机化网络,具体涉及提供可扩展的、高可用性网络的网络体系及方法。
背景技术
:下面将根据本发明在因特网协议语音传输(VoIP)网络方面的应用来说明本发明,但本领域技术人员应理解,本发明可应用于任何类型的网络。VoIP正广泛应用于诸如Vonage、Comcast、Verizon等公用电话服务以及应用于诸如PBX(私人交换分机,PrivateBranchExchange)等企业电话系统。在VoIP技术中,最新的标准称为会话启动协议(SIP),其于2002年被因特网标准组织IETF正式采用,目前应用于很多VoIP网络和系统中。基于SIP的VoIP系统或网络以明显不同于传统数字电话系统的力'式工作。例如,在传统数字电话系统中,电话终端通过专用线与电话交换机连接,并且电话之间的呼叫完全通过电话交换机进行。就是说,控制信息(信令)和媒体信息(语音信号)都从主叫电话传送到电话交换机然后从电话交换机传送到目标电话。因此,所有信息都经过电话交换机,或者说相当于经过电话网络。另一方面,基于SIP的VoIP系统通过使用因特网模型设计而成,按照这种系统,电话终端(或IP电话)作为智能客户与IP网络连接,类似于计算机或PC。这些IP电话可以基于IP网络直接通信,其中以语咅作为应用并且以SIP作为信令协议。因此,按照两台计算机基于因特网相互通信的同一方式,一个IP电话可以直接呼叫另一个IP电话,其中以SIP作为共用协议。为了通过IP联网实现这一目的,两个终端(或计算机)必须知道彼此的IP地址,从而它们的信息包可以被路由到期望的目标端。因此,对于许多的IP电话一起形成具有一定意义的电话系统的情况,必须有一个机制使得这些IP电话可以通过该机制相互得知他们的IP地址信息。在SIP环境下,这一角色由SIP服务器(或SIP代理和注册服务器)来实现。SIP服务器就像计算机网络中的计算机服务器--样工作,即它的存在是趋向于永久性的,并且它的IP地址被所有客户(电话或终端)所熟知。另一方面,客户可以进行经常的变化、移动、添加和删除。在SIP系统中,要求每个电话周期性地向SIP服务器注册以便更新其当前信息,并且SIP服务器保持每个电话的标识(名称、ID或"电话号码")和相关IP地址的数据库。该注册过程消耗了每个SIP服务器中的内存空间和处理能力。因此,SIP服务器只能支持仅仅由它自身资源所允许的用户数量。对于一个要呼叫另一个电话的电话,在SIP中它必须经过两步过程。首先,主叫电话必须向SIP服务器发送信息(称为邀请信息),表明它想要与特定的被叫电话通话。因为SIP服务器保持着每个电话的IP地址的数据库,所以它就能将来自主叫电话的所述邀请信息连同其IP地址以及相关控制信息一起传送。一旦收到邀请信息,被叫电话可以经由SIP服务器将应答或接受信息发回给主叫电话。在这一交换中,SIP也允许两个端点就--组共用的通信参数,例如多媒体数字信号编解码器类型(codectype)、比特率(bitrate)等等进行协商并达成一致,其中,该协议提供两个电话之间的会话发起机制。当语音会话最终开始时,信息包直接在两个电话之间传送而不经过SIP服务器。以这种方式,SIP服务器用作两个电话之间的信令信息包而不是媒体(语音)信息包的中继器。SIP服务器在会话启动和控制功能方面起着关键的作用,而不是媒体传输。在商业产品中,基于SIP的IP-PBX实质上是支持与企业IP网络连接的SIP电话的SIP服务器,从而使得这些电话可以以与传统数字PBX相同的特征--起工作。此外,对于具有很多办公室的大型企业,通常需要将不同办公室的IP-PBX系统联网在一起,使得整个企业VoIP网络可以作为一体化电话系统而工作。应该理解,SIP服务器是SIP网络架构中的基本部件。如果SIP服务器出故障,则与该服务器相关联的电话很难得到有效的电话服务。在这一意义上,SIP服务器可比作电话交换机的继承者,并且其可靠性对那些电话服务是其重要任务的用户来说是最关心的。在全文中,"高可用性(HA)"被用来代表具有很高的可靠性或很短的故障期。一种提供HA的已知技术是使用冗余。例如,除了具有服务于特定电话群的SIP服务器之外,还在待命模式下使用备用单元。对于具有快速故障修复时间的冗余配置,有效SIP服务器的注册或用户数据库必须以某种方式复制在待命SIP服务器中。这可以通过在当前基础上将数据库从有效服务器实际拷贝到待命服务器来实现,或者,可选择地,可以要求每个电话以其日常注册步骤对两个服务器都注册。无论是哪种情形,原理仍然是网络中设有冗余服务器,其主要缺点是,成本显著增加,基本上使服务器成本翻倍。在现有技术中众所周知的是,可代替用于保护有效单元的冗余单元(一对一保护)的是,一个备用单元可以保护N个有效单元(一对N保护),从而显著地减小了成本影响。还应理解,和上述一对一方案相比,这一方案的可靠性有所损失,因为只有一个备用单元,所以在系统故障之前只允许出现一个故障。然而,这种方案的主要缺点是它不能很好地适应于SIP环境。原因在于,待命服务器需要保持N个有效服务器的所有电话数据库,或者通过直接复制或者通过让每个电话注册其自身的服务器和待命服务器。当有效SIP服务器的数量N增大,则待命单元的内存需求也增大。因此,这种保护配置不能扩展并且不适用于大型网络。所以,实际商业应用的主要挑战是如何针对HA设计一种保护方案,使得成本最小化(或如同一对N配置那样有吸引力);如同一对一方案中那样,数据库的维护需求最小化;.以及性能接近于--对一方法。
发明内容根据本发明的一个方面,多个用户以及m个服务器与网络连接。将这些用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的--部分。将所述数据库复制在所述服务器的子集P中,所述子集分担相应用户组的处理荷载。当相应用户组中的用户想要与另一个用户通信时,子集q中的服务器之--将承担必要的处理从而启动该连接的建立。同时,每个服务器承担q个不同组中的用户。如果服务器之一出故障,则承担该故障服务器的用户的每一个其它服务器将承接那些用户的故障服务器份额。因此,每个用户组的处理荷载由p个(子集中的服务器数量)冗余来处理,从而保证高级别的可用性。从下面结合附图对所给出的仅用于解释的优选实施例的详细说明,将更全面地理解前述说明以及本发明的其它目的、特征和优点。附图中.-图1是本发明基本部分方面的示意性方框图;图2是本发明优选实施例的网络结构的示意性方框图;以及图3是现有技术的网络结构的示意性方框图,其中每个服务器设有—对一冗余。具体实施方式下面转到附图上,图1是本发明基本部分方面的示意性方框图。多个用户U以及m个服务器与网络N或诸如因特网等网络联合体连接。将这些用户U编成n个用户组,每个用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的一部分。将该数据库复制在各服务器的子集p中,所述子集分担相应用户组的处理荷载。就是说,当各自用户组中的用户想要与另一个用户通信时,子集p中的服务器之一将提供必要的处理。同时,每个服务器承担q个不同组中的用户。如果服务器之一出故障,则每个子集p中的其它服务器之中的每一个将承接那些用户的故障服务器份额。因此,每个用户组的处理荷载由p个(子集中的服务器数量)兀余来处理,从而保证了高级别的可用性。图2所示的是前述网络结构的优选实施例。图中显示了多个电话组和多个SIP服务器之间的通信关系。虽然显示的是电话组与服务器直接通信,但是应理解,这些通信实际上可以通过网络进行。在本实施例中,n-6,即示出了六个电话组(用户组)P广P6作为例子。每个电话组可以是由同—SIP服务器或IP-PBX支持的用户或电话的集合。实际上,这通常是指在同一办公室中由该办公室中的同一IP-PBX服务的电话。此外,m-6,即网络中有六个SIP服务器S广S6,每个服务器都承担网络中的两个电话组(q=2)。电话组和服务器之间的虚线表示哪些SIP服务器承担着每个电话组中的电话并且那些电话应向这些SIP服务器注册。例如,电话组P,中的所有电话向SIP服务器S,和S2注册,电话组P2中的电话向服务器S2和S3注册,电话组P3中的电话向服务器S3和S4注册,等等。在这种组分配的底部,连.接关系折回到顶部。准确地说,这种分配图由以下数学算法产生给定n个电话组,标注为l~n,并给定n个SIP服务器,标注为l~n,根据如下规则将每个电话组i(i从l到n)分配给两个不同的SIP服务器j,和J2:J2=ji+1(模数n)这种连接方式是公知的混洗(shuffle)。图2的例子对应于n-6的情况。用这个例子作为范例继续讨论。.参照图2,可以假定,对于每个电话组中所产生的通信量荷载,将分数oc发送到在水平方向上连接的服务器,并沿如图所示的对角方向发送(卜a),其中0《a《1。为了荷载平衡的对称,将通信量分配的这一相同规则应用于所有电话组。在正常操作条件下,六个服务器在荷载分担模式中都是有效的。当一个服务器出故障时,将最初由该故障服务器承担的通信量重新指向承担着相同用户的另外两个服务器以提供服务。例如,如果SIP服务器S2出故障,则来自电话组P,的所有通信量将由SIP服务器S,服务,来自电话组P2的所有通信量将由SIP服务器S3服务。可以从数学上表述为,在给定的相同电话组通信量特征下,为了获得最佳荷载平衡条件,a的值应为0.5。换句话说,在正常条件下,来自每个电话组的通信量应该均等地分给它的两个服务器。应注意的是,从每个电话组产生并分配到SIP服务器的通信量只涉及信令信息。因此,有多种途径来实现将通信量均等地分给两个SIP服务器的预期效果,包括将连续会话启动请求随机地分配给两个服务器或者在两个服务器之间交替转换这些请求。从上面所述的内容,本领域技术人员应理解,本发明所公开的结构(使用n个服务器)的成本低于一对n配置(使用一个服务器保护n个服务器,其结果是总共n+l个服务器)。至于内存需求,本发明所公开的结构要求每个服务器提供足够的内存以保持两个电话组的数据库,而与n为多大完全无关。因此,这种结构是可扩展的,剩下的话题就是这种设计是否能获得高可用性。诸如电话交换机等系统的可用性通常被表述为分数。例如,用于公用电话交换网络的数字电话交换机经常由于具有可用性为0.99999(所谓的"五个9"标准)的高可靠性而被称道。使用简单的计算平均每年故障期=(365x24x60)(1-A)其中A是可用性数值,所述五个9可用性标准换算成平均每年故障期只有5.3分钟。可用性这一含义对于单个服务器而言是相当清楚的。然而对于如图2所示的服务器网络,情况则不是那么清楚。为了避免含糊不清,采用严格的定义,艮P,如果任--个电话组无法工作,则认为整个网络出了故障。例如,如果SIP服务器S,和S2出故障,则电话组P,无法工作,就宣告该网络出了故障,而不管其它电话组是否可以工作。按照这种定义,下面将对使用了图2所示的HA结构的网络的可用性与每个服务器的一对—冗余传统设计进行比较。如附录所示,如果使用h述的不允许任何电话组无法工作的严格定义,则本发明所公开的结构与一对一冗余配置具有近似相同的可用性(或可靠性)。这里显然值得考虑的是,本发明所公开的结构的成本是一对一方案的成本的一半。总而宫之,本发明公幵了为基于SIP的VoIP网络提供高可用性(HA)的优选方法和高效结构,所述VoIP网络包括n(nd)个被称为SIP服务器的通信服务器,这些SIP服务器为n个用户组(或n个电话组)提供服务。在上下文中,我们使用HA的严格定义来表明所有的电话组都必须接受服务,对任一个组的服务传送失败将致使整个网络处于"故障"状态。在本发明所公开的HA结构中,一些关键的联网特征如下所示--整个网络具有向n个电话组提供服务的n个SIP服务器。-每个电话组被分配成由两个不同的SIP服务器服务。-对于任选的两个电话组,必须遵循以下两个条件之一(a)这两个电话组由四个不同的SIP服务器服务,或者(b)这两个电话组由三个不同的SIP服务器服务,就是说,它们由一个共用的服务器服务。-对于每个SIP服务器,其必须服务至多两个电话组,并且其不断地维护这两个组中的用户(或电话)的相关注册信息。-对于每个电话组,该组中的电话必须不断地保持向两个不同SIP服务器的注册,并且在一个SIP服务器出故障的情况下,这些电话必须有能力将服务转给另一个正在工作的SIP服务器,不管是通过自动还是手动。与现有技术的其它可选方案相比较,前述HA结构的优点是明显的-本发明提供的设计仅需要n个SIP服务器来支持n个电话组,而在传统的一对一完全冗余配置中需要2n个服务器才能支持n个电话组。广义地说,这样等于有50%的成本縮减。-在本发明提供的设计中,每个SIP服务器只需具有足够的处理能力和内存空间以支持至多两个电话组,而与网络的大小n完全无关,因此使得本设计可扩展至任意大的n。-不管上面所述的设备效率如何,本发明提供的设计所获得的可靠性没有降低。换句话说,在感兴趣的实际应用场合,本设计所获得的可靠性或可用性比得上传统的一对一完全冗余配置。虽然为了解释的目的已经公开了本发明的优选实施例,但本领域技术人员应理解,在不脱离由所附权利要求限定的本发明的范預和精神的情况下,可以作出各种添加、修改和替换。附录可用性计算计算本发明所公开的图1所示HA结构的精确可用性是十分复杂的。但是,我们设法估计一个性能范围然后将其与传统的一对一冗余方案的可靠性相比较。传统的--对一冗余结构如图3所示。参照图3,IhA表示每个服务器(或SIP服务器)的可用性。服务于特定用户组(电话组)的一对冗余服务器的可用性A2由以下方程给出A2=1-(1-A)2=A(2-A)(1)这是图3中每个用户组的可用性。图3中一对一方案的总的网络可用性Aft由以下方程给出AR=(A2)n=An(2-A)n(2)由于要求任何用户组不允许出现故障,因此,总的可用性相当于所有n个组都可用时的概率。很难计算出图2所示结构的准确可用性。但是本领域技术人员应理解,以下方程是个范围Av(总的网络HA}>Av3+Avl+Av2(3)其中A、.表示总的可用性,Av3表示当所有服务器都工作时的可用性,Avl表示当一个服务器出故障时的可用性,Av2表示当不相邻的两个服务器出故障时的可用性。换句话说,Av大于该系统不会被视为出故障的那些条件所对应的可能性的总和。以下是对于Av的下一级范围Av>An+n(1-A)An_'+("C2-n)(1-A)2An-2(4)其中nC2表示n(n-l)/2。将方程(2)和方程(4)的值计算在下表中以便比较。<table>tableseeoriginaldocumentpage13</column></row><table>从该表中具有实际意义的这些值可以看出,本发明提供的设计的性能至少可以和一对一方案相媲美。权利要求1.一种在设有多个用户和多个管理服务器的网络中提供高可用性的方法,所述方法包括以下步骤将所述用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的-部分;将所述用户组的数据库复制在所述服务器的子集p中,所述子集分担相应用户组的处理荷载,同时每个所述服务器承担q个不同组中的用户;一旦某一服务器出故障,则使承担所述故障服务器的用户的其它服务器承接那些用户的故障服务器份额;藉此,每个用户组的处理荷载由p个冗余来处理,提高了网络可用性的级别。2.如权利要求l所述的方法,其中,所述网络是采用了SIP标准的因特网协议语音传输网络,并且所述管理服务器是SIP服务器。3.如权利要求2所述的方法,其中,p-2,并且q-2。4.--种设有多个用户和多个管理服务器的网络,所述网络包括计算机可执行的并且存储在计算机中的程序模块,其用于保持将所述用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的一部分存储媒介,其用于保持所述服务器的子集p的用户组的数据库的拷贝,所述服务器分担相应用户组的处理荷载,同时每个所述服务器承担不同用户组中的q个用户控制模块,其对服务器故障作出响应,使承担所述故障服务器的q个用户的其它服务器承接那些用户的故障服务器份额。5.如权利要求4所述的网络,其中,所述网络是采用了SIP标准的因特网协议语音传输网络,并且所述管理服务器是SIP服务器。6.如权利要求5所述的网络,其中,p-2,并且q-2。7.—种在设有多个用户和多个管理服务器的网络中的控制子系统,所述控制子系统包括计算机可执行的并且存储在计算机中的第一程序模块,其用于保持将所述用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的一部分;-计算机可执行的并且存储在计算机中的第二程序模块,其用于使存储媒介保持所述服务器的子集p的用户组的数据库的拷贝,所述服务器分担相应用户组的处理荷载,同时每个所述服务器承担不同用户组中的q个用户;控制程序模块,其对服务器故障作出响应,使承担所述故障服务器的q个用户的其它服务器承接那些用户的故障服务器份额。8.如权利要求7所述的控制子系统,其中,所述网络是釆用了SIP标准的因特网协议语音传输网络,并且所述管理服务器是SIP服务器。9.如权利要求8所述的控制子系统,其中,p=2,并且q-2。10.—种与设有多个用户和多个管理服务器的网络一起使用的可执行计算机程序,所述计算机程序存储在计算机可读媒介中并且包括第一可执行程序模块,其用于保持将所述用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的一部分;第二可执行程序模块,其用于使存储媒介保持所述服务器的子集p的用户组的数据库的拷贝,所述服务器分担相应用户组的处理荷载,同时每个所述服务器承担不同用户组中的q个用户;第三可执行程序模块,其对服务器故障作出响应,使承担所述故障服务器的q个用户的其它服务器承接那些用户的故障服务器份额。11.如权利要求10所述的计算机程序,其中,所述网络是采用了SIP标准的因特网协议语音传输网络,并且所述管理服务器是SIP服务器。12.如权利要求ll所述的计算机程序,其中,p=2,并且q-2。全文摘要多个用户以及m个服务器与网络连接。将这些用户编成n个用户组,每个所述用户组包括多个用户,使得同组中的所有用户是允许他们两两之间相互通信的共用数据库的一部分。将该数据库复制在所述服务器的子集p中,所述子集分担相应用户组的处理荷载。当各自用户组中的用户想要与另一个用户通信时,子集p中的服务器之一将承担必要的处理从而启动该连接的建立。同时,每个服务器承担q个不同组中的用户。如果服务器之一出故障,则每个子集p中承担该故障服务器的用户的每一个其它服务器将承接那些用户的故障服务器份额。因此,每个用户组的处理荷载由p个(子集中的服务器数量)冗余来处理,从而保证高级别的可用性。文档编号H04L12/28GK101146003SQ20071013588公开日2008年3月19日申请日期2007年8月1日优先权日2006年8月1日发明者伍继贤,巴曼德·班差,阮绍瑀申请人:博尔网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1