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



Скачать 241.9 Kb.
Дата25.07.2014
Размер241.9 Kb.
ТипДипломная работа
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

КЕМЕРОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Математический факультет



Кафедра вычислительной математики

ДИПЛОМНАЯ РАБОТА

«Построение системы хранения

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

студента 5 курса

Линник Константина Станиславовича

Специальность 010503 – «Математическое обеспечение

и администрирование информационных систем»

Научный руководитель:

ассистент Н.А. Гейдаров

_____________________

Консультант:

Зав. кафедрой, д.ф.-м.н.,

профессор Ю.Н. Захаров

_____________________


Работа допущена к защите:

"____"_______________2010г.


Зав. кафедрой д.ф.-м.н.,

профессор Ю.Н. Захаров

__________________________

Работа защищена:

“____” _____________2010г.

с оценкой _________________

Председатель ГАК:______________

__________________________

__________________________


Кемерово 2010

1.Содержание




1.Содержание 3

2.Введение 4

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

2.2Цель 4

2.3Задачи 4

3.Анализ 5

3.1Основная терминология 6

3.2Роли 6

4.Требования к системе 8

4.1Функциональные требования к системе: 8

4.2Архитектурные требования к системе 8

4.3Системные требования 8

5.Проектирование 10

5.1Среда разработки 10

5.2Репозиторий 10

5.3Лицензия 10

5.4Выбор платформы 11

5.5Выбор базы данных 12

5.5.1Map-Reduce 13

5.6Клиент 13

5.7FTP Сервер 14

6.Реализация 15

6.1Архитектура 15

6.1.1Ядро системы 15

6.1.1.1IoC контейнер 15

6.1.1.2Авторизация и аутентификация 16

6.1.2Представительский слой 17

6.1.3Модель 17

6.1.4Данные 21

6.1.4.1Шаблон 21

6.1.4.2Пакет 21

6.1.4.3Пользователь 21

6.1.4.4Системный документ 22

6.1.5Конфигурация ИС 22

6.1.5.1application.properties 22

6.1.5.2applicationContext.xml 22

6.1.5.3web.xml 23

6.1.6Расширение ИС 24

6.1.6.1Подготовка интерфейса модели 24

6.1.6.2Реализация интерфейса 25

6.1.6.3Реализация контроллера 25

6.1.6.4Регистрация в диспетчере 26

6.1.6.5Создание страницы-представления 26

6.1.6.6Настройка прав доступа 26

6.2Модульное тестирование 27

6.3Инсталлятор 27

6.3.1Удаление 28

6.3.2Сборка 28

6.4Пользовательский интерфейс 28

6.4.1Конструктор 28

6.4.1.1Элементы 29

6.4.1.2Представления 29

6.4.2Шаблоны 30

6.4.3Пакеты 30

6.4.

4Поиск 30

6.4.5Пользователи 31

6.4.6Просмотр 31

6.4.6.1Представление по-умолчанию 31

6.4.6.2Пользовательское представление 32

6.5Пример работы с ИС 32

6.5.1Установка 32

6.5.2Создание пользователей 33

6.5.3Создание шаблона 34

6.5.4Создание задачи 35

6.5.5Создание представления 36

7.Заключение 38

7.1Функциональные требования 38

7.2Архитектурные требования 38

8.Приложение I. Список литературы 39

9.Apache Ant 1.8.1 Manual [В Интернете]. - 2010 г.. - http://ant.apache.org/manual/. 39

10.Apache FTPServer documentation [В Интернете]. - 2010 г.. - http://mina.apache.org/ftpserver/documentation.html. 39

11.Beginning CouchDB [Книга] / авт. Lennon Joe. - [б.м.] : Apress, 2009. 39

12.Class Mockito [В Интернете] // mockito.org. - 2010 г.. - http://mockito.googlecode.com/svn/tags/latest/javadoc/org/mockito/Mockito.html. 39

13.JQuery documentation [В Интернете]. - 2010 г.. - http://docs.jquery.com. 39

