Разработка программного комплекса для анализа состояния системы хранения данных EMC Centera

Проектирование серверного компонента, исполняющегося на узле кластера EMC Centera. Протокол взаимодействия компонентов, способный восстанавливаться после разрыва соединения между компонентами. Графический интерфейс пользователя для программного комплекса.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 18.07.2014
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

/**

* Tries to get String value of parameter with specified @param name

* @return String value if it exists in parameters bucket

* @throws ParamsException if there is a corruption in wrapped

* XML document

* @throws ParamsException if there are no parameters with specified @param name

*/

@Override

public String getString(String name) throws ParamsException {

if(name == null)

throw new ParamsException("Invalid parameter name ["+name+"]");

// enumerate through all tags with endpoint parameters

NodeList list = root.getElementsByTagName(PARAMETER);

for(int index = 0; index < list.getLength(); index++) {

NamedNodeMap attributes = list.item(index).getAttributes();

// check only tags with existing attributes

if(attributes != null) {

// try to find name attribute

Node nameAttribute = attributes.getNamedItem(PARAMETER_NAME);

if(nameAttribute == null)

throw new ParamsException("Missing parameter name");

String nameString = nameAttribute.getNodeValue();

if(nameString == null)

throw new ParamsException("Void parameter name");

if(!nameString.equals(name))

continue;

// try to find value attribute

Node valueAttribute = attributes.getNamedItem(PARAMETER_VALUE);

if(valueAttribute == null)

throw new ParamsException("Missing parameter value");

String valueString = valueAttribute.getNodeValue();

if(valueString == null)

throw new ParamsException("Void parameter value");

return valueString;

}

}

throw new ParamsException("There is no parameter ["+name+"]");

}

/**

* Store string parameter into bucket

* @param name - name to store parameter with

* @param value - value of stored parameter

*/

@Override

public void putString(String name, String value) {

if(name == null || value == null)

throw new IllegalArgumentException("name ["+name+

"] and value ["+value+"] are mandatory");

Element node = document.createElement(PARAMETER);

node.setAttribute(PARAMETER_NAME, name);

node.setAttribute(PARAMETER_VALUE, value);

root.appendChild(node);

}

/**

* Stores parameters bucket as a parameter for another bucket.

* All nodes of stored bucket are duplicated

* @param name - name to store parameter with

* @param params - content of stored parameters bucket

*/

@Override

public void putParams(String name, Params params) {

if(name == null || params == null)

throw new IllegalArgumentException("name ["+name+

"] and parameter ["+params+"] are mandatory");

Element node = document.createElement(name);

Element xmlContent = params.getXmlContent();

NodeList list = xmlContent.getChildNodes();

for(int nodeIndex = 0; nodeIndex < list.getLength(); nodeIndex++) {

node.appendChild(document.importNode(list.item(nodeIndex),true));

}

root.appendChild(node);

}

/**

* Returns all parameters buckets which are stored under actual one

* @param - name of all parameters bucket to retrieve

*/

@Override

public Params[] getAllParamsWithName(String name) {

if(name == null)

throw new IllegalArgumentException("name ["+name+

"] is mandatory");

NodeList list = root.getElementsByTagName(name);

Paras[] paramsArray = new Params[list.getLength()];

for(int index = 0; index < list.getLength(); index++) {

paramsArray[index] = new ParamsImpl(list.item(index));

}

return paramsArray;

}

/**

* Return root wrapped XML tag

*/

@Override

public final Element getXmlContent() {

return root;

}

/**

* Implements standard method to serialize hits object to String

*/

@Override

public String toString() {

TransformerFactory factory = TransformerFactory.newInstance();

try {

Transformer transformer = factory.newTransformer();

Source source = new DOMSource(document);

StringWriter writer = new StringWriter();

Result result = new StreamResult(writer);

transformer.transform(source, result);

return writer.toString();

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

return null;

}

}

Приложение 3

Программный комплекс для анализа состояния

системы хранения данных EMC Centera

Описание программы

Р.П.68124-01.13

Листов 3

2011

Аннотация

Приводится краткая характеристика основных параметров программы, её структурное описание и условия её работоспособности

Общие сведения

Программа выполняет ряд задач:

производит поиск заданного шаблона сообщения в журналах событий системы хранения данных EMC Centera;

производит отладочное журналирование событий по заданным параметрам;

производит перехват и журналирование пакетов сетевого трафика c заданными параметрами фильтрации;

