マージ レプリケーションの 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 同期用の IIS の構成」、および「Web 同期用の IIS 7 の構成」を参照してください。
注 |
---|
Web 同期は、ポータブル コンピューター、ハンドヘルド デバイスなどのクライアントでデータを同期することを目的に設計されています。 Web 同期は、サーバー間のアプリケーションでの大量のデータ同期には適していません。 |
Web 同期の動作の概要
Web 同期を使用すると、サブスクライバーでの更新はパッケージ化され、HTTPS プロトコルを使用して XML メッセージとして IIS を実行しているコンピューターに送信されます。 次に IIS を実行しているコンピューターは、バイナリ形式でパブリッシャーにコマンドを送信します (通常は TCP/IP を使用します)。 パブリッシャーでの更新は、IIS を実行しているコンピューターに送信され、XML メッセージとしてパッケージ化されてサブスクライバーに配信されます。
次の図は、マージ レプリケーションの Web 同期に関係するコンポーネントを示しています。
Web 同期は、プル サブスクリプションだけのオプションなので、サブスクライバー上では必ずマージ エージェントが動作します。 標準のマージ エージェント、マージ エージェントの ActiveX コントロール、またはレプリケーション管理オブジェクト (RMO) によって同期機能を提供するアプリケーションのいずれかを使用できます。 IIS を実行しているコンピューターの場所を指定するには、マージ エージェントの –InternetUrl パラメーターを使用します。
SQL Server レプリケーション リスナー (Replisapi.dll) は、IIS を実行しているコンピューター上で構成され、パブリッシャーとサブスクライバーからサーバーに送信されたメッセージを処理します。 トポロジの各ノードは、マージ レプリケーション競合回避モジュール (Replrec.dll) を使用して XML データ ストリームを処理します。
Web 同期に参加するすべてのコンピューターに、SQL Server 2005 以降が必要です。
同期プロセス
同期中の手順は次のとおりです。
マージ エージェントがサブスクライバーで開始されます。 このエージェントでは、次のことを行います。
サブスクリプション データベースに SQL 接続を行います。
データベースからすべての変更を抽出します。
IIS を実行しているコンピューターに HTTPS 要求を行います。
データの変更を XML メッセージとしてアップロードします。
IIS を実行しているコンピューター上でホストされる、SQL Server レプリケーション リスナーおよびマージ レプリケーション競合回避モジュールでは、次のことを行います。
HTTPS 要求に応答します。
パブリケーション データベースに SQL 接続を行います。
アップロードされた変更をパブリケーション データベースに適用します。
サブスクライバー用にダウンロードされた変更を抽出します。
HTTPS 応答をマージ エージェントに返送します。
その後、サブスクライバーのマージ エージェントは HTTPS 応答を受け取り、サブスクリプション データベースに変更のダウンロードを適用します。