Fleet management — ФОРА транспортные технологии
Главная / Fleet management

Парк, который настраивается по сети

Сервер в диспетчерской и клиент на каждой машине. Настройка систем, доставка и обновление ПО, запуск приложений, контроль состояния — командой, а не поездкой к технике. Узлы, куда клиент установить нельзя, сервер ведёт напрямую.

Клиент + сервер Автопоиск сервера в сети Windows / Linux / macOS Узлы без ОС Облако или сервер заказчика

Что меняется, когда парк подключён

Пока машин единицы, всё держится на выездах и на памяти инженера. На десятках машин это перестаёт работать: версии расходятся, конфигурации живут в чьей-то голове, о неисправности узнают от водителя.

Обновление бортового ПО

Раньше новая версия — это выезд к каждой машине, и половина парка месяцами остаётся на старой.

Стало сервер выкладывает дистрибутив, машины забирают его по сети и обновляются сами.

Ввод машины в парк

Раньше настройка по чек-листу вручную — и каждая единица техники в итоге чуть-чуть своя.

Стало клиент находит сервер и получает готовую конфигурацию для своего типа техники.

Реакция на проблему

Раньше о вставшем приложении или перегреве узнают от водителя, а причину ищут на месте.

Стало состояние систем и процессов видно в диспетчерской, перезапуск — командой.

Как устроено

Два приложения и канал сообщений между ними. Канал работает поверх обычной локальной сети и не зависит от того, какая операционная система стоит на машине — и стоит ли вообще.

Сервер Команды, конфигурации, доступы Дистрибутивы, прошивки, артефакты REST API и состояние парка UDP — поиск сервера WebSocket — команды HTTP/S, SCP — файлы настройка без клиента заливка прошивок поверх обычной локальной сети Машина с ОС Клиент — набор модулей: Транспорт Файлы Shell Процессы Мониторинг Узел без ОС Модули ввода-вывода и микро- контроллерные платы: DCON Прошивки Без агента
1

Клиент попадает на машину

Устанавливается вручную при подготовке техники или разворачивается с сервера: тот передаёт исполняемый файл на узел по SSH и запускает его в первый раз.

2

Клиент сам находит сервер

Сервер объявляет себя в сети широковещательным сообщением со всем, что нужно для подключения. Клиент отвечает и встаёт на связь — прописывать адреса на каждой машине не нужно.

3

Сервер отдаёт рабочую конфигурацию

Клиент опознаётся типом техники и своим уникальным идентификатором: по типу сервер понимает, какую конфигурацию отдать, по идентификатору — адресует команды конкретной машине.

4

Дальше всё делается командами

Обновить программу, поменять настройку, перезапустить приложение, перезагрузить машину, собрать состояние — из диспетчерской, без выезда к технике.

Клиент на машине

Основную работу выполняет клиент — он знает, как устроена конкретная система. Это не монолитный агент, а набор модулей: каждый закрывает свою часть работы и вызывается сервером отдельно.

Настройка системы

Параметры сетевых адаптеров, IP и DHCP, разрешения на видеовыходах, обновление пакетов. Клиент выполняет и произвольную команду с параметрами, и набор готовых зарегистрированных операций — результат возвращается на сервер.

Bash / PowerShell IP и DHCP APT / Winget

Доставка и обновление ПО

Загружает дистрибутивы и нужные библиотеки, распаковывает, раскладывает типовые конфигурации, обновляет рабочие программы. Файлы забираются с сервера по локальной сети или напрямую из интернета, если машине это разрешено.

HTTP/S SCP поверх SSH Типовые конфигурации

Контроль приложений

Список запущенных процессов и их потребление ресурсов, запуск, остановка и перезапуск, постановка в автозапуск — и для собственных программ, и для системных служб.

Автозапуск и systemctl Ресурсы по процессам

Мониторинг состояния

Температуры основных компонентов, загрузка процессора, память, диск, сеть, состояние конкретных процессов. Данные снимаются готовыми экспортёрами — значит, их можно забрать не только в наш интерфейс.

Экспортёры Prometheus Температуры и нагрузка

Питание и канал связи

Выключение и перезагрузка по команде. Транспортный модуль держит связь с сервером: находит его в сети, ведёт обмен командами и телеметрией и отдельным путём настраивает прикладные программы на борту.

UDP — поиск сервера WebSocket HTTP/S

Сервер в диспетчерской

Сервер решает, что и когда должно произойти на машинах, и хранит всё, что им нужно скачать.

  • Управление клиентами. Прежде всего это командный сервер: рассылает инструкции — что нужно сделать на конкретной машине прямо сейчас — и держит конфигурации всего парка.
  • REST API. Бекенд для интерфейса диспетчера и для интеграции с системами заказчика.
  • Раздача артефактов. Единая точка загрузки дистрибутивов, прошивок и конфигураций: наружу за обновлениями ходит только сервер, машины забирают файлы по локальной сети.
  • Оборудование без клиента. Прямое взаимодействие с узлами, на которые клиент установить нельзя, — вплоть до заливки прошивок.
  • Первичное развёртывание. Доставка и запуск клиента на новом узле по SSH — машина подключается к парку с нулевого состояния.
  • Состояние парка в одном месте. Телеметрия со всех клиентов собирается на сервере и отдаётся в интерфейс или во внешнюю систему мониторинга.

Узлы без операционной системы

На борту всегда есть железо, куда клиентское приложение просто некуда установить: модули ввода-вывода с протоколом DCON, микроконтроллерные платы, наши собственные контроллеры. Такие узлы не остаются в стороне от парка — их ведёт сервер напрямую: находит, настраивает, заливает прошивку.

Для собственных устройств прошивка собирается особым образом — так, чтобы устройство умело обновлять само себя, не завися от программатора и физического доступа к плате.

Платы ввода-вывода

Развёртывание и интеграция

Платформа рассчитана на реальный парк, а не на демо-стенд: закрытые сети без интернета, разношёрстные машины, техника, до которой далеко ехать.

Где живёт сервер

В облаке или на сервере заказчика — в том числе в закрытом контуре без выхода в интернет. Обновления в такой контур попадают через сервер, а не через каждую машину по отдельности.

Что нужно на машине

Одно клиентское приложение. Оно не требует установленной среды исполнения и работает на Windows, Linux и macOS — на бортовом компьютере, на промышленном ПК или на рабочей станции.

Связь с тем, что уже есть

Состояние парка отдаётся через API, а с машин снимается экспортёрами с интерфейсом Prometheus — телеметрия может уходить в уже используемую систему мониторинга.

Сухой остаток

UDP + WebSocket HTTP/S, SCP по SSH REST API Экспортёры Prometheus DCON Windows / Linux / macOS Клиент — один исполняемый файл Облако или локальный сервер

Под ваш парк

Состав платформы подбирается под то, что реально стоит на машинах: какие приложения нужно обновлять, какое оборудование опрашивать, что должно быть видно диспетчеру. Мы сами разрабатываем и бортовую электронику, и софт к ней, поэтому доработка под конкретный парк — нормальный процесс, а не спецзаказ.

Обсудить проект