Разработка подсистемы формирования отчетов в системе автоматического нагрузочного тестирования

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

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

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

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

Размещено на http://www.Allbest.ru/

Размещено на http://www.Allbest.ru/

Федеральное государственное автономное образовательное учреждение высшего образования

Национальный исследовательский университет «Высшая школа экономики»

Московский институт электроники и математики им. А.Н. Тихонова

Департамента электронной инженерии МИЭМ НИУ ВШЭ

Направление 09.03.01 «Информатика и вычислительная техника»

Выпускная квалификационная работа

Тема:

Разработка подсистемы формирования отчетов в системе автоматического нагрузочного тестирования

Выполнил Катунин А.А.

Студент группы БИВ 141

Руководитель д.т.н.

Профессор Позин Б.Н.

Москва - 2018 г.

Аннотация

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

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

Первым шагом работы подсистемы является сбор набора данных, состоящего из типовых файлов RMF, Tivoli, Perflogs и файлов с данными по запросам к БД о прикладной производительности. Затем весь этот набор данных загружается в БД системы нагрузочного тестирования. После этого, вызывается модуль построения отчета по заданным конфигурациям для данных. Последний шаг работы подсистемы -- это сохранение пользователем сформированного отчета посредством графического интерфейса. Сформированный отчет состоит из графиков и таблиц; раздел рекомендации и комментарии доступен для редактирования конечным пользователям.

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

Abstract

Final qualifying work is dedicated to the development the report shaping subsystem in the automated load testing system.

The aim of the work is to provide the possibility of automated obtaining diagrams and tables of the main indicators in the system and including comparative with the results of previous tests.

The first step of the subsystem is to collect a data set consisting of standard RMF, Tivoli, Perflogs files and data files from database queries about application performance. Then all this data set is loaded into the database of the load testing system. After that, the module for reporting is called on the specified configurations for the data. The last step of the subsystem is to save the generated report by the user through the graphical interface. The generated report consists of graphs and tables; the recommendations and comments sections are editable for end users.

The result of the final qualifying work is the automation of the report formation process based on the results of load testing.

Оглавление

Введение

1. Обзор существующих технических решений

1.1 1 С:Предприятие

1.2 Cybermonitor

2. Требования к подсистеме и отчетам

3. Инструментальные и программные средства реализации

4. Архитектура веб-приложения

5. База данных

5.1 Описание сущностей

6. Серверная часть подсистемы

6.1 Main.java

6.2 Парсеры

6.3 JDBC и работа с БД

6.4 Построитель отчетов

7. Клиентская часть подсистемы

7.1 Асинхронные запросы

7.2 W2ui-библиотека

8. Экспорт проекта и развертывание на виртуальной машине

9. Порядок работы с подсистемой

10. Полученные результаты

Заключение

Список использованных источников

Введение

В современном мире информационных технологий важность автоматизации процессов в разных сферах жизни играет большую роль. Основной целью автоматизации является повышение качества исполнения процесса. Автоматизированный процесс обладает более стабильными характеристиками, чем процесс, который выполняется в ручном режиме [1]. Чаще всего автоматизация процессов позволяет повысить уровень производительности, сократить время выполнения процесса, увеличить стабильность и точность выполняемых операций и снизить расходы на осуществление процесса. Тем не менее, самая главная цель автоматизации процессов - увеличить скорость выполнения повторяющихся (аналогичных) задач (Рис. 1). Благодаря автоматическому режиму одни и те же задачи выполняются быстрее, в связи с тем, что автоматизированные системы точнее в действиях и не подвержены снижению работоспособности от времени работы.

Рис. 1. Режимы процессов

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

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

Первым шагом работы подсистемы является сбор набора данных, состоящего из типовых файлов RMF, Tivoli, Perflogs и файлов с данными по запросам к БД о прикладной производительности. Затем весь этот набор данных загружается в БД системы нагрузочного тестирования. После этого, вызывается модуль построения отчета по заданным конфигурациям для данных. Последний шаг работы подсистемы - это сохранение пользователем сформированного отчета посредством графического интерфейса. Сформированный отчет состоит из графиков и таблиц; в раздел рекомендации и комментарии доступен для редактирования конечным пользователям.

Актуальность

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

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

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

Цели и задачи

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

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

Приложение должно реализовывать следующие методы:

- сбор данных о тестировании;

- парсинг всех типовых файлов тестирования;

- хранение обработанных данных в базе данных системы автоматизированного нагрузочного тестирования;

- формирование отчета на основе шаблонного файла.

