亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

網(wǎng)絡(luò)環(huán)境下基于構(gòu)件中間件平臺的非一致協(xié)同系統(tǒng)及方法

文檔序號:7697185閱讀:176來源:國知局
專利名稱:網(wǎng)絡(luò)環(huán)境下基于構(gòu)件中間件平臺的非一致協(xié)同系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在計算機網(wǎng)絡(luò)上的一種面向構(gòu)件中間件平臺的分布式數(shù)據(jù)同步 系統(tǒng)及方法,尤其是一種終端基于擴展接口對服務(wù)器的存儲的協(xié)同業(yè)務(wù)數(shù)據(jù)進行遠程同步 的系統(tǒng)及方法。
背景技術(shù)
近年來,計算機軟硬件技術(shù)的不斷發(fā)展,以及網(wǎng)絡(luò)等基礎(chǔ)設(shè)施的不斷改善,為更好 地滿足人們的計算需求提供了新的契機。按需計算、普適計算、“云”計算等新的計算模式和 先進思想被提出,希望能最大程度地整合現(xiàn)有軟硬件基礎(chǔ)、透明、無時空障礙、主動按需地 滿足人的需求,MIT、CMU、劍橋、中科院、清華等國內(nèi)外各大科研院所,以及IBM、G00gle、微軟 等業(yè)界領(lǐng)先的公司也都著手進行相關(guān)技術(shù)的研發(fā)。其中,如何讓上層的軟件自適應(yīng)地根據(jù) 底層的各種不同網(wǎng)絡(luò)條件進行調(diào)整和處理成為需要研究的一個關(guān)鍵問題。尤其對于用戶而 言,當前飛速發(fā)展的移動通信環(huán)境(如3G等)讓越來越多的用戶對使用移動工作提出了更 高的需求,各種有線網(wǎng)絡(luò)下的典型應(yīng)用逐漸被遷移到移動環(huán)境下。其中,在許多業(yè)務(wù)應(yīng)用場 合下,人們希望能隨時隨、透明地的進行復(fù)雜的業(yè)務(wù)溝通,協(xié)同完成工作,而不必關(guān)心技術(shù) 實現(xiàn)的具體細節(jié),也無需花大量的人力物力去對業(yè)務(wù)系統(tǒng)進行更新或替代。這要求支持這 類業(yè)務(wù)系統(tǒng)的平臺能夠快速、靈活地適應(yīng)上層業(yè)務(wù)的變化,按需調(diào)整業(yè)務(wù)邏輯和數(shù)據(jù)模型, 以動態(tài)、可擴展地適應(yīng)各種網(wǎng)絡(luò)環(huán)境下的業(yè)務(wù)發(fā)展現(xiàn)有的移動通信業(yè)務(wù)大多基于信息的發(fā)送和接收,在滿足復(fù)雜的協(xié)同工作時存在 以下的問題移動設(shè)備的通信環(huán)境受限制與無線網(wǎng)絡(luò)環(huán)境,并不能保證隨時隨地的可靠通 信,如信號的盲區(qū)和未覆蓋地區(qū)等限制。這就決定了應(yīng)用必須支持短時的離線工作和本地 數(shù)據(jù)存儲。例如一個企業(yè)的移動協(xié)同系統(tǒng)必須能夠支持內(nèi)部用戶列表和用戶組,并且此數(shù) 據(jù)必須在每個移動終端里面存在一個非一致的數(shù)據(jù)子集——也就是很多相關(guān)的重要數(shù)據(jù) 不能在移動終端存在(如用戶列表中不能包含用戶的密碼或驗證碼等信息)。在現(xiàn)有相關(guān)技術(shù)中,消息中間件技術(shù)利用高效可靠的消息傳遞機制進行平臺無關(guān) 的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模 型,它可以在分布式環(huán)境下擴展進程間的通信。但現(xiàn)有的消息中間件技術(shù)不考慮移動環(huán)境 下不可靠通信的情況,不適于實現(xiàn)移動環(huán)境下的非一致性協(xié)同工作。針對移動環(huán)境,微軟公司推出了面向Windows CE數(shù)據(jù)庫技術(shù),通過合并復(fù)制和遠 程數(shù)據(jù)訪問(RDA)技術(shù),以及SQL Server和SQL Server CE間的數(shù)據(jù)傳輸,可實現(xiàn)移動環(huán) 境下的同步機制,但該技術(shù)與平臺綁定,應(yīng)用跨平臺存在困難。軟件構(gòu)件技術(shù)由于可插拔、易復(fù)用、平臺相對獨立的特點受到了更多的關(guān)注?;?軟件構(gòu)件技術(shù)的Web環(huán)境下的SOAP協(xié)議和Web Service技術(shù),利用統(tǒng)一接口,可實現(xiàn)互聯(lián) 網(wǎng)環(huán)境下的非一致協(xié)同。但這種方法不僅實現(xiàn)復(fù)雜,由于引入了過多的協(xié)議、傳輸和接口處 理,影響了協(xié)同處理的性能,也難以適應(yīng)終端在離線時的協(xié)同工作??紤]到現(xiàn)有移動環(huán)境的特點,基于協(xié)同的移動應(yīng)用必須支持本地數(shù)據(jù)和服務(wù)器上數(shù)據(jù)的同步,而且也必須通過保持合理的離線數(shù)據(jù),使得移動應(yīng)用系統(tǒng)能夠支持短時的離 線工作。本發(fā)明提出一種提出了一種網(wǎng)絡(luò)環(huán)境下,尤其是無線移動網(wǎng)絡(luò)環(huán)境下的非一致協(xié) 同工作系統(tǒng)。相對于基于面向?qū)ο蟮腟CA/SD0的構(gòu)件技術(shù),本發(fā)明提出的基于J2EE的構(gòu) 件技術(shù)擴平臺,易復(fù)用,可以做到把現(xiàn)有的某一個WebApp直接遷移到本發(fā)明的構(gòu)件服務(wù)器 中,通過對外發(fā)布的統(tǒng)一調(diào)用接口和利用服務(wù)器與終端上的非一致數(shù)據(jù)同步引擎完成兩者 之間的同步,從而解決協(xié)同工作中現(xiàn)有方法無法解決的主要問題。
通過本方法提出的非一致數(shù)據(jù)同步方法,在一定程度上提供了對于無線通信環(huán)境 下網(wǎng)絡(luò)的自適應(yīng)能力,從而實現(xiàn)了一種較為理想的有線及無線網(wǎng)絡(luò)條件下的非一致協(xié)同工 作方法。本方法還具有跨平臺、應(yīng)用支持靈活等特點。此外,在二次開發(fā)時,開發(fā)人員只需 要關(guān)注業(yè)務(wù)模型數(shù)據(jù)的建立、修改和展現(xiàn),不需要了解底層的、異構(gòu)的平臺、資源有限的通 信環(huán)境傳輸優(yōu)化等復(fù)雜問題,大大簡化了難度。

