999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SyncML應用開發庫模型設計

2008-12-31 00:00:00黃國權
電腦知識與技術 2008年9期

摘要:目前,移動環境中的數據同步技術眾多,本文在對數據同步基本問題的分析與對主流同步技術方案分析比較基礎上,預測了數據同步技術的可能發展方向,歸納整理了在多種平臺下進行SyncML客戶端應用開發所需要的共同能力,并對SyncML的交互控制與同步的概念模型進行了整理設計。

關鍵詞:SyncML;模型設計;數據同步

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)09-11659-03

SyncML the Application Development Model Design

WANG Sheng1, HUANG Guo-quan2

(1.Guangdong College of Pharmacy Department of Software Engineering, Guangzhou 510006, China; 2.Guangdong College of Pharmacy Information Engineering College Computing Center, Guangzhou 510006, China)

Abstract: At present, there are many data synchronization technologies in the mobile environment,the paper base on the analysis of the basic issues of data synchronization and the comparative analysis of synchronization technology, predicted the possibility of data synchronization technology development direction, summarized up common capacity needed in a variety of platforms under the SyncML client application development, collated and designed a SyncML interactive control and synchronization concept model.

Key words: SyncML; Model Design; Data Synchronization

1 引言

隨著移動通信與計算機技術的發展,移動智能設備被廣泛應用在人們日常生活中,大量的信息被存儲在這些設備上,同時由于經常性的交互,這些信息通常存在著多個副本。為了在人們之間正確共享交流信息,必須及時保持這些信息的副本的一致與更新;數據同步成為了移動計算中的重要應用模式。本文通過比較主要的數據同步技術與方案,詳細分析了SyncML協議的關鍵問題,提出了一個被稱為MobSDK的SyncML客戶端開發工具庫模型,包含有SyncML客戶端應用的開發所需要的運行支持環境與公共操作函數,以方便SyncML客戶端應用的開發工作。

2 數據同步技術

2.1 數據同步概念

關于什么是數據同步迄今在工業界中并沒有一個統一的定義,在本文中,我們采用了參考文獻[2,3]中給出的如下定義:數據同步是使存在關聯映射關系的兩個數據集的數據元素等價的操作,任意一個數據集中的更新都會被同步操作傳遞到另一數據集中。

2.2 數據同步在移動計算中的意義

在移動環境下,由于移動終端的計算存儲能力比常見的PC產品更是有著數據級的差別,更需要與其它的設備互聯以獲取資料。各種文檔資料經常在不同終端和服務器間進行交換,通常會在不同設備上留下數據的多份副本,而在通常情況只對這些本地副本進行訪問。為了保證事務處理的正確性,就需要隨時保持這些副本間數據的一致與更新。

2.3 數據同步技術應用前景

盡管目前移動通信技術已經得到極大的發展,但移動網絡所能提供的連接仍然只能稱作間斷性連接,利用同步技術為用戶提供無縫的網絡使用感受仍然是必要的軟件補充。而隨著以后移動通信帶寬和移動設備的計算存儲能力的發展,移動應用中對帶寬和存儲處理能力的需求也會同步增長,這決定了對數據同步技術的使用需求也會長期

存在。

3 同步產品比較

下面簡單對一些同步產品(協議)進行比較。參與比較的方案中有象ActiveSync、HotSync這樣的已經產品化的技術,也有如CPISync這樣的尚處于學院研究階段的項目。我們從計算強度、邏輯拓樸、系統規模、計算復雜度、適用環境等方面進行比較,可以得出表1。

由表1可見,對于大多數系統規模較小的應用環境,ActiveSync/HotSync/SyncML等技術方案足以勝任。CPISync有著通信負載小,適用面廣的優點,如果可以很好地解決信息記錄表示方法的問題,也將有很好的前景,但目前仍難于推廣。SyncML在現有的應用環境下擁有和ActiveSync與HotSync相近的表現,但開放性與可擴展性給了它良好的發展前景,成為目前數據同步應用的主流。

4 開發庫概念模型設計

4.1 開發庫設計動機

