Главная » Просмотр файлов » Пояснительная записка

Пояснительная записка (1231610), страница 2

Файл №1231610 Пояснительная записка (Система для проведения соревнований по программированию с модулем подведения итогов) 2 страницаПояснительная записка (1231610) страница 22020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Система PC2 написана в Калифорнийском Государственном Университете (CSUS), город Сакраменто, по гранту IBM. Из ее достоинств, следует отметить легкость настройки и администрирования. Система написана на языке Java, что позволяет использовать ее на любой платформе.

Недостатки системы PC2:

– система не хранит банка заданий, что не позволяет ее использовать в качестве онлайновой тестирующей система;

– использует собственный клиент, а не web-браузер, что затрудняет его использование через интернет.

Очень сложно что-либо сказать о возможностях системы PCMS2, так как система развивается и обновляется, но после 2004 года новые версии не выкладываются в свободный доступ.

1.2.3 Система Timus Online Judge

Timus Online Judge – это крупнейший в России архив задач по программированию с автоматической проверяющей системой [13]. Основной источник задач для архива – соревнования Уральского федерального университета, Чемпионаты Урала, Уральские четвертьфиналы ACM ICPC, Петрозаводские сборы по программированию.

На базе данной системы регулярно проходят различные турниры, но в основном система используется пользователями для решения отдельных задач в целях обучения.

Доступ к системе осуществляется посредством web-интерфейса, который поддерживается студентами и выпускниками Уральского федерального университета.

Система Timus Online Judge не имеет свободного распространения.

1.2.4 Система Ejudge

Система Ejudge разработана в МГУ и распространяется по лицензии GPL [14]. Ejudge имеет достаточно мощные функциональные возможности:

– проведение турниров с автоматической проверкой задач по четырём системам: ACM, KIROV, OLYMPIAD, MOSCOW;

– ограниченные и неограниченные по времени турниры;

– поддержка виртуальных турниров;

– одновременное проведение нескольких турниров;

– автоматическая и модерируемая регистрация участников турнира;

– возможность участия в нескольких турнирах под одним регистрационным именем;

– разделение прав доступа к турнирам. Некоторый пользователь может быть администратором одного турнира и не иметь никаких привилегий в другом турнире;

– многоязыковой интерфейс. Текущая версия поддерживает русский и английский языки;

– защищённое исполнение программ;

– поддержка вариантных задач, когда под одним именем каждый участник получает свой вариант задачи;

– web-интерфейс администратора и участника турнира;

– web-интерфейс администратора турнира для создания новых турниров и редактирования настроек существующих турниров;

– настраиваемый внешний вид;

– экспорт истории посылок в формате XML;

– экспорт внутренних таблиц (участников, журнала турнира, результатов) в формате CSV (comma-separated values);

– доступ к серверам турниров из командной строки (возможность написания скриптов для управления турнирами).

Основные недостатки системы:

– система написана под ОС Linux, при инсталляции требует перекомпиляции ядра операционной системы;

– система в принципе не переносится на Win32, т.к. использует UNIX-сокеты.

Таким образом, система Ejudge может стать неплохой базой для проектируемой системы, но с определёнными минусами – необходимостью работы на ОС Linux.

1.2.5 Система Contester

Contester – это система для проведения турниров и индивидуального решения задач по олимпиадному программированию [15].

Contester работает как на Windows, так и на Linux.

Интерфейс участника соревнования позволяет:

– зарегистрироваться самостоятельно, если включена регистрация;

– прочитать тексты задач (с HTML-разметкой);

– ознакомиться со справкой к турнироный системе, примерами решений и «расшифровкой» результатов проверки;

– просмотреть список своих попыток решения, имена отправленных файлов, исходные коды каждой попытки;

– просмотреть журнал компиляции в случае ошибки компиляции;

– просмотреть турнирную таблицу в ACM-стиле;

– во внетурнирное время решать задачи из «сборников»;

– обсудить задачи, сборники, турниры и разделы на встроенном форуме.

Интерфейс администратора турнирной системы позволяет:

– создавать, блокировать и удалять учетные записи участников системы;

– включать режим самостоятельной регистрации участниками;

– создавать и удалять задачи, турниры, сборники и разделы; устанавливать и переносить время турниров;

– вносить HTML-тексты задач и рисунки к ним; вносить тестовые пары к задачам;

