Научная статья на тему 'Разработка клиент-серверного приложения для конструирования виртуального музея'

Разработка клиент-серверного приложения для конструирования виртуального музея Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
клиент-серверное приложение / конструктор виртуального тура / виртуальный музей / библиотека three.js / фреймворк / Angular / ASP.NET Core / Entity Framework Core / Code-First / WebGL

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А.В. Лушников, Э.М. Вихтенко, Т.В. Жукова

В статье описывается методика разработки клиент-серверного приложения, предназначенного для конструирования виртуального музея. Подробно рассмотрено создание серверной части приложения с функциями обработки и выполнения запросов к клиентской части, а также создание базы данных и взаимодействия с ней. Клиентская часть разработана при помощи фреймворка Angular и языка TypeScript, трехмерная реализация основывается на библиотеке three.js, которая является надстройкой технологии WebGL. Серверная часть разработана на платформе ASP.NET Core на языке C#. Схема базы данных основана на подходе Code-First с использованием Entity Framework Core. В качестве системы управления базой данных используется Microsoft SQL Server.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — А.В. Лушников, Э.М. Вихтенко, Т.В. Жукова

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Разработка клиент-серверного приложения для конструирования виртуального музея»

Разработка клиент-серверного приложения для конструирования

виртуального музея

А. В. Лушников, Э. М. Вихтенко, Т. В. Жукова Тихоокеанский государственный университет, Хабаровск

Аннотация: В статье описывается методика разработки клиент-серверного приложения, предназначенного для конструирования виртуального музея. Подробно рассмотрено создание серверной части приложения с функциями обработки и выполнения запросов к клиентской части, а также создание базы данных и взаимодействия с ней. Клиентская часть разработана при помощи фреймворка Angular и языка TypeScript, трехмерная реализация основывается на библиотеке three.js, которая является надстройкой технологии WebGL. Серверная часть разработана на платформе ASP.NET Core на языке C#. Схема базы данных основана на подходе Code-First с использованием Entity Framework Core. В качестве системы управления базой данных используется Microsoft SQL Server.

Ключевые слова: клиент-серверное приложение, конструктор виртуального тура, виртуальный музей, библиотека three.js, фреймворк, Angular, ASP.NET Core, Entity Framework Core, Code-First, WebGL.

Введение

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

На сегодняшний день существует несколько программных средств для создания виртуальных музеев, но все они являются проприетарными. Как показывает анализ рынка, большинство существующих решений принадлежат зарубежным компаниям, которые, в свою очередь, закрыли доступ к приобретению данного рода программного обеспечения (ПО) из РФ. В связи с этим значимость реализация отечественных инструментов повышается. Стоит отметить, что важно не только повторить реализацию функций зарубежных аналогов, но и расширить возможности программного средства (ПС), на основе которых создать конкуренцию на мировом рынке. В

данном случае одним из преимуществ является использование современных технологий и подходов к разработке ПО, а также возможности полного изменения пользовательского интерфейса и даже логики работы виртуального тура для учета требований конкретных пользователей. В работе показано использование бесплатных инструментов, которые позволяют создавать виртуальные туры, используя технологию WebGL (Web-based Graphics Library) [2].

Виртуальный музей в разработанном программном средстве (ПС) представлен несколькими точками обзора, которые могут меняться при желании. Точкой обзора является камера, расположенная в центре сферы, для поверхности которой используется текстура. Текстурой, в данном случае, является сферическая панорама, созданная при помощи фотоаппарата, специальной аппаратуры и редактора фотографий (рис. 1).

Рис.1. - Панорама возле входа в центральном зале

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

половине экрана содержится скрываемая панель с информацией об экспонатах.

Рис. 2. - Пользовательский интерфейс ПС

Реализованный проект является базой для создания виртуального тура по музею Тихоокеанского государственного университета (ТОГУ), а также он может использоваться для конструирования любых других виртуальных туров.

Клиентская часть разработана при помощи фреймворка Angular [3] и языка TypeScript, трехмерная реализация основывается на библиотеке three.js [4], которая является надстройкой технологии WebGL. Эта часть проекта реализует основную логику для отображения трёхмерных сцен и взаимодействия с ними [5]. Серверная часть разработана на платформе ASP.NET Core [6] на языке C# [7]. Схема базы данных (БД) основана на подходе Code First с использованием Entity Framework Core [8]. В качестве системы управления БД используется Microsoft SQL Server. Все используемые технологии являются проектами с открытым исходным кодом.

Описание серверной части проекта

С целью реализации конструктора виртуальных туров решены следующие задачи:

- разработана схема хранения информации;

- обеспечено выполнение основных CRUD-операций (create, read, update, delete) с данными;

- обеспечено развертывание ПС на нескольких платформах (кроссплатформенность);

