Главная » Просмотр файлов » Диссертация

Диссертация (1148251), страница 14

Файл №1148251 Диссертация (Инструменты аспектно-ориентированного программирования облачных веб-приложений в Microsoft Azure разработка и реализация в системе Aspect.NET) 14 страницаДиссертация (1148251) страница 142019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

Например, если вызов целевого метода в точкеприсоединения имеет вид р.М(), то TargetObject обозначает ссылку наобъект р. Если целевой метод статический, TargetObject равно null;4) TargetMemberInfo — это ссылка типа System.Reflection.MemberInfo наобъект, представляющий метаданные целевого метода;5) WithinMethod — это ссылка типа System.Reflection.MethodBase наметаданные, представляющие метод, в котором расположен вызовцелевого метода;6) WithinType — это ссылка типа System.Туре на определение класса, вкотором расположен вызов целевого метода;7) RetValue — это ссылка типа System.Object на результат, возвращаемыйцелевым методом. Для всех действий кроме %after имеет значение null;8) This — это ссылка типа System.Object на объект в целевой программе,внутри метода которого оказалось вставлено данное действие аспекта.Например, если вызов р.М() содержится внутри метода объекта X, то Xявляется ссылкой This для действия аспекта, применяемого к р.М().В дополнение к свойствам контекста, компоновщик обеспечивает “захват”аргументов, передавая их от целевого метода в аргументы действия аспекта.int Sum(int a, int b, int c){ … } //Целевой метод…/* Действие аспекта с первым и третьим захваченными у целевого метода аргументами*/[AspectAction(“%after %call *Sum(int, int, int) && %args(arg[0], arg[2]))]public static AspectAfterSum(int a, int c) { … }ЛИСТИНГ 20.

РАБОТА КОМПОНОВЩИКА С АРГУМЕНТАМИ ЦЕЛЕВОГО МЕТОДАПодробно синтаксис “захвата” аргументов рассмотрен в [112]. Нам жеосталось упомянуть, что данный подход “точечной” передачи нужных аргументов74выигрывает по накладным расходам по сравнению со способом, когда весь набораргументов целевого метода упаковывается в коллекцию объектов, и действиеаспекта вынуждено перебором выбирать нужные (например, PostSharp).

С другойстороны, явное указание нужных аргументов усиливает связь между аспектом иконкретным целевым методом. Это может быть оправдано в задачах АОПрефакторинга [54], но не при написании универсальных аспектов.В работе [112] применение аспекта иллюстрируется на примере работы спростым классом банковского счета, который поддерживает операцию снятиясредств withdraw(float):public class BankAccount {float account;public float withdraw(float amount){/*...*/ }}ЛИСТИНГ 21. КЛАСС BANKACCOUNTЕсли вынести проверку прав на совершение операции в аспект, то он будетвыглядеть таким образом:public class BankManagement : Aspect {[AspectAction(“%instead %call *BankAccount.withdraw(float)&& args(..)”)]public static float WithdrawWrapper(float amount) {BankAccount acc = (BankAccount) TargetObject;if (isLicenceValid(base.TargetMemberInfo.Name))return acc.withdraw(amount);Console.WriteLine("Withdraw operation is not allowed");return acc.Balance;}public static float isLicenceValid(string operation){/*...*/}}ЛИСТИНГ 22.

ПРОВЕРКА ПРАВ С ПОМОЩЬЮ АСПЕКТАДанное действие аспекта определяет "заглушку", которая будет вставленавместо целевого метода withdraw. Внутри действия происходит проверка прав навыполнение операции withdraw и вызывается исходная операция с тем же наборомпараметров, если авторизация прошла успешно. Доступ к целевому объекту иимени операции осуществляется через свойства TargetObject и TargetMemberInfoконтекста точки внедрения.Другой альтернативой могут служить IoC-контейнеры. Например, компанияMicrosoft позиционирует Enterprise Library (EL) как набор наиболее удачных75архитектурных решений, применимых в большинстве программных систем.

Посравнению с динамическим применением аспектов в EL, когда во времявыполнения программы среда .NET создает прокси-объекты в заданных местах,Aspect.NET вплетает действия на уровне MSIL-инструкций после этапакомпиляции целевой сборки, что влечет повышение производительности целевогоприложения. Достоинствами библиотеки EL является встроенная поддержка состороны среды выполнения .NET, а также возможность настройки аспектов безкомпиляции через конфигурационные XML-файлы. Однако следует учитывать,что при работе с облачными приложениями, перекомпиляция для внедренияаспектов не вызывает трудностей, т.к.

