共用方式為


選取適當的 Sync Framework 元件

本主題描述哪些元件用於常見的同步處理案例,並描述 Sync Framework 的高階架構。

Sync Framework 元件

Sync Framework 包括執行階段、特定資料存放區的一組「同步處理提供者」(Synchronization Provider) 以及用來撰寫提供者的 API。提供者是一種軟體元件,可在資料來源與同步處理系統內的其他元件之間通訊。如果您同步處理有提供提供者的資料存放區,我們強烈建議您最好使用該提供者。提供者會提供擴充性,使其可以針對您的應用程式來調整。如果您同步處理沒有提供提供者的資料存放區,或是您需要不同的實作,自訂提供者就很適合。

下圖顯示 Sync Framework 提供之所有元件之間的關係。

Sync Framework 元件

圖中的元件如下所示:

  • 資料庫同步處理提供者 (舊版中稱為 Sync Services for ADO.NET)。這些提供者包含在 Microsoft.Synchronization.dll、Microsoft.Synchronization.Data.dll、Microsoft.Synchronization.Data.Server.dll、Microsoft.Synchronization.Data.SqlServer.dll 和 Microsoft.Synchronization.Data.SqlServerCe.dll 中。它們可用於同步處理以下案例類型的資料庫:

    • 共同作業案例。例如,在允許使用者共用專案記事的應用程式中,專案小組成員經常需要一份可以使用的本機資料複本。當他們進行變更時,他們可以與另一個小組成員同步處理來交換變更,也可以與中央伺服器同步處理變更。

    • 離線案例。例如,銷售人員需要在客戶辦公室存取產品資料,也必須能夠上傳訂單。銷售人員可以在每天早上與中央伺服器同步處理,以確保他擁有最新的產品和價格,然後在傍晚進行同步處理,上傳那一天的訂單。

    如需詳細資訊,請參閱同步處理資料庫。離線提供者原本是 Synchronization Services for ADO.NET 1.0 的一部分,這是 Sync Framework 1.0 之前發行的版本。共同作業提供者會建置在核心 API 和執行階段的最上層,但是離線提供者並不是。離線提供者無法與其他類型的 Sync Framework 提供者一起參與拓撲。

  • 檔案同步處理提供者 (在先前的版本中稱為 Sync Services for File Systems)。這個提供者包含在 FileSyncProvider2.dll 和 Microsoft.Synchronization.Files.dll 中,它可用來同步處理 NTFS、FAT 或 SMB 檔案系統中的檔案與資料夾。要同步處理的目錄可以是本機或遠端目錄,而且不需要屬於同一種檔案系統。應用程式可以使用靜態篩選來排除或包含檔案,其方式是明確列出檔案或使用萬用字元 (如 *.txt),或者應用程式也可以設定篩選來排除整個子資料夾。應用程式也可以透過註冊來接收檔案同步處理進度的通知。如需詳細資訊,請參閱同步處理檔案

  • Web 摘要同步處理元件 (在先前的版本中稱為 Sync Services for FeedSync)。這些元件都包含在 FeedSync2.dll 和 Microsoft.Synchronization.dll 中。這些元件的使用方式有以下兩種:

    • Web 摘要同步處理提供者服務可用來撰寫提供者,該提供者會將 FeedSync XML 檔案表示為它的複寫。如需 FeedSync 的詳細資訊,請參閱 FeedSync 網站 (英文)。

    • Web 摘要生產者與取用者元件可用來將另一個複寫類型 (如檔案系統) 的資料與 RSS 或 Atom 摘要同步處理。

    如需詳細資訊,請參閱同步處理 Web 摘要

  • 自訂提供者:這些元件包含在 Synchronization2.dll 和 Microsoft.Synchronization.dll 以及 SimpleProviders2.dll 和 Microsoft.Synchronization.SimpleProviders.dll 中。它們可用來針對任何類型的資料存放區建立同步處理提供者。例如,如果應用程式包含客戶連絡人追蹤的自訂儲存系統,您可以使用簡單提供者或完整自訂提供者,將該份資料整合到您的應用程式。如需詳細資訊,請參閱使用自訂提供者同步處理資料存放區

  • 中繼資料儲存服務:這個元件包含在 MetaStore2.dll 和 Microsoft.Synchronization.MetadataStorage.dll 中。此元件可由自訂提供者使用,當做儲存和處理同步處理中繼資料的一個很方便的方式,特別是無法以其他方式儲存中繼資料的複寫。中繼資料儲存服務會使用具有少量記憶體和磁碟使用量的可靠、輕量型資料庫,而且可以與提供者一起轉散發。此 API 會清楚劃分中繼資料存放區以及用來存取此存放區的介面與方法,以便可以實作替代的存放區,並搭配最低限度的提供者變更來使用。如需詳細資訊,請參閱 Sync Framework Metadata Storage Service

  • 核心 API 和執行階段:這些元件包含在 Synchronization2.dll 和 Microsoft.Synchronization.dll 中。核心 API 和執行階段是由其他所有元件使用,但是離線資料庫提供者除外。如需這些元件的詳細資訊,請參閱使用自訂提供者同步處理資料存放區

