Microsoft Sync Framework

Microsoft Sync Framework는 응용 프로그램, 서비스 및 장치에 대한 공동 작업과 오프라인 액세스를 가능하게 하는 광범위한 동기화 플랫폼입니다. 이 플랫폼은 데이터의 오프라인 전환과 로밍 및 공유를 지원하는 기술과 도구를 제공합니다. 개발자는 Sync Framework를 사용하여 임의의 네트워크에서 프로토콜을 사용하는 저장소의 모든 데이터와 임의의 응용 프로그램을 자유롭게 통합하는 동기화 에코시스템을 구축할 수 있습니다.

Sync Framework는 다음 기술로 구성되며, 이 중 처음 3가지는 SQL Server 2008에서 설치할 수 있습니다.

  • Sync Services for ADO.NET은 오프라인 및 공동 작업 시나리오를 위해 데이터베이스를 동기화하는 데 사용할 수 있습니다.

  • Sync Framework 핵심 구성 요소는 Sync Services for ADO.NET에서 데이터베이스를 동기화하는 데 사용할 수 있으며 다른 유형의 데이터 저장소에 대한 동기화 공급자를 만드는 데 사용할 수도 있습니다.

  • Sync Services for FeedSync는 로컬 저장소의 데이터와 RSS 및 Atom 피드를 동기화하는 데 사용할 수 있습니다.

  • Sync Services for File Systems는 파일 시스템의 파일 및 폴더를 동기화하는 데 사용할 수 있습니다.

  • Metadata Storage Service는 SQL Server Compact 3.5에 동기화 메타데이터를 저장하는 데 사용할 수 있습니다.

이 항목의 나머지 부분에는 Sync Services for ADO.NET에 대한 개요 및 다른 Microsoft 기술과의 비교가 포함되어 있습니다. Sync Services for ADO.NET 및 Sync Framework에 대한 전체 설명은 Microsoft Sync Framework 개발자 센터를 참조하십시오.

Microsoft Sync Framework 및 Sync Services for ADO.NET 설치

Sync Framework는 SQL Server 2008 설치 마법사 또는 명령줄 설치 옵션을 사용하여 설치할 수 있습니다. 마법사를 사용하여 Sync Framework를 설치하려면 기능 선택 페이지에서 Microsoft Sync Framework를 선택합니다. SQL Server 및 관련 구성 요소를 설치하는 방법은 SQL Server 설치 개요를 참조하십시오.

개요 및 동기화 시나리오

모바일 작업자 및 원격 작업자를 지원하는 기능이 조직에 미치는 영향은 나날이 커지고 있습니다. 조직에서는 이러한 작업자가 사무실에 있을 때와 동일한 정보에 액세스할 수 있도록 하는 것이 매우 중요합니다. 대부분의 경우 이러한 사용자는 랩톱, 사무실용 데스크톱, 스마트폰 또는 PDA를 가지고 있습니다. 많은 경우 사용자는 이러한 장치에서 VPN 연결을 사용하거나 회사 네트워크에 직접 연결하는 다른 방법을 사용하여 데이터에 직접 액세스할 수 있습니다. 그러나 이 솔루션은 다음과 같은 부분에서 중요한 단점이 있기 때문에 대부분의 원격 사용자에게 만족스럽지 못합니다.

  • 네트워크 요구 사항

    사용자가 정보에 액세스할 수 있게 하려면 데이터에 액세스하는 동안 원격 장치가 회사 네트워크에 지속적으로 연결되어 있어야 합니다. 재택 근무자와 같은 일부 작업자의 경우 이러한 요구 사항은 별 문제가 되지 않습니다. 그러나 계속 이동해야 하는 판매 직원의 경우 이러한 요구 사항을 충족하기가 더 어렵습니다. 예를 들어 고객을 방문 중인 판매 직원이 네트워크에 연결하지 못해 재고 데이터에 액세스할 수 없다면 이 판매 직원은 업무를 효과적으로 수행할 수 없습니다.

  • 데이터 액세스 속도

    일반적인 클라이언트/서버 회사 환경에서 사용자는 고속 네트워크를 통해 정보에 신속하게 액세스할 수 있습니다. 그러나 원격 작업자의 경우 일반적으로 느리고 불안정한 유선 또는 무선 네트워크를 통해 연결됩니다. 일반 솔루션을 사용할 경우 장치에 데이터를 유지할 방법이 없으므로 사용자가 원하는 모든 데이터를 필요로 할 때마다 다운로드해야 합니다. 예를 들어 판매 직원이 응용 프로그램을 열 때마다 제품 목록을 다운로드해야 한다면 응용 프로그램에 정보를 채우는 동안 기다려야 하므로 불편을 느낄 것입니다.

  • 단일 지점에서 실패

    이러한 종류의 솔루션에서는 모든 사용자가 단일 서버에 의존합니다. 계획된 서버 작동 중단 또는 서버 오류로 인해 데이터베이스를 사용할 수 없게 되면 모든 원격 작업자가 데이터에 연결할 수 없게 됩니다.

  • 서버 확장성

    원격 작업자의 수가 늘어남에 따라 회사 서버의 성능이 영향을 받으므로 하드웨어를 더 추가해야 하는 경우가 발생합니다.

