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

Диссертация (1090660), страница 26

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

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

В конечном итоге выбран язык программирования C++. Проведено тестирование динамических Web-платформ CGI и FastCGI наряду с интерпретируемым языком PHP и статической страницей HTML, взятой в качестве эталона. Проводились тесты выводастатического (прогревочные тесты динамических платформ) и динамического содержимого. Лучшие показатели работы на высоких нагрузках [96] показала платформаFastCGI. Однако CGI как наиболее распространенная и надежная платформа, являющаяся в некотором смысле родственником FastCGI, была также поддержана в рамкахразрабатываемого проекта, несмотря на низкую эффективность.149Детально рассмотрена архитектура интерпретатора в базовой сборке.

Проведенсравнительный анализ библиотек для каждого из компонентов программного комплекса. Были разработаны следующие библиотеки: анализатор HTTP, обработчик сессий, считыватель файла настроек и некоторые другие. Ко всем остальным библиотекам в той или иной степени предъявлялся ряд следующих требований: высокая производительность, полностью открытая лицензия, хороший уровень документирования,поддержка сообществом разработчиков, низкий порог вхождения.Несмотря на невысокие показатели, в качестве синтаксического анализатора XMLбыла выбрана библиотека libxml2 с оговоркой, что в будущем, в процессе дополнительной оптимизации, в программный комплекс будет встроена поддержка более производительной потокоориентированной библиотеки expat.

В проекте на данном этапеиспользуется libxml2 как наиболее эффективное решение в отношении разработки, нетребующее непропорционально больших трудозатрат.Как безусловный лидер в своей области по производительности и по функционалусреди шаблонизаторов был выбран CTPP2, используемый в проекте «Рамблер-Почта»компании «Рамблер». Данный шаблонизатор, написанный на C++, показал наивысшую производительность, он имеет весь базовый функционал для гибкого созданияшаблонов, а также возможность их компиляции как на лету, так и на этапе разработкипроекта.Описанная в работе архитектура системы, а также сравнительный анализ ее компонентов образовали комплексное инженерное решение в сфере систем высокой доступности, реализованное в проекте BlockSet.

Множество этих решений были провереныгодами практической эксплуатации в широко известных проектах сети Интернет инашли свое применение в настоящей работе как в первозданном, так и в измененномвиде с учетом специфики и потребностей проекта.В рамках реализации программного комплекса синхронизатора был решен рядпроектнотехнологических задач: разработана технология взаимодействия с внешними процессами интерпретатора, выбран оптимальный алгоритм перестроения структуры БД, решены проблемы потерь данных при изменении архитектуры, разработанаэффективная методика разделения затратных алгоритмов во времени.В результате проделанной работы можно говорить о нахождении оптимальногорешения для реализации модуля валидации и преобразования данных, выполненномв виде «абстрактной фабрики».

Были выявлены явные преимущества фабрики приреализации, затронуты проблемные моменты и их решения. Создание единого интерфейса доступа к конкретным реализациям позволяет вести разделенную разработку150каждого типа и их отдельное тестирование. Кроме того, единообразное использование класса независимо от переданного типа блока дает универсальный интерфейс дляработы с модулем.151fork()НачалоНетВнутри дочернего процесса?КонецДаДаНетЗагрузить вседокументы BML израбочей директории вструктуру “B”Количество файлов совпадаетс сохранёнными в массиве?Обновить массив,сохранив в него новыйсписок файлов сдатами и CRC32ДаНетДочерний процессвыполняется?ДаНетВсе даты и контрольныесуммы файлов совпадают ссохраненными в массиве?fork()НетДаВнутри дочернегопроцесса?НетДаДочерний процессзавершился с кодом 0?Перестроениеструктуры базыданныхПоменять местами структуры“A” и “B”ДаЗавершение дочернегопроцессаНетУбрать у всех сущностейпостфикс $modified.Дублирующим старымсущностям присвоитьпостфикс $deletedСуществует новое входящееподключение?Добавить в массивобработчиков новоеподключение, сохранитьвремя подключенияВзять указатель наследующеесоединение измассиваНетУдалить подключениеиз массиваДаНаступил таймаутподключения?ДаОбработать соединение,вернуть данные из структуры“A”, сбросить таймаутНетУдалось считать данныеиз полученного соединения иструктура “A” не пустая?Рисунок 4.8.

Общий алгоритм работы синхронизатора152НачалоЧтение следующегоэлемента из структурымоделиДаНетДостигнут конец структуры?Проверкаспецифическихсвойств объектаВсем незадействованнымтаблицам и полямприсвоить постфикс$deletedКонецДаНетСуществует ли в БДобъект,соответствующий атрибутуname у элемента?ДаПродублировать объект,согласно новому имени,указанному в атрибутеname и с постфиксом$modifiedНетСуществует ли в БДобъект, соответствующийатрибуту oldname уэлемента?ДаУбрать у объектапостфикс $deleted,добавить постфикс$modifiedСуществует лиобъект соответствующийатрибуту name у элементаи с постфиксом$deleted в БД?НетСоздание объектаРисунок 4.9.

