I have this problem domain where I need to able to run a background process that would:

* Run a filter to get an obj collection (time consuming operation)
* Pass the obj coll through a set of rules...maybe thru a rule interface
* Be able to expose any changes that the rules caused to any interested listeners.

Each filter may have many rules and there can be more than one filter.

Would would be the practical way to approach this? I'm thinking:

* Have a WCF app hosted in a Windows Service that would expose callback for rule changes
* Let the service do the grunt work of running filter->rules. Will this need to be a separate threaded work ?

Any thoughts or references to existing frameworks, design patterns, etc. are welcome.

thanks
Sunit