Microsoft Azure поддерживает прозрачноеразвертывание изменившегося приложения путем постепенного перезапускаотработавших экземпляров. Более того, “пост-обработка” Aspect.NET даетвозможность выбирать конкретные места применения действий аспектов.Компоновщик аспектов — это отдельное консольное приложение. Егопараметрами являются пути к сборкам аспектов и целевого приложения. Приработе в Microsoft Visual Studio требуется в свойствах проекта аспекта включитьего вызов в события пост-компиляции (post-build events).По сравнению с AspectJ в Aspect.NET отсутствуют многие возможности.1. Спецификация правил внедрения (pointcut) описывается в AspectJ какотдельная сущность, что позволяет комбинировать вместе различныеправила внедрения.2. Внедрение аспектов во время компиляции и при загрузке классов в JVM.3.

Вместо универсального механизма расширения целевого класса новымичленами и реализацией интерфейса (introduction) используется болеечастный способ замещающего аспектного наследника (будет описанниже, в разделе 3 главы 3).4. В Aspect.NET все аспекты являются статическими классами, временемих жизни нельзя управлять и их нельзя наследовать.765.

Возможность перехватывать исключения в момент их генерации исобытия доступа к полям целевого класса. В Aspect.NET можноперехватывать только вызовы методов.Тем не менее, в следующих разделах будет показано, что имеющихсявозможностей Aspect.NET достаточно для простых и эффективных аспектноориентированных решений при модуляризации сквозной функциональности воблачныхприложениях,ихаспектно-ориентированномрефакторингеибесшовной интеграции со сторонними библиотеками на платформе Microsoft.NET.2.6 Выводы по главеАОП позволяет разделять бизнес-логику и сквозную функциональность. еёвыделение в аспекты повышает связность целевых классов и улучшает метрикикачества кода. АОП-системы подобные PostSharp имеют гибкие возможности длясоздания своих аспектов, но не устраняют целиком зависимость от них целевогопроекта. После этого заменить АОП-инструмент (или отказаться от негополностью) становится затруднительно.В свою очередь, уже существуют сторонние библиотеки и службы, которыеберут на себя реализацию сквозной функциональности (например, MS EL).

Для ихбесшовного подключения к целевому проекту может применяться системаAspect.NETдляMSVS.ПрограммированиеаспектоввAspect.NETосуществляется в привычном программном и языковом окружении. Расширениеповедения обеспечивается за счет вставки необходимых действий перед, послеили вместо целевого метода, а также возможности создать наследника целевогокласса и подменить им исходный. Связывание проекта аспекта и бизнес-логикипроизводится программистом в специальном расширении MS VS, доступном дляустановки в галерее расширений MS VS.Компоновка аспектов с бизнес-логикой производится на этапе компиляцииаспектного проекта и с минимальными накладными расходами. Проведенные в77работе [89] измерения производительности, внедренных с помощью Aspect.NETаспектов, показали эффективность по времени сравнимую или даже меньшую,чем вызов той же функциональности в коде напрямую.

Однако у предложенногоподхода есть и недостатки — аспект имеет сильную связанность с целевымклассом, что снижает накладные расходы, но может препятствовать созданиюобобщенных, универсальных аспектов.78Глава 3. Применение и адаптация Aspect.NET дляразработки облачных веб-приложений в MicrosoftAzure3.1 Принципы реализации облачных веб-приложений на платформеMicrosoft Azure с помощью Aspect.NETСовременноепрограммноеобеспечениехарактеризуетсявысокойскоростью разработки, повторно используемыми решениями и переносимостьюмежду различными платформами. Достичь этого помогают каркасы (frameworks).Каркасы — набор классов в той или иной степени следующих паттернам“шаблонный метод” (template method), подписке на события через наблюдателя(observer) и разделение на уровни (layers).

Каркас представляет собой “скелет”приложения, а его расширение происходит через наследование специальныхклассов, переопределении их виртуальных методов и написание пользовательскихобработчиков системных событий.Благодаря разделению на уровни, пользовательский интерфейс задаетсядекларативно, а работа с базой данных производится через абстрактный “фасад”(façade). Особенно каркасы популярны при разработке веб-приложений: Node.js,Angular.js, JSP, ASP.NET, Azure SDK и пр.Таким образом, каркасы облегчают разработку систем, инкапсулируя всесложности нижележащей платформы.

Характеристики

Список файлов диссертации

Инструменты аспектно-ориентированного программирования облачных веб-приложений в Microsoft Azure разработка и реализация в системе Aspect
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее