一种分布式群组服务器的实现及其数据同步方法与流程

专利2022-05-10  92



1.本发明涉及企业通信领域,尤其在融合通信系统中群组服务分布式部署时的一种群组服务器的实现及其数据同步方法。


背景技术:

2.传统的融合通信系统是由集中式的融合通信服务器来处理所有的用户业务数据,而在特定专用网络环境下,如融合通信服务器分布式部署在通信车辆上。在分布式系统中,融合通信服务器分散布署在骨干网络,如图1所示。由于终端的请求只会在单个服务器上,所以各个服务器之间的数据一致性是分布式融合通信系统需要解决的重要问题。融合通信的业务功能包括语音呼叫、即时消息、呈现、会议、群组等。其中群组业务为其他业务功能实现的基础,要解决数据一致性问题,首先要解决群组服务器的数据同步问题。


技术实现要素:

3.本发明的主要目的在于解决分布式融合通信系统中的群组数据同步问题。
4.本发明提供一种基于融合通通信系统的分布式群组服务器的实现,所述分布式群组服务器的实现包括:群组管理模块,用于处理终端和管理员(web终端)发起的群组操作请求。
5.群组同步模块,用于处理群组服务器之间的定时通告以及群组同步数据。
6.所述群组同步模块,包括通告定时发送模块,群组同步消息发送模块,消息接收及处理模块,服务器状态管理模块。
7.所述通告定时发送模块,用于根据本地全网服务器信息表中的ip地址向其他群组服务器发送定时通告消息。
8.所述群组同步消息发送模块,用于发送所述群组同步通知消息,发送所述群组合并请求,发送所述允许群组单节点导入通知,发送所述群组单节点导入请求,发送所述允许群组全部导入通过,发送所述群组全部导入请求六种消息。
9.所述消息接收及处理模块,用于接收发送到本群组服务器固定端口的udp消息并进行相应处理,接收的udp消息包括所述定时通告消息和所述群组同步通知消息。
10.所述消息接收及处理模块,还用于收到定时通告消息后,将消息内容中的其他结点的群组总版本号与本地进行比较后,决定是否发送群组合并通知或群组单节点导入请求来同步群组数据。
11.所述消息接收及处理模块,还用于收到群组同步通知消息后,对本地对应的群组进行数据更新和保存,并向本域在线的群组成员发送群组操作通知。
12.所述服务器状态管理模块,用于管理服务器数据同步的状态。
13.所述全网服务器信息表用于记录网络中所有规划群组服务器的唯一标识(psi),群组服务器ip地址,各个群组服务器的群组总版本号,在服务器部署时手动导入全网服务器信息表至数据库中。
14.本发明提供还一种群组同步方法,该方法为一种群组服务器之间的数据同步方法。
15.所述群组服务器之间的数据同步,进一步包括:每个群组服务器向网络中的其他群组服务器发送定时通告消息。
16.所述定时通告消息的消息内容包括群组服务器的唯一标识、ip地址、服务器状态以及各个服务器的群组总版本号。
17.所述群组总版本号进一步包括:每个群组服务器上创建的群组只能请求在该服务器上操作,每个群组服务器上挂载的终端不能操作非本服务器上创建的群组,每个群组服务器上有一个用于管理本地创建的群组操作的群组总版本号,每产生一次操作,群组总版本号相应增加。
18.所述群组服务器之间的数据同步,进一步包括:单个群组服务器产生群组操作时,实时向全网所有处于连接状态的群组服务器发送群组同步通知消息,其他结点收到群组同步通知消息后获取群组数据完成实时的数据同步。
19.所述群组同步通知消息,用于告知服务器产生操作的群组数据。
20.网络中的群组服务器通过定时通告消息感知到网络中某个群组服务器的各个结点群组总版本号较低时,主动向该群组服器发送群组合并通知,该群组服务器收到群组合并通知后获取通知发起者上所创建的群组的最新数据。
21.网络中的群组服务器通过定时通告消息感知到网络中某个群组服务器的另一个结点群组总版本号较低,而另一个结点在网络中处于未连接状态,网络中的群组服务器主动向该群组服务器发送允许单结点导入通知,该群组服务器选择网络时延最短的群组服务器发送单结点导入请求,请求向网络中的群组服务器获取处于未连接状态的群组服务器上所创建群组的最新数据。
22.网络中的群组服务器通过定时通告消息感知到网络中的新结点,主动向该新结点发送允许群组全部导入通知,该新结点选择网络时延最短的群组服务器并向其发送群组全部导入请求,获取所有群组的最新数据。
23.所述群组合并通知用于单个结点向网络中本机群组总版本号较低的结点发送群组数据同步通知,消息内容为有变化的群组所产生的操作。
24.所述允许群组单节点导入通知用于群组服务器通知其他群组服务器允许导入其他处于未连接状态的群组服务器上所创建的群组。
25.所述群组单节点导入请求用于网络中的群组版本较低的服务器向网络中时延最短的群组服务器请求同步处于未连接状态的结点上所创建的所有群组。
26.所述允许群组全部导入通知用于群组服务器通知网络中的新结点允许导入所有服务器上创建的所有群组。
27.所述群组全部导入请求用于网络中的新结点向网络中时延最短的群组服务器请求同步所有服务器群组数据。
附图说明
28.图1、实时群组操作同步示意图;
图2、群组合并示意图;图3、群组单节点导入示意图;图4、群组全部导入示意图;图5、群组服务器组成结构示意图。
具体实施方式
29.为了能够更加详尽地了解本发明的特点及技术内容,下面结合附图对本发明的实现原理进行详细阐述。
30.群组服务器之间的数据同步首先要随时感知网络中有哪些群组服务器,每个结点从全网服务器信息表中读取所有群组服务器的ip地址,定时向网络中的其他结点发送通告消息。同时每个群组服务器监听其他群组服务器发送的通告消息,如果在固定周期时间内收不到某个群组服务器的通告消息便认为该群组服务器处于未连接状态。通告消息中携带本机唯一标识,ip地址,服务器状态和各个节点的群组总版本号。
31.群组服务器之间实时的群组数据同步由群组同步通知消息来实现。当有群组操作时,产生群组操作的主域服务器在对本地数据库中的群组数据进行更新和处理完毕后,向本结点的在线成员发送群组操作通知,同时向在线的网络中其他结点发送群组同步通知消息,其他结点收到群组同步通知消息后,更新本地的群组数据,如果其他结点为成员域即有被操作的群组成员在线,其他结点向本结点上的成员终端发送群组操作通知,通知本节点群组成员更新群组数据。对于处于未连接状态的结点,其群组同步通知消息保存在数据库中。
32.所有群组操作遵循终端或管理员只能在群组创建的结点上发起群组操作或修改请求这一原则。
33.对于断开网络一段时间后又回到网络中的结点,其他结点收到该结点的通告消息发现该结点上本机的群组总版本号比本机群组总版本号要低,便从数据库中查询该结点的群组同步通知消息,并将该结点的所有群组同步消息的群组操作进行合并,合并后的群组操作和各个群组版本号携带在所述群组合并通知的消息体中发送给该结点。该结点收到所述群组合并通知后,进行群组数据同步。
34.对于断开网络一段时间后又回到网络中的结点,其他结点收到该结点的通告消息发该结点上另一结点的群组总版本号比本地的另一结点群组总版本号要低,而另一结点正处于未连接状态,便向该结点发送所述允许群组单结点导入通知,该结点收到所述允许群组单结点导入通知后选择网络时延最短的结点发送所述群组单结点导入请求,收到所述群组单结点导入请求的服务器将处于未连接状态的另一结点上创建的所有群组索引发送给该结点,使该结点获取到了未连接状态的结点上创建的所有群组数据。
35.对于刚加入网络的规划新结点,其他结点收到该结点的通告消息发现该结点上所有节点的版本号均为零,并且定时通告消息体所携带该结点的状态为初始化状态,可以判断该结点为新结点,便向该结点发送允许单节点导入通知,该新结点收到允许群组全部导入通知后向时延最短的结点发送所述群组全部导入请求,收到所述群组全部导入请求的结点将所有结点的群组url携带至响应消息体中发送至规划新结点。规划新结点收到响应消息后获取所有群组的数据,以实现群组数据同步。
36.下面结点附图,通过四个实施例对本发明做进一步详细说明。
37.实施例一:如图1所示,骨干网中有四个群组服务器处于连接状态,终端1发起了群组操作请求,终端1,终端2,终端3均是该群组成员,该群组是在群组服务器1上创建的。群组服务器a收到群组操作请求后,判断该群组是否在本服务器上创建,如果不是本服务器上创建就拒绝群组操作请求。群组服务器a对本地群组数据进行了更新后,向终端1和终端2发送群组操作通知,同时向其他三个群组服务器发送群组同步通知消息,其他三个群组服务器收到群组同步通知消息后,对本地群组数据进行更新,其中群组服务器d上有产生操作的群组成员即终端3在线,群组服务器d向终端3发送群组操作通知,终端3收到消息后更新本地群组数据。这样全网的群组服器和终端都实现了实时的群组数据更新。群组服务器d在同步数据期间,将本机状态置为正在同步状态。
38.实施例二:如图2所示,网络中有四个群组服务器处于连接状态,其中群组服务器a、b、c一直在网络中,群组服务器d为脱离网络一段时间后刚回到网络中。群组服务器d向a、b和c发送定时通告消息,群组服务器a在群组服务器d脱离网络期间产生了群组操作。群组服务器a,b,c分别收到群组服器d发送的定时通告消息,定时通告消息携带了本地群组服务器a,b和c的群组总版本号。群组服务器a取出定时通告消息体,通过比较发现群组服务器d上所存储的群组服器a的群组总版本号低于本地。群组服务器a从数据库中取出群组服务器d脱离网络期间所产生的群组操作,并将操作进行合并,合并后的操作形成消息体,由群组合并通知携带,发送给群组服务器d,群组服务器d收到消息后更新本地群组数据,然后向群组成变化的群组成员发送群组操作通知。服务器d在合并数据期间将本机状态置为正在合并状态。
39.实施例三:如图3所示,网络中有四个群组服务器,其中群组服务器a和b一直在网络中,群组服务器c处于未连接状态即脱离网络,群组服务器d为脱离网络一段时间后刚回到网络中。群组服务器d向a和b发送定时通告消息,群组服务器a和b收到群组服务器d的定时通告后发现,群组服务器d上的c的群组总版本号低于本机,但c又处于未连接状态。群组服务器a和b分别向d发送允许群组单节点导入通知,通知中携带c的唯一标识。d先收到a发送的允许群组单节点导入通知,向a发送群组单节点导入请求,a将本地存储的c上创建的所有群组的url及版本号发送给d,d通过url从a上获取c上创建的所有群组的最新数据。服务器d在单节点导入期间将本机状态置为正在导入状态。
40.实施例四:如图4所示,网络中有三个群组服务器,其中群组服务器a和b一直在网络中,群组服务器c为规划的新结点刚加入网络中。群组服务器c向a和b发送定时通告消息,a和b收到定时通告消息后发现c为新结点。a和b向c发送允许群组全部导入通知,c先收到a发送的通知,便向a发送群组全部导入请求,a收到后将本地所有群组的url及版本号发送给d,d通过url从a上获取所有的群组。服务器c在全部导入期间将本机状态置为全部导入状态。
41.对应于上述方法,本发明还公开一种群组服务器,其组成结构如图5所示,该群组服务器包括: 群组管理模块和群组同步模块。
42.所述群组管理模块,用于处理终端和管理员(web终端)发起的群组操作请求。
43.所述群组同步模块,用于处理群组服务器之间的定时通告以及群组同步数据。
44.所述群组同步模块,包括通告定时发送模块,群组同步消息发送模块,消息接收及处理模块,服务器状态管理模块。
45.所述通告定时发送模块,用于根据本地全网服务器信息表中的ip地址向其他群组服务器发送定时通告消息。
46.所述群组同步消息发送模块,用于发送所述群组同步通知消息,发送所述群组合并请求,发送所述允许群组单节点导入通知,发送所述群组单节点导入请求,发送所述允许群组全部导入通过,发送所述群组全部导入请求六种消息。
47.所述消息接收及处理模块,用于接收发送到本群组服务器固定端口的udp消息并进行相应处理,接收的udp消息包括所述定时通告消息和所述群组同步通知消息。
48.所述消息接收及处理模块,还用于收到定时通告消息后,将消息内容中的其他结点的群组总版本号与本地进行比较后,决定是否发送群组合并通知或群组单节点导入请求来同步群组数据。
49.所述消息接收及处理模块,还用于收到群组同步通知消息后,对本地对应的群组进行数据更新和保存,并向本域在线的群组成员发送群组操作通知。
50.所述服务器状态管理模块,用于管理服务器数据同步的状态。
51.所述全网服务器信息表用于记录网络中所有规划群组服务器的唯一标识(psi),群组服务器ip地址,各个群组服务器的群组总版本号,在服务器部署时手动导入全网服务器信息表至数据库中。
52.本发明解决了分布式融合通信系统中的群组同步问题,不仅解决了实时群组操作各个服务器之间群组同步,还解决了结点脱离网络后又回到网络中和新结点的数据同步。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722221.html

最新回复(0)