다음을 통해 공유


버전이 다른 구성 요소의 메타데이터 액세스

Metadata Storage Service에서는 소형 데이터베이스에 복제본 및 항목 메타데이터를 저장합니다. 메타데이터는 특정 테이블 스키마 및 이진 형식으로 저장됩니다. 이러한 스키마나 형식은 새 버전의 Sync Framework가 릴리스되면 변경될 수 있습니다. 또한 데이터베이스의 사용자 지정 공급자 필드는 개발자가 새로운 버전의 특정 공급자를 릴리스하면서 변경될 수 있습니다. 서로 다른 버전 간에 상호 운용성을 높이기 위해 Sync Framework는 정식 파일 형식과 SyncMetadataStoreSerializer 클래스(관리 코드의 경우) 또는 ISyncMetadataStoreSerializer 인터페이스(비관리 코드의 경우)를 제공합니다. 이를 통해 버전 간 메타데이터 변경 내용의 합당한 범위에 걸쳐 이후 및 이전 버전과 호환될 수 있습니다.

Sync Framework에서는 메타데이터 저장소 업그레이드에 대한 지원도 제공합니다. 자세한 내용은 메타데이터 저장소 버전 업그레이드를 참조하십시오.

버전 호환성에 대한 정식 형식 사용

정식 형식의 주요 이점 중 하나는 장치와 같은 부분 참가자 복제본에서 다른 버전의 공급자와 동기화할 수 있다는 것입니다. 다음 예제를 참조하십시오.

  • 응용 프로그램에서 여러 곳의 회사 사무실에 있는 많은 수의 서버와 장치 간의 동기화를 지원합니다. 사용자는 서버와 장치를 동기화하고, 장치에서 변경하고, 다른 사무실의 서버와 동기화하는 등의 작업을 수행할 수 있습니다.

  • 회사의 연락처 공급자가 1.0, 2.0 및 2.5의 세 가지 버전에서 릴리스되었습니다. 버전 1.0은 Sync Framework 1.0 기반이고 다른 두 버전은 Sync Framework 2.0 기반입니다. 이러한 버전은 모두 회사 네트워크에서 사용할 수 있고 지원됩니다.

Sync Framework 버전 관리

응용 프로그램에서 장치의 Metadata Storage Service 이진 파일에 메타데이터를 저장하면 메타데이터 스키마 및 형식이 사용자가 동기화하려는 공급자와 호환되지 않을 수 있습니다. 공급자가 다른 버전이고 다른 메타데이터 파일 형식을 사용하거나 공급자가 다른 버전의 Sync Framework를 사용하기 때문에 호환되지 않을 수 있습니다. 이 문제가 발생하지 않도록 하려면 응용 프로그램에서 각 서버의 이진 파일을 대신 사용하여 이 파일과 각 장치의 정식 파일 간에 메타데이터를 직렬화하고 역직렬화할 수 있습니다. 프로세스는 다음과 같습니다.

  1. 장치의 첫 번째 동기화 세션이 완료되면 응용 프로그램에서 SerializeReplicaMetadata(관리 코드의 경우) 또는 ISyncMetadataStoreSerializer::SerializeReplicaMetadata(비관리 코드의 경우)를 호출하여 장치의 정식 파일로 메타데이터를 직렬화합니다.

  2. 각 이후 동기화 세션 동안 응용 프로그램에서는 다음 작업을 수행합니다.

    1. DeserializeReplicaMetadata(관리 코드의 경우) 또는 ISyncMetadataStoreSerializer::DeserializeReplicaMetadata(비관리 코드의 경우)를 호출하여 정식 파일에서 메타데이터를 역직렬화하여 서버의 이진 파일에 적용합니다.

    2. 장치와 서버 간의 변경 내용을 동기화합니다.

    3. SerializeReplicaMetadata(관리 코드의 경우) 또는 SerializeReplicaMetadata(비관리 코드의 경우)를 호출하여 업데이트된 메타데이터를 다시 장치에 직렬화합니다.

Metadata Storage Service 저장소에서 메타데이터를 선택하는 쿼리가 인덱싱된 경우 직렬화 프로세스가 효율적이며, 정식 파일에 대한 증분 변경 내용만 역직렬화하는 경우 역직렬화 프로세스가 효율적입니다.

공급자 버전 관리

SyncMetadataStoreSerializer 클래스(관리 코드의 경우) 및 ISyncMetadataStoreSerializer 인터페이스(비관리 코드의 경우) 메서드는 공급자 버전을 메타데이터의 일부로 직렬화하고 메타데이터가 역직렬화될 때 예상 공급자 버전을 확인하여 공급자 버전 관리를 지원합니다. 다음과 같은 시나리오를 참조하십시오.

  • 세 가지 버전의 공급자가 있는 경우(v1, v2, v3)

  • v2에서 공급자의 사용자 지정 스키마에 대한 변경 내용이 호환되지 않는 경우

  • v2와 v3이 호환되는 경우

v3 공급자에서 메타데이터를 직렬화할 경우 메타데이터의 공급자 버전에 v2 값을 지정할 수 있습니다. 그런 다음 v2 또는 v3 공급자에서 예상 공급자 호환성 버전 매개 변수에 v2 값을 지정하여 메타데이터를 역직렬화할 수 있습니다. v1 공급자는 v1의 값을 지정하지만 메타데이터가 v1과 호환되지 않으므로 역직렬화 작업은 실패하게 됩니다. 일반적으로 같은 공급자에 대해 이전 버전과의 호환성 수준을 최대로 높이려면 가장 낮은 버전을 사용하십시오.

메타데이터 스키마를 업그레이드하는 새 버전의 공급자를 릴리스할 때 이전 공급자 버전과 메타데이터 호환성을 유지하도록 주의해야 합니다. 자세한 내용은 메타데이터 저장소 버전 업그레이드를 참조하십시오.

참고 항목

기타 리소스

Sync Framework Metadata Storage Service