다음을 통해 공유


적절한 Sync Framework 구성 요소 선택

이 항목에서는 일반 동기화 시나리오에 사용할 구성 요소 및 Sync Framework의 고수준 아키텍처에 대해 설명합니다.

Sync Framework 구성 요소

Sync Framework에는 특정 데이터 저장소에 대한 일련의 런타임 동기화 공급자와 공급자 작성용 API가 있습니다. 공급자는 동기화 시스템에서 데이터 원본과 다른 구성 요소 사이에 통신하는 소프트웨어 구성 요소입니다. 공급자가 제공된 데이터 저장소를 동기화할 경우 해당 공급자를 사용하는 것이 좋습니다. 공급자는 확장성을 제공하므로 응용 프로그램에 맞게 조정할 수 있습니다. 공급자가 제공되지 않는 데이터 저장소를 동기화하거나 다른 구현이 필요한 경우에는 사용자 지정 공급자가 적합합니다.

다음 그림에서는 Sync Framework에서 제공하는 모든 구성 요소 사이의 관계를 보여 줍니다.

Sync Framework 구성 요소

그림에 있는 구성 요소는 다음과 같습니다.

  • 데이터베이스 동기화 공급자(이전 릴리스에서는 Sync Services for ADO.NET이라고 함). 이러한 공급자는 Microsoft.Synchronization.dll, Microsoft.Synchronization.Data.dll, Microsoft.Synchronization.Data.Server.dll, Microsoft.Synchronization.Data.SqlServer.dll 및 Microsoft.Synchronization.Data.SqlServerCe.dll에 있으며, 다음 유형의 시나리오를 위해 데이터베이스를 동기화하는 데 사용할 수 있습니다.

    • 공동 작업 시나리오. 예를 들어 사용자에게 프로젝트 메모를 공유하도록 허용하는 응용 프로그램에서 프로젝트 팀 멤버가 사용할 수 있는 데이터의 로컬 복사본을 요구하는 경우가 자주 있습니다. 데이터를 변경한 팀 멤버는 다른 팀 멤버와 동기화하여 변경 내용을 교환하고 중앙 서버와 변경 내용을 동기화할 수도 있습니다.

    • 오프라인 시나리오. 예를 들어 영업 사원은 고객 사무실에서 제품 데이터에 액세스하고 주문을 업로드할 수도 있어야 합니다. 영업 사원은 매일 아침 중앙 서버와 동기화하여 최신 제품 및 가격을 확인하고 저녁에 동기화하여 그 날의 주문을 업로드할 수 있습니다.

    자세한 내용은 데이터베이스 동기화를 참조하십시오. 오프라인 공급자는 원래 Synchronization Services for ADO.NET 1.0의 일부로, Sync Framework 1.0 이전에 릴리스되었습니다. 공동 작업 공급자는 핵심 API 및 런타임을 기반으로 작성되었지만 오프라인 공급자는 그렇지 않습니다. 오프라인 공급자는 다른 형식의 Sync Framework 공급자와 함께 토폴로지에 참가할 수 없습니다.

  • File Synchronization Provider(이전 릴리스에서는 Sync Services for File Systems라고 함). 이 공급자는 FileSyncProvider2.dll 및 Microsoft.Synchronization.Files.dll에 있으며, NTFS, FAT 또는 SMB 파일 시스템에 있는 파일과 폴더를 동기화하는 데 사용할 수 있습니다. 동기화할 디렉터리는 로컬이나 원격일 수 있으며 동일한 파일 시스템에 있지 않아도 됩니다. 응용 프로그램에서는 정적 필터를 통해 파일을 명시적으로 나열하거나 *.txt와 같은 와일드카드 문자를 사용하여 파일을 제외하거나 포함할 수 있습니다. 또는 응용 프로그램에서 전체 하위 폴더를 제외하는 필터를 설정할 수 있습니다. 또한 파일 동기화 진행률 알림을 수신 등록할 수 있습니다. 자세한 내용은 파일 동기화를 참조하십시오.

  • 웹 피드 동기화 구성 요소(이전 릴리스에서는 Sync Services for FeedSync라고 함). 이러한 구성 요소는 FeedSync2.dll 및 Microsoft.Synchronization.dll에 있으며, 다음과 같은 두 가지 방법으로 사용할 수 있습니다.

    • 웹 피드 동기화 공급자 서비스는 FeedSync XML 파일을 해당 복제본으로 나타내는 공급자를 작성하는 데 사용할 수 있습니다. FeedSync에 대한 자세한 내용은 FeedSync 웹 사이트를 참조하십시오.

    • 웹 피드 공급자 및 소비자 구성 요소는 파일 시스템 같은 다른 복제본 형식의 데이터를 RSS 또는 Atom 피드와 동기화하는 데 사용할 수 있습니다.

    자세한 내용은 웹 피드 동기화를 참조하십시오.

  • 사용자 지정 공급자. 이러한 구성 요소는 Synchronization2.dll, Microsoft.Synchronization.dll, SimpleProviders2.dll 및 Microsoft.Synchronization.SimpleProviders.dll에 있으며, 모든 형식의 데이터 저장소에 대한 동기화 공급자를 만드는 데 사용할 수 있습니다. 예를 들어 응용 프로그램에 고객 연락처 추적을 위한 사용자 지정 저장소 시스템이 있으면 단순 공급자 또는 전체 사용자 지정 공급자를 사용하여 데이터를 응용 프로그램에 통합할 수 있습니다. 자세한 내용은 사용자 지정 공급자를 사용하여 데이터 저장소 동기화를 참조하십시오.

  • Metadata Storage Service. 이 구성 요소는 MetaStore2.dll 및 Microsoft.Synchronization.MetadataStorage.dll에 있으며, 사용자 지정 공급자에서 특히 다른 방식으로 메타데이터를 저장할 수 없는 복제본에 대해 동기화 메타데이터를 저장하고 처리하는 간편한 방식으로 사용할 수 있습니다. Metadata Storage Service에서는 메모리와 디스크 공간을 약간 차지하는 신뢰할 수 있는 소형 데이터베이스를 사용하며, 이러한 데이터베이스를 공급자와 함께 재배포할 수 있습니다. API에서는 메타데이터 저장소에 액세스하는 데 사용되는 인터페이스 및 메서드와 저장소를 명확히 분리하므로 공급자를 거의 변경하지 않고도 대체 저장소를 구현하여 사용할 수 있습니다. 자세한 내용은 Sync Framework Metadata Storage Service를 참조하십시오.

  • 핵심 API 및 런타임. 이러한 구성 요소는 Synchronization2.dll 및 Microsoft.Synchronization.dll에 있으며, 오프라인 데이터베이스 공급자를 제외한 모든 구성 요소에서 사용됩니다. 이러한 구성 요소에 대한 자세한 내용은 사용자 지정 공급자를 사용하여 데이터 저장소 동기화를 참조하십시오.

