Windows Azure AppFabric
Цель лекции: Ознакомление с Windows Azure AppFabric – основной компоненты Windows Azure для управления приложениями; с компонентами самой AppFabric и их возможностями для пользователей.
Презентацию к данной лекции Вы можете скачать здесь.
5.1. Введение
Windows Azure AppFabric – основная компонента Azure, предназначенная для управления приложениями в "облаке". Слово fabric буквально означает "ткань". По классу ПО (см. "Обзор архитектуры современных программных систем" ) Azure Fabric относится к промежуточному ПО (middleware). Azure AppFabric предназначена для поддержки разработки, развертывания и обслуживания приложений в Azure Platform.
Windows Azure AppFabric предоставляет современную облачную платформу программного обеспечения промежуточного уровня для разработки, развертывания и управления приложениями на платформе Windows Azure. Кроме того, AppFabric обеспечивает высокую производительность программистов на уровне модели Platform-as-a-Service (PaaS) в среде Windows Azure. AppFabric обеспечивает связь существующих приложений разработчика с облаком и поддерживает их безопасную связь в сети, связывающей различные географически удаленные точки, и обеспечивает целостную модель разработки как для Windows Azure, так и для Windows Server.
Наконец, AppFabric обеспечивает более высокую продуктивность разработки, предоставляя более высокий уровень абстракции для разработки коммунникационных приложений и упрощает сопровождение приложения, выбирая оптимальные возможности используемой программно-аппаратной инфраструктуры.
5.2. Компоненты облачных платформ. Облачные платформы типа Private (On-Premise), Infrastructure-as-a-Service, Platform-as-a-Service, Software-as-a-Service
Согласно классификации в работе [2], любая облачная платформа состоит из следующих основных компонент:
- приложения (applications)
- среды поддержки выполнения (runtimes)
- механизмы безопасности и интеграции (security & integration)
- базы данных (databases)
- серверы (servers)
- средства виртуализации (virtualization)
- серверное компьютерное оборудование (server hardware)
- память (storage)
- сетевые средства (networking).
Будем далее придерживаться этой классификации.
В соответствии с ней, облака подразделяются на следующие виды:
- Private (On-Premise) – частное облако; клиент-разработчик ПО управляет всеми перечисленными компонентами;
- Infrastructure-as-a-Service (IaaS) – облако вида инфраструктура как сервис; клиент-разработчик ПО управляет приложениями, средами поддержки выполнения, механизмами безопасности и интеграции, базами данных, всеми остальными компонентами управляет поставщик облака (cloud provider);
- Platform-as-a-Service (PaaS) – облако вида платформа как сервис; клиент-разработчик ПО управляет только своими приложениями, всем остальным управляет поставщик облака;
- Software-as-a-Service (SaaS) – облако вида ПО как сервис; клиент-разработчик ПО не управляет никакими компонентами, все делает за него автоматически поставщик облака.
По классификации, Windows Azure относится к облачной платформе вида PaaS, т.е. клиенту-разработчику предоставляются средства управления облачными приложениями (это как раз и обеспечивает компонента AppFabric).
Пример облачной платформы типа SaaS – Windows Live: она предоставляет готовые облачные приложения и сервисы, например, аналог Microsoft Office, пользователь может их применять для своих задач, но сам своих облачных приложений не создает).
Отметим еще раз, что в облаке вида платформа как сервис [2], в отличие от облака вида инфраструктура как сервис, клиент облака управляет только своими приложениями.
Виды облаков и их компоненты изображены на рис. 5.1 [2].
5.3. Архитектура и компоненты Windows Azure AppFabric
Архитектура Windows Azure AppFabric изображена на рис. 5.2.
Windows Azure AppFabric состоит из трех основных компонент:
- Access Control (управление доступом)
- Bus Service (Сервис шины)
- Cache (Кэш – Ассоциативная память).
Windows Azure AppFabric обеспечивает предварительно подготовленные, высокоуровневые сервисы ПО промежуточного уровня, которые повышают уровень абстракции и уменьшают сложность разработки облачных приложений. Эти сервисы открыты и носят многоязыковый характер, т.е. могут быть использованы из программы, написанной на другом языке (любом языке, реализованном в .NET; Java; JavaFX Script; Ruby, PHP и др.), и предоставляют разработчикам мощные библиотеки классов для разработки облачных приложений. Разработчики могут использовать каждый из этих двух сервисов отдельно или объединять сервисы в одно составное программное решение. Эти сервисы включают:
Шину сервисов (Service Bus). Обеспечивает безопасный обмен сообщениями и сетевые возможности, которые поддерживают построение распределенных и изолированных приложений в облаке, а также гибридных приложений, сочетающих в себе локальные и облачные приложения. Шина сервисов поддерживает использование большого набора протоколов и шаблонов кода для коммуникации и обмена сообщениями.
Управление доступом (Access Control). Access Control обеспечивает несложные методы определения идентичности и управления доступом для Web-приложений и сервисов, а также интеграции с общепринятыми поставщиками таких услуг - Active Directory®, Windows Live ID, Google, Yahoo! , Facebook.
Кэширование (Caching) – распределенный, находящийся в памяти, сервис для кэширования приложений Windows Azure и SQL Azure.
Интеграция (Integration). Сервис Integration обеспечивает интеграцию с BizTalk Server (конвейер, трансформации, адаптеры) на платформе Windows Azure, используя готовые к применению шаблоны интеграции для ускорения и упрощения разработки. Он также поддерживает высокоуровневые возможности для бизнес-пользователей, такие, как Business Activity Monitoring and Rules, а также "портал самообслуживания" для сообщества торговых партнеров и конвейеры business-to-business.
Пользовательский код (Custom Code). В дополнение к предварительно подготовленным сервисам промежуточного программного обеспечения, AppFabric также содержит все необходимо окружение для пользовательских кодов для .NET, например, web-сервисов, разработанных в среде Windows Communication Foundation (WCF), и рабочие планы, построенные с использованием Windows Workflow Foundation (WF). Поддерживает мощный и эластичный хостинг пользовательской бизнес-логики как части Вашего облачного приложения.
5.4. Использование Windows Azure AppFabric средствами Java-технологии
На рис. 5.3 представлены ссылки на инструменты разработки облачных приложений в Windows Azure средствами Java-технологии - AppFabric SDK для разработчиков.
Несмотря на то, что фирма Oracle еще только решает, каким образом ввести в Java-технологию явные средства поддержки облачных вычислений, уже сейчас доступны инструменты, позволяющие работать в облаке на Java, но не в облаке Oracle, а в облаке Microsoft Windows Azure. Это очень важный результат корпорации Microsoft.