The idea of automatic execution of software components is as old as computer programming itself. In a sense, every computer program executes a workflow running its modules step-by-step. However, this execution does not require additional tools and methods.
In system integration, every time one system passes the control to another system, there is a chance of building a general workflow system. Steps executed in this workflow can be run completely independent of human intervention. The decision about executing a certain step can be made based on configuration, business rules, and the output of previous steps.
Let's take another look at data federation discussed in the previous chapter. We shall focus on the required workflow rather than data exchange.