Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Internal Working

  • The Java Classes
    1. Software Server:
      1. SoftwareServer.java: handles wrapper scripts;
      2. SoftwareServerRestlet.java: handles the Restlet service;
      3. SoftwareServerRESTUtilities.java: the rabbitMQHandler() method handles all the interaction with RabbitMQ.
    2. Polyglot:
      1. The entry point is PolyglotRestlet.java.
        java -cp polyglot.jar:lib/* -Xmx1g edu.illinois.ncsa.isda.softwareserver.polyglot.PolyglotRestlet
      2. Polyglot.java: abstract class;
      3. PolyglotStewardAMQ.java: handles IOGraph and interaction with RabbitMQ;
      4. PolyglotRestlet.java: handles the Restlet interface.
        process_jobs(): at the end, writes the ".url" file.
  • SS Registration

...

  • When Polyglot starts, it does:
    1. read the configuration file;
    2. start the PolyglotStewardAMQ thread;
    3. start a thread to update Mongo; call PolyglotRESTUtilities.updateMongo(). By default updates every 2 sec.
    4. start the restlet service.
  • When PolyglotStewardAMQ thread starts, it starts 3 threads:
    1. discoveryAMQ(), every 30 s.
    2. process_jobs(), every 3 s,
    3. heartbeat(), to remove unresponsive SSs. every Heartbeat secs, default to 10 s.
  • Two queryEndpoint() methods.
    In SoftwareServerRESTUtilities.java: returns pure text; in PolyglotStewardAMQ.java, returns json.
  • kgm.utility.Utility source code:

    https://isda.ncsa.illinois.edu/svn/isda/trunk/kgm/Utilities/src/kgm/utility/Utility.java

...