Use cases of the Workflow Engine

前端 未结 8 1477
温柔的废话
温柔的废话 2020-12-07 07:08

I\'d like to know about specific problems you - the SO reader - have solved using Workflow Engines and what libraries/frameworks you used if you didn\'t roll your own. I\'d

8条回答
  •  粉色の甜心
    2020-12-07 07:35

    I am one of the authors of Imixs-Workflow. Imixs-Workflow is an open source workflow engine based on BPMN 2.0 and fully integrated into the Java EE technology stack.
    I develop workflow engines by myself since more than 10 years. I will try to answer your question in short:

    > What problems have you used workflow engines to solve?

    My personal goal when I started to think about workflow engines was to avoid hard codding the business logic within my application. Many things in a business application can be reused so it makes sense to keep them configurable. For example:

    • sending out a notification
    • view open tasks
    • assigned a task to a person
    • describing the current task

    From this function list you can see I am talking about human-centric workflows. In short: A human-centric workflow engine answers the questions: Who is responsible for a task and who needs to be informed next? And these are the typical questions in business requirements.

    >What libraries/frameworks did you use?

    5 years ago we started reimplementing Imixs-Workflow engine focusing on BPMN 2.0. BPMN is the common standard for process modeling. And the surprising thing for me was that we were suddenly able to describe even highly complex business processes that could be visualized and executed. I recommend everyone to use BPMN for modeling business processes.

    > When did a simpler State Machine/Task Management like system suffice?

    A simple state machine is sufficient if you just want to track the status of a business object. This is the case when you begin to introduce the 'status' attribute into your object model. But in case you need business processes with responsibilities, logging and flow control, then a state machine is no longer sufficient.

    > Bonus: How did/do you make the distinction between Task Management and Workflow Engine?

    This is exactly the point where many workflow engines mentioned here differ. For a human-centric workflow you typically need a task management to distribute tasks between human actors. For a process automation, this point is not so relevant. It is sufficient if the engine performs certain tasks. Task management and workflow engines can not be compared because task management is always a function of a workflow engine.

提交回复
热议问题