Осуществление взаимодействие пользователя с вышеперечисленными методами реализовать в виде графического интерфейса.

Объект и предмет исследования

Объектом исследования является процесс обработки данных о результатах тестирования. Данные представлены в виде файлов различных форматов.

Предметом исследования является автоматизация формирования отчета по результатам тестирования.

1. Обзор существующих технических решений

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

1.1 1С:Предприятие

Явным лидером на российском рынке ведения налоговой, финансовой и корпоративной отчетности являются продукты компании 1C [2]. В платформе «1С:Предприятие» за построение отчётов отвечает механизм под названием «Система компоновки данных» (Рис. 2).

Рис. 2. Согласованность технологий и инструментов

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

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

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

1.2 Cybermonitor

Cybermonitor (Кибермонитор) - web-система мониторинга транспорта и недвижимости, разработанная компанией Навтелеком (Рис. 3). Система позволяет осуществить визуальный контроль состояния всех подключенных объектов во времени.

Пользователями системы мониторинга являются:

- частные физические лица;

- диспетчерские центры;

- другие компании, осуществляющие мониторинг объектов транспорта и недвижимости.

Отчеты в данной системе формируются по следующим типам:

- слив и заправка топлива;

- протяженность остановок, их количество и адреса;

- пробег;

- скорость;

- временя работы двигателя;

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

Следующим этапом является выбор типа объекта для формирования отчета во вкладке «По объектам» и впоследствии выбор конкретного объекта.

В конечном счете, пользователь указывает шаблон отчета, который имеет несколько видов:

- обобщенный отчет;

- отчет по стоянкам;

- отчет по рейсам;

- отчет по событиям датчиков.

С помощью кнопки «Загрузить» осуществляется добавление сформированного отчета в систему.

Рис. 3. Кибермонитор

2. Требования к подсистеме и отчетам

Подсистема формирования отчетов в системе автоматизированного нагрузочного тестирования осуществляет визуализацию показателей производительности и работоспособности системы многорейсовой и непрерывной обработки платежей, а также - сравнительный анализ параметров производительности процесса обработки информации в ЦОД на текущем выпуске ПО и предыдущем [3].

Веб-интерфейс подсистемы должен предусматривать:

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

- возможность пользователю загружать в базу данных архив с данными тестирования, указывать интервалы его проведения;

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

- возможность сохранять на диск сформированные отчеты;

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

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

Отчёт должен быть предоставлен в формате docx и построен на основе шаблона.

Для написания основного текста отчёта необходимо использовать единый шрифт «Times New Roman», размер 12.

Отчёт должен содержать описание актуальной модели нагрузки.

В отчёте должна присутствовать актуальная схема стенда нагрузочного тестирования и его конфигурация.

Графики загрузки процессоров должны быть построены с помощью данных RMF и Tivoli используя тип диаграммы «С областями и накоплением».

Для построения сравнительных диаграмм по времени обработки сообщений рекомендуется использовать «комбинированный тип» построения.

Раздел «Выводы и рекомендации» должен быть доступен для редактирования конечным пользователям.

3. Инструментальные и программные средства реализации

В данной разработке для открытия и построчного чтения файла используется библиотека BufferedReader. Основным преимуществом этой библиотеки является считывание текста из символьного потока ввода посредством буферизации прочитанных символов. Использование буфера призвано увеличить производительность чтения данных из потока.

Соединение разработанного Java-приложения с базами данных осуществляется с помощью Java Database Connectivity [3]. JDBC основан на представлении так называемых драйверов, которые позволяют получить соединение с базой данных по специально описанному URL, состоящему из строки соединения, логину и паролю к развернутой БД.

Визуализация обработанных данных будет осуществляется с помощью библиотеки JFreeChart. Построение отчета осуществляется на основе шаблонного файла в формате Word (.docx), в который с помощью программных модулей добавляются графики и таблицы. За эту реализацию отвечает библиотека XWPFDocument. Клиентская часть написана на JavaScript фреймворке и представляет из себя совокупность HTML-страниц, связанных между собой. Доступ к страницам, а также их хранение осуществляет Web-сервер Apache Tomcat.

4. Архитектура веб-приложения

Веб-приложение построено по схеме MVC (model-view-controller), которая подразумевает разделение данных, пользовательского интерфейса и клиент-серверного взаимодействия.

