Windows Azure: Интеграция с другими платформами. Часть 2. Windows Phone 7
Продолжим обсуждение подходов к интеграции Windows Azure и других платформ, начатое нами в этом посте, где мы обсудили сценарии интеграции Windows Azure и SharePoint 2010. Во второй части мы обсудим интеграцию Windows Azure и Windows Phone 7.
Windows Azure и Windows Phone 7
Интеграция платформы Windows Azure с мобильной платформой компании Microsoft Windows Phone 7 реализуется на основе специального набора средств - Windows Azure Toolkit for Windows Phone 7. В данный набор входят два шаблона проектов для C# и Visual Basic:
- Windows Phone 7 Cloud Application – этот шаблон упрощает создание приложения для Windows Phone 7, использующего сервисы Windows Azure. Использование данного шаблона приводит к генерации проекта на Windows Azure, проекта ASP.NET MVC 2 (сконфигурированного как веб-роль) и проекта для приложения на Windows Phone 7. Все вместе, эти проекты показывают, как в мобильном приложении использовать сервисы Windows Azure Storage без необходимости в указании учетной записи хранилища, что делает такие приложения более безопасными
- Windows Phone 7 Empty Cloud Application – данный шаблон схож с шаблоном Windows Phone 7 Cloud Application, но вместо создания демонстрационного приложения для Windows Phone 7, в нем создается пустой проект для приложения на Windows Phone 7 с минимальными настройками и зависимостями от других модулей
Данные шаблоны проектов требуют, чтобы в Visual Studio 2010 были установлены шаблоны для проектов ASP.NET MVC 2, Windows Azure и Windows Phone. Первый шаблон входит в стандартную поддержку веб-разработки, остальные должны быть поставлены вместе с расширениями для Visual Studio для создания приложений для Windows Azure и Windows Phone соответственно.
Поддержка изданий Visual Studio
Отметим, что в издании Visual Studio 2010 Express for Windows Phone не поддерживается создание веб-приложений и приложений для Windows Aazure, а в версии Web Developer 2010 Express – шаблон проекта Silverlight for Windows Phone. Таким образом, наиболее полноценная поддержка создания приложений для Windows Phone, которые используют сервисы Windows Azure, реализована в изданиях Visual Studio 2010 Professional и выше.
Примеры и исходный код библиотек
В состав Windows Azure Toolkit for Windows Phone 7 входит приложение для Windows Phone 7 с полным исходным кодом, а также исходный код всех библиотек, входящих в данный набор средств для разработчиков (см. каталог Samples\{C# или VB}\WindowsPhoneCloud). Среди них:
AspProviders
- Поставщики данных (ASP.NET Providers) для Windows Azure Tables (используются для хранения членства, ролей, профилей и состояния сесии)
System. Data. Services. Client
- Модифицированная версия клиентской библиотеки OData для Windows Phone 7 ( http://odata.codeplex.com ), которая позволяет работать с программными интерфейсами Windows Azure Tables
WindowsPhone. Recipes. Push. Messages
- Серверная библиотека для реализации push-уведомлений, входящая в состав Windows Phone 7 Push Recipe. Обеспечивает простой способ отсылки всех трех типов push-уведомлений, поддерживаемых сервисами Microsoft Push Notification Services (MPNS) - Tile, Toast и Raw
WindowsPhoneCloud.StorageClient
- Клиентская библиотека Windows Azure Storage Client Library для Windows Phone 7
DPE.OAuth
- Библиотека Microsoft DPE OAuth2
SL.Phone.Federation
- Компонент Silverlight для реализации подключения к Windows Azure Access Control Services (ACS)
Если перейти в каталог Samples\{ C# или VB} , то в нем мы увидим два подкаталога:
WindowsPhoneCloud.ACS
- Этот подкаталог содержит демонстрационное приложение, которое в качестве механизма аутентификации использует сервисы Windows Azure Access Control Service (ACS)
WindowsPhoneCloud.Membership
- В этом подкаталоге содержится демонстрационное приложение, которое в качестве механизма аутентификации использует ASP.NET Membership
Каждая версия демонстрационного примера - WindowsPhoneCloud. ACS и WindowsPhoneCloud. Membership содержит три различных sln-файла (файла решения для Visual Studio):
- WindowsPhoneCloud. sln – этот файл решения поддерживается только в Visual Studio 2010 Professional и выше и содержит все проекты
- WindowsPhoneCloud. Phone. sln – этот файл решения может использоваться в Visual Studio 2010 Express for Windows Phone и содержит только проекты для телефона:
- System.Data.Services.Client
- WindowsPhoneCloud.StorageClient
- WindowsPhoneCloud.Phone
- WindowsPhoneCloud.Azure.sln – этот файл решения может использоваться в Visual Web Developer 2010 Express и содержит только проекты для Azure и Web:
- AspProviders
- WindowsPhone.Recipes.Push.Messasges
- WindowsPhoneCloud
- WindowsPhoneCloud.Services
Сценарии
Данного набора библиотек и демонстрационных примеров достаточно для того, чтобы реализовать различные сценарии интеграции Windows Phone 7 с сервисами платформы Windows Azure. Эти сценарии включают такие компоненты, как аутентификация и авторизация, использование сервисов хранения, использование вычислительных сервисов и использование коммуникационных механизмов.
Среди механизмов аутентификации и авторизации можно выделить:
- Создание собственных механизмов (имя пользователя + пароль, маркер, и т.п.)
- Использование ASP.NET Membership Providers
- Использование одной из существующих модели идентификации - Live Id, Facebook и т.п.
- Федерация идентификации через Access Control Service
В качестве сервисов хранения, предоставляемых Windows Azure, можно использовать:
- SQL Azure
- Сценарий: клиент посылает данные веб-роли, веб-роль сохраняет данные в SQL Azure
- Windows Azure Tables
- Сценарий: клиент посылает данные веб-роли, веб-роль сохраняет данные в таблице
- Windows Azure Blobs
- Сценарий: клиент посылает данные веб-роли, веб-роль сохраняет данные в бинарном объекте, клиент обращается к бинарному объекту напрямую
- Сценарий: Клиент посылает данные непосредственно в бинарный объект
- Сценарий: клиент получает Shared Access Signature (SAS) от веб-роли, клиент сохраняет данные в бинарном объекте, клиент извлекает данные из бинарного объекта
При использовании вычислительных сервисов Windows Azure возможна реализация следующего сценария масштабирования выполнения задач:
- Сценарий: Веб-роль получает сообщение, веб-роль помещает задачу в очередь, прикладная роль извлекает задачу из очереди, прикладная роль отсылает уведомление
Использование коммуникационных механизмов заключается в выборе одной из двух существующих моделей:
- Коммуникации, инициируемые на стороне телефона
- Используют протокол HTTP, request/response
- Богатый выбор средств реализации - WCF, OData, WebRequest и т.п.
- Богатый выбор форматов - SOAP, JSON, POX и т.п.
- Коммуникации, инициируемые на стороне Windows Azure
- Push-уведомления, одно соединение между телефоном и сервисом Microsoft Push Notification Service
- Три типа push-уведомлений:
- Raw – послать сообщение приложению
- Toast – послать сообщение пользователю
- Tile – обновить изображение, заголовок или счетчик
Сценарий подписки на push-уведомления может выглядеть следующим образом:
- Телефон открывает канал
- Телефон посылает облачному приложению URL
- Облачное приложение отправляет уведомления через URL
- Сервис Microsoft Push Notification Service уведомляет телефон
Подробнее о возможностях Windows Azure Toolkit for Windows Phone 7 см. следующие ресурсы:
- Building Windows Phone 7 Applications with the Windows Azure Platform
- Основы создания приложений
- Выполнение приложений
- Использование ACS и Windows Azure Toolkit for Windows Phone 7
Адрес для загрузки Windows Azure Toolkit for Windows Phone 7 - http://watoolkitwp7.codeplex.com/ .
В следующей части мы рассмотрим сценарии интеграции Windows Azure и устройств на основе iOS.
/АФ