views:

33

answers:

0

EDIT seems my original post below might have been a bit long.

Simply said, can I spawn some AppDomains and ensure that they cannot communicate with one another in any way?


There is a competitive robotic soccer simulation league called RoboCup 3D. One of the fundamental rules is that all communication between agents be conducted through the central server. This server enforces the rules of the simulation, such as limiting distances and rates of message passing across the field.

Teams comprise several agents. The rules state that each agent must run in its own process. The rationale being that inter-process communication can be detected.

I've authored a .NET library for RoboCup called TinMan. There is some talk on the relevant mailing lists of teams being entered that are written in .NET for the first time next year. As an aside, they will run on Mono.

In a managed environment like the CLR, I believe there would be performance benefits to running all agents in a single instance of the CLR, primarily due to running a single GC. I've asked the question whether it might be acceptable to use separate AppDomains of the same process if this is the case.

What I'd like to know if whether it's possible to detect (and even prevent) communication between AppDomains. If so, then there's more chance that RoboCup teams written in .NET could run their teams in a single process.