Модель отвечает за работу с базой данных (внесение данных, изменение и удаление). Взаимодействие клиента (пользователя) с сервером осуществляют сервлеты, которые принимают doGet или doPost запросы пользователя и вызывают соответствующие данному запросу действия основного класса подсистемы. На рисунке 4 показана схема работы подсистемы формирования отчетов. На веб-интерфейс первоначально из базы данных выгружаются конфигурации стендов ЦОД-1 и ЦОД-2, которые доступны для редактирования непосредственно на графическом интерфейсе. Все запросы пользователя обрабатываются сервлетами. В случае формирования отчета пользователем, на стороне сервера поочередно выполняются следующие компоненты:

- загрузка необработанных данных из БД;

- парсинг необработанных данных;

- сохранение обработанных данных в БД;

- формирование отчета на основе обработанных данных из БД.

Рис. 4. Архитектура приложения

Веб-приложение разработано в среде разработки Eclipse Neo 3. Для реализации поставленной задачи необходимо создать динамический веб-проект (Dynamic Web Project). Серверная часть приложения расположена в каталоге src и разделена на пакеты с классами, написанными на языке программирования Java. В каталоге WebContent размещена клиентская составляющая приложения.

За клиент-серверное взаимодействие отвечает Servlets API. Сервлет - это Java-класс, наследуемый чаще всего от класса HttpServlet и переопределяет его некоторые методы:

- doGet - сервлет принимает GET запрос клиента.

- doPost - сервлет принимает POST запрос клиента.

- init, destroy - сервлет управляет ресурсами в момент создания и в момент его уничтожения.

Все сервлеты расположены в пакете report.web. Каждый реализует взаимодействие с определённой страницей пользовательского интерфейса (рис. 5).

Рис. 5. Сервлет

5. База данных

Среди корпоративных систем управления базами данных (СУБД) на мировом рынке лидирующее положение занимают три продукта от ведущих IT-компаний: Microsoft SQL Server, IBM DataBase 2 и Oracle. На протяжении долгих лет более 75% рынка СУБД держат в своих руках компании производители Microsoft, IBM и Oracle.

Компания Oracle занимает лидирующее положение на российском рынке по данным статистики, к примеру, по статистическим данным за 2012 год, СУБД Oracle занимает более 50% отечественного рынка, среди остальных СУБД и около 25% общего мирового рынка систем управления базами данных. В 2018 году первенство Oracle на российском рынке остается неизменным, а показатели в международном масштабе стремительно растут вверх.

Компания Oracle основана Лэрри Элисоном, нынешним президентом компании, и Робертом Майнором в Редвуде, штат Калифорния в 1977 году. Первая реляционная система управления базами данных данной компании основывалась на модели IBM System/R и стала самой первой СУБД, в которой использовался язык SQL, от компании IBM.

В данный момент СУБД Oracle поддерживают более восьмидесяти вариантов операционной системы в широком спектре, также включая мэйнфреймы компании IBM, мини-компьютеры DEC VAX, OS UNIX, операционные системы семейства Windows и большинство других платформ.

В данной работе используется СУБД Oracle Database Express Edition 11g. Oracle SQL Developer - интегрированная среда разработки (IDE) на языках PL/SQL и SQL, которая включает администрирование баз данных и предназначена на использование в среде Oracle Database.

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

5.1 Описание сущностей

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

Между сущностями TBC_REPORTS и TBC_DATA есть связь один-ко-многим, то есть одному набору данных в системе может соответствовать множество отчетов, построенных на этих данных. Между сущностями TBC_DATA и TBC_CHART1 есть связь один-ко-одному, то есть для построения каждого графика требуется только один набор данных. Таблицы TBC_CHART{n}, где n - это номер графика, нужны для упрощения работы с получением данных из БД. В случае есть бы все обработанные данные для графиков и таблиц находились бы в одной сущности, то процесс извлечения и записи информации занял бы достаточное время. Такой подход к проектированию БД не соответствует второй нормальной форме.

Рис. 6. Модель базы данных

TBC_CONTENT содержит обозначения графиков и таблиц, а также запросы на выборку данных необходимых для их построения. Атрибуты сущности: id, title, type (тип отчета), query (Рис. 7).

Рис. 7. TBC_CONTENT

TBC_RELEASES содержит информацию о выпусках ПО, датах и времени начала и конца испытания. Атрибут Data содержит архив с данными (Рис. 8).

Рис. 8. TBC_RELEASES

TBC_REPORTS содержит информацию по сгенерируемым отчетам и по отчетам, загруженным пользователем (Рис. 9).

Рис. 9. TBC_REPORTS

TBC_DATA содержит обработанные данные для таблиц и графиков (Рис. 10)

Рис. 10. TBC_DATA

6. Серверная часть подсистемы

