Integrating a workflow engine into a business application provides a lot of benefits in implementing a variable business process. The goal of such an integration is to find a flexible way changing the business process and the behaviour of a business application without reimplementing or changing a single line of code.
There are in general tree different kinds of possible integration scenarios.
1.) LOOSE COUPLING OF A PROCESS INSTANCE
In this scenario the workflow engine is only loosely coupled with the business application. Based on a business process model the workflow engine controls process instances which are connected to business objects fully controlled by the business application. The business object holds only a reference to a process instance. The business application triggers the state of a process instance with an action or an interceptor model. The process model is designed around the event model of the business application. The workflow engine did not store any business data.
This variant interferes with the development of the software in any way. But also the workflow engine have no information about business data and can’t interact or distribute business data. The loose coupling of a process instance can be used if the workflow engine need to be integrated after the business logic was implemented. The design of the process model depends on the implementation of the business logic.
2.) LOOSE COUPLING OF A WORKITEM
This scenario assumes that a common data object (workitem) is exchanged between the application and the Workflow system. The workitem holds the reference to a process instance controlled by the workflow system and provides additional business data controlled by the application. This data can be used by the workflow system during processing a process instance. For example the business data can be used to evaluate business rules or distribute information.
The workflow engine can be triggered through the business application with an action or an interceptor model. Or the workflow system can asynchronous monitor the business application and update the process state depending on business objects stored into a common database.
The business application has not direct access to the process instances controlled by the workflow system and can not share the processing information simultaneous with the business data. The loose coupling of a workitem can be used to integrate a workflow system with business data. The design of the process model depends mainly on the business object and the business logic.
3.) CLOSE COUPLING OF A WORK ITEM
The close coupling of a business application with a workflow system is the way where the application interacts with the worklfow system in a direct way. The business data and the processing information is exchanged using a common data object (workitem). The workitem holds the reference to a process instance controlled by the workflow system and provides also business and workflow data. To avoid redundancies, the business application should not store data, which is also part of the workitem controlled by the workflow system.
In this scenario the integration of the workflow engine is done simultaneously with the implementation of the business logic. The business application can integrate the processing information in real-time and interact with the workflow engine in various ways. The workflow engine can be triggered through the business application with an action or an interceptor model and also asynchronous by an external application.