производит поиск и копирование указанных данных с узлов кластера EMC Centera на рабочую станцию пользователя;

производит кодирование и декодирование набора байтов, используя алгоритм Base64;

производит декодирование содержимого пакетов сетевого трафика типа SmartPacket;

производит сжатие и декомпрессию набора байтов, используя алгоритм ZLib.

Функциональное назначение

Программа предназначена для автоматизированного сбора и анализа данных о состоянии системы хранения данных EMC Centera. Полученные данные позволяют оперативно получить информацию о причинах сбоя и его последствиях.

Описание структуры программы

Программа является клиент-серверным программным комплексом, реализованным в стиле ООП на языке Java.

Серверный компонент представляет собой набор классов, осуществляющих следующие действия:

Открытие файлов пользовательских запросов и представление их в виде объектов задач

Выполнение считанных задач

Сериализацию объектов задач с результатами в файлы результатов

Клиентский компонент представляет собой набор классов, осуществляющих следующие действия:

Предоставление пользователю графического интерфейса для создания задач и просмотра результатов их выполнения

Сериализацию объектов пользовательских запросов в файл с последующей пересылкой их на узел СХД Centera для обработки серверным копмонентом

Копирование с узла СХД Centera результатов выполнения пользовательских задач с последующей десериализацией в объекты задач с результатами выполнения

Вызов и загрузка

Для создания и выполнения запросов пользователя требуется запустить клиентский компонент на рабочей станции пользователя и используя графический интерфейс указать параметры соединения с узлом СХД Centera, после чего клиентский компонент соединится с узлом СХД, скопирует на него серверный компонент и запустит его удалённо; после этих действий пользователь может создавать свои запросы используя графический интерфейс.

Входные и выходные данные

Входными данными для программного комплекса являются параметры пользовательских запросов, сообщаемые программе через графический интерфейс; выходными данными являются результаты выполнения запроса:

Поиск в журналах. Входные данные - список узлов СХД для поиска, временной интервал, типы журналов и шаблон сообщения. Выходные данные - список всех событий СХД, соответствующих заданным параметра поиска.

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

Перехват сетевого трафика. Входные параметры - список узлов СХД, участвующих в перехвате и параметры фильтрации сетевых пакетов. Выходные данные - журналы сетевого трафика с указанными сетевыми пакетами в формате библиотеки LibPcap на указанных узлах СХД.

Копирование файлов с кластера Centera. Входные параметры - список файлов для копирования, размещённых на узлах СХД. Выходные данные - копия указанных данных на рабочей станции пользователя.

Анализ сетевых пакетов SmartPacket. Взодные данные - содержимое сетевого пакета типа SmartPacket. Выходные данные - текстовое представление всех полей пакета с указанием мнемонических констант.

Используемые технические средства

Для использования программы необходима рабочая станция с ОС Windows XP SP2 или SP3; установленным пакетом Java Runtime Environment 6.0; подключением по сети к узлу СХД Centera, используя протокол TCP; СХД Centera с версией ПО не ниже 4.0.

Приложение 4

Программный комплекс для анализа состояния

системы хранения данных EMC Centera

Программа и методика испытаний

Р.П.68124-01.51

Листов 5

2011

Аннотация

Разработана и проведена методика испытаний программного продукта с целью проверки правильности его работы и корректности получаемых результатов.

Объект испытаний

Программный комплекс для анализа состояния системы хранения данных EMC Centera.

Цель испытаний

Удостовериться в соответствии программы техническому заданию.

Программа испытаний

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

Методика испытаний

Для каждой функциональной возможности была выбрана собственная методика испытаний. Доступ к узлам СХД осуществлялся с помощью утилиты PuTTY.

Поиск шаблона в системных журналах СХД

Для данного испытания были сконфигурированы два разных набора параметров поиска, отличающиеся только типами журналов, в которых производиться поиск:

Дата начала временного интервала: 25.05.2011

Дата конца временного интервала: 26.05.2011

Список узлов СХД: c001n01,c001n02,c001n04

Типы журналов: Бизнес-логика, программная платформа и ОС (во втором наборе отсутствует ОС)

Использование регулярных выражений в шаблоне: выключено

Шаблон сообщения: «/dev/sda3»

В результате поиска в окно с найденными сообщениями были выведены записи от всех трех компонентов ПО СХД Centera об ошибках чтения с раздела диска /dev/sda3.

