Дипломная работа: Индексации хранилища текстов на основе естественно-языковой адресации

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

11. Получение информации о корпусе

Акторы: Клиент (Другие приложение).

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

Основной поток:

1. Клиент выполняет вызов функции для получения информации о корпусе.

2. Сервис отправляет запрос в реляционную СУБД для получения информации о корпусе и отправляет её клиенту (Е1).

Альтернативные потоки:

E1: Если такой корпус не найден, возвращается пустая ссылка.

12. Получение информации о документе

Акторы: Клиент (Другие приложение).

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

Основной поток:

1. Клиент выполняет вызов функции для получения информации о документе.

2. Сервис отправляет запрос в реляционную и документо-ориентированную СУБД для получения информации о документе и отправляет её клиенту (Е1).

Альтернативные потоки:

E1: Если такой документ не найден, возвращается пустая ссылка.

13. Поиск документа

Акторы: Клиент (Другие приложение).

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

Основной поток:

1. Клиент выполняет вызов функции для поиска документов по названию.

2. Сервис отправляет запрос в реляционную СУБД для поиска документов и отправляет их клиенту (Е1).

Альтернативные потоки:

E1: Если такие документы не найдены, возвращается пустой массив.

14. Поиск документов по ключевым словам

Акторы: Клиент (Другие приложение).

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

Основной поток:

1. Клиент выполняет вызов функции для поиска документов по ключевым словам.

2. Сервис выполняет поиск по специальной структуре индексов для получения идентификаторов подходящих документов, затем выполняется запрос в реляционную и документо-ориентированной СУБД для получения полной информации о документе (Е1).

Альтернативные потоки:

E1: Если такие документы не найдены, возвращается пустой массив.

Приложение Б. Технико-экономическое обоснование

ИНДЕКСАЦИИ ХРАНИЛИЩА ТЕКСТОВ НА ОСНОВЕ ЕСТЕСТВЕННО-ЯЗЫКОВОЙ АДРЕСАЦИИ

Технико-экономическое обоснование

Листов 4

Руководитель разработки

к.ф.-м.н, доцент кафедры информационных технологий в бизнесе.

___________ Лядова Л.Н.

“_____”____________2018

Ответственный исполнитель

Студентка 4-ого курса группы ПИ-14-1

факультета экономики, менеджмента и бизнес-информатики

____________Симонова Н.А.

“_____”____________2018

2018

1. Расчет стоимости разработки и поддержки сервиса

Итоговая стоимость реализации сервиса, в которую включена стоимость анализа требований, проектирования, разработки, тестирования и публикации сервиса, представлена в таблице B.1 и составляет 40 486 руб. В качестве стоимости часа взята средняя стоимость для рынка города Перми в 2017 году.

Расчет стоимости проводился по методологии Work Breakdown Structure (WBS) или иерархическая структура работ, которая подразумевает последовательную декомпозицию работ, пока необходимое количество часов на разработку не будет очевидным.

Таблица B.1. Расчет стоимости разработки

Работа

Количество часов

Профессиональный стандарт

Стоимость часа

Итоговая стоимость (руб.)

1. Проанализировать:

18

4407

1.1. Существующие технологии хранения больших массивов текстовой информации.

5

Системный аналитик

250

1250

1.2. Протоколы передачи.

2

Системный аналитик

250

500

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

8

Системный аналитик

250

2000

1.4. Разработать техническое задание.

3

Технический писатель

219

657

2. Произвести моделирование web-сервиса для хранения корпусов:

14

5625

2.1. Произвести моделирование вариантов использования с помощью диаграммы прецедентов.

3

Специалист по информационным системам

375

1125

2.2. Произвести моделирование предметной области с помощью диаграммы классов.

8

Специалист по информационным системам

375

3000

2.3. Произвести моделирование архитектуры системы с помощью диаграммы компонентов.

3

Архитектор программного обеспечения

500

1500

3. Реализовать web-сервис:

95

30454

3.1. Реализовать CRUD-функции для корпусов.

39

14625

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

3

Программист

375

1125

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

3

Программист

375

1125

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

3

Программист

375

1125

3.1.4. Реализовать добавление документов.

7

Программист

375

2625

3.1.5. Реализовать удаление документов.

7

Программист

375

2625

3.1.6. Реализовать изменение документов.

7

Программист

375

2625

3.1.10. Реализовать добавление пользователей.

3

Программист

375

1125

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

3

Программист

375

1125

3.1.12. Реализовать изменение пользователей.

3

Программист

375

1125

3.2. Реализовать индексацию на основе естественно-языковой адресации.

20

8500

3.2.1. Разработать структуру для хранения индексов.

8

Архитектор программного обеспечения

500

4000

3.2.2. Реализовать функции для работы со структурой.

8

Программист

375

3000

3.2.3. Реализовать изменение структуры.

4

Программист

375

1500

3.3. Опубликовать созданный сервис.

3

Программист

375

1125

3.4. Произвести функциональное и интеграционное тестирование.

33

6204

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

2

Специалист по тестированию в области информационных технологий

188

376

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

2

Специалист по тестированию в области информационных технологий

188

376

3.4.3. Протестировать изменение корпусов.

2

Специалист по тестированию в области информационных технологий

188

376

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

4

Специалист по тестированию в области информационных технологий

188

752

3.4.5. Протестировать удаление документов.

4

Специалист по тестированию в области информационных технологий

188

752

3.4.6. Протестировать изменение документов.

4

Специалист по тестированию в области информационных технологий

188