구성 요소를 설치하는 방법에 대한 자세한 내용은 설치, 재배포 및 버전 호환성를 참조하십시오.

Sync Framework에서는 다양한 범위의 응용 프로그램에서 동기화를 사용할 수 있도록 해주는 광범위한 구성 요소 집합을 제공합니다. 이 항목에서는 각 구성 요소에 대한 기본 소개를 제공하여 응용 프로그램에 적합한 구성 요소를 결정할 수 있도록 도와 줍니다. 여러 형식의 데이터 저장소가 포함된 응용 프로그램의 경우에는 우선 다른 공급자의 데이터 통합을 읽어 보십시오.

Sync Framework 아키텍처

Sync Framework에서는 공급자 기반 아키텍처를 사용합니다. 공급자는 다른 동기화 구성 요소의 복잡성 및 데이터 저장소별로 구현해야 하는 번거로움을 줄입니다. 이 아키텍처를 지정된 동기화 메타데이터와 함께 사용하면 Sync Framework에서 공급자가 작성된 모든 형식의 데이터 저장소를 동기화할 수 있습니다. Sync Framework에는 데이터베이스 및 NTFS 파일 시스템과 같은 일반 데이터 저장소에 대한 공급자가 포함되어 있으며 사용자가 다른 형식의 저장소에 대한 공급자를 작성할 수 있습니다. 공급자는 Sync Framework의 주 통합 지점입니다.

다음 그림에서는 Sync Framework의 고수준 아키텍처를 보여 줍니다. 그림과 같이 동기화는 항상 두 복제본 또는 노드 사이에 발생하지만 동기화 커뮤니티 또는 토폴로지는 허브 앤 스포크(hub-and-spoke), 피어 투 피어 등 모든 형태가 될 수 있습니다. 일부 예외가 있지만 각 참가자 쌍은 응용 프로그램 요구 사항에 따라 2 계층 아키텍처 또는 N 계층 아키텍처를 통해 동기화할 수 있습니다. 각 Sync Framework 구성 요소의 설명서에서 적절한 아키텍처 및 보안 고려 사항에 대한 자세한 정보를 제공합니다.

Sync Framework 아키텍처 개요

그림에 있는 요소는 다음과 같은 세 가지 유형입니다.

  • 개발자가 작성한 요소

    • 응용 프로그램에서 동기화 메서드를 호출하고, 이벤트에 응답하고, 응용 프로그램 요구 사항을 기반으로 한 다른 태스크를 처리합니다.

    • 데이터 저장소는 파일 시스템, 관계형 데이터베이스, 플랫 파일 연락처 저장소 또는 동기화해야 하는 다른 데이터 저장소일 수 있습니다.

    • 데이터 전송 프로토콜에서 두 공급자 사이에 데이터 변경 내용이 전송되는 방법을 결정합니다.

  • Sync Framework에서 제공된 요소

    • 네이티브 코드를 사용하는지 또는 관리 코드를 사용하는지에 따라 응용 프로그램이 동기화 세션 또는 동기화 조정자와 통신한 다음 각 동기화 공급자와 통신합니다.

    • 동기화 런타임에서 동기화 프로세스를 실행하고 상태, 충돌 및 오류를 클라이언트 응용 프로그램에 전달합니다.

  • 시나리오에 따라 개발자가 작성하거나 Sync Framework에서 제공된 요소

    • 공급자는 동기화되는 데이터 형식에 따라 다를 수 있습니다. 어떤 경우에는 응용 프로그램에 개발자가 작성한 사용자 지정 공급자가 필요합니다. Sync Framework에서는 이 프로세스를 더욱 간단하게 처리할 수 있는 다양한 API 및 충돌 검색과 같은 가장 어려운 동기화 부분을 지원하는 다양한 구성 요소를 제공합니다.

    • 메타데이터 저장소에는 Sync Framework에서 각 공급자가 선택할 변경 내용을 결정하고 해당 데이터 저장소에 적용하는 데 사용하는 메타데이터가 포함됩니다. 메타데이터 저장 및 작동 방식은 사용되는 공급자에 따라 달라집니다. 예를 들어 데이터베이스용 공급자는 대개 데이터 저장소와 같은 데이터베이스의 추적 테이블에 메타데이터를 저장합니다. 사용자 지정 공급자의 경우 메타데이터 저장소를 만들거나 Sync Framework에 포함된 서비스를 사용할 수 있습니다. 각 Sync Framework 구성 요소의 설명서에서 메타데이터에 대한 자세한 정보를 제공합니다.

참고 항목

개념

Microsoft Sync Framework
Sync Framework 사용의 이점