Task:
Create a system which can produce large amount of tasks (independent pieces of work) in a minimal amount of time.
Solution:
The system consists of 2 parts: Dispatcher and Worker (WCF service). Dispatcher distributes work between multiple instances (1 - n) of Workers, physically located on several machines. It is needed to distribute work between Workers evenly.
One of the solutions - is to track performance counters on each Worker server and add additional thread if there are enough resources. Is that realistic solution? Can anybody provide good example?
Is there ready solutions? Note that is not needed to process all tasks right in the time they submitted, it is possible to queue them until resources are free. That is why NLB from Microsoft is not suitable.
UPD: Something very simular to what I am looking for is here
UPD2: Microsoft has StockTrader sample application (with sources), which is example of distributable SOA with hand-written RoundRobin load balancing.