кнопку «Start new log…», при нажатии которой откроется окно «Create new custom log» (см пп. 11) для выбора параметров создания отладочного журнала; при успешном задании параметров нового журнала он добавляется в список журналов;
кнопку «Stop log», при нажатии которой генерирование выбранного в списке журнала заканчивается, а журнал удалается из списка; кнопка должна быть активирована только при выбранном в списке журнале;
Допускается изменение размеров окна пользователем, при этом изменяются размеры только списка журналов, размеры и положение остальных элементов содержимого окна не изменяются.
Допускается открывать только одно такое окно, при повторной попытке открыть данное окно из меню должно происходить только переключение фокуса ввода на ранее открытое такое окно.
Окно «Create new custom log»
Модальное диалоговое окно, предназначенное для ввода параметров вновь создаваемого отладочного журнала бизнес-логики СХД Centera.
Окно должно содержать:
поле ввода «Nodes», содержащее отделённые запятой имена узлов СХД Centera, на которых будет производиться создание журнала;
кнопку «Select nodes…», открывающую диалоговое окно для удобного выбора набора узлов СХД, на которых будет производиться создание журнала (см пп. 8);
выпадающий список с минимальным уровнем важности сообщения, добавляемого в журнал; список должен содержать следующие уровни важности: «DEBUG», «VERBOSE», «STATUS», «WARNING» и «ERROR»; выбранное значение по умолчанию - «STATUS»;
список модулей бизнес-логики СХД Centera, сообщения от которых будут добавляться в журнал; список должен поддерживать множественное выделение;
список фильтров сообщений в виде таблицы, содержащей следующие колонки:
тип фильтра; поля элементов в данной колонке представляют собой выпадающие списки; в данной версии допускается наличие только одного типа фильтра - «message»;
значение фильтра; поля элементов списка в данной колонке представляют собой текстовые поля ввода, в которое пользователь вводит значение фильтра;
кнопку «Add…», при нажатии которой в список фильтров добавляется ещё одна строка для ввода параметров фильтра;
кнопку «Remove», при нажатии которой выбранный элемент списка фильтров удаляется;
кнопку «Create», при нажатии которой окно пропадает, начинается генерирование журнала с заданными параметрами и фокус ввода переключается обратно на окно «Custom logging» (см пп 10), в которое добавляется информация о вновь созданном отладочном журнале;
кнопку «Cancel», при нажатии которой отменяется создание нового отладочного журнала и окно пропадает.
Изменение размера окна пользователем не допускается.
Окно «TCP dumping»
Немодальное окно программы, предназначенное для отображения текущих задач по созданию журналов сетевого трафика, ранее запущенных на генерацию, но не завершённых.
Окно должно содержать:
список созданных в рамках текущей сессии задач по генерированию журналов сетевого трафика в виде таблицы со следующими колонками:
набор узлов, на которых генерируется журнал
название сетевого интерфейса узлов, на которых происходит журналирование трафика
дата и время начала генерирования журнала
кнопку «Start new capture…», при нажатии которой откроется окно «Create new TCP dump» (см пп. 13) для выбора параметров создания нового журнала сетевого трафика; при успешном задании параметров нового журнала он добавляется в текущий список журналов;
кнопку «Stop capture», при нажатии которой генерирование выбранного в списке журнала заканчивается, а журнал удаляется из списка; кнопка должна быть активирована только при выбранном в списке журнале;
Допускается изменение размеров окна пользователем, при этом изменяются размеры только списка журналов, размеры и положение остальных эелементов содержимого окна не изменяются.
Допускается открывать только одно такое окно, при повторной попытке открыть данное окно из меню должно происходить только переключение фокуса ввода на ранее открытое такое окно.
Окно «Create new TCP dump»
Модальное диалоговое окно, предназначенное для ввода параметров вновь создаваемого журнала сетевого трафика.
Окно должно содержать:
поле ввода «Nodes», содержащее отделённые запятой имена узлов СХД Centera, на которых будет производиться создание журнала;
кнопку «Select nodes…», открывающую диалоговое окно для удобного выбора набора узлов СХД, на которых будет производиться создание журнала (см. пп. 8);
выпадающий список с допустимыми сетевыми интерфейсами, на которых возможен захвать сетевого трафика; список должен содержать следующие названия сетевых интерфейсов: «eth0», «eth1» и «eth2»; выбранное значение по умолчанию - «eth0»;
поле ввода «Pcap filter», содержащее параметры фильтрации сетевых пакетов в формате библиотеки LibPcap;
кнопку «Create», при нажатии которой окно пропадает, начинается генерирование журнала с заданными параметрами и фокус ввода переключается обратно на окно «TCP dumping» (см. пп 12), в которое добавляется информация о вновь созданном журнале сетевого трафика;
кнопку «Cancel», при нажатии которой отменяется создание нового журнала сетевого трафика и окно пропадает.
Изменение размера окна пользователем не допускается.
Окно «Download»
Модальное диалоговое окно, предназначенное для выбора имеющихся на СХД Centera файлов журналов и конфигураций СХД, а также копирования выбранных файлов на рабочую станцию пользователся.
Окно должно содержать:
поле ввода «Nodes», содержащее отделённые запятой имена узлов СХД Centera, на которых будет производиться поиск файлов для копирования;
кнопку «Select nodes…», открывающую диалоговое окно для удобного выбора набора узлов СХД, на которых будет производиться поиск файлов для копирования (см. пп. 8);
список типов журналов и конфигураций ПО СХД Centera, среди которых будет производиться поиск файлов для копирования; список должен поддерживать множественное выделение; минимальный набор эелементов списка должен включать следующие: «Business-logic logs», «Platform logs», «OS logs», «TCP dumps», «Cluster parameters» и «Node parameters».
триггер, разрешающий поиск файлов для копирования в содержимом других сессий, имеющихся на кластере;
кнопку «Query data», при нажатии которой инициируется поиск файлов, соответствующих критериям выбора пользователя;
список найденных на кластере файлов для копирования, удовлетворяющих заданным критериям поиска; список должен поддерживать множественное выделение и иметь вид таблицы, содержащей следующие колонки:
узел СХД, на котором находится файл;
полный путь к файлу;
имя файла;
дата и время создания файла;
кнопку «Download selected data», при нажатии которой открывается стандартное окно выбора директории для сохранения копируемых файлов; при успешном выборе директории окно пропадает, открывается окно «Download progress» (см. пп 15), в которое добавляется список выбранных пользователем для копирования файлов;
кнопку «Cancel», при нажатии которой отменяется копирование файлов и окно пропадает.
Изменение размера окна пользователем не допускается.
Окно «Download progress»
Немодальное окно программы, предназначенное для отображения списка файлов, поставленных в очередь на копирование с кластера.
Окно должно содержать:
список добавленных в очередь для копирования с узлов СХД Centera файлов, которые ещё не были скопированы; список представлен в виде таблицы со следующими колонками:
узел СХД Centera, с которого необходимо скопировать выбранный файл;
полный путь к копируемому файлу;
доля скопированного содержимого файла в процентах (без десятичных долей);
статус копирования; допускается наличие одного из статусов: «queued», «downloading», «complete» и «error» (с указанием в скобках причины ошибки);
Допускается изменение размеров окна пользователем вместе с размерами таблицы копируемых файлов.
Допускается открывать только одно такое окно, при повторной попытке открыть данное окно из меню должно происходить только переключение фокуса ввода на ранее открытое такое окно.
Окно «Base64 encode/decode»
Модальное диалоговое окно, предназначенное для кодирования и декодирования упорядоченной последовательности байтов, используя алгоритм кодирования Base64 [4].
Окно должно содержать:
кнопку «Open encoded file…», при нажатии которой будет появляться стандартное окно выбора файла с закодированным Base64 содержимым, а после выбора содержимое данного файла будет отображено в текстовом поле кодированного содержимого и использовано для декодирования;
текстовое поле для ввода и вывода кодированного Base64 содержимого, из которого можно скопировать текст в буфер обмена;
кнопку «Decode», при нажатии которой будет происходить декодирование кодированного содержимого (введённого в соответствующее текстовое поле или открытого из файла) с последующим отображением его в текстовом поле декодированного содержимого;
кнопку «Decode and save as…», нажатие которой вызовет действия как для кнопки «Decode», но дополнительно будет открыто стандартное окно выбора файла для сохранения результатов декодирования;
кнопку «Open decoded file…», при нажатии которой будет появляться стандартное окно выбора файла с содержимым для Base64 кодирования, а после выбора содержимое данного файла будет отображено в текстовом поле содержимого для декодирования и впоследствии использовано для кодирования;
текстовое поле для ввода и вывода содержимого для Base64 кодирования, из которого можно скопировать текст в буфер обмена;
кнопку «Encode», при нажатии которой будет происходить кодирование содержимого (введённого в соответствующее текстовое поле или открытого из файла) с последующим отображением его в текстовом поле кодированного содержимого;
кнопку «Encode and save as…», нажатие которой вызовет действия как для кнопки «Encode», но дополнительно будет открыто стандартное окно выбора файла для сохранения результатов кодирования.
Допускается изменение размеров окна пользователем вместе с размерами текстовых полей. Остальные элементы окна не должны менять размеры и взаимное расположение.
Допускается открывать несколько таких окон, при открытии следующего окна для Base64 кодирования/декодирования данное окно просто добавляется в список открытых окон клиентского компонента.
Окно «SmartPacket decode»
Немодальное окно программы, предназначенное для отображения декодированного содержания сетевого пакета типа SmartPacket
Окно должно содержать текстовое поле размером во всю рабочую область окна, которое отображает декодированное содержимое сетевого пакета типа SmartPacket, полученное от серверного компонента. Текстовое поле должно позволять копировать своё содержимое в будер обмена.
Допускается изменение размеров окна пользователем вместе с размерами текстового поля с декодированным содержимым пакета.Допускается открывать несколько таких окон, при открытии следующего окна с декодированным содержимым пакета данное окно просто добавляется в список открытых окон клиентского компонента.
Окно «ZLIB compress/decompress»
Модальное диалоговое окно, предназначенное для сжатия и декомпрессии упорядоченной последовательности байтов, используя алгоритм ZLIB [5].
Окно должно содержать:
кнопку-переключатель «ZLIB encode data», при нажатии которой кнопка-переключатель «ZLIB decode data» будет отжиматься и будет происходить выбор операции сжатия над данными в выбранном пользователем файле;
кнопку-переключатель «ZLIB decode data», при нажатии которой кнопка-переключатель «ZLIB encode data» будет отжиматься и будет происходить выбор операции декомпрессии над данными в выбранном пользователем файле;
кнопку «Save…», при нажатии которой окно пропадает и выводится стандартное окно выбора файла для сохранения результатов преобразования;
кнопку «Cancel», при нажании которой операция преобразования отменяется и фокус ввода возвращается к главному окну клиентского компонента.
Изменение размера окна пользователем не допускается.
Окно «About Sustaining suite»
Модальное диалоговое окно, предназначенное для отображения основной информации о клиентском компоненте программного комплекса.
Окно должно содержать:
текст с название программного комплекса и его версией
текст с кратким описанием предназначения программного комплекса
текст с контактными данными разработчкиа программного комплекса (адрес электронной почты), доступный для копирования в буфер обмена.
кнопку «Ok», закрытия диалогового окна.
Изменение размера окна пользователем
не допускается.
3. РАЗРАБОТКА СЕРВЕРНОГО КОМПОНЕНТА
ПРОГРАММНОГО КОМПЛЕКСА
Серверный компонент программного комплекса выполняет практически всю работу по поиску и обработке информации, предоставляемой в результате пользователю. Его разработка определяет возможности и ограничения функциональностей программного комплекса.
Данный раздел состоит из четырёх подразделов, которые описывают фазы разработки серверного компонента:
Подраздел «Разработка методик сбора и анализа информации о состоянии СХД Centera» содержит подробный анализ видов информации о состоянии, которую необходимо собрать с СХД, способы её получения, обработки и сохранения результатов.
Подраздел «Разработка протокола взаимодействия клиентского и серверного компонентов» содержит описание процесса выбора способа взаимодействия между двумя компонентами программного комплекса, параметры протокола взаимодействия, основные сущности и типы данных, используемые для взяимодействия в рамках протокола.
Подраздел «Разработка структуры серверного компонента» описывает процесс выбора внутренней структуры компонента, его модулей, взаимосвязей между ними, режимов работы модулей, определение источников исходных данных и размещения результатов работы.
Подраздел «Реализация серверного
компонента» содержит информацию об использованных средствах разработки, выборе
подходов и приёмов реализации модулей серверного компонента.
3.1 Разработка методик сбора и
анализа информации о состоянии СХД Centera
Методики сбора и анализа информации разрабатываются до уровня детализации, который может быть успешно реализован равно как на языке Java SE, так и с использованием встроенных команд языка оболочки ОС bash. Основные усилия при разработке методик применяются для чёткой формулировки всех исходных данных, необходимых для сбора и анализа информации о состоянии СХД, чётко описанных требований к искомому результату и чётко изложенному алгоритму получения результата исходя из набора исходных данных.
При разработке методик намеренно опускаются имена директорий, файлов, команд, компонентов ПО СХД Centera и некоторые другие аттрибуты, раскрывающие внутреннее устройство ПО СХД Centera, недоступные для публичного доступа.
Разработка методики выборки заданных записей из журналов СХД Centera
Описание методики
Необходимо проанализировать указанные типы журналов на указанных узлах СХД Centera и выбрать из них записи, соответствующие заданному шаблону и находящиеся внутри указанного временного интервала; полученные записи необходимо отсортировать по возрастанию времени и вернуть в качестве результата, сохранённого на файловой системе.
Исходные данные:
типы журналов, в которых необходимо производить поиск - определяют местоположение, имена файлов и формат журналов
список узлов СХД, на которых производить поиск - определяет набор адресов, где удалённо нужно производить поиск записе в журналах