SyncML技術汲取了其他數據同步技術的優點,成為了目前同步技術發展的主流。但盡管有了這樣一套標準的協議,在終端設備上進行SyncML應用的開發時,開發人員仍需要在處理特定業務邏輯之外耗費大量的時間與精力,這加大了應用開發的難度,影響到了SyncML協議的推廣普及。下面擬設計的MobSDK開發庫選用了異步遠程調用(RPC)模型,應用開發人員就不必關心消息構造、發送、響應獲取與解析等過程中的細節,只需要關注會話狀態的變遷,在恰當的狀態下調用正確的同步命令,獲取命令執行結果直至完成同步。

4.2 SyncML命令處理

SyncML中的命令是同步操作的原語,同步控制流程就是同步參與者間一系列命令的交互過程。通過對SyncML協議中的命令級交互進行分析與歸納,我們將這些交互分成了以下幾個類別,對他們各自采用不同的處理方法。

4.2.1 基本操作型原語(Add/Delete/Replace/Copy)

SyncML中為提供了增、刪、改、復制四種基本的記錄操作,來描述其他各種復雜的記錄變更情況。自上次同步后發生修改的設備將自身的修改用這四種操作進行描述,發送到對端。除明確標示不需要狀態響應的情況之外,接收到命令的一方都應當回送操作執行的狀態:執行成功或是同步沖突、認證失敗等。同時,即使發送方標示不需要狀態響應,接收方仍然可以送回同步的操作狀態。

4.2.2 信息單位控制原語(Sync/Sequence/Atom)

Sync/Sequence/Atom這幾個命令的作用是在同步過程中標識出一個特定的同步單位(或者是一個數據集,或者是一個語意塊)。這個同步單位是由基本的記錄或其它的記錄組合成的小的同步單位構成。對于這類命令,給出的響應值實際包含了所有它的子單位的執行狀態。

4.2.3 擴展操作原語(Get/Put/Exec/Search)

這幾個命令定義的交互機制沒有被用于SyncML中的數據對象同步過程,而被用來進行輔助信息的交換、信息查詢過濾、調用遠端過程和應用程序,它們是SyncML協議中的標準用戶擴展機制,不同應用程序可以用這些命令來完成特定應用的擴展。

另外,Get/Search命令的返回不僅只有一個狀態值,還包括其他的數據。這些數據是命令執行的具體產物,在SyncML協議中是通過一個Results元素送回。但在送出Results之前,接收命令的一方還必須將命令的執行狀態通過Status命令匯報給命令發送方。如果這些命令執行失敗,允許只有失敗狀態報告,不必再有Results。這類命令可以理解成為帶返回參數的RPC調用。

4.2.4 提醒原語(Alert)

這個命令用于傳遞一個提醒信息,主要用在請求對數據庫進行某種類型同步,或請求對端發送大數據對象的后繼部分等情況下。對這個命令我們可以依據其具體的使用場合,將其細分成不同的邏輯操作,以不同的API向用戶提供,而不必把這個命令本身暴露給應用開發人員。

4.2.5 消息頭(SyncHdr)的響應

最后在SyncML協議中,把一條消息的消息頭也視作一個特殊的命令,這一命令主要承載的是內容包括服務器一級訪問認證信息、目標地址重定向及其他的如消息尺寸這樣的需要協商內容。消息頭中不含有命令ID項,在協議中將其ID指定為0。在SyncML交互流程中,設備在每一條消息中都必須對它所收到的前一條消息的消息頭給出正面的應答,否則即意味著同步過程失敗。

這種處理方式使得協議本身的交互控制與應用邏輯的交互有了統一的形式,然而,我們的設計目標是使應用開發人員盡量不被協議本身的交互糾纏,有必要將這一交互封裝起來。分析這部分內容,應用開發人員所需要關心的僅有認證信息,這可以由事先注冊的認證失敗處理過程完成,其他的信息將被自動應用到工作區管理(最大消息尺寸的元信息)、傳輸層的重定向(RespURI信息)等功能中去。

4.3 使用MobSDK的SyncML同步過程

