Цепочки обработки

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

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

scheme

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

Подобным образом в цепочку добавляются все необходимые обработчики.

scheme

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

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

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

Касательно данного примера, если провести связь от fuel_cons в первую точку следующего обработчика, то она будет соответствовать переменной x. Если же провести связь во вторую, то соответствие будет с переменной s, и т. д. В данном случае, первый обработчик рассчитывает расход топлива, выраженный в л/100 км, второй - стоимость всей поездки, выраженной в рублях. Для расчета стоимости используется расход топлива в качестве x, пройденное расстояние s и цена на топливо c. Поэтому связь проводится к первой входной переменной. После внесения изменений их необходимо сохранить.

scheme

Запуск цепочки осуществляется таким же образом, что и запуск обработчика. На цепочку необходимо назначить один или несколько объектов, на которых она должна исполняться. Для этого нужно перейти во вкладку "Объекты", добавить один или несколько объектов путем выбора из предложенного списка и запустить саму цепочку. Индикация запуска цепочки представлена в виде зеленой полосы, появляющейся рядом с объектом. Назначение объекта для цепочку осуществляется по аналогии с назначением объекта для обработчика.

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

scheme

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

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