Материал: Проектирование и разработка информационно-поисковой системы

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

Проектирование и разработка информационно-поисковой системы

Содержание

 

1. Введение

Постановка задачи

Обзор возможных решений

Используемые инструменты и технологии

Проектирование базы данных

Проектирование бизнес-логики

Разработка системы

Разработка с использованием Spring MVC

The DispatcherServlet

Конфигурация приложения

Определение контроллера

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

Создание формы

Создание структуры проекта

Подключение сервера приложений Glassfish

Контроллер и представление

Вывод

2. Разработка системы с использованием технологий Spring web flow, jsf

Проектирование пакетов

Разработка на Spring Web Flow

Получение информации

Вывод данных в представление

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

Вывод

Заключение

Список использованной литературы

Приложения

1. Введение

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

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

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

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

 

Постановка задачи


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

Исходные данные: журналы в формате doc, выпуски в формате docx, видео в формате avi, звуковые файлы в формате wav.

Так как у исходных данных нет строгой структуры, и эти форматы не соответствуют строгой структуре таблиц и отношений в моделях реляционных баз данных, нельзя использовать алгоритмы поиска структурированных данных. В данной задаче вся информация будет располагаться на сетевом хранилище NAS (Network Attached Storage), а вся метаинформация о каждом файле будет находиться в базе данных. Благодаря такому подходу становится возможным оперирование данными, хранящимися в различных форматах без четкой структуры.

Для этих целей необходимо спроектировать и реализовать информационную систему, отвечающая следующим требованиям:

·        Функциональные

o   Возможность добавлять новую информацию в архив

o   Возможность редактирования существующей информации

§  Переименование

§  Изменение метаданных

o   Осуществление поиска по метаданным

o   Отображение данных

o   Понятный интерфейс для пользователей

·        Инструментальные

o   Реализации на платформе java с использованием фреймворков Spring web flow, prime-faces, spring web mvc.

o   Использование Spring security для аутентификации и обеспечения безопасности данных.

o   Использование сервера приложений Glassfish

o   Использование в качестве СУБД - Mysql

Обзор возможных решений


Решить поставленную задачу можно следующими способами:

.        Использование стандартного подхода Java2EE к созданию web-приложений с помощью EJB (Enterprise Java Beans).

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

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

2.      Использование популярного фреймворка Spring

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

Многослойная архитектура Spring позволяет использовать любую свою часть отдельно от другой, несмотря на это его внутренняя архитектура согласована.

2.1    Использование стандартного Spring mvc

Плюсы: скорость обучения, скорость разработки

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

2.2    Использование технологии Spring web flow, prime-faces, spring web mvc

Плюсы: Возможность решить любые задачи бизнес логики, возможность использования JSF (JavaServer Faces).

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

Минусы: сложность обучения.

В данной работе я рассмотрю 2 варианта разработки такой системы.

.        С использованием стандартного Spring mvc

2.      С использованием технологий Spring web flow, spring web mvc, jsf.

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

 

Используемые инструменты и технологии


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

1.      Intellij idea - IDE для разработки приложений на Java.

2.      Apache Glassfish - сервер приложений.

.        Mysql - СУБД для хранения данных системы.

4.      Mysql workbench - утилита для проектирования базы данных.

5.      Visual Use case - утилита для проектирования системы.

Используемые языки:

.        Java - объектно-ориентированный язык программирования.

2.      HTML (HyperText Markup Language) - язык гипертекстовой разметки документов, используемый во Всемирной паутине (WWW). 


3.      CSS (Cascade Style Sheet) - язык для описания 
внешнего стиля документа.

4.      JavaScript - прототипно-ориентированный сценарный язык программирования, используемый на стороне клиента веб-приложения.

 

Проектирование базы данных


Для визуального проектирования базы данных была взята утилита Mysql Workbench.

