개요 및 시나리오

Sync Framework에서는 데이터베이스 간 동기화가 가능하며, 오프라인 및 공동 작업 시나리오를 대상으로 하는 응용 프로그램을 작성할 수 있는 직관적이고 유연한 API가 제공됩니다. API를 통해 응용 프로그램의 아키텍처 및 요구 사항에 따라 제공된 구성 요소의 모두 또는 일부만 사용할 수 있습니다. Sync Framework에서는 클라이언트-서버, 클라이언트-클라이언트 및 혼합 토폴로지를 지원합니다. 클라이언트-서버 토폴로지에서는 모든 클라이언트가 중앙 서버에서 동기화됩니다. 클라이언트-클라이언트 토폴로지에서는 변경 내용이 중앙 서버를 통과하지 않고도 각 클라이언트를 다른 클라이언트와 동기화할 수 있습니다. 혼합 토폴로지는 클라이언트-클라이언트 토폴로지와 클라이언트-서버 토폴로지의 조합으로 구성됩니다.

Sync Framework와 기타 기술 비교

Microsoft에서는 동기화를 수행하는 응용 프로그램용으로 디자인된 다양한 기술을 제공합니다. 피어 투 피어 동기화 측면에서 비교할 가장 중요한 기술은 피어 투 피어 트랜잭션 복제입니다. 이는 둘 이상의 SQL Server Enterprise 데이터베이스를 동기화하는 데 사용됩니다. 두 기술을 비교하는 것도 의미가 있지만, 피어 투 피어 트랜잭션 복제는 확장성과 고가용성을 제공하는 서버 간 동기화를 위해 설계된 반면 Sync Framework는 공동 작업 응용 프로그램을 지원하는 클라이언트-서버 동기화와 클라이언트 간 동기화를 위해 설계되었다는 점을 알아두어야 합니다.

다음 표를 통해 사용자가 빌드하려는 응용 프로그램에 적합한 기술을 확인할 수 있습니다.

주요 기능

피어 투 피어 트랜잭션 복제

Sync Framework

서비스를 사용하여 동기화

아니요

다른 형식의 데이터 저장소와 동기화1

아니요

증분 변경 내용 추적2

충돌 검색 및 해결3

스키마 및 데이터 자동 초기화

아니요

대형 데이터 집합 지원

스키마 변경 내용 자동 전달

아니요

1 데이터베이스는 Sync Framework에서 지원하는 웹 서비스, 파일 시스템 또는 사용자 지정 데이터 소스 등의 다른 데이터 소스와도 정보를 교환할 수 있습니다.

2Sync Framework는 행의 마지막 버전을 동기화하는 순 변경 내용 추적 기능을 사용합니다. 피어 투 피어 트랜잭션 복제를 사용하면 행에 대한 모든 변경 내용이 각 피어에 순서대로 적용됩니다.

3 복제는 충돌 해결 기능을 기본적으로 제공하는 반면 Sync Framework는 충돌 해결 체계를 개발하기 위한 프레임워크를 제공합니다.

Sync Framework는 오프라인 데이터 집합 등의 융통성 있는 프로그래밍 모델과 복제에서 제공되는 보다 다양한 동기화 기능 집합을 제공합니다. 복제는 데이터베이스 관리자를 위한 기술이며 SQL Server 데이터베이스를 동기화하도록 디자인되어 있습니다. 복제는 마법사, 저장 프로시저 및 자체 API를 통해 구성할 수 있는 중요한 기능을 제공합니다. Sync Framework는 개발자를 위한 기술이며, 다른 형식의 데이터 저장소와 동기화하는 기능 및 WCF(Windows Communication Foundation)와 같은 서비스를 통해 동기화하는 기능을 지원합니다.

