Сервис управления бизнес-процессами

Полное описание платформы Docsvision 5.5
Полное описание платформы
Скачать

Сервис управления бизнес-процессами (BPM) исполняет бизнес-процессы, которые были созданы в системе с помощью конструктора бизнес-процессов или автоматически сгенерированы отдельными приложениями системы.

Сервис реализует функции BPM-системы: распределяет приоритеты выполняемых процессов, запускает подпроцессы и контролирует их синхронизацию, исполняет отдельные функции процессов, маршрутизирует задания, вносит изменения в документы, реализует функции взаимодействия с внешними системами через функции шлюзов и пр.​​​​​​

Общее описание алгоритма работы сервиса
Сервис управления бизнес-процессами (Workflow) ведёт групповую обработку процессов: при наличии в системе нескольких активных процессов (их поиском занимается часть сервиса, которая называется детектором активных процессов) некоторые из них будут обрабатываться параллельно (одновременно). Процессы, которые обрабатываются параллельно друг другу, образуют группу обрабатываемых процессов. Пока сервис не завершит обработку любого из процессов группы, остальные активные процессы, не вошедшие в группу, ожидают в очереди процессов.

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

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

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

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

Таким образом, в обработке процессов сервисом Workflow можно выделить следующие этапы:

  • Поиск всех процессов в системе, активных в текущий момент времени. Составление списка активных процессов. Формирование из объектов полученного списка процессов очереди процессов, ожидающих обработки.
  • Выборка процессов из очереди. Отправка на обработку (освободившееся место в группе обрабатываемых занимает процесс, первый в очереди процессов).

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

Кластер организуется путем инсталляции нескольких независимых экземпляров сервиса управления процессами. Из них, один экземпляр выделяется как основной – именно он будет заведовать работой остальных узлов, и распределять между ними обработку процессов, а также отвечать за запуск новых экземпляров. Для каждого узла можно задать численную долю от общего количества процессов, которую он будет обрабатывать (настройка выполняется в Консоли Настройки Docsvision). Процессы распределяются по узлам целиком – то есть, каждый процесс от начала до конца выполняется на одном узле кластера.

 

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

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

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