14.JUnit 4.x Howto [В Интернете] / авт. Simpson Blaine. - Axis Data Management Corp., 2009 г.. - http://pub.admc.com/howtos/junit4x/. 39

15.NSIS Users Manual [В Интернете] // NSIS. - 2009 г.. - http://nsis.sourceforge.net/Docs/. 39

16.Spring Framework. Reference documentation 3.0 [В Интернете]. - 2009 г.. - http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html. 39

17.Spring Security. Reference documentation 3.0.2 [В Интернете]. - 2010 г.. - http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity.html. 39

18.Version control with Subversion. [В Интернете]. - 2008 г.. - r3305. - http://svnbook.red-bean.com/en/1.5/index.html. 39

19.Приложение II. Глоссарий 40




2.Введение

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


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

2.2Цель


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

2.3Задачи


  • Выбор платформы и базы данных

  • Проектирование модульного ядра

  • Создание модулей

  • Тестирование системы

  • Документирование


3.Анализ


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

Был проанализирован типичный процесс работы над задачей:



  1. Подготовка расчетной программы

  2. Выбор начальных данных

  3. Запуск процесса моделирования

  4. Анализ сырых данных

  5. Визуализация

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



Рисунок . Пакет данных

3.1Основная терминология


  • Пакет — набор метаданных определенного шаблона, а также ассоциированные с ними вложения и данные

  • Метаданные — структурированные данные, созданные по определенному шаблону, с возможностью поиска по ним

  • Данные — множество файлов произвольной структуры, без возможности поиска

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

  • Шаблон — шаблонная структура данных, на основании которой будут заполняться метаданные

3.2Роли


В ИС были выделены 4 роли:

Администратор — управление пользователями и ролями

Расширенный пользователь — создание и модификация шаблона

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

Гость — просмотр данных, поиск по метаданным

Пользователь может одновременно иметь несколько ролей.


4.Требования к системе

4.1Функциональные требования к системе:


Спроектировать и реализовать систему, позволяющую пользователям:

  1. Создавать шаблоны

  2. Хранить и изменять как набор файлов, так и метаданные

  3. Производить поиск по метаданным

  4. Разделять права доступа к различным частям системы

  5. Создавать пользовательские представления данных

4.2Архитектурные требования к системе


  1. Масштабируемость

  2. Модульность

  3. Расширяемость

  4. Сопровождаемость

4.3Системные требования


Для работы с системой необходим браузер (Firefox 3.5, Internet Explorer 8) и канала связи с сервером, на котором развернута ИС. В качестве FTP-клиента можно использовать встроенные средства операционной системы.

Требования к серверу в основном касаются памяти: 300 МБ на жестком диске для первичного развертывания и 256 МБ оперативной памяти для запуска. В дальнейшем требования растут пропорционально объему загруженных данных и количеству пользователей. Сервер должен быть обеспечен каналом связи для обмена данными с пользователями.




5.Проектирование

5.1Среда разработки


Для разработки проекта была выбрана интегрированная среда NetBeans1 от компании Oracle (ранее Sun). Данная среда обладает богатым инструментарием для разработки веб-приложений.

5.2Репозиторий


В качестве репозитория для проекта был выбран Google Code2. Он предоставляет систему контроля ревизий Subversion3, удобный редактор документации с wiki-разметкой, багтрекер. Использование репозитория позволяет осуществлять совместную разработку командой программистов, повышает надежность хранения данных и хранит всю историю изменений кода, позволяя откатиться к любой версии. Также исходный код приложения свободно доступен по сети Internet. Современные среды разработки поддерживают интеграцию с репозиторием и предоставляют удобные инструменты для управления кодом.

5.3Лицензия


Для размещения проекта в репозитории было необходимо выбрать одну из лицензий, по которой будет распространяться исходный код приложения. В качестве таковой была выбрана Apache Software License 24. Данная лицензия является одной из самых свободных, давая пользователю право использовать программное обеспечение для любых целей, свободно распространять, изменять, и распространять изменённые копии. Еще один повод для выбора данной лицензии — большинство компонентов и модулей ИС распространяются под лицензией ASL2.

