The application that I'm designing will retrieve and store content from a variety of disparate sources on a schedule. In some cases, the content will be retrieved based on a time interval (think stock quotes), and in other cases the content will be retrieved based on a custom schedule (MWF @ 2pm). Many of the processes lend themselves to MS Workflow. The built-in SQL tracking service will provide a lot of value. The content sources are sufficiently different that each different type of content retrieval will be a custom workflow.
My question is, how should I host, monitor,schedule, and expose the Workflows?
- Must be able to monitor the health of each content "agent" via admin UI
- Must be able to start and stop individual workflows via admin UI
- Workflows are recurring based on a schedule, but not necessarily "long-running"
- "Service" must have high availability
Windows service, Workflow Service, ASP.Net, WCF are all available to me, and I'm open to other suggestions as well.
WF and WCF can be hosted as one WindowsService,
You can create a set of services to expose the state/information from the Workflow in WindowsService via WCF web service. Therefore the WCF service should have a reference to your workflow exchange contract ( somehow can reference to workflow engine to deliver the request info from client UI).
The Admin UI can retrieve the data from the webservice which
Let the workflow instance to handle a specific event to start or stop
Let the workflow instance to handle a specific event to do so
WindowsService is daemon alike application, it runs forever if it doesn't crash