Windows Azure Toolkits for Devices

Windows Azure — одна из самых открытых и интероперабельных платформ от Microsoft. Доступ и управление сервисами, предоставляемыми платформой, осуществляется по открытым протоколам и REST API. Разрабатывать приложения под неё можно не только на .NET, но и на node.js, Java и PHP.

Для разработчика это означает возможность использовать облачную платформу для разработки серверной части приложения, оставаясь в рамках привычных технологий. С другой стороны, с самого начала появления облачной платформы Windows Azure она поддерживает REST API, поэтому всегда можно написать приложение, которое будет взаимодействовать с Windows Azure, используя обычные HTTP запросы. Сочетание этих двух возможностей делает платформу Windows Azure неплохим выбором для разработки сервисов с разнообразной клиентской частью.

Использование смартфонов и планшетных компьютеров для доступа в интернет и к сопутствующим сервисам растёт день ото дня. Практически все популярные интернет-сервисы имеют продвинутого клиента для основных мобильных платформ. С учётом возможностей Windows Azure, логично будет предоставить разработчикам для популярных мобильных платформ удобную возможность использовать Windows Azure из своих приложений.

Я уже писал на habr о том, с чего это всё началось Windows Azure Toolkit for Windows Phone и Windows Azure Toolkit for iOS.

К настоящему моменту данный проект доступен также для Android и Windows 8 Developer Preview, и всё вместе называтся Windows Azure Toolkit for Devices.

Решение состоит из серверной части, которая предоставляет сервисы и прокси и набора бибилиотек для соответсвующей мобильной платформы.

Ниже представлена схема взаимодействия сервисов, прокси и устройства на примере Widnows Phone.

Для того, чтобы не хранить ключ доступа к сервисам таблиц и очередей на клиенте используется проксирующий сервис, который перенаправляет запросы клиента, доблавляя к ним необходимые авторизационные данные. В механизм досутупа к BLOB уже включён механизм разграничиения доступа, сервис Shared Access Signature позволяет получить необходимые данные для прямого доступа к BLOB хранилищу.

Следующая схема показывает организацию доступа к SQL Azure на примере Windows Phone:

SQL Azure OData сервис — это пример простого WCF Data сервиса, построенного поверх SQL Azure с использованием Entity Framework 4.1 Code First.

Схема ниже показывает реализацию Push Notification для Windows Phone:

Поддерживается два типа аунтетификации: с использование Access Control Services:

Про использование Access Control Services я уже писал на habr. Данный сервис позволяет приложению на телефоне аутентифицировать пользователей по их учётным записям в Windows Live ID, Google, Yahoo, Facebook, а также Active Directory.

С использованием ASP.NET аутентификации:

Данный сервис предоставяет приложению на телефоне классическую ASP.NET membership аутентификацию поверх Azure Tables или SQL Azure.

Тулкит для плафтормы Android может использовать ту же самую серверную часть, предоставляющую сервисы и прокси, либо доступ напрямую. Дополнительно реализована работа с хранилищем и аутентификация/авторизация, примеры приложений и Unit тесты.

Тулкит для iOS также может использовать ту же самую серверную часть, предоставляющую сервисы и прокси, либо доступ напрямую. Дополнительно реализована работа с хранилищем, аутентификация/авторизация и примеры приложений.

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

Полезные ссылки: