レプリケーション機能を使用するアプリケーションを開発する前に、次の一般的な計画手順に従う必要があります。
レプリケーション トポロジを定義します。
アプリケーション機能を定義します。
セキュリティを計画します。
開発環境を選択します。
適切なレプリケーション プログラミング インターフェイスを選択します。
このトピックの残りの部分では、これらの手順について詳しく説明します。 計画プロセスを説明するために、例が含まれています。
レプリケーション トポロジの定義
レプリケーションのプログラミングの最初の手順は、アプリケーションのレプリケーション トポロジを定義することです。 既存のサブスクライバーのデータにアクセスするクライアント アプリケーションなど、既存のレプリケーション トポロジを使用するアプリケーションを作成する場合は、次の手順に進む必要があります。
注
場合によっては、レプリケーション トポロジのデプロイがアプリケーションの唯一の目的になります。
定義するレプリケーション トポロジは、次のような多くの要因によって異なります。
レプリケートされたデータを更新する必要があるかどうか、誰が更新する必要があるか。
データ分散には、整合性、自律性、待機時間に関するニーズがあります。
ビジネス ユーザー、技術インフラストラクチャ、ネットワークとセキュリティ、データ特性などのレプリケーション環境。
レプリケーションとレプリケーションのオプションの種類。
レプリケーション トポロジと、それらがレプリケーションの種類とどのように一致するか。
Microsoft SQL Server レプリケーションを初めて使用する場合は、「レプリケーション の種類」を参照してください。
アプリケーション機能の定義
レプリケーション トポロジが定義されたら、アプリケーションで提供される機能を決定する必要があります。 これらの機能は、サブスクリプションをアプリケーションとユーザー インターフェイスと同期してレプリケーションを構成するスクリプトから範囲を指定できます。 レプリケーションでは、次の一般的なプログラミング タスクがサポートされています。
レプリケーションの設定。
サブスクライバーの同期。
レプリケーション トポロジの維持。
レプリケーション トポロジの監視。
レプリケーションのトラブルシューティング。
また、レプリケーション機能と SQL Server によって提供される他の機能を組み合わせることによって、アプリケーションを拡張することも一般的です。 次の表は、レプリケーション アプリケーションで提供できる拡張機能を示しています。
機能 | 例 |
---|---|
SQL Server 管理オブジェクト (SMO) を使用したサーバー管理 | 管理者がレプリケーション トポロジでパブリッシャーとしてデータベースをアタッチおよび構成できるようにするアプリケーション。 |
ADO.NET を使用したデータ アクセス | ユーザーがオフライン時にローカル サブスクライバー データベース内のレプリケートされた売上データにプログラムでアクセスして変更し、ボタンをクリックしてプル サブスクリプションに接続して同期できるようにするアプリケーション。 |
セキュリティの計画
セキュリティはどのアプリケーションでも重要であり、コードを記述する前にセキュリティの計画を完了する必要があります。 アプリケーションのセキュリティは、データベースのセキュリティ保護、レプリケーションのセキュリティ保護、セキュリティで保護されたコードの記述という 3 つの主要部分に分けることができます。
次のトピックでは、セキュリティに関する情報を提供します。
開発環境の選択
レプリケーション アプリケーションを開発するときは、3 つの基本的な開発環境を考慮する必要があります。 各開発環境は、一部の例外を除き、同じレプリケーション機能にアクセスできます。 レプリケーション アプリケーションは、次の各環境で開発できます。
マネージド コード
.NET Framework プログラミングと .NET 共通言語ランタイム (CLR) の利点を活用するオブジェクト指向開発環境。 マネージド コードは、.NET 開発アプリケーションと SQL Server アプリケーションの両方に推奨されるプログラミング環境です。 マネージド レプリケーション インターフェイスを使用すると、Transact-SQL を知らなくてもオブジェクト指向の方法でレプリケーション管理のプログラミングが可能になります。また、スクリプトから使用できないレプリケーション エージェントを実行するときに、いくつかのコールバック機能も提供します。 マネージド コードは、再利用可能なコンポーネントとユーザー インターフェイス アプリケーションを開発するための最適な環境です。
スクリプト
Transact-SQL スクリプトまたはバッチ ファイル内のコマンドで、レプリケーション システム ストアド プロシージャとして一連のコマンドを実行する単純なアプリケーション。 SQL Server インプロセス マネージド プロバイダーを使用してマネージド環境でスクリプトを実行できますが、マネージド レプリケーション インターフェイスを使用して同じ機能を取得できます。これはコールバック機能も提供します。 スクリプトは、数回しか実行されず、レプリケーション サーバーのインストールなど、コールバック機能が必要ないタスクを実行するのに最適な環境です。
ネイティブ コード
CLR によってコードが管理されないように、システムまたは COM オブジェクトへの直接アクセスを利用するオブジェクト指向開発環境。 ネイティブ コード レプリケーション インターフェイスは非推奨または廃止されました。 詳細については、「SQL Server レプリケーションまたはレプリケーションの下位互換性における非推奨の機能」を参照してください。
適切なレプリケーション プログラミング インターフェイスを選択する
最後の計画手順では、選択した開発環境に必要なレプリケーション機能を実装する適切なレプリケーション プログラミング インターフェイスを選択します。 次の表に、使用できるレプリケーション プログラミング インターフェイスを示します。
インターフェイス | 環境 | 使用目的 |
---|---|---|
レプリケーション管理オブジェクトの概念 | マネージド コード | 管理、監視、および同期。 |
Microsoft.SqlServer.Replication | マネージド コード | 同期。 |
Microsoft.SqlServer.Replication.BusinessLogicSupport | マネージド コード | カスタム ロジックとマージ同期プロセスを統合するためのビジネス ロジック ハンドラーの作成。 |
レプリケーション ストアド プロシージャ (Transact-SQL) | スクリプトの作成 | 管理と監視。 |
レプリケーションエージェント実行ファイルの概念 | スクリプトの作成 | 同期。 |
例
Adventure Works では、世界中の 200 人の営業担当者にデータを公開する必要があります。 営業担当者は頻繁に旅行し、ラップトップ コンピューターまたはパーソナル デジタル アシスタント (PDA) を使用して顧客データを変更し、新しい注文を追加する必要があります。 その後、営業担当者がノート PC をネットワークに接続するときに、変更をパブリッシャーと同期する必要があります。
このアプリケーションでは、計画手順は次のようになります。
このアプリケーションのレプリケーション トポロジは既に存在します。 ただし、クライアントで新しいプル サブスクリプションを作成する必要があります。 パブリケーションでは、パラメーター化されたフィルターを使用して、各営業担当者に一意のデータ セットをレプリケートする必要があります。
販売アプリケーションに必要な一般的なデータ アクセスに加えて、このアプリケーションでは、営業担当者がボタンをクリックしてオンデマンドでプル サブスクリプションを同期できるようにする必要があります。 営業担当者はアプリケーションをインストールして実行するため、サブスクリプションを構成し、クライアントで初期スナップショットを適用できる必要もあります。 必要に応じて、アプリケーションは、ワイヤレス接続を検出するために Windows によって提供されるインフラストラクチャを使用して、接続が検出されたときにサブスクリプションを自動的に同期します。
パブリッシャーへの接続時に Windows 認証と仮想プライベート ネットワーク (VPN) を使用するなど、レプリケーションに関するすべてのセキュリティ ガイドラインに従います。 Web 同期を実装する場合は、セキュリティで保護されたソケット レイヤー (SSL) 接続を使用します。 詳細については、「 Web 同期の構成」を参照してください。
.NET Framework の機能を利用するために、アプリケーションはマネージド コード言語を使用して開発されます。
これらの要件に基づいて、レプリケーション管理オブジェクト (RMO) マネージド インターフェイスは、このアプリケーションに必要なすべてのレプリケーション機能を提供できます。
このシナリオ例は、SQL Server に付属するサンプル アプリケーションに実装されています。