專利名稱:一種數(shù)據(jù)更新系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡通信領(lǐng)域,尤其涉及即時通信系統(tǒng)中應用的對用戶數(shù)據(jù)更新的數(shù)據(jù)更新系統(tǒng)及方法。
背景技術(shù):
即時通信系統(tǒng)中,各個用戶之間需要實時感知其他員工的狀態(tài)以及一些基本資料,以便于找到正確的人并與之進行有效的溝通,這樣,當某一用戶的數(shù)據(jù)改變時,通常需要將改變后的數(shù)據(jù)實時地發(fā)送給其聯(lián)系人,這些與用戶相關(guān)的數(shù)據(jù)通常包括該用戶的在線狀態(tài),用戶基本資料,以及該用戶所在的組織的架構(gòu)等。這些數(shù)據(jù)通常由于安全的考慮,需要打包發(fā)送?,F(xiàn)有技術(shù)中,對用戶數(shù)據(jù)進行更新的數(shù)據(jù)更新系統(tǒng)通常包括服務器端,客戶端;上述數(shù)據(jù)的實時更新通常是采用用戶手動更新的方式或者運用定時器的方式。
其中,手動更新的方式中,數(shù)據(jù)更新的發(fā)送方將更新的數(shù)據(jù)打包發(fā)送給服務器端,服務器端對這些數(shù)據(jù)解包并存儲解析后的數(shù)據(jù)。在數(shù)據(jù)更新的接收方,其客戶端包括一檢測單元以及一協(xié)議發(fā)送單元,當接收方用戶需要更新數(shù)據(jù)時,采用手動更新的方式,即由接收方的用戶手動點擊觸發(fā)接收方客戶端上的檢測單元檢測用戶的數(shù)據(jù)更新需求,并將該數(shù)據(jù)更新的需求(包含需求數(shù)據(jù)的協(xié)議包)上報給服務器端;服務器端收到請求后,首先解析協(xié)議包中的協(xié)議命令,然后依協(xié)議命令號打包相應的數(shù)據(jù),下發(fā)數(shù)據(jù)包給接收方客戶端;接收方客戶端接收到數(shù)據(jù)包后,解包該下發(fā)的數(shù)據(jù),存儲并顯示該最新?lián)?br>
定時器更新方式中,數(shù)據(jù)更新的發(fā)送方將更新的數(shù)據(jù)打包發(fā)送給服務器端,服務器端對這些數(shù)據(jù)解包并存儲解析后的數(shù)據(jù);在數(shù)據(jù)更新的接收方,其客戶端包括一定時器以及一協(xié)議發(fā)送單元,該定時器更新方式的技術(shù)方案為接收方客戶端的定時器定時觸發(fā)客戶端的協(xié)議發(fā)送單元向服務器端發(fā)送更新數(shù)據(jù)的請求,該請求中包含有數(shù)據(jù)打包的協(xié)議包;服務器端接收到接收方端的請求后,首先解析協(xié)議包中的協(xié)議命令,然后依協(xié)議命令號打包相應的數(shù)據(jù),下發(fā)給接收方客戶端;接收方客戶端接收到數(shù)據(jù)包后,解包該下發(fā)的數(shù)據(jù),存儲并顯示最新數(shù)據(jù)。
通過上述的技術(shù),用戶的聯(lián)系人可以方便得看到該用戶的最新數(shù)據(jù),使得聯(lián)系人可以根據(jù)這些狀態(tài)信息來安排溝通的方式和時間。
然而,也可以看到,在上述系統(tǒng)中,無論采用手動更新方式還是定時器更新方式,都是基于不考慮其聯(lián)系人的狀況是否有更新而直接向服務器端獲取數(shù)據(jù),這樣,如果用戶的聯(lián)系人沒有手動去更新最新數(shù)據(jù),或者聯(lián)系人察看數(shù)據(jù)的時刻正好在定時器的間隙時間,定時器尚未觸發(fā)協(xié)議發(fā)送單元向服務器發(fā)送更新數(shù)據(jù)的請求,則用戶的聯(lián)系人獲得的用戶數(shù)據(jù)的不會是該用戶的最新的數(shù)據(jù),不能滿足即時通信的實時性要求。
另外,在上述的兩種情況下,數(shù)據(jù)上報的過程與數(shù)據(jù)下發(fā)的過程完全獨立,服務器在每次接到發(fā)送方的數(shù)據(jù)包時需要進行一次解包,才能存儲;而接收方每次更新數(shù)據(jù)都需要根據(jù)用戶需求的數(shù)據(jù)發(fā)送相應的協(xié)議包到服務器端,然后服務器端通過解包,再根據(jù)協(xié)議命令號找到相應的數(shù)據(jù),并依協(xié)議包對相應數(shù)據(jù)組包,然后才下發(fā)給客戶端,這種方式造成了服務器端處理中較大的壓力。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決現(xiàn)有技術(shù)中存在的與用戶相關(guān)的數(shù)據(jù)不能實時更新,且數(shù)據(jù)更新的過程中對服務器端造成壓力較大的問題。
為此,本發(fā)明解決技術(shù)問題的技術(shù)方案是提供一種數(shù)據(jù)更新系統(tǒng),包括多個客戶端,以及連接并實現(xiàn)客戶端間信息交互的服務器端,其中所述客戶端包括監(jiān)測單元,存儲單元以及顯示單元,其特征在于所述客戶端還包括具有特定數(shù)據(jù)包協(xié)議的組包單元,用于接收監(jiān)測單元監(jiān)測到的變更后的數(shù)據(jù),并將其組包后上報給服務器端;以及解析單元,具有與組包單元相同的數(shù)據(jù)包協(xié)議,用于接收并解析服務器端下發(fā)的數(shù)據(jù)包,并將解析后的數(shù)據(jù)發(fā)送給存儲單元以及顯示單元。
優(yōu)選的,所述服務器端包括數(shù)據(jù)管理單元以及存儲單元,數(shù)據(jù)管理單元接收數(shù)據(jù)包后,依讀取到的包頭信息,在存儲單元中查找相應的接收方,并將數(shù)據(jù)包發(fā)送給相應的接收方客戶端。
優(yōu)選的,所述的服務器端包括解析單元,其中具有與客戶端的組包單元以及解析單元中相同的數(shù)據(jù)包協(xié)議,用于接收數(shù)據(jù)管理單元接收到的數(shù)據(jù)包,并將其解包存儲在存儲單元中。
優(yōu)選的,所述的服務器端包括一個或多個提供數(shù)據(jù)的計算機服務器及其上的運行軟件,用于處理用戶數(shù)據(jù)。
優(yōu)選的,所述數(shù)據(jù)包括該用戶的在線狀態(tài),用戶基本資料,以及該用戶所在的組織的架構(gòu)。
為了更好地實現(xiàn)發(fā)明目的,本發(fā)明進一步提供一種數(shù)據(jù)更新方法,包括A.發(fā)送方客戶端依特定特定數(shù)據(jù)包協(xié)議生成變更數(shù)據(jù)的數(shù)據(jù)包,并上報該數(shù)據(jù)包;B.服務器端將收到的數(shù)據(jù)包即時轉(zhuǎn)發(fā)給接收方客戶端;C.接收方依與發(fā)送方相同的數(shù)據(jù)包協(xié)議解析數(shù)據(jù)包,并展示解析后的數(shù)據(jù)。
優(yōu)選的,步驟B包括B1.服務器端讀取數(shù)據(jù)包的包頭信息;B2.服務器端依據(jù)包頭信息查找對應的接收方;B3.將數(shù)據(jù)包下發(fā)給接收方客戶端。
優(yōu)選的,步驟A還包括A1.發(fā)送方客戶端存儲變更后的數(shù)據(jù),并依照特定方式展示變更后的數(shù)據(jù)。
優(yōu)選的,步驟B包括
B5.服務器解析接收到的數(shù)據(jù)包;B6.存儲解析后的數(shù)據(jù)。
相對于現(xiàn)有技術(shù),本發(fā)明的有益效果是由于本發(fā)明將發(fā)送方客戶端發(fā)送的變更數(shù)據(jù)即時轉(zhuǎn)發(fā),從而使得數(shù)據(jù)的更新具備時效性;同時,由于本發(fā)明在客戶端設置了具有相同數(shù)據(jù)包協(xié)議的組包單元以及解析單元,使得數(shù)據(jù)包在經(jīng)過服務器端轉(zhuǎn)發(fā)的過程中,不需要服務器進行轉(zhuǎn)發(fā)以外過多的額外的操作,從而減輕了服務器端的壓力。
圖1是本發(fā)明數(shù)據(jù)更新系統(tǒng)的示意圖;圖2是本發(fā)明數(shù)據(jù)更新系統(tǒng)的發(fā)送方客戶端的實現(xiàn)流程圖;圖3是本發(fā)明數(shù)據(jù)更新系統(tǒng)的服務器端的實現(xiàn)流程圖;圖4是本發(fā)明數(shù)據(jù)更新系統(tǒng)的接收方客戶端的實現(xiàn)流程圖;圖5是本發(fā)明應用于在線企業(yè)的實現(xiàn)流程圖;圖6是本發(fā)明的原理效果圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明數(shù)據(jù)更新系統(tǒng)及方法的主要思路在于在客戶端上設置監(jiān)測單元,以及遵從相同協(xié)議的組包單元及解析單元,當監(jiān)測單元監(jiān)測到數(shù)據(jù)的變更,即通過組包單元將相應的變更后的數(shù)據(jù)打包上報服務器端;服務器端在接到數(shù)據(jù)包后,即時直接將該數(shù)據(jù)包下發(fā)給相應的接收方客戶端;接收方客戶端再通過解析單元解析該數(shù)據(jù)包。
在此基礎(chǔ)上,服務器端在數(shù)據(jù)更新的過程中僅僅充當數(shù)據(jù)包的傳遞者,并不對其進行處理。
下面結(jié)合附圖對本發(fā)明的實施方式作詳細的描述。
如圖1所示,在本發(fā)明的實施例中,一種數(shù)據(jù)更新系統(tǒng)100包括服務器端110,發(fā)送方客戶端120,以及接收方客戶端130。需要說明的是,在本實施例中,用一個接收方客戶端來說明僅為了表述的方便,而在實際中通常一個發(fā)送方對應多個接收方。
其中,服務器端110為一個或多個提供數(shù)據(jù)的計算機服務器及其上的運行軟件,用于處理用戶數(shù)據(jù),其包括對數(shù)據(jù)上報及發(fā)布進行管理的數(shù)據(jù)管理單元112,對發(fā)送方客戶端120上報的數(shù)據(jù)包進行解析的解析單元114,以及用于存儲全部用戶信息的存儲單元116。當服務器端110為多個服務器的組合時,上述的數(shù)據(jù)管理單元112,解析單元114,以及存儲單元116可以分別位于不同的服務器上。同樣,上述的數(shù)據(jù)管理單元112,解析單元114,以及存儲單元116其中的任一個也可能由一個以上的服務器上的不同單元共同組和而成。
所述的數(shù)據(jù)管理單元112執(zhí)行以下工作接收發(fā)送方客戶端120上報的數(shù)據(jù);讀取發(fā)送方的用戶標識;將數(shù)據(jù)發(fā)送給解析單元114;并依讀取出的用戶標識在存儲單元116中查找出相應的接收方客戶端130;發(fā)布數(shù)據(jù)給該接收方客戶端130。
所述的解析單元114執(zhí)行以下工作接受數(shù)據(jù)管理單元112發(fā)送的數(shù)據(jù);對該數(shù)據(jù)進行解析,即解析出該數(shù)據(jù)的內(nèi)容是用戶的在線狀態(tài),用戶基本資料,或者是該用戶所在的組織的架構(gòu)等;將解析出的數(shù)據(jù)發(fā)送給存儲單元116存儲。
所述的存儲單元116中建立存儲有數(shù)據(jù)表,該表中至少存儲有每一發(fā)送方與其相應命令的接收方之間的關(guān)聯(lián)關(guān)系;而在一般應用中,其中還存儲有每一用戶的其他數(shù)據(jù)。
所述發(fā)送方客戶端120是指向用戶提供即時通信業(yè)務終端功能的終端設備及其上運行的軟件,包括用戶狀態(tài)監(jiān)測單元121,組包單元122,存儲單元123,解析單元124,以及顯示單元125。
監(jiān)測單元121用于監(jiān)測用戶的數(shù)據(jù)改變,并將相應數(shù)據(jù)改變信息發(fā)送給組包單元122以及存儲單元123。
組包單元122用于將接收到的數(shù)據(jù)變更信息依既定的規(guī)則組成數(shù)據(jù)包,其中,數(shù)據(jù)包的格式包括,包頭,包體,包尾三部分。包頭部分包括客戶端的版本號,協(xié)議命令,包序號,以及發(fā)包用戶的用戶標識等用于標識數(shù)據(jù)包的信息,包體中包涵有最新更改的數(shù)據(jù)信息,包尾部分包含有特定的字符,用于標識該數(shù)據(jù)包的結(jié)束。
存儲單元123用于在客戶端存儲用戶的數(shù)據(jù)。
解析單元124用于解析收到的數(shù)據(jù)包。
顯示單元125用于顯示相關(guān)數(shù)據(jù)。
所述的接收方客戶端130與發(fā)送方客戶端120,具有同樣的元器件及相應軟件,將其與發(fā)送方客戶端120分開說明,主要是為了方便。客戶端往往同時擔任發(fā)送方客戶端及接收方客戶端的角色,并同時完成用戶客戶端及聯(lián)系人客戶端完成的功能。另外,所述的發(fā)送方客戶端120與接收方客戶端130的終端設備可以是計算機,個人數(shù)位助理(PDA),手機等設備,本發(fā)明的最佳實施方式為計算機。
結(jié)合圖2所示,本發(fā)明一種數(shù)據(jù)更新的方法100的發(fā)送方客戶端120的實現(xiàn)流程如下步驟S201,監(jiān)測單元121監(jiān)測用戶數(shù)據(jù)的變更,將監(jiān)測到的變更后的數(shù)據(jù)發(fā)送給組包單元122以及存儲單元123;步驟S202,組包單元122對接收到的數(shù)據(jù)進行打包處理;步驟S203,組包單元122將數(shù)據(jù)包上報給服務器端110;步驟S204,存儲單元123存儲變更后的數(shù)據(jù);步驟S205,顯示單元125將變更后的數(shù)據(jù)以特定形式顯示出來,比如,用特定圖標顯示用戶的特定在線狀態(tài),直接顯示用戶基本資料,以及用戶所在的組織的架構(gòu)等。
結(jié)合圖3所示,服務器端110的實現(xiàn)流程如下步驟S301,數(shù)據(jù)管理單元112接收發(fā)送方客戶端120上報的數(shù)據(jù)包;步驟S302,數(shù)據(jù)管理單元112讀取數(shù)據(jù)包的包頭信息,確認客戶端的版本號,協(xié)議命令,包序號,以及發(fā)包用戶的用戶標識等用于標識數(shù)據(jù)包的信息;步驟S303,數(shù)據(jù)管理單元112依據(jù)讀取出的用戶標識在存儲單元116中查找其對應的接收方;步驟S304,將數(shù)據(jù)包發(fā)送給相應的接收方客戶端130,并同時發(fā)送給解析單元114;步驟S305,解析單元114依包頭信息中的協(xié)議命令解析數(shù)據(jù)包;步驟S306,存儲單元116存儲解析后的數(shù)據(jù)。
結(jié)合圖4所示,接收方客戶端130的實現(xiàn)流程如下步驟S401,接收服務器端110發(fā)送的數(shù)據(jù)包;步驟S403,解析單元134讀取包頭信息,并根據(jù)包頭信息解析包體的內(nèi)容,將該解析后的數(shù)據(jù)發(fā)送給顯示單元135,以及存儲單元133;步驟S404,顯示單元135依據(jù)特定形式展示解析后的數(shù)據(jù);步驟S405,存儲單元133存儲相應數(shù)據(jù)。
下面描述一下,當本發(fā)明的實施方式應用于在線企業(yè)的實例。其中,為了區(qū)別其他的協(xié)議,特將應用本發(fā)明時事先約定好的數(shù)據(jù)包傳輸協(xié)議,命名為“透傳協(xié)議”。
創(chuàng)建者成功創(chuàng)建了在線企業(yè)后,同時就建立了企業(yè)的組織結(jié)構(gòu)以及成員的相互關(guān)系鏈,企業(yè)中的各個員工需要實時感知其他員工的狀態(tài)以及基本信息。如圖5所示,當在線企業(yè)中某個員工狀態(tài)由離線變成在線,或者由在線變成離線的時候,或者用戶修改了自己的賬號或者姓名的時候(S501),客戶端首先根據(jù)透傳協(xié)議打包相關(guān)的數(shù)據(jù),并將該透傳協(xié)議發(fā)送給中繼中轉(zhuǎn)服務器(S502),如果用戶是修改了個人資料,客戶端還需要發(fā)送另外一條命令協(xié)議給企業(yè)擴展服務器修改員工資料。中繼中轉(zhuǎn)服務器把接收到的透傳協(xié)議中轉(zhuǎn)給群服務器(S503),群服務器會首先判斷是否是透傳協(xié)議(S504),如果是透傳協(xié)議,則根據(jù)企業(yè)號碼查找到屬于該在線企業(yè)的所有成員列表(S505),把用戶打包的協(xié)議數(shù)據(jù)進行企業(yè)內(nèi)部消息廣播(S506)。在線企業(yè)中其他成員的系統(tǒng)消息模塊接收到了該消息后,判斷是否是透傳協(xié)議,如果是,則加載透傳協(xié)議解析模塊,按照互相約定的協(xié)議格式進行消息解析,分離出用戶的狀態(tài),賬號和姓名(S507),接著調(diào)用文件存儲模塊存儲員工資料(S508),最后更新在線企業(yè)面板管理模塊,實現(xiàn)實時更新內(nèi)部員工的狀態(tài)以及基本資料(S509)。
當在線企業(yè)的管理員修改了企業(yè)組織結(jié)構(gòu)或者修改了員工所在部門關(guān)系的時候,這個時候需要管理員把組織結(jié)構(gòu)與人員相互關(guān)系打包傳輸?shù)饺悍掌鳎瑫r要把這些信息同樣按照透傳協(xié)議通過服務器傳輸廣播給企業(yè)中所有成員,所有成員更新本地儲存以及企業(yè)面板,實現(xiàn)實時感知企業(yè)結(jié)構(gòu)信息以及員工關(guān)系的變化。
采用這樣的實現(xiàn)方案不但可以保證減輕服務器的壓力,可以不再受限制于定時器的定時間隔,可以保證真正的實時感知企業(yè)組織結(jié)構(gòu),員工狀態(tài)以及基本信息的變化,而且只要用戶有變化,就會通過透傳協(xié)議傳輸?shù)皆诰€企業(yè)中其他員工,保證快速的實時感應。服務器與客戶端的交互效果如圖6所示,從圖中可以看出,基本上后臺服務器端可以作為一種透明的傳輸節(jié)點,以虛線形式表現(xiàn),而同樣是員工之間建立了一種虛擬的連接,以虛線連接表示。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)更新系統(tǒng),包括多個客戶端,以及連接并實現(xiàn)客戶端間信息交互的服務器端,其中所述客戶端包括監(jiān)測單元,存儲單元以及顯示單元,其特征在于所述客戶端還包括具有特定數(shù)據(jù)包協(xié)議的組包單元,用于接收監(jiān)測單元監(jiān)測到的變更后的數(shù)據(jù),并將其組包后上報給服務器端;以及解析單元,具有與組包單元相同的數(shù)據(jù)包協(xié)議,用于接收并解析服務器端下發(fā)的數(shù)據(jù)包,并將解析后的數(shù)據(jù)發(fā)送給存儲單元以及顯示單元。
2.如權(quán)利要求2所述的數(shù)據(jù)更新系統(tǒng),其特征在于所述服務器端包括數(shù)據(jù)管理單元以及存儲單元,數(shù)據(jù)管理單元接收數(shù)據(jù)包后,依讀取到的包頭信息,在存儲單元中查找相應的接收方,并將數(shù)據(jù)包發(fā)送給相應的接收方客戶端。
3.如權(quán)利要求1或2所述的數(shù)據(jù)更新系統(tǒng),其特征在于所述的服務器端包括解析單元,其中具有與客戶端的組包單元以及解析單元中相同的數(shù)據(jù)包協(xié)議,用于接收數(shù)據(jù)管理單元接收到的數(shù)據(jù)包,并將其解包存儲在存儲單元中。
4.如權(quán)利要求1或2所述的數(shù)據(jù)更新系統(tǒng),其特征在于所述的服務器端包括一個或多個提供數(shù)據(jù)的計算機服務器及其上的運行軟件,用于處理用戶數(shù)據(jù)。
5.如權(quán)利要求1或2所述的數(shù)據(jù)更新系統(tǒng),其特征在于所述數(shù)據(jù)包括該用戶的在線狀態(tài),用戶基本資料,以及該用戶所在的組織的架構(gòu)。
6.一種數(shù)據(jù)更新方法,包括A.發(fā)送方客戶端依特定特定數(shù)據(jù)包協(xié)議生成變更數(shù)據(jù)的數(shù)據(jù)包,并上報該數(shù)據(jù)包;B.服務器端將收到的數(shù)據(jù)包即時轉(zhuǎn)發(fā)給接收方客戶端;C.接收方依與發(fā)送方相同的數(shù)據(jù)包協(xié)議解析數(shù)據(jù)包,并展示解析后的數(shù)據(jù)。
7.如權(quán)利要求6所述的數(shù)據(jù)更新方法,其特征在于步驟B包括B1.服務器端讀取數(shù)據(jù)包的包頭信息;B2.服務器端依據(jù)包頭信息查找對應的接收方;B3.將數(shù)據(jù)包下發(fā)給接收方客戶端。
8.如權(quán)利要求6或7所述的數(shù)據(jù)更新方法,其特征在于步驟A還包括A1.發(fā)送方客戶端存儲變更后的數(shù)據(jù),并依照特定方式展示變更后的數(shù)據(jù)。
9.如權(quán)利要求6或7所述的數(shù)據(jù)更新方法,其特征在于步驟B包括B5.服務器解析接收到的數(shù)據(jù)包;B6.存儲解析后的數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)更新系統(tǒng),包括多個客戶端,以及連接并實現(xiàn)客戶端間信息交互的服務器端,其中所述客戶端包括監(jiān)測單元,存儲單元以及顯示單元,其特點是,客戶端還包括具有特定數(shù)據(jù)包協(xié)議的組包單元,用于接收監(jiān)測單元監(jiān)測到的變更后的數(shù)據(jù),并將其組包后上報給服務器端;以及解析單元,具有與組包單元相同的數(shù)據(jù)包協(xié)議,用于接收并解析服務器端下發(fā)的數(shù)據(jù)包,并將解析后的數(shù)據(jù)發(fā)送給存儲單元以及顯示單元。本發(fā)明可以實現(xiàn)實時的數(shù)據(jù)更新,同時,在整個過程中對服務器端的壓力比較小。本發(fā)明還公開了一種數(shù)據(jù)更新方法。
文檔編號H04L29/06GK1885786SQ200510035539
公開日2006年12月27日 申請日期2005年6月23日 優(yōu)先權(quán)日2005年6月23日
發(fā)明者李斌 申請人:騰訊科技(深圳)有限公司