Понедельник, 20.Мая.2024, 16.59.21
Приветствую Вас Гость | RSS
Категории раздела
Новинки [13]
Самые последние новости из мира мобильных технологий
Обзоры [7]
Обзоры мобильных телефонов
Интересные факты [4]
Интересные факты из мира компаний
В помощь покупателю [12]
Раздел посвящен тем, кто сомневается....
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » 2008 » Август » 31 » Что такое SyncML?
17.25.34
Что такое SyncML?

В общих словах SyncML – это протокол синхронизации данных основанный на языке разметки XML. Изначально протокол разрабатывался как решение для синхронизации портативных устройств, но фактически решение получилось универсальным, т.к. спецификация протокола не предъявляет требований к протоколу передачи данных, платформе, языку или технологии программирования. Безусловно, на данный момент, наиболее часто решаемая задача – это синхронизация контактов и календаря телефона с сервером синхронизации, КПК, ноутбуком или другим мобильным устройством. В то же время, телефоны по функциональным возможностям быстро догоняют портативные компьютеры, на горизонте появились сети 3G, а значит стоит ожидать, в ближайшее время, появления функций синхронизации файлов. Согласитесь, что было бы здорово иметь одинаковые версии документов на настольном компьютере, ноутбуке и смартфоне, и, кроме того, ещё и держать на сервере синхронизации резервную копию.
SyncML имеет широкое применение как для персонального использования через сервер синхронизации, так и для решения корпоративных задач в составе Groupware-решений (примечание: Groupware – класс приложений для коллективной работы, такие как Microsoft exchange/outlook, Lotus Domino/Notes и др.)
Спецификация протокола – это продукт коллективной работы организации Open Mobile Alliance (OMA), в которую входят ведущие производители мобильных устройств и разработчики программного обеспечения, такие как Nokia, Sony Ericsson, Alcatel, NTT DoCoMo, IBM, Intel и многие другие.

Транспортировка данных
В процессе синхронизации всегда принимает участие два субъекта: клиент (например, телефон) и сервер. Для осуществления процесса синхронизации необходимо наличие канала связи между ними (например, GPRS), а так же наличие транспортного протокола, по которому будет осуществляться передача данных, например HTTP, OBEX (обычно используется при соединении через Bluetooth или IrDA) или SMTP и др.
При передаче данных SyncML, обычно, использует протокол WAP Binary XML, что позволяет несколько сократить объём передаваемых данных.
Если говорить об использовании штатных функций синхронизации телефонов с Интернет-сервером, то в качестве канала будет использована технология передачи GPRS/EDGE, а в качестве транспортного протокола Wireless Session Protocol или HTTP. Можно сказать, что передача данных устроена аналогично, как если бы Вы открыли на телефоне WAP-сайт, т.е. данные сначала будут переданы на Интернет-шлюз оператора связи, а от шлюза непосредственно на сервер синхронизации.

Авторизация и идентификация клиента
Одним сервером могут пользоваться множество клиентов, а у каждого клиента может быть несколько устройств (например: телефон и ноутбук). Соответственно необходимо ограничить доступ посторенних лиц к данным каждого пользователя, а так же иметь актуальные данные на всех устройствах одного пользователя, что означает необходимость каким-то образом различать устройства. Для авторизации клиент должен сообщить серверу имя пользователя и пароль, а для идентификации используется пара значений: уникальный идентификатор устройства и имя пользователя. В случае телефона идентификатором является его IMEI-код. Благо имя пользователя и пароль достаточно ввести один раз при настройке синхронизации, а уникальный идентификатор телефон сообщает автоматически – так что, для дальнейшей синхронизации достаточно просто сделать пару нажатий кнопок в меню телефона.