5.4Выбор платформы


В качестве базовой платформы была выбрана Java EE5. Java EE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость. Популярности Java EE также способствует то, что Sun предлагает бесплатный комплект разработки, SDK. Данная платформа построена на идеологии открытости, что позволяет подменить реализацию практически любой её части.

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

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

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

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

5.5Выбор базы данных


Первоначально планировалось использовать RDBMS PostgreSQL7. В связке с ORM библиотекой Hibernate8. Но в процессе реализации понадобилось поддерживать большое количество классов слоя доступа к данным, код оказался слишком неустойчивым (незначительные изменения в постановке задачи приводили к серьезным модификациям исходного кода). Неструктурированная природа данных плохо подходила к реляционной модели данных.

Были рассмотрены альтернативные способы хранения данных и найдено NoSQL СУБД CouchDB9, являющаяся документно-ориентированной.

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

Отличительная особенность данных СУБД в том, что данные сохраняются не в строках и колонках, а в виде документов в формате JSON, моделью которых является не таблица, а дерево. Типизация отдельных полей не поддерживается. Целостность БД обеспечивается исключительно на уровне отдельных документов, но не связей между ними. Языком выборки данных являются Map-Reduce функции, на языке JavaScript. Главным плюсом является отсутствие требований к единству записей (по аналогии с кортежами в реляционной алгебре).


5.5.1Map-Reduce


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

Ход работы состоит из двух этапов:



  1. Map — операция предварительной обработки данных, применение некоторой функции к каждому документу. Поскольку отсутствует side-effect, данный этап легко разделяется на независимые потоки. Результаты данного этапа сохраняются в B-дереве, что позволяет в дальнейшем быстро находить нужные документы. На вход поступает документ, на выходе получаются набор пар Ключ-Значение, которые передаются на следующий шаг.

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

5.6Клиент


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

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

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

5.7FTP Сервер


Доступ к данным предоставляется при помощи встроенного FTP-сервера Mina12. Данный сервер предоставляет интерфейсы для тесной интеграции с приложением на платформе Java, и может быть сконфигурирован при помощи Spring IoC. Также он запускается вместе с ИС и получает информацию о правах доступа из базы данных, что позволяет упростить управление пользователями и правами, а также сократить избыточность данных.

6.Реализация

6.1Архитектура

6.1.1Ядро системы

6.1.1.1IoC контейнер


Inversion of Control — важный принцип объектно-ориентированного программирования, используемый для уменьшения связанности в компьютерных программах. Использование данного контейнера в системе позволяет заменять модули и компоненты без необходимости пересборки всего приложения. В качестве контейнера была выбрана реализация Spring IoC.

Центральной частью Spring Framework является Inversion of Control контейнер, который предоставляет средства конфигурирования и управления объектами Java с помощью обратных вызовов. Контейнер отвечает за управление жизненным циклом объекта: создание объектов, вызов методов инициализации и конфигурирование объектов путем связывания их между собой.

Объекты, создаваемые контейнером, также называются Управляемые объекты или Beans. Обычно конфигурирование контейнера осуществляется путем загрузки XML файлов, содержащих Определение Bean’ов и предоставляющих информацию необходимую для создания bean’ов.

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





Рисунок . Последовательность работы

6.1.1.2Авторизация и аутентификация


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

6.1.2Представительский слой


Возможности, предоставляемые модулем Spring MVC, оказались слишком велики, поэтому был реализован упрощенный вариант диспетчера. Диспетчер пользовательских запросов конфигурируется при помощи бина urlMapping в applicationContext.xml. Отдельные обработчики должны реализовывать интерфейс IProcessable.

6.1.3Модель


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

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



Интерфейс

Реализация

Назначение

IAttachment

Attachments

Предоставление доступа к вложениям в пакеты

IFiles

Files

Обработка директорий при создании новых пакетов

IFilter

Filter

Поиск пакетов по критерию

IPackages

Packages

Управление пакетами

ITemplates

Templates

Управление шаблонами

IUsers

Users

Управление пользователями

IUsr

Usr

Транспортный формат данных для описания пользователя

