コラボレーションでの同期の概要
Sync Framework を使用すると、ピア間でのデータ同期が可能になります。各ピアは、中央のハブを経由せずに他の任意のピアと同期できます。ピア ツー ピア同期は、オフライン同期と同様、継続的または高信頼性のネットワーク接続がアプリケーションにない場合に使用できますが、API のこの部分は主に、コラボレーティブなアプリケーションを対象としています。たとえば、ユーザーがプロジェクトの注釈を共有できるアプリケーションでは、プロジェクト チーム メンバーには作業の可能なデータのローカル コピーが必要となることがよくあります。変更を行ったときは、別のチーム メンバーと同期して変更を交換できます。
ADO.NET データ アクセス API をモデルとした Sync Framework データベース同期 API では、直感的にデータを同期する手段が提供されています。Sync Framework を使用し、一貫したネットワーク接続を前提とした単一ユーザー用のアプリケーション構築を論理的に拡張することで、共同環境向けのアプリケーションも構築できます。API のアーキテクチャの詳細については、「コラボレーション同期のアーキテクチャとクラス」を参照してください。
Sync Framework と他のテクノロジの比較
Microsoft には、同期を実行するアプリケーション用に設計された数々のテクノロジが用意されています。ピア ツー ピア同期で最も重要なテクノロジは、ピア ツー ピアのトランザクション レプリケーションです。これは、SQL Server Enterprise の 2 つ以上のデータベースを同期するために使用します。これらの 2 つのテクノロジを比較するのは有用ですが、ピア ツー ピアのトランザクション レプリケーションはスケーラビリティと高い可用性を提供するサーバー対サーバーの同期向けに設計されていることに注意してください。Sync Framework は、コラボレーティブなアプリケーションをサポートするクライアント対サーバーおよびクライアント対クライアントの同期向けに設計されています。
次の表を使用すると、構築するアプリケーションに適切なテクノロジを判断できます。
主な機能 | ピア ツー ピアのトランザクション レプリケーション | Sync Framework |
---|---|---|
サービスを使用して同期する |
× |
○ |
その他の種類のデータ ストアと同期する1 |
× |
○ |
増分変更を追跡する2 |
○ |
○ |
競合検出と解決を行う3 |
○ |
○ |
スキーマとデータを自動的に初期化する |
○ |
× |
大きなデータセットをサポートする |
○ |
○ |
スキーマの変更を自動的に反映する |
○ |
× |
1 データベースは、Web サービス、ファイル システム、カスタム データ ストアなど、Sync Framework でサポートされている他のデータ ソースと情報を交換できます。
2 Sync Framework では差分変更の追跡を使用します。この追跡では、行の最後のバージョンが同期されます。ピア ツー ピアのトランザクション レプリケーションでは、行に対する変更がすべて順番に各ピアに適用されます。
3 レプリケーションでは、組み込みの競合解決が提供されます。それに対して、Sync Framework では、競合解決方法を構築するためのフレームワークが提供されます。
Sync Framework では、オフラインのデータセットなどのプログラミング モデルの柔軟性と、レプリケーションで見られるような豊富な同期機能のセットが提供されます。レプリケーションはデータベース管理者を対象としており、SQL Server データベースを同期するように設計されています。レプリケーションは、ウィザード、ストアド プロシージャ、および独自の API で使用できる構成を重要な機能に提供しています。Sync Framework は開発者を対象としており、他の種類のデータ ストアとの同期、および Windows Communication Foundation (WCF) などのサービスを経由した同期をサポートしています。
アプリケーションによっては、使用するテクノロジを簡単に決定できます。さまざまなトランスポートやサービス経由の同期を有効にするための個別のコンポーネントが必要な場合や、データベース以外のデータ ソースを同期する必要がある場合は、Sync Framework を使用します。データベース管理者が、スケーラビリティおよび高可用性を実現するシステムを設計する場合や、あまりプログラミングを行わずに同期を構成する場合は、レプリケーションの方が適しています。最終的には、アプリケーション要件を慎重に検討して、Sync Framework API が使用するテクノロジとして適切かどうかを判断する必要があります。必要な操作が、データベース間でスキーマとそのデータをレプリケートすることだけにとどまらない場合は、Sync Framework の使用をお勧めします。
Sync Framework のピア ツー ピア ドキュメントの使用
Sync Framework ドキュメントの各トピックでは、Sync Framework データベース同期 API、コード例、および API リファレンスについて説明されています。ピア ツー ピアの同期用 API のリファレンスは、Microsoft.Synchronization、Microsoft.Synchronization.Data、Microsoft.Synchronization.Data.SqlServer、および SqlCeSyncProvider にあります。
詳細については、次の順序でドキュメントを参照することをお勧めします。
「コラボレーション同期のアーキテクチャとクラス」で、API のアーキテクチャと最も重要なクラスについて理解します。
「コラボレーション同期を構成して実行する方法 (SQL Server)」で、基本的なアプリケーションのコードを確認します。
「他の ADO.NET 互換データベースの同期」に記載されているトピックを参照して、SQL Server 以外のデータベースの同期を処理する方法を理解します。
これらのトピックにはサンプル コードが含まれています。これ以外のサンプルは、Sync Framework SDK、およびコード ギャラリーで提供されています。