專利名稱:一種實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及服務(wù)器間的計(jì)算機(jī)技術(shù),具體地涉及一種實(shí)現(xiàn)服務(wù)器之 間的數(shù)據(jù)同步的方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)的廣泛普及,基于網(wǎng)絡(luò)平臺的電子商務(wù)系統(tǒng)發(fā)展迅速,例如,阿里巴巴公司的阿里巴巴網(wǎng)站這個(gè)的網(wǎng)上貿(mào)易市場上,已有1000 多萬會員,有效的商機(jī)數(shù)多達(dá)600多萬條。雖然電子商務(wù)給我們帶來了 方便與迅速,然而,在網(wǎng)上進(jìn)行生意洽談,也會存在種種問題。例如, 商人在線下洽談時(shí), 一般會交換名片,這樣有助于互相了解并建立信任 關(guān)系。但在網(wǎng)上交易時(shí),由于是處在異地,往往不了解對方的身份資料, 無法像在線下洽談那樣具有真實(shí)性、可信性,因此,如果通過一般的電 子商務(wù)系統(tǒng)的即時(shí)洽談工具,就不能在網(wǎng)上建立良好的商業(yè)洽談氛圍。為了消除網(wǎng)上交易洽談的這種不利因素,盡可能地營造線下洽談的 商業(yè)氣氛,能夠互相展示各自的名片是一個(gè)很重要的方式。而跟網(wǎng)下方 式不同的是,在網(wǎng)上光提供各自的資料還是不夠的,為了避免欺詐行為 發(fā)生,還需要提供各自的信用指數(shù)、誠信檔案,而且還需要向?qū)Ψ秸故?各自的供求信息,作為網(wǎng)上商務(wù)洽談很重要的參考。于是,就會將加入 電子商務(wù)系統(tǒng)的會員的個(gè)人信息、公司信息、信用指數(shù)和檔案、供求信 息等作成電子名片,在電子商務(wù)系統(tǒng)的對話窗口中展現(xiàn)出來,就如線下 商務(wù)洽談時(shí)展示各自名片 一樣。然而,在網(wǎng)上貿(mào)易市場中,客戶數(shù)目眾多,業(yè)務(wù)信息量巨大,所以 日常跟蹤來自網(wǎng)上的客戶和業(yè)務(wù),成為網(wǎng)上貿(mào)易能否達(dá)成的關(guān)鍵因素。 為了方便跟蹤數(shù)目眾多的客戶,例如,阿里巴巴公司提供了一種稱為"貿(mào) 易通"的即時(shí)通訊系統(tǒng),它集成了客戶關(guān)系管理的功能,可以通過客戶 關(guān)系管理功能,對客戶進(jìn)行全程的業(yè)務(wù)跟蹤。在該即時(shí)通訊系統(tǒng)中,為
了方便用戶使用、查看,設(shè)置了客戶等級、業(yè)務(wù)狀態(tài)、業(yè)務(wù)進(jìn)程等的最 主要入口 ,并且在該即時(shí)通訊系統(tǒng)的對話窗口的電子名片中得以體現(xiàn)。上述的即時(shí)通訊系統(tǒng)和阿里巴巴網(wǎng)站是兩套系統(tǒng),而即時(shí)通訊系統(tǒng) 用戶的完整數(shù)據(jù)是存儲在阿里巴巴網(wǎng)站的數(shù)據(jù)庫服務(wù)器中的,如果釆用單純的網(wǎng)頁方式組合個(gè)人的電子名片,會帶來兩個(gè)問題(1) 由于用戶使用即時(shí)通訊系統(tǒng)進(jìn)行洽談非常頻繁,幾百萬用戶可 能同時(shí)在打開很多洽談窗口,都要去讀取名片數(shù)據(jù),這樣,獲取電子名 片的速度就會很慢,不僅影響了用戶體驗(yàn),甚至?xí)绊懓⒗锇桶途W(wǎng)站系 統(tǒng)的穩(wěn)定性。(2) 如果將上述的電子名片信息緩存在服務(wù)器端的內(nèi)存中或者在讀 取到客戶端后又緩存在客戶端,雖然可以大大提高讀取速度,但是如果 采用這種服務(wù)器端和客戶端緩存的方法,由于客戶的各項(xiàng)信息都會經(jīng)常 變動,如果對其進(jìn)行緩存,則信息可能會滯后而缺乏實(shí)時(shí)性。發(fā)明內(nèi)容本發(fā)明鑒于上述問題,旨在提供一種既能夠保證系統(tǒng)穩(wěn)定性又能夠 確保數(shù)據(jù)實(shí)時(shí)性的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法及系統(tǒng)。本發(fā)明的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征在于,通過 TCP/IP連接第一服務(wù)器的客戶端、第一服務(wù)器以及第二服務(wù)器并且用以 在所述第一服務(wù)器和所述第二服務(wù)器之間實(shí)現(xiàn)數(shù)據(jù)同步,并且,在所述 第 一服務(wù)器的客戶端具備第一緩存區(qū),在所述第 一服務(wù)器具備第二緩存 區(qū),其中,該方法依次包含下述步驟(a)用戶向所述第一服務(wù)器的客戶端請求規(guī)定數(shù)據(jù); (b ) 所述第 一服務(wù)器的客戶端判斷在所述第 一緩存區(qū)中是否存 在請求的規(guī)定數(shù)據(jù);(c) 若在所述第一緩存區(qū)中存在該規(guī)定數(shù)據(jù)并且該規(guī)定數(shù)據(jù)在 所述第一緩存區(qū)的緩存時(shí)間未超過規(guī)定時(shí)間,則進(jìn)至步驟(h);若在所 述第一緩存區(qū)不存在該規(guī)定數(shù)據(jù)或者該規(guī)定數(shù)椐的緩存時(shí)間超過規(guī)定 時(shí)間,則向所述第一服務(wù)器提交用于獲取該規(guī)定數(shù)據(jù)的請求;(d ) 所述第 一服務(wù)器在接收到來自所述第一服務(wù)器的客戶端的 用于獲取該規(guī)定數(shù)據(jù)的請求后,判斷在所述第二緩存區(qū)中是否存在該規(guī) 定數(shù)據(jù);(e) 若在所述第二緩存區(qū)中存在該規(guī)定數(shù)據(jù),則將該規(guī)定數(shù)據(jù) 返回給所述第一服務(wù)器的客戶端并進(jìn)至步驟(h);若在所述第二緩存區(qū) 中不存在該規(guī)定數(shù)據(jù),則向所述第二服務(wù)器提交用于獲取該規(guī)定數(shù)據(jù)的 請求;(f ) 所述第二服務(wù)器在接收到來自所述第一服務(wù)器的用于獲取 該規(guī)定數(shù)據(jù)的請求后,查詢該規(guī)定數(shù)據(jù)并將該規(guī)定數(shù)據(jù)返回給所述第一 服務(wù)器;(g ) 所述第 一服務(wù)器將從所述第二服務(wù)器返回的該規(guī)定數(shù)據(jù)返 回給所述第一服務(wù)器的客戶端;以及(h )用戶從所述第一服務(wù)器的客戶端獲取該規(guī)定數(shù)據(jù)。最好,在所述步驟(g)中進(jìn)一步包括所述第一服務(wù)器將從所述第二 服務(wù)器返回的該客戶數(shù)據(jù)插入到所述第二緩存區(qū)中。最好,進(jìn)一步包括所述第一服務(wù)器每隔規(guī)定時(shí)間更新所述第二緩 存區(qū)中的數(shù)據(jù)的數(shù)據(jù)更新步驟。最好,在所述數(shù)據(jù)更新步驟中,所述第一服務(wù)器向所述第二服務(wù)器 查詢最新的數(shù)據(jù),并且根據(jù)查詢到的最新的數(shù)據(jù)對所述第二緩存區(qū)中的 數(shù)據(jù)進(jìn)行更新。最好,設(shè)存儲在所述第二服務(wù)器以及所述第二緩存區(qū)中的每條記錄 具有標(biāo)識該記錄是否被更改或是否是新增的字段,在所述第一服務(wù)器向 所述第二服務(wù)器查詢時(shí),根據(jù)所述字段查詢出被更改或新增的數(shù)據(jù)作為 所述最新的數(shù)據(jù)用以更新所述第二緩存區(qū)中的數(shù)據(jù)。最好,設(shè)存儲在所述第二服務(wù)器以及所迷第二緩存區(qū)中的每條記錄 具有用于標(biāo)識其唯一性的Key,在所述數(shù)據(jù)更新步驟中,當(dāng)所述第一服 務(wù)器在所述第二服務(wù)器中查詢到最新的數(shù)據(jù)時(shí),將該最新的數(shù)據(jù)和所述 第二緩存區(qū)中已存在的數(shù)據(jù)作比較,若在所述第二緩存區(qū)中已存在相同 Key的數(shù)據(jù)的情況下,將所述第二緩存區(qū)中的數(shù)據(jù)替換成該最新的數(shù) 據(jù);若在所述第二緩存區(qū)中不存在相同Key的數(shù)據(jù)的情況下,向所述第 二緩存區(qū)插入該最新的數(shù)據(jù)。最好,將所述規(guī)定時(shí)間設(shè)定為用戶希望對數(shù)據(jù)進(jìn)行更新的時(shí)間間隔。本發(fā)明的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的系統(tǒng),其特征在于,該系統(tǒng) 具備通過TCP/IP連接的第一服務(wù)器的客戶端、第一服務(wù)器以及第二服 務(wù)器并且所述第 一服務(wù)器的客戶端具備第 一緩存區(qū)、所述第 一服務(wù)器具 備第二緩存區(qū),其中,用戶向所述第一服務(wù)器的客戶端請求規(guī)定數(shù)據(jù), 所述第一服務(wù)器的客戶端具備判斷在所述第一緩存區(qū)中是否存在請求 的規(guī)定數(shù)據(jù)的第一數(shù)據(jù)判定部;判斷該規(guī)定數(shù)據(jù)在所述第一緩存區(qū)的緩 存時(shí)間是否超過規(guī)定時(shí)間第 一緩存時(shí)間判定部;以及在由所述第 一數(shù)據(jù) 判定部判定為在所述第一緩存區(qū)中不存在規(guī)定數(shù)據(jù)或者在由所述第一 緩存時(shí)間判定部判定為所述規(guī)定數(shù)據(jù)的緩存時(shí)間超過規(guī)定時(shí)間的情況 下向所述第 一服務(wù)器提交用于獲取該規(guī)定數(shù)據(jù)的請求的第 一數(shù)據(jù)請求 部,所述第一服務(wù)器具備在接收到來自所第一數(shù)據(jù)請求部的請求后, 判斷在所述第二緩存區(qū)中是否存在該規(guī)定數(shù)據(jù)的第二數(shù)據(jù)判定部;在由 所述第二數(shù)據(jù)判定部判定在所述第二緩存區(qū)中存在該規(guī)定數(shù)據(jù)的情況下將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器的客戶端的第一數(shù)據(jù)返回部;以 及在由所述第二數(shù)據(jù)判定部判定在所述第二緩存區(qū)中不存在該規(guī)定數(shù) 據(jù)的情況下向所述第二服務(wù)器提交用于獲取該規(guī)定數(shù)據(jù)的請求的第二 數(shù)據(jù)請求部,所述第二服務(wù)器具備在接收到來自所述第二數(shù)據(jù)請求部 的請求后,查詢該規(guī)定數(shù)據(jù)并將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器的第 二數(shù)據(jù)返回部。最好,所述第一數(shù)據(jù)返回部將由所述第二數(shù)據(jù)返回部返回到第一服 務(wù)器的規(guī)定數(shù)據(jù)進(jìn)一步返回到所述第一服務(wù)器的客戶端。最好,所述第 一服務(wù)器進(jìn)一步具備將從所述第二數(shù)據(jù)返回部返回的 規(guī)定數(shù)據(jù)插入到所述第二緩存區(qū)中的數(shù)據(jù)插入部。最好,所述第一服務(wù)器進(jìn)一步具備每隔規(guī)定時(shí)間更新所述第二緩存 區(qū)中的數(shù)據(jù)的數(shù)據(jù)更新部。
最好,由計(jì)算機(jī)實(shí)現(xiàn)上述系統(tǒng)的各個(gè)組成部分。如上所述,根據(jù)本發(fā)明,由于部分客戶數(shù)據(jù)被緩存在第一緩存區(qū)(相 當(dāng)子客戶端的緩存區(qū))或者第二緩存區(qū)(相當(dāng)子即時(shí)通訊系統(tǒng)服務(wù)器的 緩存區(qū)),因此,獲取客戶數(shù)據(jù)時(shí)并不是直接對第二服務(wù)器(相當(dāng)于阿里 巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器)進(jìn)行訪問,故可以減輕客戶直接訪問阿里巴巴 網(wǎng)站而產(chǎn)生的壓力。再者,由于從第一緩存區(qū)和第二緩存區(qū)讀取客戶數(shù)據(jù)時(shí),對緩存區(qū) 緩存該客戶數(shù)據(jù)的時(shí)間進(jìn)行了判斷,以保證該客戶數(shù)據(jù)的緩存時(shí)間不超 過規(guī)定時(shí)間,這樣能夠保證所獲得的客戶數(shù)據(jù)的實(shí)時(shí)性。假設(shè),如果通過直接訪問第二服務(wù)器以獲取客戶數(shù)據(jù)的話,由于數(shù) 據(jù)訪問的頻繁性,很容易造成第二服務(wù)器的癱瘓,而如果全部通過緩存 的方式來存儲客戶數(shù)據(jù)的話,則又不能保證客戶數(shù)據(jù)的實(shí)現(xiàn)性。由此可 見,本發(fā)明能夠克服了上述兩方面的問題,既可以有效降低頻繁的數(shù)據(jù) 訪問對第二服務(wù)器產(chǎn)生的壓力以保證系統(tǒng)的穩(wěn)定性以及可用性,同時(shí)也 可以保證客戶數(shù)據(jù)的實(shí)時(shí)性。再者,通過將從第二服務(wù)器返回的客戶數(shù)據(jù)插入到第二緩存區(qū)中, 能夠保證第二緩存區(qū)中的客戶數(shù)據(jù)的實(shí)時(shí)性。再者,通過第 一服務(wù)器每隔規(guī)定時(shí)間更新第二緩存區(qū)中的客戶數(shù) 據(jù),也能夠進(jìn)一步保證第二緩存區(qū)中的客戶數(shù)據(jù)的實(shí)時(shí)性。以下將參照附圖i兌明本發(fā)明的實(shí)施方式。
圖1是表示即時(shí)通訊系統(tǒng)中顯示客戶數(shù)據(jù)的一對話窗口的示例。圖2是表示客戶關(guān)系管理系統(tǒng)中顯示客戶數(shù)據(jù)的一對話窗口的示例。圖3是表示本發(fā)明的在即時(shí)通訊系統(tǒng)和客戶關(guān)系管理系統(tǒng)之間實(shí)現(xiàn)數(shù)據(jù)同步的方法的流程圖。圖4是用于表示實(shí)現(xiàn)圖3所示方法的系統(tǒng)的示意圖。
具體實(shí)施方式
下面對本發(fā)明的示例性實(shí)施方式作描述,但是應(yīng)當(dāng)理解這些對示例 性實(shí)施方式的描述不構(gòu)成對本發(fā)明的范圍的限制,本發(fā)明的范圍只被所 附權(quán)利要求的范圍所限定??梢灶A(yù)見,本領(lǐng)域的技術(shù)人員在不脫離權(quán)利 要求的范圍和精神下,可以對本發(fā)明作出種種變化和修改。圖1是表示即時(shí)通訊系統(tǒng)顯示客戶數(shù)據(jù)的一對話窗口的示例。如圖 1所示,當(dāng)用戶在即時(shí)通訊系統(tǒng)的聯(lián)系人管理列表中點(diǎn)擊某客戶的姓 名,或者在阿里巴巴網(wǎng)站中點(diǎn)擊某客戶的即時(shí)通訊系統(tǒng)狀態(tài)圖標(biāo),從而 打開與某客戶的即時(shí)通訊系統(tǒng)對話窗口時(shí),會在窗口中即時(shí)顯示對方的基本資料的電子名片,系統(tǒng)會獲取并傳回例如以下的數(shù)據(jù) 令姓名 令性別 令職位 令個(gè)人圖片 令/>司名及/>司網(wǎng)址 令會員級別(誠信通會員,普通會員) 令誠信通指數(shù)(如果是普通會員,則沒有該項(xiàng)) 令誠信通檔案鏈接(如果是普通會員,則沒有該項(xiàng)) 令行業(yè)名稱 令最新供求信息圖2是表示客戶關(guān)系管理系統(tǒng)中顯示客戶數(shù)據(jù)的一對話窗口的示 例。如果用戶是在客戶關(guān)系管理系統(tǒng)中點(diǎn)擊某客戶的即時(shí)通訊系統(tǒng)狀態(tài) 圖標(biāo),從而打開與該客戶的對話窗口時(shí),如圖2所示,客戶端顯示的電子名片是與該客戶在客戶關(guān)系管理系統(tǒng)中相關(guān)的數(shù)據(jù) 令客戶等級令客戶狀態(tài)(潛在客戶,意向客戶等) 令備注以下,將詳細(xì)描述如何在即時(shí)通訊系統(tǒng)和客戶管理系統(tǒng)(即指阿里 巴巴網(wǎng)站數(shù)據(jù)庫)之間實(shí)現(xiàn)數(shù)據(jù)同步的方法的實(shí)施方式。
圖3是表示本發(fā)明的在即時(shí)通訊系統(tǒng)和客戶管理系統(tǒng)(即指阿里巴 巴網(wǎng)站數(shù)據(jù)庫)之間實(shí)現(xiàn)數(shù)據(jù)同步的方法的流程圖。在圖3中,通過TCP/IP連接即時(shí)通訊系統(tǒng)客戶端(相當(dāng)子下速的第 一服務(wù)器的客戶端100)、即時(shí)通訊系統(tǒng)服務(wù)器(相當(dāng)于下述的第一服務(wù) 器200)、以及阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器(相當(dāng)于下述的第二服務(wù)器 300),并且用以在即時(shí)通訊系統(tǒng)和阿里巴巴網(wǎng)站數(shù)據(jù)庫之間實(shí)現(xiàn)數(shù)據(jù)同 步。這里,在即時(shí)通訊系統(tǒng)客戶端具備緩存區(qū)(相當(dāng)于下述的第一緩存 區(qū)110),同時(shí)在即時(shí)通訊系統(tǒng)服務(wù)器也具備緩存區(qū)(相當(dāng)于下述的第二 緩存區(qū)220)。如圖3所示,該方法依次包含下述步驟(a) 用戶在打開某客戶的即時(shí)通訊系統(tǒng)對話窗口時(shí),首先檢查 在該即時(shí)通訊系統(tǒng)客戶端的緩存區(qū)中是否存在該客戶數(shù)據(jù)的HTML緩 存;(b ) 如果在即時(shí)通訊系統(tǒng)客戶端的緩存區(qū)存在有關(guān)該客戶的緩 存,并且緩存時(shí)間不超過規(guī)定時(shí)間,則根據(jù)對話窗口的打開方式在即時(shí) 通訊系統(tǒng)客戶端的對話窗口顯示該客戶數(shù)據(jù);另外,如果在即時(shí)通訊系 統(tǒng)客戶端的緩存區(qū)不存在該客戶的數(shù)據(jù)緩存、或者緩存時(shí)間已超過上迷 規(guī)定時(shí)間,則即時(shí)通訊系統(tǒng)客戶端向即時(shí)通訊系統(tǒng)服務(wù)器提交用于獲取 該客戶的數(shù)據(jù)的請求;(c ) 即時(shí)通訊系統(tǒng)服務(wù)器接收到來自即時(shí)通訊系統(tǒng)客戶端的請 求后,判斷在其緩存區(qū)中是否存在相應(yīng)的客戶數(shù)據(jù);(d) 若在即時(shí)通訊系統(tǒng)服務(wù)器的緩存區(qū)中存在該客戶數(shù)據(jù),則 將該客戶數(shù)據(jù)返回給即時(shí)通訊系統(tǒng)客戶端并且在即時(shí)通訊系統(tǒng)客戶端 的對話窗口中顯示該客戶的數(shù)據(jù);如果在即時(shí)通訊系統(tǒng)服務(wù)器的緩存區(qū)中不存在該客戶數(shù)據(jù),則即時(shí) 通訊系統(tǒng)服務(wù)器向阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器提交用于獲取該客戶數(shù) 據(jù)的請求。(e ) 阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器接收到來自即時(shí)通訊系統(tǒng)服務(wù) 器的請求后,在其數(shù)據(jù)庫中查詢該客戶數(shù)據(jù)并且將該客戶數(shù)據(jù)返回給即 時(shí)通訊系統(tǒng)服務(wù)器; (o 即時(shí)通訊系統(tǒng)服務(wù)器將從阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器返回 的該客戶數(shù)據(jù)進(jìn)一 步返回給即時(shí)通訊系統(tǒng)客戶端;(g) 在即時(shí)通訊系統(tǒng)客戶端的對話窗口 ,如上迷(b)中已說明地 #4居對話窗口的打開方式顯示該客戶數(shù)據(jù)。進(jìn)一步地,在上述步驟(f)中進(jìn)一步包括下述數(shù)據(jù)同步步驟即時(shí) 通訊系統(tǒng)服務(wù)器將從阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器返回的該客戶數(shù)據(jù)返 回給即時(shí)通訊系統(tǒng)客戶端時(shí),也將該返回的客戶數(shù)據(jù)插入到即時(shí)通訊系 統(tǒng)服務(wù)器的緩存區(qū)中。這樣,能夠確保即時(shí)通訊系統(tǒng)服務(wù)器的緩存區(qū)中的客戶數(shù)據(jù)的實(shí)時(shí)性。另 一方面,由于存儲在阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器中的客戶數(shù)據(jù)會 被經(jīng)常性地更新,因此,就需要根據(jù)被更新的數(shù)據(jù)實(shí)時(shí)地更新即時(shí)通訊 系統(tǒng)服務(wù)器的緩存區(qū)中的數(shù)據(jù),否則用戶查詢到的就可能是滯后的客戶 數(shù)據(jù)。因此,為了克服上述情況,最好,即時(shí)通訊系統(tǒng)服務(wù)器每隔規(guī)定時(shí) 間更新其緩存區(qū)中的客戶數(shù)據(jù)。具體地,即時(shí)通訊系統(tǒng)服務(wù)器每隔規(guī)定 時(shí)間向阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器查詢最新的客戶數(shù)據(jù),并且根據(jù)查詢 到的最新的客戶數(shù)據(jù)對其緩存區(qū)中的客戶數(shù)據(jù)進(jìn)行更新。上述數(shù)據(jù)更新的過程具體如下設(shè)存儲在阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù) 器和即時(shí)通訊系統(tǒng)服務(wù)器的緩存區(qū)中的每條記錄具有用于標(biāo)識其唯一 性的Key。當(dāng)即時(shí)通訊系統(tǒng)服務(wù)器在阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器中查詢 到最新的客戶數(shù)據(jù)時(shí),將該最新的客戶數(shù)據(jù)和即時(shí)通訊系統(tǒng)服務(wù)器的緩 存區(qū)中已存在的客戶數(shù)據(jù)作比較,若在該緩存區(qū)中已存在相同Key的客 戶數(shù)據(jù)的情況下,將該緩存區(qū)中的客戶數(shù)據(jù)替換成該最新的客戶數(shù)據(jù); 若在該緩存區(qū)中不存在相同Key的客戶數(shù)據(jù)的情況下,向該緩存區(qū)插入 該最新的客戶數(shù)據(jù)。如此,通過即時(shí)通訊系統(tǒng)服務(wù)器每隔規(guī)定時(shí)間向阿里巴巴網(wǎng)站的數(shù) 據(jù)庫服務(wù)器查詢最新的客戶數(shù)據(jù)并且對其緩存區(qū)中的緩存數(shù)據(jù)進(jìn)行更 新,由此,能夠保證即時(shí)通訊系統(tǒng)服務(wù)器中的緩存數(shù)據(jù)是最新的,以確
保數(shù)據(jù)的實(shí)時(shí)性。在上述數(shù)據(jù)更新的過程中,當(dāng)即時(shí)通訊系統(tǒng)服務(wù)器向阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器查詢最新的客戶數(shù)據(jù)時(shí),利用了下述數(shù)據(jù)同歩技術(shù)設(shè)存 儲在阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器的每條記錄都具有一個(gè)字段 Mod-serial,該字段的值是自增長的,它用來標(biāo)記該條數(shù)據(jù)是否有被更 改。假如某條記錄的數(shù)據(jù)被更新過、或者新加增了一條記錄,它的 Mod —serial值都是最大的。同樣,在即時(shí)通訊系統(tǒng)服務(wù)器的緩存區(qū)中的 每條記錄也具有一個(gè)Mod-serial字^殳,它的初始化值為0。即時(shí)通訊系 統(tǒng)服務(wù)器每隔規(guī)定時(shí)間查詢阿里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器,將大于其緩存 中Mod-serial的最大值的所有數(shù)據(jù)記錄查詢出來并將其作為最新的客 戶數(shù)據(jù),用該最新的客戶數(shù)據(jù)更新即時(shí)通訊系統(tǒng)服務(wù)器緩存區(qū)中已有的 數(shù)據(jù)。上述說明中的規(guī)定時(shí)間可以設(shè)定為希望對客戶數(shù)據(jù)進(jìn)行更新的任 意的合理時(shí)間間隔,例如,0.5小時(shí)、1小時(shí)、1.5小時(shí)、2小時(shí)、2.5 小時(shí)、3小時(shí)……等等。圖4是用于表示實(shí)現(xiàn)圖3所示方法的系統(tǒng)的示意圖。如圖4所示,該系統(tǒng)具備通過TCP/IP連接的第一服務(wù)器的客戶端 IOO(對應(yīng)于圖3中的即時(shí)通訊系統(tǒng)客戶端)、第一服務(wù)器200 (對應(yīng)于圖3 中的即時(shí)通訊系統(tǒng)服務(wù)器)以及第二服務(wù)器300 (對應(yīng)于圖3中的阿里巴 巴網(wǎng)站數(shù)據(jù)庫服務(wù)器)并且第一服務(wù)器的客戶端100具備第一緩存區(qū) 110、第一服務(wù)器200具備第二緩存區(qū)220。這里,用戶在訪問第一服務(wù)器的客戶端IOO時(shí),向第一服務(wù)器的客 戶端IOO請求客戶數(shù)據(jù),通過利用圖4所示的系統(tǒng)而從第一服務(wù)器的客 戶端IOO獲得要請求的客戶數(shù)據(jù)。在圖4中,第一服務(wù)器的客戶端IOO具備判斷在第一緩存區(qū)110 中是否存在請求的客戶數(shù)據(jù)的第一數(shù)據(jù)判定部101;判斷該客戶數(shù)據(jù)在 第一緩存區(qū)110的緩存時(shí)間是否超過規(guī)定時(shí)間的第一緩存時(shí)間判定部 102;以及在由第一時(shí)間判定部101判定在第一緩存區(qū)110中不存在客 戶數(shù)據(jù)或者在由第一緩存時(shí)間判定部102判定客戶數(shù)據(jù)的緩存時(shí)間超過
規(guī)定時(shí)間的情況下向第 一服務(wù)器2 00提交用于獲取該客戶數(shù)據(jù)的請求的 第一數(shù)據(jù)請求部103。其中,第一服務(wù)器200具備在接收到來自第一數(shù)據(jù)請求部103的 請求后,判斷在第二緩存區(qū)220中是否存在該客戶數(shù)據(jù)的第二數(shù)據(jù)判定 部201;在由第二數(shù)據(jù)判定部201判定在第二緩存區(qū)220中存在該客戶 數(shù)據(jù)的情況下將該客戶數(shù)據(jù)返回給第一服務(wù)器的客戶端IOO的第一數(shù)據(jù) 返回部202;以及在由第二數(shù)據(jù)判定部201判定在第二緩存區(qū)220中不 存在該客戶數(shù)據(jù)的情況下向第二服務(wù)器300提交用于獲取該客戶數(shù)據(jù)的 請求的第二數(shù)據(jù)請求部203。其中,第二服務(wù)器300具備在接收到來自第二數(shù)據(jù)請求部203的 請求后,查詢該客戶數(shù)據(jù)并將該客戶數(shù)據(jù)返回給第一服務(wù)器200的第二 凄史據(jù)返回部301。而且,上述第一數(shù)據(jù)返回部202進(jìn)一步將由第二數(shù)據(jù)返回部301返 回到第一服務(wù)器200的客戶數(shù)據(jù)返回到第一服務(wù)器的客戶端100。最好,第一服務(wù)器200進(jìn)一步具備將從第二數(shù)據(jù)返回部301返回的 客戶數(shù)據(jù)插入到第二緩存區(qū)220中的數(shù)據(jù)插入部204;以及每隔規(guī)定時(shí) 間更新第二緩存區(qū)220中的客戶數(shù)據(jù)的數(shù)據(jù)更新部205。由計(jì)算機(jī)實(shí)現(xiàn)上述第一服務(wù)器的客戶端100、第一服務(wù)器200以及 第二服務(wù)器300的各組成單元。如上所述,由于即時(shí)通訊系統(tǒng)和阿里巴巴網(wǎng)站是兩套系統(tǒng),為了在 即時(shí)通訊系統(tǒng)客戶端獲取客戶數(shù)據(jù),如果通過直接訪問阿里巴巴網(wǎng)站, 由于數(shù)據(jù)訪問的頻繁性,很容易造成阿里巴巴網(wǎng)站服務(wù)器系統(tǒng)的癱瘓; 而如果全部通過緩存的方式來存儲數(shù)據(jù),則又不能保證客戶數(shù)據(jù)的實(shí)現(xiàn) 性。本發(fā)明克服了上述兩方面的問題,通過在即時(shí)通訊系統(tǒng)服務(wù)器與阿 里巴巴網(wǎng)站數(shù)據(jù)庫服務(wù)器之間采用即時(shí)通訊系統(tǒng)客戶端緩存、即時(shí)通訊 系統(tǒng)服務(wù)器端緩存來實(shí)現(xiàn)即時(shí)通訊系統(tǒng)和阿里巴巴網(wǎng)站數(shù)據(jù)之間的數(shù) 據(jù)同步,由此,既可以有效降低頻繁的數(shù)據(jù)訪問對服務(wù)器產(chǎn)生的壓力, 保證系統(tǒng)的穩(wěn)定性和可用性,又可以保證客戶數(shù)據(jù)的實(shí)時(shí)性。另外,普通的即時(shí)通訊工具是一個(gè)單一的系統(tǒng),用戶的資料是自己維護(hù)并且沒有經(jīng)過檢驗(yàn)的,所以在商務(wù)洽談時(shí),無法給洽談雙方提供更 多的商務(wù)資料,也就無法給洽談雙方提供一個(gè)可靠的數(shù)據(jù)參考,不利于 網(wǎng)上交易的開展。而阿里巴巴是一個(gè)網(wǎng)上貿(mào)易市場,這里的用戶數(shù)據(jù)是 經(jīng)過阿里巴巴及用戶互相之間的檢驗(yàn)的,而且數(shù)據(jù)非常詳盡,不僅有客 戶的基本資料,還有客戶的公司資料、信用檔案、供求信息等。通過將 即時(shí)通訊系統(tǒng)系統(tǒng)與阿里巴巴網(wǎng)站進(jìn)行對接,以獲取客戶詳盡的商務(wù)資 料并在對話窗口中顯示電子名片,不僅給洽談雙方提供了全面的參考資料,有助于洽談雙方的互相了解,同時(shí)也突出了商務(wù)氛圍,有利于促進(jìn) 網(wǎng)上即時(shí)通訊系統(tǒng)的開展。綜上所述,在本發(fā)明中,通過采用合理的數(shù)據(jù)緩存、數(shù)據(jù)同步、數(shù) 據(jù)更新,既降低了訪問阿里巴巴網(wǎng)站服務(wù)器而產(chǎn)生的壓力,又保證了客 戶數(shù)據(jù)的實(shí)時(shí)性。以上,參照附圖對本發(fā)明的具體實(shí)施方式
作了具體描述,然而,本 領(lǐng)域中的普通技術(shù)人員應(yīng)當(dāng)理解,在不偏離本發(fā)明的精神和由權(quán)利要求 書所限定的保護(hù)范圍的情況下,本領(lǐng)域中的普通技術(shù)人員還可以對具體 實(shí)施方式中所給出的情況作各種修改。因此,參照上述附圖對本發(fā)明所 作的具體實(shí)施方式
描述不應(yīng)當(dāng)被看作是對本發(fā)明的限定。
權(quán)利要求
1.一種實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征在于,通過TCP/IP連接第一服務(wù)器的客戶端(100)、第一服務(wù)器(200)以及第二服務(wù)器(300)并且用以在所述第一服務(wù)器(100)和所述第二服務(wù)器(300)之間實(shí)現(xiàn)數(shù)據(jù)同步,并且,在所述第一服務(wù)器的客戶端(100)具備第一緩存區(qū)(110),在所述第一服務(wù)器(200)具備第二緩存區(qū)(220),其中,該方法依次包含下述步驟(a)用戶向所述第一服務(wù)器的客戶端(100)請求規(guī)定數(shù)據(jù);(b)所述第一服務(wù)器的客戶端(100)判斷在所述第一緩存區(qū)(110)中是否存在請求的規(guī)定數(shù)據(jù);(c)若在所述第一緩存區(qū)(110)中存在該規(guī)定數(shù)據(jù)并且該規(guī)定數(shù)據(jù)在所述第一緩存區(qū)(110)的緩存時(shí)間未超過規(guī)定時(shí)間,則進(jìn)至步驟(h);若在所述第一緩存區(qū)(110)不存在該規(guī)定數(shù)據(jù)或者該規(guī)定數(shù)據(jù)的緩存時(shí)間超過規(guī)定時(shí)間,則向所述第一服務(wù)器(200)提交用于獲取該規(guī)定數(shù)據(jù)的請求;(d)所述第一服務(wù)器(200)在接收到來自所述第一服務(wù)器的客戶端(100)的用于獲取該規(guī)定數(shù)據(jù)的請求后,判斷在所述第二緩存區(qū)(220)中是否存在該規(guī)定數(shù)據(jù);(e)若在所述第二緩存區(qū)(220)中存在該規(guī)定數(shù)據(jù),則將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器的客戶端(100)并進(jìn)至步驟(h);若在所述第二緩存區(qū)(220)中不存在該規(guī)定數(shù)據(jù),則向所述第二服務(wù)器(300)提交用于獲取該規(guī)定數(shù)據(jù)的請求;(f)所述第二服務(wù)器(300)在接收到來自所述第一服務(wù)器(200)的用于獲取該規(guī)定數(shù)據(jù)的請求后,查詢該規(guī)定數(shù)據(jù)并將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器(200);(g)所述第一服務(wù)器(200)將從所述第二服務(wù)器(300)返回的該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器的客戶端(100);以及(h)用戶從所述第一服務(wù)器的客戶端獲取該規(guī)定數(shù)據(jù)。
2.如權(quán)利要求1所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征在于,在所述步驟(g)中進(jìn)一步包括所述第一服務(wù)器(200)將從所述第二 服務(wù)器(300)返回的該客戶數(shù)據(jù)插入到所述第二緩存區(qū)(220)中。
3. 如權(quán)利要求1所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征 在于,進(jìn)一步包括所述第一服務(wù)器(200)每隔規(guī)定時(shí)間更新所述第二緩存區(qū)(220)中的 數(shù)據(jù)的數(shù)據(jù)更新步驟。
4. 如權(quán)利要求3所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征在于,在所述數(shù)據(jù)更新步驟中,所述第一服務(wù)器(200)向所述第二服務(wù)器 (300)查詢最新的數(shù)據(jù),并且根據(jù)查詢到的最新的數(shù)據(jù)對所述第二緩存 區(qū)(220)中的數(shù)據(jù)進(jìn)行更新。
5. 如權(quán)利要求4所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征 在于,設(shè)存儲在所述第二服務(wù)器(300)以及所述第二緩存區(qū)(220)中的每條 記錄具有標(biāo)識該記錄是否被更改或是否是新增的字段,在所述第一服務(wù) 器(200)向所述第二服務(wù)器(300)查詢時(shí),將根據(jù)所述字段查詢出被更改 或新增的數(shù)據(jù)作為所述最新的數(shù)據(jù)用以更新所述第二緩存區(qū)(220)中的數(shù)據(jù)。
6. 如權(quán)利要求5所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其特征 在于,設(shè)存儲在所述第二服務(wù)器(300)以及所述第二緩存區(qū)(220)中的每條 記錄具有用于標(biāo)識其唯一性的Key,當(dāng)所述第一服務(wù)器(200)在所述第二服務(wù)器(300)中查詢到最新的數(shù) 據(jù)時(shí),將該最新的數(shù)據(jù)和所述第二緩存區(qū)(220)中已存在的數(shù)據(jù)作比 較,若在所述第二緩存區(qū)(220)中已存在相同Key的數(shù)據(jù)的情況下,將 所述第二緩存區(qū)(220)中的數(shù)據(jù)替換成該最新的數(shù)據(jù);若在所述第二緩 存區(qū)(220)中不存在相同Key的數(shù)據(jù)的情況下,向所述第二緩存區(qū)(220) 插入該最新的數(shù)據(jù)。
7. 如權(quán)利要求1或3所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法,其 特征在于,將所速規(guī)定時(shí)間設(shè)定為用戶希望對數(shù)據(jù)進(jìn)行更新的時(shí)間間隔。
8. —種實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的系統(tǒng),其特征在于,該系統(tǒng)具 備通過TCP/IP連接的第一服務(wù)器的客戶端(IOO)、第一服務(wù)器(200)以 及第二服務(wù)器(300),并且所述第一服務(wù)器的客戶端(100)具備第一緩存 區(qū)(IIO)、所述第一服務(wù)器(200)具備第二緩存區(qū)(220),其中,用戶向 所述第 一服務(wù)器的客戶端(10 0)請求規(guī)定數(shù)據(jù),所述第 一服務(wù)器的客戶端(100)具備判斷在所述第一緩存區(qū)(110)中是否存在請求的規(guī)定數(shù)據(jù)的第一數(shù) 據(jù)判定部(101);判斷該規(guī)定數(shù)據(jù)在所述第一緩存區(qū)(110)的緩存時(shí)間是否超過規(guī)定 時(shí)間第一緩存時(shí)間判定部(102);以及在由所述第一數(shù)據(jù)判定部(IOI)判定為在所述第一緩存區(qū)(110)中 不存在規(guī)定數(shù)據(jù)或者在由所述第 一緩存時(shí)間判定部(102)判定為所述規(guī) 定數(shù)據(jù)的緩存時(shí)間超過規(guī)定時(shí)間的情況下向所述第 一服務(wù)器(2 00)提交 用于獲取該規(guī)定數(shù)據(jù)的請求的第一數(shù)據(jù)請求部(103),所述第一服務(wù)器(200)具備在接收到來自所第一數(shù)椐請求部(103)的請求后,判斷在所述第二 緩存區(qū)(220)中是否存在該規(guī)定數(shù)據(jù)的第二數(shù)據(jù)判定部(201);在由所述第二數(shù)據(jù)判定部(201)判定在所述第二緩存區(qū)(220)中存在 該規(guī)定數(shù)據(jù)的情況下將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器的客戶端 (100)的第一數(shù)據(jù)返回部(202);以及在由所述第二數(shù)據(jù)判定部(201)判定在所述第二緩存區(qū)(220)中不存 在該規(guī)定數(shù)據(jù)的情況下向所述第二服務(wù)器(300)提交用于獲取該規(guī)定數(shù) 據(jù)的請求的第二數(shù)據(jù)請求部(203),所述第二服務(wù)器(300)具備:在接收到來自所述第二數(shù)據(jù)請求部(203) 的請求后,查詢該規(guī)定數(shù)據(jù)并將該規(guī)定數(shù)據(jù)返回給所述第一服務(wù)器(200) 的第二數(shù)據(jù)返回部(301)。
9. 如權(quán)利要求8所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的系統(tǒng),其特征 在于,所速第一數(shù)據(jù)返回部(202)將由所迷第二數(shù)據(jù)返回部(301)返回到第 一服務(wù)器(200)的規(guī)定數(shù)據(jù)進(jìn)一步返回到所述第一服務(wù)器的客戶端 (100)。
10. 如權(quán)利要求8所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的系統(tǒng),其特 征在于,所述第一服務(wù)器(200)進(jìn)一步具備將從所述第二數(shù)據(jù)返回部(301)返 回的規(guī)定數(shù)據(jù)插入到所述第二緩存區(qū)(220)中的數(shù)據(jù)插入部(204)。
11. 如權(quán)利要求8所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的系統(tǒng),其特征 在于,所述第一服務(wù)器(200)進(jìn)一步具備每隔規(guī)定時(shí)間更新所述第二緩存 區(qū)(220)中的數(shù)據(jù)的數(shù)據(jù)更新部(205)。
12. 如權(quán)利要求8~11任意一項(xiàng)所述的實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步 的系統(tǒng),其特征在于,由計(jì)算機(jī)實(shí)現(xiàn)上述系統(tǒng)的各個(gè)組成部分。
全文摘要
本發(fā)明提供了一種實(shí)現(xiàn)服務(wù)器之間的數(shù)據(jù)同步的方法及系統(tǒng)。通過TCP/IP連接第一服務(wù)器的客戶端(100)、第一服務(wù)器(200)以及第二服務(wù)器(300)并且用以在所述第一服務(wù)器(200)和所述第二服務(wù)器(300)之間實(shí)現(xiàn)數(shù)據(jù)同步,其中,在第一服務(wù)器的客戶端(100)以及第一服務(wù)器(100)分別具備緩存區(qū)。通過在第一服務(wù)器的客戶端(100)以及第一服務(wù)器(20)進(jìn)行數(shù)據(jù)緩存,由此,能夠減輕客戶訪問第二服務(wù)器(300)而產(chǎn)生的壓力。通過在讀取緩存區(qū)的數(shù)據(jù)時(shí),通過對其緩存時(shí)間進(jìn)行判定,由此,能夠保證所獲得的數(shù)據(jù)的實(shí)時(shí)性。
文檔編號H04L29/06GK101132395SQ200610126120
公開日2008年2月27日 申請日期2006年8月22日 優(yōu)先權(quán)日2006年8月22日
發(fā)明者庚 劉, 劍 徐 申請人:阿里巴巴公司