- описаны методы выполняемых операций.

Схема БД для виртуального тура состоит из нескольких базовых элементов: этаж, комната, точка обзора, экспонат. На рис. 3 представлена диаграмма ERD (Entity Relationship Diagrams) [9] в нотации Crow's Foot.

(-"i :

--F|uu,

; 1айгниэ <ЛЛяй OCOQUJ : ■ qiiH кздрдо ими vuhkhk^ j \ qpyjan rtms гуа<и исяе-i CtJit. i осушк1игк->1 ПЦМНВДН ! : С1р«из1\>че(>йттгерфнйе |

VWItMNIHffiFahnL П »4ПИЧ11 ^ рщцпшыи dl

Рис. 3. - Схема связи сущностей БД для виртуального тура

Три сущности Floor (этаж), PointView (точка обзора) и Exhibit (экспонат) содержат сущность Image (изображение). Для этажа - это изображение схематичной карты, для точки обзора - текстура (сферическая панорама), для экспоната - его фотография.

Дополнительно в модель введена сущность PointConnections (связь точек обзора), которая связывает две различные точки обзора, из которых

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

Для реализации методов работы с данными в БД используется логика http-запросов клиентской части к серверу [10], а именно выполняется следующий алгоритм:

1. Создать этаж (Floor);

2. Добавить для этажа карту (Image);

3. Добавить на этаж помещения (Room);

4. Для каждого помещения добавить точки обзора (PointView)

5. Для каждой точки обзора загрузить панораму (Image);

6. При наличии добавить на точку обзора экспонаты (Exhibit);

7. Для каждого экспоната загрузить необходимые изображения (Image)

и добавить текст описания.

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

В связи с требованием создания БД посредством скриптов, использовался специальный подход разработки ПО - Code-First, при котором в первую очередь создается код, а затем на его основе генерируется база данных и модели данных. Код в стиле Code-First для модели PointView имеет следующий вид:

public class PointView : IBaseModel

{

public Guid Id { get; set; } = Guid.NewGuid();

public required string Name { get; set; }

[ForeignKey("Room")]

public Guid RoomId { get; set; }

public virtual required Room Room { get; set; }

[ForeignKey("Image")]

public Guid? TextureImageId { get; set; }

public virtual Image? Image { get; set; }

public virtual ICollection<Exhibit>? Exhibits { get; set; }

[ForeignKey("Parent")]

public Guid? ParentId { get; set; }

public virtual PointView? Parent { get; set; }

[InverseProperty("Parent")]

public virtual ICollection<PointView>? ChildViews { get; set; }

}

На рис. 4 отображена схема БД при просмотре в Microsoft SQL Server Management Studio. На схеме отображены ключи и столбцы таблицы PointView и видно, что они соответствуют модели, представленной в коде приложения.

« 81 dbo._EFMigrationsHistory

id (РК. umqueidentifier. Не NULL) i Nam« (nvarchar(max). He NULL)

TextureImageId (FK. umqueidentitief. NULL) o» Roomld (FK, umqueidentifier. He NULL) ©■ ParentId (FK. uniqueidentifier. NULL)

FK_PomtView_lmage_Texturelmageld v FK_PointView_PontView_ ParentId FK_PomtView_Room.Roomld

Рис. 4. - База данных VirtualTour

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

Клиент-серверное взаимодействие

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

заполнить форму (рис. 5), которая выводится в клиентской части.

Создать этаж

Ц Hi

МумЯТОГУ

р» § ' '.И «i Md гам

От

Рис. 5. - Форма создания этажа

После заполнения и подтверждения формы пользователем происходит отправка модели на серверную часть системы, сформированной согласно данным в форме (название, описание и изображение карты навигации). Затем на сервере происходит проверка модели, и, если она удовлетворяет условиям, происходит сохранение в БД. После этого сервер возвращает результат выполнения операции клиенту. После завершения операции пользователь может повторить этот процесс для создания нового этажа. На рис. 6 представлена диаграмма последовательности действий в нотации UML (Unified Modeling Language), описывающая клиент-серверное взаимодействие на примере создания этажа.

и

Рис. 6. - Диаграмма последовательности действий при создании этажа Для виртуального тура изображения играют ключевую роль. Например, карта этажа обеспечивает более понятную навигацию по туру, для создания трехмерной сцены требуются текстуры, а также изображения экспонатов. Учитывая, что виртуальный тур будет динамически создаваться, а некоторые изображения могут меняться или обновляться довольно часто, принято решение хранить изображения в базе данных в виде байт-строки. В серверной части описан метод получения, обработки и сохранения в БД изображения, которое было отправлено в форме клиентской части. Так как в проекте есть три сущности, которые ссылаются на изображения, то в каждой прописан метод, который создает изображение и привязывает его к сущности. Таким образом обеспечивается конструирование виртуальных туров, позволяющее хранить данные в базе и получать их по требованию.

Тестирование разработанного комплекса

Тестирование ПС проводилось на основе имеющихся панорам и карт расположения точек обзора по ранее реализованному проекту «Виртуальный музей ТОГУ».

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

Карта Музей X

Комнате с (макетом - Вход (возле стенда)

Навигация

Музей ► Комната с макетом > Возле трибуны

тестЗ » Рабочий стол ректора

Этаж 1 ► Вход (возле стенда)

Возле стенда

ьозле героа

Рис. 7. - Панель навигации после создания точек обзора

Для проверки корректности навигации выполнялись последовательно переходы во все точки обзора, из которых можно рассмотреть экспонат. Например, обзор экспоната «Макет» можно осуществить с противоположных сторон из точки «Возле трибуны» и «Рабочий стол ректора». На рис. 8 и 9 продемонстрирован результат.

Рис. 8. - Точка обзора «Рабочий стол ректора»

Рис. 9. - Точка обзора «Возле трибуны» Заключение

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

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

Благодарность за финансовую поддержку работы

Работа выполнена при финансовой поддержке Министерства науки и высшего образования Российской Федерации, дополнительное соглашение № 75-02-2024-1432 от 28 февраля 2024 г.

Литература

1. Технические рекомендации по созданию виртуальных музеев. Версия 1.0 // Минкультуры России. URL: culture.gov.ru/documents/po-sozdaniyu-virtualnykh-muzeev-250714.

2. WebGL: 2D and 3D graphics for the web. URL: developer.mozilla.org/en-US/docs/Web/API/WebGL_API (дата обращения: 10.05.2024).

3. API List // Angular URL: angular.io/api (дата обращения: 10.05.2024).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Creating a scene // three.js URL: threejs.org/docs/#manual/en/introduction/Creating-a-scene (дата обращения: 10.05.2024).

5. Лушников А.В. Миграция веб-проекта с нативного Javascript на фреймворк Angular // Far East Math - 2022: Материалы национальной научной конференции, Хабаровск, 22-26 ноября 2022 года. Хабаровск: Тихоокеанский государственный университет, 2022. С. 137-141.

6. Lock, A., 2023. ASP.NET Core in Action, Third Edition. Manning. 984 р.

7. Skeet, J., 2019. C# in Depth: Fourth Edition. Manning. 528 р.

8. Smith, J.P., 2021. Entity Framework Core in Action, Second Edition. Manning. 624 р.

9. Олейников Д.Г., Анисимова Г.Б. Разработка информационной системы для лингвистического центра // Инженерный вестник Дона. 2022. №4. URL: ivdon.ru/ru/magazine/archive/n4y2022/7594.

10. Бондаренко Т.В., Федотов Е.А., Бондаренко А.В. Разработка HTTP сервера //Инженерный вестник Дона. 2018. №2. URL: ivdon.ru/ru/magazine/archive/n2y2018/5038.

References

1. Tehnicheskie rekomendacii po sozdaniju virtual'nyh muzeev. Versija 1.0 [Technical recommendations for the creation of virtual museums. Version 1.0]. Minkul'tury Rossii. URL: culture.gov.ru/documents/po-sozdaniyu-virtualnykh-muzeev-250714.

2. WebGL: 2D and 3D graphics for the web. URL: developer.mozilla.org/en-US/docs/Web/API/WebGL_API (date assessed: 10.05.2024).

3. Angular. URL: angular.io/api (date assessed: 10.05.2024).

4. three.js. URL: threejs.org/docs/#manual/en/introduction/Creating-a-scene (date assesed: 10.05.2024).

5. Lushnikov A.V. Far East Math - 2022: Materialy nacional'noj nauchnoj konferencii, Habarovsk, 22-26 nojabrja 2022 goda. Habarovsk: Tihookeanskij gosudarstvennyj universitet, 2022. Pp. 137-141.

6. Lock, A., 2023. ASP.NET Core in Action, Third Edition. Manning. 984 р.

7. Skeet, J., 2019. C# in Depth: Fourth Edition. Manning. 528 р.

8. Smith, J.P., 2021. Entity Framework Core in Action, Second Edition. Manning. 624 р.

9. Olejnikov D.G., Anisimova G.B. Inzhenernyj vestnik Dona. 2022. №4. URL: ivdon.ru/ru/magazine/archive/n4y2022/7594.

10. Bondarenko T.V., Fedotov E.A., Bondarenko A.V. Inzhenernyj vestnik Dona. 2018. №2. URL: ivdon.ru/ru/magazine/archive/n2y2018/5038.

Дата поступления: 24.04.2024 Дата публикации: 25.06.2024

i Надоели баннеры? Вы всегда можете отключить рекламу.