Создание RSS- и Atom-каналов
Компоненты веб-синхронизации платформы Sync Frameworkпозволяют реплике опубликовать данные, необходимые подписчикам, в виде RSS- или Atom-канала. Компоненты веб-синхронизации внутренним образом представляют канал в виде службы синхронизации и используют другие компоненты платформыSync Framework для синхронизации элементов канала между поставщиком канала и поставщиком, представляющим реплику. Поэтому в приложении нужно только реализовать методы для преобразования идентификаторов и данных элементов в формат XML, который ожидается в канале. Платформа Sync Framework выполняет общие задачи синхронизации, такие как обнаружение изменений, выявление конфликтов и применение изменений в полученном канале.
Чтобы создать канал, приложение создает объект производителя канала и предоставляет следующие элементы:
службу синхронизации, которая представляет создаваемую реплику;
объекты преобразователей идентификаторов и элементов;
поток, содержащий пустой RSS-канал или Atom-канал.
Затем приложение вызывает подходящий метод объекта производителя канала, чтобы создать канал. Чтобы создать канал, платформа Sync Framework создает оболочку для канала в виде службы синхронизации и запускает сеанс синхронизации, в котором в качестве поставщика источника выступает локальный поставщик, а в качестве поставщика назначения — поставщик канала. Во время обработки платформы Sync Framework вызывают преобразователи идентификаторов и элементов, чтобы преобразовать идентификаторы и данные элементов в допустимый формат XML, а затем вставляют XML-данные в подходящее расположение в потоке. После завершения обработки канал потока содержит элементы из реплики, а также метаданные FeedSync об этих элементах. Затем этот поток можно опубликовать для подписчиков канала, используя соответствующий механизм.
Дополнительные сведения о реализации объектов преобразователя идентификаторов и элементов см. в разделе Преобразование идентификаторов и элементов для RSS- и Atom-каналов.
Дополнительные сведения о каналах FeedSync см. на веб-сайте FeedSync.
Создание канала с помощью управляемого кода
Чтобы создать канал, сначала создайте объект FeedProducer с помощью метода FeedProducer, а затем передайте ему следующие объекты:
объект FeedIdConverter, реализуемому приложением;
объект FeedItemConverter, реализованный в приложении;
объект KnowledgeSyncProvider, который представляет создаваемую реплику.
Затем вызовите метод ProduceFeed и передайте ему объект Stream, содержащий пустой RSS-канал или Atom-канал. После завершения обработки этот объект Stream будет содержать канал FeedSync с элементами из реплики. Учтите, что поток необходимо открывать с правом доступа на чтение и для записи.
Чтобы создать частичный канал, передайте объект EndpointState методу ProduceFeed. В результате будет организована базовая линия для добавочного канала, который содержит все элементы реплики, не входящие в базовую линию.
Создание канала с помощью неуправляемого кода
Чтобы создать канал, сначала создайте объект IFeedProducerConsumerServices, передав значения CLSID_FeedSyncServices и IID_IFeedProducerConsumerServices функции CoCreateInstance. Затем создайте объект IFeedProducer с помощью метода IFeedProducerConsumerServices::CreateFeedProducer.
Чтобы создать канал, вызовите метод IFeedProducer::ProduceFeed и передайте ему следующие объекты:
объект IFeedIdConverter, реализованный в приложении;
объект IFeedItemConverter, реализованный в приложении;
объект ISyncProvider, который представляет создаваемую реплику;
объект IStream, содержащий пустой RSS-канал или Atom-канал. Учтите, что поток необходимо открывать с правом доступа на чтение и для записи.
После завершения обработки объект IStream будет содержать канал FeedSync с элементами из реплики.
Чтобы создать частичный канал, передайте объект IEndpointState методу IFeedProducer::ProduceFeed. В результате будет организована базовая линия для добавочного канала, который содержит все элементы реплики, не входящие в базовую линию.
См. также
Справочник
Интерфейс IFeedProducerConsumerServices
Интерфейс IFeedProducer
Интерфейс IEndpointState
Microsoft.Synchronization.FeedSync
FeedProducer
EndpointState
Основные положения
Синхронизация веб-каналов
Компоненты веб-синхронизации Sync Framework