一种状态订阅的方法、装置及系统的制作方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种状态订阅的方法、装置及系统。
【背景技术】
[0002]基于呈现Presence业务的状态订阅方法被广泛应用于ICT (Informat1nCommunicat1n Technology,信息通信技术)领域,其中,Presence是以某种通信方式,按照一定的接入准则,实时获取presence信息(如用户状态、通信能力、个人设置等信息),并展现给其它用户的一种方法。目前,随着互联网的普及,越来越多的人喜欢通过即时通信的方式来与别人保持联系。Presence技术在这种即时通信中扮演着非常重要的角色。依靠Presence技术,即时通信业务能以“用户多种状态设置”等功能为基础(如用户设置为“打电话中”、“会议进行中”等多种状态),提供“订阅他人状态信息”等多种丰富的增值服务,为个人/企业用户的办公、会议、通信等多领域提供高效便捷的解决方案。
[0003]然而,在现有技术中,当终端需要订阅其他终端的状态时,会根据终端内的联系人信息发出一个列表订阅消息,这样就同时订阅了多个终端的状态消息。由于该终端和其他终端之间依次进行状态订阅,因此,在系统内部将产生大量的订阅会话,其中,这些订阅会话可以包括同一站点内的PS (Presence Server,呈现服务器)之间的订阅、不同站点间的PS之间的订阅,以及状态变更通知。示例性的,以3个PS为例,系统内部终端的个数为10000,平均每个终端订阅150个其他终端的状态信息,则系统内部产生的订阅会话总数为:10000X 150X (3-1)/3 ;系统内部产生的状态通知数为:终端总的状态发布次数X150X (3-1)/3。因此,在大量终端同时发起状态订阅时,对整个系统的处理性能以及网络流量要求很高。
【发明内容】
[0004]本发明的实施例提供一种状态订阅的方法、装置及系统,能够减少状态订阅时系统内部产生的订阅数和状态通知数,减小在大量终端同时发起状态订阅时对系统的压力。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,本发明实施例提供一种状态订阅的方法,所述方法包括:
[0007]第一呈现服务器接收归属于所述第一呈现服务器的第一终端发布的状态信息;
[0008]所述第一呈现服务器将所述第一终端发布的状态信息广播给其它呈现服务器,所述其它呈现服务器包括第二呈现服务器,以便于所述第二呈现服务器在归属于所述第二呈现服务器的第二终端订阅了所述第一终端对应的状态信息时向所述第二终端通知所述第一终端对应的状态信息,所述第一终端对应的状态信息包括所述第一终端发布的状态信肩、O
[0009]在第一种可能的实现方式中,根据第一方面,所述方法还包括:
[0010]所述第一呈现服务器接收所述第二呈现服务器发送的查询消息,所述查询消息用于查询归属于所述第一呈现服务器的第三终端对应的状态信息;
[0011]所述第一呈现服务器获取所述第三终端对应的状态信息,并将所述第三终端对应的状态信息返回给所述第二呈现服务器;
[0012]所述第一呈现服务器将所述第三终端对应的状态信息广播给所述其它呈现服务器。
[0013]在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,
[0014]如果所述第一呈现服务器存储了所述第三终端发布的状态信息,获取的所述第三终端对应的状态信息包括所述第三终端发布的状态信息;
[0015]如果所述第一呈现服务器没有存储所述第三终端发布的状态信息,获取的所述第三终端对应的状态信息包括所述第三终端的用户的描述信息。
[0016]第二方面,本发明实施例提供一种状态订阅的方法,所述方法包括:
[0017]第二呈现服务器接收归属于所述第二呈现服务器的第二终端发送的订阅消息,所述订阅消息包括联系人列表的标识,用于订阅所述联系人列表中的联系人的状态信息;
[0018]所述第二呈现服务器接收所述第一呈现服务器广播的归属于所述第一呈现服务器的第一终端对应的状态信息;
[0019]所述第二呈现服务器在接收到所述第一终端对应的状态信息并且确定所述第一终端为所述联系人列表中的联系人的终端时,向所述第二终端通知所述第一终端对应的状态息。
[0020]在第一种可能的实现方式中,根据第二方面,在所述第二呈现服务器接收归属于所述第二呈现服务器的所述第二终端发送的订阅消息之后,所述方法还包括:
[0021]所述第二呈现服务器在确定第三终端为所述联系人列表中的联系人的终端、自身没有存储所述第三终端对应的状态信息、并且确定所述第三终端归属于所述第一呈现服务器时,向所述第一呈现服务器发送查询消息,所述查询消息用于查询所述第三终端对应的状态信息;
[0022]所述第二呈现服务器接收所述第一呈现服务器返回的所述第三终端对应的状态信息;
[0023]所述第二呈现服务器将所述第三终端对应的状态信息通知给所述第二终端。
[0024]第三方面,本发明实施例提供一种第一呈现服务器,包括:接收模块和广播模块;
[0025]所述接收模块,用于接收归属于所述第一呈现服务器的第一终端发布的状态信息,并将所述第一终端发布的状态信息传输至所述广播模块;
[0026]所述广播模块,用于从所述接收模块接收所述第一终端发布的状态信息,并将所述第一终端发布的状态信息广播给其它呈现服务器,所述其它呈现服务器包括第二呈现服务器,以便于所述第二呈现服务器在归属于所述第二呈现服务器的第二终端订阅了所述第一终端对应的状态信息时向所述第二终端通知所述第一终端对应的状态信息,所述第一终端对应的状态信息包括所述第一终端发布的状态信息。
[0027]在第一种可能的实现方式中,根据第三方面,
[0028]所述接收模块,还用于接收所述第二呈现服务器发送的查询消息,所述查询消息用于查询归属于所述第一呈现服务器的第三终端对应的状态信息;
[0029]所述第一呈现服务器还包括:
[0030]处理模块,用于获取所述第三终端对应的状态信息,并将所述第三终端对应的状态信息返回给所述第二呈现服务器;
[0031]所述广播模块,还用于在所述处理模块获取到所述第三终端对应的状态信息后,将所述第三终端对应的状态信息广播给所述其它呈现服务器。
[0032]在第二种可能的实现方式中,结合第三方面或第一种可能的实现方式,
[0033]如果所述第一呈现服务器存储了所述第三终端发布的状态信息,所述处理模块获取的所述第三终端对应的状态信息包括所述第三终端发布的状态信息;
[0034]如果所述第一呈现服务器没有存储所述第三终端发布的状态信息,所述处理模块获取的所述第三终端对应的状态信息包括所述第三终端的用户的描述信息。
[0035]第四方面,本发明实施例提供一种第二呈现服务器,包括:接收模块和发送模块;
[0036]所述接收模块,用于接收归属于所述第二呈现服务器的第二终端发送的订阅消息,所述订阅消息包括联系人列表的标识,用于订阅所述联系人列表中的联系人的状态信息,并用于接收所述第一呈现服务器广播的归属于所述第一呈现服务器的第一终端对应的状态信息;
[0037]所述发送模块,用于在所述接收模块接收到所述第一终端对应的状态信息并且确定所述第一终端为所述联系人列表中的联系人的终端时,向所述第二终端通知所述第一终端对应的状态信息。
[0038]在第一种可能的实现方式中,根据第四方面,
[0039]所述发送模块,还用于在所述接收模块接收到归属于所述第二呈现服务器的所述第二终端发送的订阅消息之后,在确定第三终端为所述联系人列表中的联系人的终端、自身没有存储所述第三终端对应的状态信息、并且确定所述第三终端归属于所述第一呈现服务器时,向所述第一呈现服务器发送查询消息,所述查询消息用于查询所述第三终端对应的状态信息;
[0040]所述接收模块,还用于接收所述第一呈现服务器返回的所述第三终端对应的状态信息;
[0041 ] 所述发送模块,还用于在所述接收模块接收到所述第一呈现服务器返回的所述第三终端对应的状态信息后,将所述第三终端对应的状态信息通知给所述第二终端。
[0042]第五方面,本发明实施例一种状态订阅的系统,包括:
[0043]第一呈现服务器以及第二呈现服务器;
[0044]所述第一呈现服务器,用于接收归属于所述第一呈现服务器的第一终端发布的状态信息;将所述状态信息广播给其它呈现服务器,所述其它呈现服务器包括所述第二呈现服务器,以便于所述第二呈现服务器在归属于所述第二呈现服务器的第二终端订阅了所述第一终端对应的状态信息时向所述第二终端通知所述第一终端对应的状态信息,所述第一终端对应的状态信息包括所述第一终端发布的状态信息;
[0045]所述第二呈现服务器,用于接收归属于所述第二呈现服务器的第二终端发送的订阅消息,所述订阅消息包括联系人列表的标识,用于订阅所述联系人列表中的联系人的状态信息;接收所述第一呈现服务器广播的归属于所述第一呈现服务器的第一终端对应的状态信息;在接收到所述第一终端对应的状态信息并且确定所述第一终端为所述联系人列表中的联系人的终端时,向所述第二终端通知所述第一终端对应的状态信息。
[0046]在第一种可能的实现方式中,根据第五方面,
[0047]所述第一呈现服务器,还用于接收所述第二呈现服务器发送的查询消息,所述查询消息用于查询归属于所述第一呈现服务器的第三终端对应的状态信息;获取所述第三终端对应的状态信息,并将所述第三终端对应的状态信息返回给所述第二呈现服务器;将所述第三终端对应的状态信息广播给所述其它呈现服务器;
[0048]所述第二呈现服务器,还用于在确定第三终端为所述联系人列表中的联系人的终端、自身没有存储所述第三终端对应的状态信息、并且确定所述第三终端归属于所述第一呈现服务器时,向所述第一呈现服务器发送查询消息,所述查询消息用于查询所述第三终端对应的状态信息;接收所述第一呈现服务器返回的所述第三终端对应的状态信息;将所述第三终端对应的状态信息通知给所述第二终端。
[0049]本发明实施例所提供的一种状态订阅的方法、装置及系统,通过第一呈现服务器接收归属于所述第一呈现服务器的第一终端发布的状态信息;所述第一呈现服务器将所述第一终端发布的状态信息广播给其它呈现服务器,所述其它呈现服务器包括第二呈现服务器,以便于所述第二呈现服务器在归属于所述第二呈现服务器的第二终端订阅了所述第一终端对应的状态信息时向所述第二终端通知所述第一终端对应的状态信息,所述第一终端对应的状态信息包括所述第一终端发布的状态信息。通过该方案,由于第一呈现服务器能够将第一终端对应的状态信息广播给其它呈现服务器,以使得其他呈现服务器在其他终端订阅了第一终端对应的状态信息时向其他终端通知第一终端对应的状态信息。因此,减少了状态订阅时系统内部产生的订阅数和状态通知数,进而减小在大量终端同时发起状态订阅时对系统的压力。
【附图说明】
[0050]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051]图1为本发明实施例1所提供的一种状态订阅的方法的流程示意图;
[0052]图2为本发明实施例2所提供的一种状态订阅的方法的流程示意图;
[0053]图3为本发明实施例3所提供的一种状态订阅的方法的流程示意图;
[0054]图4为本发明实施例4所提供的一种状态订阅的方法的流程示意图;
[0055]图5为本发明实施例5所提供的一种状态订阅的方法的流程示意图;
[0056]图6为本发明实施例6所提供的一种状态订阅的方法的流程示意图;
[0057]图7为本发明实施例7所提供的一种状态订阅的方法的流程示意图;
[0058]图8为本发明实施例8所提供的一种状态订阅的方法的流程示意图;
[0059]图9为本发明实施例9所提供的一种第一呈现服务器的结构示意图一;
[0060]图10为本发明实施例9所提供的一种第一呈现服务器的结构示意图二 ;
[0061]图11为本发明实施例10所提供的一种第二呈现服务器的结构示意图;
[0062]图12为本发明实施例11所提供的一种第一终端的结构示意图;
[0063]图13为本发明实施例12所提供的一种第二终端的结构示意图;
[0064]图14为本发明实施例13所提供的另一种第一呈现服务器的结构示意图一;
[0065]图15为本发明实施例13所提供的另一种第一呈现服务器的结构示意图二 ;
[0066]图16为本发明实施例14所提供的另一种第二呈现服务器的结构示意图;
[0067]图17为本发明实施例15所提供的另一种第一终端的结构示意图;
[0068]图18为本发明实施例16所提供的另一种第二终端的结构示意图。
【具体实施方式】
[0069]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的