Философия iCloud или чего ждать разработчикам

Самым популярным выражением Стива Джобса, прозвучавшим на последней WWDC стало «the truth is in the cloud». Некоторые опять замечают в его словах задатки искажения реальности по отношению к новому сервису и тому, как пользователям следует его воспринимать. Но настоящая суть вопроса подразумевает под собой гораздо более глубокое значение. В данном контексте Стив применяет слово «истина» с как бы двояким смыслом. Первый смысл возвращает нас к старым технологиям Apple (синхронизация), второй — к новому применению этих технологий (облако).

Использованная в данном случае «истина» имеет внутреннее технологическое значение. Здесь под «истиной» подразумевается истинная база данных, то, чему мы доверяем наши данные, те гигантские сервера Apple, которые и будут хранить весь наш с вами контент.

Философия iCloud или чего ждать разработчикам. Фото.

В существующих ныне централизованных моделях хранения информации, основной (истинной) базой данных служат обычные компьютеры. То есть мы имеем централизованное хранилище информации (компьютер), с которым синхронизируем все свои портативные девайсы. Приложения, желающие взаимодействовать с центром синхронизации, не обращаются к самому хранилищу информации (компьютеру), они взаимодействуют с той частью Mac OS X, которая ответственна за синхронизацию с устройствами (на рисунке выше — Sync Engine) и доставляет на них весь синхронизируемый контент, напрямую связываясь с «истинной» базой данных (компьютером).

С другой стороны, обращаясь к выражению Стива про истину в облаке, в iCloud можно увидеть нечто большее, чем просто онлайн хранилище документов. Джобс говорил об этом в прошлый понедельник:

Некоторые люди считают, что «облако» это просто жесткий диск где то в небе. Мы считаем, что это нечто гораздо большее. iCloud встроен в ваши приложения, поэтому все происходит автоматически. Просто работает.

После демонстрации сохранения документов iWork в iCloud, Стив добавил, что iCloud API будут содержать key-value данные. Если Apple продолжит следовать существующим устоям сервисов синхронизации, разработчикам не придется взаимодействовать непосредственно с Apple, все будет зависеть от уровня системы сервисов и API. С их помощью и будет поддерживаться целостность данных и обеспечение соответствующего взаимодействия сервисов с приложениями. Подобная система работы лишает разработчиков множества сложностей и упрощает существующую схему отношений разработчик-приложение-пользователь путем улучшенной интеграции сервисов iCloud в приложения.

Синхронизация key-value пар будет еще более гибкой, нежели синхронизация документов. К примеру, для того, чтобы отследить какие уровни разблокированы в играх, типа Angry Birds, разработчику понадобится просто обновить соответствующие данные каждого уровня независимо от других. В данном случае ключем сможет быть идентификатор уровня (порядковый номер) и его значение может быть просто «заблокирован» или «разблокирован» в зависимости от его текущего состояния. Для проверки подобных данных проще обновить только единичное значение для каждого уровня отдельно, чем обновлять всю конфигурацию, каждый раз, когда необходимо получить доступ к состоянию того или иного объекта в приложении. Такой подход значительно упрощает работу разработчиков и позволяет избегать ситуаций, когда обновление настроек на одном устройстве могло привести к перезаписи или стиранию всех данных на других устройствах.

Кто-то все еще может скептически относиться к подобным сервисам синхронизации, так как они могут быть подвержены различным ошибкам, вроде дублирования контактов или событий в календаре. Стив высмеивал ошибки Apple в их предыдущих попытках работы с облачными технологиями, пошутив словами пользователей: «Почему я должен верить им? Это те люди которые сделали MobileMe», но продолжил, сказав, что Apple научилась многому до наступления своего звездного часа. Apple придется использовать все свои знания для того, чтобы создать надежный сервис (хранилище), которому придется ежесекундно обрабатывать запросы сотен миллионов устройств. Эти знания особенно пригодятся Apple для обеспечения должной сохранности информации пользователей и необходимой защиты всех данных.

Распределенные хранилища в последнее время получили большой скачок в развитии и внимание в кругах веб-разработки, поскольку предлагают быстрый и гибкий доступ к маленьким объемам информации вроде пользовательских настроек. Такие решения как MongoDB, Redis, Tokyo Cabinet, Memcache, Hadoop, MapReduce, Cassandra, BigTable от Google или Dynamo от Amazon и многие другие, являются веб-совместимыми хранилищами и прекрасно работают с key-value парами.

iCloud это не просто онлайн хранилище документов, это целая инфраструктура, предназначенная для синхронизации данных и всевозможных пользовательских настроек с онлайн хранилищем — новым типом сервиса синхронизации, построенного на основе идеи вывода «истинной» базы данных в облако, в отличие от его нынешнего расположения (компьютер). Другими словами, началась новая эра Apple. Теперь центр вселенной Купертино будет располагаться в облаке.

Ключевая разница между iCoud и другими онлайн хранилищами заключается в том, что Apple сосредоточена на обеспечении соответствующей инфраструктуры вокруг iOS и Mac приложений, в то время как остальные работают над платформами для веб-приложений, запускающихся из браузера. Apple необходимо добиться «just work» без нагромождения лишней нагрузки на разработчиков, так как они и без того будут заняты адаптированием своих приложений под сервисы iCloud. Натянутые отношения между открытостью и фрагментированностью и закрытостью и интегрированностью, как в случае с Android и iOS снова становятся актуальными.

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

 

По материалам gigaom.com