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 см. следующие ресурсы:

Адрес для загрузки Windows Azure Toolkit for Windows Phone 7 - http://watoolkitwp7.codeplex.com/ .

В следующей части мы рассмотрим сценарии интеграции Windows Azure и устройств на основе iOS.

/АФ