两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

共享用戶信息、分布式即時通信的方法及其系統(tǒng)和裝置的制作方法

文檔序號:7927816閱讀:106來源:國知局
專利名稱:共享用戶信息、分布式即時通信的方法及其系統(tǒng)和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及無線網(wǎng)絡(luò)與計算機技術(shù)領(lǐng)域,尤其涉及一種共享用戶信息的方 法、分布式即時通信的方法,及其系統(tǒng)和裝置。
背景技術(shù)
目前,很多規(guī)模較大的公司在各個不同的區(qū)域擁有分公司。各分公司內(nèi)部 員工之間需要進行即時通信,各分公司的員工之間也需要即時通信。為了解決 各分公司內(nèi)部以及各分公司之間的員工通過即時通信等方式進行交流的問題, 現(xiàn)有技術(shù)中,通常在公司總部部署一臺服務(wù)器,各個分公司的即時通信客戶端
登錄到該服務(wù)器并通過該服務(wù)器進行交流。這樣將導(dǎo)致以下問題
1、 各個分公司內(nèi)部的即時通信客戶端以及組織架構(gòu)都通過部署在總部的 服務(wù)器進行管理,因此限制了各分公司對其內(nèi)部的即時客戶端管理的靈活性并 造成了服務(wù)器的管理負荷;
2、 由于分公司內(nèi)部的即時通信客戶端進行即時通信的數(shù)據(jù)量較多,分公 司之間的即時通信客戶端進行即時通信的數(shù)據(jù)量相對較少,而一臺服務(wù)器支持 即時通信客戶端的數(shù)據(jù)量有限,因此如果大量客戶端進行即時通信時,則會導(dǎo) 致出現(xiàn)瓶頸,如服務(wù)器帶寬不足、內(nèi)存占用過高等,而導(dǎo)致服務(wù)器運行不穩(wěn)定, 也給網(wǎng)絡(luò)帶寬造成極大的壓力。
因此,目前迫切需要一種客戶端管理靈活以及通信性能穩(wěn)定性好的企業(yè)內(nèi) 部通信的解決方案。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種用戶信息共享的方法,以解決現(xiàn)有技術(shù)中企業(yè)內(nèi)部
通過一臺服務(wù)器管理所有通信客戶端所導(dǎo)致的管理靈活性差以及服務(wù)器管理 負荷較重的問題。
本發(fā)明實施例提供的共享用戶信息的方法中預(yù)先設(shè)置中心服務(wù)器以及多
個分支服務(wù),該方法包4舌
第一分支服務(wù)器通過中心服務(wù)器向第二分支服務(wù)器請求獲取用戶列表; 第二分支服務(wù)器根據(jù)該請求,將其所轄用戶的第二用戶列表通過中心服務(wù)
器發(fā)送給第一分支服務(wù)器;
第一分支服務(wù)器接收并保存第二用戶列表。
本發(fā)明的上述實施例,通過設(shè)置中心服務(wù)器以及若干個分支服務(wù)器,以及 由分支服務(wù)器獲取其他分支服務(wù)器所轄用戶的用戶列表并保存,而中心服務(wù)器 只負責(zé)各分支服務(wù)器之間的消息轉(zhuǎn)發(fā),因而與現(xiàn)有技術(shù)相比,將中心服務(wù)器對 用戶列表的管理分擔(dān)到各分支服務(wù)器,由分支服務(wù)器管理和保存該分支服務(wù)器 和其他分支服務(wù)器所轄用戶的用戶列表。通過合理設(shè)置分支服務(wù)器,例如對于 集群企業(yè)來說,每個分公司設(shè)置一個分支服務(wù)器,采用上述技術(shù)方案,各分公 司內(nèi)部可通過其分支服務(wù)器管理其用戶列表,以及保存其他分公司的用戶列 表,從而提高了用戶信息管理的靈活性以及分擔(dān)了管理負荷,并且為后續(xù)各分 公司內(nèi)部客戶端之間,以及各分公司之間的客戶端進行即時通信提供了條件。
本發(fā)明實施例提供一種分布式即時通信的方法、系統(tǒng)及裝置,以解決現(xiàn)有 技術(shù)中通過一 臺服務(wù)器處理所有即時通信客戶端之間的即時通信所導(dǎo)致的服 務(wù)器和網(wǎng)絡(luò)壓力大、通信性能差的問題。
本發(fā)明實施例提供的分布式即時通信的方法中預(yù)先設(shè)置中心服務(wù)器以及 多個分支服務(wù),該方法包括
第 一分支服務(wù)器接收所述即時通信客戶端發(fā)送的即時消息;
當(dāng)判斷所述即時消息的接收方為該分支服務(wù)器所轄的即時通信客戶端時, 將所述即時消息發(fā)送給該接收方客戶端;
當(dāng)判斷所述即時消息的接收方為第二分支服務(wù)器所轄的即時通信客戶端
時,將所述即時消息通過中心服務(wù)器轉(zhuǎn)發(fā)到第二分支服務(wù)器,第二分支服務(wù)器 將所述即時消息發(fā)送到該消息的接4t^戶端。
本發(fā)明實施例提供的分布式即時通信系統(tǒng),包括中心服務(wù)器以及一個分支
服務(wù)器,其中
分支服務(wù)器,用于發(fā)送獲取其他分支服務(wù)器所轄用戶的用戶列表的請求, 接收其他分支服務(wù)器發(fā)送的用戶列表并保存;當(dāng)即時通信客戶端通過該分支服 務(wù)器保存的用戶列表選擇其他客戶端并向其發(fā)送即時消息時,接收并判斷該即 時消息的接收方是否是該分支服務(wù)器所轄的客戶端,若是,則將該即時消息發(fā) 送到接收方客戶端,否則將該即時消息發(fā)送給中心服務(wù)器;以及,接收中心服 務(wù)器轉(zhuǎn)發(fā)的即時消息并發(fā)送到該即時消息的接收方客戶端;
中心服務(wù)器,用于將所述獲取其他分支服務(wù)器所轄用戶的用戶列表的請求 轉(zhuǎn)發(fā)給相應(yīng)的分支服務(wù)器,將相應(yīng)分支服務(wù)器發(fā)送的用戶列表轉(zhuǎn)發(fā)給發(fā)出給所 述分支服務(wù)器;以及,將第一分支服務(wù)器發(fā)送的所述即時消息轉(zhuǎn)發(fā)給第二分支 服務(wù)器。
本發(fā)明實施例提供的分布式即時通信系統(tǒng)中的分支服務(wù)器,包括 存儲模塊,用于存儲該分支服務(wù)器所轄用戶的用戶列表,以及其他分支服 務(wù)器所轄用戶的用戶列表;
請求模塊,用于發(fā)送獲取其他分支服務(wù)器所轄用戶的用戶列表; 接收模塊,用于接收其他分支服務(wù)器發(fā)送的用戶列表或該用戶列表中用戶 信息,并保存到所述存儲模塊;
處理模塊,用于當(dāng)通信客戶端通過所述存儲模塊存儲的用戶列表選擇其他 客戶端并向其發(fā)送即時消息時,接收所述即時消息,并判斷所述即時消息的接 收方是否為該分支服務(wù)器所轄的即時通信客戶端,若是,則將所述即時消息發(fā) 送給該接收方客戶端;否則將所述即時消息發(fā)送到中心服務(wù)器。
本發(fā)明的上述實施例,通過設(shè)置中心服務(wù)器以及若干分支服務(wù)器,以及由 分支服務(wù)器對于從即時通信客戶端接收到的即時消息進行判斷,若是發(fā)送給該
分支服務(wù)器所轄客戶端的,則由該分支服務(wù)器負責(zé)發(fā)送到接收方客戶端,若是 發(fā)送給其他分支服務(wù)器所轄客戶端的,則通過中心服務(wù)器轉(zhuǎn)發(fā)給相應(yīng)的分支服 務(wù)器并由該分支服務(wù)器發(fā)送到接收方客戶端??梢钥闯?,分支服務(wù)器負擔(dān)了其 所轄客戶端的即時消息交互的處理,比現(xiàn)有技術(shù)通過一 臺服務(wù)器進行處理相 比,減輕了服務(wù)器的處理壓力,也減輕了網(wǎng)絡(luò)負荷,從而可^f是高即時通信的性 能。另外,將中心服務(wù)器對用戶列表的管理分擔(dān)到各分支服務(wù)器,由分支服務(wù) 器管理和保存該分支服務(wù)器和其他分支服務(wù)器所轄用戶的用戶列表,也提高了 用戶信息管理的靈活性以及分擔(dān)了管理負荷。


