Детальная информация
| Название | Клиент-серверная система для обновления по воздуху встраиваемых систем POSIX (Client-server system for Over-The-Air update of POSIX embedded systems): выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_03 «Разработка программного обеспечения» = Client-server system for over-the-air update of POSIX embedded systems (Сlient-server system for over-the-airupdate of POSIX embedded systems) |
|---|---|
| Авторы | Конышев Александр Евгеньевич |
| Научный руководитель | Фёдоров Станислав Алексеевич |
| Организация | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Выходные сведения | Санкт-Петербург, 2026 |
| Коллекция | Выпускные квалификационные работы ; Общая коллекция |
| Тематика | встраиваемые системы ; обновление по воздуху (ota) ; posix-совместимые операционные системы ; клиент-серверная архитектура ; c++17 ; отказоустойчивость ; целостность данных ; embedded systems ; over-the-air update (ota) ; posix-compatible operating systems ; client-server architecture ; fault tolerance ; data integrity |
| Тип документа | Выпускная квалификационная работа бакалавра |
| Язык | Русский |
| Уровень высшего образования | Бакалавриат |
| Код специальности ФГОС | 09.03.04 |
| Группа специальностей ФГОС | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-698 |
| Права доступа | Доступ по паролю из сети Интернет (чтение) |
| Дополнительно | Новинка |
| Ключ записи | ru\spstu\vkr\40079 |
| Дата создания записи | 20.04.2026 |
Разрешенные действия
–
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
| Группа | Анонимные пользователи |
|---|---|
| Сеть | Интернет |
Данная работа посвящена созданию клиент-серверной системы обновления POSIX-совместимых встраиваемых систем по воздуху. В ходе выполнения работы был проведен анализ существующих решений систем обновления программного обеспечения по воздуху, в результате которого были выявлены их основные ограничения применительно к POSIX-совместимым платформам. На основе полученных результатов были сформулированы требования к разрабатываемой системе и спроектирована архитектура клиентской и серверной частей системы. Клиентская часть системы была реализована в виде конечного автомата, а серверная с использованием двухслойной архитектуры. Разработан прототип системы. Проведено модульное, интеграционное и системное тестирование. Определены ограничения разработанной системы, рассмотрена совместимость с POSIX-совместимыми платформами и сформулированы перспективы развития. Для достижения данных результатов в работе были использованы следующие информационные технологии: язык программирования C++17 (g++ 14.0.2), система сборки СMake, СУБД PostgreSQL, библиотеки OpenSSL, cpp-httplib, libarchive, nlohmann/json, а также среда разработки Qt Creator, фреймворк Google Test и сервер непрерывной интеграции GitHub Actions.
This work is dedicated to the creation of a client-server system for the over-the-air update of POSIX-compatible embedded systems. During the work, an analysis of existing over-the-air software solutions was conducted, as a result of which their main limitations in relation to POSIX-compatible platforms were identified. Based on the obtained results, requirements for the system under development were formulated, and the architecture of the client and server system parts was designed. The client part of the system was implemented as a finite state machine, and the server part was implemented using a two-layer architecture. A prototype of the system has been developed. Unit, integration, and system testing were conducted. The limitations of the developed system were determined, compatibility with POSIX-compatible platforms was considered, and development prospects were formulated. To achieve these results, the following information technologies were used in the work: C++17 programming language (g++ 14.0.2), CMake build system, PostgreSQL DBMS, OpenSSL, cpp-httplib, libarchive, and nlohmann/json libraries, as well as the Qt Creator IDE, Google Test framework, and GitHub Actions continuous integration server.
| Место доступа | Группа пользователей | Действие |
|---|---|---|
| Локальная сеть ИБК СПбПУ | Все |
|
| Интернет | Авторизованные пользователи СПбПУ |
|
| Интернет | Анонимные пользователи |
|
- Введение
- Глава 1. Анализ существующих решений для обновления программного обеспечения по воздуху и их применимости к POSIX-совместимым системам
- 1.1. Классификация OTA-систем
- 1.1.1. По назначению обновления
- 1.1.2. По формату обновления
- 1.1.3. По схеме отказоустойчивости
- 1.1.4. По типу системы
- 1.2. Обзор существующих решений
- 1.2.1. Mender.io
- 1.2.2. Robust Auto-Update Controller (RAUC)
- 1.2.3. Qbee
- 1.2.4. HawkBit
- 1.2.5. SWUpdate
- 1.2.6. Balena
- 1.3. Сравнительный анализ существующих решений
- 1.1. Классификация OTA-систем
- Глава 2. Разработка архитектуры клиент-серверной системы
- 2.1. Общая концепция архитектуры системы
- 2.2. Техническое задание на разработку OTA-системы
- 2.2.1. Назначение системы
- 2.2.2. Поддерживаемые операционные системы
- 2.2.3. Функциональные требования к клиентской части
- 2.2.4. Функциональные требования к серверной части
- 2.2.5. Требования к защите информации
- 2.3. Схема взаимодействия компонентов
- 2.4. Архитектура клиентской части
- 2.4.1. Архитектура конечного автомата обновления
- 2.4.2. Хранение и восстановление состояний
- 2.5. Архитектура серверной части
- Глава 3. Реализация прототипа системы для обновления POSIX-совместимых систем по воздуху
- 3.1. Реализация прототипа клиентской части системы
- 3.1.1. Класс StateMachine
- 3.1.2. Класс UpdateContext
- 3.1.3. Реализация сохранения контекста обновления
- 3.1.4. Класс-интерфейс StateExecutor
- 3.1.4.1. Класс RegistrationStateExecutor
- 3.1.4.2. Класс IdleStateExecutor
- 3.1.4.3. Класс CheckingStateExecutor
- 3.1.4.4. Класс DowloadStateExecutor
- 3.1.4.5. Класс VerifyingStateExecutor
- 3.1.4.6. Класс PreparingStateExecutor
- 3.1.4.7. Класс InstallingStateExecutor
- 3.1.4.8. Класс CommittingStateExecutor
- 3.1.4.9. Класс FinalizingStateExecutor
- 3.1.5. Инициализация приложения и настройка защищенного канала соединения
- 3.2. Реализация прототипа серверной части системы
- 3.2.1. Уровень обработки запросов
- 3.2.2. Уровень прикладной логики
- 3.2.2.1. Структура ServerContext
- 3.2.2.2. Класс UploadService
- 3.2.2.3. Класс RolloutSupervisor
- 3.2.2.4. Класс RegistrationService
- 3.2.2.5. Класс ManifestService
- 3.2.2.6. Класс DownloadService
- 3.2.2.7. Класс ReportService
- 3.2.2.8. Класс UpdateSupervisor
- 3.2.2.9. Работа с базой данных
- 3.2.3. Инициализация приложения и настройка защищенного канала соединения
- 3.1. Реализация прототипа клиентской части системы
- Глава 4. Тестирование прототипа системы, выявление ограничений, масштабируемости и совместимости
- 4.1. Тестирование системы
- 4.1.1. Модульное тестирование системы
- 4.1.2. Интеграционное тестирование системы
- 4.1.3. Системное тестирование системы
- 4.1.4. Покрытие приложений тестами
- 4.1.4.1. Покрытие клиентского приложения тестами
- 4.1.4.2. Покрытие серверного приложения тестами
- 4.1.5. Автоматизация и запуск тестирования
- 4.2. Выявление ограничений, совместимость с операционными системами и перспективы развития системы
- 4.2.1. Выявление ограничений системы
- 4.2.2. Совместимость с операционными системами
- 4.2.3. Перспективы развития системы
- 4.1. Тестирование системы
- ЗАКЛЮЧЕНИЕ
- Список использованных источников