Я пристрастен, я один из авторов ruote .
вариант 1) конечный автомат, прикрепленный к ресурсу (документ, заказ, счет, книга, предмет мебели).
вариант 2) конечный автомат подключен к виртуальному ресурсу с именем задачи
вариант 3) Механизм рабочего процесса, интерпретирующий определения рабочего процесса
Теперь ваш вопрос помечен как «BPM», его можно расширить до «Управление бизнес-процессами». Как такое управление происходит в каждом из вариантов?
В варианте 1 бизнес-процесс (или рабочий процесс) разбросан по приложению. Конечный автомат, подключенный к ресурсу, реализует некоторые аспекты рабочего процесса, но только те, которые связаны с ресурсом. Там могут быть другие ресурсы с их собственным конечным автоматом после того же бизнес-процесса.
В варианте 2 рабочий процесс может быть сконцентрирован вокруг ресурса задачи и представлен конечным автоматом вокруг этого ресурса.
В варианте 3 рабочий процесс приводится в действие путем интерпретации ресурса, называемого определением рабочего процесса (или определением бизнес-процесса).
Что происходит при изменении бизнес-процесса? Стоит ли иметь механизм рабочего процесса, где бизнес-процессы являются управляемыми ресурсами?
Большинство библиотек конечных автоматов имеют 1 набор состояний + переходы. Механизмы рабочих процессов, в большинстве своем, являются интерпретаторами определений рабочих процессов, и они позволяют нескольким различным рабочим процессам работать вместе.
Сколько будет стоить изменение рабочего процесса?
Варианты не являются взаимоисключающими. Я видел много примеров, когда механизм рабочего процесса изменяет состояние нескольких ресурсов, некоторые из которых охраняются конечными автоматами.
Я также часто использую вариант 3 + 2 для задач, выполняемых человеком: механизм рабочих процессов, в некоторые моменты при запуске экземпляра процесса, передает задачу (рабочий элемент) участнику-человеку (задача ресурса создается и переводится в состояние ' готов ").
Вы можете пройти долгий путь только с вариантом 2 (вариант диспетчера задач).
Мы могли бы также упомянуть вариант 0), в котором нет конечного автомата, нет механизма рабочих процессов, а бизнес-процессы разбросаны и / или жестко закодированы в приложении.
Вы можете задавать много вопросов, но если вы не уделите время, чтобы прочитать ответы и не потратите время, чтобы попробовать и поэкспериментировать, вы не уйдете очень далеко и никогда не приобретете никакого таланта когда использовать тот или иной инструмент.