ЗЕРКАЛЬНЫЙ ДРАЙВЕР И ЕГО ПРИМЕНЕНИЕ ДЛЯ ОБСЛУЖИВАНИЯ КОМПЬЮТЕРНЫХ КЛАССОВ В ОБРАЗОВАТЕЛЬНОМ УЧРЕЖДЕНИИ - Студенческий научный форум

VI Международная студенческая научная конференция Студенческий научный форум - 2014

ЗЕРКАЛЬНЫЙ ДРАЙВЕР И ЕГО ПРИМЕНЕНИЕ ДЛЯ ОБСЛУЖИВАНИЯ КОМПЬЮТЕРНЫХ КЛАССОВ В ОБРАЗОВАТЕЛЬНОМ УЧРЕЖДЕНИИ

Николайчук М.С. 1, Ечмаева Г.А. 1
1ТГСПА им. Д.И. Менделеева
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

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

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

При этом встает вопрос о передаче изображения с мониторов пользователей на компьютер администратора. Анализ рынка программных продуктов показал, что такие программы существуют (UltraVnc, TightVNC, Remote Administrator, DameWare Utilities и др.), но все они реализуют передачу скриншотов только как точка-точка, либо сильно нагружают компьютер администратора, либо имеют открытые настройки, которые могут быть случайно изменены обучающимися.

Таким образом, в ходе исследования было принято решение о разработке программного обеспечения, удовлетворяющего следующим требованиям: административное управление должно быть возможно только при соответствующем уровне разрешений; архитектура программного продукта должна быть «клиент – сервер»; серверная часть программы должна иметь возможность удалённого запуска или запускаться автоматически с операционной системой; работа серверной части не должна быть «видна» пользователю; работа программы не должна оказывать существенного влияния на нагрузку сети и центрального процессора машины, выделенной в качестве сервера в учебной аудитории; простой и удобный интерфейс; лёгкость настроек программы. А также выделить основные функциональные возможности разрабатываемого программного продукта: управление удаленными компьютерами; получение полного доступа к ресурсам удаленного компьютера, в том числе работа с его реестром; получение информации о системе и её состоянии; удаленное включение компьютеров (Wake on LAN), выключение и перезагрузка удаленного компьютера; защита соединения с удаленным компьютером через пароль; запуск и закрытие любого приложения на удаленном компьютере; автоматическое завершение приложений и процессов; скрытие/отображение Панели задач, иконок рабочего стола, курсора мыши, минимизация/скрытие/восстановление окон и т.п.; мониторинг запущенных программ; скрытое наблюдение за удаленными компьютерами.

Остановимся подробнее на рассмотрении модуля, предназначенного для наблюдения с компьютера администратора за работой пользователей. Технологической основой разрабатываемого модуля для наблюдения был выбран зеркальный драйвер. Mirror driver – это видеодрайвер для виртуального устройства, который отображает графические операции одного и более дополнительных физических устройств. Идея состоит в том, что операционная система дублирует все графические операции на mirror видеодрайвер, таким образом, приложение, использующее драйвер, имеет возможность определять любые изменения экрана. Это позволяет минимизировать объем обрабатываемых данных, по сравнению с простым захватом всего изображения экрана. В результате минимизации объема данных, происходит минимизация нагрузки на центральный процессор, а значит, большая часть процессорного времени остается на работу пользовательских приложений [2].

Как известно, существуют два широко распространенных механизма видеозахвата информации с экрана компьютера, основанных на периодическом захвате содержимого всего экрана с последующей компрессией и сохранением в файл: первый - использует стандартную графическую подсистему Windows GDI; второй - функции мультимедиа библиотеки DirectX. Оба механизма обладают рядом существенных недостатков: изменения, произошедшие на экране между двумя захватами теряются; передача данных из памяти видеокарты в системную память компьютера в несколько раз медленнее, чем передача данных между устройствами системной памяти; происходит существенное снижение общей производительности компьютера во время записи. Несмотря на существующие возможности ОС Windows снизить объем данных, пересылаемых из памяти видеокарты в память компьютера, это не дает значительного увеличения качества работы.

Изучение принципов работы зеркального драйвера позволило выделить его как положительные так и отрицательные стороны. К положительным следует отнести следующие: поддержка mirror драйвера включена в ядро системы, что увеличивает его производительность; возможность «захвата» не всего экрана, а определённой его части; драйвер берёт на себя определение координат изменившейся части изображения на экране. К недостаткам можно отнести следующие особенности: необходимость дополнительной установки на компьютере; требуется аккуратность при его программировании, т.к. возможны сбои операционной системы; без дополнительного, довольно сложного программирования не отлавливает изменения в подсистемах Opengl и DirectX.

