본문으로 이동

마이크로소프트 싱크 프레임워크

위키백과, 우리 모두의 백과사전.

마이크로소프트 싱크 프레임워크(Microsoft Sync Framework)는 여러 데이터 저장소 간의 데이터를 동기화하는 데 사용할 수 있는 마이크로소프트의 데이터 동기화 플랫폼이다. 싱크 프레임워크는 전송 방식에 구애받지 않는 아키텍처를 포함하며, 이 아키텍처에는 ADO.NET 데이터 제공자 API를 모델로 하는 데이터 저장소별 동기화 공급자를 연결할 수 있다. 싱크 프레임워크는 캐시된 데이터 집합에 대해 작업하고 변경 사항을 배치 단위로 마스터 데이터베이스에 제출함으로써 데이터에 대한 오프라인 액세스를 제공할 수 있을 뿐만 아니라, 모든 소비자 간의 데이터 원본 변경 사항 동기화(게시/구독 동기화) 및 다중 데이터 원본의 P2P 동기화에도 사용될 수 있다. 싱크 프레임워크는 변경될 데이터가 이미 업데이트되었는지 여부를 확인하는 충돌 감지 기능을 내장하고 있으며, 이를 수동 검사를 위해 플래그로 표시하거나 정의된 정책을 사용하여 충돌 해결을 시도할 수 있다. 동기화 서비스에는 동기화 관계와 각 동기화 시도에 대한 메타데이터를 저장하기 위한 내장형 SQL 서버 컴팩트 데이터베이스가 포함되어 있다. 싱크 프레임워크 API는 닷넷 프레임워크 애플리케이션에서 사용하기 위한 관리 코드와 컴포넌트 오브젝트 모델 애플리케이션에서 사용하기 위한 비관리 코드 형태로 제공된다. 이 프레임워크는 2007년 11월 말 비주얼 스튜디오 2008과 함께 출시될 예정이었다.[1]

아키텍처

[편집]
싱크 프레임워크 아키텍처

싱크 프레임워크 런타임은 특정 데이터 저장소나 데이터 전송 프로토콜에 종속되지 않고 동기화 기능을 제공한다. 데이터 원본별 동기화 공급자를 제공함으로써 모든 데이터 원본을 지원할 수 있다. 예를 들어, 적절한 동기화 공급자를 사용하면 컴퓨터 간에 파일을 동기화하거나, 프로젝트 참가자 간에 프로젝트 업데이트를 동기화하거나, 장치 간에 미디어를 동기화할 수 있다. 싱크 프레임워크는 ADO.NET용 마이크로소프트 동기화 서비스, 파일 시스템용 동기화 서비스, SSE용 동기화 서비스라는 세 가지 공급자와 함께 제공된다. 동기화 서비스는 장치용 공급자를 제공하여 장치를 동기화하는 데 사용할 수 있다. 마찬가지로 마이크로소프트 오피스 아웃룩과 같은 PIM 소프트웨어나 윈도우 미디어 플레이어와 같은 미디어 라이브러리도 적절한 공급자를 제공하여 지원할 수 있다.

공급자는 데이터 저장소의 항목을 열거하는 데 사용되며, 각 항목은 항목 ID로 식별된다. 또한 변경 사항을 신속하게 열거할 수 있도록 동기화 메타데이터와 데이터 저장소의 상태를 유지 관리해야 한다. 메타데이터는 공급자가 연결된 데이터 저장소의 모든 인스턴스(복제본)에 대해 유지된다. 유지되는 메타데이터에는 복제본 ID, 틱 카운트(시간 경과를 나타냄), 충돌 로그, 툼스톤 로그, 그리고 데이터 저장소가 확인한 변경 사항 집합(지식)이 포함된다. 복제본 ID와 틱 카운트 쌍은 버전을 구성하며 해당 시점까지의 데이터 저장소 상태를 인코딩한다. 싱크 프레임워크는 복제본의 지식(Knowledge) 객체에 대한 일련의 작업을 정의한다. Contains는 저장소에 특정 변경 사항이 포함되어 있는지 확인하고, Union은 두 지식 집합을 병합하며, Project는 항목의 하위 집합에 대한 지식을 투영하고, Exclude는 항목의 하위 집합에 대한 변경 사항이 없는 새로운 지식 집합을 생성한다. 메타데이터는 공급자별로 메타데이터를 저장하기 위해 프로세스 내 SQL 서버 컴팩트 데이터베이스를 사용하는 메타데이터 저장소 서비스에 의해 관리된다.