간헐적으로 연결되는 응용 프로그램

이전 섹션에서 설명한 솔루션을 대체할 수 있는 한 가지 방법은 간헐적으로 연결되는 응용 프로그램을 구현하는 것입니다. 간헐적으로 연결되는 응용 프로그램을 사용하면 원격 작업자가 데이터에 계속 액세스할 수 있습니다. 그러나 원하는 정보를 얻기 위해 사용자가 회사 데이터베이스에 직접 액세스해야 하는 앞의 시나리오와 달리 여기에서는 원하는 정보가 장치에 로컬로 저장됩니다. 간헐적으로 연결되는 응용 프로그램은 로컬 데이터베이스를 채우기 위해 일반적으로 데이터 동기화를 사용합니다.

데이터 동기화는 클라이언트 데이터베이스(예: SQL Server Compact 3.5)에 저장된 정보를 주기적으로 가져오는 기능과 서버 데이터베이스(예: SQL Server)를 사용하여 변경 내용을 동기화하는 기능으로 구성됩니다. 동기화 기반 솔루션은 사용자가 더 이상 정보에 액세스하기 위해 네트워크에 지속적으로 연결되어 있지 않아도 된다는 장점을 제공합니다. 데이터가 로컬에 저장되므로 사용자는 데이터에 계속 액세스할 수 있고 중앙 데이터베이스의 처리 부담이 경감됩니다. 또한 네트워크 속도가 더 이상 작업을 제한하는 요소가 되지 않으므로 사용자는 장치 자체의 속도로 데이터에 액세스할 수 있습니다.

Sync Services for ADO.NET

Sync Services for ADO.NET을 사용하면 데이터베이스 간 동기화가 가능합니다. 이 기술은 오프라인 및 공동 작업 시나리오를 대상으로 하는 응용 프로그램을 구축할 수 있게 해주는 직관적이고 유연한 API를 제공합니다. Sync Services for ADO.NET을 사용하면 두 피어(예: 두 SQL Server 데이터베이스 또는 SQL Server Compact 3.5 클라이언트 데이터베이스와 ADO.NET 공급자를 사용할 수 있는 다른 서버 데이터베이스) 간에 동기화를 수행할 수 있습니다. API를 통해 응용 프로그램의 아키텍처 및 요구 사항에 따라 제공된 구성 요소 전체 또는 일부만 사용할 수 있습니다.

다음 그림에서는 데이터(녹색 데이터베이스로 표시)가 원격 작업자의 장치에 로컬로 유지되는, 간헐적으로 연결되는 응용 프로그램의 예를 보여 줍니다. 첫 번째 예는 정보가 사용자 장치에 직접 저장되는 독립 실행형 데이터베이스 시스템을 보여 줍니다. 두 번째 예는 정보가 원격 사무실 내의 작업 그룹 데이터베이스에 저장되어 여러 로컬 작업자가 데이터에 액세스할 수 있는 원격 사무실을 보여 줍니다.

Sync Services 오프라인 시나리오

