My problem is this... I need to somehow communicate the completion of a workflow back to the calling application. The scenario is as follows:
I have a "generic" workflow engine, utilising Windows Workflow Foundation. This part works fine, no hassles.
The idea of the workflow engine is that we can integrate a workflow authorisation process easily into any application with minimal work.
The problem lies in the "generic" part of the workflow engine (a windows service). A 'calling application' tells the workflow service, through a web service, that a workflow needs to be started with certain parameters. The workflow then goes through its paces and the workflow then either completes after a certain percentage of authorisations or rejections, or the time out is reached and the workflow is automatically rejected. From here, the 'calling application' needs to be notified of the end result of the workflow. Currently it is being done by adding functionality to the workflow engine, which makes it non-generic.
So, my question is, what would be the best way to notify calling applications when a workflow has completed and what the end result was?
And then just some notes on the environment :-
- There are configuration options available on the workflow side, but essentially we want to try and keep it as generic as possible, ie. not have to do web service calls back to the calling application
- Ideally I would like to avoid having to create any windows services to poll, say, a database, to look for workflow results
- The workflow engine should be able to run completely independently, ie on its own server, with its own database
So, in other words, what would be the best way for a calling application to find out if a workflow process has completed, and what the result was, through a web service?
Your ideas and input would be appreciated!