MySQL Workbench упрощает разработку и обслуживание баз данных, позволяет автоматизировать отнимающих много времени и подверженных ошибкам задач, а также улучшает коммуникацию между DBA (Администратор базы данных) и разработчиков команд. Это позволяет архитекторам данных визуализировать требования, общаться с заинтересованными сторонами, и решать вопросы проектирования. Она позволяет на основе моделей проектировать базы данных, которые являются наиболее эффективной методикой для создания достоверных и быстрых баз данных, обеспечивая при этом гибкость для удовлетворения меняющихся потребностей бизнеса. Модель и схема валидации данных обеспечивает соблюдение всех стандартов для моделирования данных, а также обеспечивает соблюдение всех MySQL стандартов физического проектирования, что исключает возникновение ошибок при создании новых диаграмм ER или формирования физических баз данных MySQL.

Для визуализации проектирования базы данных используем ER - диаграмму (Рис. 1):

информационная поисковая система программирование

Рис. 1. ER-диаграмма

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

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

 

Проектирование бизнес-логики


Для проектирования системы была использована программа Visual Use Cases, которая позволяет строить user stories, use cases и диаграммы, так же есть возможность работать в команде (Рис. 2).

Рис. 2. Интерфейс программы Visual Use Case

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

Первым этапом проектирования бизнес-логики является написание пользовательских историй, которые в последствии будут перенесены в Use case, а затем по ним будет составлена диаграмма вариантов использования (use case). Для реализации "скелета" необходимо реализовать следующие сценарии использования (use case):

1.      Регистрация

2.      Загрузка информации в базу

.        Доступ к ресурсам

.        Поиск материала по базе

.        Чат

6.      Форма для подачи заявки на мониторинг

.        Оплата за предоставленные услуги (мониторинг)

8.      Расширение аккаунта до PRO версии

По данным сценариям необходимо создать диаграмму вариантов использования (Рис. 3).

Рис. 3. Диаграмма вариантов использования (use case)

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

Разработка системы


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

 

Разработка с использованием Spring MVC


MVC Framework Spring Web обеспечивает архитектуру представление-модель - контроллер и готовые компоненты, которые могут быть использованы для разработки гибких и слабо связанных веб-приложений. Шаблон MVC приводит к разделению различных аспектов применения (входная логика, бизнес-логика), обеспечивая при этом слабую связь между этими элементами.

Model инкапсулирует данные приложения, которые будут состоять из POJO (Plain Old Java Object).

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

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

 

The DispatcherServlet


Spring Web model-view-controller работает с помощью DispatcherServlet, который обрабатывает все HTTP-запросы и HTTP-ответы. Обработка запроса рабочего процесса в Spring Web MVC DispatcherServlet показана на следующей диаграмме (Рис. 4):

Рис. 4. DispatcherServlet

Ниже приводится последовательность событий для входящего запроса HTTP к DispatcherServlet:

·        После получения HTTP запроса DispatcherServlet вызывает соответствующий контроллер с помощью HandlerMapping.

·        Контроллер принимает запрос и вызывает соответствующие методы сервисов на основе используемого метода GET или POST. Метод сервиса устанавливает данные модели, основанные на определенной бизнес-логике и возвращает имя представления в DispatcherServlet.

·        DispatcherServlet с помощью ViewResolver обрабатывает определенное представление в зависимости от метода запроса.

·        После того как просмотр завершен, DispatcherServlet передает данные модели представления, которая, наконец, отображает его в браузере.

Все указанные выше компоненты, т.е. HandlerMapping, Controller и ViewResolver являются частями WebApplicationContext, которая является продолжением обычной ApplicationContext с некоторыми дополнительными функциями, необходимыми для веб-приложений.

 


Конфигурация приложения


Сперва нам необходимо отобразить запросы, которые должен обрабатывать DispatcherServlet, используя отображение URL в файле web. xml (Рис.5).

Рис. 5. Настройка web. Xml

 

При инициализации appServlet DispatcherServlet фреймворк будет пытаться загрузить контекст приложения из файла с именем [имя сервлета] - servlet. xml, который находится в каталоге webapp / WEB-INF приложения. В этом случае наш файл будет servlet-context. xml (Рис.6).

Рис. 6. Servlet-context. xml

 

Далее тег <servlet-mapping> указывает на URL-адреса, которые будут обрабатываться посредством DispatcherServlet. Здесь все запросы HTTP, будут обрабатываться appServlet DispatcherServlet.

Источник: https://www.bibliofond.ru/view.aspx?id=897033