国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng)的制作方法

      文檔序號:7902556閱讀:390來源:國知局
      專利名稱:在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本實(shí)用新型涉及一種運(yùn)行于手機(jī)設(shè)備上的中間件系統(tǒng),更具體地說是涉及移動手 機(jī)組成的分布式環(huán)境下的計算機(jī)軟件系統(tǒng)。
      背景技術(shù)
      有線網(wǎng)絡(luò),又稱固定網(wǎng)絡(luò),即由一系列固定的主機(jī),通過高帶寬的網(wǎng)線及組網(wǎng)設(shè)備 連接在一起從而組成的相對持久的物理網(wǎng)絡(luò)。這樣的運(yùn)行環(huán)境要求分布式應(yīng)用程序考慮 (1)可擴(kuò)展性,是指在未來一段時間內(nèi)可以容納更高負(fù)載的能力;( 開放性,指的是可以 在功能需求變化時,更容易的擴(kuò)展和修改系統(tǒng);(3)異構(gòu)性,是指分布式系統(tǒng)中被集成的不 同組件是由不同的程序語言編寫的,運(yùn)行的不同的操作系統(tǒng)之上,并且又是在不同的硬件 平臺上執(zhí)行;(4)容錯性,指的是在系統(tǒng)出錯時,能夠在不停止整個系統(tǒng)運(yùn)行的情況下自動 恢復(fù);(5)資源共享和訪問控制,即硬件和軟件資源都可以為不同系統(tǒng)的用戶有條件地 共享。中間件就是為了解決這些問題而產(chǎn)生的,它處于網(wǎng)絡(luò)操作系統(tǒng)之上,對開發(fā)者隱藏了 分布式系統(tǒng)的復(fù)雜性,成功應(yīng)有于固定網(wǎng)絡(luò)環(huán)境下的中間件系統(tǒng)有OMG CORBA、Microsoft COM、Sun Java/RMI 以及 IBM MQSeries 等。近年來由于PDA、手機(jī)、筆記本電腦等移動設(shè)備的普及,以及無線網(wǎng)絡(luò)的迅猛發(fā)展, 移動應(yīng)用正在不斷接近人們的工作生活。由于設(shè)備的移動性、資源受限,移動無線網(wǎng)絡(luò)不同 于傳統(tǒng)的固定網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)不固定,網(wǎng)絡(luò)連接性較差。再加上移動設(shè)備的計算能力有限, 設(shè)備異構(gòu)性強(qiáng),固定網(wǎng)絡(luò)上中間件系統(tǒng)完全不適合移動無線網(wǎng)絡(luò),所以一種適合移動設(shè)備 的中間件系統(tǒng)急需被研制。并且隨著手機(jī)服務(wù)器及手機(jī)設(shè)備系統(tǒng)的日趨成熟(如已知的暢力源手機(jī)服務(wù)器 等等),為在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件的系統(tǒng)成為可能。
      發(fā)明內(nèi)容本實(shí)用新型針對以上問題的提出,而研制一套能夠運(yùn)行于手機(jī)設(shè)備上的移動消息 中間件系統(tǒng)。本實(shí)用新型采用的技術(shù)手段如下—種在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng),其特征在于該系統(tǒng)應(yīng)用于至少一 個服務(wù)器端和兩個以上運(yùn)行于手機(jī)設(shè)備的客戶端組成的系統(tǒng)中;所述客戶端包括客戶端項目管理單元,用于用戶編輯消息,配置通信對象以及通信方式參數(shù);客戶端消息轉(zhuǎn)換單元,用于將用戶編輯的消息轉(zhuǎn)換成XML格式的消息,并將此消 息繼續(xù)轉(zhuǎn)換成樹的形式;客戶端緩存單元,用于存儲用戶本地的數(shù)據(jù),使用戶可以離線的對數(shù)據(jù)進(jìn)行操作 修改,并將客戶端經(jīng)常訪問的服務(wù)器端的數(shù)據(jù)存儲在本地;客戶端通信單元,用于使用戶同其他客戶端或服務(wù)器進(jìn)行通信;[0013]客戶端DOM操作單元,用于對XML格式的樹形結(jié)構(gòu)的消息進(jìn)行添加和修改操作,并 對其他終端發(fā)送過來的消息進(jìn)行解析;客戶端消解策略單元,用于對消息轉(zhuǎn)換單元轉(zhuǎn)換成樹形式的消息中的沖突節(jié)點(diǎn)定 義沖突解決策略;客戶端沖突消解單元,用于調(diào)用客戶端DOM操作單元對XML消息進(jìn)行處理,之后調(diào) 用所述客戶端消解策略單元,按照事先定義的沖突消解策略來解決沖突;顯示單元,用于將結(jié)果顯示給用戶;服務(wù)器端具有服務(wù)器端消息隊列管理單元,用于對服務(wù)器的消息進(jìn)行管理,并控制服務(wù)器同其 他終端之間進(jìn)行收發(fā)消息;服務(wù)器端存儲單元,用于將消息存儲在數(shù)據(jù)庫中;服務(wù)器端通信單元,用于使該服務(wù)器與其他客戶端或服務(wù)器進(jìn)行通信;服務(wù)器端消解策略單元,用于對樹形式的消息中的沖突節(jié)點(diǎn)定義沖突解決策略;服務(wù)器端DOM操作單元,用于對XML格式的樹形結(jié)構(gòu)的消息進(jìn)行添加和修改操作, 并對其他終端發(fā)送過來的消息進(jìn)行解析;服務(wù)器端沖突消解單元,用于調(diào)用服務(wù)器端DOM操作單元對XML消息進(jìn)行處理,之 后調(diào)用所述服務(wù)器端消解策略單元,按照事先定義的沖突消解策略來解決沖突;所述中間件系統(tǒng)的一個客戶端作為消息的發(fā)送方,其客戶端消息轉(zhuǎn)換單元在收 到用戶利用該客戶端項目管理單元編輯的消息后,將此消息轉(zhuǎn)換成XML格式,然后利用客 戶端消解策略單元為可能會產(chǎn)生沖突的節(jié)點(diǎn)添加沖突解決策略,再通過客戶端通信單元向 外發(fā)送消息;由服務(wù)器端或者是另一個客戶端接收消息,服務(wù)器端或者是另一個客戶端的 DOM操作單元對消息進(jìn)行相關(guān)DOM操作,即接收方DOM操作單元對兩個不同的樹型結(jié)構(gòu)的 XML消息進(jìn)行比較,產(chǎn)生diff樹,以記錄著由兩個不同消息所產(chǎn)生的沖突;然后接收方中的 沖突消解單元對沖突進(jìn)行消解,產(chǎn)生一個沒有沖突的新樹,再將此樹發(fā)送給發(fā)送方;如果此 過程發(fā)生在兩個移動客戶端之間,則將結(jié)果存儲于所述的客戶端緩存單元中,并交由所述 的顯示單元顯示;如果此過程發(fā)生在移動客戶端與服務(wù)器之間,則服務(wù)器將此消息保存在 服務(wù)器端存儲單元的數(shù)據(jù)庫中,并由所述的服務(wù)器端消息隊列管理單元將此消息通過服務(wù) 器端通信單元發(fā)送給所有訂閱者。本實(shí)用新型提供的在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng)及工作方法同現(xiàn)有 技術(shù)相比其優(yōu)點(diǎn)是顯而易見的,具體如下(1)使消息中間件支持移動分布式環(huán)境。區(qū)別于傳統(tǒng)消息中間件,本實(shí)用新型支持 移動網(wǎng)絡(luò)環(huán)境,針對移動網(wǎng)絡(luò)的特殊性和手機(jī)設(shè)備的特點(diǎn),能夠在手機(jī)設(shè)備真實(shí)的硬件環(huán) 境和Java虛擬運(yùn)行環(huán)境上運(yùn)行,通過消息隊列管理為時斷時續(xù)的網(wǎng)絡(luò)連接條件下的移動 應(yīng)用程序提供一種可靠的數(shù)據(jù)通信手段。(2)有效地保證共享數(shù)據(jù)的成功收發(fā)及數(shù)據(jù)的一致性,支持?jǐn)?shù)據(jù)共享。兩個終端互 相發(fā)送消息,并對接收到的消息進(jìn)行處理,進(jìn)而繼續(xù)發(fā)送處理過的消息,并且這過程出現(xiàn)問 題時,程序進(jìn)行相應(yīng)的回滾,這樣也保證了兩個終端之間消息的雙向同步,而不是簡單的消
      息替換。
      圖1為本實(shí)用新型所述系統(tǒng)的總體結(jié)構(gòu)示意圖;圖2為本實(shí)用新型所述系統(tǒng)的移動客戶端結(jié)構(gòu)示意圖;圖3為本實(shí)用新型所述系統(tǒng)的服務(wù)器端結(jié)構(gòu)示意圖;圖4為本實(shí)用新型所述系統(tǒng)的工作流程圖;圖5為本實(shí)用新型所述系統(tǒng)設(shè)計的實(shí)施裝置工作流程圖。
      具體實(shí)施方式
      本實(shí)用新型提供了一種用于支持移動環(huán)境的消息中間件的實(shí)施系統(tǒng)。物理上,該 系統(tǒng)可劃分為服務(wù)器端(后臺計算機(jī))和客戶端(手機(jī)設(shè)備)兩部分,兩者通過無線網(wǎng)絡(luò)、 藍(lán)牙等通信協(xié)議連接在一起,其中后臺計算機(jī)上運(yùn)行著本實(shí)用新型的消息中間件服務(wù)器部 分,手機(jī)設(shè)備上運(yùn)行移動客戶端部分??梢詫?shí)施兩個手機(jī)設(shè)備之間的數(shù)據(jù)共享,他們可以不 需通過服務(wù)器,而是直接進(jìn)行點(diǎn)對點(diǎn)的通信;也可以實(shí)施一臺服務(wù)器與多個手機(jī)設(shè)備之間 的數(shù)據(jù)共享,這是結(jié)合消息中間件上的發(fā)布/訂閱方式而完成的??梢赃x擇通過TCP/IP、 HTTP或藍(lán)牙等協(xié)議同手機(jī)設(shè)備上的移動應(yīng)用程序進(jìn)行通訊。目前輕量級的移動中間件正是在這種背景之下產(chǎn)生的。移動中間件位于移動網(wǎng) 絡(luò)、操作系統(tǒng)和移動應(yīng)用軟件之間,使用底層操作系統(tǒng)提供的基本功能和服務(wù),通過API為 上層的移動應(yīng)用系統(tǒng)提供從一般的應(yīng)用需求中抽象出來的、移動網(wǎng)絡(luò)應(yīng)用所需要的更高層 的、通用的功能與服務(wù)。比較成熟的移動中間件有上下文感知的中間件和數(shù)據(jù)共享中間件等。上下文感 知的中間件使得移動應(yīng)用可以感知諸如位置、設(shè)備狀態(tài)、用戶行為等上下文信息。位置信 息是上下文感知的中間件研究最多的方面,目前有許多成熟的應(yīng)用,例如提供旅游指南 的CyberGuide,可以發(fā)送廣告的Object I^ger,及在一個特定區(qū)域發(fā)送消息給任何人的 Conference Assistant等。數(shù)據(jù)共享的中間件支持用戶離線操作,并在他們再次連線時對 數(shù)據(jù)進(jìn)行共享。較為優(yōu)秀的數(shù)據(jù)共享中間件有Coda、Odyssey、Bayou及Xmiddle。他們都 是最大限度地提高數(shù)據(jù)的可用性,但他們檢測并解決沖突的機(jī)制并不相同。Odyssey比它的 前任Coda更適合移動環(huán)境,但是由于它需要較大的計算能力;Bayou使用應(yīng)用程序相關(guān)的 知識進(jìn)行依賴檢查,可能受到級聯(lián)沖突解決的影響;Xmiddle使用XML來描述信息,使用DOM 來對數(shù)據(jù)進(jìn)行操作。Coda、Odyssey等其他的數(shù)據(jù)共享中間件在進(jìn)行數(shù)據(jù)復(fù)制時需要將整 個文件都復(fù)制一遍,而Xmiddle可以簡單的調(diào)整復(fù)制單元來適應(yīng)不同的需要,更適合存儲 容量有限的移動設(shè)備。消息是異構(gòu)系統(tǒng)交換數(shù)據(jù)的一種有效方式,它可以被不同的應(yīng)用程序所理解,異 構(gòu)的系統(tǒng)可以通過交換消息進(jìn)行通信。消息中間件(MOM)通過消息隊列和訂閱/發(fā)布模式 支持分布式應(yīng)用軟件之間進(jìn)行跨平臺的消息傳遞。與遠(yuǎn)程過程調(diào)用(RPC)相比,PRC就像 打電話,而MOM就像發(fā)郵件,不用即時,可以斷斷續(xù)續(xù)事后批量處理。MOM具有松耦合、異步 通訊等特點(diǎn)使其特別適合網(wǎng)絡(luò)連接性較差的移動網(wǎng)絡(luò)環(huán)境。不過現(xiàn)有的消息中間件(如 IBM MQkries等)都是運(yùn)行于固定網(wǎng)絡(luò)上的固定主機(jī)上,設(shè)備能力要求較高,不完全適合 手機(jī)設(shè)備,所以本實(shí)用新型在服務(wù)器端還設(shè)置了如下單元。如圖1所示該手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng)應(yīng)用于至少一個服務(wù)器端和兩個以上運(yùn)行于手機(jī)設(shè)備的客戶端組成的系統(tǒng)中;如圖2所示所述客戶端包括客戶端項目管理單元100,用于用戶編輯消息,配置通信對象以及通信方式參數(shù), 由PanelManageiNClientEdit類組成;客戶端消息轉(zhuǎn)換單元101,用于將用戶編輯的消息轉(zhuǎn) 換成XML格式的消息,并將此消息繼續(xù)轉(zhuǎn)換成樹的形式,由TransformMessage、ExportLink 類組成;客戶端緩存單元102,用于使用戶可以離線的對數(shù)據(jù)進(jìn)行操作修改,并將客戶端 經(jīng)常訪問的服務(wù)器端的數(shù)據(jù)存儲在本地,以防止當(dāng)客戶端頻繁的訪問服務(wù)器,節(jié)約網(wǎng)絡(luò)帶 寬,由RecordStoreOperation類組成;客戶端消解策略單元103,用于對消息轉(zhuǎn)換單元轉(zhuǎn) 換成樹形式的消息中的沖突節(jié)點(diǎn)定義沖突解決策略,即根據(jù)具體的應(yīng)用來定義不同的沖突 消解策略,如添加、修改、替換等,由TreeDiff、TreeMerge, TreeReplica, ListEntry類組 成;客戶端DOM操作單元104,用于對XML格式的樹形結(jié)構(gòu)的消息進(jìn)行添加和修改操作,并 對其他終端發(fā)送過來的消息進(jìn)行解析,如比較兩顆樹的不同之處,對節(jié)點(diǎn)進(jìn)行修改等;由 XMLTranslatorλ MessageHead、MessageBodyΛ Message、NeedToShareΛ DiscoveryRequest、 AgentConnectedλ AgentDisconnected、EditionIdentifier、LinkedTableMessage、 LinkedFrom、ConfirmMessage、TlistOfEI、NewChangesΛ Acknowledge 類組成;客戶端沖突 消解單元105,用于調(diào)用客戶端DOM操作單元對XML消息進(jìn)行處理,之后調(diào)用所述客戶端消 解策略單元,按照事先定義的沖突消解策略來解決沖突,由Reconcile、ReplaceStrategy, MinusStrategy、AddStrategy類組成;客戶端通信單元106,用于使用戶采用一定的通 信協(xié)議,如Http,藍(lán)牙等,來與其他客戶端或服務(wù)器進(jìn)行通信,由Observer、Protocol, Subject 接 口,Transport、ProSocket、ProHttp> ProBluetooth、Agent、ConnectAgent> Reconci1eAgent、ExchangeInfoAgent> ConfirmChangesAgent、ListEIAgent> NewChangesAgent、AckAgent, Terminate類組成;機(jī)上應(yīng)用程序管理單元107,手機(jī)設(shè)備廠 商提供,用于管理Java Me移動應(yīng)用程序的下載、解壓、安裝、刪除、運(yùn)行;顯示單元108,用 于將結(jié)果顯示給用戶。如圖3所示服務(wù)器端包括服務(wù)器端通信單元206,用于使該服務(wù)器與其他客戶端或服務(wù)器進(jìn)行通信;服務(wù) 器端消解策略單元205,用于對樹形式的消息中的沖突節(jié)點(diǎn)定義沖突解決策略;服務(wù)器端 DOM操作單元204,用于對XML格式的樹形結(jié)構(gòu)的消息進(jìn)行添加和修改操作,并對其他終端 發(fā)送過來的消息進(jìn)行解析;服務(wù)器端沖突消解單元203,用于調(diào)用服務(wù)器端DOM操作單元 對XML消息進(jìn)行處理,之后調(diào)用所述服務(wù)器端消解策略單元,按照事先定義的沖突消解策 略來解決沖突;上述各單元與客戶端組成基本一致,這里不再贅述。其中服務(wù)器端存儲單 元202,用于將消息存儲在數(shù)據(jù)庫中,并支持對數(shù)據(jù)庫中消息的操作;由類FileOperation、 DatabaseOperation組成;服務(wù)器端消息隊列管理單元201,用于對服務(wù)器的消息進(jìn)行管 理,并控制服務(wù)器同其他終端之間進(jìn)行收發(fā)消息,由類Mart、Init, StartXMLTranslator, ThreadPool 類組成。所述中間件系統(tǒng)的一個客戶端作為消息的發(fā)送方,其客戶端消息轉(zhuǎn)換單元在收 到用戶利用該客戶端項目管理單元編輯的消息后,將此消息轉(zhuǎn)換成XML格式,然后利用客 戶端消解策略單元為可能會產(chǎn)生沖突的節(jié)點(diǎn)添加沖突解決策略,再通過客戶端通信單元向 外發(fā)送消息;由服務(wù)器端或者是另一個客戶端接收消息,服務(wù)器端或者是另一個客戶端的DOM操作單元對消息進(jìn)行相關(guān)DOM操作,即接收方DOM操作單元對兩個不同的樹型結(jié)構(gòu)的 XML消息進(jìn)行比較,產(chǎn)生diff樹,以記錄著由兩個不同消息所產(chǎn)生的沖突;然后接收方中的 沖突消解單元對沖突進(jìn)行消解,產(chǎn)生一個沒有沖突的新樹,再將此樹發(fā)送給發(fā)送方;如果此 過程發(fā)生在兩個移動客戶端之間,則將結(jié)果存儲于所述的客戶端緩存單元中,并交由所述 的顯示單元顯示;如果此過程發(fā)生在移動客戶端與服務(wù)器之間,則服務(wù)器將此消息保存在 服務(wù)器端存儲單元的數(shù)據(jù)庫中,并由所述的服務(wù)器端消息隊列管理單元將此消息通過服務(wù) 器端通信單元發(fā)送給所有訂閱者。另外,客戶端緩存單元包括一個臨時的消息隊列,客戶端將消息放到此消息隊列 中,由此消息隊列主動按照該客戶端通信單元所設(shè)定的協(xié)議來發(fā)送或接收消息,以防止在 網(wǎng)絡(luò)條件不好時,客戶端阻塞等待;每個消息都附加一個發(fā)送結(jié)束符,當(dāng)消息發(fā)送到結(jié)束符 時,則認(rèn)為消息發(fā)送成功,否則認(rèn)為消息發(fā)送失敗,重新發(fā)送此消息或進(jìn)行后一步處理。在 服務(wù)器消息隊列管理單元包括一個線程池與工作隊列,由工作隊列對接收到的請求進(jìn)行監(jiān) 聽,然后按照優(yōu)先級在線程池中取出一個線程與響應(yīng)的終端進(jìn)行通信,這樣就可以使服務(wù) 器在多線程的情況下同時與多個終端進(jìn)行消息的通信;每個線程與終端通信時,都包含一 個與客戶端類似的消息隊列,用于主動的發(fā)送或接收消息,只是并將接收到的消息不再保 存于緩存中,而是保存在數(shù)據(jù)庫中;當(dāng)在給定時間內(nèi)沒收到確認(rèn)信息時,服務(wù)器的處理方法 是對于持久的訂閱者來說,如果終端斷線,服務(wù)器將消息存儲起來,當(dāng)他再次連線時,服務(wù) 器會將消息再次發(fā)給訂閱者;對于非持久的訂閱者來說,斷線就意味著失敗,服務(wù)器將此訂 閱信息刪除,如果訂閱者想繼續(xù)接收消息,那么他需要再次發(fā)送訂閱信息。發(fā)送方通過通信 單元與接收方通信,由發(fā)送方先發(fā)送一個發(fā)現(xiàn)請求消息,如果接收方收到此消息,會返回給 發(fā)送方一個確認(rèn)碼,則發(fā)送方將自己所存儲消息的所有版本都發(fā)送給接收方;如果接收方 沒有收到發(fā)現(xiàn)請求消息或發(fā)送方?jīng)]有收到確認(rèn)碼,則需要發(fā)送方重新發(fā)送發(fā)現(xiàn)請求消息給 接收方。結(jié)合圖4說明本實(shí)用新型用于支持移動環(huán)境的消息中間件系統(tǒng)設(shè)計的工作方法, 具體如下首先由用戶根據(jù)具體的應(yīng)用,通過客戶端項目管理單元100來編輯消息,并對配 置信息進(jìn)行相應(yīng)設(shè)計,如希望與哪個終端進(jìn)行通信,通信的方式及端口(步驟S301);客戶端通過客戶端消息轉(zhuǎn)換單元101將用戶編輯的消息轉(zhuǎn)換成XML格式的消息, 將此消息存儲于客戶端緩存單元中102 ;之后將此消息繼續(xù)轉(zhuǎn)換成樹的形式,然后根據(jù)具 體的應(yīng)用,通過客戶端消解策略單元105為每個可能產(chǎn)生沖突的節(jié)點(diǎn)定義一個沖突解決策 略,并通過客戶端DOM操作單元104為這顆樹添加一個節(jié)點(diǎn),此節(jié)點(diǎn)記錄著沖突解決策略; 當(dāng)發(fā)生沖突時,應(yīng)用程序應(yīng)該采取此節(jié)點(diǎn)定義的沖突解決策略來解決沖突(步驟S302);當(dāng)客戶端A作為發(fā)送方通過客戶端通信單元106與另一個終端B作為接收方開始 通信,客戶端A (發(fā)送方)先發(fā)送一個發(fā)現(xiàn)請求消息,如果B (接收方)收到此消息,會返回 給A(發(fā)送方)一個確認(rèn)碼,說明此時A(發(fā)送方)與B(接收方)是可以進(jìn)行通信的,A(發(fā) 送方)將自己所存儲消息的所有版本都發(fā)送給B (接收方);如果B (接收方)沒有收到發(fā) 現(xiàn)請求消息或A(發(fā)送方)沒有收到確認(rèn)碼,則說明此時網(wǎng)絡(luò)條件不良,則需要重新發(fā)送發(fā) 現(xiàn)請求消息(步驟S303);B (接收方)收到A (發(fā)送方)所存儲消息的所有版本后,通過服務(wù)器端或者是另一個客戶端的DOM操作單元104對這些消息進(jìn)行解析,并與自己存儲的消息進(jìn)行比較,此時若 A(發(fā)送方)與B (接收方)中有一方修改過消息,則比較時會發(fā)現(xiàn)沖突,B (接收方)將這些 沖突記錄下來(步驟S304);B (接收方)根據(jù)步驟S302所定義的沖突節(jié)點(diǎn)的解決策略節(jié)點(diǎn),通過服務(wù)器端或者 是另一個客戶端的消解策略單元調(diào)用事先定義好的消解策略,由服務(wù)器端或者是另一個客 戶端的沖突消解單元對沖突進(jìn)行消解,并記錄下解決沖突后的新消息(步驟S305);若B (接收方)是移動客戶端,則B (接收方)將此新消息通過客戶端緩存單元102 存儲在緩存中,并將此新消息通過客戶端通信單元返回給A (發(fā)送方),A (發(fā)送方)記錄下 這個解決沖突后的消息,并存儲在緩存中,然后交由客戶端顯示單元108顯示結(jié)果(步驟 S306);若B(接收方)是服務(wù)器,則B(接收方)通過服務(wù)器端消息隊列管理單元201對消 息進(jìn)行一定處理,把消息包裝成服務(wù)器可識別的消息,之后通過服務(wù)器端存儲單元202將 消息存儲在數(shù)據(jù)庫中步驟307);步驟8然后服務(wù)器將更新過的消息通過服務(wù)器端通信單元206發(fā)送給所有訂閱 者,使得所有訂閱者中的消息保持同步(步驟308)。圖5給出了本實(shí)用新型實(shí)施裝置的流程圖。該裝置可劃分為發(fā)起端與接收端,發(fā) 起端是一臺移動智能手機(jī),接收端可以使一臺移動智能手機(jī),也可以是消息中間件服務(wù)器, 發(fā)起端與接收端通過藍(lán)牙、TCP/IP或者HTTP協(xié)議進(jìn)行通訊連接。為方便起見,圖5中的判斷條件都簡寫成標(biāo)識符,其中Xl表示“接收端是否為服務(wù) 器”,X2表示“接收端是否接收到了發(fā)現(xiàn)請求消息”,X3表示“發(fā)起端是否收到確認(rèn)碼”,X4表 示“是否接收到新消息發(fā)送成功的確認(rèn)碼”。如圖3所示,本實(shí)用新型裝置的具體步驟為1、如果用戶通過移動智能手機(jī)想要與服務(wù)器進(jìn)行通信連接(XI為真),則服務(wù)器 需先進(jìn)行一系列的初始化,包括使數(shù)據(jù)庫與實(shí)時信息同步、設(shè)置工作隊列與線程池。發(fā)起端 訂閱自己感興趣的消息,或發(fā)布一些消息到服務(wù)器中。如果用戶通過移動智能手機(jī)想要與 另一手機(jī)進(jìn)行通信連接(XI為假),則接收端與發(fā)起端一并進(jìn)行消息的編輯,由程序?qū)⒕庉?好的消息轉(zhuǎn)化成機(jī)器可識別的XML格式的消息。2、接收端監(jiān)聽端口,看有沒有輸入流流入,發(fā)起端發(fā)送發(fā)現(xiàn)請求消息,若接收端接 收到消息(X2為真),則返回一個接收到消息后的確認(rèn)碼,否則接收端一直處于監(jiān)聽端口的 狀態(tài)。同樣,在發(fā)起端發(fā)送發(fā)現(xiàn)請求消息之后,一直處于監(jiān)聽端口的狀態(tài),直到接收到接收 端換回的確認(rèn)碼為止(X3為真)。此處當(dāng)發(fā)起端與接收端若超過一段時間還沒有接收到消 息,則認(rèn)定當(dāng)前網(wǎng)絡(luò)不良,需要過一段時間再次執(zhí)行此步驟。3、發(fā)起端發(fā)送需進(jìn)行數(shù)據(jù)共享的消息,接收端接收到消息后,與本地消息一并進(jìn) 行處理,找出兩個不同消息所產(chǎn)生的沖突,并對這些沖突進(jìn)行消解。之后將解決沖突后的新 消息返回給發(fā)起端。此時兩個終端會彼此發(fā)送新消息接收成功的確認(rèn)碼,如果超出預(yù)定時 間沒有接收到確認(rèn)碼(X4為假),則需要對程序進(jìn)行回滾,從第2步重新開始執(zhí)行。4、如果成功接收到確認(rèn)碼(X4為真),則發(fā)起端須將新消息存儲在緩存中,以便下 次繼續(xù)使用。同樣地,若接收端是移動智能手機(jī)(XI為假),則接收端也需將新消息存儲在 緩存中。若接收端是服務(wù)器(XI為真),則需將新消息存儲在數(shù)據(jù)庫中,并由服務(wù)器通知其 他訂閱此消息的主機(jī),數(shù)據(jù)已變動,使他們的數(shù)據(jù)與服務(wù)器中的數(shù)據(jù)保持同步。[0059][第一實(shí)施方式]本實(shí)用新型的第一優(yōu)選實(shí)施例以一個合作的電子購物系統(tǒng)為例。一個家庭很多成 員在網(wǎng)上購物,他們每人都有一個移動智能手機(jī),他們獨(dú)自選擇所需的商品,并將所選擇的 商品記錄在個人智能手機(jī)上,而最終付賬時是共同交錢,所以要將個人買的商品“合并”在 一起,再由其中一個智能手機(jī)進(jìn)行網(wǎng)絡(luò)支付。例如,成員A買了 1瓶牛奶和2個蘋果,成員 B買了 2瓶牛奶,他們獨(dú)自的將這些信息記錄在個人智能手機(jī)上,當(dāng)他們想要支付時,他們 先將這些商品通過手機(jī)“合并”在一起,程序合并兩個手機(jī)中的消息,結(jié)果為3瓶牛奶和2 個蘋果,然后由A進(jìn)行最終的網(wǎng)絡(luò)支付。該程序主要由MerChandise,Milk,Apple,ParSer, ClientPanel,UploadToPay類組成,本實(shí)例實(shí)施目的是檢查在目標(biāo)機(jī)型SonyEricsson K700C上數(shù)據(jù)數(shù)據(jù)共享的執(zhí)行結(jié)果是否正確。具體的實(shí)施步驟如下1、用戶A與B分別在客戶端項目管理單元100的向?qū)姘逑戮庉嬒?,A編輯消 息lmilk and 2apple,B編輯消息anilk,然后設(shè)置對方為通信的對象,并設(shè)置通信協(xié)議為 藍(lán)牙,之后提交消息,用戶可以去忙別的事,如打電話,發(fā)短信等,無需等待。2、程序接收到消息后,使用客戶端消息轉(zhuǎn)換單元101對消息進(jìn)行解析,解析完的 結(jié)果是{milk:l,apple :2}及{milk :2},之后將消息轉(zhuǎn)換成XML格式的消息,根節(jié)點(diǎn)為 basket, A 的消息為 <basket><order><product>milk</product><quantity><howmuch>l</ howmuch></quantity></order><order><product>apple</ productXquantity><howmuch>2</howmuch></quantity></order></basket>, B 白勺
      息 為〈basket><order><product>milk</product><quantity><howmuch>2</howmuch></ quantityX/orderX/basket〉,他們都將消息存儲在緩存中。之后通過客戶端消解策略 單元105為quantity節(jié)點(diǎn)定義一個沖突解決策略add,意味著當(dāng)quantity節(jié)點(diǎn)產(chǎn)生沖突 時,系統(tǒng)應(yīng)該將采取相加的策略來解決沖突。之后通過客戶端DOM操作單元104為每個 quantity節(jié)點(diǎn)添加一個節(jié)點(diǎn)add,用于顯示的標(biāo)注沖突解決策略。3、客戶端A通過客戶端通信單元106與另一個終端B開始進(jìn)行通信連接,本地主 機(jī)A先發(fā)送一個“發(fā)現(xiàn)請求”消息〈DiscoveryRequest/〉,當(dāng)網(wǎng)絡(luò)條件較好時,B會接收到此 消息,并返回給A —個確認(rèn)碼<C0nnectAgent/>,A將自己所存儲消息發(fā)送給B ;當(dāng)網(wǎng)絡(luò)條件 不好或設(shè)備出現(xiàn)硬件故障時,B不會接收到發(fā)現(xiàn)請求消息或者A不會接收到確認(rèn)碼,則需要 對硬件進(jìn)行處理或間隔一段時間再次重新進(jìn)行通信連接。4、B收到A的消息后,通過客戶端DOM操作單元104對這些消息進(jìn)行解析,并與自 己存儲的消息進(jìn)行比較,B會發(fā)現(xiàn)兩個消息是不同的,此時就產(chǎn)生了沖突,沖突為B的milk 的數(shù)量是2,A的milk數(shù)量是1,并且B比A少了 2個apple。B將這些沖突記錄下來。5、B在客戶端沖突消解單元103對沖突進(jìn)行消解。先解決前半部分沖 突,根據(jù)quantity節(jié)點(diǎn)所定義的解決策略節(jié)點(diǎn)add,對milk的數(shù)量進(jìn)行相加,為 2+1 = 3。然后解決后半部分沖突,因?yàn)锽比A少2個apple,所以將A的apple分 支整體復(fù)制到B的消息下。最終沖突消解后的內(nèi)容為3個milk及2個apple,為 <basket><order><product>milk</productXquant i ty><howmuch>l</howmuch></ quantityX/order><order><product>apple</productXquanti ty><howmuch>2</ howmuchX/quantity></order></basket>06、B將此新消息通過客戶端緩存單元102存儲在緩存中,以便用于之后的網(wǎng)上支付或再次與其他終端進(jìn)行數(shù)據(jù)共享,并將此新消息通過客戶端通信單元106返回給A,A記 錄下這個解決沖突后的消息,并存儲在緩存中。系統(tǒng)通過顯示單元108分別將結(jié)果顯示給 兩個用戶。7、A將最終結(jié)果3個milk及2個apple經(jīng)由網(wǎng)絡(luò)上傳到網(wǎng)上,進(jìn)行網(wǎng)上支付。[第二實(shí)施方式]本實(shí)用新型的第二優(yōu)選實(shí)施例以股票交易系統(tǒng)為例。用戶首先通過移動智能手機(jī) 與消息服務(wù)器相連,并通過在手機(jī)設(shè)備上對股票進(jìn)行買賣操作,買賣結(jié)果通知服務(wù)器,服務(wù) 器對此進(jìn)行進(jìn)一步處理。當(dāng)此股票出現(xiàn)一些重大變更,如漲停、跌停、或分紅等,用戶還可以 收到來自服務(wù)器的通知,以便用戶對此變更進(jìn)行及時的處理。該程序主要由ClientPanel, StockOperation, Subscribe, SendToClient類組成,本實(shí)例的實(shí)施目的是檢查在目標(biāo)機(jī)型 SonyEricsson K700C上整個股票交易系統(tǒng)完成的情況,是否可以實(shí)現(xiàn)數(shù)據(jù)共享,當(dāng)用戶訂 閱的股票出現(xiàn)一些重大變更時是否可以及時收到服務(wù)器的通知。具體實(shí)施步驟如下1、首先對服務(wù)器進(jìn)行初始化,設(shè)置工作隊列及線程池,并與實(shí)時股票結(jié)合起來,服 務(wù)器管理者將股票信息錄入到服務(wù)器中。當(dāng)股票信息發(fā)送改變時,服務(wù)器中的股票信息會 及時做出相應(yīng)改變。2、用戶通過項客戶端目管理單元100的向?qū)姘逑蚍?wù)器訂閱自己感興趣的股 票,服務(wù)器將這些股票的信息通過服務(wù)器端通信單元206返回給用戶,用戶可以在向?qū)?板查看股票信息,當(dāng)股票信息發(fā)生改變時,服務(wù)器會實(shí)時的通知用戶,以便用戶進(jìn)一步對股 票進(jìn)行操作。3、當(dāng)用戶想要在手機(jī)端對股票進(jìn)一步操作時,如用戶已有a股票200股,在價格不 變的情況下再次買進(jìn)100股,用戶通過客戶端項目管理單元100的向?qū)姘鍋砭庉嬒鄳?yīng)的 股票信息buy 100 for a,選擇HTTP方式與服務(wù)器進(jìn)行通信,之后提交消息。4、程序接收到消息后,使用客戶端消息轉(zhuǎn)換單元101對消息進(jìn)行解析,解析完 的結(jié)果是Ka, 100, buy〉},之后將消息轉(zhuǎn)換成XML格式的消息,根節(jié)點(diǎn)為stock,,轉(zhuǎn)換結(jié) 果 為 <stock><order><ID>a</IDXquantity><howmuch>100</howmuch></quantityXsty le>buy</style></order></stock>,之后通過客戶端消解策略單元105為quantity節(jié)點(diǎn)定 義一個沖突解決策略add,意味著當(dāng)服務(wù)器中儲存的用戶原有的股票數(shù)量與現(xiàn)在新購買的 股票數(shù)量發(fā)生沖突時,程序會采取對數(shù)量相加的方式來解決沖突。之后通過客戶端DOM操 作單元104為每個quantity節(jié)點(diǎn)添加一個節(jié)點(diǎn)add,用于顯示的標(biāo)注沖突解決策略。5、用戶使用手機(jī)通過客戶端通信單元106與服務(wù)器開始進(jìn)行通信連接,手機(jī)端先 發(fā)送一個“發(fā)現(xiàn)請求”消息〈DiscoveryRequest/〉,當(dāng)網(wǎng)絡(luò)條件較好時,服務(wù)器會接收到此消 息,并返回給手機(jī)一個確認(rèn)碼〈CormectAgent/〉,手機(jī)端將自己所存儲消息發(fā)送給服務(wù)器; 當(dāng)網(wǎng)絡(luò)條件不好或設(shè)備出現(xiàn)硬件故障時,服務(wù)器不會接收到發(fā)現(xiàn)請求消息,或者手機(jī)端不 會接收到確認(rèn)碼,則此時需要對硬件進(jìn)行處理或間隔一段時間再次重新進(jìn)行通信連接。6、服務(wù)器收到用戶消息后,通過服務(wù)器端DOM操作單元204對這些消息進(jìn)行解析, 并與存儲在數(shù)據(jù)庫中的消息進(jìn)行比較,服務(wù)器會發(fā)現(xiàn)兩個消息是不同的,此時就產(chǎn)生了沖 突,沖突為服務(wù)器中用戶所買的a股票的數(shù)量是200,用戶新提交的a股票的數(shù)量是100。 B將這些沖突記錄下來。7、B在服務(wù)器端沖突消解單元203對沖突進(jìn)行消解。根據(jù)quantity節(jié)點(diǎn)所定義
      10的解決策略節(jié)點(diǎn)add,對a的數(shù)量進(jìn)行相加,為200+100 = 300。最終沖突消解后的內(nèi)容 為 300 股 a 股票,為 <stockXorderXID>a</IDXquantityXhowmuch> 300</howmuch></ quantityX/orderX/stock>。8、服務(wù)器通過服務(wù)器端消息隊列管理單元201對消息進(jìn)行一定處理,把消息包裝 成服務(wù)器可識別的消息,之后通過服務(wù)器端存儲單元202將消息存儲在數(shù)據(jù)庫中。9、如果服務(wù)器收到此a股票分紅或漲停等新消息后,服務(wù)器將更新過的消息通過 服務(wù)器端通信單元206發(fā)送給訂閱此a股票的所有訂閱者,以便用戶可以及時的對股票進(jìn) 行實(shí)時處理。運(yùn)用本實(shí)用新型所提供的方法,可以實(shí)現(xiàn)在不經(jīng)過服務(wù)器的情況下,支持客戶端 之間的數(shù)據(jù)共享。本實(shí)用新型允許客戶端在他們連接的時候共享數(shù)據(jù),并在他們重新取得 連接時,對他們斷開連接時進(jìn)行離線的數(shù)據(jù)操作所導(dǎo)致的沖突進(jìn)行沖突消解。本實(shí)用新型 還支持在手機(jī)設(shè)備與服務(wù)器之間的采用數(shù)據(jù)共享式的通信,允許用戶對自己已經(jīng)發(fā)布的信 息作出修改,并訂閱相應(yīng)信息,服務(wù)器會在用戶訂閱的信息作出改變通知用戶。以上所述,僅為本實(shí)用新型較佳的具體實(shí)施方式
      ,但本實(shí)用新型的保護(hù)范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本實(shí)用新型揭露的技術(shù)范圍內(nèi),根據(jù)本實(shí)用 新型的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,都應(yīng)涵蓋在本實(shí)用新型的保護(hù)范圍之 內(nèi)。
      權(quán)利要求1. 一種在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng),其特征在于該系統(tǒng)包括至少一個 由后臺計算機(jī)構(gòu)成到的服務(wù)器端和兩個以上運(yùn)行于手機(jī)設(shè)備的客戶端組成的系統(tǒng);所述服 務(wù)器端同客戶端通過無線網(wǎng)絡(luò)或藍(lán)牙通信相連接,其中后臺計算機(jī)安裝消息中間件服務(wù)器 部分,手機(jī)設(shè)備安裝移動客戶端部分;所述各手機(jī)設(shè)備之間通過TCP/IP、HTTP或藍(lán)牙無線 連接方式進(jìn)行數(shù)據(jù)共享進(jìn)行點(diǎn)對點(diǎn)的通信;所述服務(wù)器與多個手機(jī)設(shè)備之間通過TCP/IP、 HTTP或藍(lán)牙無線連接方式進(jìn)行數(shù)據(jù)共享。
      專利摘要本實(shí)用新型公開了一種在手機(jī)設(shè)備上進(jìn)行數(shù)據(jù)共享的中間件系統(tǒng),該系統(tǒng)應(yīng)用于至少一個服務(wù)器端和兩個以上運(yùn)行于手機(jī)設(shè)備的客戶端組成的系統(tǒng)中;客戶端包括客戶端項目管理單元,客戶端消息轉(zhuǎn)換單元,客戶端緩存單元,客戶端通信單元,客戶端DOM操作單元,客戶端消解策略單元,客戶端沖突消解單元;服務(wù)器端具有服務(wù)器端消息隊列管理單元,服務(wù)器端存儲單元,服務(wù)器端通信單元,服務(wù)器端消解策略單元,服務(wù)器端DOM操作單元,服務(wù)器端沖突消解單元。通過上述各單元的數(shù)據(jù)傳輸和處理,使兩個終端互相發(fā)送消息,并對接收到的消息進(jìn)行處理,進(jìn)而繼續(xù)發(fā)送處理過的消息,并且程序可進(jìn)行回滾,這樣也保證了兩個終端之間消息的雙向同步。
      文檔編號H04L29/08GK201854301SQ20102022881
      公開日2011年6月1日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
      發(fā)明者于宏君, 劉亞清, 呂春燕, 宋英杰, 洪麗娜, 郭靜寰, 陳榮 申請人:大連海事大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1