title: Java - Distributed Programming, RMI?
body: <p>I've got a doozy of a problem here. I'm aiming to build a framework to allow for the integration of different traffic simulation models. This integration is based upon the sharing of link connectivities, link costs, and vehicles between simulations.</p>
  
  <p>To make a distributed simulation, I plan to have a 'coordinator' (star topology). All participating simulations simply register with it, and talk only to the coordinator. The coordinator then coordinates the execution of various tasks between each simulation.</p>
  
  <p>A quick example of a distribution problem, is when one simulation is 'in charge' of certain objects, like a road. And another is 'in charge' of other roads. However, these roads are interconnected (and hence, we need synchronisation between these simulations, and need to be able to exchange data / invoke methods remotely).</p>
  
  <p>I've had a look at RMI and am thinking it may be suited for this task. (To abstract out having to create an over-wire signalling discipline).</p>
  
  <p>Is this sane? The issue here, is that simulation participants need to centralize <em>some</em> of their data storage in the 'coordinator' to ensure explicit synchronisation between simulations. Furthermore, some simulations may require components or methods from other simulations. (Hence the idea of using RMI).</p>
  
  <p>My basic approach is to have the 'coordinator' run a giant RMI registry. And every simulation simply looks up everything in the registry, ensuring that the correct objects are used at each step.</p>
  
  <p>Anyone have any tips for heading down this path?</p>