2
votes

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?

Requirements:

  • 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.

3

3 Answers

0
votes

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).

  • Must be able to monitor the health of each content "agent" via admin UI

The Admin UI can retrieve the data from the webservice which

  • Must be able to start and stop individual workflows via admin UI

Let the workflow instance to handle a specific event to start or stop

  • Workflows are recurring based on a schedule, but not necessarily "long-running"

Let the workflow instance to handle a specific event to do so

  • "Service" must have high availability

WindowsService is daemon alike application, it runs forever if it doesn't crash

0
votes

You may want to look into Dublin, Microsoft's upcoming integrated host for workflow services. It's not out yet, but offers some of the features you're looking for.