동기화 서비스 API는 세션 객체로 표현되는 동기화 세션을 생성하여 작동한다. 동기화 세션은 두 개의 동기화 공급자(하나는 소스 데이터 저장소용, 다른 하나는 대상 저장소용) 간에 데이터를 동기화한다. 두 공급자의 인스턴스는 세션 객체에 전달된다. 동기화 세션 중에 대상 공급자는 저장소의 지식 집합을 전송한다. 소스 공급자는 대상의 지식과 소스의 변경 집합을 비교하여 변경 사항을 열거한 후 이를 대상에 전송한다. 대상 공급자는 변경 사항이 충돌하지 않는지 확인하고 변경 사항을 병합하며 지식을 업데이트한다.

  1. 스냅샷 동기화(다운로드 전용 동기화): 데이터 원본의 데이터(또는 그 하위 집합)를 클라이언트와 동기화한다.
  2. 업로드 전용 동기화: 클라이언트의 데이터를 소스 복제본에 병합한다.
  3. 양방향 동기화: 두 데이터 원본을 독립적으로 수정할 수 있으며 변경 사항이 서로 동기화된다. N단계 동기화는 여러 번의 양방향 동기화를 수행하여 달성된다.

ADO.NET용 동기화 서비스

[편집]
ADO.NET용 동기화 서비스 아키텍처

ADO.NET용 마이크로소프트 동기화 서비스는 ADO.NET을 사용하여 데이터베이스 간에 동기화하기 위한 동기화 공급자이다. ADO.NET 데이터셋은 소스와 대상 간에 동기화된 후 데이터베이스 서버에 지속된다. 또한 데이터 원본을 추상화하기 위한 프록시가 제공되고 해당 프록시에 대한 데이터 제공자를 사용할 수 있는 경우, XML 데이터베이스나 웹 서비스와 같은 관계형 데이터베이스 이외의 데이터 원본도 지원할 수 있다.

ADO.NET용 동기화 서비스 공급자는 중앙 데이터베이스의 데이터가 로컬에 캐시되는 오프라인 애플리케이션에서 사용하기 위한 것이다. 애플리케이션은 캐시된 데이터에 대해 작업하며, 변경 사항은 배치 단위로 업로드된다. 또한 이 공급자는 공동 작업 애플리케이션에도 사용할 수 있으며, 각 애플리케이션은 로컬 데이터셋에 대해 작업하고 다른 참가자와 P2P 방식으로 주기적으로 동기화된다. 로컬에서 데이터셋은 SQL 서버 컴팩트 데이터베이스나 ADO.NET을 지원하는 다른 데이터베이스 서버를 사용하여 저장할 수 있다. ADO.NET용 동기화 서비스는 증분 변경 추적을 허용하여 전체 사본을 복제하는 대신 변경 사항만 복제할 수 있도록 한다.

파일 시스템용 동기화 서비스

[편집]

