Тип работы:
Предмет:
Язык работы:


ПОРТИРОВАНИЕ СЕРВЕРА VDOM RUNTIME НА ЯЗЫК PYTHON 3

Работа №180489

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы57
Год сдачи2023
Стоимость4570 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
8
Не подходит работа?

Узнай цену на написание


АННОТАЦИЯ 3
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ 4
ВВЕДЕНИЕ 6
1 Анализ предметной области 8
1.1 VDOM Сервер 8
1.2 VDOMIDE 9
1.3 Приложения VDOM 10
1.4 Вывод по анализу предметной области 10
2 Анализ архитектуры VDOM сервера 12
2.1 Структура сервера 12
2.2 Описание модулей 19
2.3 Антипаттерны 22
2.3.1 Монолитность архитектуры 22
2.3.2 Использование исключений в качестве управления потоком 23
2.4 Требования предъявляемые при портировании сервера VDOM 24
2.5 Вывод по анализу архитектуры VDOM сервера 26
3 Подходы к решению проблемы переноса кода 27
3.1 Разбор различий версий языка 27
3.2 Выбор инструмента для переноса кода 27
3.3 Библиотека python-future 29
4 Описание процесса переноса кода 31
4.1 Первый этап переноса кода 31
4.2 Второй этап переноса кода 32
4.3 Третий этап переноса кода 33
5 Результаты работы 37
5.1 Результаты запуска на языке Python 3 37
5.2 Проведённое тестирование 41
5.3 Составленные рекомендации 47
ЗАКЛЮЧЕНИЕ 48
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 49
ПРИЛОЖЕНИЕ А Пример работы VDOM IDE 51
ПРИЛОЖЕНИЕ Б Пример работы приложения запущенного на VDOM 54


Сервер VDOM runtime позволяет создавать многофункциональные веб¬приложения, состоящие из объектов и ассоциаций между ними, способных выполнять задачи совершенно различного характера. VDOM-приложения могут представлять не только простой сайт с общей информацией, но и полноценное функциональное приложение, способное выполнять сложные операции.
VDOM является готовым к использованию веб-сервером, способным генерировать и публиковать веб-приложения без необходимости беспокоиться о вопросах обслуживания и безопасности.
Целью данной выпускной квалификационной работы является перенос всей архитектуры сервера VDOM с языка Python 2.7 на язык Python 3.10.
Потребность в переносе системы вызвана рядом факторов. В первую очередь это устаревание системы — из-за прекращения поддержки языка разработчиками критически важные сторонние модули и библиотеки тоже прекратят или уже прекратили обновляться и исправляться в связи с переносом на более современную версию языка. Во вторую очередь ищется возможность сделать VDOM сервер быстрее и перенос сервера на язык Python 3 как раз может статься такой возможностью. В третью очередь без своевременного обновления сервера возникает потребность в безопасности — полный отказ от поддержки языка означает отсутствие исправлений важных угроз безопасности и уязвимостей а это в свою очередь ведёт к нарушению безопасности всей платформы.
Такая цель сопровождается рядом сложностей, например сама платформа VDOM это не только монолитный Сервер, но ещё и набор структур, типов и компонентов, которые создаются динамически. Для всех этих элементов нужно подобрать свой особый подход.
Чтобы выполнить поставленную цель были сформулированы следующие задачи:
1. Изучить предметную область
2. Исследовать существующую архитектуру сервера;
3. Изучить кодовую базу сервера VDOM Runtime;
4. Изучить способы переноса программ и программных компонентов с Python 2 на Python 3;
5. Провести обновление кода на Python 3;
6. Провести тестирование и отладку обновлённого кода.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Результатами выпускной квалификационной работы является выполнение следующих задач:
1. Рассмотрены различия языков Python 2 и Python 3.
2. В ходе анализа выявлен, а затем исправлен антипаттерн использования исключений в качестве управления потоком.
3. Описан процесс переноса сервера с языка Python 2 на Python 3.
4. VDOM сервер портирован на язык Python 3.
5. Изменённая версия сервера была успешно добавлена в публичный репозиторий VDOM сервера. [12]
6. Составлены рекомендации по переносу кода.
7. Проведено тестирование и отладка обновлённого кода.
Цель работы по переносу сервера VDOM была успешно выполнена — сервер запускается и работает на Python 3 и выполняет весь требуемый функционал по запуску веб-приложений.
Результаты данной работы могут быть использованы для дальнейшего развития и улучшения сервера VDOM на языке Python 3.



1. WYSIWYG - Wikipedia // Википедия: свободная энциклопедия, [Б. м.] 2023. URL: https://en.wikipedia.org/wiki/WYSIWYG (дата обращения: 25.04.2023)
2. Singleton pattern — Wikipedia // Википедия: свободная энциклопедия, [Б. м.] 2023. URL: undefined. https://en.wikipedia.org/wiki/Singleton pattern (дата обращения: 25.04.2023)
3. Lazy initialization — Wikipedia // Википедия: свободная
энциклопедия, [Б. м.] 2023. URL:
https://en.wikipedia.org/wiki/Lazy initialization (дата обращения: 25.04.2023)
4. Wrapper function — Wikipedia // Википедия: свободная энциклопедия, [Б. м.] 2023. URL: https://en.wikipedia.org/wiki/Wrapper function (дата обращения: 25.04.2023)
5. Anti-pattern - Wikipedia // Википедия: свободная энциклопедия, [Б. м.] 2023. URL: https://en.wikipedia.org/wiki/Anti-pattern (дата обращения: 25.04.2023)
6. PyPI The Python Package Index // Официальная страница репозитория PyPI, [Б. м.] 2023. URL: https://pypi.org/ (дата обращения: 25.04.2023)
7. What are Linters and Fixers for Python - opensource for you //
Новостной-информационный ресурс и образовательный портал, посвещённый открытому программному обеспечению, [Б. м.] 2023. URL:
https://www.opensourceforu.com/2021/03/what-are-linters-and-fixers-for-python/ (дата обращения: 25.04.2023)
8. WebDAV - Wikipedia // Википедия: свободная энциклопедия [Б. м.] 2023. URL: https://en.wikipedia.org/wiki/WebDAV (дата обращения: 25.04.2023)
9. Руководство по переносу кода // Документация языка Python, [Б. м.] 2023. URL: https://docs.python.org/3/howto/pyporting.html#update-your-code (дата обращения: 25.04.2023)
10. futurize Py2 to Py2_3 — Python-Future documentation // Сайт
библиотеки python-future, [Б. м.] 2023. URL: https://python-
future.org/futurize.html (дата обращения: 25.04.2023)
11. Apache JMeter - Apache JMeter™ // Сайт открытого программного обеспечения Apache JMeter, [Б. м.] 2023. URL: https://jmeter.apache.org/ (дата обращения: 25.04.2023)
12. About pull requests - GitHub Docs // Документация открытого репозитория GitHub, [Б. м.] 2023. URL: https://docs.github.com/en/pull- requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with- pull-requests/about-pull-requests (дата обращения: 25.04.2023)



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