Реферат — Черняєв Антон Андрійович — Методи і способи організації сховищ для розподілених інтерактивних систем віртуальної реальності
ДонНТУ Портал магістрів ДонНТУ
Магістр ДонНТУ Черняєв Антон Андрійович
Черняєв Антон Андрійовмч
Факультет комп'ютерних наук та технологій
Кафедра прикладної математики та інформатики
Спеціальність "Інженерія програмного забеспечення"
Методи та засоби організації сховищ для розподілених інтерактивних систем віртуальної реальності
Науковий керівник: д.т.н., проф. Башков Євгеній Олександрович

Реферат за темою випускної роботи

Введення

Віртуальний світ - це інтерактивне змодельоване оточення, до якого безліч користувачів мають доступ через онлайн інтерфейс [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 клієнта до сервера

Як видно з рис. 2 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.