locked
Coordinating multiple dssnodes through a centralized dssnode RRS feed

  • Question

  • I have a rather challenging problem (for my limited knowledge base) that I could use some help on.

    We are trying to run some simulated evolution using MSRS as the base simulation. Basically what happens is that the centralized service calculates the parameters of the population robots and then spawns a simulation for each individual in the population. When the individual finishes it's simulation, it send a message back to the centralized service indicating that it is done along with the data in generated . We are doing this over multiple machines in our lab.

    The current problem I am working on is how the centralized orchestrator can determine which node the messages are coming back from. When one simulation finishes, we want the orchestrator to start a new one on the now vacated node. We are specifying the initial nodes that are available through the manifest file. Here's the example with just one:

    Code Snippet

    <?xml version="1.0" ?>
    <Manifest
        xmlns="http://schemas.microsoft.com/xw/2004/10/manifest.html"
        xmlns:dssp="http://schemas.microsoft.com/xw/2004/10/dssp.html"
        xmlns:darwin="http://irrl.vassar.edu/2008/06/darwin.html"
        >
        <CreateServiceList>
            <ServiceRecordType>
                <dssp:Contract>http://irrl.vassar.edu/2008/06/darwin.html</dssp:Contract>
              <dssp:PartnerList>
                <dssp:Partner>
                  <dssp:Service>http://localhost:40000/directory</dssp:Service>
                  <dssp:Name>darwin:Node0</dssp:Name>
                </dssp:Partner>
              </dssp:PartnerList>
            </ServiceRecordType>
        </CreateServiceList>
    </Manifest>


    So when the simulation that runs on "Node0" finishes, how can the orchestrator be aware that the finished message is coming from "Node0"?

    Thanks for you help!


    Tuesday, June 17, 2008 8:53 PM

Answers

  • On the response message  form each node, include  a field that has the URI for the service that sent it. Then your orchestrator will know. Or, when the orchestrator sends our requests, keep a dictionary of pending operations ->Uris. When a operation completes, you look up what Uri it was pending from

     

    • Marked as answer by Trevor Taylor Sunday, May 16, 2010 12:36 AM
    Monday, June 23, 2008 7:35 PM