Процесс синхронизации
После того, как клиент авторизовался на сервере, начинается процесс передачи и синхронизации данных. Во-первых, нужно отметить, что синхронизироваться может несколько баз данных по отдельности. Например, отдельно синхронизируется база контактов и база календаря. Каждая база должна иметь свой уникальный идентификатор, который Вы указываете при настройке синхронизации телефона (примечание: для сервера wap4b.ru используются идентификаторы: con – база контактов, cal – база календаря). Во-вторых, существует несколько различных типов синхронизации (всего семь), которые различаются по назначению (обновить данные на сервере и на клиенте, только на сервере, только на клиенте и т.п.) и объёму передаваемых данных. Простому пользователю достаточно знать, что бывает «быстрая» и «медленная» синхронизация. При быстрой синхронизации передаются только изменённые данные, при медленной – все синхронизируемые данные. Выбор типа синхронизации сервер осуществляет автоматически.
Медленная синхронизация используется при первом запуске, что вполне очевидно – клиент должен передать все данные на сервер и получить от сервера все имеющиеся у него данные, а так же, медленная синхронизация используется, если в предыдущий сеанс синхронизации произошла ошибка. При медленной синхронизации сервер выполняет полное сравнение принятых данных с данными сервера. Правила сравнения зависят от типа данных и реализации сервера. Например, на сервере есть некоторый контакт, и похожий контакт поступил с телефона. Допустим, в контакте совпадают фамилия, имя и номер телефона, тогда можно сделать вывод, что это тот же самый контакт. Далее, если есть различия, в части данных (например, e-mail, адрес, имеются другие номера и т.д.), то нужно решить, чей контакт более правильный: сервера или клиента? Решает это сервер, в соответствии с реализованной в нем логикой. Сервер wap4b.ru, в настоящий момент, всегда выбирает контакт в телефоне, поскольку предполагается, что пользователь чаще пользуется телефоном, чем редактирует данные на сервере.
Результатом «медленной» синхронизации являются идентичные данные на сервере и на клиенте, а так же сервер и клиент сформируют информацию для выполнения в дальнейшем быстрой синхронизации. Что это за информация? В первую очередь – это состояния всех объектов (далее, применительно к контактам/визиткам или событиям календаря). Например, если на сервер поступила новая визитка, то она получит статус «новая» и таковой она будет являться для последующей синхронизации с другими устройствами. Соответственно есть ещё состояния «обновлённый» и «удалённый». Сервер запоминает все состояния и даты их изменений, поскольку у пользователя может быть несколько устройств (а в данный момент он синхронизировал только одно). Клиент же, непосредственно среагирует на изменение состояния объёкта на сервере, т.е. если та же визитка удалена на сервере, то телефон так же её удалит её из своей базы. Ну и, пожалуй, самый важный момент, без которого будет невозможна быстрая синхронизация – это формирование локальных и глобальных идентификаторов, а так же связей между ними. Каждый объект клиента автоматически получает собственный локальный идентификатор, а объект на сервере – глобальный. Кроме того, сервер устанавливает взаимнооднозначное соответствие между всеми локальными и глобальными идентификаторами. Два типа идентификаторов нужно опять же по причине, что у пользователя может быть несколько устройств и для каждого устройства имеется свой локальный идентификатор объёкта. Это значит, что серверу не придётся в дальнейшем сравнивать каждый объект – достаточно знать локальный идентификатор.
Быстрая синхронизация происходит значительно проще и потребляет на порядок меньше трафика, поскольку передаются только изменённые данные. И клиент и сервер помнят дату последней синхронизации. Когда клиент инициирует синхронизацию, он сообщает серверу, что случилось с данными с момента последней синхронизации (вот здесь и вступают в работу состояния объектов в сочетании с локальными идентификаторами). Т.е. клиент сообщает, что некоторый объект с его локальным идентификатором был удалён, другой объект изменён, а третий добавлен и в каждом случае с указанием даты. Серверу остаётся сравнить состояния тех же самых объёктов: новые – добавляем, удалённые – удаляем, изменённые - изменяем. Затем сервер отправляет свои изменения, ведь его данные мог изменить пользователь в результате синхронизации с другим устройством или, например, через WEB-интерфейс как это сделано на нашем портале.
Собственно и вся синхронизация, если бы не «конфликты». Представьте, что после последней синхронизации, Вы отредактировали данные в телефоне и на сервере, а затем запустили синхронизацию, данные различаются – что делать? Эту ситуацию называют «конфликтом синхронизации». Соответственно, как и в обычной жизни, конфликт имеет несколько вариантов решения, и у конфликта есть победитель и проигравший, либо вмешивается третья сторона и решает конфликт. Так и в случае синхронизации выиграть может клиент, сервер или конфликт решит сам пользователь. На сегодня мы не стали усложнять логику сервера – всегда побеждает клиент, по причине сказанной выше – он чаще имеет под рукой телефон и вводить данные на телефоне тяжелее, чем на компьютере. Тем не менее, наш портал всегда открыт для пожеланий пользователей, и если Вы захотите иметь возможность выбирать способ решения конфликтов, мы реализуем эту возможность.

