Система мониторинга инженерных конструкций (СМИК) ПО «BESSEL» переходит на качественно новую технологическую архитектуру. Предыдущая версия ПО представляла собой монолитную систему, сформированную в ходе заказной разработки 2010-х годов, которая имела критические ограничения по надежности, безопасности и масштабируемости.
Обоснование необходимости перехода (проблемы legacy-архитектуры):
- Проблемы безопасности и утечки данных: В исходном коде в открытом виде содержались критические учетные данные (логины и пароли от почтовых аккаунтов SMTP), а отчеты о состоянии объектов и аварийных ситуациях отправлялись на личные почтовые ящики сторонних разработчиков . Это создавало риски раскрытия топологии сети, параметров оборудования и текущего технического состояния стратегических объектов.
- Нестабильность работы с датчиками и сетью: Низкоуровневая логика работы с оборудованием была построена на блокирующих сокетах и вызовах
Thread.sleep(). При сбое или зависании хотя бы одного RS-485 шлюза блокировался сбор данных со всех остальных датчиков. Проблемы рассинхронизации времени "решались" принудительным скачком времени вперед, что искажало физику измерений и графики колебаний. - Высокое связывание и сложности масштабирования: Архитектура не обладала модульностью. Добавление новых типов оборудования (например, специализированных датчиков вроде 7056) требовало ручной правки до 8 различных файлов кода, фабрик и JSON-адаптеров, а отсутствие адекватной обработки исключений приводило к падению приложения в runtime.
Технологические изменения и решения в новой архитектуре:
Для обеспечения бесперебойной эксплуатации в режиме 24/7 структура ПО перерабатывается по современным стандартам:
- Переход на Rust: Использование компилируемого языка с потокобезопасностью и строгим контролем памяти позволяет исключить зависания драйвера, оптимизировать асинхронную работу с сетевыми шлюзами (RS-485) и обеспечить параллельный опрос всех датчиков без взаимных блокировок.
- Модульная архитектура и расширяемость: Реализована гибкая система подключения оборудования, позволяющая легко интегрировать новые типы приборов (включая инклинометры, двухкоординатные акселерометры и датчики фундамента) без переработки ядра системы.
- Устранение уязвимостей: Из кода полностью вырезаны жестко прописанные учетные данные сторонних сервисов. Вся отправка сообщений и отчетов переведена на защищенные локальные сервисы и изолированные каналы связи.
Комментарии (0)
Комментариев пока нет. Будьте первым!