Стр. 49

Одинченко Р.А.
ОСОБЕННОСТИ РЕАЛИЗАЦИИ REST API К БАЗЕ ДАННЫХ В СОСТАВЕ ИНФОРМАЦИОННО- СПРАВОЧНОЙ СИСТЕМЫ ИНТЕРАКТИВНОГО РАСПИСАНИЯ АКАДЕМИИ

УДК 519.688

Р.А. Одинченко

студент факультета таможенного дела (прикладная информатика) Ростовского филиала Российской таможенной академии

e-mail: zenosen@gmail.com

Научный руководитель –Е.В. Алымова, к.т.н., доцент кафедры Информатики и информационных таможенных технологий Ростовского филиала Российской таможенной академии

e-mail: langnbsp@gmail.com

Введение

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

Информационно-справочные системы (ИИС) предназначены для хранения, систематизации и представления информации в ответ на запрос пользователя. Главными характеристиками ИИС являются возможность эффективного хранения больших объемов информации, категоризация данных, быстрота поиска информации, удобный и понятный интерфейс пользователя [2].

База данных (БД) – это центральный компонент ИИС. Эффективность работы пользователя с информацией напрямую зависит от того, насколько эффективно разработаны интерфейсы к БД, а также насколько хорошо эти интерфейсы позволяют совершенствовать приложение к базе данных, в состав которого входит интерфейс пользователя.

REST («передача репрезентативного состояния»), являясь архитектурным стилем взаимодействия приложения и базы данных, позволяет создавать простые и гибкие программные решения для ИИС.

Цель данной статьи – представление деталей реализации REST API для базы данных в составе ИИС на примере проекта Интерактивного расписания Академии.

Несмотря на то, что Интерактивное расписание не относится к проектам с большим объемом хранимой информации, оно в достаточном объеме иллюстрирует особенности реализации REST API и удобство организации пользовательского интерфейса к данным расписания.

Разработка проекта Интерактивного расписания проводится совместно со студентами факультета таможенного дела по направлению Прикладная информатика в Ростовском филиале Российской таможенной академии.

Особенности БД Интерактивного расписания

Интерактивное расписание разрабатывается как web-приложение с клиент-серверной архитектурой [3]. В основе проекта лежит база данных, хранящая информацию обо всех объектах, формирующих расписание по неделям для каждого курса и группы.

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

На рис. 1 представлена диаграмма «сущность-связь» [4], по которой реализована база данных расписания.

Рис. 1. Диаграмма «сущность-связь» объектов Интерактивного расписания

Главным объектом представленной диаграммы является объект «Classes» (занятия). Каждое занятие относится к своему типу расписания и определяется временем проведения, датой, днем недели, номером кабинета, названием предмета, типом занятия (лекция, практика), данными преподавателя, номером группы и подгруппы.

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

Так, практически значимыми вариантами поиска являются:

  • поиск по заданной группе на факультете – вариант, когда таблица расписания формируется для конкретной группы или потока на заданном факультете;
  • поиск по преподавателю – вариант, когда расписание формируется по конкретному преподавателю по всем группам и предметам. В итоге формируется индивидуальное расписание преподавателя.
  • поиск по аудитории – вариант, когда задается целевая аудитория, при этом имеется возможность определить свободный аудиторный фонд на заданный день недели или дату.

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

Архитектура RESTful приложения Интерактивного расписания

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

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

REST (Representational state transfer) введен еще в 2000 году для распределенных систем (таких как WWW) с целью построения web-служб. Сейчас, когда доступ в Интернет есть практически всегда, например, через 4G сети, данный подход вполне применим для реализации мобильных приложений без необходимости скачивать на клиент фрагменты БД.

REST – это очень простой интерфейс управления данными, где каждая единица информации имеет свой идентификатор, то есть к ней можно обратиться по URL. При этом запрошенная по тому или иному URL информация имеет строго заданный формат. Чаще всего для обмена данными в REST используются текстовые форматы JSON или XML [5].

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

Передача данных происходит по протоколу HTTP, при этом поддерживается четыре типа действий над данными:

  • GET (получить);
  • PUT (добавить, заменить);
  • POST (добавить, изменить, удалить);
  • DELETE (удалить).

Концептуально архитектура проекта Интерактивного расписания выглядит так, как представлено на рис. 2.

Рис. 2. Концептуальная архитектура ИИС Интерактивного расписания

Серверная часть интерактивного расписания управляется ОС Linux с настроенным http-сервером Node.JS. База данных расписания находится на том же сервере под управлением СУБД MySQL. На данном этапе главной задачей является реализация REST API и его тестирование в простом web-интерфейсе для браузера.

Детали реализации REST API для ИИС Интерактивного расписания

REST API реализован на Node.JS с установленным расширением Express.JS. Этот фреймворк предоставляет широкий набор функций для разработки web-приложений и программных интерфейсов (API).

Для реализации основных действий с данными базами реализовано четыре функции. Функция create позволяет добавить новую запись в БД, функция update обновляет запись в таблице, функция delete удаляет запись по заданному идентификатору, функция getMultiple возвращает набор записей для формирования таблицы предметов. На рис. 3 представлен код функции getMultiple. В результате работы функция возвращает структурированный текст – строки запрошенного расписания.

Рис. 3. Функция GetMultiple в составе REST API

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

Пример вызова функции GetMultiple из главного приложения представлен на рис. 4.

Рис. 4. Фрагмент главного приложения с вызовом функции GetMultiple

Роль главного приложения заключается в вызове определенных функций в ответ на запрос к серверу. Обрабатываются четыре основных операции: GET, POST, PUT, DELETE.

Как правило, REST API используются совместно с front-end фреймворками, например, Vue.js или React.js с целью быстрого формирования интерактивных web-интерфейсов.

Заключение

Промежуточными итогами представленной работы являются разработка информационной модели расписания и реализация БД по построенной модели, разработка REST API к БД и размещение простого web-приложения на сервере Node.JS.

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

БД – это центральный элемент ИИС. Гибкий интерфейс к БД позволяет реализовывать пользовательские интерфейсы в любом виде: web-приложений, отдельных или мобильных приложений. REST API достаточно легко реализуется, работает через HTTP-протокол, обмен данными организовывается в структурированном текстовом виде. Реализация RESTful приложений требует знаний как в области серверной разработки, так и понимания концепций разработки на клиенте. Тем не менее, реализованные RESTful web-приложения обладают большой гибкостью, легко расширяются, не имеют жесткой зависимости между серверной и клиентской реализациями. В дальнейшем для Интерактивного расписания планируется разработка web-интерфейса на основе фреймворка React.js и альтернативного мобильного приложения.

Использованные источники:

  1. Жданов С. А. Информационные системы [Электронный ресурс] : учебник для студентов учреждений высш. образования / С. А. Жданов, М. Л. Соболева, А. С. Алфимова. – М. : Прометей, 2015. – http://www.studentlibrary.ru/book/ISBN9785990626447.html
  2. Checkland P., Holwell S. Information, systems, and information systems. – Chichester : John Wiley & Sons, 1998. – С. 90.
  3. Qi L. et al. Data-driven web APIs recommendation for building web applications //IEEE transactions on big data. – 2020.
  4. Sugimoto T. et al. Proposal of API design method using ER diagram //IEICE Technical Report; IEICE Tech. Rep. – 2021. – Т. 121. – №. 114. – С. 1-5.
  5. Doglio F., Doglio, Corrigan. REST API Development with Node. js. – Apress, 2018. – Т. 331.