Опубликован: 22.12.2012 | Доступ: свободный | Студентов: 480 / 19 | Длительность: 07:20:00
Лекция 13:

Публикация приложений. Расширенное взаимодействие с облачными интерфейсами

< Лекция 12 || Лекция 13: 123 || Лекция 14 >

Подключение к облаку

Возможности различных приложений, и информационных систем в частности, существенно расширятся при наличии подключения к облаку. Компанией Майкрософт предлагается две основные технологии:

  • Azure - реализует модель Platform as a service, когда платформа предоставляется клиенту как сервис. Платформа Windows Azure предоставляет возможность разработки и выполнения приложений и хранения данных на серверах, расположенных в распределенных датацентрах. Платформа как сервис также включает и инфраструктуру как сервис (Infrastructure as Service, IaaS).
  • Технологии, основные на LiveID - сервис идентификации и аутентификации предоставляемый системой Windows Live. Используется для единого входа на всех сетевых сервисах Microsoft.

Строго говоря, облачным решением является только Azure, которое ориентированное в первую очередь на коммерческие структуры.

Сервис идентификации LiveID формально облачным решением не является, однако совокупность приложений и веб-сайтов, к которым сервис предоставляет доступ, позволяет говорить об определенной степени "облачности" LiveID. Большинство продуктов использующих Windows Live ID являются продуктами Microsoft, такими как Hotmail, MSNBC, MSN, Xbox 360's Xbox Live, the .NET Messenger Service, Zune или MSN подписки, но есть также ряд других компаний, аффилированных с Microsoft, которые используют его, например Hoyts.

Когда приложения подключаются к облаку с помощью Live SDK, пользователям предоставляется единый вход. Такой вход предоставляет пользователям возможности для более глубокого взаимодействия с приложением, поскольку им будет намного проще сохранять данные, общаться.

Рассмотренные выше возможности реализуются внутри приложения, и механизм их работы также запускается из приложения. Такой механизм не позволяет применить уведомление во всех сценариях приложения. Например, если необходимая информация для отображения на плитке находится на сервере. В таких случаях удобно использовать push-уведомления, которые позволяют приложению, расположенному на сервере, отправить на клиент всплывающее уведомление, плитку или обновление эмблемы. Push-уведомления работают даже тогда, когда приложение неактивно.

Для отправки push-уведомлений сервер должен пройти аутентификацию в Windows Push Notification Services (WNS) с удостоверяющими его данными. Эти данные предоставляются при регистрации приложения на сайте WindowsLive Application Management. Для регистрации необходимо иметь учетную запись LiveId. На странице регистрации необходимо указать отображаемое имя пакета и издателя, объявленных в манифесте нашего проекта. Далее необходимо согласиться с условиями использования. На следующем шаге будут предоставлены необходимые данные для аутентификации сервиса:

  • Package Security Identifier (SID) - у каждого приложения есть уникальный PackageSID, который необходимо использовать для аутентификации сервиса и WNS, когда служба отсылает уведомление приложению. Это значение необходимо записать в параметр clientid при запросе OAuth ключа доступа;
  • Secret Key - параметр client_seсret при запросе OAuth ключа доступа. Эти данные необходимо хранить в безопасном месте. Иначе злоумышленники, получив доступ к Package SID и Secret Key, смогут рассылать уведомления пользователям приложения. После прохождения аутентификации сервер получает маркер доступа, который позволяет ему отправлять уведомления приложению через WNS.

Алгоритм взаимодействия между приложением, службой и WNS происходит следующим образом (Рис. 12.5):


Рис. 12.5.

  1. Приложение отправляет запрос Notification Client Platform на получение канала push-уведомления;
  2. Notification Client Platform запрашивает канал WNS. Канал возвращается в виде URI;
  3. Канал push-уведомления возвращается в приложение;
  4. Приложение отправляет URI на службу. Данный механизм необходимо выполнять самостоятельно;
  5. Когда служба готова отправить обновление, она уведомляет WNS, используя канал URI. Это происходит путем отправки запроса POST с необходимым контентом для уведомления. Взаимодействие происходит через https. Здесь сервису необходимо проходить аутентификацию;
  6. Служба WNS получает сообщение и переправляет его на соответствующее устройство.

Статический метод CreatePushNotificationChannelForApplicationAsync класса Windows.Networking.PushNotifications.PushNotificationChannelManager создает канал подключения с WNS и возвращает объект класса PushNotificationChannel с данными для отправки уведомлений. При каждом запуске приложения обязательно обновлять данные уведомлений, так как они не являются постоянными.

