stringtranslate.com

СинкМЛ

SyncML ( язык разметки синхронизации ) — прежнее название независимого от платформы стандарта синхронизации информации . В настоящее время проект называется Open Mobile Alliance Data Synchronization and Device Management . Цель SyncML — предложить открытый стандарт в качестве замены существующим решениям для синхронизации данных , которые в основном зависят от поставщика, приложения или операционной системы. Спецификация SyncML 1.0 была выпущена 17 декабря 2000 г. [1] и 1.1 26 февраля 2002 г. [2]

Внутренности

SyncML работает путем обмена командами, которые могут быть запросами и ответами. В качестве примера:

Команды ( Alert, Sync, Status, и т.д.) группируются в сообщения. Каждое сообщение и каждая его команда имеют идентификатор, поэтому пара MsgID,CmdID однозначно определяет команду. Ответы, подобные Statusкомандам, включают пару, определяющую команду, на которую они отвечают.

Перед командами сообщения содержат заголовок, определяющий различные данные, касающиеся транзакции. Пример сообщения, содержащего Alertкоманду для начала синхронизации обновления, как и в предыдущем примере:

<?xml version="1.0"?> <!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD- V1_2.dtd"> <SyncML xmlns= "SYNCML:SYNCML1.2" > <SyncHdr> <VerDTD> 1.1 </VerDTD> <VerProto> SyncML/1.1 </VerProto> <SessionID> 1 </SessionID> <MsgID> 1 </MsgID> <Target><LocURI> PC Suite </LocURI></Target> <Source><LocURI> IMEI:3405623856456 </LocURI></Source> <Meta><MaxMsgSize xmlns= "syncml:metinf" > 8000 </MaxMsgSize></Meta> </SyncHdr>             <SyncBody> <Alert> <CmdID> 1 </CmdID> <Data> 203 </Data> <!-- 203 = мобильный сигнализирует об обновлении с него на компьютер --> <Item> <Target><LocURI> Events < /LocURI></Target> <Source><LocURI> /telecom/cal.vcs </LocURI></Source> <Meta><Anchor xmlns= "syncml:metinf" ><Last> 42 </Last><Next > 42 </Next></Anchor></Meta> </Item> </Alert>            <Final/> </SyncBody> </SyncML> 

Ответ от компьютера может быть в виде XML-документа (комментарии добавлены для пояснения):

<?xml version="1.0"?> <!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD- V1_2.dtd"> <SyncML> <SyncHdr> <VerDTD> 1.1 </VerDTD> <VerProto> SyncML/1.1 </VerProto> <SessionID> 1 </SessionID> <MsgID> 1 </MsgID> <Target><LocURI > IMEI:3405623856456 </LocURI></Target> <Source><LocURI> PC Suite </LocURI></Source> </SyncHdr>          <Синкбоди> <!-- принять заголовок последнего сообщения от клиента --> <Status> <CmdID> 1 </CmdID> <MsgRef> 1 </MsgRef> <CmdRef> 0 </CmdRef> <!-- 0 = заголовок сообщения --> <Cmd> SyncHdr </Cmd> <TargetRef> PC Suite </TargetRef> <SourceRef> IMEI:3405623856456 </SourceRef> <Data> 200 </Data> <!-- 200 = ок, принято --> </Статус>           <!-- принять запрос мобильного телефона на синхронизацию --> <Status> <CmdID> 2 </CmdID> <!-- это команда №2 --> <MsgRef> 1 </MsgRef> <CmdRef> 1 </CmdRef> <!-- он отвечает на команду msg=1,cmd=1 --> <Cmd> Alert </Cmd> <TargetRef> События </TargetRef> <SourceRef> /telecom/cal.vcs </ SourceRef> <Meta><Anchor xmlns= "syncml:metinf" ><Next> 0 </Next><Last> 0 </Last></Anchor></Meta> <Data> 200 </Data> <!- - 200 = ок, принято --> </Status>            <Final/> </SyncBody> </SyncML> 

Затем транзакция продолжается с сообщением с мобильного телефона, содержащим Syncкоманду, и так далее.

Этот пример представляет собой обновление, при котором мобильный телефон отправляет все свои данные на компьютер и ничего наоборот. Различные коды в начальной Alertкоманде могут использоваться для инициации других видов синхронизации. Например, при «двусторонней синхронизации» на компьютер отправляются только изменения последней синхронизации, который делает то же самое.

Теги Lastи Nextиспользуются для отслеживания возможной потери синхронизации. Lastпредставляет время последней операции синхронизации, измеренное каждым устройством. Например, мобильный телефон может использовать прогрессивные числа ( 1, 2, 3,...) для представления времени, а компьютер использует строки типа 20140112T213401Z. Next— текущее время в том же представлении. Эти последние данные сохраняются, а затем сравниваются с ними Lastпри следующей синхронизации. Любая разница указывает на потерю синхронизации. Затем можно предпринять соответствующие действия, включающие отправку всех данных, чтобы снова синхронизировать устройства.

Якоря используются только для обнаружения потери синхронизации, они не указывают, какие данные следует отправить. За исключением случая потери синхронизации, при обычной синхронизации (без обновления) каждое устройство отправляет все изменения с момента последней синхронизации.

Клиентские соединители и плагины SyncML

Серверы СинкМЛ

1 SAN = Уведомление о предупреждении сервера. Эта технология SyncML Push основана на определениях Open Mobile Alliance и расширяет существующую спецификацию протокола SyncML, предлагая метод синхронизации, инициируемой сервером.

Размещенные службы SyncML

Смотрите также

Рекомендации

  1. ^ «SyncML предлагает технологии завтрашнего дня сегодня» . SyncML.org. 07.12.2000. Архивировано из оригинала 10 апреля 2001 г. Проверено 2 апреля 2021 г.
  2. ^ «SyncML исполняется два года, выпускает спецификации v1.1 для синхронизации мобильных данных» . SyncML.org. 26 февраля 2002 г. Архивировано из оригинала 18 апреля 2002 г. Проверено 2 апреля 2021 г.