Таблица . Интерфейсы модели



Рисунок . Модель Пользователь



Рисунок . Модель Задача



Рисунок . Модель Шаблон

6.1.4Данные


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

6.1.4.1Шаблон


{
   "_id": "_design/имя_шаблона",
   "_rev": "ревизия",
   "data": {"Шаблон незаполненных данных"},
   "desc": "Краткое описание шаблона",
   "views": [
       {
           "name": "имя представления",
           "code": "function(данные_пакета){код, возвращающий строку, преобразованную из исходных данных;}"
       }
   ]
}

Листинг . Структура шаблона


6.1.4.2Пакет


{
   "_id": "идентификатор документа",
   "_rev": "ревизия",
   "owner": "логин владельца",
   "description": "краткое описание",
   "template": "шаблон",
   "data": {"данные"},
   "_attachments": {
       "файл.вложение": {
           "content_type": "image/jpeg",
           "revpos": 2,
           "length": 103999,
           "stub": true
       }
   }
}

Листинг . Структура пакета

6.1.4.3Пользователь


{
   "_id": "идентификатор документа",
   "_rev": "ревизия",
   "login": "логин пользователя",
   "password": "пароль",
   "name": "Имя пользователя",
   "roles": [
       "admin",
       "user",
       "anonymous"
   ]
}

Листинг . Структура пользователя


6.1.4.4Системный документ


Документ _design/default содержит необходимые системные запросы:

  • filterByOwner — поиск пакетов по имени

  • filterByTemplate — список шаблонов

  • filterByUser— список пользователей

6.1.5Конфигурация ИС


В ИС имеются несколько конфигурационных файлов разного уровня.

6.1.5.1application.properties


В данном файле настраиваются параметры доступа к СУБД (адрес, порт, название базы), путь к корневой директории FTP сервера, параметры логгера. Данные параметры могут быть изменены администратором системы.

#CouchDB configuration

db.host=127.0.0.1

db.port=5984

db.name=hydrodynamics

#embedded ftp server configuration

ftp.path=d:/Stuff/Temp/ftp

Листинг . Настройка ИС

6.1.5.2applicationContext.xml


В данном файле описываются конкретные реализации интерфейсов и взаимосвязь между ними, права доступа к разделам веб-интерфейса. Данный файл конфигурации используется IoC контейнером. Всего в файле 6 разделов:

  1. Подключение файла свойств application.properties

  2. Настройка бинов, реализующих интерфейсы модели

  3. Настройка контроллеров, обрабатывающих AJAX запросы

  4. Настройка диспетчера и сопоставление строки запроса обработчику

  5. Настройка FTP сервера, чтение конфигурации из файла application.properties

  6. Настройка прав доступа к разделам веб интерфейса для Spring Security

Разработчику системы могут быть интересны разделы 2,3,4,6. Далее будет более подробно рассмотрен процесс добавления нового компонента в ИС.

6.1.5.3web.xml


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

6.1.6Расширение ИС




Рисунок . Диаграмма классов

6.1.6.1Подготовка интерфейса модели


Все интерфейсы находятся в пакете org.blazer.sdast.model. Создается интерфейс, содержащий необходимые методы, каждый метод описывается средствами JavaDoc. В интерфейсе перед методами можно задать аннотацию с правами доступа, если аннотации нет, то вызов метода будет доступен всем.

public interface IAttachments {

@Secured({"IS_AUTHENTICATED_ANONYMOUSLY"})

String getAttachment(String doc, String name);

@Secured({"ROLE_USER"})

String putAttachment(String doc, String name, String contentType, String string);

}

Листинг . Настройка доменных прав

6.1.6.2Реализация интерфейса


Создается класс, реализующий ранее созданный интерфейс. Все реализации модели находятся в пакете org.blazer.sdast.model.impl. После этого класс описывается во втором разделе файла applicationContext.xml.









Листинг . Задание реализации интерфейса
Здесь name — имя класса, по которому он будет создаваться IoC контейнером, class — имя созданного ранее класса, constructor-arg — аргументы, передающиеся в конструктор, ref — ссылка на имя другого объекта. Если объект должен быть НЕ синглтоном, то в бин нужно добавить атрибут scope="prototype".