如需安裝元件的詳細資訊,請參閱安裝、轉散發和版本相容性

Sync Framework 提供完整元件集合來啟用各種不同應用程式的同步處理。本主題提供每一個元件的基本介紹,幫助您決定哪些元件適合您的應用程式。如果是牽涉到一種資料存放區類型以上的應用程式,您的下一個步驟就是閱讀整合不同提供者的資料

Sync Framework 架構

Sync Framework 會使用以提供者為基礎的架構。提供者會保護其他同步處理元件,使其沒有每一個資料存放區的複雜性和特定實作。這個架構 (搭配使用特殊同步處理中繼資料) 可讓 Sync Framework 同步處理撰寫提供者所針對的任何資料存放區類型。Sync Framework 包含常見資料存放區的提供者 (例如資料庫和 NTFS 檔案系統),而且可讓您撰寫其他存放區類型的提供者。提供者是整合到 Sync Framework 中的主要整合點。

下圖顯示 Sync Framework 的高階架構。同步處理一定會在兩個複寫 (或「節點」(Node)) 之間發生,如圖中所示,但是同步處理社群 (或「拓撲」(Topology)) 可以是任何形狀,例如中樞與支點、點對點等等。但是有一些例外,每一對參與者都可以在 2 層式或 N 層式架構上同步處理,如同應用程式需求所指示。每一個 Sync Framework 元件的文件都會提供有關適當架構及安全性考量的詳細資訊。

Sync Framework 架構概觀

下圖中的元素有三種類型:

  • 由開發人員所撰寫的元素。

    • 應用程式會呼叫同步處理方法、回應事件,並根據應用程式的需求處理其他工作。

    • 資料存放區可以是檔案系統、關聯式資料庫、一般檔案連絡人存放區,或是需要同步處理的其他任何資料存放區。

    • 資料傳輸通訊協定會決定如何在兩個提供者之間傳輸資料變更。

  • Sync Framework 所提供的元素。

    • 根據使用機器碼或 Managed 程式碼而定,應用程式會與同步處理工作階段或同步處理協調者通訊,然後該項目會與每一個同步處理提供者通訊。

    • 同步處理執行階段會驅動同步處理,並將狀態、衝突和錯誤傳達給用戶端應用程式。

  • 開發人員所撰寫或 Sync Framework 所提供的元素 (視案例而定)。

    • 此提供者是正在同步處理之資料的類型所特有。在某些狀況下,應用程式需要開發人員所必須撰寫的自訂提供者。Sync Framework 會提供許多 API,讓這個程序更為直接,同時也會提供許多元件,以協助進行同步處理最困難的部分,例如衝突偵測。

    • 中繼資料存放區包含了 Sync Framework 使用的中繼資料,以判斷每一個提供者應該從其服務之資料存放區選取及套用至此存放區的變更。中繼資料的儲存和使用方式取決於使用的提供者。例如,資料庫的提供者通常會將追蹤資料表中的中繼資料儲存在與資料存放區相同的資料庫中。如果是自訂提供者,您可以建立中繼資料存放區,或使用隨附於 Sync Framework 的服務。每個 Sync Framework 元件的文件都會提供有關中繼資料的詳細資訊。

請參閱

概念

Microsoft Sync Framework
使用 Sync Framework 的優點