熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

微軟同步框架中的自定義數據同步基礎

2013-11-13 10:28:54  來源: .NET編程 

  Microsoft Sync Framework(MSF)為我們提供了進行同步應用開發的基礎框架和 API這些 API 即有基於托管代碼的也有基於非托管代碼的也就是說我們既可以開發基於NET平台使用托管 API 的同步應用也可以開發基於WIN平台非托管 API 的同步應用

  MSF 只是一個框架一個軟件的半成品它可以提供一些同步應用的通用基礎功能但是它沒有辦法知道我們要同步那裡的數據是單向雙向還是多向沖突如何解決等問題也沒有辦法了解我們業務系統的邏輯所以我們的任務是使用 MSF 提供的基礎來開發自定義的同步系統來滿足我們自身系統同步的需要

  使用 MSF 同步數據存儲(replica)需要三個基本組件synchronization session(同步會話在本系列中簡稱 session)和兩個 synchronization provider(同步提供者在本系列中簡稱 provider)

  同步時應用程序創建 session 並且傳入相應的 source provider 和 destination provider 來初始化同步同步過程中 session 使用 source provider 來獲取 source replica 的變化並將變化通過 destination provider 應用到 destination replica 創建自定義的同步 provider 是使用 MSF 的核心

  provider 的職責

   管理 replica 的 metadata 和 knowledge同時還有每一個要被同步的 item 的 metadata

   傳輸實際的 item 數據從自己的 data store 中傳出或者將其他 data store 的數據傳入

   使用 Sync Framework 中的 API 來 enumerate change (作為 source)或者 detect conflictsapply changes (作為 destination)

  provider 是 MSF 框架的核心主要的功能是管理元數據Sync Framework 提供托管和非托管的 API 來幫助我們開發 Provider這個以後實例中會講到

  同步算法

  單向同步(oneway synchronaztion)

   session 取得 destination replica 的 knowledge 並發送給 source provider

   source provider 利用 destination 的 knowledge 找出需要發送到 destination 的更改

   source provider 將剛剛枚舉出的更改傳遞給 session

   session 利用 destination provider 來檢測沖突並將源發送過來的變化(change)應用到 destination replica

  兩個 replica 之間的雙向同步(Twoway synchronization)可以通過兩次單向同步完成

  與一個計算機連接的 N 個 replicas 之間的多路同步(Nway synchronization)執行過程

   所有 replica 通過 oneway synchronization 方式將自身數據同步到中心復本(central replica)

   所有沖突在中心復本(central replica)上處理

   所有 replica 通過 oneway synchronization 方式從中心復本(central replica)同步到本地

  就像上兩篇文章所講provider 要想枚舉更改或者檢測沖突必須要管理元數據provider 可以自己來進行管理但更好的辦法是通過專門的 Metadata Management 組件後面我們會降到


From:http://tw.wingwit.com/Article/program/net/201311/13785.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.