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

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

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

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