Sync Framework の概要
Microsoft Sync Framework は、アプリケーション、サービス、およびデバイスのためのコラボレーションとオフライン アクセスを可能にする、包括的な同期プラットフォームです。Sync Framework には、さまざまな場所からのデータ アクセス、データの共有、およびデータのオフライン化を実現する、テクノロジやツールが用意されています。開発者は、Sync Framework を使用することで、あらゆるアプリケーションとあらゆるストアのデータを各種のネットワークを介して任意のプロトコルで統合できる、同期エコシステムを構築できます。たとえば、個人情報管理 (PIM) ソフトウェアでは、Sync Framework を使用することにより、PIM データの更新をすべての参加者に反映できます。ドキュメントなど、各種のデータを共有するビジネス アプリケーションでは、Sync Framework を使用して、すべてのチーム メンバが最新のドキュメントを受け取れるようにし、同時更新による競合が発生した場合には適切に処理されるようにすることが可能です。PC からモバイル デバイス上のメディアを管理するメディア管理ソフトウェアの場合は、Sync Framework を使用することで、デバイスに対して最新のデータを容易に反映できます。
Sync Framework のテクノロジ
Sync Framework は、次のテクノロジで構成されています。
Sync Framework のコア コンポーネント : あらゆる種類のデータ ストアに対応した同期プロバイダを作成できます。
Microsoft Sync Services for ADO.NET : オフライン利用やコラボレーションのシナリオでデータベースを同期します。
Metadata Storage Service : 同期メタデータを軽量のデータ ストアに格納できます。
Sync Services for File Systems : ファイル システム内のファイルやフォルダを同期します。
Sync Services for FeedSync : RSS フィードおよび Atom フィードをローカル ストアのデータと同期できます。
メタデータを使用することの利点
Sync Framework では、必要な情報をすべて含んだメタデータを使用して同期が実行されます。メタデータは小さく効率的であり、Sync Framework には、メタデータに関連したさまざまなタスクを処理するコンポーネントが用意されています。メタデータの使用により、データの種類に依存しない同期が可能となり、自由度、相互運用性、および簡易性をバランスよく取り入れることができます。次の表は、Sync Framework が提供するメタデータの利点とその説明を一覧にしたものです。
利点 | 説明 |
---|---|
簡潔 |
メタデータは、項目ごとのバージョン ベクタを持たず、それでいて、シングル マスタ同期およびマルチ マスタ同期に必要な十分な情報を持つという簡潔さを特長としています。 |
効率的 |
変更の列挙が最小限で済むように配慮されています (ループでも同様)。 |
正確 |
Sync Framework には、正確な競合検出が使用されています。変更が必要以上に検出、送信されたり、逆に必要な変更が検出から漏れたりすることはありません。この点は、非構造化データ (ファイルなど) と構造化データ (詳細な変更追跡など) の両方に当てはまります。 |
柔軟 |
ユーザーは、任意のストアと任意の手法を使ってメタデータを保存できます。独自のプロトコルに動詞を追加したり、独自の手法を使って同期処理を最適化したりできます。 |
相互運用性 |
メタデータには高い相互運用性が確保されています。したがって、任意のトポロジをサポートすることが可能です。 |
簡単 |
Sync Framework には、標準のツールキットが用意されています。マルチ マスタ同期に伴う複雑な処理を容易に扱うことができます。このツールキットをカスタマイズして、ユーザーが変更を加えることができるようにすることで、より高いパフォーマンスを実現できます。 |
便利 |
必要なメタデータの多くは、Sync Framework によって管理されます。たとえば、アプリケーションではタイムスタンプだけを処理し、バージョン、ナレッジ、およびメタデータ ストレージに関しては Sync Framework に処理させることが可能です。削除については、Sync Framework がリストに基づいて計算するため、アプリケーションで追跡する必要はありません。同様に、変更も Sync Framework がハッシュに基づいて計算するため、アプリケーションで追跡する必要はありません。また、必要であれば、Sync Framework が備えている、レガシ ストアの完全マルチ マスタ機能を利用できます。 |
全体的なアーキテクチャ
Sync Framework のアーキテクチャでは、データ ストア、転送メカニズム、およびスキーマを一連のビルド ブロックに抽象化することによって、データが任意の数のデバイス、サービス、およびアプリケーションのレプリカに行き渡るようになっています。Sync Framework のビルド ブロックは、ランタイム、メタデータ サービス、およびプロバイダで構成されます。ランタイムは、複数のプロバイダ間で同期を実行します。メタデータ サービスは、プロバイダがメタデータを処理したり保存したりするために使用します。
次の図に、Sync Framework の全体的なアーキテクチャを示します。データ ストアから同期セッション オブジェクトにプロバイダ インターフェイスを公開することによって同期が実現されている点に注目してください。たとえば、アドレス帳のデータ ストアとデバイスのデータ ストアの Public Contacts を同期させる必要があるとします。同期セッションは、2 つのプロバイダに接続し、API 呼び出しを行い、メタデータ サービスを使って、変更されたデータと適用する必要のあるデータを特定します。
アーキテクチャの概要
ランタイム
ランタイムは、同期セッションの開始、ホスト、およびキャンセルといった操作を通じて同期を実行します。ステータス、競合、エラーなどの情報をクライアント アプリケーションに伝えることもランタイムの役割です。ランタイムは、同期セッション オブジェクトを通じてプロバイダに要求を送ることにより、クライアント アプリケーションに代わって同期を実行します。ランタイムには、マネージ インターフェイスからでも、アンマネージ インターフェイスからでもアクセスできます。詳細については、「同期アプリケーション」を参照してください。
メタデータ サービス
メタデータ サービスは、アプリケーションで同期メタデータの処理時に利用できるコンポーネントです。アプリケーションもプロバイダも、内部的な処理やメタデータの詳細 (ナレッジの構造など) を意識する必要はありません。このサービスは、同期メタデータを格納するための論理的な場所を持たないアプリケーションのために、オプションのメタデータ ストレージ コンポーネントである Metadata Storage Service も提供します。Metadata Storage Service は、軽量のデータ ストアを使用し、クライアント プロセスで実行されます。メタデータ サービスには、マネージ インターフェイスからでも、アンマネージ インターフェイスからでもアクセスできます。詳細については、「メタデータの管理」を参照してください。
プロバイダ
プロバイダには、そのデータ ストアの複雑さをランタイムが意識しなくても済むように、インターフェイス層が使用されています。プロバイダは、Sync Framework との主要な統合ポイントです。プロバイダを実装することは、カスタム データの同期に必要な最も重要な開発作業の 1 つです。プロバイダでは、マネージ バージョンまたはアンマネージ バージョンのインターフェイスを実装できます。詳細については、「同期プロバイダ」を参照してください。
参照
リファレンス
概念
Sync Framework のアンマネージ参照
同期アプリケーション
メタデータの管理
同期プロバイダ