Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica » calculatoare
Instrumente si sisteme de operare suport - servere multimedia

Instrumente si sisteme de operare suport - servere multimedia


INSTRUMENTE SI SISTEME DE OPERARE SUPORT

1. Servere multimedia

1.1. Principii de proiectare

Din punct de vedere hardware un server multimedia este o masina care inregistreaza fisiere audio si video (de regula pe discuri magnetice), pentru a le putea reda apoi mai multor utilizatori, fie pe reteaua de date, fie ca semnale video. Pe de alta parte, din punct de vedere software, al furnizarii de functii specifice, serverul apare ca o resursa ce permite unor utilizatori multipli sa acceseze colectii de fisiere audio si video, pe care le poate rula pin totalitate sau partial, poate inregistra noi fisiere, poate edita s.a.m.d. Serverele multimedia (numite de multe ori doar servere video, pentru ca aceasta e aplicatia cea mai complexa) difera mult de serverele de uz general, in special datorita problemelor puse de caracterisiticile temporale ale fluxurilor audio si video (esantianele trebuie sa fie generate si transmise la intervale fixe, fluxurile trebuie sa se sincronizeze, abaterile de la timpul optim de livrare sunt foarte mici). In rezumat, trei caracteristici sunt esentiale in diferentierea serverelor ce presteaza servicii media continue de tip audio si video si serverele care furnizeaza servicii bazate pe date traditionale numerice si textuale:



  • Stocare si cautare in timp real
  • Rata de transfer date foarte inalta
  • Capacitate de memorare foarte mare

In plus, se impune ca un server video sa fie dedicat, adica sa nu mai ruleze si alte aplicatii.

Cele mai importante proprietati incorporate de un server multimedia sunt:

Scalabilitate. O arhitectura scalabila permite cresterea capacitatii de procesare si de stocare in functie de cresterea fluxului video.

Fiabilitate. Un server media trebuie sa ruleze 24 de ore zilnic. Pentru garantarea livrarii datelor si in cazul caderii unui disc, se impune utilizarea unui subsistem cum este RAID (Redundant Array of Independent Drives), care sa permita declansarea unui mecanism de backup. De fapt majoritatea subsistemelor unui server media trebuie sa fie dublate, adica sa aiba redundanta hardware. In aceasta categorie intra ventilatoarele de racire, sursele de alimentare, structurile de magistrala, sistemele de intrare/iesire.

Conectivitate. Un video server trebuie sa suporte protocoale de semnalizare si sa se lege prin porturi de mare viteza in retele cu comutatie de pachete.

Suport de memorare pentru diferite tipuri de fluxuri de date. Pe server trebuie sa existe mecanisme care sa incorporeze cu usurinta protocoale exist ente sau viitoare, de exemplu: MPEG-1, MPEG-2, MP@ML/PRO, M-JPEG, etc.

Mare capacitate de memorare. In principiu se recomanda o memorare ierarhica, pe trei niveluri (benzi magnetice, discuri magnetice si module RAM). In plus, este necesara o memorie cache extinsa pentru transferurile de pe disc la porturile externe.

  1. Suportarea de utilizatori eterogeni multipli. Serverul trebuie sa poata manipula diferite fluxuri multimedia, deci trebuie sa aiba si capacitatea de a vehicula un volum mare de date intrare/iesire, sau mai exact trebuie sa posede un mecanism de control al admisiei pentru a putea primi noi cereri de la utilizatori, capacitate de acces multiplu pentru a permite mai multor utilizatori sa acceseze simultan acelasi material, garantarea emisiei in timp real si posibilitatea de incarcare on-line a unui fisier, chiar pe durata in care furnizeaza servicii.

1. Produse specifice

Desi exista o mare varietate de solutii industriale, orice server multimedia trebuie sa aiba un procesor high-end cum ar fi 586 sau RISC, un controler al suportului de memorare cum este RAID si un buffer cu iesiri instantanee video si audio in paralel. Iata cateva din cele mai cunoscute tipuri de servere existente pe piata:

1. Servere din familia Silicon Graphics CHALLENGE [12]

Exista 4 modele de servere CHALLENGE: S, DM, L si XL.