752

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

3

Специалист по тестированию в области информационных технологий

188

564

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

3

Специалист по тестированию в области информационных технологий

188

564

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

3

Специалист по тестированию в области информационных технологий

188

564

3.4.10. Протестировать добавление пользователей.

2

Специалист по тестированию в области информационных технологий

188

376

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

2

Специалист по тестированию в области информационных технологий

188

376

3.4.12. Протестировать изменение пользователей.

2

Специалист по тестированию в области информационных технологий

188

376

ИТОГО:

127

40 486

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

Проект является некоммерческим, поэтому расчет срока окупаемости не производится.

2. Обоснование выбранных технологий

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

1. С# в качестве языка программирования, так как он поддерживает объектно-ориентированные технологии и является высокоуровневым, постоянно развивающимся языком.

2. Visual Studio 2015, так как данная IDE поддерживает C#, является удобным инструментом разработки кода (имеет встроенные возможности рефакторинга, навигации по коду, исправлений и отладки), а также имеет встроенную поддержку интеграции с сервисами Azure и является бесплатной.

3. Windows Communication Foundation, так как в отличие от обычного сервиса, WCF позволяет иметь несколько точек доступа, поддерживает сессии на уровне сервиса, а не метода, позволяет использовать различные протоколы и предоставляет некоторые другие расширенные возможности.

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

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

6. Cosmos DB в качестве СУБД для хранения документов, так как данная СУБД уже является сервисом, не требует сложных настроек, поддерживает различные языки, хоть и предоставляется только по подписке.

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

Приложение В. Руководство программиста

1. Назначение и условия применения программ

1.1. Назначение системы

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

1.2. Функции, выполняемые системой

Сервис обеспечивает возможность выполнения перечисленных ниже функций:

1. Создание/удаление/изменение корпусов текстов.

2. Добавление/удаление/изменение документов в корпусы.

3. Добавление/удаление/изменение аннотаций к текстам.

4. Добавление/удаление/изменение других представлений текстов.

5. Добавление информации о пользователе (регистрация пользователя).

6. Удаление/изменение информации о пользователе.

7. Поиск документа в базе.

8. Поиск фрагмента документа по тексту документов.

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

Требования к составу и параметрам технических средств не предъявляются, так как сервис расположен на серверах Azure.

1.4. Требования к программному обеспечению

Для работы над программой необходима среда разработки Visual Studio 2013 или выше. Для работы программы с облачными базами данных Azure необходима подписка Azure.

2. Характеристика программы

2.1. Характеристика используемых средств

Исходные коды программы реализованы на языке C#. В качестве интегрированной среды разработки программы использована среда Visual Studio 2017.

Программа использует SQL Azure для хранения реляционных данных. Обращение к БД происходит с помощью Entity Framework и LINQ.

Программа использует Azure Cosmos DB для хранения нереляционных данных. Обращение к БД происходит с помощью API и LINQ.

2.2. Структура программы

Архитектуры системы создана представленная на диаграмме компонентов (рис. C.1).

Рисунок C.1. Диаграмма компонентов сервиса-хранилища

CorporaStorageServise.svc - компонент реализации сервиса, который использует библиотеку с контрактом сервиса (CorporaStorageServiseContract.dll), то есть с описанием его интерфейса, а также общую библиотеку (CommonLibrary.dll), в которую войдут все необходимые для реализации стандартов взаимодействия классы.

Для хранения реляционных данных будет использоваться также располагаемая на сервисах Azure база данных SQL Azure (RelationDatabase.svc), предоставляемая как сервис. DocumentDatabase.svc - Cosmos DB, нереляционная база данных как сервис для хранения документов. Также используется сторонняя реализация стеммера по алгоритму стемминга Портера (Stemmer.dll).

2.3. Структура баз данных

Информация о пользователях и корпусах содержится в реляционной СУБД (рис. C.2), а также ключи нереляционной части хранящихся документов в корпусах (DocumentId), названия документов и оригинальный файл.

Рисунок C.2. Схема реляционной базы данных

Работа с реляционной базой данной осуществляется с помощью Entity Framework, ниже представлена получившаяся модель (рис. C.3).

Рисунок C.3. Entity Designer Diagram

В документо-ориентированной базе данных хранится информация о документах. Так как документы в документо-ориентированных СУБД не имеют четкой структуры, была определена примерная схема информации, которая будет храниться в формате JSON (рис. C.4).

Рисунок C.4. Примерная структура документа в документо-ориентированной базе данных

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

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

Классы для работы с индексацией (рис. С.5) на основе естественно-языковой адресации включают в себя классы структуры индексов: NLAStructure и NLAHeadDocument, которые включают в себя словарь ссылок на класс IndexStructureObject.

Рисунок С.5. Диаграмма классов для работы с индексацией

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

2.4. Временные характеристики

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

3. Обращение к программе

Обращение к программе происходит путем вызова методов WCF-сервиса, определенных в контракте, одним из следующих способов:

1. Добавление ссылки на службу в проект Visual Studio.

2. Использование класса ChannelFactory и предоставляемой библиотеки с контрактом класса.

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

1. https://docs.microsoft.com/ru-ru/dotnet/framework/wcf/how-to-create-a-wcf-client (Практическое руководство. Создание клиента Windows Communication Foundation)

2. https://msdn.microsoft.com/en_us/library/system.servicemodel.channelfactory.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2

(ChannelFactory Class, Microsoft Developer Network)

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

Источник: https://otherreferats.allbest.ru/download/1017960/