Created Architecture (markdown)
parent
80ed36a036
commit
6a7aa9ea4c
@ -0,0 +1,12 @@
|
|||||||
|
# Overall Architecture
|
||||||
|
![Overall Architecture](https://github.com/ReCodEx/GlobalWiki/blob/master/images/Overall_Architecture.png)
|
||||||
|
|
||||||
|
**ReCodEx** is designed to be very modular. **WebApp** + **File Server** are one instance of the application. They contain almost all logic of the app including _user management and authentication_, _storing and versioning tasks_, _counting and assigning points_ to users etc. One instance of the app can be connected to one or more **Workers** and one **Worker** can be connected to more instances of the **WebApp**. **Worker** is connected with **WebApp** through messaging queue.
|
||||||
|
|
||||||
|
## Worker
|
||||||
|
![Worker Architecture](https://github.com/ReCodEx/GlobalWiki/blob/master/images/Worker_Architecture.png)
|
||||||
|
|
||||||
|
**Worker's** main role is securely _compile_, _run_ and _evaluate_ given submit against model solutions provided by author of each task. It is logicaly divided into three objects:
|
||||||
|
- **Message Frontend** communicates with **WebApp** using messaging queue [ZeroMQ](http://zeromq.org/). It receives new submits, operates the evaluation through **Work API** and reports progress back.
|
||||||
|
- **Worker Core** can do all evaluating steps and is responsible for security of them. Great sandbox [Isolate](https://github.com/ioi/isolate) is used.
|
||||||
|
- **File Server Frontend** ensures via **File API** access to files on **File Server**, where are stored testing inputs and corresponding outputs for each task and other required files. It's possible to upload files, too.
|
Loading…
Reference in New Issue