Этот объект предоставляет событие OnPushNotificationReceived. Подписавшись на него, приложение может соответствующим образом реагировать на различные виды уведомлений.

void OnPushNotificationReceived(PushNotificationChannel sender, 
PushNotificationReceivedEventArgs e)
   {
       string typeString = String.Empty;
       string notificationContent = String.Empty;
       switch (e.NotificationType)
       {
           case PushNotificationType.Badge:
               typeString = "Badge";
               notificationContent = e.BadgeNotification.
Content.GetXml();
               break;
           case PushNotificationType.Tile:
               notificationContent = e.TileNotification.
Content.GetXml();
               typeString = "Tile";
                    break;
           case PushNotificationType.Toast:
               notificationContent = e.ToastNotification.
Content.GetXml();
               typeString = "Toast";
               break;
       }
       // отменяет визуальное уведомление в интерфейсе
       e.Cancel = true;
   } 

Push-уведомления не следует использовать для отправки конфиденциальных данных, так как они не гарантируют безопасности соответствующего уровня. И гарантированной доставки обеспечить они не могут. В случае когда устройство пользователя с приложением работает в автономном режиме, WNS может хранить до 5 обновлений плитки, если приложение использует очередь уведомлений плитки, одно уведомление с эмблемой, но не всплывающие уведомления.

Расширяемость и совместимость с существующими платформами

Новые версии приложений Windows 8 обладают собственной расширяемостью, которую возможно использовать для создания своих библиотек компонентов. Сначала создаются собственные настраиваемые компоненты с помощью C++, C# или Visual Basic и компилируете их в виде переносимых библиотек. Затем можно использовать любой поддерживаемый язык для вызова этих компонентов из своих приложений.

Среда выполнения Windows (WinRT) - это простой набор API, используемый для построения приложений для Windows Store. API-интерфейсы WinRT доступны во всех поддерживаемых языках, включая JavaScript, C++, C# и Visual Basic. Эти API-интерфейсы доступны другим платформам программирования Майкрософт, таким как .NET Framework или Windows C Runtime Library. Традиционные приложения Windows в дополнение к традиционным API-интерфейсам Win32 и .NET также могут получать доступ к части новых функциональных возможностей WinRT.

Приложения для Windows Store с HTML5 и JavaScript используют преимущества усовершенствованных веб-технологий, основанных на современных стандартах. XAML позволяет использовать C#, Visual Basic и C++. Также поддерживаются технологии Silverlight или WPF. Новые элементы управления Windows 8 были полностью реализованы на XAML, благодаря появились механизмы взаимодействия с пользователями, отражающие новые индивидуальные особенности Windows.

Графика DirectX - это один из основных компонентов Windows 8. DirectX позволяет полноэкранным приложениям для Windows Store, созданным с помощью HTML5 или XAML, отображать плавную графику без мерцаний. Независимо от выбранной модели разработки приложения для Windows Store, оно всегда будет использовать аппаратное ускорение, если аппаратное обеспечение поддерживает такую возможность. Новые графические модули Windows 8 лучше интегрированы, что облегчает совместное использование компонентов Direct2D, Direct3D и DirectCompute и позволяет использовать меньше ресурсов. Разработчикам приложений для Windows Store теперь доступны новые возможности для создания интерактивных приложений с эффектом погружения, в том числе DirectXMath, XAudio2 и XInput. В Visual Studio Express 2012 RC для Windows 8 интегрированы компоненты для создания качественной графики и отладки, среди них полностью интегрированная поддержка языка HLSL, просмотр активов Direct3D и поддержка PIX. Воспользуйтесь преимуществами современного графического оборудования для создания реалистичной графики, игр и видео. Добавьте в свои приложения для Windows Store новые возможности, например стереоскопический трехмерный просмотр с помощью DirectX 11.1.

Разработка бизнес-приложений Windows 8 предоставляет новые возможности для бизнес-приложений, особенно для планшетных компьютеров. Бизнес-приложения для Windows 8 позволяют повысить производительность труда благодаря поддержке полноэкранного режима, более удобного для взаимодействия с контентом приложения. Переключение между приложениями осуществляется крайне просто, а поддержка "прикрепленного" представления на треть экрана позволяет сотрудникам работать в многозадачном режиме. Кроме того, корпоративные разработчики могут создавать бизнес-приложения для Windows 8, используя уже знакомые им языки программирования.

