Статьи

Реферат - Черняєв Антон Андрійович - Методи і способи організації сховищ для розподілених інтерактивних систем віртуальної реальності

  1. комерційні гри
  2. Комунікація / Побудова онлайн співтовариств
  3. Освіта
  4. Політичні погляди
  5. військове навчання

Віртуальний світ - це інтерактивне змодельоване оточення, до якого безліч користувачів мають доступ через онлайн інтерфейс [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. Запропонувати модифікації способів організації сховищ, спрямованих на зменшення часу відгуку з можливістю реалізації на розподілених комп'ютерних системах;
  3. Відобразити запропонований спосіб організації на розподілені кластерні системи;
  4. Визначити та дослідити характеристики запропонованого способу організації сховищ;
  5. Вирішити практичну задачу побудови сховища даних для тренажерної системи, заснованої на принципі віртуальної реальності.

Об'єкт дослідження: зберігання даних в системах віртуальної реальності.

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

Плановані результати:

  1. Розробка способів організації сховищ даних, орієнтованих на зменшення часу відгуку системи;
  2. Відображення запропонованого способу на архітектуру кластерних комп'ютерних систем;
  3. Отримання тимчасових і просторових характеристик розроблених методів.

Практичні результати:

  1. Розробка структури бази даних для зберігання інформації про віртуальному оточенні в складі тренажерної системи;
  2. Реалізація тестової віртуальної сцени і її розміщення в сховищі із запропонованою структурою;
  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

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

UserServer - відповідає за ідентифікацію користувача, створює унікальний ідентифікатор сесії для клієнта, який може використовуватися для ідентифікації на інших серверах в тій же мережі.

GridServer - відповідає за ідентифікацію регіонів, які знаходяться в даній мережі.

AssetServer - база даних, в якій зберігаються всі звуки, текстури, скрипти, зображення і т.д. Але необхідно враховувати, що якщо додати якийсь елемент в цю базу, то його параметри неможливо змінити. Якщо, наприклад, знадобиться змінити якусь текстуру, то її доведеться змінити в графічному редакторі, а після завантажити на сервер. Причому стара версія так і залишиться, її можна буде лише видалити.

InventoryServer - сервер, який відповідає за інвентар. Якщо користувач перемикається між різними серверами, необхідно, щоб інвентар залишався однаковим.

MessagingServer - допомагає спілкуватися з різними людьми всередині симулятора.

На рис. 4 показана схема взаємодії перерахованих серверів.

Малюнок 4 - Схема взаємодії серверів в Opensim (анімація: обсяг - 96.3 кБайт, кількість кадрів - 7, кількість повторів - 6, розмір - 563х715)

Вся інформація про користувачів і про навколишній світ зберігається в різних базах даних, розділених логічно на три типи: Common (Загальний), Services (Сервіси), Simulator (Симулятор). В Common міститься всього одна таблиця migrations, призначена для оновлення платформи. Services - містить налаштування аватара, його інвентарю, авторизація користувача. Simulator - настройки регіонів і місцевості.

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

5 зображена послідовність дій, які виконуються при підключенні клієнта

Малюнок 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 .

    Php?

    Новости