Мэтт Мулленвег считает, что мобильный блоггинг слишком медленный. Причем это относится в меньшей степени к неуклюжему вводу информации с сенсорных устройств, таких как iPhone и Nexus 4, что беспокоит 29-летнего основателя Automattic — компании, официально курирующей данную блоговую платформу с открытым исходным кодом. Скорее проблема кроется в ужасно неэффективном способе синхронизации контента (записей, страниц, пользовательских комментариев) для разных устройств. Ранее в этом году компания приобрела крошечный стартап, позволяющий решить эту проблему, и теперь Automattic конкурирует с самими Apple и Google.
Скорее всего, вы никогда и не слышали о Simperium, если только вы не являетесь разработчиком, которому требуется простое в применении решение для синхронизации контента, не связанное с iCloud. Возможно, вы даже неосознанно использовали его. В частности, это могло произойти, если вы пользовались Simplenote, базовым приложением для создания заметок, которое было создано Фредом Ченгом и Майком Джонстоном в 2008 году. Именно в процессе создания Simplenote Ченг и Джонстон реализовали элементарный механизм для синхронизации контента, который в конечном счете превратился в продукт, достойный продажи другим разработчикам. Они решили назвать этот механизм Simperium. И это главная причина, по которой Automattic решила выкупить его у Ченга и Джонстона в январе.
«Одна из частей более общей проблемы, над которой мы бились, состояла в том, чтобы как-то синхронизировать контент, сделать его доступным оффлайн, однако я считаю, что более важно сделать его не просто доступным оффлайн, а доступным немедленно», отметил Мулленвег. «Пользователи мобильных устройств особенно чувствуют задержку. Мы исследовали рынок и обратили свое внимание на Simperium, поскольку он был на голову выше всего того, что предлагалось в тот момент, он предлагал технологию, которую мы могли бы взять за основу».
Когда вы загружаете бэкенд WP-сайта через приложение от Automattic, доступное для планшетов и смартфонов, то, как и ожидается, вы видите список свежих записей в базе данных. Проблема заключается в том, как извлечь этот контент, поскольку приложение использует технологию, разработанную десятилетие назад, когда блоггинг еще только зарождался. Протокол XML-RPC — прекрасный способ передачи данных по HTTP настольным компьютерам через высокоскоростные соединения, однако он создавался без учета современных смартфонов и сотовых соединений.
«Когда вы подключаете к своему WP-блогу мобильные приложения, происходят сотни вызовов API по протоколу XML-RPC, позволяющих получить некоторое небольшое подмножество вашего контента», объясняет Мулленвег. «Это очень мощный способ. Но не самый сжатый».
Simperium в этом плане сильно отличается от всех остальных решений. В приложении, таком как Simplenote, пользователь может иметь тысячи заметок, синхронизированных для разных устройств. Механизм синхронизации не использует обходную методику, которая обычно реализуется через XML-RPC. Все эти заметки – вне зависимости от их количества – сразу же синхронизуются без лишних вызовов API. В отличие от XML-RPC, Simperium ориентирован на мобильный мир. Именно по этой причине приложение и привлекло внимание Мулленвега, давнего пользователя Simplenote. Несмотря на свои колебания в плане графика реализации, Мулленвег дал понять, что планирует использовать эту технологию в самом скором времени для усиления синхронизации WordPress-контента между разными устройствами.
Вместо того чтобы функционировать как решение для базы данных, Simperium берет за основу локальное хранилище данных и применяет к нему облачные технологии.
«В Simperium все данные основаны на JSON», говорит Ченг. «Вне зависимости от вашей CoreData структуры, она будет сжата до JSON-объекта. В целом, решение работает следующим образом: приложения имеют свои локальные данные, хранящиеся в JSON; каждый раз, когда приложение совершает какие-либо изменения, мы передаем разность (дельту) серверу, и таким образом мы создаем трансляцию, которая передается всем клиентам, заинтересованным в получении указанных данных».
Почему бы не использовать просто iCloud или Dropbox для этого? Оба этих решения, как отметили Ченг и Джонстон, переносят пользователей на один единственный путь реализации вещей. Для тех, кто хочет выйти за пределы iOS и запустить Android-версию – что было реализовано в Simplenote в прошлом месяце – iCloud находится вне рассмотрения. Dropbox более дружественный в плане кроссплатформенности, однако он требует, чтобы пользователи имели отдельный аккаунт; к тому же, он ограничивает простор работы с данными для разработчиков.
«Наша философия была следующей: мы решили сфокусироваться на инструментах, которые уже используются разработчиками на всех мобильных устройствах, чтобы сделать работу с этими инструментами более удобной», говорит Джонстон. «В таком случае девелоперы смогли бы управлять своими данными и пользователями, что позволило бы им запускать собственные сервисы любым удобным образом».
В конечном счете мы имеем решение, функционирующее во многом как iCloud или Dropbox, однако полностью кроссплатформенное, легкое и расширяемое, обладающее открытым исходным кодом. Идеал открытого кода приближает эту платформу к Automattic, чей флагманский продукт также поставляется open source.
Simperium не создавался как сервис для девелоперов. Первоначально он был написан для внутренних целей Ченга и Джонстона, просто потому, что ничего подобного на тот момент не было. «Мы создали очень простое решение для синхронизации», отметил Ченг. «Голый минимум. Чем активнее мы его использовали, тем заметнее становились места, которые можно было бы улучшить. Мы продолжали добавлять возможности, чтобы сделать решение более продвинутым, более надежным».
К 2010 году Simperium перерос в Simplenote, когда Ченг и Джонстон поняли, что технология может оказаться полезной и для других разработчиков. Тогда они присоединились к Y Combinator, намереваясь продать такой сервис.
Одним из первых клиентов Simperium стал разработчик Happy Inspector, iPad-приложения для жилищных агентов, которое нуждалось в беспрепятственной синхронизации данных между разными агентами.
«В данной ситуации у них было существующее приложение с функционирующей моделью данных – достаточно сложной реляционной моделью данных, созданной для iOS с помощью CoreData», говорит Ченг. «Чтобы Simperium смог работать с этой моделью, они просто создали аккаунт на Simperium.com, получили некоторые учетные данные для защиты и добавили несколько строк кода к своим приложениям, чтобы запустить Simperium с этими учетными данными и передать ему детали своей информационной модели. После чего материал стал синхронизироваться».
Как Мулленвегу, так и всей команде Automattic было очень важно не только сохранить Simperium доступным для разработчиков, но и использовать его для улучшения WordPress и своих мобильных приложений. В конечном счете, компания старается предложить не просто обычную CMS, а растущий объем сервисов сети. Продукты Automattic, такие как Akismet и Gravatar, прекрасно используются и вне рамок WordPress. Теперь компания решила сделать ставку на кроссплатформенную синхронизацию контента.
«Мы пытаемся инвестировать в технологии, которые, как мы думаем, являются действительно качественными, вне зависимости от того, сделаны ли они в рамках краткосрочной бизнес-модели или же напоминают то, что мы уже выпускали ранее», говорит Мулленвег. «Расширение Simperium API, увеличение масштабов данной инфраструктуры в сети помогут, как мне кажется, улучшить сам интернет. Поскольку это более эффективный подход к программированию соответствующих вещей. Таким образом, если все больше людей, включая нас, будут использовать данные подходы, Интернет станет более быстрым и более приятным в использовании».
Источник: www.fastcolabs.com