표준 사용자 지정 공급자 구현
Microsoft Sync Framework에서 동기화 공급자는 복제본의 데이터를 다른 복제본과 동기화하는 데 사용할 수 있는 소프트웨어 구성 요소입니다. 동기화 응용 프로그램에서는 동기화 세션을 통해 대상 공급자와 원본 공급자를 연결하여 원본 복제본에서 변경된 항목을 대상 복제본에 동기화합니다. 동기화 공급자의 간단한 예로는 파일 시스템의 폴더를 관리하는 동기화 공급자가 있습니다. 마찬가지로 폴더를 관리하는 다른 공급자와 이 공급자를 연결하면 해당 폴더의 파일을 다른 공급자의 폴더에 있는 파일과 동기화할 수 있습니다.
동기화 도중 대상 공급자는 현재 정보를 제공하고 원본에서 변경 내용 목록을 받으며 해당 목록과 자체 항목 간의 충돌을 검색하고 항목 목록을 필터링할 수 있으며 데이터 저장소에 변경 내용을 적용합니다. 원본 공급자는 대상 복제본의 현재 정보를 사용하여 원본 복제본에 있는 변경 내용 중 대상 복제본에서 알지 못하는 변경 내용을 확인하고 변경 내용 목록을 필터링할 수 있으며 변경 내용 목록을 대상 공급자로 보냅니다. Sync Framework에서는 공급자를 대신하여 이러한 태스크를 처리하는 구성 요소를 제공합니다.
동기화 공급자 구현
관리 코드 또는 비관리 코드를 사용하여 동기화 공급자를 구현할 수 있습니다.
보안 참고 |
---|
Sync Framework에서는 동기화 공급자를 신뢰할 수 있는 코드로 취급합니다. 따라서 동기화 공급자를 호출하는 응용 프로그램은 공급자에 대한 명시적 지식을 보유하거나 디지털 서명과 같은 다른 메커니즘을 사용하여 공급자에 대한 신뢰를 설정해야 합니다. |
관리 코드를 사용하여 동기화 공급자 구현
공급자를 개발할 때 주된 태스크는 SyncProvider 추상 클래스를 상속하는 KnowledgeSyncProvider 추상 클래스와 IChangeDataRetriever 및 INotifyingChangeApplierTarget 인터페이스를 구현하는 것입니다.
동기화를 시작하기 전에 공급자는 동기화 응용 프로그램에 필요한 메커니즘을 사용하여 자신의 SyncProvider 구현을 해당 응용 프로그램에 제공해야 합니다.
일반적인 동기화 도중 Sync Framework에서는 기본적으로 다음을 호출합니다.
두 공급자에 대해 BeginSession을 호출합니다. 이를 통해 동기화 세션에 참가하고 있음을 공급자에 알립니다.
대상 공급자에 대해 GetSyncBatchParameters를 호출합니다. 대상 공급자는 정보 및 요청된 일괄 처리 크기를 반환합니다.
원본 공급자에 대해 GetChangeBatch를 호출하고 대상 공급자의 정보를 전달합니다. 원본 공급자는 대상 공급자의 정보를 사용하여 변경 내용을 검색하고 일괄 변경 내용을 반환합니다. 자세한 내용은 변경 내용 열거를 참조하십시오.
대상 공급자에 대해 ProcessChangeBatch를 호출하고 원본 공급자의 변경 내용 목록을 전달합니다. 대상 공급자는 Sync Framework 변경 내용 적용자 구성 요소를 사용하여 충돌을 검색하고 변경 내용을 적용합니다. 자세한 내용은 충돌 처리 및 변경 내용 적용을 참조하십시오.
일괄 변경 내용의 변경 내용마다 원본 공급자에 대해 LoadChangeData를 호출합니다. 원본 공급자는 자신의 데이터 전송 메커니즘에 대한 인터페이스를 반환합니다.
일괄 변경 내용의 변경 내용마다 대상 공급자에 대해 SaveItemChange를 호출합니다. 대상 공급자는 원본의 전송 메커니즘을 사용하여 변경 내용과 관련된 데이터를 전송합니다.
대상 공급자에 대해 StoreKnowledgeForScope를 호출합니다. 대상 공급자는 전달된 정보를 현재 정보로 저장합니다.
두 공급자에 대해 EndSession을 호출합니다. 이를 통해 이전에 참가한 동기화 세션에서 벗어나고 있음을 공급자에 알립니다.
동기화 공급자를 만드는 방법에 대한 자세한 내용은 방법: 관리되는 동기화 공급자 만들기를 참조하십시오.
비관리 코드를 사용하여 동기화 공급자 구현
공급자를 개발할 때 주된 태스크는 IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever 및 ISynchronousNotifyingChangeApplierTarget 인터페이스를 구현하는 것입니다. 이러한 인터페이스 중 일부에는 비동기 버전도 있습니다. 자세한 내용은 IAsynchronousDataRetriever 인터페이스 및 IAsynchronousNotifyingChangeApplierTarget 인터페이스를 참조하십시오.
동기화를 시작하기 전에 공급자는 동기화 응용 프로그램에 필요한 메커니즘을 사용하여 자신의 ISyncProvider 구현을 해당 응용 프로그램에 제공해야 합니다.
일반적인 동기화 도중 Sync Framework에서는 기본적으로 다음을 호출합니다.
두 공급자에 대해 BeginSession을 호출합니다. 이를 통해 동기화 세션에 참가하고 있음을 공급자에 알립니다.
대상 공급자에 대해 GetSyncBatchParameters를 호출합니다. 대상 공급자는 정보 및 요청된 일괄 처리 크기를 반환합니다.
원본 공급자에 대해 GetChangeBatch를 호출하고 대상 공급자의 정보를 전달합니다. 원본 공급자는 대상 공급자의 정보를 사용하여 변경 내용을 검색하고 일괄 변경 내용을 반환합니다. 자세한 내용은 변경 내용 열거를 참조하십시오.
대상 공급자에 대해 ProcessChangeBatch를 호출하고 원본 공급자의 변경 내용 목록을 전달합니다. 대상 공급자는 Sync Framework 변경 내용 적용자 구성 요소를 사용하여 충돌을 검색하고 변경 내용을 적용합니다. 자세한 내용은 충돌 처리 및 변경 내용 적용을 참조하십시오.
일괄 변경 내용의 변경 내용마다 원본 공급자에 대해 LoadChangeData를 호출합니다. 원본 공급자는 자신의 데이터 전송 메커니즘에 대한 인터페이스를 반환합니다.
일괄 변경 내용의 변경 내용마다 대상 공급자에 대해 SaveChange를 호출합니다. 대상 공급자는 원본의 전송 메커니즘을 사용하여 변경 내용과 관련된 데이터를 전송합니다.
대상 공급자에 대해 SaveKnowledge를 호출합니다. 대상 공급자는 전달된 정보를 현재 정보로 저장합니다.
두 공급자에 대해 EndSession을 호출합니다. 이를 통해 이전에 참가한 동기화 세션에서 벗어나고 있음을 공급자에 알립니다.
동기화 공급자를 만드는 방법에 대한 자세한 내용은 방법: 관리되지 않는 동기화 공급자 만들기를 참조하십시오.
참고 항목
참조
IKnowledgeSyncProvider 인터페이스
ISynchronousDataRetriever 인터페이스
ISyncProvider 인터페이스
ISynchronousNotifyingChangeApplierTarget 인터페이스
KnowledgeSyncProvider
SyncProvider
IChangeDataRetriever
INotifyingChangeApplierTarget
개념
Microsoft Sync Framework
방법: 관리되지 않는 동기화 공급자 만들기
변경 내용 열거
충돌 처리
변경 내용 적용
변경 단위 동기화
동기화 진행률 보고
동기화 데이터 필터링
동시 동기화 태스크 지원
표준 사용자 지정 공급자 디자인을 위한 고려 사항
FeedSync 피드와 상호 운용
오래된 복제본 복구