Алгоритм перестроения структуры базы данных153120Время выполнения всехзапросов, мкс128 Б100512 Б1 Кб805 Кб6010 Кб402001050100300500Количество клиентовРисунок 4.10. Результаты тестирования неблокирующих сокетовНеблокирующий сокетДанные BSONПроцессFastCGIДокументв браузереклиентаПроцессFastCGIДокументв браузереклиентаПроцессFastCGIДокументв браузереклиентаНеблокирующий сокетПроцесссинхронизатораДанные BSONНеблокирующий сокетДанные BSONРисунок 4.11. Сетевое взаимодействие синхронизатора154Проверка специфичныхсвойств объектаБлокНаборОбъект является блоком илинабором?ДаНетДаНетАтрибут relation=“multi” исвязующая таблицаотсутствует?НетТип блока в структуресоответствует типу поля в БД?ДаПростая связь.

Вторичныйключ есть?Создать связующуютаблицу с постфиксом$modifiedНетДаПриведение разрешеносогласно конфигурации?Перенести ключи изпредыдущих связейПроизвести приведениетипаСоздать вторичный ключс постфиксом $modified уведомого набораКонец проверкиспецифичных свойствобъектаЗаписатьпредупреждение вжурнал ошибокРисунок 4.12. Специфика работы с отдельным объектом155Рисунок 4.13. Мастер создания нового проектаРисунок 4.14. Редактор набора156Рисунок 4.15.

Редактор блока157Рисунок 4.16. Редактор локации158sectionscatnamedescriptioncatsortcaticonsiconprivateflagglobalpermissionsmesspermissionsvisibilitymoderpermissionstopicssubjectmessagepubdatepubipeditdateeditipclosedimportantpoll_questionpollspoll_answersanswer_textanswer_votemessiconsiconanswersmessagepubdatepubipeditdateeditipРисунок 4.17. Редактор прав доступа159ЗаключениеИтогом диссертационной работы стал программный комплекс, являющийся инструментарием разработки динамических Web-узлов и приложений, что показано вследующих результатах:1. Разработан метод декларативного программирования Web-приложений на серверной стороне, а также его фундаментальные элементы и их взаимодействие.Доказана целесообразность применения декларативной методики и разработкипредметно-специфичного языка.

Предложены базовые сущности языка: модель,локация, набор, блок. Обозначены принципы взаимодействия между сущностями. Показаны принципы полиморфизма отдельных блоков в зависимости от своих типов [91, 93, 94, 97, 99].2. Метод комплексной оценки инструментов императивной и декларативной разработки динамических Web-узлов. Построена оценочная модель программного кода в целом и разрабатываемого языка программирования в частности. Приводится обзор критериев оценки. Упоминаются достоинства и недостатки существующих оценочных методов. Применяется метод анализа иерархий для определениянаиболее важных критериев. С помощью метрик Холстеда осуществляется сравнение между языками BML и PHP [95, 113].3.

Унифицированный метод разграничения прав доступа к данным. Предложен алгоритм комплексного распространения прав доступа на наборы и блоки. Применено наследование прав доступа и расставлен приоритет для групп. Предложенмеханизм авторизации пользователей [85, 90, 94].4. Унифицированный алгоритм приёма пользовательских данных с учётом их характерных особенностей. Предложен алгоритм приёма пользовательских данныхв зависимости от их характера: идемпотентные или модифицирующие. В данном160алгоритме показано, как именно обрабатываются неизменяемые данные, а такжекак производится приём данных модифицирующего запроса [79].5.

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

Архитектура программного комплекса интерпретатора языка BML. Показанатехнологическая сторона построения интерпретатора языка BML. Проведён обзор динамических платформ, а также их нагрузочное тестирование. Показанасхема взаимодействия компонентов интерпретатора между собой. Представлены сравнительные характеристики синтаксических анализаторов XML. Детальнорассмотрена архитектура фабрики, задействованная в интерпретаторе при обработке логики работы блоков. Выбран шаблонизатор и показан алгоритм взаимодействия с ним. Обособлено внедрение в проект синхронизатора, показаныалгоритмы его работы с BML-документами, показан обзор методов межпроцессного взаимодействия [78, 89, 98, 100, 118].8. Нагрузочное тестирование компонентов интерпретатора. Проведено нагрузочноетестирование динамических платформ с целью выявления наиболее оптимальной и выбрана платформа FastCGI.

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

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

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