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

Автореферат (1090659), страница 5

Файл №1090659 Автореферат (Методы и инструменты декларативного программирования динамических Web-узлов и приложений) 5 страницаАвтореферат (1090659) страница 52018-01-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Она работает по принципу «черногоящика», когда на вход подается XML-документ, а на выходе строится объект, скоторым будет производиться дальнейшая работа.Важной частью программного комплекса интерпретатора является архитектура фабрики. Согласно разработанной спецификации на данный момент существует два десятка типов блоков. Стало понятно, что их функции не ограничиваются хранением примитивных данных, а их природа весьма вариативна взависимости от типа и поэтому реализовывать все блоки в едином классе нецелесообразно.

С другой стороны, некоторые блоки имеют родственную природуи могут быть объединены путем наследования. Поскольку модуль для работыс блоками должен быть универсальным, разработан единый способ обращенияко всем типам. Результатом работы стал абстрактный класс “Block”. Для наиболее гибкой реализации полиморфизма принято решение использовать паттерн«абстрактная фабрика».18В рамках нашей задачи был создан класс, который «знает» о существовании всех реализаций типов блоков и способен их различить (в нашем случае этоосуществляется через указание имени типа блока). В результате работы былобразован класс “BlockFactory”, имеющий метод GetBlock(std::stringtype).

Метод возвращает созданный объект конкретного класса блока с реализацией для своего типа данных, который приводится к указателю на классBlock (наш абстрактный интерфейс) (рис. 7).Класс BlockКласс BlockFactoryМетодыМетодыSetValue();GetValue();SetParams();SetParam();GetParams();GetParam();GetBlock(std::string);Создание блока конкретного типаОбъектBlockFactoryВызов GetBlock(std::string);Объект BlockКонкретные типы блоковКлассыNumberBlockFloatBlockStrinngBlockDatetimeBlockFileBlockImageBlockMediaBlockНаследуется от класса BlockНаследуются от FileBlockРис.

7. Архитектура модуля блоковВ качестве шаблонизатора, обеспечивающего связь генерируемых данных с шаблоном, выбран шаблонизатор CTPP2, превосходящий большинствоаналогов по производительности. При этом он поддерживает основной функционал, используемый в шаблонах: вставку внешних шаблонов, циклы, ветвления,именованные блоки и др. Кроме того, шаблонизатор поддерживает компиляциюшаблонов в байт-код, что может служить подспорьем в обеспечении производительности у критических по скорости проектов.Логика работы языка BML хранится в файлах в специализированной директории и исполняется интерпретатором языка.

Со структурами данных BMLмогут быть связаны многочисленные таблицы с достаточно сложными связями.Если разработчик пожелает поменять структуру BML, это может повлечь значительные изменения во внутренних архитектурах, в том числе и в структуре базыданных. Их перестроение может занимать продолжительное время. Таким образом, если интерпретируемая логика и процесс перестроения будут выполнятьсялинейно, это повлечет за собой серьезные задержки в выполнении пользовательского запроса.19Для решения поставленной задачи были разделены механизмы перестроения внутренних структур и непосредственной обработки пользовательских запросов. Перестроение асинхронно во времени выполняет синхронизатор.

Задачасинхронизатора – обеспечить безболезненный переход от одной логики к другой, в то время, как интерпретатор хранит в оперативной памяти старые данные,загруженные до обновления, и исполняет логику на их основе до полного перестроения. После прохождения обновления интерпретатор может начать исполнять логику немедленно, согласно изменениям разработчика, не беспокоясь приэтом, что возникнут ошибки при использовании обновленных структур.Интерпретатор не работает напрямую с файлами BML.

Данную функцию выполняет синхронизатор, загружая их из рабочей директории проекта. Затем происходит синтаксический анализ и последующее сохранение полученныхструктур в оперативной памяти. Порции этих данных передаются по запросупри подключении клиента через сокет согласно запрошенному пользователемадресу URL.Синхронизатор периодически просматривает рабочую директорию напредмет изменения файлов. Для этого в нем создан специальный массив, элементами которого являются структуры, каждая из которых хранит имя файла,его дату изменения и контрольную сумму.

Сначала происходит сверка количества файлов в директории с количеством элементов массива, затем осуществляется просмотр директории, где проверяется факт изменения даты и времениу файлов, а при необходимости – контрольной суммы CRC32. В случае обнаружения факта изменения исходного кода, происходит полное перестроение логической структуры кода BML в памяти путем последовательного считываниякаждого файла и синтаксического анализа их содержимого.Неблокирующий сокетДанные BSONПроцессFastCGIДокументв браузереклиентаПроцессFastCGIДокументв браузереклиентаПроцессFastCGIДокументв браузереклиентаНеблокирующий сокетПроцесссинхронизатораДанные BSONНеблокирующий сокетДанные BSONРис.

