このサンプルでは、モバイル ユーザーにデータを配信するためにマージ レプリケーション トポロジを実装する方法に焦点をあて、SQL Server 2005 におけるマージ レプリケーションのプログラミング機能についても示します。このサンプルは、標準的な Microsoft のデータ アクセス テクノロジとマージ レプリケーションを使用する Microsoft Windows フォーム ベースのアプリケーションであり、本社と定期的に同期しながら各自のローカル データのメンテナンスを営業担当者が行えるようにします。
サンプル シナリオ
Adventure Works Cycles は、米国およびカナダの自転車小売店に自転車を販売する自転車メーカーです。Adventure Works Cycles の自転車は Web サイトから顧客に直接販売されます。また、小売店によっても購入され、小売店は販売利益を上乗せして販売します。小売店との取引は、Adventure Works Cycles 営業担当者で構成される全域的な営業部門によって処理されます。この営業部門は、各担当販売区域ごとに分類され、販売区域マネージャによって管理されます。販売区域マネージャからの報告は営業部長に提出されます。すべての販売取引のデータは、Adventure Works Cycles の本社 (Bothell, Washington) にある SQL Server 2005 データベースに保持されますが、各営業担当者は自分の販売関連データ (顧客情報やすべての売り上げおよび返品など) を維持する責任があります。また、営業担当者は価格設定、最新の在庫情報、個別の販売データの履歴など最新の製品関連データにアクセスする必要があります。
小売業者の販売利益を最大化するなどのビジネス上の目標を達成するために、Adventure Works Cycles は営業スタッフに最大限の柔軟性を提供しながら、処理コストを最小化する必要があります。その目標のために、Adventure Works Cycles は、販売関連データの管理に対してレプリケーション ベースのソリューションを実装しました。各営業担当者に、クライアント アプリケーションを使用したデータ入力や、顧客情報および製品情報の表示または変更を行うことができる、ラップトップ コンピュータまたは携帯情報端末 (PDA) が支給されました。各ラップトップまたは PDA には、マージ レプリケーション サブスクリプションによって提供された Adventure Works Cycles 販売データのローカル コピーが格納されており、Windows ログインに基づいてパーティション化されています。1 日の終わりに、またはインターネットに接続できる任意の時間に、営業担当者はローカルの変更をアップロードしたり、本社の AdventureWorks データベース情報から製品に関する変更や更新をダウンロードすることにより、各自のローカル データを同期させます。
主なレプリケーション機能
このサンプルでは、マージ レプリケーションの次の機能を示します。
マージ レプリケーション機能 | 説明 |
---|---|
レプリケーション管理オブジェクト (RMO) API |
RMO は、初期サブスクリプションの作成、およびサブスクリプションの同期と監視のために使用されます。詳細については、「レプリケーション管理オブジェクトを使用したプログラミング」を参照してください。 |
パラメータ化された行フィルタ |
各サブスクリプションは、パラメータ化された行フィルタを使用して行方向でフィルタ選択されます。これにより、各営業担当者は自分の販売区域に関連したデータのみを取得できます。詳細については、「パラメータ化された行フィルタ」を参照してください。 |
事前計算されたパーティション |
データ変更によって行が指定のパーティションから移動する場合、同期を開始する前にパブリッシャでこの作業が行われます。したがって、同期中にパフォーマンスが大幅に向上します。詳細については、「事前計算済みパーティションによるパラメータ化されたフィルタのパフォーマンス最適化」を参照してください。 |
クライアント要求のパーティション スナップショット |
各サブスクライバのパーティション化されたスナップショットを手動で作成する必要はありません。パーティション化されたスナップショットはサブスクライバからの要求時に作成されます。詳細については、「パラメータ化されたフィルタを使用したマージ パブリケーションのスナップショット」を参照してください。 |
ビジネス ロジック ハンドラ フレームワーク |
このサンプルは、同期中にカスタム ロジックを起動するビジネス ロジック ハンドラを実装します。詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。 |
アーティクルの種類に基づくパフォーマンス最適化 |
このサンプルのサブスクリプションは、ダウンロード専用として指定されたアーティクル、または重複しないパーティションに所属として指定されたアーティクルを使用します。これにより、同期処理のパフォーマンスの最適化が実現されます。詳細については、「パラメータ化された行フィルタ」および「ダウンロード専用アーティクルを使用したマージ レプリケーションのパフォーマンス最適化」を参照してください。 |
SQL Server Compact Edition (SQL Server 2005 Compact Edition) サブスクライバ |
このサンプルのパブリケーションは、SQL Server 2005 Compact Edition サブスクライバをサポートします。SQL Server 2005 Compact Edition サブスクライバのレプリケーションをプログラミングする場合の詳細については、「SQL Server Compact Edition レプリケーションのプログラミング」を参照してください。 |
自動 ID 範囲管理 |
レプリケーションでは、サブスクライバおよびパブリッシャで行が挿入された場合に、ID 列に割り当てる範囲を管理するという高度な作業が行われます。詳細については、「ID 列のレプリケート」を参照してください。 |
Web 同期 (オプション) |
必要に応じて、SSL (Secure Socket Layer) テクノロジを使ってサブスクリプションをインターネット経由で安全に同期できるように、パブリッシャを構成できます。これにより、営業担当者はパブリッシャへの仮想プライベート ネットワーク (VPN) 接続を確立せずにデータを同期できます。詳細については、「マージ レプリケーションの Web 同期」を参照してください。 |
レプリケーションの監視 |
レプリケーションには、前の同期セッションの情報を返す、サブスクライバのシステム ストアド プロシージャが用意されています。 |
参照
概念
その他の技術情報
Sales Orders サンプル (マージ レプリケーション用)