通過前面的分析與整理,現在一個SyncML客戶端應用使用同步功能的過程就變得很清晰。圖1顯示了一個使用MobSDK的同步應用的典型流程(為了圖形的簡潔,沒有顯示錯誤處理和消息分拆的情況)。圖中的SML應用和SML命令回調部分同屬于客戶端應用的設計內容,SML運行環境對應于MobSDK提供的邏輯模型。

4.3.1 初始化過程

會話的初始化過程中主要完成同步錨點狀態檢查、數據庫同步方式協商和數據庫的訪問認證。而對于客戶端有權力決定采用單獨的初始化過程,我們不必在開發庫中考慮無單獨初始化包的情況。為簡化AP對初始化的處理,我們通過一個結構來保存會話相關信息(包含有同步初始化的各項設置),通過以這一結構為參數的會話連接請求調用,應用程序發起會話連接初始化。在MobSDK封裝的運行支撐環境完成連接初始化工作以后,用會話連接確認通知應用程序會話的初始化情況。用戶接到會話成功初始化的確認信息以后,就可以繼續進行數據的交換。

4.3.2 數據交換過程

這里我們以僅對一個數據庫進行同步為例說明客戶端應用程序的處理過程。在函數庫的使用模型中,將同步的幾個階段分離開。

4.3.2.1 發送更新階段

這一階段對應于圖1中5~13部分。客戶端的主要任務是進行更新信息的組織。這一部分進行以下工作:

(1)發起smlBegSync調用,開始發送對本數據庫的更新請求。

(2)連續調用smlAddCmd/smlCpyCmd/smlDelCmd等命令,發送完成全部本地更新。在發送過程中保存每一個命令的序號,等待命令的確認。

(3)調用smlEndSync,結束對當前數據庫的更新請求。

(4)在對方響應消息的結束處理中判斷己方發送命令是否已全部得到處理。如果已經處理完成轉入下一階段,否則發送請求下一消息的Alert命令,直至對方對所有本方要求響應的命令都給出響應為止。

4.3.2.2 接收更新階段這一階段中,客戶應用程序的工作模式是解析接收到的消息,進行命令調度。在各個命令的回調函數中執行具有相應語意的操作,如果需要在不同命令的執行間共享信息,可以通過回調函數中用戶數據參數來實現,具體細節在下一章中有進一步描述。對于執行命令需要回送的狀態信息,應用程序僅需要將其排隊,進行響應設置。而在正式開始構造消息時,再將Status與Results命令依序編排進入待發送的消息中。由于必須要等到服務器發送來的4#包結束,客戶端才能進行映射表的回送,因而在這一階段產生的映射記錄項,也必須先行將其排入隊列,在進入下一階段后再編排到消息中進行發送,或轉存到關于會話記錄的文件中,在下一次同步開始前進行發送。

當接收到對方帶final標記的消息時,對方不再發送更新信息,只需要將本方應發的響應信息發送完畢即可。如果本方的響應信息需要多條消息才可以發送完成,在完全發送完響應前會有幾個值為223的Alert命令的處理。結束后轉入映射表發送階段。

4.3.3 映射表發送階段

在映射發送階段的任務就是通過多個Map命令,將不同的數據庫的映射記錄分別發送到對端。如果這一階段的Map命令沒有得到正面的響應,應用程序應當依據設置再次發送映射表,或是將所有的MapItem保存起來,待下一次這兩個設備再同步時另行發送。

5 總結

本文通過對SyncML協議的深入分析,設計了一個快速開發庫,在后續的研究中,將進一步完善此開發庫的相關環節,使之成為開發SyncML應用的有效工具。這對推動移動計算的應用與發展,有著積極的意義。

參考文獻:

[1] Carlos D. Correa, Ivan Marsic: Software framework for managing heterogeneity in mobile collaborative systems, Proceedings of the 2003 international ACM SIGGROUP conference on Supporting group work,November 2003.

[2] Tancred Lindholm: XML three-way merge as a reconciliation engine for mobile data,Proceedings of the 3rd ACM international workshop on Data engineering for wireless and mobile access,September,2003.

