AXELOT SCAP состоит из платформы-ядра, содержащего в себе механизмы обеспечения работоспособности системы, и из наборов плагинов, содержащих реализацию алгоритмов планирования.

AXELOT SCAP разработан на технологиях .Net Core (язык C#).

AXELOT SCAP взаимодействует с другими компонентами и внешними бизнес-системами, СУБД и ГИС. Для хранения данных требуется одна из поддерживаемых типов СУБД, MS SQL Server или PostgreSQL.

Интеграция с бизнес-системами

«Управляющими» по отношению к SCAP системами могут быть одна или несколько компонент AXELOT SCM или внешних бизнес-систем. Именно из внешних компонент или бизнес-систем может быть инициирован запуск решения задачи оптимизации. 

Например, AXELOT TMS взаимодействует с AXELOT SCAP следующим образом: 

  • Периодически из TMS в SCAP передаются данные о нормативно-справочной информации, используемой в алгоритмах планирования (например, адреса, данные о цепи поставок, транспортных ресурсах и правилах совместимости типов грузов, рассчитанные пути между адресами). 
  • При необходимости решения задачи оптимизации из TMS в SCAP передаются данные о заявках на перевозку, звеньях или рейсах с ограничениями и прочими данными. 
  • Из SCAP в TMS передаются результаты планирования, как промежуточные, так и конечные. 

REST интерфейс

Взаимодействие с внешними бизнес-системами реализуется через REST API. Возможно как синхронное взаимодействие (например, добавление/изменение бизнес-объектов), так и асинхронное (решение задач оптимизации).

Спецификация REST API состоит из следующих разделов:

Аутентификация Бизнес-объекты Маршрутизация Оптимизация Логирование

Механизмы управления абонентами и пользователями абонентов.

Механизмы управления передаваемыми в SCAP справочниками.

Единый интерфейс расчета маршрутов через внешние геоинформационные сервисы.

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

Механизмы запроса журнала логов.

Управление абонентами

SCAP разработана по принципам мультиарендности, поэтому может одновременно взаимодействовать с несколькими бизнес-системами (системы класса ERP, WMS, TMS и прочие), каждая их которых может активировать одного или несколько абонентов.

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

При создании абонента для него создается пользователь с административными правами. При желании через REST API можно создать сколько угодно новых пользователей, если, например, в бизнес-системе стоит задача протоколирования действий пользователей, создающих задачи оптимизации или изменяющих данные системы.

Управление данными

Обновление и управление бизнес-данными, используемыми в алгоритмах оптимизации. Концепция системы не предполагает наличия механизмов визуального редактирования бизнес-данных. Нормативно-справочная информация либо загружается из внешней компоненты или бизнес-системы (например, TMS), либо через обращения к геоинформационным сервисам (ГИС).

Управление очередями задач

Задачи оптимизации перед исполнением помещаются в очередь и исполняются поочередно. Количество одновременно исполняемых задач зависит от настроек системы и производительности сервера, на котором развернут SCAP.

Подсистема логирования

В системе реализована поддержка двух видов логов: 

  • Протоколирование работы программы. Служебный лог, реализован через библиотеку log4net. 

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

    • При решении задачи оптимизации опционально можно настроить логирование процессов и сообщений о ходе выполнения алгоритма. Обозначенные данные отражаются в режиме реального времени и записываются в таблицы СУБД SCAP через программный интерфейс, доступный для разработчика плагина. 


      Лог является иерархическим: то есть одни записи логов могут быть логически связанными с другими через связь «Родитель» — «Потомок». При этом действует ограничение – у каждой записи логов может быть не более одной родительской записи.


      Предусмотрено два вида записей:

      Процесс Сообщение

      Отражает информацию о логическом процессе в ходе оптимизации. Процессы могут быть подчинены друг другу. В отличие от сообщений, процессы не предоставляют конкретной информации о результатах выполненных действий. Напротив, по процессу может фиксироваться длительность его выполнения вместе с количеством итераций (при решении комбинаторных задач оптимизации некоторые процессы могут исполняться большое количество раз). Хотя количество уровней подчинения в иерархии процессов определяется разработчиком плагина, рекомендуется, чтобы «глубина» вложенности не превышала 5.

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

Подсистема логирования событий, возникающих при решении задачи оптимизации, — ключевой механизм системы. Через продвинутую систему логов конечный пользователь бизнес-системы может получить полное представление о текущем состоянии решения, увидеть причины ошибок и неудач, предупреждения, а также подсказки по манипуляциям с входными данными задачи для увеличения качества решения. Сообщения могут быть напрямую связаны с идентификаторами бизнес-объектов внешней системы, что качественно повышает возможности анализа хода и результатов решения. 

Интеграция с геоинформационными системами

Решение задач оптимизации в цепях поставок напрямую связано с манипулированием пространственными данными. Например, для оптимизации объезда точек маршрута нужна информация о времени и расстоянии между точками. Указанная информация может быть получена напрямую из плагина-решателя через обращение к внешним геоинформационным сервисам.

В настоящее время AXELOT SCAP поддерживает работу с несколькими геоинформационными сервисами, в частности, с картографическим сервисами HERE Maps, AXELOT Maps и Яндекс Карты. Полный перечень поддерживаемых геоинформационных сервисов и условия их подключения уточняйте в компании AXELOT.

Система плагинов

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

Условно плагины бывают двух видов: 

  • Поставляемые. По одному типовому алгоритму под каждый класс задачи оптимизации. Взаимодействие с поставляемыми плагинами осуществляется через общий REST API, раздел «Оптимизация». 
  • Кастомные. Плагины реализуют уникальную логику «под заказ». Кастомные плагины имеют возможность публиковать свой REST интерфейс.