It is a center piece of harness. It is used to process Commands from Backends, spawn Tasks and process Events from Tasks, and eventually forwarding these to Backends.
It is a client which connects to Controller and which can issue Commands (read from console or socket) and is processing Events (writing to console or to file, to internet socket etc.) Multiple Backends can be connected to a single Controller.
It is an executable, which runs a test and is generating Events as a result, sending these to the Controller server. It can use either stdout or socket to send events to Controller. stderr is captured as well, but is considered a raw-data (creating lose_item events.)
It is a piece of information generated by running Task (e.g. log-event, result-event) or Controller (e.g. pong-event, bye-event) and sent to Backend.
It is a piece of information instructing Controller (and eventually Task) to perform an operation (e.g. run-command to spawn a new Task or kill-command killing a Controller server)
It is an executable performing testing producing output in known format. Task adaptor has to be written to translate this output to sequence of Events.