圖1為本發(fā)明實施例提供的分布式即時通信系統(tǒng)的架構(gòu)示意圖; 圖2為本發(fā)明實施例中即時通信過程所涉及到的主要流程的時序圖; 圖3為本發(fā)明實施例中分支服務(wù)器登錄中心服務(wù)器過程中的數(shù)據(jù)加密/解 密驗證以及身份—^i正的時序圖4為本發(fā)明實施例中各分支服務(wù)器之間同步用戶信息的時序圖5為本發(fā)明實施例中分支服務(wù)器獲取以及更新用戶狀態(tài)信息的時序圖6為本發(fā)明實施例中的組織架構(gòu)示意圖7為本發(fā)明實施例中客戶端通過組織結(jié)構(gòu)獲取用戶信息以及更新組織結(jié) 構(gòu)或用戶信息的過程示意圖8為本發(fā)明實施例中的中心服務(wù)器的結(jié)構(gòu)示意圖; 圖9為本發(fā)明實施例中的分支服務(wù)器的結(jié)構(gòu)示意圖。
具體實施例方式
針對現(xiàn)有技術(shù)上述的缺陷,本發(fā)明實施例提供一種分布式即時通信系統(tǒng), 以及基于該系統(tǒng)的用戶信息共享方法、即時通信方法。下面結(jié)合附圖對本發(fā)明 實施例進行詳細描述。
參見圖1,為本發(fā)明實施例提供的分布式即時通信的系統(tǒng)架構(gòu)示意圖,該 示意圖以一集群企業(yè)為例,描述了該集群企業(yè)總部以及各分公司(各分公司可 位于同一地區(qū)或不同地區(qū))的即時通信系統(tǒng)架構(gòu)。
如圖1所示,在該集群企業(yè)總部設(shè)置一中心服務(wù)器(以下稱CenterServer) 和一文件服務(wù)器(以下稱RCAFileServer),當(dāng)然也可以只i殳置CenterServer, 由其實現(xiàn)RCAFileServer的功能。在各分公司分別設(shè)置一分支服務(wù)器(以下稱 RTXServer( Real Time eXpert Server, —種具有實時處理能力的專業(yè)級服務(wù)器), 在RTXServer內(nèi)部可設(shè)置與實現(xiàn)CenterServer通信的功能模塊以及與所在分公 司內(nèi)部的即時通信客戶端(Clint)通信的功能才莫塊,如RCAServer (RTX Corporation Assembly Server)禾口 ProxyServer。上述系統(tǒng)中,各RTXServer通過 網(wǎng)絡(luò)或?qū)>€等方式連接在CenterServer上,各個分公司內(nèi)部的即時通信客戶端 通過局域網(wǎng)絡(luò)連接到各自分公司的RTXServer上。上述系統(tǒng)架構(gòu)中, CenterServer既可以設(shè)置在集群企業(yè)總部所在地,也可以設(shè)置在其他位置,如 某一分公司所在地,只要該CenterServer與各分公司的RTXServer是通過上述 網(wǎng)絡(luò)連接方式進行連接。其中
CenterServer主要負責(zé)各個分公司應(yīng)用的接入并轉(zhuǎn)發(fā)分公司之間的網(wǎng)絡(luò) 包,CenterServer不需要關(guān)注RCAServer之間網(wǎng)絡(luò)包的具體細節(jié),只關(guān)注需要 轉(zhuǎn)發(fā)到哪個分公司的RCAServer。如果轉(zhuǎn)發(fā)的是即時消息(IM)命令,而且對 方分公司的用戶不在線,則需要保存離線消息;
RCAServer主要負責(zé)本分公司與CenterServer的連接,在CenterServer與 RTXServer之間搭建一條通信的橋梁,處理分公司之間的數(shù)據(jù)收發(fā);
RCAFileServer是部署在CenterServer上的文件服務(wù)器,整體架構(gòu)與現(xiàn)有的 RTXServer中的FileServer幾乎完全一致,主要負責(zé)企業(yè)之間的文件存儲,基 本功能類似于現(xiàn)有RTXServer體系中的文件服務(wù)器;
ProxyServer是部署在分公司內(nèi)部的代理服務(wù)器,與集群服務(wù)完全獨立,用 于中轉(zhuǎn)客戶端的連接請求和透傳數(shù)據(jù),不處理具體邏輯;
RTXServer是與RCAServer部署在同一臺物理設(shè)備上的企業(yè)集群管理器 (下面簡稱管理器),主要配置本分公司對外開放級別和用戶列表。為了增加 實用性,比如通過RCAServer獲取到當(dāng)前集群系統(tǒng)內(nèi)的所有的分公司的用戶列 表和在線狀態(tài),同時需要跟RCAServer之間通過網(wǎng)絡(luò)來激發(fā)配置改變;
Client中包括RCA功能模塊,用于獲取相關(guān)權(quán)限信息以及配置信息,同時 處理外部的IM消息。RCA功能模塊可與本分7>司的RCAServer建立TCP的 長連接,用于處理用戶查詢外部好友(即其他分公司的用戶)、搜索外部好友、 查詢用戶狀態(tài)信息。
當(dāng)集群企業(yè)各分公司的客戶端之間進行即時通信時,通過CenterServer中 轉(zhuǎn)數(shù)據(jù);而同一個分公司內(nèi)部的客戶端之間進行即時通信時,通過該分公司的 RTXServer進行數(shù)據(jù)中轉(zhuǎn)。
下面對通過上述系統(tǒng)實現(xiàn)即時通信的過程進行詳細描述。
參見圖2,為本發(fā)明實施例中即時通信過程所涉及到的主要流程的時序圖, 這些過程包括RCAServer登錄CenterServer的流程、登錄后的用戶信息同步流 程、Client獲取用戶信息的流程,以及Client之間進行即時通信的流程。圖中 以分公司A和分公司B為例,描述了分公司A中的Client與分公司B中的Client 進行即時通信的過程。其中ClientA、 RTXServerA、 RCAServer A屬于分公司 A, ClientB、 RTXServerB、 RCAServerB屬于分公司B,則具體過程包括
步驟201~202、 RCAServer A啟動后,與RTXServer A進行注冊相關(guān)信息 的交互,以進行初始化操作。
該步驟中,RCAServer A向RTXServer A中的ConnServer (即RTXServer 中負責(zé)連接的服務(wù)才莫塊)發(fā)送注冊應(yīng)用信息,以向RTXServerA注冊需要關(guān)注 的命令區(qū)間(包括RCA的消息類型),還連接到RTXServerA中的GroupServer (即RTXServer中管理用戶組的服務(wù)模塊)以獲取需要關(guān)注的該分公司的用戶 狀態(tài)信息(如用戶是否登錄到RTXServer),以便將用戶在線/離線狀態(tài)呈現(xiàn)給 用戶使用戶能從中選擇其他在線用戶以進行即時通信。在初始化過程中,
RCAServer A還可以通過RTXServer A獲取分公司A對其他分公司開放的用戶 列表的版本號,并將其與從本地讀取的用戶列表版本號進行比較,若不同則更 新本地用戶列表的版本號,以便后續(xù)進行用戶信息的同步與更新。
步驟203、 RCAServer A根據(jù)預(yù)先設(shè)置的配置信息,如CenterServer的IP 地址,向CenterServer發(fā)送企業(yè)登錄請求。
步驟204、 CenterServer根據(jù)配置信息,如總機號碼、連接密碼、企業(yè)名稱、 公有密鑰等處理RCAServer A的登錄請求,并在處理后向其返回登錄成功的結(jié) 果。其中,返回登錄成功結(jié)果的步驟可選,在圖中以虛線表示。
RCAServer A成功登錄到CenterServer后,還可進行用戶信息的同步流程, 其時序如圖2中的步驟205~209所示
步驟205 ~ 206、 RCAServer A向CenterServer發(fā)送請求獲取其他分公司的 用戶列表(如其他分公司對分公司A開放的部門列表信息及各個部門的用戶列 表信息)的同步請求消息,該過程中,可針對不同的分公司分別發(fā)送同步請求 消息,CenterServer將該請求消息轉(zhuǎn)發(fā)至已經(jīng)登錄的其他分公司的RCAServer, 如RCAServer B。
步驟207 ~ 208、 RCAServer B根據(jù)該同步請求消息讀取本地存儲的能夠向 分公司A開放的用戶列表,并通過CenterServer發(fā)送到RCAServer A。
步驟209、 RCAServer A根據(jù)接收到的用戶列表更新本地存儲的分公司B 的用戶列表。
RCAServer成功登錄CenterServer后,該分^>司的Client可以登錄到所在 的RCAServer。在Client登錄RCAServer的過程中還包括獲取用戶列表信息的 過程,以Client A登錄RCAServer A為例,該過程包括
步驟210、 ClientA向RCAServerA發(fā)送獲取用戶列表的請求消息。
步驟211、 RCAServerA接收到該請求消息后,獲取本地存儲的用戶列表, 其中包括本分公司的用戶列表,還包括其他分公司對其開放的用戶列表。
步驟212、 RCAServer A將獲取到的用戶列表信息發(fā)送至Client A, Client A
更新本地的用戶列表,還可以展示給用戶以便其從中選擇其他客戶端進行即時 通信。
各分公司的Client登錄到各自分公司的RCAServer后,可以與其他分公司 的Client進行即時通信。以Client A與Client B進行即時通信為例,包括以下 步驟
步驟213、 ClientA從本地的用戶列表中選擇ClientB,并發(fā)送IM消息。
步驟214、 RCAServerA接收該IM消息,并當(dāng)判斷該IM消息的接收端為 其他分公司的Client后將其轉(zhuǎn)發(fā)至CenterServer。該步驟中,RCAServer A可根 據(jù)其上預(yù)先配置的該分公司內(nèi)部各Client的標(biāo)識或地址等信息來判斷IM消息 的接收端是否為分^^司內(nèi)部的Client;也可以才艮據(jù)IM消息中的組標(biāo)識(即分 公司標(biāo)識)來判斷。
步驟215、 CenterServer判斷該IM消息的接收端為分公司B中的Client, 并將該IM消息轉(zhuǎn)發(fā)至RCAServer B。該步驟中,RCAServer A可根據(jù)其上預(yù) 先配置的各分公司內(nèi)部各Client的標(biāo)識或地址等信息來判斷IM消息的接收端 所歸屬的分公司;也可以才艮據(jù)IM消息中的組標(biāo)識(即分^^司標(biāo)識)來判斷。
步驟216、 RCAServer B接收到該IM消息后向Client B發(fā)送該IM消息。 RCAServer B發(fā)送該IM消息后還可通過CenterServer、 RCAServer A向Client A 返回發(fā)送結(jié)果信息。
各分公司的Client登錄到各自分公司的RCAServer后,可以與各自分公司 內(nèi)部的Client進行即時通信。在該過程中,IM消息發(fā)送方的Client選擇所在 分公司的Client后向其發(fā)送IM消息,該IM消息發(fā)送到該分公司的RCAServer 后,RCAServer判斷該IM消息的接收方也屬于該分公司,則將該IM消息發(fā) 送到該分公司的IM消息接收方Client。
在圖2所示的RCAServer A登錄CenterServer的流程(如步驟201 ~ 204 ) 中,為提高安全性,RCAServer A與CenterServer之間交互的數(shù)據(jù)可進行加密/ 解密的驗證,CenterServer還可對RCAServer A進行身份驗證。在本發(fā)明的另
一實施例中,數(shù)據(jù)加密/解密驗證以及身份驗證的時序圖可如圖3所示,包括 步驟301、 RCAServer A向CenterServer發(fā)送登錄請求消息時,將總機號
碼BUin以及RCAServer A隨機生成的臨時密鑰SessKeyTmp —起采用公有密
鑰進行加密,攜帶于登錄請求消息。
步驟302-303、 CenterServer接收到該登錄請求消息后,使用私有密鑰解
密驗證,并生成后續(xù)與RCAServer A通信所用的密鑰SessionKey,并將其返回
給RCAServer A。
步驟304、 RCAServer A使用之前生成的臨時密鑰SessKeyTmp解密 CenterServer返回的消息,獲取其中的密鑰SessionKey。然后RCAServer A使 用密鑰SessionKey對登錄時的企業(yè)總機號碼以及連接密碼進行加密,并發(fā)送給
步驟305、 CenterServer對接收到的數(shù)據(jù)進行加密,并對企業(yè)總機號碼以及 連接密碼進行驗證。
在圖3所示的流程中,在包含公有密鑰文件里,還包含CenterServer的ID 以及名稱等標(biāo)識信息,該文件經(jīng)過簽名,可以防止被惡意篡改。標(biāo)識信息經(jīng)過 Hash處理后,采用CenterServer的私有密鑰進行力。密,然后進行Base64編碼。
在圖2所示的用戶信息同步流程(如步驟205~209)中,可根據(jù)用戶信息 的版本號進4亍同步處理。在本發(fā)明的另一實施例中,該同步流程可如圖4所示, 包括
步驟401 ~ 402、 RCAServer A通過向CenterServer發(fā)送同步請求,將保存 在本地的本分公司對其他分公司(如分公司B)開放的用戶列表版本號 (VerLocal)以及其他分公司(如企業(yè)分公司B)對分公司A開放的用戶列表 版本號(VerRemote)攜帶于同步請求消息發(fā)送到CenterServer, CenterServer 將版本號轉(zhuǎn)發(fā)至RCAServer B。
步驟403、 RCAServer B接收到用戶列表版本號后,將其中的版本號與本 地存儲的相應(yīng)版本號進行比較,如果VerLocal與本地保存的分公司A對分公
司B開放的用戶列表版本號不一致,則需要請求分公司A將其為分公司B開 放的用戶列表發(fā)送過來;如果VerRemote與本地保存的分7>司B對分公司A 開放的用戶列表版本號不一致,則需要將本地保存的用戶列表發(fā)送給 RCAServerA。
步驟404 ~ 405、 RCAServer B根據(jù)判斷結(jié)果,通過CenterServer向 RCAServer A返回響應(yīng)消息。
步驟406、 RCAServer A根據(jù)接收到的用戶列表的版本號判斷是否需要更
新本地的用戶列表,由于用戶列表中的每個用戶信息也具有各自的版本號,因
此RCAServer A中保存的分公司B對分公司A開》文的用戶列表中某些用戶信
息的版本號低于接收到的相應(yīng)用戶信息的版本號,則可只需更新這些用戶信 自
步驟407 ~ 409、如果RCAServer B請求獲取RCAServer A的用戶列表, 則RCAServer A將其對分公司B開放的用戶列表通過CenterServer發(fā)送給 RCAServerB,以便其更新相應(yīng)的用戶列表。
步驟410-411、 RCAServer B通過CenterServer向RCAServer A返回響應(yīng)消息。
通過上述用戶信息的同步流程,可以〗吏剛登錄到CenterServer的 RCAServer與其他已經(jīng)登錄的RCAServer相互之間保持一致的用戶列表,從而 為后續(xù)用戶通過用戶列表選擇其他用戶進行即時通信創(chuàng)造條件。上述流程可在 RCAServer A注冊到CenterServer后進行,也可在注冊成功后,根據(jù)設(shè)定的時 間或周期,或根據(jù)管理員輸入的同步指令進行。RCAServer還可以通過定時或 周期檢測本地保存的對其他分公司開放的用戶列表信息是否改變(增添用戶或 部門,或者刪除用戶或部門),若改變,則更改該用戶列表的版本號,并將更 改后的用戶列表及其版本號發(fā)送給其他分公司的RCAServer,以使其他分公司 的RCAServer更新相應(yīng)的用戶列表。
RCAServer登錄到CenterServer后,該RCAServer還可以從RTXServer中
的GroupServer中獲取本分公司對外開放的用戶的狀態(tài)并將其保存在本地,在 后續(xù)過程中,也需要根據(jù)用戶狀態(tài)的變化更新本地保存的用戶狀態(tài)信息。本發(fā) 明另一實施例中獲取以及更新用戶狀態(tài)信息的過程可如圖5所示,包括
步驟501~502、 ClientA的用戶狀態(tài)(如上線、離線、下線等)改變時, RTXServer可獲知該用戶狀態(tài)的改變,并將其通知到RCAServer A。
步驟504、 RCAServer A通過CenterServer將用戶狀態(tài)變化的信息通知給 RCAServer B, RCAServer B更新本地保存的分公司A的用戶列表中的用戶狀態(tài)。
步驟505 ~ 506、 RCAServer B通過CenterServer向RCAServer A返回更新 結(jié)果,如果RCAServer B中保存的分^^司B對企業(yè)分公司A開力文的用戶列表 中的用戶狀態(tài)也發(fā)生變化,則還可以將用戶狀態(tài)變化信息發(fā)送給RCAServer A 進行更新。
上述流程也可以根據(jù)設(shè)定的時間或周期,或根據(jù)管理員輸入的指令進行, 還可以由用戶狀態(tài)的改變觸發(fā)進行。通過該流程,各RCAServer可及時獲取當(dāng) 前各分公司的用戶狀態(tài),從而為后續(xù)各分^^司之間的用戶進行即時通信創(chuàng)造條件。
Client成功登錄RCAServer后,需要從其本地的RCAServer獲取本分公司 以及其他分公司的用戶信息,包括用戶列表及其中的用戶狀態(tài)等。Client還可 定時(如每3分鐘)從其本地的RCAServer獲取用戶信息,或者在打開會話窗 口時,從本地的RCAServer獲取對應(yīng)的會話連接的用戶信息。
在本發(fā)明的另一實施例中,用戶列表可以組織架構(gòu)的方式呈現(xiàn),圖6給出 了一種組織架構(gòu)的示意圖,該組織架構(gòu)包括幾層列表,第一層列表是各分公司 的名稱,當(dāng)點擊打開其中任一分公司時,連接到該分公司對應(yīng)的第二層列表, 該第二層列表中列出的是該分公司中的部門信息,當(dāng)點擊打開其中的一個部門 時,連接到該部門對應(yīng)的第三層列表,該第三層列出的是該部門中的用戶信息。
對于好友企業(yè)的組織架構(gòu),可由RCAServer生成響應(yīng)的Group.xml文件, 通過InfoServerAPI上傳到InfoServer (信息服務(wù)器, 一種^是供信息服務(wù)的網(wǎng)絡(luò) 服務(wù)器)的相應(yīng)目錄進行保存,客戶端可通過InfoServer下載組織架構(gòu)。下載 部門列表的更新過程,類似于現(xiàn)有的組織架構(gòu)更新過程,但是不通過現(xiàn)有的應(yīng) 用協(xié)議通道,而是直接到RCAServer來獲取。
Client通過組織結(jié)構(gòu)獲取用戶信息以及更新本地保存的組織結(jié)構(gòu)或用戶信 息的過程,可如圖7所示,包括
當(dāng)Client登錄到RCAServer后,獲取組織架構(gòu)信息的過程如步驟701 ~ 711 所示
步驟701 ~ 702、 Client向RTXServer發(fā)送獲取整個企業(yè)組織架構(gòu)的請求消 息,RTXServer將該請求消息轉(zhuǎn)發(fā)到該Client所在分公司的RCAServer。該步 驟中,RTXServer可首先根據(jù)該Client的配置信息判斷其訪問權(quán)限,并在該 Client具備訪問組織架構(gòu)的權(quán)限時,將其請求消息發(fā)送給RCAServer。
步驟703 - 705、 RCAServer讀取本地保存的組織架構(gòu)的版本號并通過 RTXServer發(fā)送給Client。
步驟706 ~ 708、 Client根據(jù)該組織架構(gòu)的版本號與本地保存的版本號進行 比較,如果不一致,則通過RTXServer向RCAServer發(fā)送請求下載組織架構(gòu)信 息的請求。
步驟709~711、 RCAServer根據(jù)該請求讀取本地的組織架構(gòu)信息,并將其 通過RTXServer發(fā)送給Client。
當(dāng)用戶選擇組織架構(gòu)中的某個分公司時,Client獲取該分公司的組織架構(gòu) 的過程如步驟712 ~ 716所示
步驟712、 Client通過RTXServer從RCAServer獲取所選擇的分公司的組 織架構(gòu)的版本號,并與本地保存的相應(yīng)版本號進行比較。
步驟713 ~ 716、當(dāng)比較結(jié)果不一致時,通過RTXServer向InfoServer獲取 該分公司的企業(yè)架構(gòu)信息并保存。
當(dāng)用戶選擇分公司中的某個部門時,Client獲取該該部門中的用戶信息的 過程如步驟717 ~ 721所示
步驟717、 Client通過RTXServer從RCAServer獲取所選擇的部門的版本 號,并與本地保存的相應(yīng)版本號進行比較。
步驟718 ~ 721、當(dāng)比較結(jié)果不一致時,通過RTXServer向RCAServer獲 取該部門的用戶列表信息并保存。
由于集群企業(yè)用戶情況可能差別比較大,為了在一套組織架構(gòu)下滿足更多 的應(yīng)用場景,本發(fā)明的實施例中,可由CenterServer下發(fā)配置信息到各 RCAServer,各RCAServer下發(fā)一些配置信息到Client。這些配置信息可以包 括客戶端是否配置自動下載所有分公司的用戶列表、是否加載所有其他分7> 司的用戶、RCAServer是否自動推送所有其他用戶的狀態(tài)變化等。
分公司與其他分公司之間的好友關(guān)系,可保存到一個公共的數(shù)據(jù)庫。如果
本分公司的用戶離線,其他分乂>司的用戶添加該用戶為好友,則這些添加好友 的信息也需要保存到該公共數(shù)據(jù)庫中,客戶端下次登錄的時候可主動獲取該公 共數(shù)據(jù)庫。
本發(fā)明實施例中,各RCAServer為了與本地的RTXServer的數(shù)據(jù)庫保持獨 立,保持原有邏輯的穩(wěn)定性,可將每個分公司的所有數(shù)據(jù)都保存在對應(yīng)的一個 獨立的數(shù)據(jù)庫中,該獨立的數(shù)據(jù)庫包括本分公司的用戶列表信息,還包括該分 公司對其他各個分公司開放的用戶列表,以及其他各分公司對本分公司開放的 用戶列表。
本發(fā)明實施例中,CenterServer主要負責(zé)各個分公司應(yīng)用的接入和數(shù)據(jù)分 析以及轉(zhuǎn)發(fā),可保存有各個已經(jīng)登錄的分公司的用戶列表以便實現(xiàn)消息轉(zhuǎn)發(fā), CenterServer能夠?qū)崿F(xiàn)的功能主要有
作為中轉(zhuǎn)服務(wù)器中轉(zhuǎn)各分公司之間的數(shù)據(jù);
提供RSA和TEA的加解密支持;
可配置管理,即能夠?qū)ν鈦淼倪B接進行管理和限制;
可監(jiān)控,即能夠查詢當(dāng)前企業(yè)在線情況; 離線消息的存儲和獲取。
圖8給出了 一種CenterServer的結(jié)構(gòu)示意圖,該CenterServer包括 接收模塊81,用于接收第一分支服務(wù)器發(fā)送的消息; 轉(zhuǎn)發(fā)模塊82,用于將接收到的消息轉(zhuǎn)發(fā)給第二分支服務(wù)器。 本發(fā)明實施例中,RCAServer是分公司內(nèi)外溝通的橋梁,負責(zé)登錄到 CenterServer,同時要處理分公司內(nèi)部客戶端的各種請求。RCAServer所包括的 功能有本地網(wǎng)絡(luò)處理、數(shù)據(jù)存儲、協(xié)議處理等。其中,網(wǎng)絡(luò)包括連接到 CenterServer部分、作為服務(wù)器處理本分公司客戶端連接的網(wǎng)絡(luò)、與本地管理 器同步數(shù)據(jù)的網(wǎng)絡(luò);數(shù)據(jù)包括其他分公司的組織架構(gòu)和用戶資料、本地配置的 對各分公司開放的組織架構(gòu)和用戶信息、本地用戶與其他分公司用戶的好友關(guān) 系、本地和其他分公司的用戶狀態(tài);協(xié)議處理包括與CenterServer之間的協(xié)議 處理、與Client之間的協(xié)議、與GroupServer之間的協(xié)議、與ConnServer之間 的應(yīng)用協(xié)議、與LicenseServer之間獲取License (許可)信息的協(xié)議、與管理 器之間的配置協(xié)議等。圖9給出了一種RCAServer的功能架構(gòu)示意圖。 如圖9給出了 一種RCAServer的結(jié)構(gòu)示意圖,該RCAServer包括 存儲模塊91,用于存儲該分支服務(wù)器所轄用戶的用戶列表,以及其他分支 服務(wù)器所轄用戶的用戶列表;
請求模塊92,用于發(fā)送獲取其他分支服務(wù)器所轄用戶的用戶列表; 接收模塊93,用于接收其他分支服務(wù)器發(fā)送的用戶列表或該用戶列表中用 戶信息,并保存到所述存儲模塊91;
處理模塊94,用于當(dāng)通信客戶端通過所述存儲模塊91存儲的用戶列表選 擇其他客戶端并向其發(fā)送即時消息時,接收所述即時消息,并判斷所述即時消 息的接收方是否為該分支服務(wù)器所轄的即時通信客戶端,若是,則將所述即時 消息發(fā)送給該接收方客戶端;否則將所述即時消息發(fā)送到中心服務(wù)器。發(fā)送即 時消息時可通過發(fā)送^f莫塊95進行發(fā)送。
進一步的,該發(fā)送模塊95還可用于發(fā)送存儲模塊91中存儲的所述分支服 務(wù)器所轄用戶的用戶列表或該列表中的用戶信息。
本發(fā)明的上述實施例中,在集群企業(yè)內(nèi)部部署中心服務(wù)器和RTX服務(wù)器, 并在RTX服務(wù)器中的RCA服務(wù)器中存儲最新的本分公司的用戶列表、其他分 公司對本分公司開放的用戶列表,各RTX服務(wù)器通過中心服務(wù)器相互連接。 釆用本發(fā)明技術(shù)方案, 一方面,集群企業(yè)中的各分公司可以更方便的實現(xiàn)用戶 信息共享;另一方面,各分公司內(nèi)部的客戶端之間進行即時通信時,只需要該 分公司本地的RXT服務(wù)器中轉(zhuǎn)數(shù)據(jù),而無需通過中心服務(wù)器中轉(zhuǎn)數(shù)據(jù),這樣 降低了中心服務(wù)器和網(wǎng)絡(luò)壓力,并且也提高了集群企業(yè)中各分公司獨立管理內(nèi) 部客戶端的能力。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種共享用戶信息的方法,其特征在于,預(yù)先設(shè)置中心服務(wù)器以及多個分支服務(wù)器,該方法包括第一分支服務(wù)器通過中心服務(wù)器向第二分支服務(wù)器請求獲取用戶列表;第二分支服務(wù)器根據(jù)該請求,將其所轄用戶的第二用戶列表通過中心服務(wù)器發(fā)送給第一分支服務(wù)器;第一分支服務(wù)器接收并保存第二用戶列表。
2、 如權(quán)利要求1所述的方法,其特征在于,第一分支服務(wù)器向第二分支 服務(wù)器請求獲取用戶列表,包括第一分支服務(wù)器將其保存的第二分支服務(wù)器所轄用戶的用戶列表的版本 標(biāo)識,通過中心服務(wù)器發(fā)送到第二分支服務(wù)器;第二分支服務(wù)器將該版本標(biāo)識與其所轄用戶的第二用戶列表的版本標(biāo)識 進行比較,當(dāng)兩者不一致時,通過中心服務(wù)器將第二用戶列表發(fā)送給第一分支 服務(wù)器。
3、 如權(quán)利要求1所述的方法,其特征在于,第一分支服務(wù)器向第二分支 服務(wù)器請求獲取用戶列表時,還將其所轄用戶的第一用戶列表的版本標(biāo)識通過 中心服務(wù)器發(fā)送給第二分支服務(wù)器;第二分支服務(wù)器還將該版本標(biāo)識與其保存的第一分支服務(wù)器所轄用戶的 用戶列表進行比較,并當(dāng)兩者不一致時,通過中心服務(wù)器請求第一分支服務(wù)器 發(fā)送用戶列表;第一分支服務(wù)器根據(jù)第二分支服務(wù)器的所述請求將第一用戶列表通過中 心服務(wù)器發(fā)送給第二分支服務(wù)器。
4、 如權(quán)利要求l所述的方法,其特征在于,還包括 第一分支服務(wù)器將其所轄用戶的第一用戶列表中發(fā)生變化的用戶狀態(tài)信息,通過中心服務(wù)器發(fā)送給第二分支服務(wù)器;或/和接收第二分支服務(wù)器通過中心服務(wù)器發(fā)送過來的、該第二分支服務(wù)器所轄 用戶的第二用戶列表中發(fā)生變化的用戶狀態(tài)信息并保存。
5、 如權(quán)利要求1所述的方法,其特征在于,第一分支服務(wù)器向第二分支 服務(wù)器請求獲取用戶列表,包括當(dāng)?shù)?一分支服務(wù)器啟動時,或用戶選擇查看第二分支服務(wù)器所轄用戶列表 時,向第二分支服務(wù)器請求獲取用戶列表;或者,第一分支服務(wù)器根據(jù)設(shè)定的時間或周期,向第二分支服務(wù)器請求獲 取用戶列表。
6、 一種分布式即時通信的方法,其特征在于,預(yù)先設(shè)置中心服務(wù)器以及 多個分支服務(wù)器,當(dāng)即時通信客戶端通過第 一分支服務(wù)器保存的用戶列表選擇 其他即時客戶端并向其發(fā)送即時消息時,該方法包括第 一分支服務(wù)器接收所述即時通信客戶端發(fā)送的即時消息;當(dāng)判斷所述即時消息的接收方為該分支^^務(wù)器所轄的即時通信客戶端時,將所述即時消息發(fā)送給該接收方客戶端;當(dāng)判斷所述即時消息的接收方為第二分支服務(wù)器所轄的即時通信客戶端時,將所述即時消息通過中心服務(wù)器轉(zhuǎn)發(fā)到第二分支服務(wù)器,第二分支服務(wù)器將所述即時消息發(fā)送到該消息的接j]t^戶端。
7、 如權(quán)利要求6所述的方法,其特征在于,第一分支服務(wù)器接收即時通 信客戶端發(fā)送的即時消息之前,還包括獲取第二分支服務(wù)器所轄用戶的第二用 戶列表并保存的步驟;所述通信客戶端根據(jù)第二用戶列表選擇即時消息的接收方并向其發(fā)送所 述即時消息。
8、 如權(quán)利要求7所述的方法,其特征在于,第一分支服務(wù)器獲取到第二 用戶列表后,還包括從中心服務(wù)器接收第二分支服務(wù)器發(fā)送過來的第二用戶列表中發(fā)生變化 的用戶狀態(tài)信息,并4艮據(jù)接收到的用戶狀態(tài)信息更新該第一分支服務(wù)器保存的 第二用戶列表; 或者,根據(jù)設(shè)定時間或周期,通過中心服務(wù)器向第二分支服務(wù)器獲取第二 用戶列表或第二用戶列表中發(fā)生變化的用戶狀態(tài)信息,并更新該第 一分支服務(wù) 器保存的第二用戶列表。
9、 一種分布式即時通信系統(tǒng),其特征在于,包括中心服務(wù)器以及一個 分支服務(wù)器,其中分支服務(wù)器,用于發(fā)送獲取其他分支服務(wù)器所轄用戶的用戶列表的請求, 接收其他分支服務(wù)器發(fā)送的用戶列表并保存;當(dāng)即時通信客戶端通過該分支服 務(wù)器保存的用戶列表選擇其他客戶端并向其發(fā)送即時消息時,接收并判斷該即 時消息的接收方是否是該分支服務(wù)器所轄的客戶端,若是,則將該即時消息發(fā) 送到接收方客戶端,否則將該即時消息發(fā)送給中心服務(wù)器;以及,接收中心服 務(wù)器轉(zhuǎn)發(fā)的即時消息并發(fā)送到該即時消息的接收方客戶端;中心服務(wù)器,用于將所述獲取其他分支服務(wù)器所轄用戶的用戶列表的請求 轉(zhuǎn)發(fā)給相應(yīng)的分支服務(wù)器,將相應(yīng)分支服務(wù)器發(fā)送的用戶列表轉(zhuǎn)發(fā)給發(fā)出給所 述分支服務(wù)器;以及,將第一分支服務(wù)器發(fā)送的所述即時消息轉(zhuǎn)發(fā)給第二分支 服務(wù)器。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述分支服務(wù)器中的第一分 支服務(wù)器進一步用于,將其保存的第二分支服務(wù)器所轄用戶的第二用戶列表的 版本標(biāo)識發(fā)送給中心服務(wù)器;所述第二分支服務(wù)器進一步用于,將所述版本標(biāo)識與其所轄用戶的第二用 戶列表的版本標(biāo)識進行比較,當(dāng)兩者不一致時,將其所轄用戶的第二用戶列表 發(fā)送給中心服務(wù)器;所述中心服務(wù)器進一步用于,將第一分支服務(wù)器發(fā)送的版本標(biāo)識轉(zhuǎn)發(fā)給第 二分支服務(wù)器;以及,將第二分支服務(wù)器發(fā)送的第二用戶列表轉(zhuǎn)發(fā)給第一分支 服務(wù)器。
11、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述分支服務(wù)器中的第一分 支服務(wù)器進一步用于,在向第二分支服務(wù)器請求獲取用戶列表時,還發(fā)送該第 一分支服務(wù)器所轄用戶的第一用戶列表的版本標(biāo)識;以及,根據(jù)第二分支服務(wù) 器的請求發(fā)送第一用戶列表;所述第二分支服務(wù)器進一步用于,將所述版本標(biāo)識與其保存的第一分支服 務(wù)器所轄用戶的用戶列表進行比較,并當(dāng)兩者不一致時,請求第一分支服務(wù)器 發(fā)送用戶列表;所述中心服務(wù)器進一步用于,將第一分支服務(wù)器發(fā)送的版本標(biāo)識轉(zhuǎn)發(fā)給第 二分支服務(wù)器;以及,將第一分支服務(wù)器發(fā)送的第一用戶列表發(fā)送給第二分支 服務(wù)器。
12、 如權(quán)利要求10或11所述的系統(tǒng),其特征在于,所述第一分支服務(wù)器 進一步用于,發(fā)送其所轄用戶的第一用戶列表中發(fā)生變化的用戶狀態(tài)信息;或 /和,接收第二分支服務(wù)器發(fā)送的該第二分支服務(wù)器所轄用戶的第二用戶列表中 發(fā)生變化的用戶狀態(tài)信息并保存;所述中心服務(wù)器進一步用于,將第一分支服務(wù)器發(fā)送的用戶狀態(tài)信息轉(zhuǎn)發(fā) 給第二分支服務(wù)器,或/和,將第二分支服務(wù)器發(fā)送的用戶狀態(tài)信息轉(zhuǎn)發(fā)給第一分支服務(wù)器。
13、 一種分布式即時通信系統(tǒng)中的分支服務(wù)器,其特征在于,包括 存儲模塊,用于存儲該分支服務(wù)器所轄用戶的用戶列表,以及其他分支服務(wù)器所轄用戶的用戶列表;請求模塊,用于發(fā)送獲取其他分支服務(wù)器所轄用戶的用戶列表;接收模塊, 信息,并保存到所述存儲模塊;處理模塊,用于當(dāng)通信客戶端通過所述存儲模塊存儲的用戶列表選擇其他 客戶端并向其發(fā)送即時消息時,接收所述即時消息,并判斷所述即時消息的接 收方是否為該分支服務(wù)器所轄的即時通信客戶端,若是,則將所述即時消息發(fā) 送給該接收方客戶端;否則將所述即時消息發(fā)送到中心服務(wù)器。
全文摘要
本發(fā)明公開一種共享用戶信息、分布式即時通信的方法及其系統(tǒng)和裝置,以解決現(xiàn)有技術(shù)中企業(yè)內(nèi)部通過一臺服務(wù)器管理所有通信客戶端所導(dǎo)致的管理靈活性差以及服務(wù)器管理負荷較重的問題以及處理所有即時通信客戶端之間的即時通信所導(dǎo)致的服務(wù)器和網(wǎng)絡(luò)壓力大、通信性能差的問題。共享用戶信息的方法包括步驟第一分支服務(wù)器通過中心服務(wù)器向第二分支服務(wù)器請求獲取用戶列表;第二分支服務(wù)器根據(jù)該請求,將其所轄用戶的第二用戶列表通過中心服務(wù)器發(fā)送給第一分支服務(wù)器;第一分支服務(wù)器接收并保存第二用戶列表。采用本發(fā)明技術(shù)方案,使得企業(yè)服務(wù)器管理通信客戶端更靈活、負荷輕;服務(wù)器處理客戶端之間的即時通信網(wǎng)絡(luò)壓力小、通信質(zhì)量好。
文檔編號H04L12/58GK101394374SQ20081022626
公開日2009年3月25日 申請日期2008年11月11日 優(yōu)先權(quán)日2008年11月11日
發(fā)明者林堅華 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
缙云县| 肃南| 荃湾区| 门源| 房山区| 长寿区| 乌兰县| 平阳县| 巧家县| 松江区| 鄱阳县| 丰都县| 和田县| 孟连| 大城县| 万荣县| 绥化市| 樟树市| 黄梅县| 海林市| 阿拉善右旗| 晴隆县| 梓潼县| 始兴县| 无棣县| 二连浩特市| 密山市| 板桥市| 晴隆县| 漠河县| 平乐县| 东宁县| 巴南区| 五台县| 台南市| 宜宾市| 义马市| 通山县| 金山区| 屏东市| 平安县|