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


РАЗРАБОТКА ПРОТОТИПА ЕДИНОГО ЛИЧНОГО КАБИНЕТА ТГУ

Работа №183430

Тип работы

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

Предмет

программирование

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

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


АННОТАЦИЯ 3
Перечень условных обозначений 3
Введение 4
1 Актуализация текущего состояния систем 6
1.1 Проблемы текущих систем ТГУ 6
1.2 Анализ контекстов систем 8
1.3 Обновленное разделение системы на сервисы 11
2 Выбор подходов и практик для решения проблем текущих систем 15
2.1 Пожелания к новой системе 15
2.2 Инструментарий 16
2.2.1 ASP.NET Core 17
2.2.2 Entity Framework Core 18
2.2.3 DAPR 18
2.3 Архитектурный подход 20
2.4 Структура кодовой базы системы 23
2.4.1 Пакет Common 25
2.4.2 Шаблон микросервиса 27
2.4.3 Шаблон макросервиса 29
3 Проектирование и разработка прототипа системы 31
3.1 Пакет Common 33
3.2 Сервис файлов 35
3.3 Сервис профилей 39
4 Подведение итогов 46
Заключение 48
Литература

В Томском Государственном университете используются множество информационных систем для управления, формализации и автоматизации его процессов. Одним из самых значимых процессов в данной организации являются процессы, связанные с учебной деятельностью.
В ТГУ используются системы как от сторонних поставщиков, так и собственные разработки. 3 самых крупных системы собственной разработки - ТГУ.Аккаунты, Личный кабинет студента ТГУ, ТГУ.Сотрудники - существуют более 8 лет, в течение которых постоянно дорабатывались. В отделе, который ответственный за разработку этих систем, сменилось несколько команд. С течением времени накапливались проблемы: недостаточное документирование кода и мотивации принятых решений, недостаточное покрытие кода тестами, или в некоторых случаях, нетестируемый код, неудачные архитектурные решения по интеграции между приложениями, которые сделали систему крайне уязвимой к кратковременным сетевым сбоям, устаревший фреймворк, который имеет зависимости от проприетарной ОС Windows Server, зависимость сервисов от проприетарной СУБД MS SQL Server, отсутствие средств трассировки распределенных запросов, проблемы с безопасностью и проверкой прав доступа. Все эти факторы привели к тому, что работать с кодовой базой становилось все сложнее, а внесение изменений требует все больше времени на проверку и может задеть совершенно неожиданные компоненты.
В конце 2023 года от нескольких подразделений университета поступил запрос на оценку трудозатрат по реализации внушительного набора объемных функций в указанных системах. Из-за описанных выше проблем, запрошенный функционал было невозможно реализовать в полной мере за вменяемые сроки. Выход из ситуации команда разработки видела в перепроектировании существующих сервисов с использованием распределенной архитектуры, а в процессе проектирования учесть реализацию нового функционала. Также этот подход поможет решить проблему зависимости от проприетарной ОС и СУБД, которые не входят в список рекомендованного ПО ФСТЭК России.
Для решения описанных проблем было решено начать разработку новой системы, которая объединит возможности упомянутых существующих систем. Однако, разработка такой системы представляет из себя огромный объем работы, а команда разработки не имеет опыта разработки распределенных систем подобного масштаба, поэтому чтобы получить представление о разработке системы требуемого масштаба и отработать подходы для работы над новой распределенной системой, было решено в первую очередь разработать прототип такой распределенной системы, что является целью данной выпускной квалификационной работы.
Для реализации данной цели были выделены следующие задачи:
1) Выбрать инструменты и архитектурные подходы для упрощения работы над новой системой.
2) Разработать прототип новой системы.
3) На основе разработки прототипа сделать выводы о выбранных подходах и инструментах.
Решению поставленных задач посвящена данная выпускная квалификационная работа.


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

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

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


В результате проделанной работы былопределен архитектурный подход для проектирования и разработки новой системы, разработаны шаблоны проектов микросервиса и макросервиса, которые будут использоваться командой при разработке системы; спроектированы и разработаны сервисы профилей и файлов, которые были реализованы с использованием шаблонов макросервиса и микросервиса соответственно; с использование фреймворка DAPR разработанные сервисы образуют прототип системы, который позволил проверить возможности выбранных инструментов, продемонстрировать сценарий межсервисного взаимодействия и простоту его имплементации в системе.
В данный момент прототип используется для проверки более сложных сценариев, связанных с распределенными транзакциями. Перед командой стоят задачи: определиться с необходимостью и возможностью использования компонента Workflow, предоставляемого DAPR, для управления распределенными транзакциями; сделать выбор системы авторизации запросов; сделать выбор компонента API Gateway.
Все поставленные задачи были выполнены, а цель работы достигнута.



1. API // MDN Web Docs [сайт]. - URL:
https://developer.mozilla.org/ru/docs/Glossary/API (дата обращения: 06.04.2024).
2. Rotem-Gal-Oz A. SOA Patterns. USA: Manning Publications, 2012. 269 p. ISBN 9781933988269.
3. Горяйнов Л. Б. Реинжиниринг корпоративных информационных систем университета, связанных с учебной деятельностью: магистерская диссертация по направлению подготовки: 09.04.04 - Программная инженерия / Горяйнов Л. Б. - Томск:
[Б. и.], 2023 - URL: https://vital.lib.tsu.rU/vital/access/manager/Repository/vital:18373 (дата обращения: 25.03.2024).
4. Evans E. Domain-driven design: Tackling complexity in the heart of software. Boston, MA: Addison-Wesley Educational, 2003
5. Unified Modeling Language. Ver. 2.5: Specification [Электронный документ] // Object Management Group. - [Б. м.], 2015. - URL: https://www.omg.org/spec/UML/2.5/PDF (дата обращения: 08.04.2024).
6. The API gateway pattern versus the Direct client-to-microservice communication //
Microsoft [официальный сайт]. - URL: https://learn.microsoft.com/en-
us/dotnet/architecture/microservices/architect-microservice-container-applications/direct-client- to-microservice-communication-versus-the-api-gateway-pattern (дата обращения: 11.04.2024).
7. Жвачкин: "Большой университет" Томска увеличит ВВП страны на 1% // РИА Томск [сайт] - URL: https://www.riatomsk.ru/article/20191206/zhvachkin-boljshoj-universitet- tomskaya-uvelichit-vvp-strani-na-1/ (дата обращения: 15.05.2024).
8. Overview of ASP.NET Core // Microsoft [сайт] URL: https://learn.microsoft.com/en- us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8.0 (дата обращения: 13.04.2024).
9. Inversion of Control Containers and the Dependency Injection pattern // Martin Fowler [сайт] URL: https://martinfowler.com/articles/injection.html (дата обращения: 14.04.2024).
10. Entity Framework Core // Microsoft [сайт] URL: https://learn.microsoft.com/en- gb/ef/core/ (дата обращения: 13.04.2024).
11. Официальный сайт PostgreSQL // PostgreSQL [сайт] URL:
https://www.postgresql.org/ (дата обращения: 13.04.2024).
12. Официальный сайт DAPR // DAPR [сайт] URL: https://dapr.io/ (дата обращения: 13.04.2024).
13. Hexagonal architecture // Alistair Cockburn [сайт] - URL: https://alistair.cockburn.us/hexagonal-architecture/ (дата обращения: 10.04.2024)
14. Clean Code A Handbook of Agile Software Craftsmanship. — Бостон, Массачусетс: Pearson Education, Inc, 2009. — 462 с. — ISBN 0-13-235088-2.



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




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