Pull to refresh

Cинхронизация файлов с использованием SyncML

Reading time2 min
Views4.1K
imageСегодня наша компания выпустила обновление портала SynchroNet и очередное приложение для синхронизации данных в открытое бета тестирование. На этот раз это клиент синхронизации файлов для Windows. Хотелось бы рассказать нашим пользователям и просто интересующимся концепцию того, как у нас это работает.

Введение

Сихронизация файлов в SyncML выполнена таким образом, что передача больших файлов по этому протоколу не представляется возможной, в частности, из-за классической реализации SyncML API, предполагающей, что каждый пакет SyncML закачивается в память. В связи с этим, предлагается решение, которое основано на принципе подкастов, а именно: приложения обмениваются ссылками, а непосредственное получение файла является ответственностью конкретного приложения.

Концепция реализации

Реализация механизма синхронизации файлов основывается на существующем протоколе синхронизации SyncML с добавлением двух новых сущностей:
  • Подсистемы управления ссылками
  • Дополнительных правил синхронизации файлов

Новый файл на устройстве
На устройстве появился новый файл, для которого нет ссылки, осуществляется синхронизация:

image
1.Приложение на клиенте открывает сессию и получает ее идентификатор. При открытии сессии также производится авторизация. Также, при открытии сессии могут быть указаны ссылки, с которыми собирается работать приложение в рамках сессии, если эти ссылки используются другим приложением, то выбрасывается исключение. Для этого варианта использования не указывается список файлов.
2.Осуществляется загрузка файла в менеджер ссылок
3.Для нового файла получается ссылка
4.Сессия завершается
5.Полученная ссылка используется для формирования xml для синхронизации с SyncML сервером

Новый файл на SyncML сервере
Какое то устройство добавило файл, а на текущем устройстве этого файла нет.
image
1.При синхронизации выявляются ссылки, файлов по которым нет на устройстве
2.Открывается сессия, при открытии указывается этот файл для блокировки
3.Загружается файл
4.Завершается сессия

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

Архитектура

Основными компонентами, участвующими в синхронизации подкастов являются:

1.Коннектор синхронизации файлов в SyncML cервер
2.Менеджер ссылок


Что касается коннектора, то он осуществляет синхронизацию файлов аналогично остальным объектам синхронизации. Файлы имеют следующие свойства:

1.Ссылка
2.Дата создания/модификации
3.Название

Менеджер ссылок является отдельной подсистемой, состоящей из следующих компонентов:

1.Модуль управления транзакциями
2.Менеджер хранения файлов
3.Модуль авторизации
4.Протокол доступа на базе HTTP

image
Tags:
Hubs:
Total votes 7: ↑4 and ↓3+1
Comments7

Articles

Information

Website
www.synchro-systems.ru
Registered
Founded
2009
Employees
11–30 employees
Location
Россия