Приложение для Windows Store может выполнять доступ к ресурсам пользователя или возможностям системы, только если оно специально объявляет о потребности в этих ресурсах. В результате обеспечивается четкое разграничение между приложениями и типами ресурсов, к которым каждое из них может получить доступ. Использование контрактов приложений в Windows 8 позволяет организациям упростить совместный доступ к данным из разных приложений и повысить его эффективность. Введение контрактов означает, что при доступе к данным, созданным или хранящимся в другом приложении, больше не нужно работать с различными стандартами или API, характерными для отдельных приложений. review.windows.com Развертывание в организациях

Для организаций, использующих приложения для Windows Store, Магазин Windows предоставляет варианты покупки, позволяющие напрямую управлять развертыванием приложений. Компании могут ограничивать доступ своих сотрудников к каталогу Магазина Windows или разрешать доступ только к определенным приложениям. Кроме того, организации могут развертывать приложения для Windows Store непосредственно на компьютерах, не используя инфраструктуру магазина Windows. Такой процесс называется "загрузка неопубликованного приложения". При этом созданное в организации приложение остается внутри корпоративной сети, и операции по его распространению, управлению и обновлению могут выполняться централизованно. ИТ-администраторы сохраняют контроль над установкой приложений на компьютеры пользователей и могут управлять доступом к Магазину Windows с помощью групповой политики. Используя компонент AppLocker, можно разрешить или заблокировать любое приложение из Магазина Windows.

Hyper-V

Microsoft Hyper-V в Windows 8 Профессиональная представляет собой гибкую и надежную технологию виртуализации. Она позволяет корпоративным разработчикам тестировать несколько конфигураций приложений и операционных систем на одном компьютере вместо использования отдельного компьютера для каждой конфигурации. Используя Windows 8 Профессиональная, разработчики могут тестировать и контролировать несколько сред на одном компьютере, проверять совместимость приложений и тестировать процессы развертывания без риска внесения изменений на компьютере, который активно используется.

Введение в Live Connect

Службы, подобные SkyDrive, Hotmail или Windows Live Messenger, используют свыше 500 миллионов человек. Создавая приложения для работы с этими службами, вы предоставляете пользователям новые способы взаимодействия с вашими продуктами и услугами. Чтобы сделать вашу работу более плодотворной и помочь в построении приложений, пользующихся успехом у ваших клиентов, мы предоставляем Live Connect- - набор интерфейсов API, помогающих легко и быстро интегрировать ваши приложения с такими совместимыми службами, как SkyDrive, Hotmail и Windows Live Messenger.

В интерфейсах Live Connect API используются протоколы отраслевых стандартов, например OAuth 2.0, JavaScript Object Notation (JSON) и Extensible Messaging and Presence Protocol (XMPP). Как правило, для вызова интерфейсов API вы будете использовать запросы Representational State Transfer (REST), возвращающие информацию в формате JSON. Такая архитектура позволяет нам поддерживать множество платформ, включая предназначенные для веб-приложений, настольных и мобильных приложений, подобных приложениям для операционных систем iOS и Android. Помимо этого, имеются пакеты Microsoft SDK, позволяющие разрабатывать приложения для Windows Phone и Windows 8.

Live Connect предоставляет информацию из следующих служб:

  • SkyDrive для работы с документами и мультимедиа. Ваши приложения могут вызывать интерфейсы Live Connect API для создания, чтения, обновления и удаления папок, файлов, альбомов, фотографий и видеороликов пользователя SkyDrive, а также для чтения, создания и удаления любых связанных с ними тегов и комментариев.
  • Hotmail для работы с контактами и календарями. С помощью интерфейсов Live Connect API ваши приложения могут создавать и читать контакты пользователя Hotmail, а также создавать, читать, обновлять и удалять календари пользователя и связанные с ними события.
  • Messenger для мгновенного обмена сообщениями. Ваши приложения могут обмениваться мгновенными сообщениями с контактами пользователя Messenger, сообщать о присутствии пользователя, отображать сообщение о его текущем статусе и многое другое.
  • Live для проверки подлинности пользователей и доступа к сведениям их профиля.

В данном руководстве мы начнем с краткого обзора открытых стандартов, которые мы используем в Live Connect. Затем опишем, как начать интеграцию ваших собственных приложений с Live Connect, и продемонстрируем код с примерами некоторых возможностей интерфейсов Live Connect API. В конце руководства мы укажем ссылки на полную документацию и примеры кода.

< Лекция 12 || Лекция 13: 123 || Лекция 14 >