複寫程式設計概念
在開發使用複寫功能的應用程式之前,您應該遵循下列一般規劃步驟:
定義您的複寫拓撲。
定義應用程式功能。
規劃安全性。
選擇開發環境。
選擇適當的複寫程式設計介面。
本主題的其餘部分將更詳細地描述這些步驟。 為了說明規劃程序,本主題中還包括範例。
定義複寫拓撲
程式設計複寫中的第一個步驟,是為應用程式定義複寫拓撲。 如果您正在撰寫將使用現有複寫拓撲的應用程式,例如存取現有訂閱者資料的用戶端應用程式,您應該移到下一個步驟。
注意
在某些情況下,部署複寫拓撲將是應用程式的唯一目的。
您定義的複寫拓撲取決於許多因素,其中包括下列項目:
是否需要更新複寫的資料以及由誰來更新。
有關您的一致性、自主性和延遲的資料散發需求。
複寫環境,包括商務使用者、技術基礎結構、網路與安全性以及資料特性。
複寫及複寫選項的類型。
複寫拓撲以及它們如何搭配複寫類型使用。
如果您不熟悉 Microsoft SQL Server複寫,請參閱複寫類型。
定義應用程式功能
定義好複寫拓撲之後,您應該決定應用程式將提供的功能。 這些功能包括的範圍可從同步處理訂閱的指令碼,到具有使用者介面以設定複寫的應用程式。 複寫支援下列一般程式設計工作:
設定複寫。
同步處理訂閱者。
維護複寫拓撲。
監視複寫拓撲。
疑難排解複寫。
它也會藉由結合複寫功能與其他SQL Server所提供的功能,來擴充您的應用程式。 下表僅挑出一些您可在複寫應用程式中提供的擴充功能。
功能 | 範例 |
---|---|
使用 SQL Server Management Objects 的伺服器管理 (SMO) | 允許管理員在複寫拓撲中將資料庫附加並設定為發行者的應用程式。 |
使用 ADO.NET 的資料存取 | 這個應用程式允許使用者在離線時於本機訂閱者資料庫中,以程式設計方式存取和變更複寫的銷售資料,然後按一下按鈕連接和同步處理提取訂閱。 |
安全性規劃
安全性在任何應用程式中都很重要,而且安全性的規劃應該在撰寫任何程式碼之前先完成。 應用程式安全性可以分成三個主要的部分:保護資料庫的安全、保護複寫的安全以及撰寫安全的程式碼。
下列主題提供有關安全性的資訊:
選擇開發環境
當開發複寫應用程式時,有三個要考慮的基本開發環境。 每個開發環境都可以存取相同的複寫功能,但有一些例外。 複寫應用程式可以在下列每個環境中開發。
Managed 程式碼
利用程式設計.NET Framework和 .NET Common Language Runtime (CLR) 的優點的物件導向開發環境。 Managed 程式碼是 .NET 開發和SQL Server應用程式的建議程式設計環境。 Managed 複寫介面可讓您以物件導向的方式進行複寫管理的程式設計,而不需要知道 Transact-SQL,而且在執行腳本無法使用的複寫代理程式時,也會提供一些回呼功能。 Managed 程式碼是開發可重複使用元件與使用者介面應用程式的最佳環境。
指令碼
以 Transact-SQL 腳本中的複寫系統預存程式或批次檔中命令的形式執行一系列命令的簡單應用程式。 雖然您可以使用SQL Server同進程受控提供者在受控環境中執行腳本,但相同的功能可以使用 Managed 複寫介面來取得,這也會提供回呼功能。 執令碼是執行將只會執行數次且不需要回撥功能的工作之最佳環境,例如安裝複寫伺服器。
機器碼
物件導向開發環境,利用系統或是 COM 物件的直接存取,例如不是由 CLR 管理的程式碼。 機器碼複寫介面已被取代或停止提供。 如需詳細資訊,請參閱 SQL Server 複寫中已被取代的功能或複寫回溯相容性。
選擇適當的複寫程式設計介面。
最後的規劃步驟是選擇適當的複寫程式設計介面,來為選擇的開發環境實作所需的複寫功能。 下表顯示可用的複寫程式設計介面。
介面 | 環境 | 使用 |
---|---|---|
複寫管理物件概念 | Managed 程式碼 | 管理、監視和同步處理。 |
Microsoft.SqlServer.Replication | Managed 程式碼 | 同步處理。 |
Microsoft.SqlServer.Replication.BusinessLogicSupport | Managed 程式碼 | 建立商務邏輯處理常式,以整合自訂邏輯及合併同步處理: |
複寫預存程序 (Transact-SQL) | 指令碼 | 管理和監視。 |
Replication Agent Executables Concepts | 指令碼 | 同步處理。 |
範例
在 Adventure Works 中,資料必須發行給世界各地的 200 位銷售代表。 銷售代表經常需要出差,而且將需要使用膝上型電腦或是個人數位助理 (PDA) 來變更客戶資料和增加新訂單。 銷售代表將膝上型電腦連接到網路時,將需要與發行者同步處理變更。
就這個應用程式而言,規劃步驟可能如下所示:
這個應用程式的複寫拓撲已經存在。 不過,在用戶端必須建立新的提取訂閱。 發行集應該使用參數化的篩選,來將唯一的資料集複寫到每個銷售代表。
除了銷售應用程式所需的一般資料存取之外,此應用程式應該允許銷售人員按一下按鈕,視需要同步處理提取訂閱。 既然銷售代表將會安裝和執行應用程式,因此它也需要能夠在用戶端設定訂閱並套用初始快照集。 否則,應用程式將使用 Windows 提供的基礎結構來感應無線連接,以便在偵測到連接時,自動同步處理訂閱。
當連接到發行者時,請遵循所有的複寫安全性指導方針,包括 Windows 驗證與虛擬的私人網路 (VPN)。 如果實作 Web 同步處理,請使用安全通訊端層 (SSL) 連接。 如需詳細資訊,請參閱 Configure Web Synchronization。
為了利用.NET Framework的功能,應用程式是使用 Managed 程式碼語言來開發。
根據這些需求,Replication Management Objects (RMO) 的管理介面,可以為這個應用程式提供所有需要的應用程式功能。
此範例案例已在隨附SQL Server的範例應用程式中實作。