Санкт-Петербургский государственный университет
Опубликован: 20.12.2011 | Доступ: свободный | Студентов: 1149 / 54 | Оценка: 3.87 / 4.00 | Длительность: 13:43:00
Лекция 15:

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

< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Аннотация: В данной лекции рассмотрены вопросы взаимодействия двух новейших технологий и парадигм вычислений и разработки программ – облачных вычислений и аспектно-ориентированного программирования (АОП) [1, 2], в котором автор курса является одним из ведущих экспертов России и широко известным специалистом по АОП в мире. По мнению автора, изложенному и обоснованному в данной лекции, АОП может быть с успехом применено к облачным вычислениям, в частности, к системе Windows Azure.

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

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

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

Аспектно-ориентированное программирование (АОП) [1, 2] – новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах. Под сквозной функциональностью понимается функциональность, реализация которой представляет собой совокупность рассредоточенных фрагментов кода, реализующих эту общую функциональность, и которую полностью, по принципиальным соображениям, нельзя собрать в один традиционный модуль (или группу модулей). Примеры – проверки безопасности, трассировка, управление ошибочными ситуациями и др. Все они объединяются под одним общим названием надежные и безопасные вычисления (trustworthy computing, см. "Обзор архитектуры современных программных систем" ).

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

Нашей группой сотрудников мат-мех. факультета СПбГУ разработана уникальная система АОП для платформы .NETAspect.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 и др.

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

увеличить изображение
Рис. 14.2. Обложка монографии В.О. Сафонова "Using aspect-oriented programming for trustworthy software development"

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

На рис. 14.3 приведен фрагмент страницы проекта Aspect.NET (http://www.aspectdotnet.org), содержащий общую информацию о проекте Aspect.NET и ссылки, которые доступны на нашем сайте.

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

увеличить изображение
Рис. 14.3. Сайт Aspect.NET: Общая информация и ссылки

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

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

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

увеличить изображение
Рис. 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.

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

увеличить изображение
Рис. 14.5. Пример Web-аспекта в системе Aspect.NET: Запуск страницы
< Лекция 14 || Лекция 15: 12 || Лекция 16 >
Владимир Сафонов
Владимир Сафонов
Россия
Анастасия Григорьева
Анастасия Григорьева
Россия, СПб