Автореферат (1148250), страница 2
Текст из файла (страница 2)
В исследовании комбинировались два вида методологии. Первый, типичный для диссертационного исследования: обобщение, анализ и синтез теоретического и практического материала и второй, специфичный для темы исследования и задач практическогопрограммирования облачных веб-приложений на платформе Microsoft Azure:1) сквозная функциональность из библиотеки Microsoft EnterpriseLibrary (которая реализует в виде функциональных блоков практическиеметоды решения наиболее актуальных задач в разработке программногообеспечения);2) методы низкоуровневого программирования MSIL-сборокдля расширения возможностей Aspect.NET;3) метод программирования интерпретатора cmd.exe для описаниясобытий пред- и пост-компиляции Microsoft Visual Studio;4) методикиаспектно-ориентированногопрограммированияи рефакторинга.Степень достоверности. Достоверность и обоснованность результатовподтверждается дополняющими друг друга, согласующимися экспериментальными данными, полученными автором при применении разработанныхметодик для целевых программных продуктов.Обоснованность полученных результатов обеспечивается1) корректным применением теории объектно-ориентированногои аспектно-ориентированного программирования;2) результатами сравнительного анализа разработанных методовс аналогичными подходами к АОП;3) результатом улучшения метрики интегрированной оценки качества исходного кода целевого приложения после проведения АОПрефакторинга;54) позитивным опытом внедрения и эксплуатации ПО, разработанного с применением предложенных методов.Научная новизна работы заключается в том, что разработанная технология бесшовного расширения функциональности облачных веб-приложенийна платформе Microsoft Azure с помощью подсистемы применения аспектовAspect.NET предложена впервые.
Разработанная автором библиотека аспектов AzureLibrary впервые позволила расширить функциональность облачныхвеб-приложений, не затрагивая их исходный код, конфигурационные файлыили настройки проекта.Кроме того, разработанная в ходе исследования методика интеграциисквозной функциональности отличается от ранее созданных методик использования АОП своей бесшовностью применения. Это позволяет получать вебприложения с высокой производительностью, которые легко сопровождать, иони не будут привязаны к конкретному АОП-инструменту, как это имеет место в альтернативных методиках АОП-программирования для платформыMicrosoft .NET.Таким образом, в данной работе рассмотрен принципиально новый подход к разработке облачных веб-приложений на платформе Microsoft Azure.Его преимуществами перед существующими технологиями являются: бесшовное добавление функциональности к веб-приложениям, высокая производительность, улучшение качества исходного кода и возможность использования существующих сторонних библиотек для реализации сквознойфункциональности.Теоретическая и практическая значимость работы.
В рамках диссертационного исследования разработана методика для бесшовного расширенияфункциональности облачных веб-приложений на платформе Microsoft Azureс помощью АОП-инструмента Aspect.NET. Предложенный способ интеграции Aspect.NET в среду программирования Microsoft Visual Studio повышаетудобство создания аспектов для платформы Microsoft.NET. Разработанныйнабор АОП-рефакторингов облачных ASP.NET веб-приложений демонстрирует повышение качества исходного кода целевого приложения за счетпринципа “разделяй и властвуй”. Продемонстрированный в диссертации метод использования в аспектах стороннего решения Microsoft Enterprise Library Integration Pack дает возможность применять существующие библиотеки, компоненты и веб-сервисы для реализации сквозной функциональности,упрощая сами аспекты.Практическая ценность заключается в реализации предложенных модификаций в Aspect.NET, создании библиотеки аспектов AzureLibraryи примеров ее применения.
Также разработаны примеры, иллюстрирующиеэффективность предложенного набора АОП-рефакторингов.Так коэффициент сопровождаемости кода целевых приложений, подвергнутых АОП-рефакторингу улучшился на 3-25%. В проекте с OrchardCMS АОП-рефакторинг с помощью 6 аспектов повысил коэффициент сопро6вождаемости целевых классов на 5-12%. Таким образом, доказан существенный технический эффект использования предложенных алгоритмов и методов при написании и сопровождении программных продуктов. Сведения опрактическом использовании полученных автором диссертации научных результатов приведены в актах о внедрении программных принципов и библиотек, разработанных в рамках исследования (см. в приложении к диссертации).Положения, выносимые на защиту1.
Разработана и реализована библиотека аспектов AzureLibraryдля расширения облачных веб-приложений следующими видами функциональности: перенаправление протоколирования в хранилище отладочной информации Microsoft Azure, кэширование в распределенном облачном кэшеинформации, получаемой из SQL Azure, и обработки исключений. Применение AzureLibrary и Aspect.NET приводит к добавлению новой функциональности без какой-либо модификации целевого проекта.2. Предложена методика “замещающего” аспектного наследника, который позволяет перехватывать обратные вызовы методов от инфраструктурыMicrosoft Azure, поддерживающая возможность бесшовного применения аспектов в Aspect.NET.
Также предложено раздельное хранение целевой и аспектной конфигурации, а для этого разработан алгоритм по их слиянию прикомпиляции аспектного проекта. Данные предложения реализованы в программном комплексе Aspect.NET.3. Найден способ интеграции компоновщика аспектов Aspect.NETв Microsoft Visual Studio для обеспечения возможности публикации, а такжелокальной и удаленной отладки в облаке Azure АОП-программ.4. Разработан метод бесшовной интеграции сквозной функциональностибиблиотеки Microsoft Enterprise Library Integration Pack for Azure в целевоеприложение на примере аспектов логгирования (Logging Application Block),автоматического масштабирования облачного приложения (AutoscalingApplication Block), реакции на исключительные ситуации (Transient FaultHandling).
Это позволило расширить функциональность облачных приложений с помощью указанной библиотеки. Данные аспекты также реализованыавтором в рамках библиотеки AzureLibrary.5. Разработана и протестирована методика улучшения индекса сопровождаемости (Maintanability Index) целевых классов с помощью проведения ихАОП-рефакторинга. Спроектирован набор из 5 аспектно-ориентированныхрефакторингов на основе Aspect.NET для классов облачных веб-приложений.Проведенные эксперименты над типичными веб-приложениями (N2CMS иOrchard CMS) показали улучшение индекса сопровождаемости целевых классов на значения от 2 до 25%.Все полученные результаты являются новыми.Апробация результатов.
Основные результаты и выводы диссертационной работы докладывались и обсуждались на следующих научных конфе7ренциях и семинарах: 1) конференция “Технологии Microsoft в теории ипрактике программирования”, 2011, СПбГПУ, Санкт-Петербург; 2) втораямежвузовская научная конференция по проблемам информатики “СПИСОК2011”, 2011, СПбГУ, Санкт-Петербург; 3) всероссийская научная конференция по проблемам информатики “СПИСОК-2012”, 2012, СПбГУ, СанктПетербург; 4) конференция “Технологии Microsoft в теории и практике программирования”,2012,СПбГПУ,Санкт-Петербург;5) межвузовский конкурс-конференция “Технологии Microsoft в теориии практике программирования”, 2013, СПбГПУ, Санкт-Петербург;6) межвузовская научная конференция по проблемам информатики “СПИСОК-2013”, 2013, СПбГУ, Санкт-Петербург; 7) всероссийская научная конференция по проблемам информатики “СПИСОК-2014”, 2014, СПбГУ,Санкт-Петербург; 8) international conference on numerical analysis and appliedmathematics 2014 (ICNAAM-2014), 2014, Rhodes, Greece; 9) всероссийскаянаучная конференция по проблемам информатики “СПИСОК-2016”, 2016,СПбГУ, Санкт-Петербург.Структура и объем диссертации.
Диссертационная работа состоитиз введения, шести глав, заключения, библиографического списка, приложения. Работа изложена на 150 страницах машинописного текста, содержит 7рисунков, 3 таблицы, 58 листингов, 3 акта о внедрении и список литературыиз 132 наименований.Основное содержание работыВо введении обоснована актуальность работы, сформулированы цели,задачи, объект и предмет диссертационного исследования, показана научнаяновизна и практическая ценность полученных результатов. Приводитсяструктура диссертации.В первой главе приведены основные понятия облачных технологий,описаны их виды и характеристики.
Затем дается краткая история развитияи предпосылки возникновения облачных вычислений, подробно рассмотренытипичные сценарии их использования и преимущества. На протяжении всейглавы делается сравнительный анализ облачных технологий от разных поставщиков. Для ряда поставщиков рассмотрены предлагаемые ими облачныесервисы и линейка оборудования. При изложении особенностей MicrosoftAzure делается акцент на принципы разработки облачных веб-приложений.Во второй главе диссертации формулируется проблема рассредоточения сквозной функциональности и делается обзор существующих технологийее реализации на примере паттернов объектно-ориентированного программирования, IoC-контейнеров и АОП.
Проведенный анализ показывает, чтотолько АОП позволяет локализовать сквозную функциональность в одном8модуле (аспекте), причем аспект содержит как саму функциональность, так иправила ее внедрения в целевой код.Далее приведена сравнительная характеристика статического (Рис. 1)и динамического методов применения аспектов. Для выбора АОПинструмента, подходящего к целям диссертационного исследования, описаны требования к производительности и бесшовности процесса внедрения аспектов.
Высокая производительность результирующих приложений необходима для уменьшения затрат при их эксплуатации в облаке, а бесшовная интеграция позволяет проводить АОП-рефакторинг и расширение функциональности без модификации целевого проекта. На основе анализа существующих АОП-инструментов для платформ Java и .NET сделан аргументированный выбор в пользу Aspect.NET, который позволяет разрабатывать аспекты для облачных веб-приложений и удовлетворяет всем озвученным критериям.Рис. 1: Схема работы компоновщика аспектовВ третьей главе исследована возможность применения Aspect.NETдля реализации облачных приложений на платформе Microsoft Azure.