Серверная программа, Инструменты разработки - Визуализация графа цитирования
Серверная программа - это веб-сервер, необходимый для получения и хранения графов. Сервер может создавать графы цитрования из библиотеки IEEE Xplore Digital Library [26], манипулировать ими и общаться с клиенткой программой.
Инструменты разработки
Сервер написан на языке Java версии 1.8 с использованием системы сборки Maven [27], библиотек и фреймворков Spring Boot [28], Spring MVC [29], Spring Data JPA [30], Jsoup [31] и Apache HttpComponents Client [32]. Также использовалась система управления базами данных PostgreSQL [33].
Основой приложения является универсальный фреймворк Spring Famework. Он состоит из множества компонент, работающих в единой экосистеме. Эти модули реализуют такие функции как Dependency Injection, управление транзакциями, систему авторизации и. т. д. Далее будут описаны детально модули, использующиеся в данном веб-сервере.
Обычно приложения, написанные с использованием Spring, являются Java веб-приложениями, работающими в каком-либо контейнере сервлетов, например, в Apache Tomcat. Однако для этого требуется установка и настройка самого контейнера, а также зачастую однотипная начальная настройка приложения, что является, по большому счету, излишними накладными расходами. В связи с этим был разработан Spring Boot, содержащий в себе уже настроенные встроенный контейнер сервлетов и компоненты Spring. По умолчанию контейнером является Apache Tomcat, однако его можно поменять на Jetty или Undertow. В данном проекте используется сервер по умолчанию. Также есть возможность выбора подключаемых модулей, через систему сборки Maven.
Тем самым Spring Boot приложение упаковывается (по умолчанию) не в war файл, который может запустить только контейнер сервлетов, а в jar файл, который запустится одинаково на любом компьютере, где есть Java необходимой версии.
Для работы с HTTP запросами используется компонент Spring MVC. Он позволяет обрабатывать и отвечать на запросы, добавляя такую функциональность, как гибкую систему маршрутизации URL путей, автоматическая сборка объектов из параметров запросов, конвертация ответа из объекта в JSON и т. д. За обработку отвечают классы, называемые "контроллерами". Контроллеры пишутся с максимально меньшим включением в них логики, которая выносится в классы, называемые "сервисами" и вызываемые контроллерами.
Сервисы содержат и инкапсулируют в себе всю бизнес логику приложения. На каждую операцию, которую пользователь захочет произвести пользователь с системой как правило должен быть специальный метод в каком-либо сервисе. Если метод сервиса обращается к базе данных, то весь метод оборачивается в транзакцию. Компонент Spring Data JPA позволяет это сделать просто пометив метод специальной Java аннотацией, в случае если подключение к базе данных происходить через JPA [34] (Java Persistence API).
Spring Data JPA значительно упрощает работу с базой данных через интерфейс JPA. JPA - Java API предоставляющий интерфейсы для сохранения объектов (сущностей) в базе данных (предполагается, что в реляционной) и загрузки данных из базы обратно в объекты. В данном проекте используется одна из самых популярных реализаций JPA - Hibernate. Все обращения к базе (базам) данных как правило реализуются в классах-репозиториях Репозитории - это классы, которые инкапсулируют обращение к базе данных без какой-либо дополнительной логики. Как правило на одну сущность пишется один класс-репозиторий.. Spring JPA позволяет создавать интерфейсы-репозитории не реализуя их. Все, что необходимо сделать - это создать интерфейс, наследующийся от интерфейса Repository и далее подключить его в сервисе с помощью Dependency Injection, которое поставляет ядро Spring Framework.
В данном проекте в качестве базы данных используется PostgreSQL. PostgreSQL работает, как отдельное приложение, к которому можно подключиться из Java кода. Подключение происходит через JDBC драйвер при помощи вышеупомянутого Hibernate. После подключения Hibernate валидирует схему и создает недостающие таблицы и столбцы.
Похожие статьи
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
Клиентская программа, Инструменты разработки - Визуализация графа цитирования
Клиентская программа - является основной частью программы, так как она реализует все алгоритмы, описанные в главе 2 данного документа. Несмотря на то,...
-
Существующие решения - Визуализация графа цитирования
На данный момент не было найдено решений, которые полностью бы удовлетворяли всем требованиям, однако существуют те, которые реализуют их не все и/или не...
-
Стек технологий При выборе стека технологий основное внимание уделялось следующим факторам, в порядке убывания значимости: § Кроссплатформенность; §...
-
Интегрированная среда разработки Delphi - Приемы программирования в Delphi
Delphi - это потомок среды программирования TurboPascal. Название среды произошло от названия города в Древней Греции, где находился знаменитый...
-
Приложение разрабатывается в соответствии с паттерном проектирования Model-View-Presenter (MVP), который является производным от Model-View-Controller...
-
Для перехода к описанию выбора средств разработки, необходимо выделить этапы работы программы. Алгоритм работы программы представлен ниже: Пользователь...
-
Визуализация кластерной структуры. Bubble Sets - Визуализация графа цитирования
Для визуализации кластерной структуры был выбран алгоритм Bubble Sets [18]. Это гибкий алгоритм, относящийся к оверлеям, основанным на областях...
-
Улучшения классических силовых алгоритмов - Визуализация графа цитирования
Первым улучшением является добавление псевдо-гравитационной силы [11]. Эта сила притягивает все вершины к центру рабочей области. Обычно она линейна...
-
Силовые алгоритмы расположения вершин на плоскости - Визуализация графа цитирования
Классический подход к решению таких задач это использовать алгоритм из семейства силовых. Основная идея таких алгоритмов - это рассматривать графы как...
-
Введение - Разработка программы для реализации редактора временных графов синхронизации
Математическое моделирование дискретно-событийных динамических систем является относительно молодым направлением науки теории управления. Разработка...
-
Постановка задачи - Визуализация графа цитирования
В качестве результата выпускной квалификационной работы требуется создать программу, позволяющую визуализировать граф цитирования публикаций, которые...
-
Перед написанием основных алгоритмов были разработаны модули-классы, отвечающие за геометрические примитивы. Так как визуализация производится в...
-
В этой главе представлено описание инструментов и методов, использованных при написании кода программы. Инструменты разработки серверной части Для...
-
В качестве технологии проектирования и языка программирования были выбраны. NET Framework и C#, а также eXpressAppFramework. Язык C# и связанную с ним...
-
Выбор мобильной платформы и изучение инструментов разработки - Исследование алгоритмов
Практическая реализация алгоритмов, представленных в предыдущих пунктах, предполагает: 1) Выбор мобильной платформы; 2) Изучение соответствующей среды...
-
Можно выделить три основных метода разработки программного обеспечения: 1. Конструкторы программ (Аlgoritm2, Devel Studio, MnCreator, Game Maker и др.)....
-
Работа программы представлена на рисунке 2.3 Рис. 2.3 Кодирование и тестирование программы Программа кодировалась на языке Си++, используя библотеку Qt5x...
-
Помимо этапа разработки ПО, также немаловажным являются этапы накопления и передачи знаний, а также взаимодействия членов проектной команды. На...
-
Автоматическое расположение вершин на плоскости - Визуализация графа цитирования
Первая проблема, о которой стоит поговорить - это проблема автоматического расположения вершин на плоскости. Для начала поставим базовую задачу, как она...
-
Реализация визуализации анимации алгоритма - Визуализация графа цитирования
При работе алгоритма расположения вершин графа необходимо анимировать изменения графа в режиме реального времени. Для этого используется специальная...
-
Визуализация кластерной структуры - Визуализация графа цитирования
Следующей задачей, после расстановки вершин на плоскости, должна быть решена задача визуализации кластерной структуры. В данном разделе мы рассмотрим...
-
Силовые алгоритмы для иерархически-кластеризованных графов - Визуализация графа цитирования
На данный момент мы рассмотрели алгоритм для отрисовки некластеризованных графов и их улучшения. Теперь необходимо изучить подходы, которые используются...
-
Введение - Визуализация графа цитирования
В данной работе рассматриваются методы автоматической и полуавтоматической визуализации графов цитирования на плоскости. Визуализация графов на плоскости...
-
Заключение - Разработка программы для реализации редактора временных графов синхронизации
Результатом выполнения задания является реализованный редактор временных графов синхронизации (класс временных сетей Петри), соответствующий задачам,...
-
Проектирование модели - Разработка программного приложения "Калькулятор коммунальных услуг"
При проектировании информационных систем предметная область отображается моделями данных нескольких уровней. Число используемых уровней зависит от...
-
При создании проекта нужно указать его свойства: Application Name (название приложения), Project location (расположение проекта на диске), Min SDK...
-
Выбор средств реализации информационной системы Названные в параграфе 1.4. настоящей работы задачи могут быть решены тремя типами средств автоматизации:...
-
Разработка с "нуля", Выбор метода разработки - Различные виды программ для Multi-Touch столов
Разработка приложения на каком-либо языке с нуля достаточно трудоемкий процесс, так как в случае создания интерфейсов понадобиться множество времени для...
-
В данной части работы будет рассмотрено моделирование спроектированного ранее бизнес-процесса. Выбор инструмента моделирования бизнес-процессов Сейчас на...
-
Описание средств разработки, Разработка приложения, Описание программы - Разработка компьютерных игр
При реализации поставленной задачи были освоены компоненты графического движка Unity 3d. 1) Интерфейс графического движка Unity 3D, необходимого для...
-
Дальнейшим развитием локальных средств разработки программ, являются интегрированные программные среды разработчиков. Основное назначение инструментария...
-
Инструменты разработки - Разработка программного приложения "Калькулятор коммунальных услуг"
Инструментами разработки для программного приложения будут являться: - визуальная среда проектирования Microsoft Visual Studio 2008; - Microsoft...
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
Canvas - Визуализация графа цитирования
Визуализация в браузере производилась с помощью элемента <canvas> представленного в HTML5 и соответствующего JavaScript Canvas API. Элемент canvas...
-
Сравнение аналогов - Разработка программы для реализации редактора временных графов синхронизации
Поскольку конечной целью работы был редактор сетей Петри, интегрированный с внешней библиотекой алгебраических вычислений, было рациональным рассмотреть...
-
Множество D с двумя заданными на нем операциями (плюс) и (умножение) называется диоидом, если выполнены следующие аксиомы: § Ассоциативность. §...
-
Автоматическая расстановка вершин на плоскости Для автоматической расстановки вершин использовался алгоритм основанный на работах Eades [9],...
-
Сеть Петри это двудольный направленный граф с маркировкой, ребра которого задают причинно-следственные отношения "события-условия" и именуются дугами....
Серверная программа, Инструменты разработки - Визуализация графа цитирования