ОСНОВНЫЕ КОНЦЕПЦИИ

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


Рис.1 Компоненты системы

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

Функции, выполняемые каждым из модулей, следующие:

Сервер
Связующее звено, обслуживающее запросы ото всех клиентов. Координирует работу всей системы и осуществялет жизненный цикл процесса тестирования. Основные функции:

  • регистрирует клиентов в системе;
  • принимает и сохраняет решения в базе данных;
  • сообщает результаты тестирования клиенту;
  • распределяет задачи между тестерами;
  • следит за корректной работой тестеров;
  • принимает и обрабатывает администраторские запросы (запуск, остановка, перезагрузка системы);
  • формирует и выдает текущий рейтинг;
  • замораживает рейтинг.

Тестер
Осуществляет тестирование присланных решений. Именно от этого модуля зависит поведение всей системы в целом. Изменение поведения системы осуществляется заменой одного тестера на другой. Функции, выполняемые в текущей реализации:

  • загружает с сервера набор задач и тестов;
  • принимает от сервера задачи, компилирует их и тестирует;
  • возвращает результат серверу;

Клиент
Приложение, с которым неспосредственно работает пользователь. Функциональность клиента в общем случае зависит от задачи, выполняемой системой. Функции, выполняемые в текущей реализации:

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

Рейтинг-сервер
Содержит локальную копию рейтинга, которую он передает любому клиенту извне. Форма, в которой он предоставляет рейтинг, произвольна. Рейтинг-сервер необходим для того, чтобы защитить сервер от сетевых атак. В текущей реализации рейтинг-сервера нет.

Администратор
Приложение, позволяющее администрировать сервер. Функции, выполняемые в текущей реализации:

  • создание и редактирование профиля олимпиады (см. 1.2);
  • запуск и изменение статуса олимпиады;
  • дисквалификация команды;
  • перезагрузка сервера.

Каналы связи

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

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

Каналы связи бывают следующих типов:

  1. виртуальный канал для общения клиента-участника и сервера – КУ-канал;
  2. виртуальный канал для общения тестера и сервера – Т-канал;
  3. виртуальный канал для общения администратора и сервера – А-канал.

Существует еще виртуальный канал передачи данных, по которому могут обрабатываться только запросы на выдачу рейтинга – Р-канал. Данный канал открывается либо автоматически при открытии любого из остальных каналов, либо после соответствующего запроса (LOGIN rating).

Более подробное описание каналов передачи данных приведено в протоколе клиент-серверного общения.

Назад | На главную | Вперед



Copyright © 2004-2024. Все права защищены.