CN101394374A - 共享用户信息、分布式即时通信的方法及其系统和装置 - Google Patents

共享用户信息、分布式即时通信的方法及其系统和装置 Download PDF

Info

Publication number
CN101394374A
CN101394374A CNA2008102262677A CN200810226267A CN101394374A CN 101394374 A CN101394374 A CN 101394374A CN A2008102262677 A CNA2008102262677 A CN A2008102262677A CN 200810226267 A CN200810226267 A CN 200810226267A CN 101394374 A CN101394374 A CN 101394374A
Authority
CN
China
Prior art keywords
server
branch
branch server
user
user list
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.)
Pending
Application number
CNA2008102262677A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNA2008102262677A priority Critical patent/CN101394374A/zh
Publication of CN101394374A publication Critical patent/CN101394374A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种共享用户信息、分布式即时通信的方法及其系统和装置,以解决现有技术中企业内部通过一台服务器管理所有通信客户端所导致的管理灵活性差以及服务器管理负荷较重的问题以及处理所有即时通信客户端之间的即时通信所导致的服务器和网络压力大、通信性能差的问题。共享用户信息的方法包括步骤:第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表;第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务器发送给第一分支服务器;第一分支服务器接收并保存第二用户列表。采用本发明技术方案,使得企业服务器管理通信客户端更灵活、负荷轻;服务器处理客户端之间的即时通信网络压力小、通信质量好。

Description