6.1.6.3Реализация контроллера


Создается класс, реализующий единственный метод process интерфейса IProcessable, где request и response — полученные диспетчером запрос и ответ соответственно.

public String process(HttpServletRequest request, HttpServletResponse response);



Листинг . Сигнатура метода process
Все обработчики находятся в пакете org.blazer.sdast.web.

Обработчик описывается в третьем разделе файла applicationContext.xml. В большинстве случаев обработчику будет передана ссылка на объект обслуживаемой им модели.









Листинг . Описание обработчика

Также обработчик должен сам задать кодировку, поскольку ниже уровнем, в диспетчере, это не сделано по техническим причинам.

response.setContentType("text/javascript;charset=UTF-8");

Листинг . Задание кодировки

6.1.6.4Регистрация в диспетчере


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


   
       
           

           

            …
       
   


Листинг . Настройка диспетчера

6.1.6.5Создание страницы-представления


В корневой директории создается jsp – страница с пользовательским интерфейсом. Данная страница будет обмениваться AJAX-запросами с контроллером. Интерфейс и пользовательская логика создается средствами HTML и JavaScript. Имеет смысл подключить библиотеку JQuery.

6.1.6.6Настройка прав доступа


Заключительный этап — настройка доступа к представлению. Доступ настраивается в шестом разделе файла applicationContext.xml. Настройка аналогична диспетчеру: ключом является перехватываемый запрос, а значением — список ролей.

















Листинг . Права доступа

6.2Модульное тестирование


Для автоматизации тестирования ИС применяются две библиотеки JUnit13 и Mockito14. Тесты состоят из набора тестовых методов. Каждый тест состоит из трех этапов. Этап подготовки: на этом этапе подготавливаются необходимые объекты, которые будут поданы на вход тестируемому классу, часть объектов заменяется стабами (объектами имитирующими поведение некоторого реального объекта) для упрощения тестирования. Этап тестирования: на этом этапе выполняются тестируемая последовательность действий, на вход подаются созданные ранее объекты и стабы. Этап сравнения: на этом этапе анализируются полученные результаты, возвращенные результаты сравниваются с эталонами.

Среда разработки NetBeans позволяет автоматизировать выполнение тестов, и проанализировать результаты тестирования.


6.3Инсталлятор


ИС состоит из множества компонентов и для развертывания необходимо совершить строгую последовательность действий. Для написания инсталлятора использовалась бесплатное средство Nullsoft Scriptable Install System (NSIS)15.

Прежде всего, необходимо установить зависимости: платформу JDK 1.6, СУБД CouchDB 0.11, сервер приложений Tomcat 6. Затем на сервер приложений загружается архив с приложением, а в СУБД копируется дамп базы. Установочный пакет занимает 8 Мб, при этом объем зависимостей 150 Мб, поэтому было целесообразно вынести зависимости из установочного пакета.

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

После установки на рабочем столе появляется ярлык для доступа к веб-интерфейсу приложения, а в диспетчере служб16 появятся две записи Apache Couch DB для СУБД и Tomcat 6 для сервера приложений. Что позволит управлять ИС стандартными средствами Windows.


6.3.1Удаление


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

6.3.2Сборка


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

6.4Пользовательский интерфейс

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


Конструктор доступен только пользователям с ролью расширенный. В конструкторе можно создать новый или отредактировать имеющийся шаблон. Также можно задать пользовательские представления.



Рисунок . Конструктор шаблонов

6.4.1.1Элементы


В шаблоне могут находиться элементы трех типов:

Массив — установлена галочка [V]

Строка — примитивный объект, если нет подобъектов

Объект — составной объект, если имеются подобъекты

Кнопкой (+) добавляются новые элементы в соответствующий уровень, а кнопкой (Х) элементы удаляются вместе со всеми подобъектами


