同期アプリケーションの実装

同期アプリケーションは、同期セッションを作成して、2 つの同期プロバイダーに接続し、そのセッションを使って同期を開始するソフトウェア コンポーネントです。同期中には Sync Framework をホストします。また、同期アプリケーションで、Sync Framework から報告されたイベントを処理することもできます。

注意

Sync Framework は、アプリケーションからプロバイダーを取得したり、インスタンス化したりする方法まではカバーしていません。プロバイダーが同期を要求しているかどうか、また、どのプロバイダーと同期しようとしているかの判別方法についても同様です。

同期アプリケーションの実装

同期アプリケーションは、マネージ コードまたはアンマネージ コードを使って実装できます。

Security noteセキュリティメモ :

Sync Framework では、同期プロバイダーを信頼されたコードと見なします。そのため、同期プロバイダーを呼び出すアプリケーションでは、プロバイダーの明示的なナレッジを含めるか、デジタル署名などの他のメカニズムを使用して、プロバイダーの信頼を確立する必要があります。

マネージ コードを使用した同期アプリケーションの実装

アプリケーションで同期セッションを作成して開始するには、次の手順に従います。

  1. SyncOrchestrator オブジェクトを作成します。

  2. オーケストレータの LocalProvider プロパティおよび RemoteProvider プロパティを設定します。

  3. オーケストレータの Direction プロパティを適切な同期方向に設定します。同期方向を Upload に設定した場合、LocalProvider オブジェクトが同期元に、RemoteProvider オブジェクトが同期先になります。同期方向を Download に設定した場合、LocalProvider オブジェクトが同期先に、RemoteProvider オブジェクトが同期元になります。双方向同期は、DownloadAndUpload または UploadAndDownload を使用して実行できます。

  4. オーケストレータの Synchronize メソッドを呼び出します。これにより、その後のすべての同期タスクを処理するためのセッションが作成され、アプリケーションで利用できるようになります。アプリケーションで同期を取り消すには、Cancel メソッドを呼び出します。

アンマネージ コードを使用した同期アプリケーションの実装

アプリケーションで同期セッション オブジェクトを作成して開始するには、次の手順に従います。

  1. IApplicationSyncServices オブジェクトを作成します。これは、CoCreateInstance を呼び出すことによって行います。CLSID と IID には、それぞれ CLSID_SyncServicesIID_IApplicationSyncServices を渡します。

  2. ISyncSession オブジェクトを作成します。これは、IApplicationSyncServices::CreateSyncSession メソッドを呼び出すことによって行います。このメソッドには、2 つのプロバイダー (同期先プロバイダーと同期元プロバイダー) を渡します。

  3. ISyncSession::Start メソッドを呼び出します。その後のすべての同期タスクは、Sync Framework によって処理されます。アプリケーションで同期を取り消す必要がある場合は、ISyncSession::Cancel メソッドを呼び出します。

  4. 同期が完了した後、別のセッション オブジェクトを作成して、同期元と同期先のプロバイダーを逆にし、新しいセッション オブジェクトの ISyncSession::Start を呼び出すことにより、双方向同期を実現できます。

同期アプリケーションの作成方法の詳細については、「アンマネージ同期アプリケーションを作成する方法」を参照してください。

同期イベント

アプリケーションでは、同期中に発生したさまざまなイベントについての通知を受けることができます。イベント処理の主な目的は、進行状況を追跡することと、カスタムの競合処理を実装することの 2 つです。

マネージ コード : イベント ハンドラー メソッドを実装し、そのメソッドを SyncOrchestrator オブジェクトまたは SyncCallbacks オブジェクトに登録します。

アンマネージ コード : ISyncSession::RegisterCallback メソッドを使用して、ISyncCallback インターフェイスを実装するオブジェクトを登録します。

詳細については、「同期イベントへの応答」を参照してください。

参照

リファレンス

IApplicationSyncServices インターフェイス
ISyncSession インターフェイス
ISyncCallback インターフェイス
SyncOrchestrator
SyncCallbacks

概念

Microsoft Sync Framework
カスタム プロバイダーの基礎
同期イベントへの応答