Синхронизация данных как основа Интернет ОС?

30 октябрь, 2008 - 11:49Вячеслав Колдовский

Казалось бы, что интересного может предложить такая обыденная техническая операция, как синхронизация данных, и почему вообще следует расходовать на нее журнальные страницы? Но, как это нередко происходит в жизни, первое впечатление бывает обманчиво, и то, что кажется простым на первый взгляд, оказывается далеко не тривиальным при более пристальном изучении. А видимая узость сферы применения сменяется необъятной широтой возможностей, если взглянуть на привычные вещи под другим углом.

Синхронизация данных как основа Интернет ОС?
Главная идея Live Mesh – данные должны быть доступны отовсюду

Наиболее простое определение синхронизации – приведение в соответствие друг другу различных копий (наборов) данных, с которыми работает пользователь. Еще лет десять–пятнадцать назад данная операция не была такой актуальной, поскольку «умные» карманные устройства были уделом избранных, а работа в Интернете ограничивалась посещением сайтов, обменом электронной почтой и сообщениями в форумах. Однако сегодня в зависимости от обстоятельств могут применяться десктоп, ноутбук, нетбук/UMPC, смартфон/коммуникатор и целый ряд различных гаджетов – всевозможные проигрыватели, цифровые камеры, диктофоны, карманные накопители, электронные книги, всего и не перечислить. Наряду с этим все большую популярность приобретают онлайновые сервисы, которые также используются для хранения пользовательских данных. Соответственно, один и тот же файл может существовать в десятке различных копий и, конечно же, крайне желательно, чтобы его содержимое актуализировалось оперативно и максимально незаметно.

В таких условиях синхронизация уже не кажется (и действительно не является) тривиальной задачей: устройства часто предполагают различные форматы данных, к примеру, весьма вероятно несовпадение полей в программах, хранящих контакты на ПК и смартфоне, а изменения могут вноситься (между сеансами синхронизации) в разных источниках. Задача многократно усложняется в случае коллективной работы с информацией, а развитие онлайновых сервисов, SaaS, сетевых вычислений (cloud computing) и пр. уже в ближайшем будущем сделает синхронизацию центральным звеном ИТ.

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

Microsoft Sync Framework: одно решение на все случаи жизни

Появление этого компонента в недрах Microsoft вполне закономерно – ведь разные продуктовые группы регулярно сталкивались с похожими задачами (в сфере синхронизации) и вынуждены были решать их сызнова. Поэтому в какой-то момент было принято решение о создании универсального продукта, который смог бы удовлетворить потребности всех подразделений, а заодно использоваться сторонними разработчиками.

Но можно ли объять необъятное? Ведь потребность в синхронизации существует как на уровне локальной файловой системы, так и в очень сложных системах, между различными хранилищами, взаимодействующими лишь по определенному сценарию. Да и цели могут быть разные – от обновления резервной копии (в таком случае мы имеем простейшую однонаправленную схему) до агрегации независимо внесенных изменений (т. е. процесс будет уже двунаправленным, причем с высоким риском возникновения конфликтов). Также следует учесть, что синхронизируемые устройства или системы могут обладать разной степенью «интеллектуальности» – например ноутбук и мобильный жесткий диск (при этом, очевидно, первый должен управлять всем процессом) или десктоп и веб-сервер (которые могут общаться на языке метаданных).

Поэтому к решению поставленной задачи в Microsoft подошли со всей ответственностью – на основе технологий .NET Framework была разработана универсальная платформа, обладающая расширяемой модульной архитектурой и пригодная для широкого круга решений, связанных с синхронизацией данных. Первая версия Microsoft Sync Framework для ОС Windows появилась в начале нынешнего августа, одновременно был выпущен SDK на 11 языках (включая русский). Тогда же увидела свет и первая CTP-сборка Microsoft Sync Framework for Devices, предназначенная для использования на устройствах под управлением Windows Mobile. Все ПО распространяется бесплатно, а для разработчиков, желающих портировать Sync Framework под альтернативные ОС, предлагаются специальные условия лицензирования.

В основе архитектуры Sync Framework лежит принцип независимости от источника и транспортного протокола. Путем создания специального провайдера можно реализовать доступ практически к любым данным, для которых может понадобиться синхронизация. Стандартно Sync Framework поставляется с тремя такими компонентами – для файловой системы, ADO.NET и FeedSync (расширение RSS и Atom).

