ИСТИНА |
Войти в систему Регистрация |
|
Интеллектуальная Система Тематического Исследования НАукометрических данных |
||
Одним из ключевых понятий операционных систем типа UNIX является понятие управляющего терминала. Упрощенная схема функционирования управляющего терминала состоит в следующем. В каждый момент времени может существовать не более одного процесса, в стандартный поток ввода которого перенаправляются введенные с терминала последовательности символов. Такой процесс называется управляющим процессом для терминала. Управляющий процесс и другие процессы в рамках той же сессии могут перенапралять (печатать) свои потоки вывода на терминал. Подобная схема реализуется как при работе с локальной рабочей станцией, так и при работе с удаленным хостом с помощью SSH. В последнем случае используются так называемые псевдотерминалы. В настоящем докладе будет описана архитектура распределенной программной системы моделирования виртуальных консолей (терминалов). Данная система состоит компонентов двух типов – агенты и мастер-узел. На каждом рассматриваемом сетевом хосте запускается агент. Агент отвечает за запуск процессов операционной системы (командных интерпретаторов, например bash), которые рассматриваются как аналоги управляющих процессов терминала. Также агент отвечает за непосредственное взаимодействие с подобными процессами через их стандартные потоки ввода / вывода. При добавлении нового сетевого хоста соответствующий агент регистрируется у мастер-узла. Мастер-узел реализуется в виде интерактивного веб-приложения и представляет собой посредника между конечными пользователями и агентами. Интерактивность реализуется за счет использования протокола websocket. Пользователь работает с одной веб-формой (виртуальной консолью), через которую может вводить управляющие команды. Эти команды через мастер-узел передаются соответствующему агенту на рассматриваемом хосте. Агент в свою очередь направляет их в стандартный поток ввода процесса, являющегося аналогом управляющего процесса терминала. Данные из стандартного потока вывода такого процесса (результаты выполнения команд) по мере их образования отсылаются агентом назад в мастер-узел, который в свою очередь перенаправляет их пользователю (печатает в виртуальную консоль).