Реферат — Черняев Антон Андреевич — Методы и способы организации хранилищ для распределенных интерактивных систем виртуальной реальности
ДонНТУ Портал магистров ДонНТУ
Магистр ДонНТУ Черняев Антон Андреевич
Черняев Антон Андреевич
Факультет компьютерных наук и технологий
Кафедра прикладной математики и информатики
Специальность «Инженерия программного обеспечения»
Методы и способы организации хранилищ для распределенных интерактивных систем виртуальной реальности
Научный руководитель: д.т.н., проф. Башков Евгений Александрович

Реферат по теме выпускной работы

Введение

Виртуальный мир — это интерактивное смоделированное окружение, к которому множество пользователей имеют доступ через онлайн интерфейс [3]. Виртуальные миры иногда называют «цифровыми мирами», «искусственными мирами» и «МОИ» (мультипользовательские он-лайн игры, MMOG). На сегодня существует множество разных виртуальных миров, все из которых имеют шесть признаков, которые присущи всем мирам:

  1. Совместное пространство: участвовать в жизни мира могут одновременно много пользователей.
  2. Графический пользовательский интерфейс: пространство в мире отражено виртуально, и варьируется по стилю от 2D «мультипликационного» изображения до более впечатляющих 3D изображений.
  3. Оперативность: общение происходит в режиме реального времени.
  4. Интерактивность: мир позволяет участникам изменять, развивать, строить или принимать содержание, подобранное специально для него.
  5. Постоянство: существование мира продолжается независимо от того, находятся ли отдельные пользователи в системе.
  6. Общение/общество: мир дает возможность и содействует формированию социальных групп внутри мира, таких как команды, гильдии, клубы, клики, соседства, комьюнити и так далее.

На рис. 1 изображена виртуальная комната.

Рисунок 1 — Виртуальная комната

Рисунок 1 — Виртуальная комната

Виртуальные миры создаются для разных целей. Самым популярным и наиболее распространенным миром является MMORGP, что означает «Массовая многопользовательская он-лайн ролевая игра». Но есть миры, которые создавались и не для игр. В общих чертах опишем несколько способов, как сегодня можно использовать виртуальные миры.

Коммерческие игры

Коммерческие игровые миры обычно фокусируются на одной функциональной теме, в них много внимания уделяется формальным атрибутам, таким как персональные аватары, продвижение через интерактивную развивающуюся историю, а также через последовательность событий. Большинство виртуальных миров, которые существуют сегодня — это коммерческие игровые миры, которые создавались под влиянием фэнтези фантастики, а также жанра аниме в литературе и кино. Как примеры таких миров можно назвать Everquest, Lineage 2, и World of Warcraft.

Есть много сайтов, которые содержат обширные списки коммерческим игровых миров. Среди них: MPOGD.com, Gamespot, Gamespy.

Коммуникация/Построение онлайн сообществ

В дополнение к традиционным ролевым мирам «фентези», сегодня есть много коммерческих виртуальных миров, основанных на понятии сообщества, которые более направлены на общение, чем на игры. Такие миры обычно предлагают более открытые типы коммуникации, и ведут свое начало от чатов на текстовой основе. Хотя бывает, что в социальные миры включаются и небольшие, легкие игры, но пользователи приходят в этот мир не для того, чтобы поиграть или выиграть, а для общения с другими пользователями, а также часто для создания и украшения персонального пространства — дом, комната или квартира. Социальные миры часто используют настройки идеализированных вариантов реального мира. Многие из них с самого начала предоставляют пользователям базовые инструменты для выполнения действий и организации событий, которые относятся к множеству тем.

Образование

Некоторые виртуальные миры создаются с образовательными целями. Чаще всего создание образовательных виртуальных миров спонсируется академическими учреждениями или неприбыльными организациями, хотя некоторые из них спонсируются корпорациями. Образовательные миры выполняются в различных форматах, включая трехмерные отображения музеев и галерей, компьютерные обучательные программы, виртуальные библиотеки, а также пространства для собраний образовательных университетских курсов. Один из них — Active Worlds Educational Universe, он является одним из самых старых и больших образовательных сетей. Adobe Atmosphere также может быть использован для построения виртуальных миров для образовательных целях. А хорошим примером образовательного мира, который спонсируется корпорацией, Mokitown [7].

Политические взгляды

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

Военное обучение

Некоторые технологии виртуальных миров необычными способами используют и военные США. Например, американская армия используется как способ наема потенциальных солдат, а такие компании как Forterra Systems работают с военными группами, чтобы моделировать ситуации для учебы.

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

На рис. 2 изображено виртуальное пространство, в котором люди могут взаимодействовать друг с другом.

Рисунок 2 — Виртуальное рабочее пространство

Рисунок 2 — Виртуальное рабочее пространство