Challenge S poate fi configurat cu procesoare MIPS 100MHz R4600 sau MIPS 150mhz R4400 si cu 256MB memory. Cu doua canale diferentiale SCSI-2 Fast/Wide si cu un canal SCSI-2 Fast/Narrow single-ended, el ofera pana la 145GB memorie non-RAID. Cu sloturi I/O de 64-bit asigura un debit de pana la 267Mbps. Se poate utiliza pe retele Ethernet, Token Ring, FDDI si ATM.

Challenge DM ofera scalabilitate de pana la 4 procesoare 150MHz R4400, banda de 960 Mbps si 6GB memorie principala. Are memorie de 1.5TB conectata direct pe disc non-RAID, 4.7TB pe disc RAID si acelasi suport de interconectare in retea.

Challenge L poate utiliza de la doua la douasprezece procesoare R4400 la 200 Mhz.

Challenge XL, poate gestiona circa 1000 de fluxuri video simultan, cu pana la 36 procesoare, 6.3TB memorie RAID si 1.2GBps banda intrare/iesire.

HP BVS (Broadcast Video Server) - BVS II

Sistemele video si audio se combina pe carduri cu codoare si decodare MPEG-2 video si audio ruland cu pana la 15Mbps. Codoarele si decodoarele au interfata electrica RS422, cod de timp, video D1 si intrari/iesiri analogice audio (AES/EBU). Unitatea centrala de prelucrare CPU este HP743 sau HP PA-RISC CPU cu sistem de operare HP-RT(HP's Real Time Unix Operating System). CPU ofera API pentru aplicatii externe. Sistemul se poate conecta atat local-area (utilizand de regula FDDI) cat si wide-area (retea ATM). Pentru memorare se foloseste un hard-disk standard SCSI 9GB cu subsistem RAID. 3. 3.IBM's Ultimedia Server/6000

Ultimedia Server/6000 stocheaza si livreaza fluxuri de date multimedia si totodata permite un acces la diferitele interfete din retea (dar nu in timp real). Functiile serverului sunt asigurate de doua sisteme de servicii : MultiMedia FileSystem (MMFS) si Distributed Media Services (DMS)

4. EMC Media Server Series

Serverele din aceasta serie se bazeaza pe sistemul de stocare ICDA (Symmetrix Series of Integrated Cached Disk Array). Suporta fluxuri video codate JPEG, MPEG1, MPEG2, HDTV pe suport de tip Ethernet, FDDI, DS3, ATM/OC3 la un debit de pana la 1GB/s Interfata de intrare este SCSI 2 FWD.

5. Philips Consumer Electronics

Philips a lansat sistemul INV (Interactive Network Video) care asociaza un Video Server de mare capacitate (poate contine 50-200 filme comprimate MPEG-1 pe hard disk RAID de capacitate 420 MByte), si un terminal multimedia compatibil. A fost pregatit initial pentru un protocol de conectare pe linie bifilara torsadata ADSL (Asymmetric Digital Subscriber Line), cu posibilitatea de a rula acelasi material pentru cateva sute de clienti.

6. Sony Electronics

Sony a intrat pe piata video-serverelor cu Video-Store, o linie de redare video multi-canal orientata initial pe televiziune de aplicatii comerciale. Trei discuri bazate pe RAID 3, fiecare de 6.2 GByte asigura spatiu pentru 5 ore de emisie video comprimat. Se pot asocia mai multe unitati, fiecare suportand pana la 12 canale discrete.

Starlight Networks (Mountain View CA), experts in video LAN technology, recently

Interfete multimedia cu utilizatorul

Interfata utilizator este mijlocul prin care utilizatorul dialogheaza cu calculatorul printr-un sistem interactiv de intrari si iesiri. In cazul particular al interfetelor multimedia se impun cateva considerente specifice:

(i)         Determinarea continutului informational ce trebuie sa fie comunicat

(ii)       Reprezentarea caracteristicilor esentiale ale informatiei

(iii)     Reprezentarea intentiei de comunicare.

(iv)     Alegerea mediului potrivit pentru prezentarea informatiei

(v)       Coordonarea diferitelor media si a tehnicilor de asamblare cu prezentarea.

O clasificare a interfetelor multimedia poate fi:

  • Interfete de pregatire media (pentru introducerea de media analogice)
  • Interfete de compozitiemedia (pentru editarea de media simple (sound, video)
  • Interfete de integrare media (specifica relatiile dintre diferite elemente media in scop de manipulare documente si ca atare include editoare multimedia / hypermedia / hypertext si instrumente de autorizare.
  • Interfete de prezentare media (se folosesc pentru actualizarea documentelor multimedia: din aceasta categorie fac parte browserele).

1. Browsere

Sistemul de cautare tip browser este o tehnica de interfatare cu urtilizatorul foarte populara atat in sisteme de baze de date atat multimedia cat si conventionale. Utilizatorul dispune de un set de item-uri (obiecte) informationale (tot continutul sistemului sau doar o parte din el) pe care il poate scana. In sistemele multimedia, pentru a permite transferul unui continut cat mai mare de date se urmareste ca pe ecran sa apara cat mai multe item-uri. De regual, acestea sunt: icoane (mici reprezentari pictoriale), miniaturi (item-urile propriu-zise reduse la scara) sau texte (scurte comentarii despre continutul item-ului). In cele ce urmeaza, se vor mentiona caracteristicile unor browsere intens utilizate.

Netscape Navigator

Netscape Navigator, unul din cele mai utilizate navigatoare pe Internet, ofera o platforma pentru aplicatii on-line ce suporta obiecte active (Live Objects) si alte elemente multimedia interactive cum sunt Java applets sau Netscape inline plug-ins. Principalele facilitati includ maparea imaginilor pe partea client, indicatori (bookmark) eficienti, suport OLE, animatie GIF, FTP, facilitati e-mail, suport JPEG si suport pentru fluxuri multiple video, audio sau alte formate de date. Versiunea Gold include un editor WYSIWYG si un suport pentru genrarea de pagini Web live.

HotJava World-Wide Web Browser

Principala diferenta dintre HotJava si alte browsere este posibilitatea de a conecta dinamic protocoale Internet, chiar daca nu sunt deja cablate. In plus, HotJava localiza si manipula diferite tipuri de obiecte de date (de ex. documente HTML sau imagini JPEG ). Un set de caractere specifica numele clasei de limbaj Java si prin aceasta asigura conectarea unui handler de protocol in sistemul local. In esenta, noutatile oferite de HotJava sunt : continut dinamic, obiecte dinamice (se pot recunoaste obiecte noi prin up-grade), protocoale dinamice, securitatea sporita a retelei (pe doua niveluri).

Microsoft's Internet Explorer

Este valabil pe Windows si, din 1996, pe Mac.Intosh si in principiu isi imparte piata cu Netscape. Desi fiecare dintre ele implementeaza acelasi limbaj HTML (3.0, 3.2 sau 4.0 in functie de versiunea browserului), diferentele de afisare sunt vizibile si creeaza deosebite probleme pentru un dezvoltator. Mai mult, motorul limbajului de scripting, implementat diferit de companiile producatoare, a dat rezultate neasteptate la rularea pe unul sau altul din clienti. Astfel, in partea client, marea problematica a accesibilitatii maxime a fost dezvoltarea paginilor intr-o asemenea maniera incat rezultatul final sa fie afisat si executat in mod identic de ambele browsere.

SVG - o tehnologie multimedia complexa

SVG (Scalable Vector Graphics) este o tehnologie multimedia in dezvoltare evidenta pe Web. De altfel, consortiul W3C (World Wide Web Consortium) a propus deja un standard SVG [13] care beneficiaza de o larga sustinere industriala. Tehnologia SVG este adoptata atat de dezvoltatori de browsere, ca Microsoft, Netscape sau Opera Software, ca si companii de proiectare bazate pe grafica cum sunt Adobe, Corel, Eastman Kodak sau Macromedia. De fapt, formatele de fisiere vectoriale se utilizeaza de multa vreme, si nu neaparat in legatura cu grafica (de ex. in formate de documente Lotus sau XLS de la Microsoft), dar in prezent specificatia propusa de W3C reuneste patru tehnologii vectoriale: Precision Graphics Markup Language, o extensie Postscript propusa de Adobe, Web Schematics, propus de Laboratorul Central al Consiliului Cercetarii din Marea Britanie pentru redactarea de organigrame si documente schematice, Vector Markup Language propus de de Microsoft si DrawML, o tehnologie bazata pe XML si Java propusa de Exosoft AB din Suedia.

Spre deosebire de formatele grafice de tip bitmap, care presupun transferul pixel cu pixel al unei imagini, tehnologia vectoriala utilizeaza seturi complexe de descriptori ai unei imagini scrise in formate de program ca XML sau Postscript, care pot fi redate ca elemente grafice de procesoare grafice dedicate sau chiar de CPU special programate. Ideea este ca transmisia unui astfel de vector necesita mai putina largime de banda si prin aceasta devine accesibila si unor statii portabile sau unor retele ce dispun de statii cu putere de procesare mai mica si capacitate de stocare limitata.

SVG exprima imaginile mai intai prin seturi de elemente simple (linii drepte si curbe). Apoi, aceste elemente sunt utilizate pentru descrieri de forme geometrice complexe (cercuri, poligoane) sau de aspecte complexe ( dimensiuni, pozitii). Acum, deoarece XML permite operabilitate intre platforme, dezvoltatorii Web pot crea un singur set de descriptori pentru o imagine, care sa poata fi utilizat de orice receptor apt sa recunoasca SVG (inclusiv telefoane mobile). Prin aceasta se elimina necesitatea de a crea fisiere multiple pentru operare pe platforme diferite si se ofera un sprijin eficace site-urilor create special pentru tehnologii mobile. In plus, XML poate opera cu text si imagine in acelasi document, ceea ce confera multiple avantaje, dintre care e suficient sa mentionam cautarea unei iamgini dupa un insert textual.

Desigur, tehnologia SGV are si limitari: poate reda doar imagini bidimensionale si nu sunt adecvate in descrierea de fotografii, care prin SGV sunt descrise de fisiere foarte mari, mult mai mari decat cele bitmap. In fig. 14 este prezentata o structura de vizualizare prin SGV care evidentiaza diferitele tehnologii utilizate.

Sursa XML cu cod SVG

Browser

Vizualizator SVG

Cautator XML

Cautator CSS

Instrument de cascadare CSS

Instrument de redare SVG

Vizualizator SVG cu animatie

DOM

Model obiect CSS

Instrument JavaScript

Instrument de animatie SMIL

Fig.14. Tehnologii implicate in vizualizatoarele SGV

Deoarece SVG se bazeaza pe XML, este necesar un cautator (parser) XML. Modul in care apar diferitele evenimente Web este sesizat prin cautatorul CSS (Cascading Style Sheets) si prin instrumentul de tratare al cascadei, care urmareste si specificitatea elementelor dintr-o pagina Web. Aplicarea unui singur stil pe mai multe pagini Web se poate face prin XSL (Extensible Style Language), iar modificarea paginilor Web vazute ca obiecte program se poate face cu un nucleu DOM (Document Object Model). In fine, sincronizarea dintre diferitele elemente multimedia dintr-un document se poate face cu SMIL (Synchronized Multimedia Integration Language).

Viitorul tehnologiei SGV depinde de modul in care va fi utilizata in browser ca Netscape, Microsoft sau Opera, dar e sigur ca a castigat deja un domeniu: cel al filmelor de animatie, cum sunt cele produse de Macromedia Flash.

3. Instrumente de autorizare.

In aceasta categorie se pot inscrie numeroase aplicatii, de la simple editoare HTML pana la sisteme complexe de impachetare de reprezentari complexe multimedia. Totusi, se pot separa doua categorii importante - instrumente WEB si instrumente orientate MHEG.

HyperEdge Environment

HyperEdge este un set de pachete software UNIX, X-Windows, Motif si hypermedia furnizate de HyperMedia Corporation. Permite rezolvarea de numeroase probleme de gestionare a informatiei, cum sunt problemele de link-are si adresare. Din pacate HyperEdge e valabil doar pe masini Sun.

Sun MAEstro

MAEstro este un mediu multimedia distribuit valabil pe statii Sun si NeXT. Este proiectat pentru interfatarea de elemente multimedia cum sunt CD audio, discuri video, interfata MIDI, afisare text, localizate pe statii diferite.

Autoritatea SGML/HTML WYSIWYG

Cele mai multe pachete de programe ce proceseaza documente HTML sunt filtre si convertoare intre diferite formate de prezentare si HTML. Se executa de asemena texte de contol al corectitudinii HTML. are also availablesRefritor la HTML, cele mai multe instrumente sunt editoare de texte, care asigura:

  • editare simpla de text
  • inserarea de tag-uri HTML prin clic pe butoane, selectari de menu sau apasari de taste
  • indicarea stilurilor in care poate fi vazut si editat un document
  • editarea paletei de tag-uri utilizator
  • editarea listei de URL-uri din documentul curent
  • dialog standard pentru construirea URL-ului unui fisier local

RAD PowerMedia

RAD PowerMedia este un mediu deschis si scalabil ce poate rula pe platforme Microsoft Windows NT, UNIX, PowerPC, Apple, Sun, Hewlett-Packard, Silicon Graphics si IBM -ceea ce permite o reducere sensibila a costurilor unor complexe eterogene de calcul. De asemenea, RAD PowerMedia suporta numeroase editoare multimedia si MediaPlayers-video, audio, Postscript, imagine, grafica, animatie si efecte speciale pentru crearea de aplicatii interactive. RAD are un set de pachete de programe multimedia client/server pentru aplicatii distribuite prin Internet sau retele standard on-line sau chiar individual via CD-ROM. RAD este compatibil cu Internet World-wide Web (WWW), HTTP (HyperText Transport Protocol) si Universal Resource Locators (URLs) in orice tip de HyperLinks.

3. APLICATIE DE RETEA FOLOSIND TEHNOLOGIA DIRECT PLAY

Functionalitatea aplicatiei

"Project Transmisii de date" este un proiect de joc multiplayer, in configuratie client-server. Utilizatorul are la dispozitie un meniu cu care poate sa creeze o sesiune noua de joc, sau poate sa caute sesiuni deja existente si sa se conecteze la ele.

Ca gameplay, jucatorul poate naviga cu un vehicul care se controleaza cu mouse-ul si tastatura. El poate sa vada pe harta jocului navele celorlalti playeri.

Tehnologii de dezvoltare:

Limbaj - C++

IDE, compilator: Visual C++ 6.0

API: Direct X, Open GL, Windows API

Cerinte:

Microsoft Windows 98/2000/XP

Microsoft DirectX 9.0

OpenGL 1.1(de obicei este deja instalat pe sistemul de operare)

TCP/IP

Structura aplicatiei

Aplicatia este proiectata si realizata orientat obiect, si consta dintr-o suma de clase cu diferite functionalitati. Pe langa structura puternic modularizata, aplicatia prezinta si variabile globale, si functii CALLBACK globale, pentru a putea implementa comunicatia prin sistemul de mesaje Windows.

Principalele clase ale aplicatiei:

td_application: gestioneaza bucla principala a aplicatiei, contine clasa server si clasa client

td_input: gestioneaza intrarea de la tastatura si mouse. Aceasta este efectuata prin Direct Input

td_graphics: gestioneaza desenarea in fereastra, are metode pentru desenul obiectelor fixe/mobile, a afisarii imaginilor bitmap si a afisarii de text.

td_server: gestioneaza comportamentul aplicatiei cand utilizatorul selecteaza pornirea unei noi sesiuni de joc

td_client: gestioneaza modul client de functionare a aplicatiei

*si sererul si clientul contin un obiect td_player, care este playerul local, controlat de utilizator, si un obiect td_terrain

td_player: gestioneaza comportamentul legat de gameplay: fizica, miscare, input, afisare in fereastra

td_terrain: descrie, incarca si afiseaza terenul, bazat pe tile-uri(partrate mai mici care compun un "cearsaf" mai mare)

S-au definit si alte clase mai marunte, ajutatoare.

Dinamica aplicatiei este orientata pe cadru de desen. La fiecare bucla principala de mesaje a programului este apelata metoda doPerFrame a obiectului aplicatie, care face mai departe toate sarcinile necesare pe un cadru: input, fizica, comunicatie in retea.

Afisarea este apelata separat, la reimprospatarea ferestrei, care e fortata in bucla de mesaje.

Pe langa acest fir de executie secvential, comportarea este determinata si de un thread separat de primire a mesajelor din retea, care acceseaza structurile si obiectele principal

Prezentarea Direct Play

Pentru aplicatii care necesita viteza si capacitate numerica mare in comunicatii, in special jocuri, Microsoft Direct X pune la dispozitia dezvoltatorilor componenta numita Direct Play. Conceput ca un strat superior protocolului de comunicatie instalat pe masina, care poate fi TCP/IP, IPX sau modem/serial, Direct Play poate oferi un suport de comunicatie care poate sustine sesiuni de mii de utilizatori simultan, in conditii de viteza asteptate de la un joc. Aceasta interfata ofera structuri orientate deja pe specificul jocurilor, scutind programatorii de efortul implementarii direct pe protocolul standard.

COM si Direct X

COM(Component Object Model) este un model de a vedea dezvoltarea de soft bazat pe componente inchise, netransparente. Aceste componente pot pune la dispozitia programatorului interfete multiple, cu metodele orientate spre utilitatea interfetei respective. Un avantaj este ca se pot folosi componente de acest gen fara a exista dependenta de limbajul de programare in care au fost dezvoltate, atata vreme cat limbajul care le apeleaza suporta COM, si obiectele sunt instalate pe masina respectiva.

Direct X ofera cateva astfel de obiecte, care au ca scop in mod particular comunicatia directa cu hardware-ul, si inlesnirea programarii jocurilor, la un nivel de performanta ridicat.

Aplicatia prezentata aici utilizeaza doua obiecte Direct X, Direct Input si Direct Play. Fiecare din acestea poate avea multiple interfete, in functie de scopul urmarit de programator. De exemplu, Direct Input ofera in cazul nostru o interfata pentru mouse, si una pentru tastatura, ale aceluiasi obiect. Deasemenea Direct Play ofera interfete pentru server, pentru client, pentru adresa, cu metodele lor specifice.

3.4. Interfetele Direct Play

Interfata IDirectPlay8Address, oferita sub forma unei clase, cu metodele ei, caracterizeaza o singura adresa. Ea poate seta si oferi informatii despre device(placa de retea, modem), despre Service Provider(adica protocolul de comunicatii pe care ruleaza aplicatia) care poate fi TCP/IP, IPX sau modem, despre portul de care e legata acea adresa.

Interfata IDirectPlay8Server caracterizeaza serverul propriu-zis, cu crearea clientilor, gestionarea listei de clienti, trimiterea de informatie la un client in mod particular, la un grup, sau la toti. Prin analogie interfata IDirectPlay8Client caracterizeaza un client de Direct Play.

In modul client-server toate comunicatiile se efectueaza prin server, cum este si normal. Un client nu are acces direct la alt client sub nici o forma. O instanta la un moment dat a unui joc unic in mai multi se numeste sesiune de joc. O sesiune de joc are o gazda, care este in acest caz chiar serverul. Cand un client vrea sa intre in joc, cauta toate gazdele posibile, si o selecteaza pe cea dorita dintr-o lista. Gazda decide primirea sau respingerea conectarii.

Sistemul de mesaje Direct Play

Un joc multiplayer tine in memorie evidenta playerilor(jucatorilor) prin intermediul unor structuri proprii. Cum aceste structuri trebuie actualizate in timp real in functie de ce se intampla pe alte masini, modul Direct Play de a primi informatii este similar cu mesajele Windows. Nu se poate gestiona complet primirea unui mesaj semnificativ pentru actiunea jocului exclusiv in obiectele utilizatorului. Trebuie in schimb pasata la crearea interfetei server respectiv client adresa unei functii statice(de preferinta globale) CALLBACK, care este apelata automat la primirea de mesaje din retea.

In corpul acestei functii definim comportamentul programului in functie de informatia din mesaje. Mesajele pot fi consacrate, pentru cautare, conectare, acceptare, plecare din joc etc., sau definite de utilizator, acestea contin informatii relevante pentru desfasurarea jocului, de exemplu pozitia pe harta a navei unui jucator de la distanta, si orientarea si viteza acesteia.

Deoarece mesajele sunt primite intr-un thread separat al procesului, accesul la datele jocului trebuie atent sincronizat pentru a evita inconsistente de memorie, sau conflicte de acces.

Realizarea comunicatiei client-server in aplicatia prezentata.

Structurile care descriu playerii externi au aceeasi forma si pentru server si pentru client. Ele sunt concepute scurte, pentru evitarea pierderii lor in retea. Deoarece informatia se poate transmite in Direct Play si sincron si asincron, am ales prima maniera de transmitere.

Cautarea gazdelor: dupa ce o gazda sau mai multe au intrat deja in joc pe retea, ele pot primi playeri externi, clienti. Clientul mai intai trimite o comanda de cautare gazde posibile. Raspunsul ii vine in bucla de mesaje, unde mesaje diferite si repetate de la gazdele care emit definesc numele si adrea serverelor. Pe baza acestor mesaje clientul construieste o lista din care apoi alege o gazda pentru conectare.

Conectarea: pentru conectare are loc un schimb de mesaje intre client si server. Serverul care asculta in retea primeste un mesaj DPNID_INDICATE_CONNECT. Decizia de acceptare se manifesta prin intoarcerea S_OK din functia de gestiune a mesajelor. Clientul primeste in acest caz permisiunea de a incepe si se poate pregati de joc, fiind considerat acceptat. Apoi serverul primeste mesajul DPNID_CREATE_PLAYER, la care trebuie sa creeze structura interna a respectivului player extern, si sa-i asigneze un index pentru acces rapid.

Noului player i se transmite intreaga lista cu ceilalti playeri externi, prrecum si informatiile playerului gazda(o serie de structuri cu x, y, unghi, viteza, id si index).

Desfasurarea jocului:

Serverul trimite la fiecare cadru tuturor clientilor informatiile despre toti clientii ceilalti, si playerul gazda, care ruleaza pe server.

Clientul transmite doar informatiie proprii la server, care creeaza acea lista de playeri externi, pe care o trimite in continuare actualizata. Clientul are si el lista cu playerii externi, dar o primeste de la server, asa cum o cunstruieste el. Se evita trimiterea spre un client a informatiilor despre el insusi. In schimb, pe locul respectiv(cu propriul sau index) se trimit informatiile gazdei.

Alte posibilitati de dezvoltare cu Direct Play, incheiere

Pe langa solutia implementata, aplicatia se poate dezvolta in continuare pe urmatoarele directii suportate de Direct Play:

Crearea unei aplicatii lobby: Aplicatia de aceasta natura are rolul de a facilita compunerea unei echipe de jucatori si organizarea ei prin Internet. Ea poate lansa apoi sesiunea de joc propriu-zisa.

Crearea posibilitatii de schimbare a portului de comunicatie si a alegerii service-providerului. Direct Play suporta cautarea pe alte porturi a sesiunilor de joc, in cazul in care portul consacrat din oficiu este ocupat de alte aplicatii

Avantajele si dezvantajele Direct Play: Suportul pentru aplicatii de tip joc inlesneste munca de creare a infrastructurii de retea. Desi dificultatea de invatare si utilizare la nivel expert a tehnologiei depaseste dificultatea programarii prin socketi sau datagrame, direct pe protocolul standard, Direct Play asigura un suport mult mai robust si mai bine structurat pentru comunicatie specifica jocurilor.

Din pacate, in afara de constrangerile de programare orientata pe mesaj, apare dependenta de platforma, care contrazice principiul internetului si a protocolului IP de universalitate. Acest dezavantaj contribuie la monopolul Microsoft asupra sistemelor de operare care suporta jocurile, si impiedica dezvoltarea de jocuri intr-adevar de calitate in scop comercial pe alte platforme cum ar fi Linux sau Mac, unde numarul jocurilor executate si vandute este nul prin comparatie.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.