Разработка программного комплекса для анализа состояния системы хранения данных 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 |
|
Подобные документы
Разработка программного комплекса и описание алгоритма. Разработка пользовательского интерфейса. Анализ тестовых испытаний программного блока. Защита пользователей от воздействия на них опасных и вредных факторов. Режимы работы программного комплекса.
дипломная работа [1,7 M], добавлен 14.03.2013Вычисление определенных интегралов методом Симпсона. Функциональная схема программного комплекса. Реализация функции разбора произвольно заданных математических функций. Методика сохранения графика в графический файл. Интерфейс программного комплекса.
курсовая работа [1,7 M], добавлен 15.06.2009Разработка программного обеспечения для автоматизированной системы калибровки и поверки комплекса технических средств ПАДК "Луг-1". Аналитический обзор аналогов. Проектирование пользовательского интерфейса. Средства разработки программного обеспечения.
дипломная работа [1,4 M], добавлен 17.12.2014Общая характеристика автоматизированной системы мониторинга и учета электроэнергии на фидерах контактной сети. Сравнение с современными автоматизированными системами коммерческого учета электроэнергии. Разработка модели и алгоритма программного комплекса.
дипломная работа [2,0 M], добавлен 28.06.2015Структура данных в динамической памяти, однонаправленные списки. Разработка программного комплекса, предназначенной для хранения и предоставления пользователям данных об улицах города. Реализация данной программы при помощи метода расширения ядра.
курсовая работа [438,3 K], добавлен 11.01.2016Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.
курсовая работа [449,8 K], добавлен 14.01.2011Проектирование структуры информационной базы и разработка программного комплекса, позволяющего автоматизировать процесс учета налогоплательщиков. Разработка конфигурации и создание интерфейса базы данных, форм и отчетов в программе "1С Предприятие".
дипломная работа [3,2 M], добавлен 21.06.2015Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015Исследование алгоритма взаимодействия пользователя с сервером, на котором находится база данных. Реализация безопасности информационной системы с помощью возможностей программного комплекса Visual Studio. Анализ особенностей интерфейса веб-приложения.
курсовая работа [1,3 M], добавлен 17.06.2017Архитектура и тестирование программного комплекса. Описание реализованного протокола данных. Обработка входящих подключений. Работа пользовательского потока и потока отправки. Выбор языка программирования. Структура серверного и клиентского приложений.
курсовая работа [999,1 K], добавлен 20.12.2012