Azure Mobile Services: облачный мобильный Backend
Корпорации Microsoft есть что предложить разработчикам мобильных сервисов, причём не только ориентированных на платформу Windows. Мало того, это корпорация серьезно вкладывается в развитие open source коммьюнити. Поэтому облако Azure поддерживает не только .NET, но и многое из иных миров, например, из Linux. Важно и то, что Microsoft с некоторых пор начал выкладывать коды некоторых интересных проектов под лицензиями open source.
Важнейшим облачным сервисом Microsoft, предназначенным персонально для мобильных разработчиков, являет Azure Mobile Service и представляет собой облачный backend. Надо отметить, что иные решения из стека облака Azure доступны пользователям этого backend, но для их подключения нужно оформить подписку.
Azure Mobile Services состоит из пяти основных компонентов:
- Хранилища (Storage);
- Модуля аутентификации (Authentication);
- Модуля логики (Logic);
- Модуля Push уведомлений (Push);
- Планировщика заданий (Scheduler).
Storage
Хранилище предназначено для хранения данные пользователей. Оно базируется на облачной базе данных SQL Azure, во многом похожей на стандартную СУБД Microsoft SQL Server, имеющий богатый функционал запросов. Поддерживается динамическое изменение схема БД.
Управлять хранилищем можно с Azure Portal, SQL Portal (Silverlight) и SQL Management Studio (windows), используя, например, REST API и стандартные HTTP методы: POST, GET, PATCH и DELETE в сочетании с соответствующими суффиксами. Стандарт для сериализации SQL данных — json. Есть механизм для синхронизации данных, сгенерированных на мобильном устройстве при его офлайн работе. Файлы рекомендуется хранить в специальном решении Microsoft Blob Storage, не входящим в стандартный пакет Mobile Services.
Authentication
Аутентификация пользователей происходит через API таких ресурсов, как Facebook, Google ID, Twitter ID, Microsoft account, Microsoft Azure Active Directory. Все инструменты для этого входят в модуль Authentication. Но при этом в рамках приложения возможно «гранулярно» настроить набор прав, которые нужно предоставить тому и или иному пользователю. Для анонимных пользователей для этого используются ключи приложений. Самый закрытый уровень доступа применится к уже аутентифицировавшимся пользователям, предъявившим «мастер-ключ». Он нужен админам и скриптам.
Logic
Модуль логики предназначен для управления логикой, в соответствии с которой работает мобильный сервис. Код для этого модуля разработчик может написать на Node.js и .NET.
В состав Node по умолчанию интегрированы такие модули, как Request, Push, Console, Mssql, Tables, Azure (SDK для работы с облаком Azure), Sendgrid (email), Pusher(web socket), Twilio(SMS и голос). Доступен custom API — точка подключения к таблицам базы данных, расширяющий возможности табличного API. Плюс к этому он дает доступ к файлам в Blob Storage через мобильный сервис, либо напрямую, используя уникальные ссылки и протокол http.
Push
Существует стандартный способ отправки push-уведомлений: сначала клиент регистрируется для получения сообщений на push notifications сервисе своего провайдера и получает «device ID», который предоставляется мобильному сервису. В итоге сервис «знает», что для этого пользователя push надо отправлять тому или иному провайдеру, который дальше сделает всё остальное. Что приятно, Microsoft разработала для работы со всеми популярными push-провайдерами соответствующие SDK, размещенные в облаке, и разработчикам не надо ничего изобретать.
Существует и альтернативный вариант — использование «Notification Hub». Основное его отличие от стандартного в том, что он предоставляет возможность упрощенной работы при отправке push на большое количество мобильных устройств за счет своей архитектуры. Сейчас хабом поддерживается отправка сообщений на такие платформы, как iOS, Android, Kindle, Windows Phone и Windows Store. Кроме того, каждое устройство можно пометить набором тэгов, что повышает адресность получаемой информации.
Кроме того, для преобразования сообщений в формат (xml, json и т.д.) каждого провайдера, существует система правил и шаблонов, автоматически занимающаяся этим вопросом. Сервис Notification Hub не входит в состав Azure Mobile Services и доступен по запросу. Поддерживает .NET, Java (beta), Node и REST API.
Scheduler
Планировщик заданий позволяет запускать задачи либо по запросу, либо же по расписанию. В первом случае это разовые акции, во втором — планировщик по имеющимся у него у него правилам и спискам запускает необходимы скрипты. Важно сказать, что суммарное время работы за месяц запускаемых фоновом режиме скриптов, а также частота их запуска зависят от тарифного плана.
Таким образом, начало работы в Azure Mobile Services довольно простое и напоминает что-то вроде веб-хостинг. На старте Microsoft предлагает trial режим до тех пор, пока не израсходуется лимит в 200 условных долларов, либо не закончатся 30 дней. Для стартапов существуют специальные программы, рассчитанные на несколько лет. Этого времени вполне достаточно, чтобы решить — оставаться здесь или искать что-то иное.
Освоить мобильную разработку поможет профессия «Разработчик мобильных приложений».