title: Human activity support in Windows Workflow 4
body: <p>I’m investigating Windows Workflow (WF) for .NET 4.0, and there seems to be a few pieces missing. From a <a href="http://en.wikipedia.org/wiki/Business_process_modeling" rel="nofollow">BPM</a> perspective, you want to have the concepts of work queues and security (user authorization).</p>
  
  <p>For instance, say you have multiple long-running workflow instances from several different workflows running on an application server (such as AppFabric). Several of the instances are waiting at an activity for a call from a client (perhaps a WCF Receive with content-based correlation). Clients need to be able to query the server to determine which workflow instances (from any workflow) are waiting for input from them. This has to be rights-based (preferably using Active Directory Services) at the activity level.</p>
  
  <p>For example:</p>
  
  <ul>
  <li>Workflow 1
  <ul>
  <li>Activity A, correlated on orderId
  <ul>
  <li>Rights for: Abby, Bill</li>
  </ul></li>
  <li>Activity B, correlated on orderId
  <ul>
  <li>Rights for: Abby</li>
  </ul></li>
  </ul></li>
  <li>Workflow 2
  <ul>
  <li>Activity C, correlated on workItemId
  <ul>
  <li>Rights for: Bill</li>
  </ul></li>
  </ul></li>
  </ul>
  
  <p>Workflow 1 has 3 instances running, two at Activity A (orders 123 and 456) and one at Activity B (order 789).<br/>
  Workflow 2 has 1 instance running at Activity C (work item 99).</p>
  
  <p>Bill queries the server and sees:</p>
  
  <pre>
  Workflow  Activity  Key
  1         A         orderId=123
  1         A         orderId=456
  2         C         workItemId=99
  </pre>
  
  <p>Abby queries the server and sees:</p>
  
  <pre>
  Workflow  Activity  Key
  1         A         orderId=123
  1         A         orderId=456
  1         B         orderId=789
  </pre>
  
  <p><a href="http://www.infoq.com/articles/lublinksy-workqueue-mgr" rel="nofollow">This article</a> discusses writing the functionality (support for human activities) from scratch for WF 3.x.</p>
  
  <p>Questions:</p>
  
  <ol>
  <li>Is any of this functionality in WF 4? If so, what is it called?</li>
  <li>If not, is there an Open Source project that adds any of this functionality to WF 4?</li>
  <li>If not, are there more up-to-date guidelines to implementing it than the article mentioned above?</li>
  </ol>
  
  <p><em>Note: I’d rather not couple the solution to SharePoint if I can avoid it.</em></p>