Что дальше?
Итак, мы получили идентичные данные в телефоне и на сервере. Теперь возникает естественный вопрос: что дальше? А дальше, данные можно редактировать через WEB-интерфейс и снова запускать синхронизацию для переноса изменений в телефон, можно запустить синхронизацию для другого устройства и получить идентичные данные (только нужно после этого будет запустить устройство, которое было синхронизировано первым, поскольку на втором устройстве так же могли быть изменения).

Некоторые комментарии и рекомендации
1. Скорее всего, у читателя возникнет резонный вопрос касательно безопасности такого решения. Постараюсь ответить. Абсолютно безопасных решений в сфере IT, по большому счёту, не существует (разве что приставить автоматчика к сейфу, где лежит телефон и резервная копия, но и то риски остаются). На данный момент информация передаётся по открытым каналам и теоретически возможен перехват третьими лицами. Сервер может быть атакован, и ваши данные могут оказаться в руках недоброжелателей. Такие риски существуют. С другой стороны мы предпринимаем, и будем предпринимать все необходимые мероприятия для защиты Ваших данных на сервере. Так же как и обязуемся не использовать и не передавать Ваши данные третьим лицам. Но, пожалуй, самый важный момент – это другие риски, риски связанные с существованием информации в единственном экземпляре. Потеря телефона со всеми контактами может стать катастрофой или как минимум принести серьезные проблемы. Резервная копия должна быть и быть актуальной.
2. Ещё один резонный вопрос: почему нельзя использовать прямую синхронизацию с ПК через Bluetooth? Можно. Сервер синхронизации – это альтернативное решение, обладающее рядом преимуществ. Во-первых, это упомянутые выше состояния объектов, которые обеспечивают 100% идентичность данных на всех устройствах. Обычная синхронизация чаще всего не отслеживает изменения состояний и «сливает» вместе все синхронизируемые базы данных. Это может иметь большое значение, когда синхронизируется более двух устройств. Во-вторых, сервер синхронизации не требует установки и настройки дополнительного программного обеспечения, что часто вызывает трудности у неподготовленного пользователя. Для работы с SyncML-сервером достаточно один раз настроить профиль синхронизации на каждом устройстве, указав при этом URL-сервера, имя пользователя, пароль и имена синхронизируемых баз. Кроме того, при синхронизации нет необходимости находиться возле ПК, а резервная копия будет находиться на достаточно большом расстоянии от владельца, что служит дополнительным фактором сохранности (ведь телефон, можно потерять вместе с ноутбуком).
3. Многие телефоны не синхронизируют данные на SIM-картах. В принципе, это решение для тех, кто хочет синхронизировать не все контакты. Это значит, что в менеджере контактов телефона достаточно указать место хранения контакта «SIM-карта» и этот контакт не будет участвовать в синхронизации.
4. Некоторые операторы блокируют трафик SyncML через точку доступа «WAP». Если есть возможность, лучше всегда использовать точку доступа «Интернет» (HTTP), так Вы ещё и сэкономите деньги на трафике, причём не только при синхронизации, но и при посещениях WAP-сайтов.

   http://gsmsync.ru — сервис SyncML (есть бесплатный демо-доступ, ограничение в 20 контактов)
   http://2memory.ru — коммерческий сервис SyncML
   http://www.zyb.com — бесплатный сервис SyncML

   http://nazarov.com/wp/2007/10/24/107/ — Большой список сервисов для синхронизации SyncML


Источник http://wap4b.ru

Категория: В помощь покупателю | Просмотров: 2467 | Добавил: samokhval | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Календарь
«  Август 2008  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Copyright MyCorp © 2024