JAVA ПРИЛОЖЕНИЕ ДЛЯ КОНВЕРТАЦИИ ТЕМПЕРАТУРНО-КОНЦЕНТРАЦИОННЫХ ХАРАКТЕРИСТИК ИЗ ТЕКСТОВОГО В РЕЛЯЦИОННЫЙ ФОРМАТ - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

JAVA ПРИЛОЖЕНИЕ ДЛЯ КОНВЕРТАЦИИ ТЕМПЕРАТУРНО-КОНЦЕНТРАЦИОННЫХ ХАРАКТЕРИСТИК ИЗ ТЕКСТОВОГО В РЕЛЯЦИОННЫЙ ФОРМАТ

Косенко Д.В. 1, Воронова Л.И. 1
1Национальный исследовательский университет - Высшая школа экономики
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье описан разработка программы предназначенной для конвертирования данных из текстового в реляционный формат при проведении компьютерных экспериментов(КЭ) в рамках информационно-исследовательской системы (ИИС) «Шлаковые расплавы»[1].

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

Программа реализована как часть интерактивного web-приложения, обеспечивающего удаленный доступ к научному вычислительному комплексу, обеспечивающему распределенные компьютерные эксперименты для моделей многокомпонентных шлаковых расплавов большой размерности. ИИС «Шлаковые расплавы» разрабатывалась с применением свободно-распространяемого программного обеспечения. При реализации web-приложения использована среда разработки Apache Cocoon Для хранения данных используется СУБД PostgreSQL. Описываемый модуль реализован на языке Java[2].

Основными компонентами архитектуры ИИС являются вычислительные приложения, реляционная база данных, web-сервер, web-клиент, формат обмена данными между web-сервером и вычислительными модулями.

Удаленный доступ к ИИС, управление ходом компьютерного эксперимента и работой с базой данных обеспечивает web-приложение, на основе среды Apache Cocoon 2.1, которая архитектурно располагается между базой данных и сервером приложений J2EE (Java 2 Enterprise Edition) Apache Tomcat и представляет собой среду для публикации динамического web-контента на основе технологии конвейерной обработки данных[3].

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

Результаты компьютерных экспериментов записываются в текстовые файлы, формирующиеся в соответствии с дескрипторами информационной модели. Структура и месторасположение файлов определяет legacy application MD_MELT. На рис.1 представлена файловая структура результатов моделирования одного состава системы.

Использование текстовых файлов для хранения данных в приложении «MD_MELT» имеет несколько неоспоримых преимуществ перед более сложными альтернативами, такими как DBM-файлы или системы управления базами данных.

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

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

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

  • текстовые файлы данных очень просто создавать, а также вносить в них первоначальные данные;

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

Рис.1. Файловая структура результатов моделирования состава

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

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

  • Программный комплекс «MD_SLAGMELT» требует проведения совокупного анализа результатов комплексных экспериментов для выявления теоретически и практически значимых статистических зависимостей. Множество файлов, разрозненных по различным каталогам файловой структуры, существенно затрудняет сбор и централизованную обработку данных. Даже такая операция, как сортировка множества по некоторому значению, в текстовом файле требует реализации приложения, считывающего данные из файла во внутренний формат хранения (в переменные или массивы) для последующей обработки встроенными средствами используемого языка программирования.

Перечисленные недостатки использования текстового хранилища данных являются следствием устаревших технологий, используемых для вывода данных в приложении «MD_MELT». Требования, предъявляемые новой программной среде, обуславливают необходимость перехода с дескрипторной модели данных на реляционную. Реляционный формат хранения обеспечивает автоматизацию статистической обработки данных благодаря встроенным средствам баз данных, а также существенно упрощает процесс формирования документов различных форматов, требуемых для взаимодействия с программами научной визуализации[5].

В текущей версии ИИС для хранения начальных условий и результатов КЭ используется БД «EXPERIMENTS». Для каждого блока свойств температурно-концентрационных зависимостей в БД создана соответствующая реляционная таблица

Конвертация данных из текстового в реляционный формат

Для конвертации температурно-концентрационных характеристик из текстовых файлов в реляционные таблицы реализовано Java-приложение «SMINF-READER».

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

Процесс конвертации данных их текстового формата в реляционный приведен на рис.2. Процедура readSm_infToDB() на входе получает файл данных, номер текущего эксперимента и количество температурных точек. Производится синтаксический анализ файла.

При распознавании данных соответствующих дескрипторам структуры исходного файла вызывается процедура addParamsToDB(). Данная процедура обеспечивает запись параметров в таблицу БД. Внутренняя функция getParamsAsString() переводит параметры для всех температурных точек во внутренний формат хранения – текстовую строку. Полученная строка является входным параметром для соответствующей хранимой процедуры БД.

