Cieľ projektu
Programová podpora pre sieťový simulátor
V projekte sa snažíme vytvoriť komplexné riešenie pre simuláciu počítačovej siete, ktoré by bolo jednoduché na používanie a malo by čo najlepšiu dostupnosť pre široké spektrum používateľov. Projekt by mohol napríklad dopomôcť k zlepšeniu výučby mnohých sieťových predmetov a prispel by k lepšiemu pochopeniu počítačových sietí.
V našom projekte chceme vytvoriť komplexné riešenie pre simuláciu počítačovej siete založenej na simulátore ns-2. Simulátor síce ponúka simuláciu používateľom zadanej počítačovej siete, avšak vstup vyžaduje dobrú znalosť skriptovacieho jazyka TCL. Používateľ je nútený naučiť sa a napísať si vlastné TCL skripty, ktoré potom poskytne simulátoru ako vstup. Taktiež výstup simulátora je náročnejší na čítanie a vyžaduje si znalosť jeho štruktúry, aby používateľ rýchlo vyčítal informácie, ktoré ho zaujímajú. Zameriame sa preto predovšetkým na spracovanie vstupov a výstupov simulátora.
Návrh projektu
Návrh špecifikovaného projektu
Navrhované riešenie je aplikácia umiestnená na linuxovom serveri. Rozhraním pre používateľa bude webová lokalita, na ktorej budú dostupné funkcie ako vytvorenie topológie zadaním počtu zariadení v sieti, ako sú prepínače, smerovače a koncové zariadenia. V ponuke budú aj vopred definované jednoduché a náročnejšie topológie. Zadanú topológiu po skončení simulácie používateľ uvidí v súhrnnom zobrazení aj s výsledkami. Zadávané topológie a výsledky simulácií budú uchovávané na serveri pre neskoršie využitie, prípadne s dovolením používateľov umiestňované do databázy topológií, aby mohli byť poskytnuté aj pre iných používateľov. Výstupy simulátora budú spracovávané tak, aby boli jednoducho čitateľné pre používateľa a vedel z nich rýchlo a jednoducho vyčítať informácie o zadanej sieti, ktoré ho najviac zaujímajú. Tieto informácie, respektíve výsledky simulácie budú zobrazované na unikátnych URL na danej webovej lokalite, aby boli ľahko prístupné. Výsledky sa zobrazia pri vizualizácii simulovanej siete.
Aplikáciu sme sa rozhodli navrhnúť ako klient-server aplikáciu. Dôvodom takéhoto riešenia je, že niektorí používatelia môžu mať výkonnejší hardvér než akým je vybavený server. Simulácia bude prebiehať lokálne na počítači používateľa, čo spôsobí jej urýchlenie. Výstup simulácie potom používateľ iba odošle na server, ktorý ho následne spracuje a výsledky zobrazí na webovej lokalite. V prípade že používateľ nemá výkonnejší hardvér ako poskytuje server, môže simuláciu spustiť priamo na serveri. V tomto prípade však nemusí čakať a sledovať server kedy simulácia skončí, pretože aplikácia bude využívať e-mailový server, aby upozornila používateľa, že jeho simulácia skončila a taktiež kde môže nájsť jej výsledky.
Výhodou nášho návrhu je vysoká dostupnosť. Potrebný je iba Internet a webový prehliadač. Simulácie môžu prebiehať či už na serveri, alebo lokálne, podľa výberu používateľa. Celkové riešenie sprehľadňuje prácu pri simuláciách správania sa počítačových sietí a uľahčuje vytváranie vstupov a čitateľnosť výstupov. Výhodou taktiež je, že používateľ nemusí čakať na skončenie simulácie pri počítači, keďže čas každej simulácie je rôzny. Po skončení simulácie aplikácia používateľa upovedomí o skončení ním zadanej simulácie.
Nevýhodou takéhoto riešenia je, že pri veľkom množstve simulácií na serveri bude spracovávanie výsledkov časovo náročnejšie.
V projekte budú vo veľkej miere využívané najmä skriptovacie jazyky. Simulátor je kompatibilný s operačným systémom Linux a preto bude aplikácia projektovaná na linuxové webové servery. Preferovať budeme webový server Apache 2, avšak ak to bude potrebné, nebude problém vytvoriť aplikáciu aj pre iný webový server. Požiadavky na hardvér nie sú ničím výnimočné. Simulátor ns-2 však beží iba pod operačným systémom Linux a preto je potrebné nakonfigurovať linuxový server. Softvérové požiadavky taktiež nie sú špeciálne. Naše riešenie budeme vytvárať pomocou bežne dostupných nástrojov na operačnom systéme Linux. Časové požiadavky závisia od náročnosti simulácie a od výkonnosti hardvéru, na ktorom bude aplikácia umiestnená.