發(fā)明內(nèi)容
針對現(xiàn)有非一致協(xié)同技術(shù)難以適應(yīng)無線通信網(wǎng)絡(luò)環(huán)境,實現(xiàn)復(fù)雜的不足,本發(fā)明 提出一種網(wǎng)絡(luò)環(huán)境下的非一致協(xié)同系統(tǒng),所述非一致協(xié)同系統(tǒng)包括通過計算機網(wǎng)絡(luò)連接的 服務(wù)器和終端組成,服務(wù)器和終端均帶有業(yè)務(wù)數(shù)據(jù)存儲設(shè)備,服務(wù)器上運行了業(yè)務(wù)構(gòu)件平 臺和服務(wù)器端非一致協(xié)同中間件平臺,終端上運行了客戶端非一致協(xié)同中間件平臺,其中 業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)構(gòu)件平臺上運行的業(yè)務(wù)構(gòu)件產(chǎn)生,或由終端產(chǎn)生、存儲并利用非一致協(xié) 同中間件集中發(fā)送到服務(wù)器上,服務(wù)器對業(yè)務(wù)數(shù)據(jù)進行格式轉(zhuǎn)換后存儲在所述存儲設(shè)備 中。系統(tǒng)定期進行以下同步處理過程終端讀取本地上一次同步的記錄和時間戳,加上自 身標識和每次更新最多記錄數(shù),發(fā)送到服務(wù)器。如果本地沒有上一次的同步記錄,則為初始 化過程;服務(wù)器接收到終端的同步請求后,查找日志,判斷是否有需要終端的同步內(nèi)容。如 果沒有,則通知終端。如果有新的日志內(nèi)容,則按照時間排序,讀取不操作每次更新最多記 錄數(shù)的記錄數(shù),向終端返回;終端接收到服務(wù)器的日志返回,如果發(fā)現(xiàn)沒有新日志,則結(jié)束。 如果有新的日志,終端按照順序,向服務(wù)器發(fā)送每個日志具體的更新數(shù)據(jù)內(nèi)容,成功服務(wù)器 應(yīng)答后,更新本地的相關(guān)數(shù)據(jù),并通知服務(wù)器,某一個記錄已經(jīng)處理完畢,服務(wù)器對本地的 記錄進行刪除;如果終端發(fā)現(xiàn)一次同步請求返回的記錄數(shù)小于每次更新最多記錄數(shù),則可 以認為本次的同步請求已經(jīng)結(jié)束。否則,認為服務(wù)器還有可能有新的日志,此時,終端馬上 進入步驟一,進行下一次同步處理過程,直到認為同步請求結(jié)束。所述系統(tǒng)執(zhí)行以下同步 處理過程以更改和刪除數(shù)據(jù)終端建立本地更新的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù) 據(jù)更新請求。更新請求中包含數(shù)據(jù)內(nèi)容和一個唯一的時間戳,以區(qū)分不同的更新;服務(wù)器 接收到數(shù)據(jù)更新請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換方法做非一致性轉(zhuǎn)換,并更新本地存 儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳記錄更新日志,如果服務(wù)器查找到對應(yīng)的更新日志時 間戳已經(jīng)存在,表明服務(wù)器已經(jīng)成功的處理過本次更新,此時服務(wù)器不做任何操作,直接返 回成功應(yīng)答給終端;服務(wù)器向終端發(fā)送更新成功的應(yīng)答,終端接收之后,才做本地的數(shù)據(jù)更 新。如果服務(wù)器向終端發(fā)送了一個更新失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終端 成功,則終端不做更新。所述系統(tǒng)執(zhí)行以下同步處理過程以新增數(shù)據(jù)終端通過對象,建立 本地新增的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù)據(jù)新增請求。新增請求中包含數(shù)據(jù)內(nèi)容和一時間戳,以區(qū)分不同的更新;服務(wù)器接收到數(shù)據(jù)新增請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn) 換方法做非一致性轉(zhuǎn)換。并新增或更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳,記錄 更新日志;服務(wù)器向終端發(fā)送新增成功的應(yīng)答標識,終端接收之后,才做本地的數(shù)據(jù)新增操 作。如果服務(wù)器向終端發(fā)送了一個新增失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終端 成功,則終端不做新增。所述終端為手機、移動電腦,或其他具有計算能力的移動設(shè)備。所 述計算機網(wǎng)絡(luò)為有線或無線通信網(wǎng)絡(luò)。
通過本方法提出的非一致數(shù)據(jù)同步方法,在一定程度上提供了對于無線通信環(huán)境 下網(wǎng)絡(luò)的自適應(yīng)能力,從而實現(xiàn)了一種較為理想的有線及無線網(wǎng)絡(luò)條件下的非一致協(xié)同工 作方法。本方法還具有跨平臺、應(yīng)用支持靈活等特點,實現(xiàn)起來也較簡單。


