共用方式為


概觀和案例

Sync Framework 可啟用資料庫之間的同步處理,提供直覺式和彈性 API,讓您用來建立針對離線和共同作業案例的應用程式。此 API 可讓您使用提供的所有元件或部分元件 (根據應用程式的架構和需求而定)。Sync Framework 支援用戶端-伺服器、用戶端對用戶端及混合式拓撲。在用戶端-伺服器拓撲中,所有用戶端都會與中央伺服器同步處理。在用戶端對用戶端拓撲中,每一個用戶端都可以與另一個用戶端同步處理,而不需要讓變更經過中央伺服器。混合式拓撲是由用戶端對用戶端和用戶端-伺服器拓撲的組合所構成。

同步處理案例

支援行動和遠端工作者的能力對於組織的日常工作而言,已經變得越來越重要。組織必須確定工作者可存取與辦公室內相同的資訊,這一點非常重要。在大多數情況下,這些使用者都會擁有筆記型電腦、辦公室桌上型電腦、智慧型手機或 PDA。使用者有時可以從這些裝置直接存取其資料,其方式是使用 VPN 連接或是直接與公司網路連接的一些其他方法。對於大多數遠端使用者而言,這個解決方案往往不太令人滿意,因為以下方面有一些重大的缺失:

  • 網路需求

    為了讓使用者能夠存取資訊,遠端裝置必須在存取資料時持續連接公司網路。對於某些工作者而言 (例如在家工作者),這可能不是什麼問題。但是對於其他使用者而言 (例如,經常移動位置的使用者),這可能會比較困難。例如,如果業務員正在拜訪客戶,而且因為沒有網路連線所以無法存取庫存資料,他就很難有效地辦事。

  • 資料存取速度

    在典型的用戶端-伺服器企業環境中,使用者擁有高速網路,好讓他們可以快速存取資訊。但是,遠端工作者經常是透過緩慢且不可靠的網路來進行連接。在典型的解決方案中,使用者所需要的每個資料片段都必須在每次要求時下載,因為沒有方法可以將資料保存在裝置上。例如,如果業務員每次開啟應用程式時,都必須下載他的產品清單,而每次應用程式填入資訊都會有時間延遲,實在是讓人覺得煩不勝煩。

  • 單一失敗點

    使用這一種解決方案時,使用者經常會依賴單一伺服器資料庫。如果該資料庫因為規劃中的伺服器停機時間或伺服器失敗而無法使用,所有遠端工作者都將中斷其資料的連接。

  • 伺服器延展性

    因為有更多的人在遠端工作,所以企業伺服器的效能將會受到影響,因此可能需要增加硬體。

偶爾連接的應用程式

上一節所描述之解決方案的另一個替代方式就是實作偶爾連接的應用程式 (OCA)。偶爾連接的應用程式仍然可讓遠端工作者存取資料,但是他想要的資訊會存放在本機。為了填入本機資料庫,偶爾連接的應用程式通常會使用資料同步處理。

資料同步處理的組成功能是能夠定期取得一個資料庫 (如用戶端資料庫) 中儲存的資訊,以及能夠與另一個資料庫 (如伺服器資料庫) 同步處理變更。同步處理型式解決方案的優點如下:使用者不再需要擁有持續的網路連接,也可存取資訊。由於使用者的資料是儲存在本機,所以當使用者從中央資料庫卸載處理時,可以持續存取資料。此外,使用者不再受到網路速度的限制,而可以依本機電腦的速度來存取資料。

用戶端對用戶端同步處理會透過啟用不仰賴所有變更都通過伺服器的同步處理,避免單一失敗點。將大量應用程式處理發送至每個用戶端的功能也有助於處理伺服器延展性的問題。

Sync Framework 會使用「同步處理提供者」(Synchronization Provider) 來與每一個同步處理的資料庫通訊。與 ADO.NET 資料提供者類似的 Sync Framework 資料庫提供者會保護其他 Sync Framework 元件,使其不受每一個資料庫的特定實作。Sync Framework 包含五個資料庫提供者,這些提供者支援兩種案例:離線和共同作業案例。下圖說明離線案例:在用戶端-伺服器拓撲中,當有連線可用時,用戶端會連接中央伺服器進行資料同步處理。

Sync Services 離線案例

偶爾連接的應用程式一種常見的延伸,就是支援共同作業案例的功能。在這些案例中,兩個資料庫可以透過點對點的方式同步處理,而不需透過中樞點。下圖說明混合式拓撲:在此拓撲中,中央伺服器會與用戶端同步處理,而用戶端將能夠彼此同步處理。像這樣的拓撲可以支援應用程式,讓使用者共用專案記事。專案小組成員通常需要可以使用的本機資料複本。當他們進行變更時,可以與伺服器同步處理來上傳變更,或是與另一個小組成員同步處理來交換變更。

Sync Services 共同作業案例

Sync Framework 包含的五個資料庫同步處理提供者可分為下列兩種類別:

  • DbServerSyncProviderSqlCeClientSyncProvider 支援離線案例。這些提供者具有下列特性:

    • 適用於用戶端-伺服器拓撲。

    • 永遠成對使用。例如,您無法使用 ServerSyncProvider 的兩個執行個體來同步處理兩個伺服器資料庫 (請改用 SqlSyncProviderDbSyncProvider)。

    • 複雜程度可以低於共同作業提供者,但是它們無法與其他 Sync Framework 提供者一起參與拓撲。

    如需離線同步處理的詳細資訊,請參閱離線案例

  • SqlSyncProviderSqlCeSyncProviderDbSyncProvider 支援共同作業案例。分別會使用 SqlSyncProviderSqlCeSyncProvider 來同步處理 SQL Server 和 SQL Server Compact 資料庫。通常會使用 DbSyncProvider 來同步處理非 SQL Server 資料庫。這些提供者具有下列特性:

    • 適用於點對點和混合式拓撲。如果需要更進階的功能 (例如複雜的批次處理),可用於用戶端-伺服器拓撲。

    • 可透過更有彈性的方式來使用。例如,您可以同步處理 DbSyncProvider 的兩個執行個體、SqlSyncProvider 的一個執行個體及 SqlCeSyncProvider 的一個執行個體,依此類推。

    • 使用 Sync Framework 中繼資料,而且可以與其他 Sync Framework 提供者一起參與拓撲。

    如需資料共同作業的詳細資訊,請參閱共同作業案例

請參閱

概念

同步處理資料庫