이러한 유형의 간헐적으로 연결되는 응용 프로그램이 일반적으로 확장된 기능은 공동 작업 시나리오를 지원하는 기능입니다. 이러한 시나리오는 두 데이터베이스가 중앙 허브를 거칠 필요 없이 피어 투 피어로 동기화될 수 있는 시나리오입니다. 다음 그림에서 볼 수 있듯이 원격 데이터베이스는 다른 데이터베이스와 자유롭게 정보를 교환할 수 있습니다. 이러한 유형의 솔루션은 현장 재무 감사 담당자와 같은 원격 작업자가 원격 위치에서 그룹으로 작업할 때 유용합니다. 이러한 작업자는 서로 정보를 공유해야 하는 경우가 많습니다. 그러나 이러한 작업자는 중앙 데이터베이스에 연결하지 않으므로 피어 투 피어 형식의 네트워크를 통해 정보를 공유해야 합니다.

Sync Services 공동 작업 시나리오

SQL Server에서 Sync Services for ADO.NET 사용

Sync Services for ADO.NET은 다음과 같은 방법으로 데이터베이스를 지원합니다.

  • 오프라인 시나리오에서 클라이언트 데이터베이스는 SQL Server Compact 3.5 버전 3.5 이상이어야 합니다. 서버는 ADO.NET 공급자를 사용할 수 있다면 어떠한 데이터베이스라도 됩니다.

  • 공동 작업 시나리오에서 각 피어 데이터베이스는 SQL Server 2000 서비스 팩 4 이상 버전이어야 합니다.

