发明内容
针对上述现有技术的不足之处,本发明提供了一种视讯会议的备份方法和装置,能够减少同步数据量,并缩短会议中断时间。
本发明提供了一种视讯会议的备份方法,包括:
根据第一多点控制单元MCU的指示,为第一MCU的主会议创建备份会议;
将主会议的会议信息同步到备份会议;
在满足设定条件时,按照所述会议信息将备份会议切换为主会议。
可选地,所述方法还包括:检测第一MCU的工作状态;
所述设定条件包括第一MCU的工作状态异常。
可选地,所述方法还包括:检测主会议的状态;
所述设定条件包括主会议的状态异常。
优选地,所述第一MCU的指示中包括主会议的标识;
在创建备份会议前,所述方法还包括:如果主会议的标识与本节点已有会议的标识相同,则通知第一MCU更改主会议标识。
优选地,所述方法还包括:
根据同步的会议信息计算备份会议所需的资源;
如果备份会议所需的资源大于本节点能够提供的资源,则通知第一MCU资源不足并删除备份会议,否则预留备份会议所需的资源。
本发明还公开了一种视讯会议的备份方法,包括:
向第二MCU发送为本节点的主会议创建备份会议的指示;
将主会议的会议信息同步到备份会议;
在第二MCU的备份会议切换为主会议时,将本节点的主会议切换为备份会议。
优选地,所述方法还包括:检测备份会议的当前会议类型,以确定其是否切换为主会议。
优选地,所述创建备份会议的指示中包括主会议标识;
所述方法还包括:在收到第二MCU更改主会议标识的通知后,以修改后的主会议标识重新发送创建备份会议的指示。
本发明提供的一种视讯会议的备份装置,包括:
备份创建单元,用来根据第一MCU的指示,为第一MCU的主会议创建备份会议;
备份同步单元,用来将主会议的会议信息同步到备份会议;
备份切换单元,用来在满足设定条件时,按照所述会议信息将备份会议切换为主会议。
可选地,所述装置还包括设备检测单元,用来检测第一MCU的工作状态;
所述设定条件包括第一MCU工作状态异常。
可选地,所述装置还包括会议检测单元,用来检测主会议的状态;
所述设定条件包括主会议状态异常。
优选地,所述第一MCU的指示中还包括主会议标识;
所述备份创建单元还包括标识通知模块,用来查看所述主会议标识是否与本节点已有会议的标识相同,如果相同则通知第一MCU更改主会议标识;否则由备份创建单元创建备份会议。
优选地,所述装置还包括资源预留单元,用来按照同步的会议信息计算备份会议所需的资源,并在备份会议所需的资源大于本节点能够提供的资源时,通知第一MCU资源不足并删除备份会议,否则预留备份会议所需的资源。
本发明还提供了一种视讯会议的备份装置,包括:
指示单元,用来向第二MCU发送为本节点的主会议创建备份会议的指示;
主同步单元,用来将主节点的会议信息同步到备份会议;
主切换单元,用来在第二MCU的备份会议切换为主会议时,将本节点的主会议切换为备份会议。
优选地,所述装置还包括类型检测单元,用来检测备份会议的当前会议类型,以确定其是否切换为主会议。
优选地,所述创建备份会议的指示中包括主会议标识;
所述装置还包括标识更改单元,用来在收到第二MCU更改主会议标识的通知后,修改主会议标识并通知指示单元以修改后的主会议标识重新发送创建备份会议的指示。
本发明中对视讯会议进行备份,将主会议的会议信息同步到为其创建的备份会议,在设定条件下将备份会议切换为主会议以继续提供视讯会议业务。相对于现有技术中对MCU设备进行备份的技术方案,本发明中备份会议所在的MCU可以同时运行自己的视讯业务,提高了资源利用率;由于备份会议所在的MCU也处于业务运行状态,在发生切换时可以直接重新召开会议,不再需要从备份状态转换到业务运行状态的时间,缩短了会议中断的时间;另外,本发明不需要同步MCU的设置等与主会议无关的信息,减少了同步的数据量;
本发明中对主会议的状态进行检测,在主会议所在的MCU工作状态正常但主会议状态异常时也可以进行切换,进一步提高了视讯会议的可用性。
具体实施方式
现有技术中采用备机MCU作为主机MCU的备份,其实现的实质上是MCU设备的高可用性而并非视讯业务的高可用性。本发明中,将视讯会议作为备份的对象,把运行在一台MCU上的视讯会议在另一台MCU上进行备份,主会议所在的MCU和备份会议所在的MCU都可以同时运行各自的其他视讯业务,在提高MCU利用率的同时提供视讯业务的高可用性。
本发明所述视讯会议备份方法实施例一的流程如图2所示。本实施例中,第一MCU为主会议所在的MCU,第二MCU为备份会议所在的MCU。
步骤S210:第一MCU指示第二MCU为主会议创建备份会议。
第一MCU将其上需要备份的视讯会议作为主会议,向第二MCU发送创建备份会议的指示,第二MCU按照该指示为主会议创建备份会议。
步骤S220:第一MCU与第二MCU进行主会议和备份会议的会议信息同步。
主会议和备份会议的会议信息同步可以由第一MCU发起,也可以由第二MCU发起,具体交互所采用的协议和报文格式可以由视讯业务系统的管理员根据实际需求确定,还可以采用自定义的协议和报文格式。会议信息同步可以定期进行,也可以在主会议的会议信息发生变化时进行。
同步的会议信息可以由管理员确定,只要第二MCU能够根据这些信息召开主会议即可。会议信息通常包括参加会议的终端列表,以及视讯会议的一些参数,如所使用的音视频编解码等。这样在发生会议切换时,备份会议可以采用当前的会议信息召开会议。
步骤S230:第二MCU判断是否满足会议切换的设定条件,不满足则继续执行本步骤,满足则执行步骤S240。
管理员可以设定第二MCU上的备份会议在何种条件下切换为主会议,第二MCU相应地对是否满足这些设定条件进行判断。
例如,设定条件可以是第一MCU工作状态异常,包括设备故障、断网以及其他导致第一MCU不能正常运行视讯会议业务的情况。这时第二MCU需要对第一MCU的工作状态进行检测;设定条件可以是主会议状态异常,即不能正常运行视讯业务的情况,此时即使第一MCU处于正常工作状态但仍会导致会议中断,这种情况下第二MCU也需要对主会议的状态进行检测;设定条件还可以包括管理员手动进行会议切换,当管理员输入切换指令时,第二MCU将备份会议升级为主会议;当然,设定条件还可以是上述各种情况的组合。
步骤S240:第二MCU将备份会议切换为主会议。
如果发生切换时主会议正在召开,则该视讯会议发生中断。第二MCU将备份会议的会议类型置为主会议后,按照当前同步的会议信息重新召开会议。由于第二MCU也在运行视讯业务,可以直接召开会议,而不必像现有技术中等待MCU完成启动过程,因此本发明缩短了视讯会议的中断时间。
步骤S250:在第二MCU上的备份会议切换为主会议时,第一MCU将主会议切换为备份会议。
对于管理员手动启动的会议切换,第一MCU可以在收到管理员指令后立即将主会议切换为备份会议,这种情况下可以与第二MCU将备份会议切换为主会议同时进行。对于主会议状态异常的情况,往往需要第一MCU对第二MCU上备份会议的当前会议类型进行检测,在检测原备份会议的当前会议类型为主会议后,第一MCU将本节点上的原主会议的会议类型置为备份会议。对于第一MCU工作状态异常的情况,则有可能在第二MCU完成会议切换,直到第一MCU恢复正常工作状态时,才能将原主会议切换为备份会议。
在步骤S250之后,主会议在第二MCU上运行,备份会议在第一MCU上运行,此时由第一MCU判断是否满足会议切换的设定条件,并在满足设定条件时进行备份会议至主会议的切换。
第二MCU在整个流程中都可以正常运行视讯业务,例如召开自己的视讯会议等,而不必处于闲置的状态。这样两台MCU可以同时工作,提高了资源的利用率。另外,现有技术中必须由两台MCU相互备份,而本发明中主会议和备份会议只要位于不同的MCU上即可,这样多个对应的主会议和备份会议可以由多台MCU来运行,提高了备份的灵活性。
在本发明所述视讯会议备份方法实施例二中,第一MCU为主会议所在的MCU,第二MCU为备份会议所在的MCU;第一MCU与第二MCU上,视讯会议的会议类型包括3种,主会议、备份会议和普通会议,其中普通会议为没有进行备份的视讯会议。本实施例中会议切换的设定条件为主会议所在的MCU工作状态异常或主会议状态异常。
实施例二中第一MCU的处理流程如图3所示。
步骤S301:管理员在第一MCU上创建视频会议,设置视频会议的会议类型,将需要备份的会议设置为主会议,不需要备份的会议设置为普通会议。
步骤S302:判断该视频会议是否为主会议,如果是执行步骤S303,否则召开普通会议。
步骤S303:指定备份会议所在的第二MCU。
可以通过指定IP(Internet Protocol,网际协议)地址来指定第二MCU,也可以通过网络其他可寻址的方式来进行指定。
步骤S304:第一MCU向第二MCU发起会议信息同步,在会议信息同步报文中携带主会议的会议信息和主会议的标识,并接收第二MCU的响应。
本实施例中,第一MCU采用主会议的第一次会议信息同步来指示第二MCU创建该主会议的备份会议。当第二MCU收到会议信息同步报文时,如果该报文中的主会议标识为已创建的某个备份会议对应的主会议标识,则对该备份会议进行会议信息的同步;如果该报文中的主会议标识在本MCU上尚未创建备份会议,则该报文同时还作为创建备份会议的指示。
会议信息同步可以采用TCP协议进行,本实施中推荐的一种会议信息同步过程包括TCP连接建立、会议信息传输、资源判定、TCP连接拆除四个阶段:
在TCP连接建立阶段,遵循TCP协议的三次握手过程建立TCP连接。这一阶段中第一MCU判断第二MCU是否存在,如果不存在,则更改该视讯会议的会议类型为普通会议,并以普通会议方式召开;如果第二MCU存在,则继续后续流程。
在会议信息传输阶段,第一MCU将会议信息和主会议标识打包,通过建立的TCP连接发送给第二MCU,第二MCU进行接收确认。可以采用如下的数据结构来打包会议信息和主会议标识:
typedef struct CONFERENCE_INFO
{
unsigned char ConferenceName;
other Conference Parameter;
terminal struct TerminalList;
……
}ConferenceInfo
上述数据结构中,ConferenceName为主会议标识,用于区分不同的视讯会议;other Conference Parameter是主会议的参数信息,可以包括主会议使用的音视频编解码、是否启用多分屏、多分屏方式等参数;TerminalList是参加会议的终端列表,即当前会议召集或允许哪些终端加入会议。会议信息的打包和分段通常在应用层进行,在第一MCU和第二MCU之间建立的TCP连接上进行传输,直到所有信息传输完成。
资源判定阶段在第二MCU上进行,对主会议的第一次会议信息同步,第二MCU查找指示中的主会议标识是否与本节点上已有的会议标识相同,如果相同则发生标识冲突,在对会议信息同步的响应中通知第一MCU修改主会议标识,之后进入TCP连接拆除阶段;否则创建备份会议,并继续以下处理过程。
对每一次会议信息同步,第二MCU将接收到的会议信息解包,根据其中的会议信息计算备份会议所需的资源,并与本节点当前能够提供的资源进行比较,如果本节点当前能够提供的资源不能满足备份会议的需求,则在对会议信息同步报文的响应中通知第一MCU资源不足并删除备份会议;如果第二MCU的资源足够,则向第一MCU返回成功响应。
在会议信息传输完毕、第二MCU的响应到达第一MCU后,进入TCP连接拆除阶段,遵循TCP协议的连接拆除过程。
在第二MCU成功创建备份会议后,第一MCU与第二MCU定时进行会议信息同步,或者第一MCU在会议信息发生变化时向第二MCU发起会议信息同步过程。
步骤S305:根据第二MCU的响应判断其资源是否足够,如果是则执行步骤S306,否则将会议类型修改为普通会,并召开普通会议。
步骤S306:根据第二MCU的响应判断是否发生主会议标识冲突,如果是,则修改主会议标识后转步骤S304,重新向第二MCU发送创建备份会议的指示;否则执行步骤S307。
步骤S307:与第二MCU相互检测MCU的工作状态、会议的状态以及会议的类型。
本实施例中第一MCU和第二MCU定时检测对方的工作状态、会议的状态以及会议的类型。检测过程可以采用TCP或UDP协议,一种推荐的方式如下所示:
当第一MCU进行检测时,向第二MCU发送UDP询问报文,通知第二MCU本节点的接收端口号、本节点的当前会议类型,并询问第二MCU的工作状态和备份会议的状态;第二MCU以第一MCU的接收端口号返回UDP响应报文,其中携带本节点的工作状态和备份会议的状态。当第二MCU进行检测时,向第一MCU发送UDP询问报文,通知第一MCU本节点的接收端口号、本节点的当前会议类型,并询问第一MCU的工作状态和主会议的状态;第一MCU以第二MCU的接收端口号返回UDP响应报文,其中携带并返回本节点的工作状态、主会议的状态以及主会议是否正在召开。
在UDP询问报文中可以包括如下的数据结构:
typedef struct CONFERENCE_STATUS_REQUEST
{
unsigned char ConferenceName;
unsigned int ConferenceLabel;
unsigned int ListeningPort;
……
}ConferenceStatusRequest
上述数据结构中,ConferenceName为主会议标识或备份会议标识(主会议和备份会议通常采用同一个的会议标识);ConferenceLabel表明询问报文的MCU中的会议类型,其值为1代表主会议,其值为2代表备份会议,其值为0代表普通会议,其他值保留使用;ListeningPort是本节点的接收端口号。
响应报文可以包括如下的数据结构:
typedef struct CONFERENCE_STATUS_RESPONSE
{
unsigned char ConferenceName;
unsigned int ConferenceStatus;
}ConferenceStatusResponse
其中,ConferenceName为主会议标识或备份会议标识;ConferenceStatus为会议状态,其值为1代表MCU的工作状态正常且会议状态正常,其值为2代表MCU的工作状态正常且会议状态异常,其值为3代表MCU的工作状态异常且会议状态正常,其值为4代表MCU的工作状态异常且会议状态异常;由于MCU的工作状态异常时无论会议状态是否正常一般都不能运行视讯业务,因此也可以将上述值为3和值为4的情况合并,用一个值代表MCU工作状态异常。
步骤S308:判断是否第二MCU的工作状态或备份会议的状态发生变化,如果是则进行显示,向管理员进行提示。
如果第一MCU没有收到第二MCU对本节点发送的询问报文的响应,同时也没有收到第二MCU的询问报文,在超过预定时间或者连续数次后第一MCU认为第二MCU的工作状态异常;当第二MCU在对询问报文的响应中表明自己的工作状态异常或者备份会议状态异常时,第一MCU认为第二MCU工作状态异常或者备份会议状态异常。
步骤S309:判断第二MCU的会议类型是否为备份会议,如果是,则将主会议切换为备份会议。
当第二MCU检测到第一MCU的工作状态异常或主会议状态异常后,将备份会议切换为主会议,并继续执行步骤S307,与第一MCU相互进行工作状态、会议状态和会议类型的检测。如果第一MCU的主会议状态异常而第一MCU的工作状态正常,则第一MCU从第二MCU发送的UDP询问报文中得知其会议类型变为主会议后,可以将本节点的主会议切换为备份会议;如果第一MCU的工作状态异常,则在第一MCU的工作状态恢复后,从第二MCU发送的UDP询问报文中得知其会议类型变为主会议后,将本节点的主会议切换为备份会议。
实施例二中第二MCU的处理流程如图4所示。
步骤S401:响应第一MCU发起的会议信息同步。
结合上述对第一MCU处理流程的描述可知,第二MCU从会议信息同步报文中提取主会议标识,如果该主会议标识是已创建的某个备份会议对应的主会议标识,则对该备份会议进行会议信息的同步;如果该主会议标识在本MCU上尚未创建备份会议,则本次信息同步为该主会议的第一次会议信息同步,同时还作为创建备份会议的指示。
对主会议的第一次会议信息同步,第二MCU查找指示中的主会议标识是否与本节点上已有的会议标识相同,如果相同则发生标识冲突,向第一MCU返回对会议信息同步的响应,通知第一MCU修改主会议标识;否则创建备份会议。
对主会议的每一次会议信息同步,第二MCU根据接收到的会议信息计算备份会议所需的资源,并与本节点当前能够提供的资源进行比较,如果本节点当前能够提供的资源不能满足备份会议的需求,则在对会议信息同步报文的响应中通知第一MCU资源不足并删除备份会议;如果第二MCU的资源足够,则向第一MCU返回成功响应。
在第二MCU成功创建备份会议后,第一MCU与第二MCU定时进行会议信息同步,或者第一MCU在会议信息发生变化时向第二MCU发起会议信息同步过程。
本实施例推荐的一种会议信息同步过程请参见对步骤S304的描述,此处不再重复。
步骤S402:与第一MCU相互检测MCU的工作状态、会议的状态以及会议的类型。本实施例中第一MCU和第二MCU定时检测对方的工作状态、会议的状态以及会议的类型,详细描述请参见对步骤S307的说明。
步骤S403:判断第一MCU的工作状态或主会议的状态是否异常,如果是,则执行步骤S404,将备份会议切换为主会议。如何判断第一MCU的工作状态或主会议状态异常请参见对步骤S308的描述。
在将备份会议切换为主会议后,第二MCU继续定时与第一MCU相互检测MCU的工作状态、会议的状态以及会议的类型。第一MCU在检测到第二MCU将备份会议切换为主会议后,将原主会议切换为备份会议,并继续作为第二MCU上主会议的备份会议提供高可用性。
本领域普通技术人员可以理解本发明可以借助计算机程序结合已知的硬件平台实现,基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序(或称软件产品)的形式体现出来,该计算机程序存储在一个存储介质中,包括若干指令用以使得一台管理设备(具备足够运行该计算机程序的硬件平台)执行本发明各个实施例所述的方法。
一种能够实施本发明所述方法的视讯会议系统如图5所示,包括主会议所在的MCU 500和备份会议所在的MCU 600。MCU 500包括指示单元520、主同步单元530和主切换单元540,还可以包括类型检测单元550和标识更改单元510;MCU 600包括备份创建单元610、备份同步单元620和备份切换单元630,还可以包括设备检测单元650、会议检测单元660和资源预留单元640。
MCU 500在创建主会议后,由指示单元520向MCU 600发送为该主会议创建备份会议的指示,该指示中包括主会议标识。MCU 600的备份创建单元610接收到MCU 500的指示后,按照指示为MCU 500的主会议创建备份会议。备份创建单元610可以包括标识通知模块,从MCU 500的指示中解析出主会议标识,查找MCU 600上已有会议的标识是否与该主会议标识相同,如果相同则发生标识冲突,标识通知模块通知MCU 500更改主会议标识,并不再创建备份会议;如果不同则由备份创建单元610创建备份会议。
MCU 500可以包括标识更改单元510,在收到MCU 600更改会议标识的通知后,修改主会议标识,并通知指示单元520采用修改后的主会议标识重新向MCU 600发送创建备份会议的指示。
在MCU 600创建备份会议后,MCU 500的主同步单元530与MCU600的备份同步单元620将主会议的会议信息同步到备份会议。会议信息同步可以定时进行,也可以在主会议的会议信息发生变化时进行。
MCU 600可以包括资源预留单元640,在收到MCU 500同步的会议信息后,资源预留单元640按照会议信息计算备份会议所需的资源,如果备份会议所需的资源大于MCU 600上当前能够提供的资源,通知MCU500本节点的资源不足并删除备份会议;如果当前本节点足以提供备份会议所需的资源,则预留资源供备份会议使用。
在满足设定条件时,MCU 600的备份切换单元630将备份会议切换为主会议,并更改会议类型为主会议。在MCU 600的备份会议切换为主会议时,MCU 500的主切换单元540将本节点的主会议切换为备份会议。
设定条件可以包括MCU 500的工作状态异常,此时MCU 600可以包括设备检测单元650,检测MCU 500的工作状态,当检测到MCU 500的工作状态异常时,通知备份切换单元630。
设定条件可以包括主会议的状态异常,此时MCU 600可以包括会议检测单元660,检测主会议的状态,当检测到主会议状态异常时通知备份切换单元630。
MCU 500可以包括类型检测单元550,在检测到MCU 600的会议类型由备份会议转变为主会议后,通知主切换单元540,由主切换单元540将本节点的主会议切换为备份会议。
本发明中,MCU上可以运行主会议,也可以同时运行其他MCU上主会议的备份会议,本领域技术人员均可了解,上述MCU 500中的各个单元和MCU 600中的各个单元可以位于同一个MCU上。MCU上还可以同时运行不需要进行备份的普通会议。
本发明避免了现有技术中在发生主备切换时备机MCU所需的启动过程,降低了会议中断的时间,有效地提高了会议的连续性;本发明中备份会议所在的MCU仍然可以召开其他会议和进行会议控制,更加充分地利用了设备资源,降低了用户的投资成本;本发明不限于两个MCU的互相备份,多个主会议和对应的备份会议可以分散在多个MCU上,提高了备份的灵活性;本发明中可以只同步与会议有关的信息,不必像现有技术中一样同步MCU上几乎所有的信息,减少了同步的数据量。
需要声明的是,上述发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。