6.4.1.2Представления


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

). Данная функция должна вернуть HTML строку. Внутри функции доступна библиотека JQuery. Если не задано ни одного представления в режиме просмотра будет использовано представление по-умолчанию.


6.4.2Шаблоны


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



Рисунок . Список шаблонов

6.4.3Пакеты


В данном разделе приведен список пакетов со ссылками на просмотр и редактирование. Также можно отфильтровать по имени шаблона. Данный раздел доступен всем пользователям.



Рисунок . Список пакетов

6.4.4Поиск


В данном разделе можно произвести поиск по пакетам данных. Критерий поиска — выражение на языке JavaScript. Для удобства вместо doc.data.a можно заменить на $a. Поиск является неиндексированным и, поэтому, время поиска увеличивается пропорционально размеру базы. Данный раздел доступен всем пользователям.



Рисунок . Поиск по пакатем

6.4.5Пользователи


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



Рисунок . Управление пользователями

6.4.6Просмотр

6.4.6.1Представление по-умолчанию


Во всех пакетах доступно представление default, которое просто выводит иерархически все поля пакета.



Рисунок . Представление по-умолчанию

6.4.6.2Пользовательское представление


Данная функция создает следующее пользовательское представление.

function(data){

var str = ""+data.data.str+"
";

for(var i=0;i

str+=""+data.data.obj[i].var+"
";

}

return str;



}

Листинг . Код пользовательского представления


Рисунок . Пользовательское представление

6.5Пример работы с ИС

6.5.1Установка


В процессе установки необходимо будет выбрать путь для установки.



Рисунок . Выбор пути для установки

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





Рисунок . Загрузка зависимостей

6.5.2Создание пользователей


После запуска нужно создать пользователей в разделе Пользователи. Для этого нужно войти под пользователем Администратор с логином admin и паролем 1324. Пользователь Расширенный будет создавать шаблоны, а пользователь User создавать задачи. Выбор пользователя производится щелчком мыши по списку.



Рисунок . Редактор пользователей

6.5.3Создание шаблона


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

Поля добавляются кнопкой (+), удаляются (X), при наведении родительский элемент для удобства подсвечивается. Установка флажка превращает элемент в массив.





Рисунок . Конструктор

6.5.4Создание задачи


Зайдя под пользователем user в раздел шаблоны, ищем созданный шаблон и заполняем поля. Интерфейс почти полностью повторяет Конструктор. После сохранения задачи можно будет прикреплять файлы, и загружать данные на ftp сервер в папку задачи. Доступ на загрузку осуществляется по имени и паролю пользователя, создавшего задачу.



Рисунок . Редактирование задачи

6.5.5Создание представления


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