SQL Server는 동기화가 필요한 응용 프로그램을 위한 견고한 토대를 제공하는 엔터프라이즈급 데이터베이스입니다. SQL Server 2008은 동기화 개발자에게 가장 유용한 기능 중 하나인 변경 내용 추적을 제공합니다. Sync Services for ADO.NET은 변경 내용을 동기화하기 위한 API를 제공하지만 서버 또는 피어 데이터베이스에서 실제로 변경 내용을 추적하지는 않습니다. ((SQL Server Compact 3.5는 클라이언트 데이터베이스의 변경 내용을 추적하지 않습니다.) 사용자 지정 변경 내용 추적 시스템을 만들 수 있지만 일반적으로 이러한 시스템으로 인해 작업이 상당히 복잡해지며 성능 오버헤드가 발생합니다. SQL Server 2008에서 변경 내용 추적은 구성하기 쉽고 고성능 추적을 제공하므로 사용하는 것이 좋습니다. 자세한 내용은 데이터 변경 내용 추적을 참조하십시오.

Sync Services for ADO.NET과 다른 기술 비교

Microsoft는 동기화를 수행하는 응용 프로그램을 위해 설계된 여러 가지 기술을 제공합니다. 따라서 Sync Services for ADO.NET과 오프라인 및 공동 작업 시나리오에서 사용되는 다른 기술을 비교하면 유용한 정보를 얻을 수 있습니다.

오프라인 동기화

오프라인 동기화에 대한 가장 중요한 Microsoft 기술은 다음과 같습니다.

  • RDA(원격 데이터 액세스). 이 기술은 SQL Server Compact 3.5 데이터베이스와 다른 SQL Server 버전의 데이터베이스를 동기화하는 데 사용됩니다. 자세한 내용은 SQL Server Compact 3.5 온라인 설명서를 참조하십시오.

  • 병합 복제. 이 기술은 다양한 버전의 SQL Server를 동기화하는 데 사용되며 SQL Server Compact 3.5를 포함하고 있습니다. 자세한 내용은 병합 복제 개요적합한 복제 유형 선택을 참조하십시오.

다음 표를 사용하여 구축하려는 응용 프로그램에 적합한 기술을 확인할 수 있습니다.

주요 기능

RDA

병합 복제

Sync Services

n 계층 또는 서비스 지향 아키텍처를 사용한 동기화

아니요

아니요

다른 유형의 데이터베이스 지원

아니요

아니요

증분 변경 내용 추적

아니요1

충돌 검색 및 해결

아니요

예2

클라이언트에서 손쉽게 데이터 뷰 생성

아니요

아니요

스키마와 데이터를 자동으로 초기화

큰 데이터 집합 지원

쿼리 프로세서를 로컬에서 사용 가능

스키마 변경 내용을 자동으로 전파

아니요

아니요

자동 데이터 재분할

아니요

아니요

장치에서 사용

1 RDA는 증분 업로드를 지원하지만 다운로드는 항상 클라이언트의 모든 데이터를 업데이트하는 스냅숏입니다.

2 병합 복제는 기본 제공 충돌 해결을 제공하지만 Sync Services for ADO.NET은 충돌 해결 체계를 구축하기 위한 프레임워크를 제공합니다.

공동 작업 동기화

공동 작업 동기화 측면에서 비교할 가장 중요한 기술은 두 개 이상의 SQL Server Enterprise 데이터베이스를 동기화하는 데 사용되는 피어 투 피어 트랜잭션 복제입니다. Sync Services for ADO.NET 및 트랜잭션 복제는 모두 피어 투 피어 동기화를 지원합니다. 트랜잭션 복제는 고가용성을 유지하고 여러 서버에 걸쳐 읽기 작업을 확장하는 데 가장 적합하며 Sync Services for ADO.NET은 사용자들이 동일한 데이터를 사용하여 공동으로 작업하는 응용 프로그램에 가장 적합합니다.

다음 표는 구축하려는 응용 프로그램에 적합한 기술을 확인하는 데 도움이 됩니다. 피어 투 피어 트랜잭션 복제에 대한 자세한 내용은 피어 투 피어 트랜잭션 복제를 참조하십시오.

주요 기능

피어 투 피어 트랜잭션 복제

Sync Services

n 계층 또는 서비스 지향 아키텍처를 사용한 동기화

아니요

다른 유형의 데이터베이스 지원

아니요

증분 변경 내용 추적1

충돌 검색 및 해결2

스키마와 데이터를 자동으로 초기화

큰 데이터 집합 지원

쿼리 프로세서를 로컬에서 사용 가능

스키마 변경 내용을 자동으로 전파

아니요

장치에서 사용

아니요

이 버전에는 해당하지 않음

SQL Server Compact 3.5와 함께 사용

아니요

이 버전에는 해당하지 않음

1Sync Services for ADO.NET은 행의 마지막 버전이 동기화되는 변경 내용 추적을 사용합니다. 피어 투 피어 트랜잭션 복제에서는 행에 대한 모든 변경 내용이 각 피어에서 순서대로 적용됩니다.

2 복제는 기본 제공 충돌 해결을 제공하지만 Sync Services for ADO.NET은 충돌 해결 체계를 구축하기 위한 프레임워크를 제공합니다.

사용할 기술 결정

Sync Services for ADO.NET은 오프라인 데이터 집합과 같은 프로그래밍 모델의 유연성, 그리고 복제에서 제공하는 것과 같은 풍부한 동기화 기능을 제공합니다. 복제는 데이터베이스 관리자를 위한 기술이며 기본적으로 SQL Server 데이터베이스를 동기화하도록 설계되었습니다. 복제는 중요한 기능을 마법사, 저장 프로시저, 자체 API를 통해 사용할 수 있는 구성으로 제공합니다. Sync Services for ADO.NET은 개발자를 위한 기술이며 다른 유형의 데이터베이스와 WCF(Windows Communication Foundation)와 같은 서비스를 통한 동기화를 지원합니다. 응용 프로그램에서 SQL Server 이외의 데이터베이스와 동기화해야 하는 경우, 또는 다양한 전송 또는 서비스를 통한 동기화를 사용하기 위해 응용 프로그램이 별도의 구성 요소를 포함해야 하는 경우에는 Sync Services for ADO.NET을 사용하십시오.

일부 응용 프로그램의 경우 사용할 기술을 쉽게 결정할 수 있습니다. SQL Server 데이터베이스 이외의 데이터 원본을 동기화해야 하는 경우 Sync Services for ADO.NET이 정답입니다. 많은 양의 프로그래밍 작업 없이 동기화를 구성하려는 데이터베이스 관리자에게는 복제가 더 나은 선택입니다. 궁극적으로 여러분은 응용 프로그램 요구 사항을 신중히 고려하여 Sync Services for ADO.NET API가 사용하기에 적합한 기술인지 여부를 결정해야 합니다. 스키마와 데이터를 한 데이터베이스에서 다른 데이터베이스로 복제하는 것 이상의 기능을 원한다면 Sync Services for ADO.NET을 사용하는 것이 좋습니다.

참고 항목

개념