Приложение 4. Совместное использование Windows Server AppFabric и Windows Azure AppFabric

Для серверной операционной системы Windows Server 2008 в роли сервера приложений поставляется набор бесплатных расширений, известный под названием Windows Server AppFabric, в состав которого входят два ключевых компонента — Windows Server AppFabric Host (ранее известный под кодовым названием Dublin) и Windows Server AppFabric Cache (ранее известный под кодовым названием Velocity). Эти компоненты показаны на следующей схеме (рис. 46), отражающей архитектуру Windows Server AppFabric.

Рис. 46. Архитектура Windows Server AppFabric

Предполагается, что Windows Server AppFabric будет служить основой для создания приложений, выполняющихся в инфраструктуре заказчиков (on premises), хотя общие архитектурные подходы, связанные с реализацией логики приложений в виде сервисов, могут быть использованы как в локальной, так и в «облачной» реализации приложений.

В дальнейшем планируется дополнить соответствующими компонентами платформу Windows Azure — таким образом, приложения, созданные на основе Windows Server AppFabric смогут быть перенесены в «облачную» инфраструктуру без внесения каких-либо существенных изменений.

Windows Server AppFabric Host

Начиная с .NET Framework 3.5 разработчики стали использовать Windows Workflow Foundation и Windows Communication Foundation совместно, для создания логики, вызываемой через сервисы — такой подход получил название Workflow Services. Для хостинга таких сервисов разработчикам требовалось либо использовать веб-сервер, либо сервис Windows Process Activation Service (WAS) и реализовывать большое число дополнительного кода, требовавшегося для управления Workflow Services. Компонент Windows Server AppFabric Host существенно упрощает эту задачу, расширяя возможности сервера приложений рядом дополнительных функций, среди которых сохраняемость (persistence), хостинг, мониторинг и конфигурируемость.

В состав Windows Server AppFabric входит набор командлетов PowerShell для развертывания приложений и последующего управления ими из командной строки или через сценарный код. Интеграция Windows Server AppFabric с Internet Information Services (IIS) обеспечивает средства управления и мониторинга, встроенные в консоль управления IIS.

Использование Windows Server AppFabric Host представляет собой логичный шаг на пути к созданию распределенных и масштабируемых приложений. При необходимости, они могут быть перенесены либо в локальный центр обработки данных, либо в облако, на платформу Windows Azure, где будут предоставляться схожие сервисы в дополнение к уже существующим средствам типа Service Bus и AppFabric Access Control.

Сценарии использования Windows Server AppFabric Host

  • Хостинг WCF-сервисов, особенно Workflow Services.
  • Масштабируемость Workflow Services.
  • Связь Workflow Services с другими приложениями через BizTalk Server.
  • Связь с удаленными сервисами через Windows Azure Service Bus.
  • Создание композитных приложений на основе Workflow Services.

Windows Server AppFabric Cache

Данный компонент Windows Server AppFabric обеспечивает распределенное, располагаемое в памяти кеширование (distributed in-memory cache), функциональность которого может использоваться для повышения времени отклика .NET-приложений, а также для решения задач обеспечения масштабируемости и высокой доступности приложений. По мере роста числа пользователей приложений, работающих с данными или веб-сайтов, обслуживающих большое число клиентов, доступ к данным (особенно если они располагаются на одном сервере баз данных) может оказаться тем критическим компонентом, который не сможет обеспечивать адекватную реакцию на возрастающие запросы.

Использование механизмов кеширования позволяет реализовать быстрый доступ к наиболее часто используемым данным за счет организации т.н. «локального кеша» и, таким образом, снизить число обращений непосредственно к базе данных.

Механизмы кеширования используются во многих приложениях. Например, веб-сайты могут использовать ASP.NET Caching, приложения Enterprise Library Caching Block, также часто разработчики создают собственные решения для реализации механизмов кеширования. Средства, предоставляемые Windows Server AppFabric Cache, позволяют унифицировать подход к реализации механизмов кеширования, особенно для таких сценариев, когда требуется наличие распределенной масштабируемой среды.

Основным компонентом Windows Server AppFabric Cache является «клиент кеша», например ASP.NET-страница в рамках веб-сайта. «Клиент кеша» обращается к «кластеру кеша», состоящему из набора серверов, называемых «серверами кеша». На каждом сервере работает экземпляр Windows Server AppFabric Cache и реализован определенный набор кешированных данных. Каждый «клиент кеша» также может и иметь «локальный кеш», реализация которого также возможна средствами, предоставляемыми Windows Server AppFabric Cache.

Сценарии использования Windows Server AppFabric Cache

  • Кеширование данных для ASP.NET-страниц, когда данные хранятся в объекте Session. Данный сценарий реализуется без каких-либо изменений в коде приложения — меняются только конфигурационные файлы.
  • Обеспечение высокой доступности приложений за счет создания копий кеша на других серверах кластера.

Ниже мы рассмотрим несколько сценариев совместного использования Windows Server AppFabric и Windows Azure AppFabric.

Как мы помним, Windows Azure AppFabric предоставляет два сервиса: Service Bus — сервис для перенаправления сообщений от клиентов через Windows Azure приложениям, выполняющимся у заказчиков, и Access Control — сервис для обеспечения механизмов аутентификации и авторизации. При совместном использовании возможностей Windows Server AppFabric и Windows Azure AppFabric может быть, например, решена задача обеспечения доступности сервисов, работающих в инфраструктуре Windows Server AppFabric, через Интернет. В этом случае можно воспользоваться сервисом Service Bus, который обеспечит доступность соответствующего сервиса для внешних (находящихся за сетевым экраном) пользователей (рис. 47).

Рис. 47. Совместное использование Windows Server AppFabric и Windows Azure AppFabric — доступ к сервисам

Примерно тот же сценарий может быть реализован и при обеспечении безопасного доступа внешних пользователей или приложений к сервисам, работающим в инфраструктуре Windows Server AppFabric. В этом случае мы используем сервис Access Control, входящий в состав Windows Azure AppFabric (рис. 48).

Рис. 48. Совместное использование Windows Server AppFabric и Windows Azure AppFabric — контроль доступа