複寫程式設計概念

在開發使用複寫功能的應用程式之前,您應該遵循下列一般規劃步驟:

  1. 定義您的複寫拓撲。

  2. 定義應用程式功能。

  3. 規劃安全性。

  4. 選擇開發環境。

  5. 選擇適當的複寫程式設計介面。

本主題的其餘部分將更詳細地描述這些步驟。為了說明規劃程序,本主題中還包括範例。

定義複寫拓撲

程式設計複寫中的第一個步驟,是為應用程式定義複寫拓撲。如果您正在撰寫將使用現有複寫拓撲的應用程式,例如存取現有訂閱者資料的用戶端應用程式,您應該移到下一個步驟。

[!附註]

在某些情況下,部署複寫拓撲將是應用程式的唯一目的。

您定義的複寫拓撲取決於許多因素,其中包括下列項目:

  • 是否需要更新複寫的資料以及由誰來更新。

  • 有關您的一致性、自主性和延遲的資料散發需求。

  • 複寫環境,包括商務使用者、技術基礎結構、網路與安全性以及資料特性。

  • 複寫及複寫選項的類型。

  • 複寫拓撲以及它們如何搭配複寫類型使用。

如需有關設計最符合您企業需求之複寫拓撲的詳細資訊,請參閱<解決方案設計考量 (複寫)>。如果您是 Microsoft SQL Server 複寫的新手,請參閱<概觀 (複寫)>。

定義應用程式功能

定義好複寫拓撲之後,您應該決定應用程式將提供的功能。這些功能包括的範圍可從同步處理訂閱的指令碼,到具有使用者介面以設定複寫的應用程式。複寫支援下列一般程式設計工作:

  • 設定複寫。

  • 同步處理訂閱者。

  • 維護複寫拓撲。

  • 監視複寫拓撲。

  • 疑難排解複寫。

透過結合複寫功能與 SQL Server 提供的其他功能來擴充應用程式,也是很常見的事。下表僅挑出一些您可在複寫應用程式中提供的擴充功能。

功能

範例

使用 SQL Server 管理物件 (SMO) 的伺服器管理

允許管理員在複寫拓撲中將資料庫附加並設定為發行者的應用程式。

使用 ADO.NET 的資料存取

這個應用程式允許使用者在離線時於本機訂閱者資料庫中,以程式設計方式存取和變更複寫的銷售資料,然後按一下按鈕連接和同步處理提取訂閱。

安全性規劃

安全性在任何應用程式中都很重要,而且安全性的規劃應該在撰寫任何程式碼之前先完成。應用程式安全性可以分成三個主要的部分:保護資料庫的安全、保護複寫的安全以及撰寫安全的程式碼。

下列主題提供有關安全性的資訊:

選擇開發環境

當開發複寫應用程式時,有三個要考慮的基本開發環境。每個開發環境都可以存取相同的複寫功能,但有一些例外。複寫應用程式可以在下列每個環境中開發。

  • Managed 程式碼

    物件導向開發環境,利用 .NET Framework 程式設計與 .NET Common Language Runtime (CLR) 的優點。Managed 程式碼是 .NET 開發與 SQL Server 應用程式建議的程式設計環境。Managed 複寫介面允許以物件導向的方式設計複寫管理的程式,而無須了解 Transact-SQL,而且當執行無法從指令碼中取得的複寫代理程式時,也提供一些回呼功能。Managed 程式碼是開發可重複使用元件與使用者介面應用程式的最佳環境。

  • 指令碼

    簡單的應用程式,可將一系列的命令以 Transact-SQL 指令碼的複寫系統預存程序或是批次檔中的命令來執行。雖然您可以使用 SQL Server 同處理序 Managed 提供者在 Managed 環境中執行指令碼,不過也可以使用有提供回呼功能之 Managed 複寫介面來取得相同的功能。執令碼是執行將只會執行數次且不需要回呼功能的工作之最佳環境,例如安裝複寫伺服器。

  • 機器碼

    物件導向開發環境,利用系統或是 COM 物件的直接存取,例如不是由 CLR 管理的程式碼。機器碼複寫介面已被取代或停止提供。如需詳細資訊,請參閱<SQL Server 複寫中已被取代的功能>或<SQL Server 複寫中已停止的功能>。

選擇適當的複寫程式設計介面。

最後的規劃步驟是選擇適當的複寫程式設計介面,來為選擇的開發環境實作所需的複寫功能。下表顯示可用的複寫程式設計介面。

介面

環境

使用

複寫管理物件概念。

Managed 程式碼

管理、監視和同步處理。

Microsoft.SqlServer.Replication

Managed 程式碼

同步處理。

Microsoft.SqlServer.Replication.BusinessLogicSupport

Managed 程式碼

建立商務邏輯處理常式,以整合自訂邏輯及合併同步處理:

複寫預存程序 (Transact-SQL)

指令碼

管理和監視。

複寫代理程式可執行檔概念

指令碼

同步處理。

範例

在 Adventure Works,需要為全世界的 200 位銷售代表發行資料。銷售代表經常需要出差,而且將需要使用膝上型電腦或是個人數位助理 (PDA) 來變更客戶資料和增加新訂單。銷售代表將膝上型電腦連接到網路時,將需要與發行者同步處理變更。

就這個應用程式而言,規劃步驟可能如下所示:

  1. 這個應用程式的複寫拓撲已經存在。不過,在用戶端必須建立新的提取訂閱。發行集應該使用參數化的篩選,來將唯一的資料集複寫到每個銷售代表。

  2. 除了銷售應用程式所需的一般資料存取之外,此應用程式應該允許銷售人員按一下按鈕,視需要同步處理提取訂閱。既然銷售代表將會安裝和執行應用程式,因此它也需要能夠在用戶端設定訂閱並套用初始快照集。否則,應用程式將使用 Windows 提供的基礎結構來感應無線連接,以便在偵測到連接時,自動同步處理訂閱。

  3. 當連接到發行者時,請遵循所有的複寫安全性指導方針,包括 Windows 驗證與虛擬的私人網路 (VPN)。如果實作 Web 同步處理,請使用安全通訊端層 (SSL) 連接。如需詳細資訊,請參閱<設定 Web 同步處理>。

  4. 為了利用 .NET Framework 的功能,應用程式是使用 Managed 程式碼語言來開發。

  5. 根據這些需求,複寫管理物件 (RMO) 的管理介面,可以為這個應用程式提供所有需要的應用程式功能。

在 SQL Server 隨附的範例應用程式中,已實作這個範例案例。如需詳細資訊,請參閱<AdventureWorks Sales Orders Sample for Merge Replication>。

請參閱

概念