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

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

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

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

Затемреализуются классы аспектов, добавляются команды компоновщику аспектов всобытия аспектного проекта и далее, при сборке, происходит бесшовнаяинтеграция настроек и вставка действий аспектов в целевое приложение.4.4 Аспект для аутентификации на базе формАутентификация — это процесс проверки подлинности пользователя, какправило, на основе имени и пароля.В качестве аутентификации начального уровня веб-приложения используютаутентификацию на базе форм (forms authentication).

В этом случае приобращении к любой странице сайта сервер проверит наличие в запросеспециального cookie-файла (токена) и, если он отсутствует, переправитпользователя на страницу (форму) ввода имени и пароля. В том случае если ихпроверказаканчиваетсяуспешно,сервервыдаетпользователютокенаутентификации и в дальнейшем проверяет его наличие в запросах.

Как толькоистекает срок действия токена, требуется пройти аутентификацию повторно.ASP.NET поддерживает достаточно простую аутентификацию на базе форм,для этого достаточно её включить в конфигурационном файле и создатьотдельную страницу с полями для ввода имени пользователя и пароля. Как ужерассмотреновыше,измененияконфигурацииописываютсяаспектного проекта. Рассмотрим простейший вариант:вweb.config103<configuration><system.web><authentication mode="Forms"><forms loginUrl="~/Pages/Login.aspx"><credentials passwordFormat="Clear"><user name="admin" password="passw" /></credentials></forms></authentication></system.web></configuration>ЛИСТИНГ 41.

ВКЛЮЧЕНИЕ АУТЕНТИФИКАЦИИ НА БАЗЕ ФОРМ В ASP.NETДанный код декларирует, что имя пользователя и пароль должны совпадатьс “admin” и “passw”, а страница Login.aspx для их ввода находится в папке Pages.Реализация веб-страницы заключается в создании кода разметки (code-behind) вфайле .aspx, а также в реализации класса с бизнес-логикой в файлах .aspx.cs и.aspx.designer.cs. Данный класс будет помещен компилятором в сборку .dll и приобращении к странице ASP.NET свяжет её с этим классом.Требованиебесшовногорасширенияаспектомцелевогопроектанакладывает ограничение на изменение целевого проекта, поэтому невозможнопросто добавить в целевой проект новую страницу, ведь в этом случае меняютсяего настройки. С другой стороны, аспект также можно создать в проекте типа вебприложение и добавить страницу туда.

Однако тогда cookie-файлы и сессия небудут разделяться между целевым и аспектными веб-приложениями, что приведетк отказу аутентификации. Приемлемым решением является создание Login.aspxстраницы в проекте аспекта (с типом “библиотека классов”), копирование её впапку Pages целевого проекта (без добавления в целевой проект Microsoft VisualStudio), а описание класса в Login.aspx.cs и Login.aspx.designer.cs остается васпектном проекте и будет помещено компилятором в аспектную сборку.Компоновщик аспектов объединяет целевую и аспектные сборки, поэтомуASP.NET корректно свяжет новую аспектную страницу Login.aspx с кодом еёкласса.

Исходный код страницы Login.aspx зависит от дизайна веб-приложения.Возможный вариант для веб-приложения SportsStore на платформе ASP.NETMVC из книги [130] приведен ниже:104<%@ Page Title="" Language="C#" MasterPageFile="~/Pages/Admin/Admin.Master"AutoEventWireup="true" CodeBehind="Login.aspx.cs"Inherits="SportsStore.Pages.Login" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"><asp:ValidationSummary runat="server" DisplayMode="SingleParagraph" CssClass="error"/><div class="loginContainer"><div><label for="name">Name:</label><input name="name" /></div><div><label for="password">Password:</label><input type="password" name="password" /></div><button type="submit">Log In</button></div></asp:Content>Login.aspx.cs:using System;using System.Web.Security;namespace SportsStore.Pages {public partial class Login : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e) {}}}if (IsPostBack) {string name = Request.Form["name"];string password = Request.Form["password"];if (name != null && password != null&& FormsAuthentication.Authenticate(name, password)) {FormsAuthentication.SetAuthCookie(name, false);Response.Redirect(Request["ReturnUrl"] ?? "/");} else {ModelState.AddModelError("fail", "Login failed.

