The job's type is the mechanism by which Qube! indicates to the Worker what it should do with the job. For example, a job with type "command line" will have discrete strings for each agenda item that will be run at a command prompt (e.g. "
cinema4D -frame 1 5 1 -render /path/to/file.c4d"). A job with type "maya" will, instead, store a discrete set of instructions for Maya for each agenda item that will be run at a mel prompt. In the case of the former, the application is launched when the agenda item starts and then exits when the agenda item is complete. In the case of the latter, the application is launched when the instance starts, but then does not exist exit until all agenda items in the job have been completed (either by this instance and/or others).
In reality, a job is a large data structure that contains all the information the Supervisor needs to monitor, control, and dispatch a task for a remote host. The actual execution of that task is performed by the Worker by what we call an instance (previously, these were called subjobs). In other words, a worker runs one or more job instances in parallel and each instance runs one or more agenda items (typically frames) in series.