共享用户信息、分布式即时通信的方法及其系统和装置
技术领域
本发明涉及无线网络与计算机技术领域,尤其涉及一种共享用户信息的方法、分布式即时通信的方法,及其系统和装置。
背景技术
目前,很多规模较大的公司在各个不同的区域拥有分公司。各分公司内部员工之间需要进行即时通信,各分公司的员工之间也需要即时通信。为了解决各分公司内部以及各分公司之间的员工通过即时通信等方式进行交流的问题,现有技术中,通常在公司总部部署一台服务器,各个分公司的即时通信客户端登录到该服务器并通过该服务器进行交流。这样将导致以下问题:
1、各个分公司内部的即时通信客户端以及组织架构都通过部署在总部的服务器进行管理,因此限制了各分公司对其内部的即时客户端管理的灵活性并造成了服务器的管理负荷;
2、由于分公司内部的即时通信客户端进行即时通信的数据量较多,分公司之间的即时通信客户端进行即时通信的数据量相对较少,而一台服务器支持即时通信客户端的数据量有限,因此如果大量客户端进行即时通信时,则会导致出现瓶颈,如服务器带宽不足、内存占用过高等,而导致服务器运行不稳定,也给网络带宽造成极大的压力。
因此,目前迫切需要一种客户端管理灵活以及通信性能稳定性好的企业内部通信的解决方案。
发明内容
本发明实施例提供一种用户信息共享的方法,以解决现有技术中企业内部通过一台服务器管理所有通信客户端所导致的管理灵活性差以及服务器管理负荷较重的问题。
本发明实施例提供的共享用户信息的方法中预先设置中心服务器以及多个分支服务,该方法包括:
第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表;
第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务器发送给第一分支服务器;
第一分支服务器接收并保存第二用户列表。
本发明的上述实施例,通过设置中心服务器以及若干个分支服务器,以及由分支服务器获取其他分支服务器所辖用户的用户列表并保存,而中心服务器只负责各分支服务器之间的消息转发,因而与现有技术相比,将中心服务器对用户列表的管理分担到各分支服务器,由分支服务器管理和保存该分支服务器和其他分支服务器所辖用户的用户列表。通过合理设置分支服务器,例如对于集群企业来说,每个分公司设置一个分支服务器,采用上述技术方案,各分公司内部可通过其分支服务器管理其用户列表,以及保存其他分公司的用户列表,从而提高了用户信息管理的灵活性以及分担了管理负荷,并且为后续各分公司内部客户端之间,以及各分公司之间的客户端进行即时通信提供了条件。
本发明实施例提供一种分布式即时通信的方法、系统及装置,以解决现有技术中通过一台服务器处理所有即时通信客户端之间的即时通信所导致的服务器和网络压力大、通信性能差的问题。
本发明实施例提供的分布式即时通信的方法中预先设置中心服务器以及多个分支服务,该方法包括:
第一分支服务器接收所述即时通信客户端发送的即时消息;
当判断所述即时消息的接收方为该分支服务器所辖的即时通信客户端时,将所述即时消息发送给该接收方客户端;
当判断所述即时消息的接收方为第二分支服务器所辖的即时通信客户端时,将所述即时消息通过中心服务器转发到第二分支服务器,第二分支服务器将所述即时消息发送到该消息的接收客户端。
本发明实施例提供的分布式即时通信系统,包括中心服务器以及一个分支服务器,其中:
分支服务器,用于发送获取其他分支服务器所辖用户的用户列表的请求,接收其他分支服务器发送的用户列表并保存;当即时通信客户端通过该分支服务器保存的用户列表选择其他客户端并向其发送即时消息时,接收并判断该即时消息的接收方是否是该分支服务器所辖的客户端,若是,则将该即时消息发送到接收方客户端,否则将该即时消息发送给中心服务器;以及,接收中心服务器转发的即时消息并发送到该即时消息的接收方客户端;
中心服务器,用于将所述获取其他分支服务器所辖用户的用户列表的请求转发给相应的分支服务器,将相应分支服务器发送的用户列表转发给发出给所述分支服务器;以及,将第一分支服务器发送的所述即时消息转发给第二分支服务器。
本发明实施例提供的分布式即时通信系统中的分支服务器,包括:
存储模块,用于存储该分支服务器所辖用户的用户列表,以及其他分支服务器所辖用户的用户列表;
请求模块,用于发送获取其他分支服务器所辖用户的用户列表;
接收模块,用于接收其他分支服务器发送的用户列表或该用户列表中用户信息,并保存到所述存储模块;
处理模块,用于当通信客户端通过所述存储模块存储的用户列表选择其他客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消息的接收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时消息发送给该接收方客户端;否则将所述即时消息发送到中心服务器。
本发明的上述实施例,通过设置中心服务器以及若干分支服务器,以及由分支服务器对于从即时通信客户端接收到的即时消息进行判断,若是发送给该分支服务器所辖客户端的,则由该分支服务器负责发送到接收方客户端,若是发送给其他分支服务器所辖客户端的,则通过中心服务器转发给相应的分支服务器并由该分支服务器发送到接收方客户端。可以看出,分支服务器负担了其所辖客户端的即时消息交互的处理,比现有技术通过一台服务器进行处理相比,减轻了服务器的处理压力,也减轻了网络负荷,从而可提高即时通信的性能。另外,将中心服务器对用户列表的管理分担到各分支服务器,由分支服务器管理和保存该分支服务器和其他分支服务器所辖用户的用户列表,也提高了用户信息管理的灵活性以及分担了管理负荷。
附图说明
图1为本发明实施例提供的分布式即时通信系统的架构示意图;
图2为本发明实施例中即时通信过程所涉及到的主要流程的时序图;
图3为本发明实施例中分支服务器登录中心服务器过程中的数据加密/解密验证以及身份验证的时序图;
图4为本发明实施例中各分支服务器之间同步用户信息的时序图;
图5为本发明实施例中分支服务器获取以及更新用户状态信息的时序图;
图6为本发明实施例中的组织架构示意图;
图7为本发明实施例中客户端通过组织结构获取用户信息以及更新组织结构或用户信息的过程示意图;
图8为本发明实施例中的中心服务器的结构示意图;
图9为本发明实施例中的分支服务器的结构示意图。
具体实施方式
针对现有技术上述的缺陷,本发明实施例提供一种分布式即时通信系统,以及基于该系统的用户信息共享方法、即时通信方法。下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例提供的分布式即时通信的系统架构示意图,该示意图以一集群企业为例,描述了该集群企业总部以及各分公司(各分公司可位于同一地区或不同地区)的即时通信系统架构。
如图1所示,在该集群企业总部设置一中心服务器(以下称CenterServer)和一文件服务器(以下称RCAFileServer),当然也可以只设置CenterServer,由其实现RCAFileServer的功能。在各分公司分别设置一分支服务器(以下称RTXServer(Real Time eXpert Server,一种具有实时处理能力的专业级服务器),在RTXServer内部可设置与实现CenterServer通信的功能模块以及与所在分公司内部的即时通信客户端(Clint)通信的功能模块,如RCAServer(RTXCorporation Assembly Server)和ProxyServer。上述系统中,各RTXServer通过网络或专线等方式连接在CenterServer上,各个分公司内部的即时通信客户端通过局域网络连接到各自分公司的RTXServer上。上述系统架构中,CenterServer既可以设置在集群企业总部所在地,也可以设置在其他位置,如某一分公司所在地,只要该CenterServer与各分公司的RTXServer是通过上述网络连接方式进行连接。其中:
CenterServer主要负责各个分公司应用的接入并转发分公司之间的网络包,CenterServer不需要关注RCAServer之间网络包的具体细节,只关注需要转发到哪个分公司的RCAServer。如果转发的是即时消息(IM)命令,而且对方分公司的用户不在线,则需要保存离线消息;
RCAServer主要负责本分公司与CenterServer的连接,在CenterServer与RTXServer之间搭建一条通信的桥梁,处理分公司之间的数据收发;
RCAFileServer是部署在CenterServer上的文件服务器,整体架构与现有的RTXServer中的FileServer几乎完全一致,主要负责企业之间的文件存储,基本功能类似于现有RTXServer体系中的文件服务器;
ProxyServer是部署在分公司内部的代理服务器,与集群服务完全独立,用于中转客户端的连接请求和透传数据,不处理具体逻辑;
RTXServer是与RCAServer部署在同一台物理设备上的企业集群管理器(下面简称管理器),主要配置本分公司对外开放级别和用户列表。为了增加实用性,比如通过RCAServer获取到当前集群系统内的所有的分公司的用户列表和在线状态,同时需要跟RCAServer之间通过网络来激发配置改变;
Client中包括RCA功能模块,用于获取相关权限信息以及配置信息,同时处理外部的IM消息。RCA功能模块可与本分公司的RCAServer建立TCP的长连接,用于处理用户查询外部好友(即其他分公司的用户)、搜索外部好友、查询用户状态信息。
当集群企业各分公司的客户端之间进行即时通信时,通过CenterServer中转数据;而同一个分公司内部的客户端之间进行即时通信时,通过该分公司的RTXServer进行数据中转。
下面对通过上述系统实现即时通信的过程进行详细描述。
参见图2,为本发明实施例中即时通信过程所涉及到的主要流程的时序图,这些过程包括RCAServer登录CenterServer的流程、登录后的用户信息同步流程、Client获取用户信息的流程,以及Client之间进行即时通信的流程。图中以分公司A和分公司B为例,描述了分公司A中的Client与分公司B中的Client进行即时通信的过程。其中Client A、RTXServer A、RCAServer A属于分公司A,Client B、RTXServer B、RCAServer B属于分公司B,则具体过程包括:
步骤201~202、RCAServer A启动后,与RTXServer A进行注册相关信息的交互,以进行初始化操作。
该步骤中,RCAServer A向RTXServer A中的ConnServer(即RTXServer中负责连接的服务模块)发送注册应用信息,以向RTXServer A注册需要关注的命令区间(包括RCA的消息类型),还连接到RTXServer A中的GroupServer(即RTXServer中管理用户组的服务模块)以获取需要关注的该分公司的用户状态信息(如用户是否登录到RTXServer),以便将用户在线/离线状态呈现给用户使用户能从中选择其他在线用户以进行即时通信。在初始化过程中,RCAServer A还可以通过RTXServer A获取分公司A对其他分公司开放的用户列表的版本号,并将其与从本地读取的用户列表版本号进行比较,若不同则更新本地用户列表的版本号,以便后续进行用户信息的同步与更新。
步骤203、RCAServer A根据预先设置的配置信息,如CenterServer的IP地址,向CenterServer发送企业登录请求。
步骤204、CenterServer根据配置信息,如总机号码、连接密码、企业名称、公有密钥等处理RCAServer A的登录请求,并在处理后向其返回登录成功的结果。其中,返回登录成功结果的步骤可选,在图中以虚线表示。
RCAServer A成功登录到CenterServer后,还可进行用户信息的同步流程,其时序如图2中的步骤205~209所示:
步骤205~206、RCAServer A向CenterServer发送请求获取其他分公司的用户列表(如其他分公司对分公司A开放的部门列表信息及各个部门的用户列表信息)的同步请求消息,该过程中,可针对不同的分公司分别发送同步请求消息,CenterServer将该请求消息转发至已经登录的其他分公司的RCAServer,如RCAServer B。
步骤207~208、RCAServer B根据该同步请求消息读取本地存储的能够向分公司A开放的用户列表,并通过CenterServer发送到RCAServer A。
步骤209、RCAServer A根据接收到的用户列表更新本地存储的分公司B的用户列表。
RCAServer成功登录CenterServer后,该分公司的Client可以登录到所在的RCAServer。在Client登录RCAServer的过程中还包括获取用户列表信息的过程,以Client A登录RCAServer A为例,该过程包括:
步骤210、Client A向RCAServer A发送获取用户列表的请求消息。
步骤211、RCAServer A接收到该请求消息后,获取本地存储的用户列表,其中包括本分公司的用户列表,还包括其他分公司对其开放的用户列表。
步骤212、RCAServer A将获取到的用户列表信息发送至Client A,Client A更新本地的用户列表,还可以展示给用户以便其从中选择其他客户端进行即时通信。
各分公司的Client登录到各自分公司的RCAServer后,可以与其他分公司的Client进行即时通信。以Client A与Client B进行即时通信为例,包括以下步骤:
步骤213、Client A从本地的用户列表中选择Client B,并发送IM消息。
步骤214、RCAServer A接收该IM消息,并当判断该IM消息的接收端为其他分公司的Client后将其转发至CenterServer。该步骤中,RCAServer A可根据其上预先配置的该分公司内部各Client的标识或地址等信息来判断IM消息的接收端是否为分公司内部的Client;也可以根据IM消息中的组标识(即分公司标识)来判断。
步骤215、CenterServer判断该IM消息的接收端为分公司B中的Client,并将该IM消息转发至RCAServer B。该步骤中,RCAServer A可根据其上预先配置的各分公司内部各Client的标识或地址等信息来判断IM消息的接收端所归属的分公司;也可以根据IM消息中的组标识(即分公司标识)来判断。
步骤216、RCAServer B接收到该IM消息后向Client B发送该IM消息。RCAServer B发送该IM消息后还可通过CenterServer、RCAServer A向Client A返回发送结果信息。
各分公司的Client登录到各自分公司的RCAServer后,可以与各自分公司内部的Client进行即时通信。在该过程中,IM消息发送方的Client选择所在分公司的Client后向其发送IM消息,该IM消息发送到该分公司的RCAServer后,RCAServer判断该IM消息的接收方也属于该分公司,则将该IM消息发送到该分公司的IM消息接收方Client。
在图2所示的RCAServer A登录CenterServer的流程(如步骤201~204)中,为提高安全性,RCAServer A与CenterServer之间交互的数据可进行加密/解密的验证,CenterServer还可对RCAServer A进行身份验证。在本发明的另一实施例中,数据加密/解密验证以及身份验证的时序图可如图3所示,包括:
步骤301、RCAServer A向CenterServer发送登录请求消息时,将总机号码BUin以及RCAServer A随机生成的临时密钥SessKeyTmp一起采用公有密钥进行加密,携带于登录请求消息。
步骤302~303、CenterServer接收到该登录请求消息后,使用私有密钥解密验证,并生成后续与RCAServer A通信所用的密钥SessionKey,并将其返回给RCAServer A。
步骤304、RCAServer A使用之前生成的临时密钥SessKeyTmp解密CenterServer返回的消息,获取其中的密钥SessionKey。然后RCAServer A使用密钥SessionKey对登录时的企业总机号码以及连接密码进行加密,并发送给CenterServer。
步骤305、CenterServer对接收到的数据进行加密,并对企业总机号码以及连接密码进行验证。
在图3所示的流程中,在包含公有密钥文件里,还包含CenterServer的ID以及名称等标识信息,该文件经过签名,可以防止被恶意篡改。标识信息经过Hash处理后,采用CenterServer的私有密钥进行加密,然后进行Base64编码。
在图2所示的用户信息同步流程(如步骤205~209)中,可根据用户信息的版本号进行同步处理。在本发明的另一实施例中,该同步流程可如图4所示,包括:
步骤401~402、RCAServer A通过向CenterServer发送同步请求,将保存在本地的本分公司对其他分公司(如分公司B)开放的用户列表版本号(VerLocal)以及其他分公司(如企业分公司B)对分公司A开放的用户列表版本号(VerRemote)携带于同步请求消息发送到CenterServer,CenterServer将版本号转发至RCAServer B。
步骤403、RCAServer B接收到用户列表版本号后,将其中的版本号与本地存储的相应版本号进行比较,如果VerLocal与本地保存的分公司A对分公司B开放的用户列表版本号不一致,则需要请求分公司A将其为分公司B开放的用户列表发送过来;如果VerRemote与本地保存的分公司B对分公司A开放的用户列表版本号不一致,则需要将本地保存的用户列表发送给RCAServer A。
步骤404~405、RCAServer B根据判断结果,通过CenterServer向RCAServer A返回响应消息。
步骤406、RCAServer A根据接收到的用户列表的版本号判断是否需要更新本地的用户列表,由于用户列表中的每个用户信息也具有各自的版本号,因此RCAServer A中保存的分公司B对分公司A开放的用户列表中某些用户信息的版本号低于接收到的相应用户信息的版本号,则可只需更新这些用户信息。
步骤407~409、如果RCAServer B请求获取RCAServer A的用户列表,则RCAServer A将其对分公司B开放的用户列表通过CenterServer发送给RCAServer B,以便其更新相应的用户列表。
步骤410~411、RCAServer B通过CenterServer向RCAServer A返回响应消息。
通过上述用户信息的同步流程,可以使刚登录到CenterServer的RCAServer与其他已经登录的RCAServer相互之间保持一致的用户列表,从而为后续用户通过用户列表选择其他用户进行即时通信创造条件。上述流程可在RCAServer A注册到CenterServer后进行,也可在注册成功后,根据设定的时间或周期,或根据管理员输入的同步指令进行。RCAServer还可以通过定时或周期检测本地保存的对其他分公司开放的用户列表信息是否改变(增添用户或部门,或者删除用户或部门),若改变,则更改该用户列表的版本号,并将更改后的用户列表及其版本号发送给其他分公司的RCAServer,以使其他分公司的RCAServer更新相应的用户列表。
RCAServer登录到CenterServer后,该RCAServer还可以从RTXServer中的GroupServer中获取本分公司对外开放的用户的状态并将其保存在本地,在后续过程中,也需要根据用户状态的变化更新本地保存的用户状态信息。本发明另一实施例中获取以及更新用户状态信息的过程可如图5所示,包括:
步骤501~502、Client A的用户状态(如上线、离线、下线等)改变时,RTXServer可获知该用户状态的改变,并将其通知到RCAServer A。
步骤503、RCAServer A更新本地保存的本分公司用户列表中的用户状态。
步骤504、RCAServer A通过CenterServer将用户状态变化的信息通知给RCAServer B,RCAServer B更新本地保存的分公司A的用户列表中的用户状态。
步骤505~506、RCAServer B通过CenterServer向RCAServer A返回更新结果,如果RCAServer B中保存的分公司B对企业分公司A开放的用户列表中的用户状态也发生变化,则还可以将用户状态变化信息发送给RCAServer A进行更新。
上述流程也可以根据设定的时间或周期,或根据管理员输入的指令进行,还可以由用户状态的改变触发进行。通过该流程,各RCAServer可及时获取当前各分公司的用户状态,从而为后续各分公司之间的用户进行即时通信创造条件。
Client成功登录RCAServer后,需要从其本地的RCAServer获取本分公司以及其他分公司的用户信息,包括用户列表及其中的用户状态等。Client还可定时(如每3分钟)从其本地的RCAServer获取用户信息,或者在打开会话窗口时,从本地的RCAServer获取对应的会话连接的用户信息。
在本发明的另一实施例中,用户列表可以组织架构的方式呈现,图6给出了一种组织架构的示意图,该组织架构包括几层列表,第一层列表是各分公司的名称,当点击打开其中任一分公司时,连接到该分公司对应的第二层列表,该第二层列表中列出的是该分公司中的部门信息,当点击打开其中的一个部门时,连接到该部门对应的第三层列表,该第三层列出的是该部门中的用户信息。
对于好友企业的组织架构,可由RCAServer生成响应的Group.xml文件,通过InfoServerAPI上传到InfoServer(信息服务器,一种提供信息服务的网络服务器)的相应目录进行保存,客户端可通过InfoServer下载组织架构。下载部门列表的更新过程,类似于现有的组织架构更新过程,但是不通过现有的应用协议通道,而是直接到RCAServer来获取。
Client通过组织结构获取用户信息以及更新本地保存的组织结构或用户信息的过程,可如图7所示,包括:
当Client登录到RCAServer后,获取组织架构信息的过程如步骤701~711所示:
步骤701~702、Client向RTXServer发送获取整个企业组织架构的请求消息,RTXServer将该请求消息转发到该Client所在分公司的RCAServer。该步骤中,RTXServer可首先根据该Client的配置信息判断其访问权限,并在该Client具备访问组织架构的权限时,将其请求消息发送给RCAServer。
步骤703~705、RCAServer读取本地保存的组织架构的版本号并通过RTXServer发送给Client。
步骤706~708、Client根据该组织架构的版本号与本地保存的版本号进行比较,如果不一致,则通过RTXServer向RCAServer发送请求下载组织架构信息的请求。
步骤709~711、RCAServer根据该请求读取本地的组织架构信息,并将其通过RTXServer发送给Client。
当用户选择组织架构中的某个分公司时,Client获取该分公司的组织架构的过程如步骤712~716所示:
步骤712、Client通过RTXServer从RCAServer获取所选择的分公司的组织架构的版本号,并与本地保存的相应版本号进行比较。
步骤713~716、当比较结果不一致时,通过RTXServer向InfoServer获取该分公司的企业架构信息并保存。
当用户选择分公司中的某个部门时,Client获取该该部门中的用户信息的过程如步骤717~721所示:
步骤717、Client通过RTXServer从RCAServer获取所选择的部门的版本号,并与本地保存的相应版本号进行比较。
步骤718~721、当比较结果不一致时,通过RTXServer向RCAServer获取该部门的用户列表信息并保存。
由于集群企业用户情况可能差别比较大,为了在一套组织架构下满足更多的应用场景,本发明的实施例中,可由CenterServer下发配置信息到各RCAServer,各RCAServer下发一些配置信息到Client。这些配置信息可以包括:客户端是否配置自动下载所有分公司的用户列表、是否加载所有其他分公司的用户、RCAServer是否自动推送所有其他用户的状态变化等。
分公司与其他分公司之间的好友关系,可保存到一个公共的数据库。如果本分公司的用户离线,其他分公司的用户添加该用户为好友,则这些添加好友的信息也需要保存到该公共数据库中,客户端下次登录的时候可主动获取该公共数据库。
本发明实施例中,各RCAServer为了与本地的RTXServer的数据库保持独立,保持原有逻辑的稳定性,可将每个分公司的所有数据都保存在对应的一个独立的数据库中,该独立的数据库包括本分公司的用户列表信息,还包括该分公司对其他各个分公司开放的用户列表,以及其他各分公司对本分公司开放的用户列表。
本发明实施例中,CenterServer主要负责各个分公司应用的接入和数据分析以及转发,可保存有各个已经登录的分公司的用户列表以便实现消息转发,CenterServer能够实现的功能主要有:
作为中转服务器中转各分公司之间的数据;
提供RSA和TEA的加解密支持;
可配置管理,即能够对外来的连接进行管理和限制;
可监控,即能够查询当前企业在线情况;
离线消息的存储和获取。
图8给出了一种CenterServer的结构示意图,该CenterServer包括:
接收模块81,用于接收第一分支服务器发送的消息;
转发模块82,用于将接收到的消息转发给第二分支服务器。
本发明实施例中,RCAServer是分公司内外沟通的桥梁,负责登录到CenterServer,同时要处理分公司内部客户端的各种请求。RCAServer所包括的功能有:本地网络处理、数据存储、协议处理等。其中,网络包括连接到CenterServer部分、作为服务器处理本分公司客户端连接的网络、与本地管理器同步数据的网络;数据包括其他分公司的组织架构和用户资料、本地配置的对各分公司开放的组织架构和用户信息、本地用户与其他分公司用户的好友关系、本地和其他分公司的用户状态;协议处理包括与CenterServer之间的协议处理、与Client之间的协议、与GroupServer之间的协议、与ConnServer之间的应用协议、与LicenseServer之间获取License(许可)信息的协议、与管理器之间的配置协议等。图9给出了一种RCAServer的功能架构示意图。
如图9给出了一种RCAServer的结构示意图,该RCAServer包括:
存储模块91,用于存储该分支服务器所辖用户的用户列表,以及其他分支服务器所辖用户的用户列表;
请求模块92,用于发送获取其他分支服务器所辖用户的用户列表;
接收模块93,用于接收其他分支服务器发送的用户列表或该用户列表中用户信息,并保存到所述存储模块91;
处理模块94,用于当通信客户端通过所述存储模块91存储的用户列表选择其他客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消息的接收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时消息发送给该接收方客户端;否则将所述即时消息发送到中心服务器。发送即时消息时可通过发送模块95进行发送。
进一步的,该发送模块95还可用于发送存储模块91中存储的所述分支服务器所辖用户的用户列表或该列表中的用户信息。
本发明的上述实施例中,在集群企业内部部署中心服务器和RTX服务器,并在RTX服务器中的RCA服务器中存储最新的本分公司的用户列表、其他分公司对本分公司开放的用户列表,各RTX服务器通过中心服务器相互连接。采用本发明技术方案,一方面,集群企业中的各分公司可以更方便的实现用户信息共享;另一方面,各分公司内部的客户端之间进行即时通信时,只需要该分公司本地的RXT服务器中转数据,而无需通过中心服务器中转数据,这样降低了中心服务器和网络压力,并且也提高了集群企业中各分公司独立管理内部客户端的能力。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1、一种共享用户信息的方法,其特征在于,预先设置中心服务器以及多个分支服务器,该方法包括:
第一分支服务器通过中心服务器向第二分支服务器请求获取用户列表;
第二分支服务器根据该请求,将其所辖用户的第二用户列表通过中心服务器发送给第一分支服务器;
第一分支服务器接收并保存第二用户列表。
2、如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支服务器请求获取用户列表,包括:
第一分支服务器将其保存的第二分支服务器所辖用户的用户列表的版本标识,通过中心服务器发送到第二分支服务器;
第二分支服务器将该版本标识与其所辖用户的第二用户列表的版本标识进行比较,当两者不一致时,通过中心服务器将第二用户列表发送给第一分支服务器。
3、如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支服务器请求获取用户列表时,还将其所辖用户的第一用户列表的版本标识通过中心服务器发送给第二分支服务器;
第二分支服务器还将该版本标识与其保存的第一分支服务器所辖用户的用户列表进行比较,并当两者不一致时,通过中心服务器请求第一分支服务器发送用户列表;
第一分支服务器根据第二分支服务器的所述请求将第一用户列表通过中心服务器发送给第二分支服务器。
4、如权利要求1所述的方法,其特征在于,还包括:
第一分支服务器将其所辖用户的第一用户列表中发生变化的用户状态信息,通过中心服务器发送给第二分支服务器;或/和
接收第二分支服务器通过中心服务器发送过来的、该第二分支服务器所辖用户的第二用户列表中发生变化的用户状态信息并保存。
5、如权利要求1所述的方法,其特征在于,第一分支服务器向第二分支服务器请求获取用户列表,包括:
当第一分支服务器启动时,或用户选择查看第二分支服务器所辖用户列表时,向第二分支服务器请求获取用户列表;
或者,第一分支服务器根据设定的时间或周期,向第二分支服务器请求获取用户列表。
6、一种分布式即时通信的方法,其特征在于,预先设置中心服务器以及多个分支服务器,当即时通信客户端通过第一分支服务器保存的用户列表选择其他即时客户端并向其发送即时消息时,该方法包括:
第一分支服务器接收所述即时通信客户端发送的即时消息;
当判断所述即时消息的接收方为该分支服务器所辖的即时通信客户端时,将所述即时消息发送给该接收方客户端;
当判断所述即时消息的接收方为第二分支服务器所辖的即时通信客户端时,将所述即时消息通过中心服务器转发到第二分支服务器,第二分支服务器将所述即时消息发送到该消息的接收客户端。
7、如权利要求6所述的方法,其特征在于,第一分支服务器接收即时通信客户端发送的即时消息之前,还包括获取第二分支服务器所辖用户的第二用户列表并保存的步骤;
所述通信客户端根据第二用户列表选择即时消息的接收方并向其发送所述即时消息。
8、如权利要求7所述的方法,其特征在于,第一分支服务器获取到第二用户列表后,还包括:
从中心服务器接收第二分支服务器发送过来的第二用户列表中发生变化的用户状态信息,并根据接收到的用户状态信息更新该第一分支服务器保存的第二用户列表;
或者,根据设定时间或周期,通过中心服务器向第二分支服务器获取第二用户列表或第二用户列表中发生变化的用户状态信息,并更新该第一分支服务器保存的第二用户列表。
9、一种分布式即时通信系统,其特征在于,包括:中心服务器以及一个分支服务器,其中:
分支服务器,用于发送获取其他分支服务器所辖用户的用户列表的请求,接收其他分支服务器发送的用户列表并保存;当即时通信客户端通过该分支服务器保存的用户列表选择其他客户端并向其发送即时消息时,接收并判断该即时消息的接收方是否是该分支服务器所辖的客户端,若是,则将该即时消息发送到接收方客户端,否则将该即时消息发送给中心服务器;以及,接收中心服务器转发的即时消息并发送到该即时消息的接收方客户端;
中心服务器,用于将所述获取其他分支服务器所辖用户的用户列表的请求转发给相应的分支服务器,将相应分支服务器发送的用户列表转发给发出给所述分支服务器;以及,将第一分支服务器发送的所述即时消息转发给第二分支服务器。
10、如权利要求9所述的系统,其特征在于,所述分支服务器中的第一分支服务器进一步用于,将其保存的第二分支服务器所辖用户的第二用户列表的版本标识发送给中心服务器;
所述第二分支服务器进一步用于,将所述版本标识与其所辖用户的第二用户列表的版本标识进行比较,当两者不一致时,将其所辖用户的第二用户列表发送给中心服务器;
所述中心服务器进一步用于,将第一分支服务器发送的版本标识转发给第二分支服务器;以及,将第二分支服务器发送的第二用户列表转发给第一分支服务器。
11、如权利要求9所述的系统,其特征在于,所述分支服务器中的第一分支服务器进一步用于,在向第二分支服务器请求获取用户列表时,还发送该第一分支服务器所辖用户的第一用户列表的版本标识;以及,根据第二分支服务器的请求发送第一用户列表;
所述第二分支服务器进一步用于,将所述版本标识与其保存的第一分支服务器所辖用户的用户列表进行比较,并当两者不一致时,请求第一分支服务器发送用户列表;
所述中心服务器进一步用于,将第一分支服务器发送的版本标识转发给第二分支服务器;以及,将第一分支服务器发送的第一用户列表发送给第二分支服务器。
12、如权利要求10或11所述的系统,其特征在于,所述第一分支服务器进一步用于,发送其所辖用户的第一用户列表中发生变化的用户状态信息;或/和,接收第二分支服务器发送的该第二分支服务器所辖用户的第二用户列表中发生变化的用户状态信息并保存;
所述中心服务器进一步用于,将第一分支服务器发送的用户状态信息转发给第二分支服务器,或/和,将第二分支服务器发送的用户状态信息转发给第一分支服务器。
13、一种分布式即时通信系统中的分支服务器,其特征在于,包括:
存储模块,用于存储该分支服务器所辖用户的用户列表,以及其他分支服务器所辖用户的用户列表;
请求模块,用于发送获取其他分支服务器所辖用户的用户列表;
接收模块,用于接收其他分支服务器发送的用户列表或该用户列表中用户信息,并保存到所述存储模块;
处理模块,用于当通信客户端通过所述存储模块存储的用户列表选择其他客户端并向其发送即时消息时,接收所述即时消息,并判断所述即时消息的接收方是否为该分支服务器所辖的即时通信客户端,若是,则将所述即时消息发送给该接收方客户端;否则将所述即时消息发送到中心服务器。
CNA2008102262677A 2008-11-11 2008-11-11 共享用户信息、分布式即时通信的方法及其系统和装置 Pending CN101394374A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008102262677A CN101394374A (zh) 2008-11-11 2008-11-11 共享用户信息、分布式即时通信的方法及其系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008102262677A CN101394374A (zh) 2008-11-11 2008-11-11 共享用户信息、分布式即时通信的方法及其系统和装置

Publications (1)

Publication Number Publication Date
CN101394374A true CN101394374A (zh) 2009-03-25

Family

ID=40494452

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008102262677A Pending CN101394374A (zh) 2008-11-11 2008-11-11 共享用户信息、分布式即时通信的方法及其系统和装置

Country Status (1)

Country Link
CN (1) CN101394374A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012024819A1 (zh) * 2010-08-26 2012-03-01 广州客多软件科技有限公司 客户端共享用户信息的方法和系统
CN101772214B (zh) * 2010-01-07 2012-06-27 深圳市五巨科技有限公司 收集移动终端用户信息的方法和装置
CN102769622A (zh) * 2012-07-20 2012-11-07 大唐移动通信设备有限公司 一种帐号同步方法、装置及系统
CN102932185A (zh) * 2012-11-07 2013-02-13 曙光信息产业股份有限公司 服务器用户管理系统
CN103136294A (zh) * 2011-12-05 2013-06-05 阿里巴巴集团控股有限公司 文件操作方法及装置
CN104580276A (zh) * 2013-10-11 2015-04-29 深圳市腾讯计算机系统有限公司 信息推送方法、装置、系统及信息接入装置
CN105471700A (zh) * 2014-08-06 2016-04-06 腾讯科技(北京)有限公司 一种消息处理的方法、装置和系统
CN106487890A (zh) * 2016-10-11 2017-03-08 江苏电力信息技术有限公司 一种基于xmpp协议的跨节点通讯网络请求方法
CN108900575A (zh) * 2018-06-06 2018-11-27 深圳蓝贝科技有限公司 基于移动终端的长连接分级通信方法和系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101772214B (zh) * 2010-01-07 2012-06-27 深圳市五巨科技有限公司 收集移动终端用户信息的方法和装置
CN102742230A (zh) * 2010-08-26 2012-10-17 广州客多软件科技有限公司 客户端共享用户信息的方法和系统
WO2012024819A1 (zh) * 2010-08-26 2012-03-01 广州客多软件科技有限公司 客户端共享用户信息的方法和系统
CN103136294B (zh) * 2011-12-05 2017-04-12 阿里巴巴集团控股有限公司 文件操作方法及装置
CN103136294A (zh) * 2011-12-05 2013-06-05 阿里巴巴集团控股有限公司 文件操作方法及装置
CN102769622A (zh) * 2012-07-20 2012-11-07 大唐移动通信设备有限公司 一种帐号同步方法、装置及系统
CN102769622B (zh) * 2012-07-20 2015-08-19 大唐移动通信设备有限公司 一种帐号同步方法、装置及系统
CN102932185A (zh) * 2012-11-07 2013-02-13 曙光信息产业股份有限公司 服务器用户管理系统
CN104580276A (zh) * 2013-10-11 2015-04-29 深圳市腾讯计算机系统有限公司 信息推送方法、装置、系统及信息接入装置
CN104580276B (zh) * 2013-10-11 2018-10-16 深圳市腾讯计算机系统有限公司 信息推送方法、装置、系统及信息接入装置
CN105471700A (zh) * 2014-08-06 2016-04-06 腾讯科技(北京)有限公司 一种消息处理的方法、装置和系统
CN106487890A (zh) * 2016-10-11 2017-03-08 江苏电力信息技术有限公司 一种基于xmpp协议的跨节点通讯网络请求方法
CN108900575A (zh) * 2018-06-06 2018-11-27 深圳蓝贝科技有限公司 基于移动终端的长连接分级通信方法和系统
CN108900575B (zh) * 2018-06-06 2021-07-20 深圳蓝贝科技有限公司 基于移动终端的长连接分级通信方法和系统

Similar Documents

Publication Publication Date Title
CN101394374A (zh) 共享用户信息、分布式即时通信的方法及其系统和装置
US10313464B2 (en) Targeted notification of content availability to a mobile device
US8942115B2 (en) System and method for dynamic routing for push notifications
US8351921B2 (en) Push notification service
US7853983B2 (en) Communicating data from a data producer to a data receiver
US7536720B2 (en) Method and apparatus for accelerating CPE-based VPN transmissions over a wireless network
CN103036867B (zh) 基于相互认证的虚拟专用网络服务设备和方法
CN100375424C (zh) 多媒体消息收发方法、系统、网关和客户设备
US8526455B2 (en) System and method for two way push notifications
CN113508563A (zh) 基于区块链的安全电子邮件系统
US11616747B1 (en) Systems and methods for multi-agent messaging
US11575767B2 (en) Targeted notification of content availability to a mobile device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090325