Microsoft Sync Framework
Microsoft Sync Framework 是一個全面性的同步處理平台,可以處理各種應用程式、服務與裝置的共同作業和離線存取。它備有各種技術和工具,可啟用漫遊、共用及離線處理資料。藉由使用 Sync Framework,開發人員就可以建立同步生態系統,將任何應用程式與透過任何網路使用任何通訊協定之任何存放區中的任何資料整合在一起。
Sync Framework 是由下列技術整合在一起,前三個可以與 SQL Server 2008 一起安裝:
Sync Services for ADO.NET 可用來針對離線和共同作業案例同步處理資料庫。
Sync Framework 核心元件可以由 Sync Services for ADO.NET 用來同步處理資料庫,也可用來針對其他資料存放區類型建立同步處理提供者。
Sync Services for FeedSync 可用來將 RSS 和 Atom 摘要與本機存放區內的資料同步處理。
Sync Services for File Systems 可用來同步處理檔案系統內的檔案和資料夾。
Metadata Storage Service 可用來將同步處理中繼資料儲存在 SQL Server Compact 3.5 中。
本主題的其餘部分會提供 Sync Services for ADO.NET 的概觀,並包含與其他 Microsoft 技術的比較。如需 Sync Services for ADO.NET 和 Sync Framework 的完整文件集,請參閱<Microsoft Sync Framework 開發人員中心>(英文)。
安裝 Microsoft Sync Framework 和 Sync Services for ADO.NET
Sync Framework 可以使用「安裝 SQL Server 2008」精靈或是使用命令列安裝選項來安裝。若要使用此精靈安裝 Sync Framework,請在 [特徵選取] 頁面上選取 [Microsoft Sync Framework]。如需有關如何安裝 SQL Server 和相關元件的詳細資訊,請參閱<SQL Server 安裝概觀>。
概觀和同步處理案例
支援行動和遠端工作者的能力對於組織的日常工作而言,已經變得越來越重要。組織必須確定工作者可存取與辦公室內相同的資訊,這一點非常重要。在大多數情況下,這些使用者都會擁有筆記型電腦、辦公室桌上型電腦、智慧型手機或 PDA。使用者經常可以從這些裝置直接存取其資料,其方式是使用 VPN 連接或是直接與公司網路連接的某個其他方法。對於大多數遠端使用者而言,這個解決方案往往不太令人滿意,因為以下方面有一些重大的缺失:
網路需求
為了讓使用者能夠存取資訊,遠端裝置必須在存取資料時持續連接公司網路。對於某些工作者而言 (例如在家工作者),這可能不是什麼問題。但是對於其他使用者而言 (例如,經常移動位置的使用者),這可能會比較困難。例如,如果業務員正在拜訪客戶,而且因為沒有網路連線所以無法存取庫存資料,他就很難有效地辦事。
資料存取速度
在典型的用戶端 / 伺服器企業環境中,使用者擁有高速網路,好讓他們可以快速存取資訊。但是,遠端工作者通常是透過緩慢且不可靠的有線或無線網路來進行連接。在典型的解決方案中,每當要求使用者需要的每一個資料片段時,都必須要下載一次,因為沒有辦法可以將資料保存在裝置上。例如,如果業務員每次開啟他的應用程式時,都必須下載他的產品清單,很快他就會覺得很挫敗,因為應用程式填入資訊總是會有時間延遲。
單一失敗點
使用這一種解決方案時,所有使用者都會依賴單一伺服器。如果該資料庫因為規劃中的伺服器停機時間或伺服器失敗而無法使用,所有遠端工作者都將中斷其資料的連接。
伺服器延展性
因為有更多的人在遠端工作,所以企業伺服器的效能將會受到影響,因此可能需要增加硬體。
偶爾連接的應用程式
上一節所描述之解決方案的另一個替代方式就是實作偶爾連接的應用程式 (OCA)。偶爾連接的應用程式可讓遠端工作者繼續存取資料,但是工作者所需的資訊會儲存在本機裝置上,與之前的案例不同 (之前的案例是讓使用者直接存取企業資料庫)。為了填入本機資料庫,偶爾連接的應用程式通常會使用資料同步處理。
資料同步處理的組成功能是能夠定期取得用戶端資料庫 (例如 SQL Server Compact 3.5) 中儲存的資訊,以及能夠將變更與伺服器資料庫 (例如 SQL Server) 同步處理。同步處理型式解決方案的優點如下:使用者不再需要擁有持續的網路連接,也可存取資訊。由於使用者的資料是儲存在本機,所以當使用者從中央資料庫卸載處理時,可以持續存取資料。此外,使用者不再受到網路速度的限制,而且可以依照裝置的速度來存取資料。
Sync Services for ADO.NET
Sync Services for ADO.NET 可啟用資料庫之間的同步處理,提供直覺式、具彈性的 API,好讓您建立針對離線和共同作業案例的應用程式。Sync Services for ADO.NET 可啟用兩個對等項目之間的同步處理,例如 SQL Server 資料庫或 SQL Server Compact 3.5 用戶端資料庫與可使用 ADO.NET 提供者的任何伺服器資料庫之間。此 API 可讓您使用提供的所有元件或部分元件 (根據應用程式的架構和需求而定)。
下圖顯示偶爾連接的應用程式範例,其中的資料 (以綠色資料庫表示) 會保存在遠端工作者的本機裝置上。第一個範例示範獨立資料庫系統,其中的資訊會直接儲存在使用者的裝置上。第二個範例示範遠端辦公室,其中的資訊儲存在這個遠端辦公室內的工作群組資料庫內,好讓多個本機工作者可以存取資料。
這種偶爾連接的應用程式的常見延伸,就是支援共同作業案例的功能。在這些案例中,兩個資料庫可以透過點對點的方式同步處理,而不需透過中樞點。如下圖所示,遠端資料庫可任意與其他任何資料庫交換資訊。當遠端工作者 (例如現場財務稽核人員) 以團隊形式在遠端位置工作時,這種類型的解決方案將會非常實用。這些工作者通常都必須彼此分享資訊,但是因為他們沒有中央資料庫的連接能力,所以必須透過某種點對點網路來分享資訊。
搭配 SQL Server 使用 Sync Services for ADO.NET
Sync Services for ADO.NET 透過以下方式支援資料庫:
在離線案例中,用戶端資料庫必須是 SQL Server Compact 3.5 3.5 版或更新的版本。伺服器可以是可提供 ADO.NET 提供者的任何資料庫。
在共同作業案例中,每一個對等資料庫都必須是 SQL Server 2000 Service Pack 4 或更新的版本。
SQL Server 是一個企業等級的資料庫,可針對需要同步處理的應用程式提供穩固的基礎。SQL Server 2008 提供了變更追蹤,這是可供同步處理開發人員使用的其中一個最實用的功能。Sync Services for ADO.NET 提供了同步處理變更的 API,但是它實際上並不會追蹤伺服器或對等資料庫內的變更 ((SQL Server Compact 3.5 則會追蹤用戶端資料庫內的變更)。您可以建立自訂變更追蹤系統,但是這樣做通常會大幅增加複雜度和效能負擔。我們建議您使用 SQL Server 2008 中的變更追蹤,因為這項功能容易設定而且可提供高效能追蹤。如需詳細資訊,請參閱<追蹤資料變更>。
將 Sync Services for ADO.NET 與其他技術比較
Microsoft 針對執行同步處理的應用程式,提供了數種專門設計的技術。因此,將 Sync Services for ADO.NET 與離線和共同作業案例中使用的其他技術相比較將會很有用處。
離線同步處理
進行離線同步處理的最重要 Microsoft 技術如下:
遠端資料存取 (RDA)。這是用於同步處理 SQL Server Compact 3.5 資料庫與其他 SQL Server 版本的資料庫。如需詳細資訊,請參閱《SQL Server Compact 3.5 線上叢書》。
合併式複寫。這是用於同步處理不同版本的 SQL Server,包括 SQL Server Compact 3.5。如需詳細資訊,請參閱<合併式複寫概觀>和<選取適當的複寫類型>。
使用下表可判斷哪個技術適合您要建立的應用程式。
主要功能 |
RDA |
合併式複寫 |
Sync Services |
---|---|---|---|
使用 N 層或服務導向架構來同步處理 |
否 |
否 |
是 |
支援異質性資料庫 |
否 |
否 |
是 |
累加變更追蹤 |
否1 |
是 |
是 |
衝突偵測與解決 |
否 |
是 2 |
是 |
輕鬆地在用戶端上建立資料檢視 |
否 |
否 |
是 |
自動初始化結構描述與資料 |
是 |
是 |
是 |
支援大型資料集 |
是 |
是 |
是 |
查詢處理器可在本機上使用 |
是 |
是 |
是 |
自動傳播結構描述變更 |
否 |
是 |
否 |
自動重新分割資料 |
否 |
是 |
否 |
在裝置上使用 |
是 |
是 |
是 |
1 RDA 支援累加上載,但下載永遠都是可更新用戶端上所有資料的快照集。
2 合併式複寫會提供內建衝突解決方式,而 Sync Services for ADO.NET 則提供用來建立衝突解決配置的架構。
共同作業同步處理
就共同作業同步處理而言,所要比較的最重要技術就是點對點交易式複寫,這是用來同步處理兩個或多個 SQL Server Enterprise 資料庫。Sync Services for ADO.NET 和交易式複寫都可支援點對點同步處理:交易式複寫最適合用於維護高可用性以及在多部伺服器之間擴展讀取活動,而 Sync Services for ADO.NET 則最適合用於使用者共同處理相同資料的應用程式。
下表可幫助您判斷哪個技術適合您要建立的應用程式。如需有關點對點交易式複寫的詳細資訊,請參閱<點對點交易式複寫>。
主要功能 |
點對點交易式複寫 |
Sync Services |
---|---|---|
使用 N 層或服務導向架構來同步處理 |
否 |
是 |
支援異質性資料庫 |
否 |
是 |
累加變更追蹤1 |
是 |
是 |
衝突偵測與解決2 |
是 |
是 |
自動初始化結構描述與資料 |
是 |
是 |
支援大型資料集 |
是 |
是 |
查詢處理器可在本機上使用 |
是 |
是 |
自動傳播結構描述變更 |
是 |
否 |
在裝置上使用 |
否 |
不在這個版本中 |
搭配 SQL Server Compact 3.5 一起使用 |
否 |
不在這個版本中 |
1Sync Services for ADO.NET 會使用淨變更追蹤,其中會同步處理最後一個版本的資料列。當使用點對點交易式複寫時,資料列的所有變更都會依序套用到每一個對等項目。
2 複寫會提供內建衝突解決方式,而 Sync Services for ADO.NET 則提供用來建立衝突解決配置的架構。
決定要使用哪一種技術
Sync Services for ADO.NET 會提供程式設計模型的彈性 (如離線資料集),以及更豐富的同步處理功能集,如複寫中提供的功能集。Sync Services for ADO.NET 的功能優於 RDA。複寫的用意是要供資料庫管理員使用,而且主要是設計來同步處理 SQL Server 資料庫。複寫可以透過精靈、預存程序與自己的 API 來提供重要的組態設定功能。Sync Services for ADO.NET 的用意是要供開發人員使用,而且可透過服務支援異質性資料庫與同步處理,例如 Windows Communication Foundation (WCF)。如果應用程式牽涉到非 SQL Server 資料庫的同步處理,或是應用程式必須有個別的元件,才能透過不同的傳輸或服務啟用同步處理,請使用 Sync Services for ADO.NET。
對於某些應用程式而言,使用技術的決定非常簡單:如果您必須同步處理 SQL Server 資料庫以外的資料來源,則 Sync Services for ADO.NET 就是解決方案。如果您是資料庫管理員,而且想要設定沒有太多程式設計的同步處理,則複寫可能是較佳的選擇。最後,您必須仔細考量應用程式需求,並判斷 Sync Services for ADO.NET API 是否是適合使用的技術。如果您要做的事情不只是將結構描述及其資料從某個資料庫複寫到另一個資料庫,我們建議您使用 Sync Services for ADO.NET。