function(data){

var node = $("

");

var tbl = $("");

tbl.append($("

")

.append($("

")

.append($("

").text("измерение"))

.append($("

").text("начало"))

.append($("

").text("конец"))

.append($("

").text("шаг"))

);

for(var i=0;i

tbl.append($("

").text(data.data.dimension[i].name))

.append($("

").text(data.data.dimension[i].begin))

.append($("

").text(data.data.dimension[i].end))

.append($("

").text(data.data.dimension[i].step))

);

}



node.append(tbl);

for(var i in data._attachments){

node.append($("").attr("src","attachments.json?doc="+data._id+"&name="+i))

}

return node.html();



}

Листинг . Код пользовательского представления


Рисунок . Представление по-умолчанию и новое представление

7.Заключение

7.1Функциональные требования


В ИС реализованы были реализованы все функциональные требования: управление шаблонами, пакетами данных, пользователями, имеется возможность создать пользовательское представление.

7.2Архитектурные требования


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

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

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

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


8.Приложение I. Список литературы


9.Apache Ant 1.8.1 Manual [В Интернете]. - 2010 г.. - http://ant.apache.org/manual/.

10.Apache FTPServer documentation [В Интернете]. - 2010 г.. - http://mina.apache.org/ftpserver/documentation.html.

11.Beginning CouchDB [Книга] / авт. Lennon Joe. - [б.м.] : Apress, 2009.

12.Class Mockito [В Интернете] // mockito.org. - 2010 г.. - http://mockito.googlecode.com/svn/tags/latest/javadoc/org/mockito/Mockito.html.

13.JQuery documentation [В Интернете]. - 2010 г.. - http://docs.jquery.com.

14.JUnit 4.x Howto [В Интернете] / авт. Simpson Blaine. - Axis Data Management Corp., 2009 г.. - http://pub.admc.com/howtos/junit4x/.

15.NSIS Users Manual [В Интернете] // NSIS. - 2009 г.. - http://nsis.sourceforge.net/Docs/.

16.Spring Framework. Reference documentation 3.0 [В Интернете]. - 2009 г.. - http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html.

17.Spring Security. Reference documentation 3.0.2 [В Интернете]. - 2010 г.. - http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity.html.

18.Version control with Subversion. [В Интернете]. - 2008 г.. - r3305. - http://svnbook.red-bean.com/en/1.5/index.html.


19.Приложение II. Глоссарий


Java EE — Java Platform, Enterprise Edition

JSON — JavaScript Object Notation

NoSQL — класс СУБД, не использующих реляционную алгебру

ORM — Object-Relational Mapping, отображение объекта в базе данных

RDBMS — Relational Database Management System

SDK — System Developer Kit

Subversion — Система контроля ревизий с централизованным репозиторием

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

ИС — Информационная Система, в данном случае Хранилище Данных SDaSt

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

СУБД — Система Управления Базой Данных, в данном случае CouchDB

1 http://netbeans.org/

2 http://code.google.com/p/sdast

3 http://subversion.apache.org

4 http://www.apache.org/licenses/LICENSE-2.0

5 http://java.sun.com/javaee/

6 http://www.springsource.org/

7 http://www.postgresql.org/

8 http://www.hibernate.org/

9 http://couchdb.apache.org/

10 http://jquery.com

11 http://jqueryui.com

12 http://mina.apache.org/ftpserver/

13 http://sourceforge.net/projects/junit/

14 http://mockito.org/

15 http://nsis.sourceforge.net/Main_Page

16 services.msc из командной строки

17 http://ant.apache.org/


Похожие:

Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconДипломная работа «Построение системы хранения и управления результатами научных исследований»
Специальность 010503 «Математическое обеспечение и администрирование информационных систем»
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconБюллетень управления научных исследований эб №9 (208) 2 марта 2011 года
Участника размещения заказа (ПетрГУ) о намерении принять на работу аспиранта после окончания аспирантуры. Также можно представить...
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconДипломная работа по теме: Реализация Интеллектуальной обучающей системы (учебное действие) Студента 524 группы
Дипломная работа выполнена на спецсеминаре «Обучающие системы» в рамках проекта «Интеллектуальное компьютерное место учащегося»....
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconДипломная работа студента 541 группы Минина Ивана Сергеевича «Допустить к защите» Заведующий кафедрой
Дипломная работа содержит описание системы реального времени автоматического определения и отслеживания целей по сигналу (морского)...
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconРабочая программа дисциплина гсэ. Р. 02 Методы научных исследований направление 654600 Информатика и вычислительная техника
Специальность 230102 – Автоматизированные системы обработки информации и управления
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconИспользование автоматизированной системы научных исследований в научных и лабораторных условиях

Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconПрограмма : 14 Вычислительная физика и автоматизированные системы научных исследований Руководитель программы: проф. С. Л. Яковлев
Программа: 14 Вычислительная физика и автоматизированные системы научных исследований
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconДипломная работа магистранта II курса Мамзерова Дмитрия Владимировича
Мамзеров Д. В., навигация и интерфейс в средах виртуальной реальности, дипломная работа
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconЭлектронная библиотека научных информационных ресурсов Карнц ран
Ц ран предназначена для формирования, хранения и многоцелевого использования коллекций электронных научных информационных ресурсов,...
Дипломная работа «Построение системы хранения и управления результатами научных исследований» iconПостроение информационно открытого общества: информационные системы для взаимодействия промышленности и власти
Ма управления особенно на региональном уровне. Это позволит решить проблемы качества управления, декриминализации государственного...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org