8. Сетевое взаимодействие синхронизатораДля связи синхронизатора и интерпретатора используются сетевые сокеты (рис. 8), что обеспечивает горизонтальную масштабируемость и кроссплатформенность, поскольку сокеты могут использоваться не только внутри однойсреды, но и взаимодействовать с другими системами удаленно. Синхронизаторсвязывается с процессом интерпретатора через интерфейс FastCGI, обмениваясь20порциями данных в формате BSON. Каждый экземпляр процесса интерператоранаходится в памяти сервера и ждёт новых клиентских подключений.В заключении подведены итоги работы над диссертацией с подробнымописанием полученных результатов.В приложении A представлены акты о внедрении и свидетельство на программу для ЭВМ.В приложении B представлены листинги проектов (рецепты), реализованных на основе разработанной методики и языка BML.Основные выводы и результаты работыИтогом диссертационной работы стал программный комплекс, являющийся инструментарием разработки динамических Web-узлов и приложений,что показано в следующих результатах:1.

Разработан метод декларативного программирования Web-приложений насерверной стороне, а также его фундаментальные элементы и их взаимодействие. Доказана целесообразность применения декларативной методики и разработки предметно-ориентированного языка. Предложены базовыесущности языка: модель, локация, набор, блок. Обозначены принципы взаимодействия между сущностями. Показаны принципы полиморфизма отдельных блоков в зависимости от своих типов.2.

Метод комплексной оценки инструментов императивной и декларативнойразработки динамических Web-узлов. Построена оценочная модель программного кода в целом и разрабатываемого языка программирования вчастности. Приводится обзор критериев оценки. Упоминаются достоинстваи недостатки существующих оценочных методов. Применяется метод анализа иерархий для определения наиболее важных критериев. С помощьюметрик Холстеда осуществляется сравнение между языками BML и PHP.3.

Унифицированный метод разграничения прав доступа к данным. Предложен алгоритм комплексного распространения прав доступа на наборы иблоки. Применено наследование прав доступа и расставлен приоритет длягрупп. Предложен механизм авторизации пользователей.4.

Унифицированный алгоритм приёма пользовательских данных с учётом иххарактерных особенностей. Предложен алгоритм приёма пользовательскихданных в зависимости от их характера: идемпотентные или модифицирующие. В данном алгоритме показано, как именно обрабатываются неизменяемые данные, а также как производится приём данных модифицирующегозапроса.5. Декларативный язык программирования BML на основе формализованныхметодов.

В нём определен порядок записи базовых сущностей методики21BlockSet в исходном коде языка BML. Представлен обзор свойств и их значений для основных сущностей: модели, локации, блока и набора. Проведён подробный обзор типов блоков и их функциональных характеристик.Разработан перечень данных, передаваемых из интерпретатора в шаблонизатор.6. Алгоритм выбора релевантного объекта, идентифицируемого шаблоном.Представлен алгоритм поиска мощности множества у регулярного выражения с целью поиска оптимального шаблона и расстановки приоритетову локаций. Рассмотрен способ преобразования регулярного выражения вконечные автоматы.

Для вычисления мощности множества и устранениянеопределённостей предлагается ряд методов: упрощение регулярного выражения, алгоритм вычисления в пересекаемых множествах.7. Архитектура программного комплекса интерпретатора языка BML. Показана технологическая сторона построения интерпретатора языка BML. Проведён обзор динамических платформ, а также их нагрузочное тестирование. Показана схема взаимодействия компонентов интерпретатора междусобой. Представлены сравнительные характеристики синтаксических анализаторов XML.

Детально рассмотрена архитектура фабрики, задействованная в интерпретаторе при обработке логики работы блоков. Выбраншаблонизатор и показан алгоритм взаимодействия с ним. Обособлено внедрение в проект синхронизатора, показаны алгоритмы его работы с BMLдокументами, показан обзор методов межпроцессного взаимодействия.8. Нагрузочное тестирование компонентов интерпретатора. Проведено нагрузочное тестирование динамических платформ с целью выявления наиболееоптимальной и выбрана платформа FastCGI.

Проведено нагрузочное тестирование межпроцессного взаимодействия между ядром интерпретатора исинхронизатором, выбрано взаимодействие на основе сокетов.9. Визуальный редактор построения структур декларативного языка BML.Разработан визуальный редактор, представляющий собой надстройку надязыком BML и предоставляющий следующий функционал: мастер создания проекта, редактор локаций и модели, редактор наборов, редактор блоков, конструктор прав доступа.22Публикации автора по теме диссертацииВ рецензируемых журналах из перечня ВАК1. Бубнов А. В., Кейно П. П. Особенности приёма данных по протоколу HTTP в компилируемом Web-приложении и их унификация в предметно-ориентированном языке //Безопасность информационных технологий.

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

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

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