– просматривать список решений участников, имена отправленных файлов, исходные коды каждого решения;

– просматривать журналы компиляции и проверки каждой попытки; заново отправлять попытки на перепроверку;

– загружать запакованные zip-файлы с задачами и выгружать их;

– добавлять в систему языки программирования, указывать свои командные строки компиляции;

– распределять проверку решений на несколько серверных компьютеров.

На данный момент в Contester заложены правила ACM-соревнований. Работа с системой, чтение текстов задач и отправка решений происходит через web-браузер.

Выводы по главе

Таким образом, в качестве основы для разрабатываемой системы выбрана система Ejudge, так как она имеет свободное распространение по лицензии GPL и, в отличие от системы Contester, обладает большим набором необходимых функций:

– имеется возможность экспорта истории посылок в формате XML, что пригодится во время разработки модуля подведения итогов;

– защищенное исполнение программ;

– поддержка виртуальных турниров.

Помимо установки и настройки Ejudge необходимо разработать модуль подведения итогов соревнований по программированию.

2 Проектирование системы для проведения соревнований по программированию с модулем подведения итогов

2.1 Общая архитектура системы Ejudge

Система Ejudge состоит из нескольких компонент, отвечающих за разные аспекты работы [16]:

– управляющие компоненты;

– обработчики запросов, представляющие из себя CGI-программы;

– вспомогательные программы;

– различные дополнительные модули.

CGI-программа – это обычная программа, которая разработана специально для интернета [17]. CGI-программа выполняется на web-сервере в ответ на запрос, сделанный браузером. Сервер в этом случае является как бы посредником между браузером и CGI-программой – он передаёт программе запрос браузера и возвращает обратно информацию, выданную программой. Например, программа может получить от браузера название некоторого товара, посмотреть в таблице цену этого товара и вернуть полученную цену пользователю (браузеру). Или программа может принять от пользователя некоторый текст комментария и переслать его в виде почтового сообщения создателю web-узла. Для написания такой программы можно использовать почти любой язык программирования – CGI определяет только стандарт интерфейса между web-сервером и программой.

2.1.1 Управляющие компоненты

Управляющие компоненты отвечают за доступ к основной базе данных пользователей, мониторинг активных турниров, выполнение низкоприоритетных вспомогательных задач и компиляцию решений участников.

Данные компоненты системы запускаются в режиме «демона» на всё время работы системы, начиная от создания турнира, регистрации пользователей, проведения турнира и в процессе предоставления доступа к результатам турниров.

Управляющие компоненты работают в одном экземпляре на все существующие в данный момент в системе турниры. Запуск системы Ejudge заключается в запуске управляющих компонент. К этой группе относятся следующие программы:

– ej-compile;

– ej-contests;

– ej-jobs;

– ej-super-run;

– ej-super-server;

– ej-users.

Программа ej-compile выполняет запросы на компиляцию решений, поступающих на проверку со всех турниров. Программа взаимодействует с серверами турниров с помощью разделяемых каталогов.

Программа ej-jobs выполняет низкоприоритеные запросы со стороны серверов турнира. К таковым относятся запросы на рассылку e-mail сообщений, воспроизведение звуковых записей и т. д. Программа взаимодействует с другими программами с помощью общих каталогов.

Программа ej-super-server выполняет мониторинг активных турниров, запуская при необходимости программы обслуживания турнира. Кроме того, она выполняет запросы на создание и изменение настроек турниров. Программа взаимодействует со своими клиентами с помощью UNIX-сокетов, а также отслеживает запросы, поступающие в адрес программ обслуживания турниров.

Программа ej-users выполняет функции сервера базы пользователей, предоставляя возможности регистрации на турнир, просмотра участников турнира, администрирования участников турнира, а также выполняет аутентификацию участников турнира и привилегированных пользователей. Программа взаимодействует со своими клиентами с помощью UNIX-сокетов.

2.1.2 Обработчики запросов

CGI-программы обрабатывают запросы пользователей и администраторов системы и предоставляющие интерфейс к программам первой и второй групп. Они запускаются web-сервером при поступлении запроса от клиента. Как правило, данные программы выполняют предварительный анализ запроса и передают его на генерацию HTML-страниц соответствующим программам серверной части ej-users, ej-super-server, ej-contests. К описываемой группе относятся следующие программы:

