4.1. Серверное ПО

Серверное ПО призвано решать следующие задачи: взаимодействовать с контролером лабораторной установки, взаимодействовать с клиентским ПО нескольких компьютеров, взаимодействовать с базой данных пользователей.

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

Запуск серверного ПО не приводит к автоматической инициализации контроллера и включению установки, так как это ПО выполняет несколько функций. Поэтому перед началом экспериментов необходимо вручную активизировать использование контроллера (выбрать соответствующий пункт управляющего меню серверного ПО), а по окончании экспериментов отключить контроллер также с помощью управляющего меню.

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

Коллоквиум предполагает ответ пользователя на ряд вопросов и выставление ему оценки по результатам всех ответов. Неудовлетворительная отметка за коллоквиум автоматически блокирует выполнение эксперимента и моделирования, поэтому коллоквиум является обязательной частью лабораторной работы. Файл с вопросами по каждой работе хранится на сервере вместе с информацией о количестве вопросов, задаваемых студенту, и о времени, в течение которого студент должен ответить на все вопросы. Получив запрос от клиентской программы на проведение коллоквиума по определенной теме сервер обращается к соответствующему файлу вопросов и выбирает случайным образом требуемое количество вопросов. Выбранные вопросы вместе с информацией о допустимой длительности ответа передаются клиентской программе, которая и проводит сам коллоквиум. По окончании коллоквиума клиентская программа сообщает серверу его результаты (оценку), а сервер заносит оценку (а также тему, дату и время проведения коллоквиума) в базу данных студентов.

Получив от клиентской программы запрос на проведение эксперимента (запрос должен содержать параметры для конкретного эксперимента), сервер возвращает клиентской программе команду ожидания, а сам обращается к контроллеру и передает ему команду начала эксперимента (вместе с полученными параметрами). По окончании эксперимента сервер пересылает полученный от контроллера массив данных клиентской программе, посылавшей запрос на проведение данного эксперимента. В случае выполнения группой студентов лабораторной работы с использованием удаленного лабораторного стенда серверное ПО должно одновременно работать с несколькими клиентскими программами. Для корректной обработки запросов нескольких клиентов сервер организует очередь запросов. Начав обрабатывать первый поступивший запрос (на регистрацию, выборку вопросов для коллоквиума или проведение эксперимента), сервер ставит все последующие запросы в очередь и обрабатывает их в порядке поступления после окончания обработки очередного запроса. Самый длительный по времени обработки запрос – запрос на выполнение физического эксперимента (остальные запросы отнимают доли секунды). Однако, пользователи не должны ощущать замедления работы даже при массовом выполнении одной работы, так как время начала эксперимента у каждого студента окажется различным. Это связано с тем, что до начала эксперимента студент должен правильно ответить на вопросы коллоквиума и выбрать параметры проведения эксперимента, а у разных студентов на это уйдет разное время.

Серверное ПО содержит две вспомогательные программы: Менеджер базы данных и Редактор коллоквиумов.

Менеджер базы данных предназначен дл работы с базой данных студентов. Эта база данных содержит список студентов, организованных в группы. Только студенты, внесенные в базу данных, могут работать с дистанционным лабораторным комплексом (по крайней мере под своим именем). Сервер сверяется с базой данных для регистрации студентов, а также записывает туда результаты работы каждого студента. В зависимости от выбранных опций сервер сохраняет подробный протокол работы или только результаты коллоквиума. Протокол работы включает в себя дату и время выполнения пользователем каждого действия: регистрации, выбора выполняемой работы, обращения к теоретической справке, выполнения коллоквиума, эксперимента и моделирования. Результаты коллоквиума включают в себя название работы, дату и время проведения коллоквиума, а также полученную оценку. В случае выполнения одним студентом нескольких коллоквиумов в базе данных сохраняются все результаты. Менеджер базы данных позволяет создавать и удалять пользователей дистанционного лабораторного комплекса и просматривать протоколы работы каждого пользователя.

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