Участники процесса синхронизации в терминах Sync Framework в зависимости от возможностей подразделяются на полные (интеллектуальные устройства, способные хранить данные и исполнять программный код, скажем, компьютеры или смартфоны), частичные (поддерживают только хранение данных, обеспечивая прямой доступ к ним, например, внешние жесткие диски) и простые (предоставляют данные по запросу и в заранее оговоренной форме – RSS-ленты новостей и веб-сервисы). В процессе синхронизации могут быть задействованы практически любые комбинации участников, но обязательным условием должно быть наличие хотя бы одного полного.

Sync Framework целиком берет на себя управление метаданными, в частности, контроль за изменениями обеспечивается как в реальном времени, так и в асинхронном режиме, выявляются конфликты и пр. Их хранилище реализовано на основе легковесной СУБД SQL Server Compact Edition, которая исполняется в адресном пространстве родительского приложения. Впрочем, этот компонент опциональный и не требуется для обеспечения базовой функциональности Sync Framework.

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

Уже к моменту выхода своей первой версии Sync Framework получила поддержку в продуктах Microsoft и сторонних разработчиков. Например, платформа синхронизации используется СУБД SQL Server 2008, а примерами для конечных пользователей могут служить утилита Microsoft SyncToy 2.0 и такие сервисы, как Live Mesh и Office Live.

Microsoft Live Mesh

Запуск Live Mesh весной нынешнего года вызвал достаточно много вопросов. Во-первых, он отчасти дублирует уже существующее онлайновое хранилище данных Microsoft SkyDrive, даже объем они предоставляют одинаковый – 5 ГБ. Сходство прослеживается и с другим сервисом – Microsoft Office Live Workspace, который нацелен на пользователей Microsoft Office, но пока служит исключительно хранилищем документов. Во-вторых, несмотря на то, что краеугольным камнем нового сервиса является синхронизация (именно доступ к данным с любого устройства в любое время называется его основным предназначением), Live Mesh не применяет Sync Framework. В-третьих, зачем он вообще понадобился Microsoft и что может дать в конкурентной борьбе за Интернет?

Попробуем разобраться по порядку. Оба SkyDrive и Live Mesh действительно представляют собой онлайновые хранилища данных, но если первый ограничивается лишь самыми традиционными функциями, то второй также предусматривает офлайновый доступ, притом с самых разных устройств – достаточно лишь выполнить подключение (при этом произойдет установка легковесного клиента) и их данные становятся доступны через сервис. Подобную возможность предлагает Microsoft Office Live Workspace, но этот сервис ориентирован исключительно на пользователей Microsoft Office, тогда как Live Mesh служит универсальной платформой.

Далее, то, что Live Mesh не использует Sync Framework, действительно может показаться странным, но только если не вникнуть в детали. Дело в том, что этот сервис основан на открытых спецификациях протокола FeedSync (feedsync.org), разработанного Microsoft в качестве универсального инструмента для синхронизации посредством RSS и Atom. Фактически FeedSync является расширением последних, превращая их в двунаправленные протоколы, и, как мы уже говорили, реализуется Sync Framework. На самом деле проекты Live Mesh и Sync Framework создавались параллельно и в определенной степени используют общий код, а упрощенная архитектура Live Mesh объясняется стремлением максимально облегчить портирование клиентского ПО на различные платформы (оно должно быть выпущено даже для платформ, не поддерживающих .NET Framework, например Mac OS X).

Синхронизация данных как основа Интернет ОС?
Модульная архитектура Sync Framework обеспечивает расширяемость платформы и пригодность ее в гетерогенных средах

Наиболее сложен последний вопрос: зачем Live Mesh понадобился Microsoft? Действительно, ведь чтобы получить фактически ту же функциональность, достаточно было бы (малой кровью) обеспечить синхронизацию с различными устройствами в рамках SkyDrive. Однако суть нередко скрывается в деталях. Если в Live Mesh зайти на вкладку Desktop, создать новую папку и открыть ее, то на экране отобразится окно, практически неотличимое от Windows Explorer из Windows Vista и работающее весьма схожим образом, с той лишь разницей, что все происходит в окне браузера и на удаленном сервере. Можно открыть несколько таких окон, переключаться между ними (внизу отображается их список так же, как и в панели задач Windows), изменять размеры, перемещать по экрану, сворачивать и разворачивать – все выглядит точно так же, как и на обычном ПК под управлением Windows Vista, а для отдельных типов файлов даже реализован просмотр их содержимого. Быть может, мы видим перед собой прообраз Интернет ОС от Microsoft?

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