일부 응용 프로그램의 경우 사용할 기술을 쉽게 결정할 수 있습니다. 다양한 전송 방법이나 서비스를 통해 동기화하기 위한 별도의 구성 요소가 필요하거나 데이터베이스 이외의 데이터 소스를 동기화해야 하는 경우 Sync Framework를 사용할 수 있습니다. 확장성과 고가용성을 고려하여 시스템을 설계하거나 많은 프로그래밍 작업 없이 동기화를 구성하려는 데이터베이스 관리자는 복제를 선택하는 것이 좋습니다. 궁극적으로 여러분은 응용 프로그램 요구 사항을 신중히 고려하여 Sync Framework API가 사용하기에 적합한 기술인지 여부를 결정해야 합니다. 데이터베이스 간에 스키마 및 해당 데이터를 복제하는 것 이상의 작업을 수행하려는 경우에는 Sync Framework를 사용하는 것이 좋습니다.

동기화 시나리오

모바일 작업자 및 원격 작업자를 지원하는 기능의 중요성이 점점 커지고 있습니다. 조직에서는 작업자가 사무실에 있을 때와 동일한 정보에 액세스할 수 있는 환경을 마련해야 합니다. 대부분의 경우 이러한 사용자는 랩톱, 사무실용 데스크톱, 스마트폰 또는 PDA를 가지고 있습니다. 이러한 장치를 통해 VPN 연결이나 회사 네트워크에 직접 연결하는 다른 방법을 사용하여 데이터에 액세스할 수 있지만, 이 솔루션에는 다음과 같은 단점이 있으므로 대부분의 원격 사용자에게 적합하지 않습니다.

  • 네트워크 요구 사항

    사용자가 정보에 액세스하려면 데이터에 액세스하는 동안 원격 장치가 회사 네트워크에 계속 연결되어 있어야 합니다. 재택 근무자 등의 경우에는 문제가 없지만, 영업 사원과 같이 계속 이동해야 하는 사용자에게는 이 방법이 불편할 수 있습니다. 예를 들어 영업 사원이 고객을 방문하고 있는 경우 네트워크에 연결할 수 없으면 재고 데이터에 액세스할 수 없으므로 업무를 원활하게 수행할 수 없습니다.

  • 데이터 액세스 속도

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

  • 단일 실패 지점

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

  • 서버 확장성

    원격 작업자의 수가 늘어나면 회사 서버의 성능이 영향을 받아 하드웨어를 더 추가해야 할 수 있습니다.

자주 연결하는 응용 프로그램

위 섹션에서 설명한 솔루션을 대체하여 OCA(자주 연결하는 응용 프로그램)를 구현할 수 있습니다. 원격 작업자는 자주 연결하는 응용 프로그램을 통해 데이터에 계속 액세스할 수 있지만 원하는 정보는 로컬로 저장됩니다. 자주 연결하는 응용 프로그램에서는 일반적으로 데이터 동기화를 사용하여 로컬 데이터베이스를 채웁니다.

데이터 동기화는 클라이언트 데이터베이스 등의 한 데이터베이스에 저장된 정보를 주기적으로 가져오고 서버 데이터베이스 등의 다른 데이터베이스를 사용하여 변경 내용을 동기화하는 기능으로 구성되어 있습니다. 동기화 기반 솔루션의 장점은 사용자가 더 이상 네트워크에 계속 연결되어 있지 않아도 정보에 액세스할 수 있다는 점입니다. 데이터가 로컬에 저장되어 있으므로 사용자는 중앙 데이터베이스에서 처리가 오프로드된 경우에도 데이터에 계속 액세스할 수 있습니다. 또한 더 이상 네트워크 속도의 제한을 받지 않으므로 로컬 컴퓨터의 처리 속도에 따라 데이터에 액세스할 수 있습니다.

클라이언트-클라이언트 동기화를 사용하면 모든 변경 내용이 서버를 통과하지 않고도 동기화를 수행할 수 있어 단일 실패 지점을 방지할 수 있습니다. 많은 응용 프로그램 처리를 각 클라이언트로 밀어 넣으면 서버 확장성의 문제 해결에도 도움이 됩니다.

