Архитектура#
Архитектура CARS_API представлена на рисунке ниже (Рисунок 1).
Подробное описание архитектуры приведено в Таблице 2.
Таблица 2. Описание архитектуры сервиса CARS_API
| Компонент | Описание |
|---|---|
| Источники | Источники запросов на получение атрибутов ТС и ГРЗ: |
| - Ручной запрос пользователя (подробнее в разделе API-запросы); | |
| - Внешняя система. Может быть использована CARS_Analytics или любая система заказчика. | |
| Балансировщик нагрузки | Сервис для распределения запросов и ответов между несколькими запущенными копиями CARS_API и внешней системой аналитики и сбора информации. CARS_API поддерживает работу только с Nginx. |
| HTTP REST Server | Сервис, отвечающий за обмен информацией с внешними системами и за обработку запросов. Обрабатывает полученный запрос: декодирует полученное изображение во внутренний формат, доступный для распознавания атрибутов, и последовательно запускает каждый классификатор. После получения атрибутов ТС и ГРЗ от классификаторов отправляет ответ в формате JSON обратно потребителю. |
| Vehicle Engine | Библиотека, содержащая методы обработки изображения ТС и ГРЗ (подробнее в разделе Настройка). |
Диаграмма взаимодействия HTTP REST Server и Vehicle Engine#
Диаграмма последовательности взаимодействия компонентов HTTP REST Server и Vehicle Engine для получения атрибутов ТС представлена на рисунке ниже (Рисунок 2).
Подробное описание шагов диаграммы приведено в Таблице 3.
Таблица 3. Описание шагов диаграммы последовательности
| Шаг | Описание |
|---|---|
| 1 | Запрос на обработку изображения отправляется на HTTP REST Server в формате JSON, содержащего информацию о закодированных в формате Base64 изображениях ТС и ГРЗ, методе обработки изображения и списке классификаторов |
| 2 | Функция проверки наличия классификатора сверяет список заданных классификаторов со списком доступных |
| 3 | HTTP REST Server вызывает метод обработки изображения для каждого классификатора из заданного списка отдельно. Обработка по каждому переданному классификатору запускается последовательно |
| 4 | Vehicle Engine обрабатывает изображения в соответствии с вызванным методом |
| 5 | Vehicle Engine возвращает данные в HTTP REST Server для каждого переданного классификатора по очереди |
| 6 | HTTP REST Server формирует ответ и отправляет его в формате JSON обратно во внешнюю систему |