Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Архитектура системы

Читайте также:
  1. B) незавершенным морфологическим и функциональным развитием эндокринной системы
  2. CANBAN (разновидность системы точно в срок).
  3. IX. Работа с элементами системы О.О.П.А.С.
  4. NUTRILITE™ Женская Гармония влияет на все системы, на все органы.
  5. SWOT-анализ муниципальной системы управления образованием
  6. VΙ. Реформирование налоговой системы.
  7. Автоматизированные банковские системы, их эволюция и структура

На рисунке 1 показана диаграмма взаимодействия компонентов системы T-BMSTU. Пользователь взаимодействует через Web-браузер по протоколу HTTP с Web-сервером, который обеспечивает вход пользователя в систему, отображение списка имеющихся в системе задач, показ условия выбранной задачи, отправку решения на один из серверов тестирования и отображение вердикта системы тестирования.

 

Рис. 1 – Диаграмма взаимодействия компонентов системы

Web-сервер имеет базу задач, составляемую преподавателем. Задача представляет собой совокупность условия в формате HTML и проверочных данных. Проверочные данные в простейшем случае представляют собой набор тестов. Под тестом мы будем понимать вариант входных данных, на которых должно быть запущено решение, предоставляемое пользователем. Каждый тест может сопровождаться правильным ответом, с которым сравнивается результат выполнения решения. Если проверочные данные не содержат правильных ответов, то вместо ответов допускается включать в проверочные данные эталонное решение. В этом случае подразумевается, что для каждого теста сервер тестирования будет запускать решение пользователя и эталонное решение, а затем сравнивать результат выполнения обоих решений. Кроме этого, поддерживается возможность включения в проверочные данные генератора тестов, который представляет собой программу, запускаемую на сервере тестирования и порождающую набор тестов. В случае наличия генератора проверочные данные могут вообще не содержать ни одного теста.

Каждое решение, отправляемое Web-серверу пользователем, сохраняется в базе решений. Преподаватель имеет возможность изучения базы решений. В будущем в систему T-BMSTU планируется встроить автоматический детектор плагиата, который будет работать с базой решений, сравнивая между собой решения одной и той же задачи, присланные разными пользователями, и обнаруживая похожие решения.

Для проверки решений Web-сервер взаимодействует с одним или несколькими серверами тестирования. Получив решение от пользователя, Web-сервер отправляет это решение и, если нужно, проверочные данные на один из подключённых к нему серверов тестирования. Сервер тестирования прогоняет решение через тесты, содержащиеся в проверочных данных или сгенерированные генератором тестов, сравнивает результаты выполнения решения с правильными ответами и выносит вердикт.

Так как проверочные данные могут быть весьма велики (десятки мегабайт для одной задачи), нецелесообразно пересылать их всякий раз вместе с решением. Вместо этого на каждом сервере тестирования расположен кэш задач, в котором хранятся проверочные данные ко всем задачам, решения которых проверялись когда-либо на этом сервере. Web-сервер отправляет проверочные данные задачи только по запросу сервера тестирования, когда тот обнаруживает, что данная задача отсутствует в его кэше.

На одном компьютере с сервером тестирования должны быть установлены компиляторы всех языков, на которых могут быть написаны решения. В данный момент поддерживаются три языка: ANSI C, C++ и Go. В ближайшем будущем планируется добавление поддержки языков Pascal и Java. Получив очередное решение, сервер тестирования запускает нужный компилятор и, в случае успешной компиляции, получает исполняемый файл, который помещается в так называемую «песочницу». «Песочница» представляет собой защищённую площадку для безопасного управляемого запуска решений. Перед каждым запуском в «песочницу» помещается один из тестов, а после выполнения решения из «песочницы» же извлекается результат работы решения. «Песочница» обеспечивает завершение выполнения решения в случае исчерпания лимита по времени или по памяти, не даёт запускаемой программе обращаться к файловой системе компьютера, на котором работает сервер тестирования.


Дата добавления: 2015-08-21; просмотров: 52 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Введение| Структура задачи

mybiblioteka.su - 2015-2024 год. (0.005 сек.)