Серверная часть подсистемы написана на языке программирования Java с использованием набора спецификаций Java Enterprise Edition (EE) в среде разработки Eclipse Neon 3. Динамический веб-проект был создан для развертывания приложения, в качестве веб-сервера, который хранит веб-ресурсы приложения и предоставляет доступ к ним пользователям, выбран Apache Tomcat 9.

6.1 Main.java

программный веб отчет база данный

Main.java - главный класс, который выполняется при запуске приложения. На деле, этот класс является контроллером, связующим звеном между различными компонентами приложения.

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

private String path_current;

private String path_previous;

private String begin1;

private String end1;

private String begin2;

private String end2;

private String name;

private String full_name;

private String testing1;

private String testing2;

private Statement stmt;

private Connection con;

#текущий каталог

#каталог для сравнения

#дата и время начала испытания

#дата и время конца испытания

#дата и время начала испытания для сравнения

#дата и время конца испытания для сравнения

#краткое имя отчета

#полное имя отчета

#название выпуска ПО

#название выпуска ПО для сравнения

#выражения для работы с БД

#соединение с БД

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

String sql = "SELECT * FROM TBC_RELEASES

WHERE RELEASE='" + releaseName + "'";

Второй метод запускает парсеры для типовых файлов. Классы всех парсеров расположены в пакете parser.

Третий метод вызывает строитель отчета на основе шаблонного файла - класс Plotter.

6.2 Парсеры

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

- COS;

- CryptoServer;

- Logsender;

- MaxDelay;

- RMF;

- Monitoring;

- Timelag.

Парсеры, построчно читают файлы с соответствующими для них данными, обрабатывают их и заносят обработанные данные в БД.

Пример реализации парсера Timelag:

#конструктор класса

public maxDelayParser(Statement st, String type_id)

{

stmt = st;

type = type_id;

}

#получение обработанных даных

