Архитектура#
Архитектура CARS API представлена на Рисунке (Рисунок 1).
Подробное описание архитектуры приведено в Таблице 2.
Таблица 2. Описание архитектуры сервиса CARS API
| Компонент | Описание |
|---|---|
| Источники | Источники запросов на получение атрибутов ТС и ГРЗ: |
| - Ручной запрос пользователя (см. п.8); | |
| - Внешняя система. *Может быть использована CARS Analytics или любая система заказчика | |
| Балансировщик нагрузки | Сервис для распределения запросов и ответов между несколькими запущенными копиями CARS API и внешней системой аналитики и сбора информации. CARS API поддерживает работу только с Nginx |
| HTTP REST Server | Сервис, отвечающий за обмен информацией с внешними системами и за обработку запросов. Обрабатывает полученный запрос: декодирует полученное изображение во внутренний формат, доступный для распознавания атрибутов, и последовательно запускает каждый классификатор. После получения атрибутов ТС и ГРЗ от классификаторов отправляет ответ в формате JSON обратно потребителю. |
| Vehicle Engine | Библиотека, содержащая методы обработки изображения ТС и ГРЗ (см. п.4) |
Диаграмма взаимодействия 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 обратно во внешнюю систему. |