АННОТАЦИЯ 3
Перечень условных обозначений, символов, сокращений, терминов 4
Введение 5
I Анализ процесса выпуска и доставки обновлений 8
1.1 Поколения устройств 8
1.2 Пути распространения 8
1.2.1 SPA prisma CLOUD 10
1.2.2 Client Portal 10
1.2.3 prisma APP 11
1.2.4 OverTheAir Updater 11
1.3 Операционные расходы, связанные с деятельностью путей распространения 11
1.4 Региональные особенности 12
1.4.1 Юридические ограничения 12
1.4.2 Стоимость мобильного интернета 13
1.5 Белые списки 13
1.5.1 Канареечные релизы 13
1.6 Топология системы 14
1.6.1 Стейджи 15
2 Анализ требований 17
2.1 Поэтапный релиз 17
2.1.1 Цели релиза 18
2.2 Функциональные требования 19
2.2.1 Обслуживание путей распространения 20
2.2.2 Загрузка файлов обновлений 23
2.2.3 Редактирование обновлений 25
2.2.4 Управление белыми списками 25
2.3 Нефункциональные требования 26
2.3.1 Панель управления 26
2.3.2 Размещение в Azure и SSO Microsoft Entra ID 26
.3 Проектирование 27
3.1 Обзор используемых инструментов и технологий 27
3.1.1 ASP.NET 27
3.1.2 Entity Framework Core 28
3.1.3 React 28
3.1.4 PostgreSQL 28
3.2 Хранение и передача файлов 29
3.2.1 SAS URI 29
3.2.2 Уязвимости, связанные со скачиванием файлов 30
3.3 API для путей распространения 31
3.4 Контроль доступа 33
3.4.1 Единый вход на основе Entra ID 33
3.4.2 Внешний токен 34
3.4.3 Client Credentials 35
3.5 Зависимости 37
3.6 Общая структура серверного приложения 38
4 Реализация 40
4.1 Локальные правила и условные обозначения 40
4.2 Имплементация классов модели предметной области 40
4.2.1 Сопоставление видов ПО и поколений PAP-аппаратов 41
4.2.1 Ссылки на содержание 42
4.3 Имплементация слоя приложения 43
4.4 Инфраструктурные сервисы 43
4.4.1 API-клиенты Country Mapper и prisma CLOUD Core 43
4.4.2 Авторизация API-клиентов 44
4.4.3 Хранение файлов 47
4.4.4 Формирование SAS URI 48
4.5 Сервисы распространения ПО 49
4.5.1 Алгоритм обработки запросов путей распространения 51
4.5.2 Поиск доступных обновлений 52
4.6 Контроль доступа 54
4.6.1 Policy Schemes 55
Заключение 58
Список использованных источников и литературы 59
Данная работа выполнена в рамках проекта prisma CLOUD, представляющего собой экосистему для медицинских организаций, врачей и пациентов в сфере медицины сна, конкретно — ее подраздела, направленного на терапию связанных со сном нарушений дыхания, таких как обструктивное или центральное апноэ сна.
Апноэ сна — разновидность апноэ (остановки дыхательных движений), для которого характерно прекращение лёгочной вентиляции во время сна. Частые симптомы включают дневную сонливость, храп, ухудшение работоспособности и постоянную усталость, несмотря на достаточное время сна. Заболевание выражается в затрудненности дыхания во время сна и приводит к значительному снижению качества жизни пациента: остановкам дыхания, пробуждениям с ощущением нехватки воздуха и удушья и головным болям, вызванным кислородной недостаточностью и отравлением углекислым газом.
Одним из наиболее эффективных методов лечения апноэ сна средней и более тяжести считается PAP-терапия. Positive Airway Pressure, положительное давление в дыхательных путях — это неинвазивный способ вспомогательной вентиляции легких, доступный для применения в домашних условиях. Обычно выделяют два вида PAP- терапии, отличительной характеристикой которых является используемое давление воздуха: постоянное — CPAP, или переменное — APAP. Они реализуются с помощью CPAP/APAP-аппарата и функционируют следующим образом: пациент использует специальную плотно прилегающую маску, подключенную к аппарату; устройство создает положительное давление воздуха, которое поддерживает дыхательные пути открытыми, тем самым предотвращая эпизоды остановки дыхания и храп.
Система prisma CLOUD обеспечивает ключевые возможности, необходимые для качественного и оперативного предоставления медицинской помощи с использованием PAP-аппаратов: успех PAP-терапии во многом зависит от грамотного подбора лечебного давления в зависимости от индивидуальных потребностей пациента. Функциональность prisma CLOUD направлена на реализацию телемедицины — удаленного взаимодействия пациентов и медицинских работников посредством телекоммуникационных технологий, и включает сбор, хранение, анализ и представление индивидуальных данных о процессе PAP- терапии, а также удаленное изменение ее параметров. Это позволяет врачу быстро и эффективно управлять процессом лечения на основании актуальной информации о текущем состоянии пациента.
Современные устройства для PAP-терапии — это сложные аппаратные продукты, функционирование которых управляется встроенным программным обеспечением.
Добавление новой функциональности и прочие изменения этого программного обеспечения вносятся в него посредством обновлений.
Процесс выпуска обновления после окончания его разработки требует решения ряда задач, таких как, например, сертификация медицинского ПО и получение разрешения на его распространение в определенных странах в соответствии с их законодательством. Однако финальным и самым разнообразным этапом в процессе выпуска обновления является непосредственно его доставка на устройство.
Сложность этого этапа во многом обуславливается одновременным вовлечением в него нескольких взаимодополняющих систем. Доставка обновления на аппарат может быть реализована с помощью одного из четырех независимых сервисов, называемых путями распространения. Данные сервисы разрабатываются и контролируются отдельными командами из различных структурных подразделений организации. Таким образом, процесс релиза требует скоординированных действий большого числа сотрудников, которые будут вручную подготавливать выпуск обновления в подотчетных им сервисах в соответствии с их внутренним устройством (Рисунок 1).
New software version
is ready for release
Рисунок 1 — Исходный процесс
Среди недостатков такого процесса — организационная сложность, неоптимальное количество задействованных человеческих ресурсов и ручного труда. Это делает его подверженным человеческим ошибкам и приводит к повышению соответствующих затрат, что негативно сказывается на общей стоимости обслуживания PAP-аппаратов. Решение данной проблемы требует унификации взаимодействия с путями распространения и создания централизованного процесса, позволяющего осуществлять выпуск обновления и управлять его течением.
В связи с этим была поставлена цель: разработать систему, позволяющую управлять распространением обновлений встроенного ПО для медицинских устройств через различные каналы доставки. Внедрение такой системы в prisma CLOUD сократит количество ручного труда, задействованного в процессе выпуска обновлений, и сделает его надежнее и экономичнее. Новая система, а также проект по ее разработке получили название Bucharest.
Для достижения поставленной цели были сформулированы следующие задачи.
1. Проанализировать процесс распространения обновлений встроенного ПО.
2. Проанализировать требования к разрабатываемой системе.
3. Спроектировать архитектуру системы.
4. Реализовать систему.
В рамках работы была выполнена задача по исследованию исходного процесса выпуска и доставки новых версий встроенного ПО для PAP-аппаратов в системе prisma CLOUD. На его основании был проведен анализ требований к системе, позволяющей автоматизировать этапы рассмотренного процесса, связанные с контролем передачи обновлений с использованием децентрализованных каналов доставки.
По результатам анализа требований была спроектирована архитектура системы, предусматривающая управление условиями релиза ПО и их автоматическое применение при обслуживании запросов путей распространения. Спроектированная система реализована в полном объеме и введена в эксплуатацию с планами на долгосрочную поддержку и сопровождение.
Внедрение разработанной системы позволило централизовать процесс управления передачей обновлений с помощью всех путей распространения, устранив необходимость в ручной подготовке выпуска обновлений в задействованных сервисах (Рисунок 40). Благодаря этому, для управления релизом достаточно изменить его конфигурацию в Bucharest — вместо координирования действий множества сотрудников, осуществляющих разработку и сопровождение prisma CLOUD, prisma APP, OTA и Client Portal. Это снижает риск человеческих ошибок и обеспечивает оптимизацию трудовых ресурсов, связанных с выпуском новых версий ПО.
Рисунок 40 — Процесс после внедрения разработанной системы
Таким образом, цель работы — разработать систему, позволяющую управлять распространением обновлений встроенного ПО для медицинских устройств через различные каналы доставки — можно считать достигнутой.