Рис.2. Компоненты процесса конвертации данных из текстового формата в реляционный

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

Рис.3. Фрагмент реляционной таблицы «Pressure»

Ниже приведены требования к программе «SMINF-READER».

1. Требования к функциональным характеристикам

Требования к выполняемым функциям:

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

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

Требование к входным данным:

Паспортные данные эксперимента.

Формат файла – *.txt.

Требования к выходным данным:

Установленная среда ©MySQL Workbench™.

Установленный компонент Connector/J версии 5.1.19.

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

Программа должна обрабатывать все исключительные ситуации, такие как:

Ошибки во входных данных.

Отсутствие подключения к интернету.

3. Условия эксплуатации

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

4. Требования к информационной и программной совместимости

В системе должны быть установлены следующие продукты:

  • Java™ SE Development Kit 7u3,

  • ©MySQL Workbench™ версии 5.2.39

  • Connector/J версии 5.1.19

которые поддерживается платформой Microsoft® Windows® 7 SP1

5. Основные технические требования приведены в табл.1.

Требования к составу и параметрам технических средств Таблица 1

Необходимый процессор

Рекомендуемый процессор

Необходимое ОЗУ

Рекомендуемое ОЗУ

Прочие требования

32-разрядный (x86) или 64-разрядный (x64) процессор с тактовой частотой 1 гигагерц (ГГц)

32-разрядный (x86) или 64-разрядный (x64) процессор с тактовой частотой 1,6 гигагерц (ГГц) или выше

1 гигабайт (ГБ) (для 32-разрядной системы) или 2 ГБ (для 64-разрядной системы) оперативной памяти (ОЗУ)

1,5 гигабайт (ГБ) (для 32-разрядной системы) или 2,5 ГБ (для 64-разрядной системы) оперативной памяти (ОЗУ)

графическое устройство DirectX 9 с драйвером WDDM версии 1.0 или выше

*Или минимум, требуемый операционной системой, какой бы она ни была.

Требования к программной документации

В процессе разработки должны быть созданы следующие документы:

  • Текст программы (ГОСТ 19.401-78*)

  • Пояснительная записка (ГОСТ 19.404-79)

  • Программа и методика испытаний (ГОСТ 19.301-79*)

  • Руководство оператора (ГОСТ 19.505-79*)

В табл.2 -4 приведены описание и функциональное назначение классов, а также описание и функциональное назначение методов, полей и свойств.

Описание и функциональное назначение классов Таблица 2

Класс

Назначение

Main.java

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

Length.java

Класс, отвечающий за архитектуру длин связей

MathModel.java

Класс, отвечающий за временное хранение характеристик проведенного эксперимента

MeanValuesWithEps.java

Класс, отвечающий за архитектуру средних значений и их погрешностей

Pressure.java

Класс, отвечающий за архитектуру давления

SSF.java

Класс, содержащий часто вызываемые методы

Описание и функциональное назначение методов, полей и свойств Таблица 2

Main.java

Поля

Имя

Мод. доступа

Тип

Назначение

conn

private static

Connection

Служит для соединения с базой данных

mathModel

private static

MathModel

Является временным хранилищем для температурно-концентрационных характеристик

Свойства

Имя

Мод. доступа

Тип

Назначение

setConn

public static

void

Изменение параметров соединения

Методы

Имя

Мод. доступа

Тип

Аргументы

Назначение

addParamsToDB

public static

void

-

Перенос температурно-концентраци-онных характеристик в базу данных

main

public static

void

String

Главная программная функция

Length.java

Поля

Имя

Мод.доступа

Тип

Назначение

temperature

private

float

Хранение температурной характеристики

allLengths

private

ArrayList

Хранение значений длин связей

Свойства

Имя

Мод. доступа

Тип

Назначение

getTemperature

public

float

Получение температурной характеристики

getAllLengths

public

ArrayList

Получение значений длин связей

Конструкторы

Имя

Мод. Доступа

Аргументы

Назначение

Length

public

String, int

Чтение и присвоение значений полям из строки

MathModel.java

Поля

Имя

Мод. Доступа

Тип

Назначение

elements

private

String[]

Хранение названий элементов фигурирующих в результатах эксперимента

number

private

int

Хранение количества элементов фигурирующих в результатах эксперимента

meanValuesWithEps

private

MeanValuesWithEps

Хранение средних значений и их погрешностей

length

private

Length

Хранение значений длин связей

pressure

private

