You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5 KiB

Overall Architecture

Overall Architecture

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

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. 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 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.