Учитывая вышесказанное, наиболее вероятным сценарием развития Интернет ОС на ближайшее будущее видится создание неких гибридных решений, способных функционировать как в онлайновом режиме, так и в офлайновом. Google, например, для этих целей продвигает технологию Gears, которая интегрирована в браузер Chrome. Она позволяет исполнять локально веб-приложения на основе AJAX без необходимости в постоянном подключении к Интернету. Но в стратегии Google явно превалирует сетевой подход – обычным локальным приложениям там нет места, а к этому сегодня вряд ли готово большинство пользователей.

Синхронизация данных как основа Интернет ОС?
Desktop в Live Mesh вызывает стойкие ассоциации с Windows Vista

Microsoft на примере Live Mesh пропагандирует альтернативный подход (официально именуемый Software+Service), где центральным элементом выступают данные – при этом онлайновый сервис должен отвечать за их хранение и предоставление, а локальные программы – за обработку. Для многих именно такой взгляд на Интернет ОС может оказаться более предпочтительным – не придется отказываться от привычных программ, которые смогут развиваться дальше, осваивая гигагерцы и гигабайты локальных вычислительных мощностей. Тем не менее онлайновая функциональность будет постоянно расширяться, и вряд ли что-то помешает Microsoft (со временем) реализовать некую облегченную версию Microsoft Office по примеру Google Docs. В таком случае за пользователем останется право выбора наиболее подходящего сценария работы – в зависимости от различных факторов.

В том, что Live Mesh не ограничится исключительно синхронизацией данных, не приходится сомневаться. Уже сейчас сервис предлагает интересную функциональность – Live Mesh Remote Desktop, службу удаленного доступа к рабочему столу ПК, аналог обычного терминального подключения в Windows, работающий в браузере (удаленное устройство должно быть зарегистрировано в вашей учетной записи на Live Mesh, и на нем должно выполняться клиентское ПО). Также большинство бета-тестеров Live Mesh отметили недостачу возможностей онлайнового редактирования файлов, а Microsoft, как правило, учитывает подобные мнения. Одним из вариантов может быть открытие API доступа к Live Mesh, что позволит создавать необходимую пользователям функциональность сторонним разработчикам. А это уже и будет самая настоящая Интернет ОС, имитирующая то, чем является ОС для современного ПК, – платформу, обеспечивающую хранение данных и исполнение программ. Тем более что под брендом Live уже сегодня предлагается весьма обширное семейство продуктов как для локальной установки, так и для онлайнового использования.

Заключение

Итак, стратегия Microsoft состоит в интеграции локальных вычислений с онлайновыми сервисами вокруг пользовательских данных, доступность которых призваны обеспечить развитые инструменты синхронизации. В нынешней реализации это – Sync Framework, мощная универсальная платформа, ориентированная на разработчиков, применяющих .NET Framework. В ближайшее время ее поддержка будет встроена во многие продукты самой Microsoft, в результате чего они станут лучше приспособлены к гетерогенной среде.

Такая позиция Microsoft достаточно прагматична – очевидно, что списывать со счетов традиционное ПО и повсеместно заменять его веб-приложениями крайне преждевременно. Последние ни по функциональности, ни по способности обрабатывать большие объемы данных пока не могут приблизиться к традиционным настольным решениям. А разумный компромисс может быть сформирован на базе сервисов, аналогичных Live Mesh. Хотя, конечно, все зависит от стратегических приоритетов Microsoft и ее видения рынка. Появится ли онлайновая версия Microsoft Office? Будет она бесплатной, предлагаться по подписке или в нагрузку к настольной? Откроют ли API к Live Mesh для сторонних разработчиков?

Так или иначе, но, похоже, лед тронулся – концепция Интернет ОС приобретает конкретные очертания, и, вероятно, уже в самое ближайшее время мы станем свидетелями обострения конкуренции на этом фронте между Microsoft, Google и другими компаниями, а через пару лет впору будет проводить сравнительное тестирование законченных решений.

Сайт автора: koldovsky.com