...
- Identify and query available Software Servers
- Construct and keep up to date the Input/Ouput graph
- Accept tasks of the form source format to target format and carry them out
- Identify non-busy Software Servers with needed software for each step and issue a task to them
- Pass URLs to files to Software Servers and not the files themselves
Additional Thoughts
- Utilize only the REST interface to the Software Servers
- Pass URLs to data rather than the data, with intermediary files hosted on the Software Server that last operated on it