Введение к работе
Актуальность темы. На сегодняшний день объектно-ориентированное программирование (ООП) является методологией, которая находит широкое применение в сфере разработки программного обеспечения (ПО). Данная методология программирования, несомненно, показала свою силу при моделировании общего поведения разрабатываемой программной системы. Однако, опыт показывает, что ООП не в достаточной мере позволяет справляться со все возрастающей сложностью программных продуктов. При разработке ПО существуют проблемы, для решения которых необходимы новые методологии, такие как аспектно-ориентированное программирование.
Аспектно-ориентированное программирование (АОП) [1] является новым подходом к разработке ПО. Данный подход позволяет осуществлять модуляризацию, разработку сквозной функциональности (cross-cutting concerns) - функциональности разрабатываемого ПО, которая принципиально по своей природе не может быть или затруднительно выделена и реализована одним модулем или набором модулей, а требует для своей реализации рассредоточенных действий, которые должны быть добавлены в различные места существующего программного кода целевого приложения. Иначе говоря, сквозная функциональность - это функциональность, реализация которой рассредоточена по коду приложения. Тем самым, АОП позволяет систематически добавлять и модифицировать новую функциональность, в том числе и относящуюся к Web-программированию. АОП является развитием процедурного и объектно-ориентированного программирования. Данная методология призвана снизить время, стоимость и сложность разработки современного программного продукта. Следует отметить, что концепция АОП не заменяет подход ООП, а органично дополняет его [2].
Суть концепции АОП заключается в том, что программная система рассматривается как совокупность различных компонентов. Каждый компонент отвечает за ту или иную функциональность. Некоторую функциональность можно реализовать в одном модуле или в нескольких. Но существует функциональность, реализация которой рассредотачивается по всей программной системе, в связи с чем ее реализация путем создания некоего модуля или нескольких модулей затруднительна, наряду с данным обстоятельством ее нельзя выделить в отдельные сущности. В отличие от ООП, АОП позволяет выделить и реализовать сквозную функциональность в отдельных модулях, называемых аспектами (aspects). Каждый аспект применяется путем систематизированного внедрения (weaving) фрагментов кода аспекта в рассредоточенные модули целевой программной системы.
Примерами сквозной функциональности являются протоколирование (logging), безопасность исполнения программы в многопоточной вычислительной среде (MT-safety), обработка ошибок, реализация подсистемы безопасности (security).
В настоящее время Web-программирование играет важную роль в сфере разработки программного обеспечения (ПО). День ото дня Web-приложения (Web applications) быстро развиваются и постепенно заменяют приложения для настольной системы (desktop applications). Развитие Web-приложений является важной тенденцией эволюции компьютерных технологий, операционных систем, сетевых архитектур и прикладных программ. Поэтому применение АОП в Web-программировании, как показано в данной работе, имеет важное значение для разработки Web-приложений. Оно позволяет разработчикам снизить время, стоимость и сложность разработки, упростить сопровождение Web-продуктов и внесение в них изменений, создавать надежные и безопасные Web-приложения.
Цель работы. В данной диссертационной работе рассмотрено применение АОП в Web-программировании для платформы .
Web-программирование для данной платформы реализуется с помощью [3], а АОП для платформы .NET реализовано в системе [4], разработанной в лаборатории Java-технологии математико-механического факультета Санкт-Петербургского Госудаственного Университета под научным руководством профессора Сафонова В. О. Целями работы являются:
-
Анализ методов применения АОП и системы для разработки и модификации ASP.NET-приложений.
-
Выделение некоторых существенных задач Web-программирования, к которым можно применить АОП.
-
Разработка библиотеки аспектов в системе для решения выделенных задач Web-программирования.
-
Анализ эффективности и производительности применения АОП для разработки ASP.NET-приложений.
Методы исследования. В диссертации используется теоретический аппарат объектно-ориентированного и аспектно-ориентированного программирования.
Научная новизна. Научная новизна работы обусловлена в первую очередь новизной АОП, а также новизной подхода применения АОП и системы для разработки и модификации ASP.NET-приложений. Все полученные результаты диссертации являются новыми.
Теоретическая и практическая ценность. В рамках данной работы выделены некоторые существенные задачи Web-программирования, к которым можно применить АОП и предложен аспектно-ориентированный подход к их решению, Рассмотренные в данной работе методы применения АОП и системы для разработки и модификации ASP.NET-приложений позволяют снизить время, стоимость и сложность разработки, упростить сопровождение Web-продуктов и внесение в них изменений, создавать надежные и безопасные Web-приложения. Разработанная
библиотека аспектов может использоваться в разработке Web-приложений, требующих функциональности выделенных задач Web-программирования.
Апробация работы. Основные результаты и выводы диссертационной работы докладывались на следующих научных конференциях и семинарах:
-
Межвузовский конкурс-конференция студентов, аспирантов и молодых ученых Северо-Запада «Технологии Microsoft в теории и практике программирования». Россия, Санкт-Петербург, СП6ГПУ,2011.
-
Межвузовский конкурс-конференция студентов, аспирантов и молодых ученых Северо-Запада «Технологии Microsoft в теории и практике программирования». Россия, Санкт-Петербург, СПбГПУ, 2010.
-
Всероссийская конференция с элементами научной школы для молодежи «Проведение научных исследований в области обработки, хранения, передачи и защиты информации». Россия, Ульяновск, УлГТУ, 2009.
-
Семинары кафедры информатики и лаборатории Java-технологии математико-механического факультета СПбГУ.
Публикация результатов. Основные результаты диссертации опубликованы в работах [6 - 11]. В работах [6-11] Сафонову В. О. принадлежат общие постановки задач, а Нгуен Ван Доану - разработка и реализация методов и принципов решения данных задач, разработка примеров и программного комплекса. В работе [6] соискателю принадлежат описание методов применения АОП для задач безопасности в -приложениях, анализ эффективности и производительности применения аспектов безопасности в ASP.NET-приложениях. В работе [7] соискатель описывает аспектно-ориентированный подход к решению задач Web-программирования с использованием системы . В работе [8] соискатель описывает методы применения АОП для задач разработки
ASP.NET-приложений, реализацию аспектов поддержки Web-программирования, анализ эффективности и производительности применения Web-аспектов в Web-приложениях. В статье [9] соискателю принадлежит описание методов и принципов применения АОП для задач разработки Web-приложений на платформе . В публикации [10] соискатель описывает применение АОП при разработке ASP.NET-приложений на основе системы . В публикации [11] соискателем описывается применение АОП и системы для реализации аспектов безопасности в ASP.NET-приложениях. Работы [6 - 8] опубликованы в журналах, входящих в перечень ВАК.
Структура и объем диссертации. Диссертационная работа состоит из введения, пяти глав, заключения, списка литературы. Работа содержит 125 страниц, 14 рисунков, 4 таблицы, список литературы из 111 наименований.