Web-интерфейс администратора на Цейсс-1000.
2014г.
Представлен основной интерфейс для редактирования и просмотра административной информации в системе управления телескопа. Изменение информации производится пользователем с наивысшим уровнем доступа (администратор) с любого компьютера через Web-браузер. Прочие пользователи (наблюдатели) могут просматривать эту информацию через этот же интерфейс, а также использовать ее во время наблюдений в интерфейсе наблюдателя.
|
Для нормальной организации наблюдений на телескопе и предоставления корректных мета-данных системам регистрации без излишней нагрузки на наблюдателя, разработана подсистема администрирования наблюдениями. Основная разработка выполнялась в 2011-м году. После начала практической эксплуатации в 2013-м, подсистема была немного доработана.
Основной принцип: существует пользователь−администратор с максимальным уровнем доступа к системе, он ведает распределением наблюдательного времени и доступом к системе астрономов-наблюдателей.
Состав административной информации:
полный список наблюдателей; каждый имеет атрибуты: краткое имя (пользователя), полное имя (фамилию), уровень доступа, пароль доступа;
общий список вариантов наблюдательной аппаратуры (методов наблюдений);
общий список названий возможных наблюдательных программ;
общий список авторов наблюдательных программ;
расписание наблюдений состоящее из списка сетов; в каждом сете задается:
дата начала сета (даты конца нет — это начало следующего сета);
список наблюдателей обеспечивающих сет;
конкретный вариант используемой аппаратуры;
список пар: наблюдательная программа + ее автор.
В памяти сервера эта информация существует в виде древовидной структуры DOM (Document Object Model - «объектная модель документа»). Она загружается в память системы при старте из XML-файла /usr/local/ztcs/ZeissAdmin.xml.
Администратор телескопа может вносить оперативные изменения в эту структуру DOM в памяти сервера. Пользователи-наблюдатели будут видеть эти изменения. Если необходимо зафиксировать изменения для возможных перезагрузок системы (например введено новое расписание), есть возможность спасти структуру DOM назад в XML-файл (serialization).
В качестве формата обмена структурно-объектной информацией между клиентами и сервером выбран JSON (JavaScript Object Notation). Таким образом, например, работает панель Admin в интерфейсе наблюдателя ZeissGUI. Она позволяет использовать административную информацию во время наблюдений. Для этого в системе есть понятие «текущий сет» (Currend Set). Информация из него идет и в прототип FITS-шапки, которая доступна в локальной сети на Windows-ресурсе \\ztcs\ZEISS\ZFITS.HDR, для включения в FITS-файлы системы регистрации.
Для разработки интерфейса администратора выбран принцип Web-интерфейса, чтобы администратор мог выполнять свои функции со своего компьютера без дополнительного МО. Разработка выполнена на языке JavaScript. Для обмена с сервером по протоколу XML-RPC доработан сторонний модуль rpc.js. Он использует Ajax (XMLHttpRequest).
Для сокращения места на экране реализован принцип панелей-вкладок для разных типов информации. Исходно они пустые, а заполняются после авторизации пользователя.
Интерфейс работает в двух вариантах:
для наблюдателей, т.е. пользователей с уровнем доступа ≤4, он формирует вкладки только для просмотра информации;
для администратора с уровнем доступа 5 формируются вкладки для редактирования информации и пересылки ее серверу.
Когда требуется перемещение по длинным спискам используются кнопки типа ^ Back ^ и v Forward v над и под списком, которые смещают список на пол-страницы.
При вызове интерфейс сразу предлагает авторизоваться под пользователем obs для просмотра информации.
Администратору следует сменить имя пользователя на свое (с уровнем доступа 5) или зайти под специальным пользователем admin.
В этом случае меняется и сама панель Authrization. В ней начинает работать интерфейс спасения/восстановления административной информации.
После нажатия кнопки Save Admin.Data to disk XML file появляется форма для подтверждения намерений и прав администратора.
Кнопка Restore Admin.Data from disk XML file служит для восстановления структуры DOM из XML-файла. Например если нужно стереть временные или ошибочные исправления в памяти сервера, а также если XML-файл был изменен каким либо иным способом, например XML-редактором или просто текстовым редактором.
Панель
предназначена для просмотра и изменения списка наблюдателей на
телескопе. На этой картинке (и на следующих) представлен вариант для
администратора. Вариант для просмотра наблюдателем выглядит так же,
только убраны средства изменения.
В начале показывается первая часть списка из 10-ти строк. Кнопка v Forward v вызывает смещение по 5 строк к концу списка. Для редактирования строки нужно нажать . Содержимое спишется в форму для редактирования. Обычно это применяется (не считая исправления ошибок) для изменения прав доступа и атрибута Active. Последний позволяет сокращать список наблюдателей которые используются в выпадающем меню при вводе расписания на панели Schedule.
Чтобы отправить измененные данные серверу, нужно нажать SendToServer . Для добавления нового наблюдателя, нужно почистить форму кнопкой Clear и ввести его данные. Имя (Name) не должно совпадать с другими, иначе новой строки не будет, а изменится существующая. Уровень доступа (Level) обычно 3 — простой наблюдатель или 4 — опытный наблюдатель. Для удаления наблюдателя — нажать на его строке.
Панель предназначена для просмотра и изменения списка навесной аппаратуры регистрации — методов наблюдений.
Средства редактирования такие же как и в предыдущем случае. Только атрибута Active тут нет, поскольку маловероятно что когда нибудь на Цейсс-1000 будет очень длинный список методов наблюдений.
Следует знать что поле Description это не произвольная информация! Это имя файла конфигурации (с расширением .conf) для данного метода наблюдений, который расположен в справочнике /usr/local/ztcs/. Поэтому лучше всего писать его без пробелов через + как: ПРИБОР+ПРИЕМНИК+МАТОБЕСПЕЧЕНИЕ. Например для фотометра файл /usr/local/ztcs/Photometer+CCD+DinaSystem.conf:
#Zeiss Acquisition Hardware configuration #Sat Dec 10 17:51:46 MSK 2011 fullname=Photometer+CCD+DinaSystem name=Photometer+CCD ident=CCD soft=DinaSystem v2.2 corrHA=0.0 corrDecl=0.0 posAngle=72.5 parkHA=22\:00\:00.0 parkDecl=+22\:00\:00.0 parkDome=33.0 region_BackEnd=22.33,-22.5;23.2,-22.5;23.2,-45.0;22.33,-45.0 region_Reverse=12.8,225.0;12.8,190.0;14.0,180;17.9,150.;17.9,255.
Соответственно при добавлении нового метода наблюдений, необходимо сначала создать такой файл, взяв за образец существующие, а уже потом добавлять строку в административный список.
Панель предназначена для просмотра и изменения списка названий возможных наблюдательных программ.
Средства редактирования такие же как и на панели Observers. Атрибут Active позволяет сокращать список программ которые используются в выпадающем меню при вводе расписания на панели Schedule. Для дополнения списка новой программой нужно нажать кнопку New . Атрибут Ident не вводится, а присваивается автоматически.
Панель предназначена для просмотра и изменения списка авторов наблюдательных программ.
Средства редактирования такие же как и на панели Programs.
Панель предназначена для просмотра, или ввода, или оперативного изменения расписания наблюдений. Предполагается, что это место для удаленных коммуникаций между администратором и наблюдателями. Администратор может со своего компьютера оперативно менять ранее введенное расписание, например выделять резерв или техническое время под конкретную программу. Астроном-наблюдатель может в любой момент убедиться, что его заявка удовлетворена. И затем использовать эту информацию в панели Admin в интерфейсе наблюдателя ZeissGUI.
Ниже показан вариант для просмотра расписания астрономом-наблюдателем.
Слева расположен список сетов наблюдений представленный датами начала сетов. Видна часть расписания из 14-ти сетов. Кнопки ^ Back ^ и v Forward v позволяют смещаться по расписанию на 7 сетов вперед и назад. Кнопка выводит в таблицу справа содержимое сета.
Ниже представлен интерфейс для ввода или изменения расписания наблюдений администратором.
Для
формирования совершенно нового сета служит кнопка MakeNewSet .
Принцип ввода данных — выбор элементов из выпадающих меню. В
меню для наблюдателей, программ и авторов появляются все элементы
общих списков помеченные как active. Кнопки AddNew
добавляют новую сроку в конец соответствующего списка. Кнопки
Delete убирают
последнюю строку списка. Сформированный сет отсылается серверу
кнопкой SendToServer .
Там он вставляется в расписание в соответствии с выбранной датой.
Если дата уже существует, считается что отредактирован существующий
сет и он заменяется. Список сетов слева сразу же исправляется. Для
редактирования сета нужно нажать
.
Для удаления сета из расписания — нажать
.
Специфика наблюдений на телескопе Цейсс-1000 такова что на нем в основном идут постоянные многолетние программы. Поэтому содержимое конкретных сетов мало отличается не только от сета к сету, но даже от года к году. Это значительно облегчает ввод нового расписания. Нужно только вызывать на редактирование похожий сет, слегка его исправлять и устанавливать нужную дату. Особенно просто расставлять технические ночи и резервы зам.директора.
Следует помнить что все изменения производятся в структуре DOM в оперативной памяти сервера. Что нормально для оперативных изменений «на ходу». При перезагрузке они исчезнут. Если необходимо зафиксировать изменения для возможных перезагрузок следует вернуться к панели Authrization и воспользоваться спасением административной информации в XML-файл.