TEHNOLOGII
MEDII VIRTUALE
O varianta extinsa e disponibila in cartea
'Tehnologii Web', Matrix Rom, Bucuresti, 2001:
http://www.infoiasi.ro/~busaco/books/web.html
Medii virtuale distribuite
– Sabin Corneliu Buraga
ealitatea virtualã reprezintã o simulare
generatã de calculator a unui mediu
tridimensional în care utilizatorul este
capabil sã vizualizeze ºi sã manipuleze conþinutul acestui mediu.
Dacã multimedia se referã la date preasamblate ºi preprogramate, incluzând o suitã
de informaþii din anumite medii, realitatea
virtualã este dinamicã ºi în interacþiune permanentã cu receptorul ei. Multimedia este la
bazã bidimensionalã, o serie de imagini
prezentându-se, conform unui scenariu predefinit, pe ecran, pe când realitatea virtualã
este tridimensionalã, mult mai maleabilã ºi intens interactivã, combinaþie avansatã de hardware ºi software multimedia. Utilizatorul unui
sistem virtual are libertatea de a explora lumea
creatã de calculator ºi de a interacþiona direct
cu ea.
Termenul de realitate virtualã se confundã
deseori cu ciberspaþiul, cuvânt inventat de
scriitorul SF William Gibson în celebrul roman
„Neuromancer”, publicat în premierã în anul
1984.
Un mediu virtual distribuit reprezintã un
sistem software care permite interacþiunea în
timp-real, de la distanþã, a mai multor utilizatori, încorporând graficã 3D ºi sunet stereo.
R
participanþii din cadrul mediului virtual trebuie sã fie controlaþi de om, o parte dintre
avatari putând fi creaþi de program, având sau
nu inteligenþã artificialã.
(3) Iluzia timpului comun: mediul virtual distribuit permite interacþiunea în timp-real dintre utilizatori.
(4) Posibilitatea comunicãrii: posibilitãþile comunicãrii includ comunicarea prin gesturi,
prin text introdus de la un dispozitiv de intrare
sau prin voce.
(5) Partajarea informaþiilor: în afara faptului
de a facilita comunicarea dintre utilizatori,
sistemul oferã posibilitatea de a interacþiona
cu mediul virtual (de exemplu, participanþii
la o simulare virtualã pot selecta, muta,
transforma obiecte care existã în mediu ºi
pot sã le dea altor utilizatori). Un proiectant
de mediu virtual distribuit poate oferi utilizatorilor libertatea de a construi edificii, de
a desena pe o tablã sau chiar de a distruge
mediul.
Figura 1. Un mediu virtual distribuit
simulând o cafenea:
Caffeine Machine (IBM)
Caracterizare
Un mediu virtual distribuit se bucurã de urmãtoarele caracteristici principale:
(1) Iluzia spaþiului comun: toþi participanþii au
iluzia localizãrii în acelaºi spaþiu tridimensional (aceeaºi camerã sau clãdire ori acelaºi
areal). De cele mai multe ori, spaþiul este fictiv, generat electronic, dar trebuie sã prezinte
aceleaºi proprietãþi pentru toþi utilizatorii (aspect meteorologic, acusticã, texturã etc.).
(2) iluzia prezenþei comune: Fiecare dintre participanþi ia forma unei persoane virtuale, numitã avatar, care are, printre altele, asociate
urmãtoarele:
• o reprezentare graficã (pe cât posibil, cât mai
realistã);
• un model al structurii corpului (prezenþa
membrelor, antenelor etc.);
• un model al deplasãrii (mulþimea miºcãrilor
ºi gesturilor pe care le poate executa);
• un model fizic (e.g. greutate, înãlþime etc.).
Un avatar nu trebuie sã posede formã
umanoidã ºi un utilizator poate avea asociate
mai multe reprezentãri de tip avatar. Nu toþi
7 NET REPORT • aprilie 2001
Înainte de a intra în mediu, utilizatorul trebuie sã-ºi aleagã tipul de avatar dorit
Conectarea mai multor utilizatori la sistem diferenþiazã mediile virtuale distribuite de
realitatea virtualã obiºnuitã. Abilitatea de a
partaja diverse obiecte ale mediului îi conferã
o nouã dimensiune, faþã de serviciile conversaþionale clasice (chat-uri, sisteme de tele-conferinþe). Interactivitatea în timp-real este o
altã caracteristicã suplimentarã, care nu apare
la navigatoarele Web sau la serviciile de poºtã
electronicã.
Mediile virtuale distribuite sunt cele mai
indicate pentru aplicaþii necesitând crearea
tele-prezenþei.
Structura
Un mediu virtual distribuit prezintã urmãtoarea structurã:
• motoare ºi display-ere grafice (staþii de lucru
grafice, deseori suportând OpenGL, cãºti de
vizualizare, ecrane retinale etc.);
• dispozitive de comunicare ºi control (tastaturã, mouse, joystick, mãnuºã senzorialã,
detectoare de miºcare, microfoane, boxe
audio ºi altele);
• sisteme de procesare distribuitã;
• reþele (rapide, locale: Ethernet, Token Ring
sau mondiale: ISDN (Integrated Services Distribution Network), DSI (Defense Simulation
Internet),
comunicarea
realizându-se
printr-un protocol special: VRTP (Virtual
Reality Transfer Protocol) sau folosindu-se
standardul Living Worlds).
Problemele care pot surveni în implementarea ºi funcþionarea unui mediu virtual
distribuit sunt, în principal, cele legate de
managementul în timp-real al resurselor,
pierderea de date, lãrgimea de bandã, eterogenitatea ºi scalabilitatea echipamentelor,
configurarea ºi exploatarea software-ului.
Mediile virtuale distribuite sunt, concomitent, sisteme distribuite, aplicaþii grafice ºi
aplicaþii interactive, integrând sisteme de baze
de date (utile pentru memorarea datelor persistente care genereazã mediul: forme ºi
localizãri de obiecte, texturi, informaþii despre
avatari etc.), interacþionând cu sisteme
tranzacþionale (de comerþ electronic, de exemplu) ºi trebuind sã asigure autentificarea utilizatorilor ºi jurnalizarea activitãþilor.
Origini
Istoria mediilor virtuale distribuite începe cu ...
Mediile virtuale militare. Unul dintre cele
mai cunoscute este SIMNET (Simulator Networking), dezvoltat pentru DARPA începând
cu 1983 ºi dat în folosinþã abia în anul 1990,
jucând un rol destul de important ºi în operaþiunea „Furtunã în Deºert” de peste câþiva ani.
Scopul proiectului a fost dezvoltarea unui
mediu virtual distribuit ieftin pentru antrenarea unor unitãþi militare cu efectiv restrâns.
Din ideile ºi succesul lui SIMNET ia fiinþã un
protocol denumit Distributed Interactive
Simulation (DIS), standardizat în 1993 (IEEE
1278), având un ecou rãsunãtor în domeniul
militar, dar prezentând unele inconvenienþe ca
numãrul redus de participanþi (maxim 300 de
TEHNOLOGII
O varianta extinsa e disponibila
in cartea
'Tehnologii Web', Matrix
Rom,
Bucuresti,
M E D I I V I R 2001:
TUALE
http://www.infoiasi.ro/~busaco/books/web.html
utilizatori concomitent), mãrimea pachetelor
de date ºi necesitãþi hardware destul de
însemnate (pentru simulãri cu un grad mare
de realism se folosesc numai staþii SGI). SIMNET ºi ulterior DIS folosesc o tehnicã specialã numitã dead-reckoning pentru evitarea
inundãrii reþelei cu pachete de date.
Jocurile în reþea. Una dintre primele încercãri
de implementare a unui simulator realist o
constituie Flight, conceput iniþial de Gary
Tarolli de la Silicon Graphics Inc. (SGI),
simulator de zbor disponibil în premierã în
vara anului 1983 ºi inclus în software-ul
oricãrei staþii grafice comercializate de SGI în
perioada 1984-1992. Partea de reþea a fost
adãugatã începând cu 1984, dar utilizatorii
conectaþi la simulator nu puteau interacþiona
unul cu altul. Acest lucru este însã posibil la
programul demonstrativ Dogfight, limitat iniþial la 10 utilizatori din raþiuni de evitare a
congestiei reþelei. Aceste douã aplicaþii au inspirat, peste ani, dezvoltarea mediilor virtuale
distribuite, mai ales prin faptul cã SGI a fãcut
sursele programelor publice (fragmente din
aceste surse au fost folosite pentru proiectul
NPSNET pe care-l vom descrie mai tirziu).
O altã sursã de inspiraþie a constituit-o
Doom (idSoftware), apãrut pe piaþã în decembrie 1993 ca aplicaþie shareware, punct de
cotiturã în industria jocurilor în reþea,
oferind un mediu 3D realist, zgomotos ºi
populat cu monºtri. Succesorul lui, Doom II,
a fost disponibil din octombrie 1994 ºi s-a
vândut în peste 1,6 milioane de exemplare. A
fost portat ºi pe staþii de jocuri precum Sega
32X, Super Nintendo, Sony PlayStation sau
Nintendo 64.
Pentru Macintosh, se poate menþiona un
joc cu graficã impresionantã ºi sunet spaþial,
denumit Marathon, apãrut în 1994, care oferea, ca ºi Doom, utilitare pentru editarea ºi
crearea de cãtre utilizator a scenelor 3D.
Mediile virtuale academice. Unul dintre
eforturile timpurii ale comunitãþii academice
în crearea de medii virtuale distribuite este
concretizat în grupul de cercetare NPSNET,
având la bazã câteva proiecte studenþeºti ca
FOG-M (Fiber-Optically Guided Missile System), VEH (Vehicle Simulator) ºi MPS (Moving Platform Simulator), dezvoltate pe staþii
Unix în perioada 1986-1988.
NPSNET (Naval Postgraduate School Network) a avut mai multe stadii de dezvoltare.
NPSNET-1, a cãrui demonstraþie publicã a
avut loc la Conferinþa SIGGRAPH’91,
folosea un protocol propriu de comunicare ºi
putea rula într-o reþea localã. Au urmat
NPSNET-2, NPSNET-3 ºi NPSNETStealth, cel din urmã, operaþional din 1993,
fiind compatibil cu sistemele SIMNET. Ultima versiune, NPSNET-IV, a continuat sã fie
dezvoltatã pânã în decembrie 1996, oferind
marea majoritate a facilitãþilor mediilor virtuale distribuite actuale.
Un alt proiect, PARADISE (Performance
Architecture for Advanced Distributed Interactive Simulation Environments), a fost iniþiat în
1993 la Universitatea Stanford, focalizat în
principal pe problemele de comunicare în
reþea, având ca punct de plecare programul
Dogfight menþionat anterior. Astfel, PARADISE utilizeazã tehnici de multicast, algoritmi performanþi dead-reckoning, posedând o
arhitecturã orientatã-obiect (C++), diverse
module de interfaþã fiind scrise în Tcl. Sistemul este operaþional pe staþii IBM RS/6000
cu capabilitãþi OpenGL.
Institutul Suedez de Informaticã dezvoltã
un mediu compatibil cu SIMNET ºi DIS, denumit Distributed Interactive Virtual Environment (DIVE). Totul a pornit în 1991, de la
editorul de graficã bidimensionalã Multidraw,
avându-l ca autor pe Olaf Hagsand. Acest program ulterior s-a dovedit a fi catalizatorul
proiectului Telepresence, care a fost redenumit
Figura 2. O sesiune DIVE 3.0
(1) Ce tipuri de informaþii trebuie transferate între sistemele care compun mediile virtuale?
(2) Ce protocol trebuie ales pentru realizarea
transferului?
(3) Care este arhitectura software de reþea pe
care poate sã ruleze în condiþii optime un astfel de
sistem?
Pentru primele douã întrebãri, putem rãspunde cã tipurile de date ºi, respectiv, protocoalele
folosite sunt:
• schimbãrile de stare ºi interacþiunile între
entitãþi (transferate prin protocoale punct la
punct);
• elementele care compun mediul (obiecte,
avatari,...) disponibile prin cereri clientserver via HTTP - HyperText Transfer
Protocol sau VRTP - Virtual Reality
Transfer Protocol;
• pointerii ºi referinþele de reþea (reprezentate
prin URI-uri);
• fluxurile de date multimedia în timp-real
(transmise în maniera multicast, prin protocoale ca RTP - Real-Time Protocol).
Pentru cea de-a treia problemã, soluþiile se
dovedesc a fi multiple. Astfel, vom da în continuare câteva exemple de medii virtuale distribuite, fiecare cu propria sa arhitecturã.
DIS-Java-VRML
ca DIVE în 1992. Dacã iniþial sistemul rula pe
IBM/RS 6000, permiþând conectarea simultanã a numai doi utilizatori, ulterior a fost
portat pe staþii Sun, ultima versiune, DIVE
3.0, folosind o interfaþã graficã utilizator conceputã complet în Tcl/Tk.
Alt proiect academic este BrickNet, iniþiat
la Universitatea Naþionalã din Singapore,
rulând pe staþii Sun ºi SGI Indigo, apoi pe
PC-uri, fiind creat în 1991 de Gurminder
Singh.
Dezvoltat la Naval Postgraduate School (Statele Unite ale Americii), proiectul este considerat de autorii lui drept model pentru mediile virtuale distribuite bazate pe VRML. Eforturile proiectanþilor s-au focalizat asupra
transferului informaþiilor despre schimbãrile
de stare ºi interacþiunile dintre entitãþile care
compun mediul, dezvoltându-se o bibliotecã
de clase Java ºi o arhitecturã pentru interschimbul de pachete de date DIS în Internet.
Arhitectura software de reþea, la nivel
general, este prezentatã în urmãtoarea
ilustraþie.
Figura 3. Arhitectura software generalã a unui sistem DIS-Java-VRML
Medii virtuale distribuite
bazate pe VRML
Datoritã limitãrilor hardware ale maºinilor
conectate la Internet ºi lipsei de investiþii de
amploare în tehnologia VRML, relativ puþine
organizaþii au realizat experimente majore în
domeniul mediilor virtuale distribuite. Sistemele proiectate de obicei suportã un numãr
redus de participanþi (sub 20 de utilizatori).
Problemele puse în discuþie în ceea ce priveºte
interoperabilitatea mediilor virtuale pe Web
pot fi urmãtoarele:
O metodã de implementare ar fi aceea în
care browserul VRML realizeazã atât vizualizarea lumilor 3D, cât ºi procesarea codului
Java. O altã abordare este cea în care sistemul
constã dintr-o aplicaþie Java de sine stãtãtoare
sau dintr-un applet Java, fiºierele VRML
fiind prelucrate de un vizualizator VRML
auxiliar.
aprilie 2001 • NET REPORT 8
TEHNOLOGII
O varianta extinsa e disponibila in cartea
'Tehnologii Web', Matrix Rom, Bucuresti, 2001:
http://www.infoiasi.ro/~busaco/books/web.html
MEDII VIRTUALE
Experimentele practice efectuate au arãtat
cã un mediu DIS-Java-VRML poate suporta
pânã la 40 de utilizatori conectaþi simultan, în
condiþii acceptabile de vitezã de transfer.
Living Worlds
Acest proiect este conceput de grupul de
cercetare al Consorþiului Web 3D (fost Consorþiul VRML), scopul lui fiind definirea unui
set de convenþii VRML 2.0 pentru realizarea
interoperabilitãþii mediilor virtuale distribuite.
Living Worlds nu reprezintã, aºadar, o arhitecturã completã a unui mediu virtual efectiv, ci
mai mult oferã o serie de standarde privind
utilizarea VRML-ului în acest context: suport
pentru prezenþa virtualã a mai multor participanþi, pentru interacþiunea participantparticipant sau participant-sistem, pentru
asamblarea dinamicã a mediului din diverse
componente precum avatari, modele partajate,
camere virtuale ºi altele. Astfel, sunt disponibile biblioteci (abstracte) conþinând scene/
noduri VRML care pot fi folosite de
proiectanþii ºi programatorii de lumi 3D.
Sunt definite urmãtoarele interfeþe pentru:
(1) coordonarea poziþiei ºi stãrii obiectelor
partajate (inclusiv avatari);
(2) schimbul de informaþii între obiectele unei
scene VRML;
(3) asigurarea securitãþii aplicaþiilor VRML
(la nivel de sistem ºi de utilizator);
(4) dezvoltarea unei biblioteci de utilitare ºi
extensii VRML 2.0;
(5) identificarea ºi integrarea în timpul rulãrii
a scripturilor VRML.
Pentru asigurarea interoperabilitãþii ºi independenþei de platformã, Living Worlds impune ca limbajul de programare a sistemului
sã fie Java.
Aplicaþiile bazate pe specificaþiile Living
Worlds (încã în stadiu de cercetare) sunt:
• blaxxun Interactive - compus din clienþii
blaxxun Community Client pro ºi serverele
blaxxun Community Server objects, posedã
propriul browser VRML 2.0 oferind suport
pentru applet-uri Java externe;
• Sony Community Place - are ca scop asigurarea unor condiþii bune de vizualizare a lumilor 3D virtuale chiar ºi pentru clienþii
conectaþi la Internet prin modem, furnizând
servicii conversaþionale de tip chat (text sau
grafic), interacþiunea cu obiecte animate etc.
Serverul ºi clienþii folosesc un protocol special, denumit VSCP (Virtual Society Client
Protocol), bazat pe TCP/IP;
• Open Community - mediu virtual distribuit
dezvoltat de Mitsubishi Electric Research
Lab (MERL), reprezintã ºi o bibliotecã
software oferind servicii precum comunicaþiile în reþea, transportul datelor audio ºi
obiectelor VRML în timp-real. Protocolul
folosit este ISTP (Interactive Sharing
Transfer Protocol). Sistemul este conceput
în limbajul C, dar în viitor va fi rescris în
Java.
Unelte de dezvoltare
Pentru a asigura modularizarea, portabilitatea
ºi adaptarea mediului la lumea dinamicã a Internetului, s-au imaginat diverse aplicaþii pentru asistarea programatorilor ºi designerilor de
sisteme virtuale distribuite. Majoritatea uneltelor de dezvoltare (toolkit-uri) sunt disponibile gratuit pe Internet. Deja existã o serie de
aplicaþii ºi biblioteci care faciliteazã munca de
construire a unui mediu virtual distribuit
(bazat sau nu pe VRML) dintre care pot fi
amintite:
Bibliografie
S.Singhal, M.Zyda - „Networked Virtual Environments”, Addison-Wesley, New York,
1999
N.Teroshima - „Telesensation - Distributed Interactive Virtual Reality - Overview and
Prospects”, IFIP, 1994
Q.Wang - „Networked Virtual Reality”, Master Thesis, University of Alberta, 1994
* * * - Bamboo: http://www.npsnet.nps.navy.mil/Bamboo
* * * - DIVE: http://www.sics.se/dce/dive/dive.html
* * * - HLA: http://hla.dmso.mil
* * * - NPSNET: http://www.npsnet.nps.navy.mil/npsnet
* * * - OpenGL: http://www.sgi.com/Technology/openGL/glspec1.1/glspec.html
* * * - PARADISE: http://www.dsg.stanford.edu/paradise.html
* * * - „The Virtual Reality Modeling Language”, International Standard ISO/IEC
14772-1:1997, VRML Consortium, 1997:
http://www.vrml.org/Specifications/VRML97/index.html
* * * - Virtual Reality Universe: http://www.vruniverse.com
9 NET REPORT • aprilie 2001
Bamboo este un mediu de programare a
sistemelor virtuale distribuite, ideea de bazã
fiind asigurarea în manierã dinamicã a scalabilitãþii acestora. Modular, preluând filosofia
Adobe sau Netscape de a utiliza plug-in-uri,
Bamboo poate fi adaptat conform dorinþelor
utilizatorilor, fiind independent de platformã
(se poate încãrca maºina virtualã Java ca
modul, deºi aplicaþia este conceputã în C++).
Partea de reþea este inspiratã din ACE (Adaptive Communication Environment), pe baza
cãruia a fost construit.
High Level Architecture (HLA) iniþial
a fost dezvoltat în cadrul Departamentului
de Apãrare SUA ºi nu a reprezentat un standard deschis, public. În prezent, HLA se
aflã în adopþia organizaþiilor IEEE ºi OMG
(Object Management Group). Arhitectura
este una obiectualã, fiecare simulator de
lumi virtuale 3D reprezentând o componentã, denumitã federate, constituitã dintr-o
colecþie de obiecte, posedând diferite atribute, capabile de a iniþia ºi rãspunde la
evenimente. Un federate îºi înregistreazã
obiectele prin intermediul unei componente
middleware denumitã Run-Time Infrastructure (RTI). RTI colaboreazã cu instanþele
RTI aflate pe alte calculatoare pentru a
obþine informaþii despre ceilalþi participanþi
ºi a le trimite date. Colecþia tuturor componentelor federate împreunã cu instanþele RTI
asociate formeazã aºa-numita federaþie (federation). RTI oferã suport pentru managementul federaþiei, managementul obiectelor
dintr-un federate, managementul datelor vehiculate în reþea, managementul proprietarilor obiectelor ºi managementul timpului.
Specificaþia HTL pune la dispoziþia programatorilor interfeþe spre limbajele C++,
Java ºi Ada, implementãrile RTI deja existând pe platforme precum Sun Solaris, SGI
IRIX, Linux ºi Windows NT.
Java Shared Data Toolkit (JSDT) este
pus la dispoziþie de Sun ºi oferã un cadru de
dezvoltare a aplicaþiilor Java colaborative (e.g.
suport pentru sincronizarea automatã a
zonelor de memorie partajatã ºi definirea de
canale abstracte pentru trimiterea ºi recepþionarea evenimentelor partajate). Utilizând JSDT, se poate implementa complet
HLA RTI.
Shared Data Objects (SDO) reprezintã oferta gratuitã a laboratorului AlphaWorks de la IBM care pune la dispoziþie un
toolkit Java, util pentru crearea mediilor virtuale distribuite, asemãnãtor cu JSDT, dar
furnizând mai multe facilitãþi pentru
programatori.
Domnul Sabin-Corneliu Buraga este doctorand
în Computer Science la Universitatea
„Al.I.Cuza” din Iaºi ºi poate fi contactat la
adresa busaco@infoiasi.ro sau pe Web la
http://www.infoiasi.ro/~busaco. n 87