圖1是本發(fā)明的非一致協(xié)同系統(tǒng)示意圖;圖2是非一致協(xié)同系統(tǒng)中構(gòu)件服務(wù)器的結(jié)構(gòu)圖;圖3是非一致協(xié)同系統(tǒng)中服務(wù)器端同步中間件模塊結(jié)構(gòu)圖;圖4是本發(fā)明的統(tǒng)一非一致專用數(shù)據(jù)存儲接口 ;圖5是本發(fā)明的XORM業(yè)務(wù)數(shù)據(jù)格式映射及格式轉(zhuǎn)化示意圖;圖6是本發(fā)明的非一致協(xié)同方法中的服務(wù)器端數(shù)據(jù)更新過程;圖7是本發(fā)明的非一致協(xié)同方法中的終端下載更新同步過程;圖8是本發(fā)明的非一致協(xié)同方法中的終端更改和刪除數(shù)據(jù)同步過程;圖9是本發(fā)明的非一致協(xié)同方法中的終端新增數(shù)據(jù)同步過程。
具體實施例方式
下面參照圖示對本發(fā)明進行詳細說明。本發(fā)明提出了一種網(wǎng)絡(luò)環(huán)境下(包含無線移動網(wǎng)絡(luò)環(huán)境)下的非一致協(xié)同系統(tǒng)。 總體結(jié)構(gòu)圖為客戶/服務(wù)器模式的系統(tǒng),具體如圖1 其中,終端可以是不同物理地址的各種操作系統(tǒng)和軟件平臺的設(shè)備,存儲了本地 數(shù)據(jù),同時終端可以對業(yè)務(wù)數(shù)據(jù)進行采集、處理、控制等工作。業(yè)務(wù)構(gòu)件系統(tǒng)和業(yè)務(wù)數(shù)據(jù)采 用集中的服務(wù)器存儲,同步,或協(xié)同業(yè)務(wù)數(shù)據(jù)通過分別位于服務(wù)器和終端上的同步中間件 進行。系統(tǒng)的構(gòu)件服務(wù)支持模塊負責業(yè)務(wù)數(shù)據(jù)集中存儲,及業(yè)務(wù)模塊的發(fā)布。每個業(yè)務(wù)構(gòu)件 兼容J2EEWebApp,如果進行二次開發(fā),基本沒有學(xué)習(xí)曲線。如圖2,業(yè)務(wù)構(gòu)件內(nèi)部通過View 接口主要負責構(gòu)件對外的視圖接口。業(yè)務(wù)構(gòu)件內(nèi)部通過Action接口對外提供業(yè)務(wù)邏輯接 口。相關(guān)的模塊配置信息定義每個構(gòu)件針對不同功能的插拔接口本方法的協(xié)同工作分別利用服務(wù)器和終端非一致數(shù)據(jù)同步通信中間件來進行。如 圖3,服務(wù)器端的非一致數(shù)據(jù)支持模塊通過專用數(shù)據(jù)存儲接口 支持對業(yè)務(wù)數(shù)據(jù)的增加、刪 除、修改和查詢操作。所有構(gòu)件的業(yè)務(wù)數(shù)據(jù)的操作,都必須經(jīng)過此接口。具體方法請參考后 續(xù)內(nèi)容。構(gòu)件服務(wù)支持的專用開放接口 通過此接口,業(yè)務(wù)構(gòu)件一旦插入到系統(tǒng)中,就可以 被系統(tǒng)自動進行掛接。立刻為終端提供支持。如圖4,終端上的本地數(shù)據(jù)存儲支持模塊支持windows mobile的.net compactframework版本,也支持j2me的java版本。如圖5,為了方便當前流行的IT業(yè)務(wù)系統(tǒng)的面向?qū)ο筌浖_發(fā)方法和關(guān)系數(shù)據(jù)庫 的使用,使消息及數(shù)據(jù)格式能夠不依賴于異構(gòu)基礎(chǔ)系統(tǒng),本發(fā)明提出了引入了 XORM概念和 平臺無關(guān)的XmlData數(shù)據(jù)格式,以及XORM映射技術(shù),它是一種通用的結(jié)構(gòu)化Xml數(shù)據(jù)格式。 使數(shù)據(jù)的業(yè)務(wù)計算(對象如java,c#),傳輸(xml格式)和存儲(關(guān)系數(shù)據(jù)庫中的記錄)能 夠有機統(tǒng)一。方便業(yè)務(wù)系統(tǒng)的快速開發(fā)。XmlData支持各種數(shù)據(jù)類型和子XmlData結(jié)構(gòu),同時還支持數(shù)組和子XmlData列 表,它本身就是一個非常靈活的支持樹狀任意結(jié)構(gòu)的對象。在移動通信環(huán)境中,考慮到帶寬的限制和一些移動終端有限的內(nèi)存資源,XmlData 支持二進制壓縮結(jié)構(gòu)的流輸出,以盡可能的建設(shè)資源的占用。事實上,構(gòu)件對外開放的接口 View和Action的輸入輸出也是有XmlData (View還 輸出了界面需要的內(nèi)容)。這也是構(gòu)件和平臺、構(gòu)件與構(gòu)件間的平臺無關(guān)結(jié)構(gòu)。 系統(tǒng)引入了抽象的通信調(diào)用接口,使得服務(wù)器端和移動終端根據(jù)具體的網(wǎng)絡(luò)環(huán) 境,做實際的通信實現(xiàn),或者同時支持多種通信方式。以便于同時支持多種異構(gòu)移動終端。 支持多種具體通信方式,如socket,http,soap等。服務(wù)器端存儲了全部數(shù)據(jù),所有的終端數(shù)據(jù)都是服務(wù)器端數(shù)據(jù)的一個子集。也就 是說,每個終端損壞,原則上是不會丟失數(shù)據(jù)的。只需要重新配置一個相同id和密鑰的終 端,通過向服務(wù)器請求同步初始化,就可以恢復(fù)自己的數(shù)據(jù)。另外,終端根據(jù)自身的特點,存儲的數(shù)據(jù)結(jié)構(gòu)和服務(wù)器的數(shù)據(jù)結(jié)構(gòu)不相同。一般情 況下,終端內(nèi)部的數(shù)據(jù)結(jié)構(gòu)都是以終端使用者所需要信息的特點進行組織。而服務(wù)器一般 是根據(jù)業(yè)務(wù)大數(shù)據(jù)量的需要建立的關(guān)系數(shù)據(jù)結(jié)構(gòu),存儲了所有終端的信息。另外,還存在終 端不允許出現(xiàn)的信息,如驗證密鑰等。這種數(shù)據(jù)的非一致轉(zhuǎn)換,由終端發(fā)送非一致同步請 求,通過實際的通信過程,服務(wù)器端接收到請求,查找相關(guān)的構(gòu)件,定位構(gòu)件開放的非一致 數(shù)據(jù)轉(zhuǎn)換action,做具體的轉(zhuǎn)換處理,如果處理成功,則把處理結(jié)果存儲到服務(wù)器的關(guān)系數(shù) 據(jù)庫中。具體來說,本發(fā)明的非一致協(xié)同方法主要包括以下過程1)服務(wù)器端數(shù)據(jù)更新過程服務(wù)器端的業(yè)務(wù)數(shù)據(jù)的更新來源可能有兩個,一個是用戶通過相關(guān)構(gòu)件提供的功 能直接使用產(chǎn)生的數(shù)據(jù)更新,另一個是終端發(fā)起的數(shù)據(jù)更改請求,通過服務(wù)器的同步轉(zhuǎn)換 (由相關(guān)構(gòu)件開放的非一致終端數(shù)據(jù)非一致同步請求處理action)后,更新本地存儲設(shè)備 中的數(shù)據(jù)。不管哪種方式,系統(tǒng)必須能夠知道,服務(wù)器端的存儲設(shè)備上哪些業(yè)務(wù)數(shù)據(jù)做了更 改,并且這些更改如果通過非一致數(shù)據(jù)轉(zhuǎn)換,會影響到哪些終端。此過程通過系統(tǒng)服務(wù)器端 存儲日志實現(xiàn)。如圖6,由于構(gòu)件服務(wù)器基于J2EE實現(xiàn),訪問存儲設(shè)備一般都采用JDBC接口。為 了能夠截獲所有的數(shù)據(jù)庫訪問請求,非一致服務(wù)器端同步中間件實現(xiàn)了一個標準的JDBC 驅(qū)動器,此驅(qū)動對頂層提供了標準的JDBC接口。通過Wrapper模式,對底層的具體驅(qū)動做 了訪問請求截獲和轉(zhuǎn)發(fā)。其中Log中保存的內(nèi)容,是針對每個終端同步更新需要的數(shù)據(jù)id 和時間戳。2)終端下載更新同步過程(包含數(shù)據(jù)初始化)
大部分情況下,終端的使用是時斷時續(xù)的,服務(wù)器主動push同步數(shù)據(jù)方式?jīng)]有太 大意義。而服務(wù)器一般是7x24小時不間斷的運行。如圖7,由終端(非一致同步通信中間 件終端模塊)定期的發(fā)起同步請求。步驟1 終端讀取本地上一次同步的Iogid和時間戳(Timestamp),加上自身id和 每次更新最多記錄數(shù)(max_log_nUm),發(fā)送到服務(wù)器。如果本地沒有上一次的同步logid, 則可以認為是初始化過程。
步驟2:服務(wù)器接收到終端的同步請求后,查找Log,判斷是否有需要終端的同步 內(nèi)容。如果沒有,則通知終端。如果有新的log內(nèi)容,則按照時間排序,讀取不操作max_log_ num的記錄數(shù),向終端返回。(注之所以使用max_log_nUm限制返回記錄數(shù),是考慮到移動 環(huán)境的帶寬限制和最有效的利用內(nèi)存考慮)。步驟3 終端接收到服務(wù)器的log返回,如果發(fā)現(xiàn)沒有新log,則結(jié)束。如果有新的 log,終端按照順序,向服務(wù)器發(fā)送每個log具體的更新數(shù)據(jù)內(nèi)容(更改內(nèi)容或刪除),成功 服務(wù)器應(yīng)答后,更新本地的相關(guān)數(shù)據(jù),并通知服務(wù)器,某一個Iogid已經(jīng)處理完畢,服務(wù)器 對本地的Iogid做刪除。步驟4 如果終端發(fā)現(xiàn)一次同步請求返回的記錄數(shù)小于maX_l0g_nUm,則可以認為 本次的同步請求已經(jīng)結(jié)束。否則,認為服務(wù)器還有可能有新的log,此時,終端馬上進入步驟 1,進行下一次同步。過程,直到認為同步請求結(jié)束。3)終端更改和刪除數(shù)據(jù)同步過程根據(jù)構(gòu)件開放的接口定義,允許某種業(yè)務(wù),在終端進行部分的數(shù)據(jù)修改和刪除操 作,并通過非一致方式同步到服務(wù)器中。如圖8,如終端用戶針對某一個任務(wù)工作項進行狀 態(tài)更新操作,就需要從終端發(fā)起更新請求。步驟1 終端通過XmlData對象,建立本地更新的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器 發(fā)起數(shù)據(jù)更新請求。更新請求中包含數(shù)據(jù)內(nèi)容和一個唯一的時間戳id,以區(qū)分不同的更新。步驟2 服務(wù)器接收到數(shù)據(jù)更新請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換action做非 一致性轉(zhuǎn)換(轉(zhuǎn)換過程中同時判斷數(shù)據(jù)的有效性,以避免出現(xiàn)不該做的終端更新操作)。并 更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳,記錄更新log。注如果服務(wù)器查找到對應(yīng)的更新log時間戳已經(jīng)存在,表明服務(wù)器已經(jīng)成功的 處理過本次更新,可能是服務(wù)器向終端應(yīng)答成功信息時,網(wǎng)絡(luò)出現(xiàn)故障或終端出現(xiàn)故障引 起,此時服務(wù)器不做任何操作,直接返回成功應(yīng)答給終端。步驟3 服務(wù)器向終端發(fā)送更新成功的應(yīng)答,終端接收之后,才做本地的數(shù)據(jù)更 新。如果服務(wù)器向終端發(fā)送了一個更新失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終端 成功,則終端不做更新。4)終端新增數(shù)據(jù)同步過程根據(jù)構(gòu)件開放的接口定義,允許某種業(yè)務(wù),在終端進行部分的數(shù)據(jù)增加操作,并通 過非一致方式同步到服務(wù)器中。如終端用戶向其他用戶發(fā)送指令,在終端發(fā)送表中需要增 加一條記錄。在這之前,需要服務(wù)器里面的用戶指令接收表增加多個記錄(每個接收用戶 一條記錄)——這就是典型的非一致數(shù)據(jù)的新增過程。不過,終端新增已發(fā)送指令記錄前, 必須先通過服務(wù)器發(fā)送成功。否則,會造成數(shù)據(jù)的不一致——終端發(fā)送指令的用戶以為指 令已經(jīng)發(fā)送,而服務(wù)器并沒有發(fā)送成功。所以,終端新增數(shù)據(jù)有如下約束必須通過服務(wù)器新增成功,并返回新記錄的id號,終端才能做本地的數(shù)據(jù)插入。步驟1 終端通過XmlData對象,建立本地新增的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器 發(fā)起數(shù)據(jù)新增請求。新增請求中包含數(shù)據(jù)內(nèi)容和一時間戳id,以區(qū)分不同的更新。步驟2 服務(wù)器接收到數(shù)據(jù)新增請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換action做非 一致性轉(zhuǎn)換。并新增或更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳,記錄更新log。步驟3 服務(wù)器向終端發(fā)送新增成功的應(yīng)答id,終端接收之后,才做本地的數(shù)據(jù)新 增操作。如果服務(wù)器向終端發(fā)送了一個新增失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知 終端成功,則終端不做新增。本發(fā)明的協(xié)同數(shù)據(jù)由由XmlData標準封裝,它采用了 一下的標準格式和壓縮格式1),標準格式 其中,d代表一個XmlData,里面可以包含原子參數(shù)ρρ代表原子參數(shù),包含類型t,名稱η和字符串表示的值ν (支持數(shù)組)dp代表d內(nèi)部的子XmlData,內(nèi)部嵌套d節(jié)點2)壓縮流格式壓縮流格式整體結(jié)構(gòu)與XmlData相同,唯一不同的是結(jié)構(gòu)的起止標記以單字節(jié)值 表示,結(jié)束標記值=起始標記值+100,參數(shù)名詞和參數(shù)值都以具體的二進制值表示,對于字 符串值,使用四個字節(jié)的整數(shù)值定義字符串長度和后續(xù)的內(nèi)容如下表XmlData結(jié)構(gòu)壓縮格式D = 22 參數(shù)格式P = 21 字符串格式 參數(shù)值類型 針對不同的平臺,XORM的XmlData、對象和關(guān)系表相互映射采用以下的方法1)對于java平臺,使用annotation技術(shù),對類里面的成員進行XORM定義。對于.Net環(huán)境,使用attribute技術(shù),對類里面的成員進行XORM定義。2)通過反射技術(shù)(Reflection)對相關(guān)的內(nèi)容進行XmlData,對象之間進行轉(zhuǎn)換。3)對于關(guān)系 數(shù)據(jù)庫,通過對JDBC的封裝,定義了基于XmlData作為參數(shù)的數(shù)據(jù)庫 訪問API.以上描述的具體實施方式
只是對本發(fā)明進行示例,本領(lǐng)域技術(shù)人員在不脫離本發(fā) 明實質(zhì)性思想的基礎(chǔ)上進行各種修改和改進后得到的技術(shù)方案,均視為在本發(fā)明的范圍之 內(nèi)。本發(fā)明適當?shù)姆秶詸?quán)利要求書為準進行確定。
權(quán)利要求
一種網(wǎng)絡(luò)環(huán)境下的非一致協(xié)同系統(tǒng),所述非一致協(xié)同系統(tǒng)包括通過計算機網(wǎng)絡(luò)連接的服務(wù)器和終端組成,服務(wù)器和終端均帶有業(yè)務(wù)數(shù)據(jù)存儲設(shè)備,服務(wù)器上運行了業(yè)務(wù)構(gòu)件平臺和服務(wù)器端非一致協(xié)同中間件平臺,終端上運行了客戶端非一致協(xié)同中間件平臺,其中業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)構(gòu)件平臺上運行的業(yè)務(wù)構(gòu)件產(chǎn)生,或由終端產(chǎn)生、存儲并利用非一致協(xié)同中間件集中發(fā)送到服務(wù)器上,服務(wù)器對業(yè)務(wù)數(shù)據(jù)進行格式轉(zhuǎn)換后存儲在所述存儲設(shè)備中。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于所述系統(tǒng)定期進行以下同步處理過程 步驟一終端讀取本地上一次同步的記錄和時間戳,加上自身標識和每次更新最多記錄數(shù),發(fā)送到服務(wù)器。如果本地沒有上一次的同步記錄,則為初始化過程;步驟二 服務(wù)器接收到終端的同步請求后,查找日志,判斷是否有需要終端的同步內(nèi) 容。如果沒有,則通知終端。如果有新的日志內(nèi)容,則按照時間排序,讀取不操作每次更新 最多記錄數(shù)的記錄數(shù),向終端返回;步驟三終端接收到服務(wù)器的日志返回,如果發(fā)現(xiàn)沒有新日志,則結(jié)束。如果有新的 日志,終端按照順序,向服務(wù)器發(fā)送每個日志具體的更新數(shù)據(jù)內(nèi)容,成功服務(wù)器應(yīng)答后,更 新本地的相關(guān)數(shù)據(jù),并通知服務(wù)器,某一個記錄已經(jīng)處理完畢,服務(wù)器對本地的記錄進行刪 除;步驟四如果終端發(fā)現(xiàn)一次同步請求返回的記錄數(shù)小于每次更新最多記錄數(shù),則可以 認為本次的同步請求已經(jīng)結(jié)束。否則,認為服務(wù)器還有可能有新的日志,此時,終端馬上進 入步驟一,進行下一次同步處理過程,直到認為同步請求結(jié)束。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于所述系統(tǒng)執(zhí)行以下同步處理過程以更改和 刪除數(shù)據(jù)步驟一終端建立本地更新的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù)據(jù)更新請求。更新 請求中包含數(shù)據(jù)內(nèi)容和一個唯一的時間戳,以區(qū)分不同的更新;步驟二 服務(wù)器接收到數(shù)據(jù)更新請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換方法做非一致性 轉(zhuǎn)換,并更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳記錄更新日志,如果服務(wù)器查找到 對應(yīng)的更新日志時間戳已經(jīng)存在,表明服務(wù)器已經(jīng)成功的處理過本次更新,此時服務(wù)器不 做任何操作,直接返回成功應(yīng)答給終端;步驟三服務(wù)器向終端發(fā)送更新成功的應(yīng)答,終端接收之后,才做本地的數(shù)據(jù)更新。如 果服務(wù)器向終端發(fā)送了一個更新失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終端成功, 則終端不做更新。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于所述系統(tǒng)執(zhí)行以下同步處理過程以新增數(shù)據(jù)步驟一終端通過對象,建立本地新增的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù)據(jù)新增 請求。新增請求中包含數(shù)據(jù)內(nèi)容和一時間戳,以區(qū)分不同的更新;步驟二 服務(wù)器接收到數(shù)據(jù)新增請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換方法做非一致性 轉(zhuǎn)換。并新增或更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳,記錄更新日志;步驟三服務(wù)器向終端發(fā)送新增成功的應(yīng)答標識,終端接收之后,才做本地的數(shù)據(jù)新增 操作。如果服務(wù)器向終端發(fā)送了一個新增失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終 端成功,則終端不做新增。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于所述終端為手機、移動電腦,或其他具有計 算能力的移動設(shè)備。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于所述計算機網(wǎng)絡(luò)為有線或無線通信網(wǎng)絡(luò)。
7.—種網(wǎng)絡(luò)環(huán)境下計算機系統(tǒng)中業(yè)務(wù)數(shù)據(jù)的非一致協(xié)同方法,所述系統(tǒng)包括通過計算 機網(wǎng)絡(luò)連接的服務(wù)器和終端組成,服務(wù)器和終端均帶有業(yè)務(wù)數(shù)據(jù)存儲設(shè)備,服務(wù)器上運行 了業(yè)務(wù)構(gòu)件平臺和服務(wù)器端非一致協(xié)同中間件平臺,終端上運行了客戶端非一致協(xié)同中間 件平臺,其中業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)構(gòu)件平臺上運行的業(yè)務(wù)構(gòu)件產(chǎn)生,或由終端產(chǎn)生、存儲并利 用非一致協(xié)同中間件集中發(fā)送到服務(wù)器上,服務(wù)器對業(yè)務(wù)數(shù)據(jù)進行格式轉(zhuǎn)換后存儲在所述 存儲設(shè)備中。
8.如權(quán)利要求7所述的方法,其特征在于定期進行以下同步處理過程步驟一終端讀取本地上一次同步的記錄和時間戳,加上自身標識和每次更新最多記 錄數(shù),發(fā)送到服務(wù)器。如果本地沒有上一次的同步記錄,則為初始化過程;步驟二 服務(wù)器接收到終端的同步請求后,查找日志,判斷是否有需要終端的同步內(nèi) 容。如果沒有,則通知終端。如果有新的日志內(nèi)容,則按照時間排序,讀取不操作每次更新 最多記錄數(shù)的記錄數(shù),向終端返回;步驟三終端接收到服務(wù)器的日志返回,如果發(fā)現(xiàn)沒有新日志,則結(jié)束。如果有新的 日志,終端按照順序,向服務(wù)器發(fā)送每個日志具體的更新數(shù)據(jù)內(nèi)容,成功服務(wù)器應(yīng)答后,更 新本地的相關(guān)數(shù)據(jù),并通知服務(wù)器,某一個記錄已經(jīng)處理完畢,服務(wù)器對本地的記錄進行刪 除;步驟四如果終端發(fā)現(xiàn)一次同步請求返回的記錄數(shù)小于每次更新最多記錄數(shù),則可以 認為本次的同步請求已經(jīng)結(jié)束。否則,認為服務(wù)器還有可能有新的日志,此時,終端馬上進 入步驟一,進行下一次同步處理過程,直到認為同步請求結(jié)束。
9.如權(quán)利要求8所述的方法,其特征在于執(zhí)行以下同步處理過程以更改和刪除數(shù)據(jù)步驟一終端建立本地更新的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù)據(jù)更新請求。更新 請求中包含數(shù)據(jù)內(nèi)容和一個唯一的時間戳,以區(qū)分不同的更新;步驟二 服務(wù)器接收到數(shù)據(jù)更新請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換方法做非一致性 轉(zhuǎn)換,并更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳記錄更新日志,如果服務(wù)器查找到 對應(yīng)的更新日志時間戳已經(jīng)存在,表明服務(wù)器已經(jīng)成功的處理過本次更新,此時服務(wù)器不 做任何操作,直接返回成功應(yīng)答給終端;步驟三服務(wù)器向終端發(fā)送更新成功的應(yīng)答,終端接收之后,才做本地的數(shù)據(jù)更新。如 果服務(wù)器向終端發(fā)送了一個更新失敗的應(yīng)答或網(wǎng)絡(luò)出現(xiàn)故障,服務(wù)器無法通知終端成功, 則終端不做更新。
10.如權(quán)利要求9所述的方法,其特征在于執(zhí)行以下同步處理過程以新增數(shù)據(jù) 步驟一終端通過對象,建立本地新增的數(shù)據(jù)結(jié)構(gòu)和操作描述,向服務(wù)器發(fā)起數(shù)據(jù)新增請求。新增請求中包含數(shù)據(jù)內(nèi)容和一時間戳,以區(qū)分不同的更新;步驟二 服務(wù)器接收到數(shù)據(jù)新增請求,通過相關(guān)構(gòu)件提供的數(shù)據(jù)轉(zhuǎn)換方法做非一致性 轉(zhuǎn)換。并新增或更新本地存儲的數(shù)據(jù)。并且根據(jù)終端唯一時間戳,記錄更新日志;步驟三服務(wù)器向終端發(fā)送新增成功的應(yīng)答標識,終端接收之后,才做本地的數(shù)據(jù)新增操作。如果服務(wù)器向終端發(fā)送 了一個新增失敗的應(yīng)答或出現(xiàn)網(wǎng)絡(luò)出現(xiàn)故障服務(wù)器無法通知 終端成功,則終端不做新增。
全文摘要
一種網(wǎng)絡(luò)環(huán)境下的非一致協(xié)同系統(tǒng),包括通過計算機網(wǎng)絡(luò)連接的服務(wù)器和終端組成,服務(wù)器和終端均帶有業(yè)務(wù)數(shù)據(jù)存儲設(shè)備,服務(wù)器上運行了業(yè)務(wù)構(gòu)件平臺和服務(wù)器端非一致協(xié)同中間件平臺,終端上運行了客戶端非一致協(xié)同中間件平臺,其中業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)構(gòu)件平臺上運行的業(yè)務(wù)構(gòu)件產(chǎn)生,或由終端產(chǎn)生并利用非一致協(xié)同中間件集中發(fā)送到服務(wù)器上,服務(wù)器對業(yè)務(wù)數(shù)據(jù)進行格式轉(zhuǎn)換后存儲在所述存儲設(shè)備中,終端自身保存產(chǎn)生的業(yè)務(wù)數(shù)據(jù),并定期向服務(wù)器發(fā)送更新業(yè)務(wù)數(shù)據(jù)。
文檔編號H04L29/08GK101888393SQ200910051109
公開日2010年11月17日 申請日期2009年5月13日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者祝芝君 申請人:上海首恒電子科技有限公司;祝芝君
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1