В результате поиска со вторым набором настроек в окно сообщений были выведены те же записи, но отсутствовали записи из журналов ОС.

Анализ полученного результата полностью совпадает с ожидаемым.

Генерирование отладочного журнала СХД

Для данного испытания был задан следующий набор параметров генерирования:

Список узлов СХД: c001n03,c001n04

Минимальный уровень сообщений: Verbose

Список источников сообщений: ReplicationComponent

Список фильтров: не задан

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

Перехват сетевого трафика с записью в журнал

Для данного испытания был задан следующий набор параметров генерирования:

Список узлов СХД: c001n01,c001n02

Сетевой интерфейс для перехвата пакетов: eth2

Параметры фильтрации: src host 10.64.88.123 and dst port 623

В результате запуска перехвата сетевых пакетов на указанных узлах начал создаваться журнал с отфильтрованными пакетами IPMI, присланными от узла с адресом 10.64.88.123.

Копирование файлов с СХД на рабочую станцию пользователя

Для первой части данного испытания был задан следующий набор файлов для поиска:

Список узлов: c001n01,c001n02,c001n03,c001n04

Типы данных: журналы бизнес-логики СХД, файлы с перехваченными сетевыми пакетами

Поиск файлов во всех имеющихся сессиях: отключен

В результате поиска были выведены в том числе файлы журналов, сгенерированные в испытаниях, описанных в пп. 5.2 и 5.3 настоящего приложения, которые и были выбраны в качестве набора исходных данных для продолжения испытания.

В результате копирования файлов на тестовую рабочую станцию были созданы абсолютно идентичные копии выбранных файлов, оригиналы которых находятся на узлах СХД. Идентичность проверялась утилитой md5sum.

Кодирование и декодирование алгоритмом Base64

Для данного испытания в качестве набора исходных данных был выбран файл с содержимым сетевого пакета типа SmartPacket.

При проведении испытания содержимое файла было закодировано с помощью Base64 алгоритма, а затем закодированное содержимое подверглось обратному раскодированию.

Параллельно кодирование/декодирование было осуществлено с помощью специализированного веб-сервиса Online Base64, выполняющего данные преобразования.

Сравнение промежуточных и конечных результатов между испытуемым программным комплексом и специализированной утилитой показало полную идентичность результатов. Сравнение первоначального содержимого с конечным дало тот же результат. Сравнение производилось утилитой md5sum.

Декодирование содержимого сетевого пакета типа SmartPacket

Для данного испытания в качестве набора исходных данных был выбран файл с содержимым сетевого пакета типа SmartPacket.

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

Сжатие и декомпрессия алгоритмом ZLib

Для данного испытания были выбраны конфигурационные файлы бизнес логики, сжатые алгоритмом ZLib и закодированные алгоритмом Base64.

В ходе испытания исходные данные сначала были декодированы алгоритмом Base64 с помощью функции программного комплекса, а затем декомпрессированы алгоритмом ZLib.

Результат совпал с содержимым этого же конфигурационного файла, распакованным внутренними функциональностями СХД Centera.

Результаты испытаний

Проведение всех испытаний и анализ их результатов позволяют сделать вывод о том, что функции программного комплекса реализованы корректно, следовательно программный комплекс удовлетворяет требованиям технического задания.

Технические и программные средства, используемые для испытаний

Техническим средством отладки являются персональный компьютер Intel PentiumIV 2.8ГГц c оперативной памятью объемом 1Гб, дисковым пространством 10Гб и операционной системой Windows XP SP3 с установленным программным пакетом Java Runtime Environment 6.0, а также СХД Centera 4-го поколения аппаратной платформы из 4 узлов с ПО версии 4.1.1 Patch 2. Программное средство отладки - интегрированная среда разработки Eclipse.

ПРИЛОЖЕНИЕ 5

Программный комплекс для анализа состояния

системы хранения данных EMC Centera

Спецификация

Р.П.68124-01

Листов 1

2011

Обозначение

Наименование

Примечание

Документация

Р.П.68124-01

Техническое задание на разработку

Р.П.68124-01.12

Текст программы

Р.П.68124-01.13

Описание программы

Р.П.68124-01.51

Программа и методика

испытаний

Входящие программы

md5sum

md5sum

linux.die.net

Online Base64

Motobit Online Base64

www.motobit.com

PuTTY

PuTTY

www.chiark.greenend.org.uk


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.