Оглавление 2
Введение 3
Постановка задачи 5
Лицензирование программного обеспечения 8
Глава 1. Архитектура разрабатываемого программного комплекса и инструменты разработки 12
1.1 Архитектура программного комплекса 12
1.2 Поисковый сервер ElasticSearch 14
1.3 Система управления базами данных Apache CoachDB 15
1.4 Система управления сборкой проекта Apache Maven 15
1.5 Компоненты комплекса OpenStack 16
1.6 Модульная структура приложения 18
Глава 2. Программная реализация поставленной задачи 20
2.1 Задачи размещения файлов 20
2.2 Задачи аутентификации и авторизации 25
Тестирование программного комплекса 29
Выводы 31
Заключение 33
Список используемой литературы 34
Приложение 35
Приложение 1. Диаграммы классов модели хранилища 35
Приложение 2. Листинг — Сервис ObjectWarehouserService 36
В настоящее время происходит переход от традиционного хранения данных к цифровому — информация сегодня хранится, зачастую, не в традиционном виде, а в цифровом виде. В семидесятых годах двадцатого века впервые были предложены концепции проектов, реализующих модель приложений, при которых обработка информации осуществлялась бы не на компьютере пользователя, а на удалённых серверах. Отсутствие в то время глобальной сети Интернет делало почти невозможным реализацию подобного рода концепций.
Сейчас же такая «облачная» модель обработки данных является перспективной и быстроразвивающейся. Облачной моделью хранения данных называется модель онлайн-хранилища данных. В ней данные хранятся в распределённой системе на основе множества серверов, связанных общей сетью. Данная модель хранения имеет множество преимуществ, таких как:
1. Доступ может предоставляться любому устройству, имеющему подключение к сети Интернет.
2. Сохранность данных в случае сбоя, отказоустойчивость.
3. Неограниченная масштабируемость.
Зачастую, процесс обучения тесно связан с изучением дополнительных материалов текстового вида (статьи, книги, учебные пособия и т. д.). В настоящее время большая часть этих материалов хранится в электронном виде. Кроме того, число разного рода документов, книг и прочих полезных источников данных неуклонно растёт. К сожалению, почти все источники, в данный момент, не имеют централизованности и упорядоченности в хранении, а значит, работа с ними неудобна. Возникает проблема хранения большого объёма разнородных информационных ресурсов, являющих собой файлы, содержащие текстовые данные.
На фоне этого актуальна задача разработки программного комплекса, решающего проблему хранения и извлечения необходимой информации.
В процессе решения этой задачи необходимо провести анализ современных технологий хранения данных и разрешить следующие вопросы: выбор метода хранения файлов, проектирование и реализация программного комплекса, соответствующего требованиям.
Таким образом, целью данной научно-исследовательской работы является проектирование и последующая разработка системы, реализующей функции хранения данных, содержащих данные в виде текста.
Целью настоящей выпускной квалификационной работы являлось проектирование и последующая разработка модулей программного комплекса, предназначенного для хранения и анализа текстовых документов, с целью расширения имеющегося функционала разрабатываемого прототипа. Выполнение данной работы предполагало реализацию модулей хранения данных и аутентификации/авторизации в системе.
В ходе работы был произведён анализ предметной области, спроектирован и реализован модуль, ответственный за функции размещения файлов на сервере, а также частично реализован модуль аутентификации и авторизации системы, с использованием языка программирования Java.
Разрабатываемый программный комплекс создаётся с использованием свободно распространяемых средств разработки и библиотек. Используемые средства разработки делают и серверную и клиентскую часть платформонезависимыми.
В дальнейшем планируется продолжение разработки данного программного продукта, окончательная реализация требуемых модулей, а также развёртывание готовой системы на базе РЦ «ВЦ СПбГУ». Кроме доработки разрабатываемых модулей, в дальнейшем, программный комплекс может быть снабжён рядом дополнительных функций, таких как просмотр хранимых в системе документов прямо в окне браузера.
Готовый программный продукт помимо основного способа применения может быть использован и в других областях деятельности, например, в таких востребованных и перспективных областях, как machine learning и data mining.
1. Кападиа Амар, Варма Средхар, Раджана Крис Реализация облачного хранилища с Openstack Swift. Packt Publishing, 2014. 140 с.
2. Ротон Дж. Знакомство с OpenStack : Storage-компоненты Swift и Cinder • https://www.ibm.com/developerworks/ru/library/cl-openstack-swift- cinder/
3. Free Software Foundation, Inc. Стандартная общественная лицензия GNU 3.0 - Проект GNU - Фонд свободного программного обеспечения • http: //www.gnu.org/copyleft/gpl .html
4. Stallman M.R. Various Licenses and Comments about Them - http://www.gnu. org/licenses/license-list.html
5. The Apache Software Foundation. Apache jclouds® :: User Guides - https: //j clouds .apache.org/guides/
6. The Apache Software Foundation. Apache License v2.0 and GPL Compatibility - http://www.apache.org/licenses/GPL-compatibility.html
7. The Apache Software Foundation. Maven - Introduction to the Build Lifecycle - https://maven.apache.org/guides/introduction/introduction-to- the-lifecycle.html
8. The OpenStack Foundation. OpenStack Docs: Current - http: //docs. openstack. org/index.html