Please try again");}}ЛИСТИНГ 42. ВОЗМОЖНЫЙ ВАРИАНТ СТРАНИЦЫ LOGIN.ASPX4.5 Выводы по главеВ рамках данной главы ставилась задача создания универсальных аспектов,которые могут быть применены к различным облачным приложениям. Каквытекает из предыдущей главы, аспекты могут быть описаны как в программномкоде, так и в файле конфигурации (обычно в web.config). Оба этих способазадействуются в аспекте, который перенаправляет отладочную информацию воблачное хранилище WAD: действия аспекта запускают диагностический105монитор, а файл конфигурации аспекта регистрирует этот диагностическиймонитор в качестве приемника отладочной информации.Далее представлен аспект, который повышает надежность любого целевогометода путем определения стратегии реакции на его исключения.

В качествепримера взята стратегия “Предохранитель” (Circuit Breaker), но пользовательможет заменить её любой подходящей.Следующим описан аспект, повышающий производительность целевогометода, через кэширование его результата средствами Windows Azure Caching. Вэтом случае необходимо добавить в аспектный проект пакет Windows AzureCaching, в статическом конструкторе аспекта создать объект кэша, а затем вдействии аспекта перехватить целевой метод и воспользоваться кэшем. Настройкаоблачного кэша производится в конфигурационном файле аспекта. В том случае,когда необходимо кэшировать определенную ASP.NET страницу, следуетнастроитьобъектсоответствующегоResponse.Cacheклассаввеб-страницысобытииPage_Init().проиллюстрированПерехватзамещающимаспектным наследником.

Наконец, приведена XML-конфигурация аспекта,которая позволяет менять способ хранения веб-сессии.В том случае, когда для работы аспекта требуется добавить новую вебстраницу в целевой проект, она реализуется в аспектном проекте и .aspx файл сразметкой копируется в папку целевого проекта. Подобной техникой пользуетсяаспект, добавляющий в целевое приложение аутентификацию на базе форм.Все перечисленные аспекты объединены в библиотеку AzureLibrary.Следует также заметить, что её аспекты могут быть применены к разным целевымпроектам, но из-за различий контекста точек выполнения может возникнутьнеобходимость изменить правила внедрения и код внутри действий аспектов.106Глава 5.

Аспектно-ориентированный рефакторингоблачных веб-приложений5.1 Применимость АОП-рефакторингаплатформе Microsoft Azureдлявеб-приложенийнаОблачная платформа Microsoft Azure предоставляет множество сервисов,которые позволяют разрабатывать производительные и надежные приложения. Ктаким сервисам относятся СУБД Microsoft SQL Azure, сбор диагностическойинформации, управление своей конфигурацией, разделяемый кэш и пр. Взависимости от фактической или предполагаемой нагрузки, приложение можетувеличивать или уменьшать количество своих одновременно запущенныхэкземпляров (instances).

При этом все сложности взаимодействия с аппаратнойинфраструктурой скрыты от программиста. Сервисные компоненты Azure независят от вызывающего их контекста и, тем самым, предназначены для гибкогоповторного использования в различном окружении.Однако при этом возникает проблема “сквозной функциональности” (crosscutting concerns), когда для реализации какой-либо функции с помощью сервисовAzure, требуется вносить изменения во множество разных точек исходного кода.Если, например, в веб-роль (web-role) на основе ASP.NET MVC (Model-ViewController) потребуется добавить кэширование результатов запроса некоторыхданных из удаленного хранилища [106] и организовать управление кэшированиемчерез веб-интерфейс, то программисту придется вносить изменения в следующиемодули.1. Каждый класс, ответственный за загрузку тех данных, которыенеобходимо кэшировать.2. Модель (Model), на основе которой Вид (View) отобразит полученныеданные и элементы управления кэшированием.1073. Контроллер (Controller), который инициализирует соответствующиминастройками кэширования этот класс, применит его для заполненияданными модели и передаст её для отображения в соответствующийВид.4.

Вид, который также должен содержать веб-разметку для элементовуправления кэшированием.Подобные ситуации возникают и в ряде других задач, таких какпротоколирование, авторизация, проверка контрактов, профилирование и т.п.Сквозная функциональность затрудняет сопровождение проекта, ведь при сменеспособа решения задачи (например, авторизации), необходимо внести измененияво множество точек исходного кода. Если же на определенном этапе потребуетсявообще удалить все, относящееся к определенной функции (например,профилированию), то исходный код снова поменяется на множестве уровней.Предложим методику “сокрытия изменений” для облачных приложенийMicrosoft Azure, которая позволяет выделить весь код, необходимый дляреализации какой-либо функции, в отдельный аспект. Если в предыдущей главерассмотрены приемы создания универсальных аспектов, применимых к любомувеб-приложению, то в этой будут сформулированы конкретные принципывыделения аспектов из существующих систем.

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

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

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