public String[] maxDelay() {

List<String> tablesNew = new ArrayList<>();

List<String> insertToDB = new ArrayList<String>();

String maxDelayTable=null;

String sqlUnion = null;

StringBuilder insertHeaderSB = new StringBuilder();

insertHeaderSB.append("STR_T17_TIME,");

insertHeaderSB.append("STR_T17_MAX_R1,");

insertHeaderSB.append("STR_T17_MAX_R2");

String insertHeader = insertHeaderSB.toString();

#взависимости от типа отчета выбираются разные файлы

try {

switch (type) {

case "CFO_C":

sqlUnion = readFile(Constants.reports + "SQL_delay_CFO.txt");

break;

case "SZFO_C":

sqlUnion = readFile(Constants.reports + "SQL_delay_SZFO.txt");

break;

case "CFO_SZFO_C":

sqlUnion=readFile(Constants.reports+"SQL_delay_CFO_SZFO.txt");

break;

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

#выполнение sql-запроса

ResultSet rs;

try {

System.out.println(sqlUnion);

rs = stmt.executeQuery(sqlUnion);

while(rs.next()){

String MAX_1 = rs.getString("MAX_1");

String MAX_2 = rs.getString("MAX_2");

String TIME;

try{

TIME = rs.getString("T14_TIME_R1");

} catch (SQLException e1) {

TIME = rs.getString("T15_TIME_R1");

}

String insertRow = TIME+","+MAX_1+","+MAX_2;

insertToDB.add(insertRow);

}

rs.close();

#вставка в БД

insertToDB.add(insertHeader);

String[] stockArr = new String[insertToDB.size()];

stockArr = insertToDB.toArray(stockArr);

return stockArr;

} catch (SQLException e) {

e.printStackTrace();

}

return null;

6.3 JDBC и работа с БД

Java Database Connectivity - стандарт пакет взаимодействия Java-приложений с базами данных, реализующийся через строку соединения с локальной БД, логином и паролей от БД [4].

Ниже представлены восемь основных интерфейсов в JDBC API, с которыми можно работать:

- Driver (драйвер БД);

- Connection (соединение);

- Statement (выражение);

- PreparedStatement (заготовленное выражение);

- CallableStatement (процедурное выражение);

- ResultSet (результат выполнения);

- DatabaseMetaData (метаданные).

DriverManager -- это синглтон, содержащий данные о всех зарегистрированных драйверах баз данных. Метод getConnection() с помощью параметра URL находит java.sql.Driver соответствующей БД и вызывает у него метод connect().

Пример реализации соединения:

Class.forName( "oracle.jdbc.driver.OracleDriver" );

Locale.setDefault(Locale.ENGLISH);

Connection connection = DriverManager.getConnection(

parser.IConstans.URL, parser.IConstans.USER,

parser.IConstans.PASSWORD );

stmt = connection.createStatement(

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY );

ResultSet - объект, который является результатом выполнения запроса.

String sql = "SELECT * FROM TBC_RELEASES WHERE RELEASE='"

+ releaseName + "'";

ResultSet rs;

rs = stmt.executeQuery(sql);

while (rs.next()) {

String day1 = rs.getString("day1");

String begintime1 = rs.getString("begintime1");

String endtime1 = rs.getString("endtime1");

}

6.4 Построитель отчетов

Построение отчета осуществляется на основе шаблонного файла в формате Word (.docx), в который с помощью программных модулей добавляются графики и таблицы. За считывание и редактирование Word-документа отвечает библиотека Apache POI, библиотека позволяющая работать с документами Microsoft Office [5]. Скачать библиотеку можно с официального сайта в виде архива, который следует поместить в каталог /lib проекта в Eclipse Neon 3. Для подключения и использования классов библиотеки необходимо все .jar файлы добавить в Build Path проекта.

Word-документ, cчитанный в память, представляет из себя экземпляр класса XWPFDocument, который разбивается на следующие составляющие:

Подклассы XWPFHeader и XWPFFooter предназначены для работы (считывания/редактирования) верхнего и нижнего колонтитулов соответственно. С помощью специального класса XWPFHeaderFooterPolicy осуществляется доступ к этим классам.

Класс XWPFParagraph необходим для работы с параграфами документа.

Класс XWPFWordExtractor - для парсинга содержимого всей страницы .docx документа. Этот класс рассматривает весь документ как единую страницу, без привязки к конкретным страницам. Ниже приведен фрагмент кода, реализующий чтение Word-файла.

Класс XWPFTable - для работы с таблицами в Word-файле. Класс XWPFTableCell реализует работу с ячейками таблицы, их можно наполнять содержимым и редактировать их отображение в таблице.

Ниже представленный фрагмент кода реализует получение параграфа документа с заданным содержимым в нём:

public static int GetParagraphNum(String text) {

XWPFDocument document;

try {

if (new File(fileName).exists())

document = new XWPFDocument(new FileInputStream(fileName));

else

document = new XWPFDocument();

for (int p = 0; p < document.getParagraphs().size(); p++) {

XWPFParagraph para = document.getParagraphs().get(p);

if (para.getText().contains(text)) {

return p;

}

}

return document.getParagraphs().size();

} catch (IOException e) {

System.out.println(e.getMessage());

}

return -1;

}

Создание таблицы внутри документа и заполнение её данными, полученными из БД:

XWPFTable table =

para.getBody().insertNewTbl(para.getCTP().newCursor());

for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {

XWPFTableCell cell = table.getRow(0).getCell(i);

XWPFParagraph cellPara = cell.getParagraphs().get(0);

XWPFRun cellRun = cellPara.createRun();

if (!tableStyle.get("HeaderColor".isEmpty()) {

cell.setColor(tableStyle.get("HeaderColor").substring(1));

}

cellPara.setAlignment(ParagraphAlignment.CENTER);

cellRun.setBold(true);

String ruCN =

Application.GetRuColumnName(rs.getMetaData().getColumnName(i+1));

if (ruColumnName != null)

cellRun.setText(ruColumnName);

else

cellRun.setText(rs.getMetaData().getColumnName(i+1));

if (i + 1 < rs.getMetaData().getColumnCount())

table.getRow(0).addNewTableCell();

}

JFreeChart является бесплатной java-библиотекой диаграмм, которая позволяет отобразить диаграммы в приложении. Jfreechart обширный набор функций включает в себя:

- последовательный и хорошо документированный API, поддерживающий широкий спектр типов диаграмм;

- гибкая конструкция, легко расширяемая и предназначенная как для серверных, так и для клиентских приложений;

- поддержка многих видов продукции, в том числе качели и компоненты javafx-приложения, файлы изображений (включая PNG и JPEG) и векторные форматы графических файлов (включая PDF, EPS и SVG);

Диаграммы, построенные с помощью данной библиотеки, сохраняются в JPEG-файл и добавляются в отчет.

7. Клиентская часть подсистемы

7.1 Асинхронные запросы

Объект XMLHttpRequest (также его называют “XHR”) реализует возможность делать HTTP-запросы из JavaScript к серверу непосредственно без перезагрузки страницы [6].

XMLHttpRequest может работать не только с форматом XML (расширяемый язык разметки), но и с другими данными.

Пример использования:

try

{

var formData = new FormData(document.forms.load);

var xhr = new XMLHttpRequest();

xhr.open('POST', '/TomcatTest/ReleaseLoad', true); // /Test is url to Servlet!

console.log('OPENED', xhr.status);

w2ui['layout'].lock('main','Загрузка', true);

xhr.onprogress = function () {

console.log('LOADING', xhr.status);

};

xhr.onload = function () {

w2ui['layout'].unlock('main');

console.log('DONE', xhr.status);

alert("Загрузка завершена");

};

xhr.send(formData);

}

catch(exception)

{

alert("Ошибка");

}

Данный фрагмент кода демонстрирует осуществление POST-запроса к сервлету и получение ответа.

7.2 W2ui-библиотека

Веб-интерфейс приложения разработан посредством JavaScript UI библиотеки W2ui, основанной на JQuery [7]. Данная библиотека состоит из 8 компонент: layout, grid, формы, тулбар, вкладки, формы, меню, дерево. Для реализации пользовательского интерфейса были задействованы layout, form и grid.

Пример использования:

layoutReportView: {

name: 'layoutReportView',

panels: [

{ type: 'main',size: 500, resizable: true, style: pstyle2 },

{ type: 'bottom',size: 200, resizable: true, style: pstyle2, title: 'Загрузить

отредактированный отчёт'}

]

},

formLoadReport: {

name : 'formLoadReport',

formHTML:

'<form action="/TomcatTest//LoadServlet" method="get">'+

'<div class="w2ui-field w2ui-span8" style="clear: both">'+

'<label>Путь к файлу</label>'+

'<div>'+

'<input name="current_file" type="text" maxlength="100" style="width:

700px; height: 25px;">'+

'</div>'+

'</div>'+

'<div class="w2ui-buttons">'+

'<input type="submit" value="Загрузить"/>'+

'</div>'+

'</form>'+

'<br>'+

'',

fields: [

{ field: 'current_file', type: 'text', required: true }

],

}

Данный фрагмент кода демонстрирует создание вкладки по просмотру отчетов в системе.

8. Экспорт проекта и развертывание на виртуальной машине

Итоговый веб-проект в среде разработчики Eclipse Neon 3 должен быть экспортирован в war-файл.

Файл веб-архива (WAR) -- это упакованное веб-приложение, которое можно экспортировать для тестирования, публикации и развертывания ресурсов, разработанных в веб-проекте.

Чтобы экспортировать war-файла из веб-проекта, следует выполнить нижеуказанные действия.

Правой кнопкой мыши щелкнуть каталог веб-проекта и выбрать во всплывающем окне пункт “Экспорт”. Затем следует выбрать war-файл в окне экспорта и нажать кнопку “Далее”.

Следующим шагов является выбор веб-проекта, который требуется экспортировать (это поле заполняется, если пользователь воспользовался всплывающим меню для открытия мастера), и указание местоположение для нового war-файла. Дополнительно можно указать параметры экспорта war-файла, например, следует ли включать исходные файлы Java в war-файл и следует ли перезаписывать существующие ресурсы в процессе экспорта. Исходные файлы обычно не включаются в war-файл, поскольку они не нужны серверу для запуска веб-приложения (Рис. 11).

Рис. 11. Экспорт проекта разработки подсистемы

Виртуальная машина, на которой будет развернуто веб-приложение, должна обладать следующими техническими характеристиками:

- Процессор Intel Core i5/i7 с тактовой частотой 2,4 ГГц или выше;

- Жесткий диск объемом не менее 100 Гб;

- Оперативная память объемом не менее 4 Гб;

- Операционная система Windows 7 и выше.

Для развертывания веб-приложения на виртуальной машине необходимо установить веб-сервер Apache Tomcat 9 [8]. Затем перейти в каталог установки веб-сервера, в каталог /webapps скопировать war-файл.

Запустить файл startup.bat в каталоге /bin. В итоге веб-приложение будет доступно на порту, указанному при установке веб-сервера.

9. Порядок работы с подсистемой

Перед формированием отчета пользователь должен задать перечень конфигураций технических средств и системного ПО для ЦОД -1 и ЦОД-2.

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

После загрузки результатов тестирования пользователь имеет возможность формировать отчет. Для этого он выбирает из списка тестирование ПО, выбирает установки, указывает названия отчета.

В конечном итоге, сформированный отчет доступен для сохранения на диск. На вкладке “Отчеты” - “Загрузка” загружает в систему архив с данными прогона, задает название выпуска и указывает временные интервалы: дата и время начала испытания, а также дата и время конца испытания (Рис. 12). На основе данного выпуска ПО пользователь может построить отчет, в том числе сравнительный.

Рис. 12. “Загрузка”

На вкладке “Отчеты” - “Настройка ЦОД-1” пользователь задаёт перечень основных параметров конфигурации технических средств и системного программного обеспечения для ЦОД-1, который сохраняется в базу данных (Рис. 13).

Рис. 13. “Настройка ЦОД-1”

На вкладке “Отчеты” - “Настройка ЦОД-2” пользователь задаёт перечень основных параметров конфигурации технических средств и системного программного обеспечения для ЦОД-2, который сохраняется в базу данных (Рис. 14).

Рис. 14. “Настройка ЦОД-2”

На вкладке “Отчеты” - “Создание” пользователь выбирает выпуск ПО для построения отчета, тестирование для сравнения является опциональным пунктом. Далее следует указать название отчета, которое будет указано за ним в системе, и полное название, которое будет отображаться непосредственно в отчете (Рис. 15). По умолчанию, название отчета обозначается текущими датой и временем генерации отчета. Заключительный пункт - это выбор установок.

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

Рис. 15. “Создание”

На вкладке “Просмотр” пользователь получает таблицу с информацией о всех отчетах, хранящихся в системе (Рис. 16). В данной таблице представлены поля:

- Название отчета;

- Тип отчета (сгенерированный или отредактированный);

- Дата создания.

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

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

Рис. 16. “Просмотр”

10. Полученные результаты

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

Формируемые разработанной подсистемой отчёты в настоящее время используются для оценки показателей производительности и работоспособности системы многорейсовой и непрерывной обработки платежей, а также осуществляют сравнительный анализ параметров производительности процесса обработки информации в ЦОД на текущем выпуске ПО и предыдущем (Рис. 15).

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

На рисунке 17 представлена диаграмма загрузки процессоров в ЦОД-1.

Рис. 17. Визуализация показателей производительности системы

Заключение

1. Автоматизация формирования отчетов является актуальной и практически значимой задачей. Разработанная подсистема позволяет справится с поставленной задачей. С помощью подсистемы пользователи могут сформировать отчет по результатам тестирования и сравнительный отчет для текущего и предыдущего выпуска ПО.

2. Подсистема формирования отчетов визуализирует:

- динамику поданные сообщений и документов;

- изменения общих загрузок CP и IFL процессоров на стендах нагрузочных испытаний в процентах;

- изменения загрузки процессоров криптосерверов, контура контроля и обработки в процентах;

- изменения общей производительности системы,

В сравнение двух последовательных результатов тестирования:

- продолжительность формирования реестров в рейсах установок;

- изменения средних и максимальных времен обработки сообщений заданных типов на всех установках;

- продолжительность выполнения программных рейсов и программных процедур.

Работа подсистемы формирования отчетов протестирована на нижеперечисленных параметрах.

Продолжительность проведения тестирования заняло 10 часов, интервал фиксирования состояния показателей системы равнялся 5 минутам, соответственно количество интервалов фиксирования состояния показателей - 120.

Количество криптосерверов, задействованных в тестировании, равнялось 12, CP-процессоров - 5, IFL-процессоров - 4. Количество поданных сообщений варьировалось от 200 до 500. Подсистема обработала порядка 42 000 сообщений каждого типа, а также 960 000 документов.

Подсистема является масштабированной и может обрабатывать данные без определенного ограничения количества процессоров и криптосерверов.

3. В результате проделанной работы были разработаны 7 парсеров на языке программирования Java, обрабатывающие данные прогона за конкретный выпуск. Обработанные данные хранятся в БД Oracle Database Express Edition 11g системы автоматизированного нагрузочного тестирования. Модель базы данных состоит из 5 сущностей. Веб-интерфейс подсистемы разработан с помощью JavaScript W2ui-библиотеки и состоит из 5 вкладок. Приложение подсистемы развернуто на веб-сервере Apache Tomcat 9 на виртуальной машине, доступ к приложению пользователи могут получить через веб-браузер с помощью IP-адреса машины и порта сервера. Сформированный отчет состоит из результатов испытаний (графиков и таблиц, иллюстрирующих параметры производительности процесса обработки информации в ЦОД-1 и ЦОД-2) и выводов и рекомендаций, доступных для редактирования конечному пользователю.

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

Список использованных источников

1. Автоматизация процессов [Электронный ресурс] // Менеджмент качества, 2018

2. Обзор архитектуры платформы [Электронный ресурс] // 1C: Предприятие 8, 2018

3. “Рейсовый и непрерывный методы обработки платежей”, А.В. Шмид, В.К. Конторович и И.В. Галахов, 2007

4. Java JDBC API [Электронный ресурс] // Oracle Technology Network, 2018

5. Apache POI [Электронный ресурс] // Java Microsoft Office Library, 2018

6. Основы XMLHttpRequest [Электронный ресурс] // коллектив авторов learn.javascript.ru, 2018

7. w2ui JavaScript UI Library [Электронный ресурс] // коллектив авторов w2ui.com, 2018

8. Apache Tomcat (The Apache software foundation) [Электронный ресурс] // коллектив авторов The Apache software foundation, 2018

Размещено на Allbest.ru

...

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

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

    курсовая работа [405,1 K], добавлен 16.09.2012

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

    курсовая работа [4,8 M], добавлен 20.05.2014

  • Выбор состава технических и программных средств разработки системы. Описание входных и выходных данных. Выбор модели базы данных. Разработка подсистемы наполнения базы данных, формирования отчетов. Разработка интерфейса пользователя, тестирование системы.

    курсовая работа [3,7 M], добавлен 04.12.2014

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

    курсовая работа [7,6 M], добавлен 27.04.2011

  • Разработка базы данных для предметной области "Подразделения предприятия – Рабочие помещения". Описание используемых данных, предметной области и результатной информации. Создание запросов, форм и отчетов в базе данных. Описание построения диаграмм.

    курсовая работа [5,6 M], добавлен 24.07.2014

  • Представление информации в виде баз данных с помощью таблиц, форм, запросов, отчетов. Сущность запросов и их функции. Применение форм и отчетов. Назначение и использование электронной почты глобальной сети. Описание интерфейса системы Компас-3D.

    контрольная работа [1,2 M], добавлен 23.12.2014

  • Выделение информационных объектов и их инфологическая модель. Логическая структура реляционной базы данных. Разработка таблиц в системе управления базами данных Access. Создание запросов, форм и отчетов в СУБД Access. Разработка приложения пользователя.

    курсовая работа [2,8 M], добавлен 05.02.2018

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

    контрольная работа [2,6 M], добавлен 10.04.2014

  • Разработка информационной системы "Салон портьер" для автоматизации деятельности менеджера фирмы, занимающейся пошивом портьер на заказ. Создание и обоснование проекта базы данных. Создание запросов, форм, отчетов. Тестирование программного приложения.

    курсовая работа [4,6 M], добавлен 07.02.2016

  • Общее понятие про отчет. Системы формирования отчетов. Возможности Сrystal Reports 2008. Формирование сложных отчетов на основе ранее подготовленных шаблонов и правил с помощью T-FLEX DOCs. Анализ идеальной модели отчетов для языков программирования.

    курсовая работа [54,2 K], добавлен 05.06.2009

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

    курсовая работа [2,1 M], добавлен 17.06.2013

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

    учебное пособие [3,6 M], добавлен 19.12.2009

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

    курсовая работа [1,6 M], добавлен 15.01.2015

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

    курсовая работа [4,9 M], добавлен 29.01.2011

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

    курсовая работа [3,2 M], добавлен 19.06.2015

  • Виды запросов в информационной системе. Модель выдачи информации по каждому из сотрудников. Сбор данных о поставках корма, животных, потомстве и совместимости видов. Основные параметры структуры таблиц и схем данных. Создание запросов, отчетов и форм.

    курсовая работа [1,1 M], добавлен 15.05.2014

  • Создание системы сбора пространственных и атрибутивных данных как один из важнейших этапов ведения кадастрового учета. Требования к информационной системе, исходная информация по кадастровому учету объектов недвижимости. Необходимые программные средства.

    курсовая работа [4,5 M], добавлен 17.07.2013

  • Организационно-управленческая структура ООО "Гранит". Оценка проблемных ситуаций, поиск методов их разрешения. Разработка баз данных, содержащих информацию о поставщиках, покупателях, покупках и продажах предприятия ООО "Гранит", программные требования.

    дипломная работа [8,1 M], добавлен 01.07.2011

  • Понятие базы данных и системы управления данными (СУБД). Ее функции: ввод и хранение информации, создание таблиц, графиков, отчетов. Разработка программного продукта для автобусного парка - автоматизированной системы "Автопарк" с использованием MySQL.

    курсовая работа [3,7 M], добавлен 04.02.2013

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

    дипломная работа [47,6 K], добавлен 17.02.2009

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