В целом программирование данного модуля состояло из нескольких основных моментов: программирование драйвера; программирование клиент-серверного взаимодействия; программирование удобного интерфейса и защиты клиентской части программы от вмешательства возможных небрежных действий пользователя [3]. В качестве сред программирования были выбраны Lazarus и Synapse. Lazarus – это наиболее кроссплатформенная свободно распространяемая среда программирования на языке Delphi (Pascal). Synapse – это среда сетевого программирование на языке Pascal, поддерживающая операционные системы Windows и Linux. Кроме этого при программировании применены технологии multicast (технология сетевого вещания, при котором нагрузка на сеть минимизируется при передачи скриншотов) и Quicklz (библиотека сжатия, благодаря которой так же снижается нагрузка на сеть) [1]. Основной механизм программирования зеркального драйвера можно представить следующим образом:

Сервер (компьютер пользователя):

//Чтение настроек из конфигурационного файла

AssignFile(f,ExtractFilePath(Application.ExeName)+'cfgserv.cfg');

//Запуск на порту 22401 multicast рассылки

sock.bind('0.0.0.0','0');

sock.connect(ip,'22401');

//Запуск драйвера

mydriver:=VIDEODRIVER.create;

mydriver.VIDEODRIVER_start(0, 0, mas[1], mas[2], (mas[0]+1));

Далее на сервере организован цикл отправки изображения экрана компьютера в созданную multicast группу.

Клиент (компьютер администратора):

//Чтение настроек из конфигурационного файла

AssignFile(F,ExtractFilePath(Application.ExeName)+'cfgclient.cfg');

//Подсоединение к мультикаст рассылки указанной в настройках на порт 22401

Sock.Bind('0.0.0.0','22401');

Sock.AddMulticast(ip);

Далее на клиенте организован цикл принятия и отображение изображения из multicast группы. Интерфейсное приложение для данного модуля представлено на рис.1. Рассмотрим некоторые параметры его работы.

Рис. . Диалоговое окно настроек получаемого изображения

  1. Режим получения изображения:

    1. Параметр «Изменение скриншотов» – позволяет управлять и наблюдать за удалённым компьютером без установки дополнительного драйвера, но при этом будет наблюдаться нагрузка на центральный процессор и сеть (со встроенной видеокартой нагрузка возрастет еще в несколько раз).

    2. Параметр «Изменение через драйвер» – для работы в этом режиме необходимо установить зеркальный драйвер. Работа этого режима аналогична предыдущему, но нагрузка на центральный процессор и сеть ниже.

    3. Параметр «Изменение экрана» – режим для своей работы требует установки зеркального драйвера. Этот режим является самым экономичным по отношению к системным ресурсам, т.к. при работе в данном режиме программа захватывает и отправляет по сети не весь экран удалённого компьютера, а лишь ту его часть, в которой в данный момент времени происходят изменения.

  2. Выбор степени сжатия:

    1. Quicklz – имеет от 1 до 3 степеней сжатия;

    2. Zlib – имеет 9 степеней сжатия.

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

3. параметр «Количество передаваемых кадров» – устанавливает количество кадров в секунду, которое будет отправляться сервером и обрабатываться клиентом. Нагрузка на ресурсы компьютера будет напрямую зависеть от количества выбранных кадров, но в тоже время, чем больше кадров выбрано, тем реалистичнее и более плавно будет происходить отрисовка изображения полученного с удалённого компьютера.

Тестирование работы приложения выполнялось в компьютерных аудиториях академии, со следующими характеристиками: компьютерная техника - одноядерный Celeron 1.7 Gz, 256 ОЗУ, локальная сеть - 100 Мбит, 2,5 кадров в секунду. Результаты тестирования:

  • показатели серверной части: нагрузка по сети 12% в рабочем режиме, 3 - 4% в режиме простоя; нагрузка процессора 0 - 1%;

  • показатели клиентской части: нагрузка по сети равна нагрузке сервера; нагрузка процессора - максимальная 33%, минимальная 6%, большую часть времени в среднем 15%.

Показатели могут варьироваться, если увеличивать или уменьшать сжатие.

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

Литература:

  1. Данилов В.Г., Ечмаева Г.А. «ЭКО» - информационная система для автоматизации аналитической обработки результатов количественного анализа объектов окружающей среды: Сборник научных трудов Sworld по материалам международной научно-практической конференции «Научные исследования и их практическое применение: современное состояние и пути развития '2006» Т. 3. / В.Г. Данилов, Г.А. Ечмаева, - Одесса: - 2006. - С. 3 - 4.

  2. Лавров В. А. Использование Mirror драйвера для записи всех изменений экрана компьютера в файл видеоформата FBR // Вестник ТГУ. Серия «Математика. Кибернетика. Информатика» / Лавров В. А. - Томск: Изд-во Том. ун-та, 2004. - № 284. - С. 190-193.

  3. Лавров В. А. Написание своего Mirror видео драйвера // Вестник ТГУ. Серия «Математика. Кибернетика. Информатика» / Лавров В. А. - Томск: Изд-во Том. ун-та, 2004. - № 284. - С. 194 – 197

Просмотров работы: 1303