– judge;

– master;

– new-client;

– new-judge;

– new-master;

– new-register;

– register;

– serve-control;

– users;

– team.

CGI-программа register обрабатывает запросы на регистрацию новых пользователей в системе, изменение данных пользователей, регистрацию пользователей на турниры.

Аутентификация пользователей выполняется с помощью запроса к программе userlist-server, а основные запросы пользователей перенаправляются на обработку в программу serve.

CGI-программа judge предоставляет привилегированный (судейский) интерфейс для проведения турнира. Только пользователи, у которых установлена привилегия JUDGE_LOGIN для данного турнира могут использовать программу judge. Она позволяет просматривать исходный код и результаты тестирования всех участников, вопросы от участников, таблицу текущих результатов турнира, когда она заморожена для непривилегированных участников, а также отвечать на вопросы. Для каждого из этих действий необходима отдельная привилегия, что позволяет настраивать возможности каждого пользователя.

CGI-программа master предоставляет привилегированный административный интерфейс для управления турниром. Только пользователи, у которых установлена привилегия MASTER_LOGIN для данного турнира могут использовать программу master. Помимо всех возможностей, предоставляемых программой judge, программа master позволяет начинать и заканчивать турнир, изменять его продолжительность, отправлять поступившие решения на перепроверку и т.д.

CGI-программа serve-control предоставляет административный интерфейс для управления всеми турнирами и создания и изменения настроек турниров. Только пользователи, у которых установлена глобальная привилегия MASTER_LOGIN или JUDGE_LOGIN могут использовать программу serve-control.

CGI-программа users обрабатывает запросы на просмотр списка зарегистрированных пользователей турнира и детальной информации по зарегистрированным пользователям.

CGI-программа team обрабатывает запросы участников во время турнира и позволяет отправлять решения на тестирование, просматривать результаты тестирования, отправлять вопросы жюри и просматривать текст ответов на вопросы.

2.1.3 Вспомогательные программы

Вспомогательные программы предоставляют доступ к функциям системы из командной строки и выполняют другие функции. Данный вид программ запускается из командной строки и предназначен для использования администратором системы Ejudge:

– ejudge-config;

– ejudge-configure-compilers;

– ejudge-contests-cmd;

– ejudge-control;

– ejudge-edit-users;

– ejudge-execute;

– ejudge-jobs-cmd;

– ejudge-setup;

– ejudge-upgrade-web.

Программа ejudge-config печатает некоторые настройки, сделанные при компиляции системы Ejudge. В частности, программа позволяет получить пути к заголовочным и библиотечным файлам, необходимые для компиляции проверяющих программ с библиотекой libchecker.

Программа ejudge-edit-users предоставляет пользовательский консольный интерфейс для просмотра и редактирования базы пользователей системы Ejudge. Для выполнения запросов используется программа ej-users.

Программа ejudge-jobs-cmd предоставляет интерфейс командной строки для формирования запросов к серверу низкоприоритетных задач ej-jobs.

Программа ejudge-setup предоставляет пользовательский консольный интерфейс для начального конфигурирования Ejudge после компиляции и для создания необходимых конфигурационных файлов, рабочих каталогов и пробного турнира.

Программа ejudge-contests-cmd позволяет формировать запросы к серверу турниров из командной строки.

Программа ejudge-execute позволяет запустить на выполнение решения с установкой ограничений на время выполнения, виртуальное адресное пространство и перенаправлением стандартных потоков.

Программа ej-polygon предназначена для взаимодействия с системой Polygon. Она используется для загрузки пакетов из системы Polygon для последних ревизий задач и их импорта в систему ejudge.

Выводы по разделу

Таким образом, система Ejudge состоит из ряда компонентов, каждый из которых выполняет свои функции.

Управляющие компоненты работают все время после запуска системы и отвечают за доступ к основной базе данных пользователей, мониторинг активных турниров и т.д.

Обработчики запросов от пользователей представляют CGI-программы, которые принимают на вход запрос, а возвращают HTML код страницы для отображения в браузере пользователя. Данные компоненты отвечают за любое взаимодействие пользователя с системой.

Вспомогательные компоненты предоставляют доступ к функциям системы из командной строки и предназначены для использования администратором системы Ejudge.

2.2 Описание технологий для создания web-сайтов

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6531
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее