Диссертация (1090660)
Текст из файла
Федеральное государственное бюджетное образовательное учреждение высшегообразования «Московский авиационный институт (национальный исследовательскийуниверситет)»На правах рукописиКейно Павел ПетровичМетоды и инструменты декларативного программированиядинамических Web-узлов и приложенийСпециальность 05.13.11 —«Математическое и программное обеспечение вычислительных машин, комплексов икомпьютерных сетей»Диссертация на соискание учёной степеникандидата технических наукНаучный руководитель:к.т.н., доц.Силуянов А.В.Москва — 20172ОглавлениеГлоссарий .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Анализ технологий и методов Web-разработки . . . . . . . . . . . . . . . . 191.1 Анализ технологий серверной стороны .
. . . . . . . . . . . . . . . . . . 231.1.1 Иерархическая модель инструментариев1.1.2 Языки программирования. . . . . . . . . . . . . . 23. . . . . . . . . . . . . . . . . . . . . . 261.1.3 Динамические платформы FastCGI и CGI . . . . . . . . . . . . . . 281.2 Использование декларативных и предметно-ориентированных языков насерверной стороне . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 281.2.1 Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.2.2 Язык WebDSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.2.3 Язык Spicey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3 Требованиякэтапамформированияновогопредметно-ориентированного языка .
. . . . . . . . . . . . . . . . . . . . . . . . . . 311.3.1 Общие принципы . . . . . . . . . . . . . . . . . . . . . . . . . . . 311.3.2 Требования к стадии принятия решения . . . . . . . . . . . . . . . 321.3.3 Требования к стадии анализа . . . . . . . . .
. . . . . . . . . . . . 351.3.4 Требования к стадии проектирования . . . . . . . . . . . . . . . . 371.3.5 Требования к стадии внедрения . . . . . . . . . . . . . . . . . . . 391.4 Выводы по первой главе . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.4.1 Постановка цели и задач исследования . . . . . . . . . . . .
. . . 412 Разработка методики декларативного программирования Web-узлов иприложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.1 Разработка структуры методики и выявление базовых компонентов . . . 422.2 Разработка компоненты «Модель». . . . . . . . . . . . . . . . . . . . .
452.3 Разработка компоненты «Локация» . . . . . . . . . . . . . . . . . . . . . 4632.4 Разработка компоненты «Набор» . . . . . . . . . . . . . . . . . . . . . . 482.5 Разработка компоненты «Блок» . . . . . . . . . . . . . . . . . . . . . . . 542.5.1 Классифицирование блоков . . . . . . . . . . . . . .
. . . . . . . . 542.5.2 Разработка атрибутов блока. . . . . . . . . . . . . . . . . . . . . 542.5.3 Разработка базовых и составных блоков с их атрибутами . . . . . 602.5.4 Разработка файловых блоков и их атрибутов . . . . . . . . . . . . 732.6 Разработка унифицированного метода разграничения прав доступа кданным . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 822.6.1 Построение авторизационного набора и метода учёта пользователей 822.6.2 Построение набора групп . . . . . . . . . . . . . . . . . . . . . . . 832.6.3 Разработка функционала прав доступа на блоки и экземпляры набора . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 842.7 Разработка унифицированного метода получения пользовательских данных с учётом их характерных особенностей . . . . . . . . . . . . . . . . 862.7.1 Алгоритм обработки чтения пользовательских данных идемпотентного запроса . . . . . . . .
. . . . . . . . . . . . . . . . . . . 862.7.2 Алгоритм сохранения пользовательских данных модифицирующего запроса. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872.7.3 Алгоритм приёма данных при взаимодействии с BML . . . . . . . 882.8 Разработка алгоритмов взаимодействия с шаблонизатором . . .
. . . . . 902.8.1 Алгоритм получения данных от интерпретатора . . . . . . . . . . 902.8.2 Алгоритм обработки ошибок валидации данных . . . . . . . . . . 902.9 Разработка критерия оптимальности выбора релевантного объекта в задаче динамической маршрутизации Web-адресов, идентифицируемыхшаблоном . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 932.9.1 Алгоритм упрощения регулярного выражения . . . . . . . . . . . 942.9.2 Алгоритм вычисления мощности в пересекаемых множествах . . . 972.9.3 Алгоритм поиска фактора неопределённости . . . . . . . . . . . . 972.10 Выводы по второй главе . . . . . . . . . . . . .
. . . . . . . . . . . . . . 983 Разработка метода комплексной оценки инструментов императивной идекларативной разработки динамических Web-узлов . . . . . . . . . . . . 1003.1 Разработка обобщённой оценочной модели . . . . . . . . . . . . . . . . .
1013.2 Определение итоговой величины стоимости критерия оценки . . . . . . 1063.2.1 Применение метода анализа иерархий . . . . . . . . . . . . . . . . 10643.3 Вычисление количественных показателей программного кода методомХолстеда . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 1103.3.1 Тестирование набора рецептов . . . . . . . . . . . . . . . . . . . . 1133.4 Выводы по главе 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184 Разработка программного комплекса интерпретатора языка BML и визуального редактора BlockSet . .
. . . . . . . . . . . . . . . . . . . . . . . . 1194.0.1 Требования к языку программирования и динамической платформе 1194.0.2 Анализ динамической платформы CGI. . . . . . . . . . . . . . . 1204.0.3 Анализ динамической платформы FastCGI . . . . . . . . . . . .
. 1214.0.4 Нагрузочное тестирование динамических платформ . . . . . . . . 1214.1 Разработка архитектуры и компонентов программного комплекса интерпретатора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.1.1 Построение структуры . . . . .
. . . . . . . . . . . . . . . . . . . 1254.1.2 Исследование синтаксических анализаторов XML . . . . . . . . . 1274.2 Архитектура абстрактной фабрики блоков . . . . . . . . . . . . . . . . . 1294.2.1 Альтернативные решения . . . . . . . . . . . . . .
. . . . . . . . . 1324.3 Выбор шаблонизатора . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.3.1 Особенности программирования шаблонизатора . . . . . . . . . . 1354.4 Разработка архитектуры программного комплекса синхронизатора . . . . 1374.4.1 Обоснование целесообразности разработки .
. . . . . . . . . . . . 1374.4.2 Разработка общего алгоритма работы . . . . . . . . . . . . . . . . 1384.4.3 Анализ технологий межпроцессного взаимодействия . . . . . . . . 1384.4.4 Проведение нагрузочного тестирования . . . . . . . . . . . . . . . 1404.4.5 Разработка алгоритма сетевого взаимодействия . . . . . . . . . . . 1404.4.6 Разработка структуры базы данных и алгоритма ее перестроения . 1434.4.7 Разработка алгоритма синхронизации отношений таблиц с наборами1444.5 Разработка интерфейсов визуального редактора построения структур декларативного языка BML .
. . . . . . . . . . . . . . . . . . . . . . . . . 1464.5.1 Разработка мастера создания нового проекта . . . . . . . . . . . . 1474.5.2 Разработка интерфейса редактора набора . . . . . . . . . . . . . . 1474.5.3 Разработка интерфейса редактора блока . . . . . . . . . . . . . . . 1474.5.4 Разработка интерфейса редактора локации и модели . . . .
. . . . 1484.5.5 Разработка интерфейса редактора прав доступа . . . . . . . . . . . 1484.6 Выводы по главе 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1485Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Список литературы . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 163Список рисунков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174Список таблиц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175A Акты о внедрении и свидетельство на программу для ЭВМ . . . . . . . . 176A.1 Акт о внедрении результатов работы в учебный процесс МАИ . . . . . . 176A.2 Акт о внедрении результатов работы в ЗАО ИЦ «Луч» . .
. . . . . . . . 176A.3 Свидетельство на программу для ЭВМ . . . . . . . . . . . . . . . . . . . 176B Набор типовых рецептов на языке BML . . . . . . . . . . . . . . . . . . . 180B.1 Листинг рецепта «Гостевая книга» . . . . . . . . . . . . . . . . . . . . . 180B.2 Листинг рецепта «Ресурс конференций» .
. . . . . . . . . . . . . . . . . 182B.3 Листинг рецепта «Форум» . . . . . . . . . . . . . . . . . . . . . . . . . . 1896ГлоссарийАбстрактная фабрика — шаблон проектирования, предназначенный для объединения взаимосвязанных классов без специфицирования на конкретные типы.Авторизационный набор — специализированный набор, предназначенный дляпроведения авторизации пользователя на ресурсе в методике BlockSet. См. также:набор.Авторизация — процедура проведения аутентификации и наделения аутентифицированного пользователя определёнными правами доступа.Аутентификация — процедура проверки введённого имени пользователя и пароля.Браузер — клиентское программное обеспечение, предназначенное для связи сWeb-сервером и отображения гипертекстовой информации.Визуальный редактор — программный комплекс, предназначенный для наглядного отображения программируемой логики.Гипертекст — ссылочная среда, объекты которой (страницы) объединены ссылками.Группа (права доступа) — сущность, предназначенная для объединения пользователей по признаку прав доступа.Набор групп (права доступа) — специализированный набор, предназначенный дляхранения групп прав доступа.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.