diff --git a/Overall-architecture.md b/Overall-architecture.md index b4d7703..9ea8bbf 100644 --- a/Overall-architecture.md +++ b/Overall-architecture.md @@ -1,5 +1,21 @@ # Overall Architecture +## Components +TODO: +## Communication +TODO: +## Assignments +TODO: +## Submission flow +TODO: +## Common install +TODO: +## Coding style +TODO: + + +--- Below is original content of this page --- + **ReCodEx** is designed to be very modular. In the following picture main components are arranged into one possible configuration. Note, that connections between components are not fully accurate. ![Overall Architecture](https://github.com/ReCodEx/GlobalWiki/blob/master/images/Overall_Architecture.png) @@ -8,18 +24,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]]. -## Web app - -- TODO - -## Web API - -- TODO - -## Broker - -- TODO - ## 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: @@ -100,7 +104,3 @@ their hashes, which is great for local caching without worries about actual version number of given file. On the other hand, **Database** stores information about human readable names, so that the files are presented in a friendly way to users (teachers) in **WebApp**. - -## Monitor - -- TODO