マージ レプリケーションの Web 同期

マージ レプリケーションの Web 同期を利用すると、HTTPS プロトコルを使用したデータのレプリケートが可能になり、以下のようなシナリオで役立ちます。

  • モバイル ユーザーからのデータをインターネット上で同期します。

  • Microsoft SQL Server データベース間で、企業のファイアウォールを経由してデータを同期します。

たとえば、移動中の営業担当者は Web 同期を使用することができます。Adventure Works Cycles の営業担当者は、担当地域内の多数の店舗や納入業者を回ります。長い移動の際にはホテルに滞在するため、一日の終わりに販売データをアップロードしたり、製品の更新をダウンロードするための便利な方法が必要になります。

Adventure Works の IT 部門は、SQL Server で各ポータブル コンピュータを構成し、マージ レプリケーションで Web 同期を使用できるようにしました。各ポータブル コンピュータのマージ エージェントでは、Microsoft インターネット インフォメーション サービス (IIS) を実行しているコンピュータにインストールされたレプリケーション コンポーネントを指すインターネットの URL を保持しています。これらのコンポーネントにより、パブリッシャとサブスクライバが同期されます。これで各担当者は、リモート ダイアルアップ接続を行わなくても、任意のインターネット接続経由で必要なデータのアップロードやダウンロードが行えるようになります。インターネット接続では SSL (Secure Sockets Layer) を使用するため、仮想プライベート ネットワーク (VPN) は必要ありません。

Web 同期で必要なコンポーネントの構成方法については、「Web 同期の構成」を参照してください。

注意

Web 同期は、ポータブル コンピュータ、ハンドヘルド デバイスなどのクライアントでデータを同期することを目的に設計されています。Web 同期は、サーバー間のアプリケーションでの大量のデータ同期には適していません。

Web 同期の動作の概要

Web 同期を使用すると、サブスクライバでの更新はパッケージ化され、HTTPS プロトコルを使用して XML メッセージとして IIS を実行しているコンピュータに送信されます。次に IIS を実行しているコンピュータは、バイナリ形式でパブリッシャにコマンドを送信します (通常は TCP/IP を使用します)。パブリッシャでの更新は、IIS を実行しているコンピュータに送信され、XML メッセージとしてパッケージ化されてサブスクライバに配信されます。

次の図は、マージ レプリケーションの Web 同期に関係するコンポーネントを示しています。

Web 同期コンポーネントとデータ フロー

Web 同期は、プル サブスクリプションだけのオプションなので、サブスクライバ上では必ずマージ エージェントが動作します。標準のマージ エージェント、マージ エージェントの ActiveX コントロール、またはレプリケーション管理オブジェクト (RMO) によって同期機能を提供するアプリケーションのいずれかを使用できます。IIS を実行しているコンピュータの場所を指定するには、マージ エージェントの –InternetUrl パラメータを使用します。

SQL Server レプリケーション リスナ (Replisapi.dll) は、IIS を実行しているコンピュータ上で構成され、パブリッシャとサブスクライバからサーバーに送信されたメッセージを処理します。トポロジの各ノードは、マージ レプリケーション競合回避モジュール (Replrec.dll) を使用して XML データ ストリームを処理します。

Web 同期に参加するすべてのコンピュータに、SQL Server 2005 以降が必要です。

同期プロセス

同期中の手順は次のとおりです。

  1. マージ エージェントがサブスクライバで開始されます。このエージェントでは、次のことを行います。

    1. サブスクリプション データベースに SQL 接続を行います。

    2. データベースからすべての変更を抽出します。

    3. IIS を実行しているコンピュータに HTTPS 要求を行います。

    4. データの変更を XML メッセージとしてアップロードします。

  2. IIS を実行しているコンピュータ上でホストされる、SQL Server レプリケーション リスナおよびマージ レプリケーション競合回避モジュールでは、次のことを行います。

    1. HTTPS 要求に応答します。

    2. パブリケーション データベースに SQL 接続を行います。

    3. アップロードされた変更をパブリケーション データベースに適用します。

    4. サブスクライバ用にダウンロードされた変更を抽出します。

    5. HTTPS 応答をマージ エージェントに返送します。

  3. その後、サブスクライバのマージ エージェントは HTTPS 応答を受け取り、サブスクリプション データベースに変更のダウンロードを適用します。