Платформа облачных вычислений Microsoft Windows Azure

Windows Azure и аспектно-ориентированное программирование (АОП)

Показывать лекцию целиком

Цель лекции: Изучение и анализ методов взаимодействия облачных вычислений и аспектно-ориентированного программирования.

Презентацию к данной лекции Вы можете скачать здесь.

14.1. Аспектно-ориентированное программирование (АОП): общие принципы. Система Aspect.NET

Аспектно-ориентированное программирование (АОП) [лекцию 1).

Более полная информация об АОП приведена в [1, 2], а также на сайте аспектно-ориентированной разработки программ aosd.net (см. рис. 14.1).

Нашей группой сотрудников мат-мех. факультета СПбГУ разработана уникальная система АОП для платформы .NET – Aspect.NET, имеющая пользователей в 26 странах мира. В данной лекции рассмотрен пример применения АОП средствами системы Aspect.NET для модификации облачного ASP.NET – приложения. Пример разработан аспирантом мат-меха Нгуен Ван Доаном (Вьетнам), которому автор курса выражает искреннюю благодарность.

(рис 14.1) Сайт аспектно-ориентированной разработки программ

14.2. Монография В.О. Сафонова "Using aspect-oriented programming for trustworthy software development"

Автором курса написана монография по АОП на английском языке [1], ставшая классикой в области технологий разработки программ. На рис. 14.2 приведена обложка книги, опубликованная на нашем сайте проекта Aspect.NET (www.aspectdotnet.org). Интересующиеся читатели могут заказать книгу через сайты amazon.com, amazon.de и др.

(рис 14.2) Обложка монографии В.О. Сафонова "Using aspect-oriented programming for trustworthy software development"

14.3. Сайт Aspect.NET: Общая информация и ссылки

На рис 14.3), содержащий общую информацию о проекте Aspect.NET и ссылки, которые доступны на нашем сайте.

(рис 14.3) Сайт Aspect.NET: Общая информация и ссылки

14.4. Состав группы разработчиков Aspect.NET

Состав нашей группы разработчиков Aspect.NET приведен на рис. 14.3. Система используется в 26 странах. По АОП и системе Aspect.NET защищено три кандидатских диссертации (Д.А. Григорьев – ныне доцент мат-мех. факультета СПбГУ; М.К. Грачев и Р.С. Муханов); готовятся к защите еще несколько диссертаций. Таким образом, проф. В.О. Сафоновым создана на мат-мех. факультета СПбГУ первая в России научная школа по АОП, которая является одной из ведущих в мире. На рис. 14.4a приведены ссылки на работающие примеры аспектов из монографии В.О. Сафонова.

(рис 14.4) Состав группы разработчиков Aspect.NET(рис 14.4a) Ссылки на работающие примеры аспектов из монографии В.О. Сафонова по АОП

14.5. Принципы применения АОП в Azure. Пример Web-аспекта в системе Aspect.NET

Рассмотрим теперь на примере, каким образом АОП и система Aspect.NET применяется к облачному приложению (ASP.NET Web-сервису). Общий принцип в следующем. Облачное приложение – это ASP.NET Web-сервис. Он содержит .aspx – страницы и их управляющие коды (code-behind). Эти управлющие коды, представляющие собой обработчики типовых событий, связанных со страницей (загрузка страницы и т.д.) могут быть модифицированы. Благодаря системе Aspect.NET, эти модификации выполняются автоматически и систематизировано под управлением аспектов – особых модулей (сборок .NET), содержащих условия внедрения аспекта и действия аспекта. Условие внедрения задает фильтр для поиска в целевом приложении (в данном случае – в управляющем коде страниц) так называемых точек присоединения (join points), каждая из которых представляет собой вызов метода, например, Page_Load(). Система Aspect.NET, осуществив поиск всех потенциальных точек внедрения, затем выполняет собственно внедрение, т.е. вставляет перед, после или вместо каждого такого вызова вызов действия аспекта (статического публичного метода).

Для примера обработаем с помощью аспекта простое опубликованное в облаке приложение. Результат его запуска с помощью браузера изображен на рис. 14.5.

(рис 14.5) Пример Web-аспекта в системе Aspect.NET: Запуск страницы

14.6. Вход на страницу демонстрации Web-аспекта

Пример разработан таким образом, что активизация аспекта для внедрения в целевое приложение выполняется при входе (login) на сайт примера.

Войдя на сайт (рис. 14.6), получаем на текущей странице трассировочные сообщения о вызовых методов обработки страницы.

(рис 14.6) Вход на страницу демонстрации Web-аспекта

14.7. Вход на страницу демонстрации Web-аспекта с управляющим кодом страницы, модифицированным путем применения аспекта

Теперь выполним аналогичные действия со страницей, управляющий код которой модифицирован с помощью аспекта. Как говорится, почувствуйте разницу! Добавились новые трассировочные сообщения при вызове методов обработки страницы которые были вставлены аспектом (т.е. системой Aspect.NET).

(рис 14.7) Вход на страницу демонстрации Web-аспекта с управляющим кодом страницы, модифицированным путем применения аспекта

14.8. Пояснения к примеру Web-аспекта: Архитектура аспекта и принципы его применения

На последующих трех рисунках – рис. 14.8, рис. 14.9 и рис. 14.10 – приведены необходимые пояснения к примеру, визуализация которых в примере реализована в виде справки и поддержки (help). Приведены коды управляющих методов страницы и код аспекта, модифицирующего их.

(рис 14.8) Код метода Load, вызываемого при загрузке страницы в браузер(рис 14.9) Код действий аспекта, применяемых к методу Load (рис 14.10) Код действий аспекта, применяемых к методу InitPage

14.9. Резюме

Аспектно-ориентированное программирование и система Aspect.NET успешно применимы для платформы Windows Azure, что показано на содержательном примере. Применение Aspect.NET позволяет гибко управлять функциональностью ASP.NET – страниц, добавляя вызовы необходимых действий (кода) при выполнении типовых действий над страницами.

В настоящее время в группе проекта Aspect.NET под руководством автора курса ведется работа по созданию библиотеки аспектов для облачных вычислений в системе Azure.

Другие возможные важные направление использования АОП и системы Aspect.NET в облачных вычислениях системы Azure, в которых также ведутся исследования в нашей группе:

  • разработка новой версии системы Aspect.NET, совместимой с Visual Studio 2010 и применимой для внедрения аспектов при разработке облачных приложений Azure
  • перенос в облако Azure самой системы Aspect.NET (Aspect.NET.Azure).
  • Ключевые термины

    Аспектно-ориентированное программирование (АОП) – новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах

    Aspect.NET – инструмент АОП для платформы .NET, разработанный группой под руководством автора курса.

    Краткие итоги

    Подсистема Windows Azure

    Набор для практики

    Вопросы

  • Что такое АОП?
  • Что такое Aspect.NET?
  • Каковы методы применения АОП и Aspect.NET для облачных вычислений?
  • Упражнения

  • Войдите в облако Azure и поэкспериментируйте с облачным примером на использование АОП для Azure.
  • Темы для курсовых работ, рефератов, эссе

  • Применение АОП для облачных вычислений (реферат).
  • Вернуться к учебному плану