Заключение
В курсе подробно рассмотрена система облачных вычислений Windows Azure – ее принципы, архитектура, применения, проблемы, перспективы, примеры использования. Большое внимание уделено как научному анализу, так и практической работе в Azure.
Перспективность Azure несомненна. Она расширяет горизонты мышления и практических приложений как для программистов, так и для конечных пользователей.
Материал отражает текущее состояние Azure на момент написания курса – сентябрь 2011 г.
Автор выражает благодарность Microsoft за предоставленный доступ к Azure.
Общий глоссарий
Вертикальный слой, срез (в некоторых технологиях - аспект) –совокупность рассредоточенных фрагментов кода, реализующих (сквозную) функциональность, например, проверку безопасности. Авторы концепции: проф. А.Л. Фуксман (Ростовский университет, 1979 – технология вертикального слоения; G. Kiczales (Xerox PARC, аспектно-ориентированное программирование и система AspectJ).
Клиент (client) – пользователь и (или) компьютер, использующий какие-либо программные сервисы.
Многоклиентская архитектура (multi-tenant architecture) – архитектура клиент-серверного ПО, при которой один экземпляр серверного ПО, исполняемый на сервере, обслуживает несколько клиентов (tenants – букв. клиенты, арендаторы). Пример: Web-сервис.
Многоярусная архитектура (multi-tier architecture) – архитектура ПО, при которой презентация результатов, обработка и управление данными реализованы как отдельные процессы. Пример: Использование middleware для взаимодействия с сервером и СУБД для взаимодействия с данными.
Облачные вычисления (cloud computing) – модель вычислений, основанная на динамически масштабируемых (scalable) и виртуализованных (virtual) ресурсах - данных, приложениях, ОС и др., - которые доступны и используются как сервисы через Интернет и реализуются с помощью мощных центров обработки данных (data centers).
Полнофункциональный клиент (rich client) – клиент Web-сервиса, имеющий полнофункциональный GUI и общающийся с Web-сервисом через слой промежуточного программного интерфейса (middleware), обеспечивающий его функциональность; примеры ПО для поддержки rich clients: Microsoft Silverlight, Oracle JavaFX и т.д.
Программное обеспечение как сервис (Software as a Service - SaaS) – модель разработки программ, основанная на использовании лицензируемых программных сервисов "по требованию" клиентами, получающими (покупающими) лицензии у сервис-провайдеров.
Промежуточное программное обеспечение (middleware) – совокупность слоев ПО, лежащих между клиентом и сервером и обеспечивающих их взаимодействие, например, поддержку сетевых коммуникационных протоколов
Сервер (server) – компьютер или центр обработки данных, предоставляющий программные сервисы.
Сервисно-ориентированная архитектура (SOA) – архитектура ПО, при которой программный продукт представляет собой набор простых в использовании Web-сервисов с удобным графическим Web-интерфейсом.
Слой (layer) – крупная независимая компонента архитектуры ПО. Различают горизонтальные слои (или уровни абстракции), вертикальные слои (срезы) и др.
Тонкий клиент (thin client) – клиент Web-сервиса с минимальным пользовательским интерфейсом, не имеющий состояния, сеанса, полнофункционального GUI и общающийся с Web-сервисом только через браузер и протокол HTTP посредством отправки HTTP-запросов и получения HTML-страниц.
Уровень абстракции (abstraction layer) или "горизонтальный слой" (номер N) – совокупность модулей, реализация которых использует только модули уровня N-1 (N > 0). Нулевой уровень абстракции образует аппаратура или базовые библиотеки (API). Концепция принадлежит Э. Дейкстре и сформулирована в конце 1960-х гг. в ходе разработки операционной системы THE (Технического университета Эйндховена).
Microsoft Azure Services Platform - платформа фирмы Microsoft для разработки и использования облачных сервисов на базе Microsoft.NET.
Microsoft Windows Azure - операционная система и набор инструментов фирмы Microsoft, обеспечивающий поддержку облачных вычислений ("ОC в облаке").
SQL Azure – версия СУБД Microsoft SQL Server для использования "в облаке".
Агент интерфейса (fabric agent) – агентское приложение, исполняемое на каждом из компьютеров сервиса Интерфейс (Fabric) платформы Windows Azure.
Архитектор облака – главный разработчик его архитектуры.
Внутренние приложения (on-premises applications) – приложения, исполняемые на локальном компьютере пользователя.
Вычисления (Compute) – облачный сервис платформы Microsoft Windows Azure, исполняющий пользовательские приложения в едином облаке.
Интегратор облака – его системный администратор, отвечающий за добавление компонент в облако и их изменение.
Облачные вычисления (сloud computing) –. вычисления, основанные на масштабированных и виртуализованных ресурсах (данных и программах), которые доступны пользователям через Интернет и реализуются на базе мощных центров обработки данных (data centers).
Облачные приложения (cloud applications) – приложения, фактически исполняемые в среде облачных вычислений (например, Windows Azure) на компьютерах центра обработки данных.
Платформа – набор инструментов для использования облака.
Поставщик облака - центр обработки данных, поддерживающий облачные вычисления.
Уровень инфраструктуры – предоставление полной виртуализованной платформы через облако, например, Amazon EC2.
Уровень клиента – клиентское ПО, используемое для доступа к облачным сервисам, например, web- браузер.
Уровень памяти – поддержка хранения данных пользователя и доступа к ним через облако.
Уровень платформы –программная платформа, объединяющая полный набор инструментов для развертывания и использования облачных вычислений на пользовательском компьютере (без дополнительных инсталляций, покупки оборудования и др.); пример: Microsoft.NET Azure Services Platform.
Уровень приложений – программы, доступные через облако и не требующие инсталляции на компьютере пользователя (в последнем – одно из главных преимуществ облачной модели).
Уровень сервисов – облачные сервисы, используемые через облачную модель.
Центр обработки данных (ЦОД, data center) – мощный вычислительный центр, состоящий из компьютеров, объединенных в локальную сеть, обслуживающих сервисы облачных вычислений некоторой компании.
Microsoft Azure Services Platform - платформа фирмы Microsoft для разработки и использования облачных сервисов на базе Microsoft.NET.
Microsoft Windows Azure - операционная система и набор инструментов фирмы Microsoft, обеспечивающий поддержку облачных вычислений ("ОC в облаке").
SQL Azure – версия СУБД Microsoft SQL Server для использования "в облаке".
Агент интерфейса (fabric agent) – агентское приложение, исполняемое на каждом из компьютеров сервиса Интерфейс (Fabric) платформы Windows Azure.
Архитектор облака – главный разработчик его архитектуры.
Внутренние приложения (on-premises applications) – приложения, исполняемые на локальном компьютере пользователя.
Вычисления (Compute) – облачный сервис платформы Microsoft Windows Azure, исполняющий пользовательские приложения в едином облаке.
Интерфейс (внешний облик, Fabric) - облачный сервис платформы Microsoft Windows Azure, обеспечивающий интерфейс между различными облачными приложениями и между приложениями и памятью; реализован в виде группы компьютеров.
Контроллер интерфейса (fabric controller) – программное обеспечение, управляющее работой облачного сервиса Интерфейс (Fabric) платформы Windows Azure.
Память (Storage) - облачный сервис платформы Microsoft Windows Azure, предоставляющий пользователю средства работы с данными различной структуры – большими бинарными объектами, таблицами и очередями.
Сервисная шина (service bus) – компонента платформы Microsoft Azure Services Platform.
Управление доступом (access control) – компонента платформы Microsoft Azure Services Platform.
Azure Fabric Controller – сервис, который осуществляет мониторинг и предоставляет виртуальные машины для исполнения облачных приложений
Web-роль – интерактивное .NET – приложение, обслуживаемое IIS, - Web Application или Web-сервис, основанный на Windows Communication Foundation (WCF).
Worker-роль – независимый изолированный фоновый процесс. Предоставляются способы доступа к нему со стороны внешних приложений.
Web-роль – интерактивное .NET – приложение, обслуживаемое IIS, - Web Application или Web-сервис Windows Communication Foundation (WCF).
Private (On-Premise) – частное облако; клиент-разработчик ПО управляет всеми перечисленными компонентами;
Infrastructure-as-a-Service (IaaS) – облако вида инфраструктура как сервис; клиент-разработчик ПО управляет приложениями, средами поддержки выполнения, механизмами безопасности и интеграции, базами данных, всеми остальными компонентами управляет поставщик облака (cloud provider);
Platform-as-a-Service (PaaS) – облако вида платформа как сервис; клиент-разработчик ПО управляет только своими приложениями, всем остальным управляет поставщик облака;
Software-as-a-Service (SaaS) – облако вида ПО как сервис; клиент-разработчик ПО не управляет никакими приложениями, а использует готовый веб-интерфейс.
Шина сервисов (Service Bus). Обеспечивает безопасный обмен сообщениями и сетевые возможности, которые поддерживают построение распределенных и изолированных приложений в облаке, а также гибридных приложений, сочетающих в себе локальные и облачные приложения. Шина сервисов поддерживает использование большого набора протоколов и шаблонов кода для коммуникации и обмена сообщениями.
Управление доступом (Access Control). Обеспечивает несложные методы определения идентичности и управления доступом для Web-приложений и сервисов, а также интеграции с общепринятыми поставщиками таких услуг - Active Directory®, Windows Live ID, Google, Yahoo! , Facebook.
Кэширование (Caching) – распределенный, находящийся в памяти, сервис для кэширования приложений Windows Azure и SQL Azure.
Интеграция (Integration). Сервис Integration обеспечивает интеграцию с BizTalk Server (конвейер, трансформации, адаптеры) на платформе Windows Azure, используя готовые к применению шаблоны интеграции для ускорения и упрощения разработки.
Windows Azure Storage – компонента для управления памятью в Windows Azure.
Binary Large Object (BLOB) Service, простейший способ хранения бинарных данных в Windows Azure.
REST, Representational State Transfer – один из стандартов разработки Web-сервисов, основанный на передаче информации о состоянии через аргументы и результаты методов
Table Service - поддержка работы с таблицами
Queue Service - поддержка надежного обмена сообщениями между экземплярами Web-ролей и Worker-ролей.
Traffic Manager - Управление трафиком
Соединения (Connect) - Компонента Windows Azure, предназначенная для описания и обработки виртуальной сети
CDN - Сеть кэширующих серверов (Connect Delivery Network)
Территориальная группа – группа серверов ЦОД какого-либо региона, который пользователь выбрал для предпочтительного выполнения своих сервисов.
SQL (Structured Query Language) – язык запросов к реляционным базам данных, являющийся де-факто стандартом.
SQL Azure – компонента Windows Azure для работы с реляционными СУБД, основанными на SQL-запросах
SQL Azure Database – компонента SQL Azure для работы с базами данных
SQL Azure Reporting – генератор отчетов по базам данных в системе SQL Azure
Проект – единица разработки программ в Visual Studio.
Сборка (build) – компиляция проекта в бинарный код.
Публикация проекта – создание конфигурационных файлов для его последующего развертывания в облаке.
Развертывание сервиса – перекачивание информации о нем на компьютеры облачного ЦОД.
Windows Azure – система облачных вычислений корпорации Microsoft
http://windows.azure.com – портал Windows Azure
http://windowsazurepass.com – Web-страницы для получения пробного доступа к Windows Azure
Windows Live – портал, предоставляющий набор бесплатных облачных сервисов фирмы Microsoft
http://www.live.com - портал Windows Live
Azure SDK for Java Developers – программный инструментарий для обращения к компонентам Azure из программ на различных языках.
Гостевая ОС – операционная система, которая предназначена для использования на клиентских компьютерах и под под управлением которой на клиентской машине выполняется облако.
SQL Azure Reporting – сервис для генерации отчетов по базам данных SQL Azure
Azure Marketplace – портал для накопления и распространения полезных приложений для Azure
Аспектно-ориентированное программирование (АОП) – новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах
Aspect.NET – инструмент АОП для платформы .NET, разработанный группой под руководством автора курса.
Hawaii – проект Microsoft Research по разработке приложений для мобильных телефонов под Windows Phone 7 для облачных применений в Windows Azure
Ярус (tier) – слой программного обеспечения, реализующий какую-либо независимую часть его архитектуры; например: business tier – реализация бизнес-логики; Web tier – реализация взаимодействия с Web. Если используется понятие tier, следовательно, архитектура ПО настолько сложна, что двумерная модель (горизонтальный слой / вертикальный слой) ее полностью не описывает. Tier может находиться и использоваться в любой компоненте архитектуры ПО.