1. Актуальность темы

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

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

2. Цель и задачи исследования, планируемые результаты

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

Основные задачи исследования:

  1. Проанализировать существующие способы организации хранилищ в системах виртуальной реальности и определить пути их усовершенствования;
  2. Предложить модификации способов организации хранилищ, направленных на уменьшение времени отклика с возможностью реализации на распределенных компьютерных системах;
  3. Отобразить предложенный способ организации на распределенные кластерные системы;
  4. Определить и исследовать характеристики предложенного способа организации хранилищ;
  5. Решить практическую задачу построения хранилища данных для тренажерной системы, основанной на принципе виртуальной реальности.

Объект исследования: хранение данных в системах виртуальной реальности.

Предмет исследования: способы организации хранилищ и их реализация на распределенных кластерных системах.

Планируемые результаты:

  1. Разработка способов организации хранилищ данных, ориентированных на уменьшение времени отклика системы;
  2. Отображение предложенного способа на архитектуру кластерных компьютерных систем;
  3. Получение временных и пространственных характеристик разработанных методов.

Практические результаты:

  1. Разработка структуры базы данных для хранения информации о виртуальном окружении в составе тренажерной системы;
  2. Реализация тестовой виртуальной сцены и ее размещение в хранилище с предложенной структурой;
  3. Создание подсистемы хранения виртуальных миров в составе тренажерной системы.

3. Анализ структур данных

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

Таблица 1. Пример простых таблиц для хранения информации объектов
Название таблицы Название поля Назначение поля
Users   содержит данные о пользователях
  Id_user уникальный идентификатор пользователя
  Email электронный адрес
  Pass пароль пользователя
  Name имя пользователя, которое будет отображаться в виртуальном мире
  Id_avatar идентификационный номер аватара
Avatars   содержит данные об аватарах
  Id_avatar идентификационный номер аватар
  Id_sex тип пола аватара
  Id_hair тип волос
  Id_face тип лица
  Id_body тип строения тела
  Id_clothes тип одежды
Textures   содержит данные о текстурах
  Id_texture идентификационный номер текстуры
  Path путь к изображению текстуры
  Id_type тип текстуры
  Height высота
  Width ширина

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

В реальных системах количество полей и их назначение может отличаться от тех, что приведены в табл.1. Примером могут служить базы данных платформ Opensim [2] и UEF [1]. Платформа Opensim является достаточно популярной среди других подобных систем (предназначена для общения между людьми, проведение виртуальных конференций, выставок, галерей). Проект UEF является будущей многопользовательской игрой, главной целью игры — прокачивание персонажа [8].

Opensim представляет собой расширяемую платформу, которая может моделировать трехмерные виртуальные миры. В этих виртуальных мирах существует возможность динамического создания, изменения, удаления примитивов в пространстве. В качестве демонстрации силы такой платформы, она конфигурируется по умолчания так, что была совместима с приложением Second Life, выпущенная компанией Linden Lab [6]. На рис. 3 изображен созданный мир с помощью приложения Second Life.

Рисунок 3 — Виртуальный мир Second Life

Рисунок 3 — Виртуальный мир Second Life

В SL существует возможность создания своего собственного региона. На основе базовой конфигурации от Linden Lab, каждый регион содержит в себе пять серверов, которые необходимы ему для работы. Это такие сервера, как: User, Grid, Asset, Inventory, Messaging [5].

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

GridServer — отвечает за идентификацию регионов, которые находятся в данной сети.

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

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

MessagingServer — помогает общаться с различными людьми внутри симулятора.

На рис. 4 показана схема взаимодействия перечисленных серверов.

Рисунок 4 — Схема взаимодействия серверов в Opensim (анимация: объем — 96.3 кБайт, количество кадров — 7, количество повторов — 6, размер — 563х715)

Рисунок 4 — Схема взаимодействия серверов в Opensim (анимация: объем — 96.3 кБайт, количество кадров — 7, количество повторов — 6, размер — 563х715)

Вся информация о пользователях и об окружающем их мире хранится в различных базах данных, разделенных логически на три типа: Common (Общий), Services (Сервисы), Simulator (Симулятор). В Common содержится всего одна таблица migrations, предназначенная для обновления платформы. Services — содержит настройки аватара, его инвентаря, авторизация пользователя. Simulator — настройки регионов и местности.

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

Рисунок 5 — подключение SL клиента к серверу

Рисунок 5 — подключение SL клиента к серверу

Как видно из рис. 5 SL клиент подключается к серверу пользователя, который в свою очередь сообщает серверу региона о новом клиенте и отправляет параметры подключения клиенту. Сервер региона собирает информацию о близлежащих регионах и пользователях в них, передает эту информацию SL клиенту. SL подключается к региону и коннектится к близлежащим регионам как дочерний агент [9].