Pressure

Хранение значений давления

Свойства

Имя

Мод. доступа

Тип

Назначение

getMeanValuesWithEps

public

MeanValuesWithEps

Получение средних значений и их погрешностей

getLength

public

Length

Получение значений длин связей

getPressure

public

Pressure

Получение значений давления

Конструкторы

Имя

Мод. Доступа

Аргументы

Назначение

MathModel

public

BufferedReader

Построение из файлового потока

MeanValuesWithEps.java

Поля

Имя

Мод. Доступа

Тип

Назначение

average_temperature

private

float

Хранение значения средней температуры

average_temperature_eps

private

float

Хранение значения погрешности средней температуры

full_energy

private

float

Хранение значения полной энергии

full_energy_eps

private

float

Хранение значения погрешности полной энергии

potential_energy

private

float

Хранение значения потенциальной энергии

potential_energy_eps

private

float

Хранение значения погрешности потенциальной энергии

kinetic_energy

private

float

Хранение значения кинетической энергии

kinetic_energy_eps

private

float

Хранение значения погрешности кинетической энергии

electronic_energy

private

float

Хранение значения электронной энергии

electronic_energy_eps

private

float

Хранение значения погрешности электронной энергии

magnetic_field

private

float

Хранение значения магнитной энергии

Свойства

Имя

Мод. доступа

Тип

Назначение

getAverage_temperature

public

float

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

getAverage_temperature_eps

public

float

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

getFull_energy

public

float

Получение значения полной энергии

getFull_energy_eps

public

float

Получение значения погрешности полной энергии

getPotential_energy

public

float

Получение значения потенциальной энергии

getPotential_energy_eps

public

float

Получение значения погрешности потенциальной энергии

getKinetic_energy

public

float

Получение значения кинетической энергии

getKinetic_energy_eps

public

float

Получение значения погрешности кинетической энергии

getElectronic_energy

public

float

Получение значения электронной энергии

getElectronic_energy_eps

public

float

Получение значения погрешности электронной энергии

Конструкторы

Имя

Мод. доступа

Аргументы

Назначение

MeanValuesWithEps

public

String

Чтение и присвоение значений полям из строки

Pressure.java

Поля

Имя

Мод. Доступа

Тип

Назначение

sum_i

private

float

Хранение значения sum_i

sum_i_eps

private

float

Хранение значения sum_i_eps

walls

private

float

Хранение значения walls

walls_eps

private

float

Хранение значения walls_eps

sum_ij

private

float

Хранение значения sum_ij

sum_ij_eps

private

float

Хранение значения sum_ij_eps

td

private

float

Хранение значения td

td_eps

private

float

Хранение значения td_eps

Свойства

Имя

Мод. доступа

Тип

Назначение

getSum_i

public

float

Получение значения getSum_i

getSum_i_eps

public

float

Получение значения getSum_i_eps

getWalls

public

float

Получение значения getWalls

getWalls _eps

public

float

Получение значения getWalls _eps

getSum_ij

public

float

Получение значения getSum_ij

getSum_ij_eps

public

float

Получение значения getSum_ij_eps

getTd

public

float

Получение значения getTd

getTd _eps

public

float

Получение значения getTd _eps

Конструкторы

Имя

Мод. Доступа

Аргументы

Назначение

Pressure

public

String

Чтение и присвоение значений полям из строки

SSF.java

Методы

Имя

Мод. Доступа

Тип

Аргументы

Назначение

skip

private

int

String[], int

Пропуск «пустых» строк в массиве строк

Список источников и литературы

  1. Воронова Л.И., Воронов В.И. Информационно-исследовательская система "MD-SLAG-MELT". – Свидетельство о государственной регистрации программы для ЭВМ № 2012615018 от 5.06.2012

  2. Герберт Шилдт Java. Полное руководство. 8-е издание, 2012 Издательство: Вильямс ISBN: 978-5-8459-1759-1 1104 с.

  3. Воронова Л.И., Григорьева М.А. Реализация web-приложения для ИИС «Шлаковые расплавы». - Программные продукты и системы, № 1(89), 2010, с.109-112.

  4. Воронова Л.И., Григорьева М.А. Разработка информационной модели физико-химических свойств расплава для исследовательского программного комплекса MD-SLAGMELT. - Межотраслевая информационная служба, № 2, 2011, с.30-36

  5. Воронова Л.И., Григорьева М.А., Воронов В.И. Разработка методов компьютерного моделирования наноструктуры многокомпонентных расплавов. - Фундаментальные исследования, № 8-3, 2011, с. 617-622.

Просмотров работы: 1224