Sync Framework에서는 동기화 공급자를 사용하여 동기화되는 각 데이터베이스와 통신합니다. ADO.NET 데이터 공급자와 유사한 Sync Framework 데이터베이스 공급자는 다른 Sync Framework 구성 요소를 각 데이터베이스의 특정 구현에서 보호합니다. Sync Framework에는 오프라인 및 공동 작업 시나리오를 지원하는 다섯 가지 데이터베이스 공급자가 포함되어 있습니다. 다음 그림에서는 오프라인 시나리오를 보여 줍니다. 클라이언트-서버 토폴로지에서 클라이언트를 중앙 서버에 연결하여 연결될 경우 데이터를 동기화합니다.

Sync Services 오프라인 시나리오

이러한 자주 연결하는 응용 프로그램에 공동 작업 시나리오를 지원하는 기능을 추가하여 확장하는 경우가 많습니다. 이렇게 하면 중앙 허브를 통하지 않고도 두 데이터베이스를 피어 투 피어 방식으로 동기화할 수 있습니다. 다음 그림에서는 중앙 서버가 클라이언트와 동기화되고 클라이언트가 서로 동기화될 수 있는 혼합 토폴로지를 보여 줍니다. 이와 같은 토폴로지에서는 사용자가 프로젝트 메모를 공유하도록 허용하는 응용 프로그램이 지원될 수 있습니다. 프로젝트 팀 멤버는 종종 작업할 수 있는 데이터의 로컬 복사본을 필요로 합니다. 데이터를 변경한 팀 멤버는 서버와 동기화하여 변경 내용을 업로드하거나 다른 팀 멤버와 동기화하여 변경 내용을 교환할 수 있습니다.

Sync Services 공동 작업 시나리오

데이터베이스 동기화 공급자

다음은 Sync Framework에 포함된 세 가지 주 데이터베이스 동기화 공급자입니다.

  • SqlSyncProvider - SQL Server 데이터베이스를 동기화하는 데 사용됩니다.

  • SqlCeSyncProvider - SQL Server Compact 데이터베이스를 동기화하는 데 사용됩니다.

  • DbSyncProvider - 일반적으로 SQL Server 데이터베이스를 동기화하는 데 사용됩니다.

이러한 공급자의 특징은 다음과 같습니다.

  • 클라이언트-서버, 피어 투 피어 및 혼합 토폴로지에 적합합니다.

  • 보다 유연한 방법으로 사용할 수 있습니다. 예를 들어 두 DbSyncProvider 인스턴스 또는 SqlSyncProvider 인스턴스 하나와 SqlCeSyncProvider 인스턴스 하나 등을 동기화할 수 있습니다.

  • Sync Framework 메타데이터를 사용하고 다른 Sync Framework 공급자와 함께 토폴로지에 참가할 수 있습니다.

데이터 동기화에 대한 자세한 내용은 데이터베이스 동기화 시나리오를 참조하십시오.

오프라인 시나리오만 지원하는 두 개의 추가 데이터베이스 동기화 공급자가 포함되어 있습니다. 이러한 공급자는 오프라인 시나리오와 공동 작업 시나리오를 모두 지원하는 위에서 설명한 공급자로 대체되었습니다. 이러한 공급자는 해당 공급자를 사용하는 기존 응용 프로그램에 대한 참조용으로 이 설명서에 포함되었습니다. 새 응용 프로그램을 개발하는 경우에는 위에서 설명한 공급자를 사용하십시오.

오프라인 전용 공급자는 다음과 같습니다.

이러한 공급자의 특징은 다음과 같습니다.

  • 클라이언트-서버 토폴로지에 적합합니다.

  • 항상 쌍으로 사용됩니다. 예를 들어 두 ServerSyncProvider 인스턴스를 사용하여 두 서버 데이터베이스를 동기화할 수 없습니다(대신 SqlSyncProvider 또는 DbSyncProvider 사용).

  • 공동 작업 공급자보다 덜 복잡하지만 다른 Sync Framework 공급자와 함께 토폴로지에 참가할 수 없습니다.

오프라인 동기화에 대한 자세한 내용은 오프라인 전용 시나리오를 참조하십시오.

참고 항목

개념

데이터베이스 동기화