Приложение 5. Примеры решений

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

Веб-приложение

Рассмотрение примеров приложений в облаке мы начнем с такого популярного типа приложения как веб-приложение. Данный тип приложения представляет собой классический паттерн запрос-ответ, при котором запрос по протоколу HTTP(S) инициируется браузером, работающим на клиентском устройстве, таком как персональный компьютер. Инфраструктура облачной платформы направляет запрос одному из экземпляров веб-роли, реализованной в отдельно работающей виртуальной машине. В свою очередь, веб-сервер, работающий в веб-роли, получает запрос и активирует соответствующий прикладной код, использующий ASP.NET MVC для формирования HTML-интерфейса и Entity Framework для объектно-ориентированного доступа к данным в SQL Azure. Архитектура такого приложения показана на рис. 49.

Рис. 49. Веб-приложение в Windows Azure Platform

Параллельная обработка массивов данных

Рассмотрим другое типичное использование облачной платформы — параллельная обработка больших массивов данных в фоновом режиме. В данном случае толстый клиент, например приложение на Windows Presentation Foundation, обращается к веб-сервису, реализованному в веб-

роли с использованием технологии Windows Communication Foundation. Прикладной код получает входные данные и помещает запрос на обработку в очередь сообщений Azure Queue. Далее  выполнение приложения происходит в асинхронном режиме. Параллельно работающие прикладные роли, опрашивают очередь сообщений и получают запрос на обработку данных. Обработав данные и поместив результат в Azure Table, прикладные роли продолжают опрос очереди сообщений на предмет появления новых заданий. Архитектура такого приложения показана на рис. 50.

Рис. 50. Веб-сервис и параллельная обработка с использованием очередей сообщений

Интеграция облака с локальными приложениями

Еще одно типичное приложение — интеграция информационных систем, расположенных в облаке, с существующими системами в локальной инфраструктуре. Ниже приводится пример сервис-ориентированного приложения, передающего сообщения из внешней информационной системы облачному сервису. В локальном ЦОДе используется BizTalk сервер в качестве средства интеграции с приложениями внутри организации. Компонент Windows Azure AppFabric Service Bus — сервисная шина применяется для унифицированной передачи сообщений веб-сервису, реализованному в веб-роли. Веб-сервис далее взаимодействует с приложением, мигрированном в облако с использованием роли виртуальной машины. Архитектура такого приложения показана на рис. 51.

Рис. 51. Интеграция облака с внешними системами в СОА

RIA и федеративная безопасность

Помимо функциональной интеграции на уровне сервисов в облачных вычислениях актуальна и часто применяется схема единого входа и федеративной безопасности. В данном варианте Rich Internet Application обращается к Windows Azure AppFabric Access Control Service — сервису контроля доступа для аутентификации запроса к веб-сервису. Веб-сервис не реализует собственной схемы аутентификации, а доверяет задачу проверки аутентичности обращающегося к нему клиента внешнему сервису. Получив удостоверение подлинности, веб-сервис взаимодействует с хранилищем Azure BLOB для извлечения медиа-файлов. Azure CDN применяется для автоматического кеширования часто используемых цифровых объектов, извлекаемых из хранилища Windows Azure (рис. 52).

Рис. 52. RIA и федеративная безопасность

Приведенные выше типовые решения далеко не исчерпывают возможности применения Windows Azure Platform и служат лишь для иллюстрации некоторых ключевых сценариев использования основных возможностей облачной платформы Microsoft.