Для разбора того, какие поля могут находиться в таблицах, были выбраны три таблицы: assets, inventoryfolders, inventoryitems.

  • assets — сетка активов, включающая такие вещи как вещи, текстуры и звуки:
    1. name — название актива в инвентаре
    2. description — описание актива, его предназначение
    3. assetType — целое число, которое означает тип актива
    4. local — для будущего использования
    5. temporary — для будущего использования
    6. data — это поле содержит фактические данные актива: двоичное изображение, скрипт или другой тип данных
    7. id — идентификатор, который однозначно характеризует актив в системе
    8. create_time — дата и время, когда актив был создан
    9. access_time — дата и время, когда было последнее изменение
    10. asset_flag — флаг
    11. CreatorID — идентификатор аватара
  • inventoryfolders — папка для инвентаризации связанных деталей:
    1. folderName — название папки
    2. type — целое число, обозначающее тип папки
    3. version — это поле увеличивается, когда в папку добавляется новый элемент
    4. folderId — уникальный идентификатор папки
    5. agented — идентификатор агента, который создал эту папку
    6. parentFolderId — идентификатор папки-родителя.
  • inventoryitems — все итемы, находящиеся в инвентаре
    1. assetsID — идентификационный номер актива (итема)
    2. assetsType — тип актива (скрипт, текстура или шаблон)
    3. inventoryName — текст, который будет высвечиваться в названии итема в папке инвентаря у клиента
    4. inventoryDescription — описания назначения итема
    5. inventoryNextPermissions — разрешение, что можно делать с итемом, если его перенести на другой аватар
    6. inventoryCurrentPermissions — разрешение, что можно делать с итемом текущему обладателю
    7. invType — тип итема
    8. CreatorID — идентификатор создателя
    9. salePrice — цена продажи объекта
    10. creationDate — дата создания
    11. avatarID — идентификатор владельца
    12. parentFolderId — идентификатор папки, в которой хранится итем

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

Масштабируемость архитектуры закладывается изначально [2]. Все процессы станут крутиться вокруг баз данных, где будут храниться динамически изменяемые свойства объектов. Причём группы объектов могут выноситься в отдельные базы, которые можно будет переносить на отдельный сервер (или даже кластер) вместе с сопутствующими обработчиками событий. Вплоть до выделения особо нагруженных звёздных систем или высокоразвитых планет, а возможно и крупных (галактического масштаба) объединений, в отдельную базу данных вместе с программами управляющими событиями именно в данной группе объектов.

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

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

Выводы

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

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

  • Данные о пользователе.
  • Данные о текстурах.
  • Данные об отношениях объектов.
  • Данные об объектах.

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

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

Литература

  1. Технические аспекты проекта UEF [Электронный ресурс]. — Режим доступа: http://uef.me/content/...
  2. Developer Documentation — OpenSim [Электронный ресурс]. — Режим доступа: http://opensimulator.org/wiki/Development
  3. Влияние реального и виртуального миров. SecondLife. [Электронный ресурс]. — Режим доступа: http://world2.ru/story/1234.html
  4. Graham Morgan. Scalable Massively Online Games — University of Newcastle upon Tyne, 2005 — 10pp.
  5. OpenSim Archives — Opensim [Электронный ресурс]. — Режим доступа: http://opensimulator.org/wiki/OpenSim_Archives
  6. Как установить Opensim на свой домашний компьютер [Электронный ресурс]. — Режим доступа: http://secondrussia.ru/blogs/2935.html
  7. В виртуальном мире журналистов учат освещать чрезвычайные ситуации [Электронный ресурс]. — Режим доступа: http://slinside.ru/story378.html
  8. Walker White, Christoph Koch, Nitin Gupta, Johannes Gehrke, and Alan Demers. Database Research Opportunities in Computer Games — Cornell University — 7pp.
  9. Philip Mildner, Tonio Triebel, Stephan Kopf, Wolfgang Effelsberg. A scalable Peer-to-Peer-overlay for real-time massively multiplayer online games — University of Mannheim — 8pp.
  10. Sergio Caltagirone, Bryan Schlief, Matthew Keys and Mary Jane Willshire, PhD. Architecture for a Massively Multiplayer Online Role Playing Game Engine — School of Engineering The University of Portland — 10pp.

Изображения

  1. Виртуальная комната [Электронный ресурс]. — Режим доступа: http://www.wallpaper.ru/room.php?r=14.
  2. Виртуальное рабочее пространство [Электронный ресурс]. — Режим доступа: http://commonslearningalliance.org/content/p2p-shift-immaterial-material-production.
  3. Виртуальный мир Second Life [Электронный ресурс].— Режим доступа: http://opensimulator.org/wiki/File:Osgrid_wright_plaza_shops_kg.png.