파일 시스템용 동기화 서비스 공급자는 두 파일 시스템 위치(로컬 폴더 또는 네트워크 공유)를 동기화하는 데 사용된다. 새로운 파일을 미러링하는 것 외에도 기존 파일에 대한 변경 사항도 동기화된다. 파일 변경 사항은 타임스탬프를 사용하거나, 선택적으로 파일 콘텐츠를 해싱하여 감지된다. 동일한 파일에 대한 충돌하는 변경 사항이 감지되며 자동으로 해결되도록 설정할 수 있다. 동일한 파일에 대한 충돌 업데이트의 경우 최신 편집본이 유지된다. 한 복제본에서 파일이 삭제되었으나 다른 복제본에서 업데이트된 경우, 삭제보다 업데이트가 우선한다. 서로 다른 내용을 가진 두 파일이 두 복제본에서 같은 이름으로 생성된 경우, 동기화 작업 중에 나중에 생성된 파일이 유지된다. 이름 변경 작업으로 인해 파일 이름이 같아지면 둘 중 하나를 이름을 변경하여 둘 다 유지한다. 삭제된 파일은 필요시 복구할 수 있도록 휴지통으로 이동하도록 구성할 수 있다. 파일 시스템용 동기화 서비스 공급자는 동기화 작업을 실제로 수행하지 않고 수행될 작업을 열거하는 미리보기 모드를 제공하여 사용자가 변경 사항을 검토할 수 있도록 한다. 동기화는 P2P 방식으로 수행된다. 싱크 프레임워크나 파일 시스템용 동기화 서비스 공급자는 파일에 액세스하기 전에 인증을 수행하지 않으므로, 인증은 싱크 프레임워크 API를 사용하는 애플리케이션의 몫이다. 파일은 암호화 없이 전송된다. 전송 중 암호화를 사용하려면 암호화된 TCP 연결을 사용하는 사용자 지정 공급자를 사용해야 한다. 파일 시스템용 동기화 서비스 공급자는 와일드카드나 속성을 기반으로 파일을 제외하는 정적 필터도 지원한다. 그러나 첫 번째 CTP 릴리스에서는 파일 시스템용 동기화 서비스 공급자가 NTFS 보안 서술자나 대체 데이터 스트림을 동기화하지 않는다.

FeedSync용 동기화 서비스

[편집]

피드싱크용 동기화 서비스 공급자는 RSS 또는 ATOM 형식으로 피드싱크 지원 피드를 생성하여 복제본을 동기화하는 데 도움을 줄 수 있으며, 관심 있는 당사자가 이를 구독할 수 있다. 이 공급자는 피드싱크 피드에서 항목을 추출하고 변경 사항을 데이터 저장소에 다시 병합하는 데도 사용할 수 있다. 피드싱크용 동기화 서비스는 데이터 저장소에 연결하기 위해 다른 공급자를 사용한다.

FeedSync용 동기화 서비스는 복제본의 데이터를 RSS 및 Atom 피드와 동기화하는 데 도움이 되는 서비스를 제공한다. (복제본은 동기화할 정보의 특정 저장소를 의미한다.) FeedSync 생산자 서비스를 사용하면 동기화 애플리케이션이 동기화 공급자와 협력하여 복제본의 항목 목록을 만들고 이를 RSS 또는 Atom XML 스트림에 넣을 수 있다. 이러한 항목은 관심 있는 구독자에게 게시될 수 있다. 마찬가지로, FeedSync 소비자 서비스는 동기화 애플리케이션이 입력 RSS 또는 Atom XML 스트림을 가져와 항목을 추출한 다음, 동기화 공급자를 사용하여 적절한 변경 사항만 복제본에 적용하도록 돕는다. 싱크 프레임워크가 피드 항목 교환의 기반이 되므로, 두 피드를 상호 구독하고 동기화 커뮤니티 내의 피어로서 서로 쉽게 동기화할 수 있다. (동기화 커뮤니티는 서로 데이터를 동기화된 상태로 유지하는 복제본들의 집합이다.)

라이선스

[편집]

마이크로소프트 싱크 프레임워크는 윈도우 및 윈도우 모바일 장치에서 무료로 제공된다. 다른 플랫폼에 대한 지원은 상용 라이선스 및 포팅 키트를 통해 제공된다.[2]

같이 보기

[편집]

내용주

[편집]
  1. ↑ “Microsoft: Sync Framework isn't Google Gears”. 2007년 11월 6일. 2015년 6월 19일에 원본 문서에서 보존된 문서. 2015년 6월 19일에 확인함.
  2. ↑ “Microsoft Sync Framework (MSF) – FAQ”. 2016년 7월 24일에 확인함.

외부 링크

[편집]