diff --git a/Internal-architecture-(original).md b/Internal-architecture-(original).md index 82098da..8a5ac29 100644 --- a/Internal-architecture-(original).md +++ b/Internal-architecture-(original).md @@ -7,27 +7,6 @@ Almost whole communication goes through **Broker** and ZeroMQ messaging middleware. When **Web app** wants to execute submission then all datas are handed over to **Worker** through **Broker**, similar situation is with progress state which start in **Worker** goes through **Broker** then pass **Monitor** and end up in **Web app** (as WebSockets). Only part of communication, which does not include **Broker**, is communication with **File server** which is realized through HTTP commmunication. This communication can be initiated by **Web API** or by **Worker**, other services have no access to **File server**. Detailed view into communication is on separate page [[Communication]]. -## Worker - -**Worker's** main role is securely execute given submission and possibly _evaluate_ results against model solutions provided by submitter. **Worker** is logicaly divided into two parts: -- **Listener** - listens and communicates with **Broker** through [ZeroMQ](http://zeromq.org/). It receives new jobs, communicates with **Evaluator** part and sends back results or progress. -- **Evaluator** - gets jobs to evaluate from **Listener** part, evaluate them (possibly in sandbox) and get to know to other part that evaluation ended. This part also communicates with **Fileserver**, downloads needed files and uploads detailed results. - -**Worker** after getting evaluation request has to: - -- Download the archive containing submitted source files and configuration file -- Download any supplementary files based on the configuration file, such as test - inputs or helper programs (This is done on demand, using a `fetch` command - in the assignment configuration) -- Evaluate the submission accordingly to job configuration -- During evaluation progress states can be sent back to **Broker** -- Upload the results of the evaluation to the **Fileserver** -- Notify **Broker** that the evaluation finished - -### Internal Worker architecture -Picture below is overall internal architecture of worker which shows its defined classes with private variables and public functions. Vector version of this picture is available [here](https://github.com/ReCodEx/GlobalWiki/raw/master/images/Worker_Internal_Architecture.pdf). -![Internal Worker architecture](https://github.com/ReCodEx/GlobalWiki/blob/master/images/Worker_Internal_Architecture.png) - ## File Server **File Server** stores data, that should be kept outside of **WebApp's**