[3] S.Agarwal,D.Starobinski, A.Trachtenberg: On the scalability of data synchronization protocols for PDAs and mobile devices. IEEE Network, vol.16, n4, July/August, 2002.

[4] Trachtenberg, D. Starobinski, S.Agarwal:Fast PDA Synchronization Using Characteristic Polynomial Interpolation, Proceeding of INFOCOM, June 2002.

[5] SyncML Initiative, Building an Industry Wide Mobile Data Synchronization Protocol, SyncML White Paper,Mar.20,2000.

[6] Enabler Release Definition for SyncML Common Specifications, version 1.1.2. OMA, June 12th, 2003.

[7] SyncML Sync Protocol, version 1.1.2. OMA, June 12th,2003.

[8] SyncML Representation Protocol, version 1.1.2.OMA,June 12th,2003.

[9] Oracle Database Lite 10g Technical White Paper, Oracle Website, http://download.oracle.com/oowsf2004/1270_wp.pdf,Auguest 2004.

[10] Alan Yeung, 等. 邱仲潘, 等, 譯. Oracle 9i 移動技術[M]. 機械工業出版社,2003.

[11] 任立剛, 宋俊德. 移動終端數據同步協議研究[J]. 電信科學,2002.

[12] 中華人民共和國信息產業部. YD/T1229-2002. 可移動終端數據同步協議及信息交換數據格式技術要求,2002.

主站蜘蛛池模板: 亚洲色欲色欲www在线观看| 好吊色国产欧美日韩免费观看| 亚洲Av激情网五月天| 呦女精品网站| 欧美福利在线播放| 久久五月天综合| 在线观看无码av五月花| 中文无码日韩精品| 婷婷亚洲天堂| 国产特级毛片aaaaaaa高清| 国产三级精品三级在线观看| 欧美成人精品高清在线下载 | 亚洲欧美精品在线| 色欲色欲久久综合网| 中美日韩在线网免费毛片视频| 尤物国产在线| 国产久操视频| 日韩精品亚洲人旧成在线| 免费大黄网站在线观看| 国产成人做受免费视频| 农村乱人伦一区二区| 国产午夜精品一区二区三区软件| 亚洲天堂啪啪| 久久亚洲高清国产| 99在线观看精品视频| 99无码中文字幕视频| 成人午夜视频网站| 久久青草免费91线频观看不卡| 婷婷六月综合网| 国产毛片片精品天天看视频| 久久国产香蕉| 国产偷国产偷在线高清| 久久特级毛片| 欧美亚洲综合免费精品高清在线观看| 网久久综合| 亚洲一级色| 美女被操91视频| 日韩国产黄色网站| 国产免费久久精品99re丫丫一| 亚洲天堂伊人| 色丁丁毛片在线观看| 亚洲天堂日韩在线| 国产免费久久精品99re不卡| 中文字幕日韩欧美| 久久黄色一级视频| 无码视频国产精品一区二区| 免费午夜无码18禁无码影院| 亚洲人妖在线| 性欧美精品xxxx| 无码精品一区二区久久久| 中文字幕中文字字幕码一二区| 亚洲高清在线天堂精品| 国产网站在线看| 国产精品美女网站| 欧美三级视频在线播放| 999国内精品视频免费| 四虎永久免费地址| 精品成人一区二区三区电影| 亚洲男人的天堂在线观看| 老色鬼久久亚洲AV综合| 亚洲无码A视频在线| 亚洲综合精品香蕉久久网| 亚洲天堂啪啪| 国产成人凹凸视频在线| 精品三级网站| 亚洲有无码中文网| 欧美日韩成人在线观看| 欧美一级在线看| 欧美一级片在线| 亚洲天堂精品在线观看| 久久香蕉国产线看精品| 婷婷色丁香综合激情| www.狠狠| 欧美精品亚洲精品日韩专区| 欧美激情,国产精品| 国产人成网线在线播放va| 天天躁狠狠躁| 亚洲成av人无码综合在线观看| 亚洲第一成年网| 88av在线播放| 精品无码视频在线观看| 精品国产自在在线在线观看|