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.
Полезные ссылки:
Всё необходимое для разработки под Windows Azure
Центр разработки Windows Azure на MSDN
Форум по Windows Azure на MSDN
Windows Azure Toolkit for Android
Windows Azure Toolkit for iOS
Windows Azure Toolkit for Windows Phone
Windows Azure Toolkit for Windows 8