На аппаратном уровне система представляет собой комплекс автоматизированных рабочих мест, объединенных компьютерной сетью [1, 2]. Ключевым звеном системы является коммуникационный сервер, в задачи которого входит поддержка многопользовательского режима, корректное распределение ресурсов между клиентами, мониторинг системы и обеспечение безопасности. Другими компонентами системы являются серверы оборудования и программы-клиенты, осуществляющие сбор, накопление и обработку информации, а также управляющие ходом эксперимента
Доступ администратора к коммуникационному серверу осуществляется с помощью стандартного браузера и Web-сервера. Взаимодействие Web-сервера с коммуникационным сервером реализовано посредством сервлета. Сервлеты - это модули расширения для Web-серверов с поддержкой Java. В данной работе сервлет используется для организации сетевого обмена с коммуникационным сервером в соответствии с протоколом системы и динамической генерации HTML-страниц.
Администратор подключается к коммуникационному серверу как обычный клиент, но с паролем в поле "данные" кадра запроса и указанием длины пароля в поле "ключ", код команды передается в поле "функция". После проверки пароля данному клиенту присваивается идентификационный номер (CID), равный нулю, по которому разрешается выполнение дополнительных функций, таких как просмотр информации о клиентах и используемых ресурсах, удаление клиента из системы, а также освобождение ресурса. Команды администратора выполняются в основном потоке, что позволяет управлять дочерними потоками, которые обслуживают клиентов.
После подключения администратора к коммуникационному серверу и при каждой перезагрузке сервлета коммуникационный сервер посылает администратору информацию, содержащуюся в классах MainClientInfo и MainServerInfo. Данные классы содержат методы для запаковки и передачи информации о клиентах, используемых ресурсах и серверах оборудования. Эта информация, в частности, включает адрес ресурса, IP-адрес клиента-владельца, идентификационный номер клиента-владельца (CID), IP-адрес сервера оборудования, номер порта, на котором сервер оборудования ожидает связи с клиентом, и его псевдоним. Данные, полученные администратором, выводятся в виде таблицы, в которой имеется форма для работы с клиентами.
Вся информация, включая псевдоним клиента, перед отправкой администратору запаковывается в расширенное поле данных кадра ответа, т. е. в поле "тип данных" передается единица, а в поле "данные" - количество дополнительных байтов данных. Сами данные передаются вслед за основным кадром.
Форма, содержащаяся в HTML-странице, позволяет администратору посылать коммуникационному серверу команды INFO, STOP, SUSPEND, RESUME и RESOURCE FREE (соответственно: передача информации о клиентах и серверах оборудования, отключение клиента от коммуникационного сервера, и освобождение всех его ресурсов, приостановка и последующий запуск работающего клиента, а также освобождение занятого клиентом ресурса). После выполнения команды HTML-страница обновляется. Применение методов класса Thread - stop(), suspend() и resume() - для работы с потоками клиентов возможно, так как коммуникационный сервер не запускает для администратора отдельный поток, а обслуживает его в основном классе коммуникационного сервера StartСServer.
В заключение отметим, что применение технологии сервлетов позволяет просто и эффективно управлять аппаратными ресурсами сетевой информационно-измерительной системы. Преимуществом использованной технологии является то, что она позволяет легко конструировать быстро работающие приложения для серверов, полностью отказавшись от CGI и Perl. Кроме того, сервлеты являются платформенно-независимыми и могут выполняться на любой программно-аппаратной платформе без перекомпиляции или модификации. Они загружаются только один раз, при этом Web-сервер запускает одну виртуальную Java-машину. Сервлет постоянно находится в памяти и не требует повторной загрузки до тех пор, пока его содержание не изменится. В случае модификации сервлет может перезагрузиться без перезагрузки сервера.
Работа выполнена при поддержке Американского фонда гражданских исследований и развития (CRDF) (проект PZ-013-02) и Министерства образования РФ.
СПИСОК ЛИТЕРАТУРЫ
- Гаврилов С.Е., Жиганов Е.Д., Кипрушкин С.А., Курсков С.Ю. Распределенная информационно-измерительная система для удаленного управления экспериментом в области оптической спектроскопии //Научный сервис в сети Интернет: Тр. Всерос. науч. конф. М.: Изд-во Моск. ун-та, 2002. С. 157-159.
- Гаврилов С.Е., Кипрушкин С.А., Королев Н.А., Курсков С.Ю. Распределенная информационно - измерительная система для спектроскопического анализа пучковых и плазменных объектов //Материалы семинаров-школ молодых ученых, студентов и аспирантов "Методы и техника экспериментального исследования процессов самоорганизации упорядоченных структур в плазменно-пылевых образованиях" (2002), "Фундаментальные проблемы приложений физики низкотемпературной плазмы (2003)". Петрозаводск, 2004. С. 279-289.