Virtlab:Vývojáři

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 14:04, 24. 7. 2007
Gry72 (Diskuse | příspěvky)

← Předchozí porovnání
Aktuální verze
Gry72 (Diskuse | příspěvky)
(Distribuovaný Virtlab)
Řádka 1: Řádka 1:
-Zde jsou informace pro SRPV (nepřihlášený uživatel se zde nedostane a přihlásit se mohou jen uživatelé, které vytvoří správce [[Uživatel:Vav166|Vav166]])+Zde jsou informace primárně pro [[Nápověda:SRPV | SRPV ]]
== Filosofie vývoje == == Filosofie vývoje ==
-* důraz na spolehlivou základní funkčnost+* důraz na '''spolehlivou základní funkčnost'''
-** co nejméně zbytečných omezení pro uživatele a vychytávek speciálních případů (na které stejně v praxi téměř nedojde a jen znepřehledňují kód)+** co '''nejméně zbytečných omezení''' pro uživatele a vychytávek speciálních případů (na které stejně v praxi téměř nedojde a jen znepřehledňují kód)
-* důsledné ošetření chybových stavů, zotavení z chyb+* důsledné '''ošetření chybových stavů''', zotavení z chyb
-** počítat s výpadkem komunikace mezi distribuovanými komponentami ve kterémkoli okamžiku a zotavit se z něj+** '''počítat s výpadkem komunikace''' mezi distribuovanými komponentami ve kterémkoli okamžiku a zotavit se z něj
-* co největší modularita+* co '''největší modularita'''
** na úrovni spustitelných programů i zdrojových kódů ** na úrovni spustitelných programů i zdrojových kódů
 +** důležité pro '''neustále se rozrůstající''' projekt i vývojový tým
* kvalitní a jednotný logging debug informací a informací o běhu * kvalitní a jednotný logging debug informací a informací o běhu
** mezi servery předávat volitelný parametr hlavičky TransactionID - vymýšlí klient (povětšinou řídící server (PHP), případně aktivátor konfigurací) - server nemění, zopakuje v odpovědi, pokud dotaz rozesílá dále, zopakuje. Loguje se pro snadné sledování akcí vyvolaných konkrétním požadavkem. ** mezi servery předávat volitelný parametr hlavičky TransactionID - vymýšlí klient (povětšinou řídící server (PHP), případně aktivátor konfigurací) - server nemění, zopakuje v odpovědi, pokud dotaz rozesílá dále, zopakuje. Loguje se pro snadné sledování akcí vyvolaných konkrétním požadavkem.
-** debug a log hlášení v angličtině (předpoklad brzkého exportu řešení mimo ČR)+** debug a log '''hlášení v angličtině''' (předpoklad brzkého exportu řešení mimo ČR)
- 
-== Nedistribuovaný Virtlab == 
-I přes vývoj distribuované verze bude v horizontu 1-2 let udržována i původni verze (http://vl-test.cs.vsb.cz), ze které bude zejména [[Uživatel:kub348|Roman Kubín]] odstraňovat připadné existujicí chyby. Zásadní rozšíření však již nebudou implementována. Na produkčním Virtlabu bude nasazena právě tato verze do té doby, než bude distribuovaná verze plně funkční a kvalitně otestována. 
- 
-* [[Virtlab:Testing|Co je třeba testovat]] 
-** [[Virtlab:Testing-globalTesting-12-2006|Globální otestování 12/2006]] 
-* [[Virtlab:Nondistr-reported-errors|Ohlášené chyby]] 
- 
-=== Materiály === 
-Materiály zde prezentované mohou být historické a nemusí odpovídat nejnovějšímu stavu. 
-* [[Media:README_virtlab-Nemec.txt|Původní protokol CServer-Applet (od Pavla Němce)]] 
== Distribuovaný Virtlab == == Distribuovaný Virtlab ==
'''Testovací prostředí distribuovaného Virtlabu je budováno s podporou grantu-projektu Fondu rozvoje Cesnet č. 213/2006 a za spoluúčasti LCNA při obchodně-podnikatelské fakulty Slezské univerzity v Karviné.''' '''Testovací prostředí distribuovaného Virtlabu je budováno s podporou grantu-projektu Fondu rozvoje Cesnet č. 213/2006 a za spoluúčasti LCNA při obchodně-podnikatelské fakulty Slezské univerzity v Karviné.'''
-V repository větev DISTR+* Seznam prací a harmonogram pro zprovoznění pilotní konfigurace je v [[Virtlab:VirtIS|VirtISu]]: [http://virtis.viakis.net http://virtis.viakis.net] nebo [https://virtis.viakis.net https://virtis.viakis.net]
- +* V SVN repository větev DISTR
-* [[Virtlab:DistrTerminologie|Terminologie a základní architektura]]+* [[Virtlab:Terminologie|Terminologie a základní architektura]]
-* Komponenty+
-** [[Virtlab:DistrVirtlabServer|řídící server lokality ("Virtlab server")]]+
-** [[Virtlab:DistrRezervServer|rezervační server]]+
-** [[Virtlab:DistrCServer|konzolový server]]+
-** segment virtuálního spojovacího pole+
-*** n x C3550 (příp. C1900), n x ASSSK1 (a.k.a. Tatabazmek)+
-*** [[Virtlab:Tunelovací server|Tunelovací server]]+
-*** [[Virtlab:DistrConfigServer|konfigurační server]]+
- +
-* [[Virtlab:DistrProtokoly|Protokoly - obecná pravidla]]+
-** [[Virtlab:Rezervační server|Rezervační server]]+
-** [[Virtlab:DistrProtokolCServer|Konzolový server ]]+
-** [[Virtlab:DistrProtokolConfigServer|Konfigurační server ]]+
-* [[Virtlab:DistrDatoveStruktury|Datové struktury]]+
* [[Virtlab:DistrMapovani|Mapování logických laboratorních prvků na fyzické]] * [[Virtlab:DistrMapovani|Mapování logických laboratorních prvků na fyzické]]
 +* '''Komunikace mezi lokalitami'''
 +** Propojovací tunely - datové toky (enkapsulované rámce) mezi rozhraními laboratorních prvků. Propojovací tunely jsou ukončeny na [[:Kategorie:Tunelovací server | tunelovacích serverech]] jednotlivých lokalit.
 +** Komunikace mezi [[:Kategorie:Rezervační server | rezervačními servery]]
 +** Komunikace mezi [[:Kategorie:Konfigurační server | konfiguračními servery]]
 +* [[Virtlab:LoggingDebugging|Logování a debugging]]
 +* [[Virtlab:TimeUsage|Unifikovaná práce s časem]]
-* Komunikace mezi lokalitami 
-** Propojovací tunely - datové toky (enkapsulované rámce) mezi rozhraními laboratorních prvků. Propojovací tunely jsou ukončeny na tunelovacích serverech jednotlivých lokalit. 
-** Komunikace mezi rezervačními servery 
-** Komunikace mezi konfiguračními servery (?) 
- 
-* [[DistrRozsireni|Navrhované pokročilé vlastnosti a plány do budoucna]] 
- 
-* [[Virtlab:DistrTesting|Co je třeba testovat (až bude co...)]] 
-* konfigurace 
-** [[Virtlab:DistrTestovací-Konfigurace|Konfigurace testovacího distribuovaného Virtlabu]] 
- 
-* [[Virtlab:DistrPiloting|Zprovoznění pilotní instalace - červenec 2007]] 
- 
- 
-=== Nejbližší nutné kroky (OLD) === 
-Oddělení logické topologie od fyzické - Honza Vavříček 
- 
-* část GUI pro práci se zařízeními buďto zatím odstranit nebo zobecnit, aby uměl generovat konfigurační soubory pro ConServer (mapování globálního jména prvku na znakové zařízení nebo IP adr./port) a rezervační server (parametry prvků k dispozici + časy kdy a komu). Pokud by bylo odstraněno, musel by správce konfigurační soubory psát ručně 
-* nástěnka v současném pojetí s timesloty zmizí 
-* rezervace - předělat, možnost rezervace bez ohledu na timesloty, paralelní a překrývající se rezervace 
-* do úlohy přidat XML s popisem logické topologie 
-* spuštění úlohy - úprava parametrů předávaných appletu (který je předává dále konzolovému serveru) - s ohledem na nový protokol applet-conserver, zaslání globální identifikace cílového laboratorního prvku a reservationID, který snad může nějak posloužit pro autentizaci. 
-Předání IP adresy správného konzolového serveru (proxying přes server lokality).  
- 
-Konzolový server - Tomáš Hrabálek 
- 
-* Definice portů MOXA (/dev/ttyMx], na kterých jsou připojeny jednotlivé prvky, nezveřejňovat mimo konfigurační soubory Conserveru dané lokality. Navenek v protokolu Applet-Conserver pracovat s globálními jmény prvků. V konfiguračním souboru Conserveru dát možnost definovaat buďto číslo portu na MOXA (jméno souboru znakového zařízení) nebo IP adresu a portu serveru, kam navázat TCP spojení (instance UML a Dynamips) 
-* Conserver musí mít v konfiguraci tabulku adres Conserverů ostatních lokalit, aby z globálního jména prvku, na který se chce uživatel připojit, ze jména lokality poznat, kam protáhnout TCP spojení. 
- 
-== Zápisy ze schůzek == 
-* [[Virtlab:Porady|Zápisy z porad]] - provozní záležitosti (produkční i testovací Virtlab), testing  
-Zápisy ze schůzek se nacházejí v kategorii [[:Kategorie:Zápisy schůzí|Zápisy schůzí]] 
-* pro čistě NEdistribuovaný Virtlab je kategorie [[:Kategorie:Zápisy schůzí nedistribuovaného virtlabu|Zápisy schůzí nedistribuovaného virtlabu]] 
-* pro čistě distribuovaný Virtlab je kategorii [[:Kategorie:Zápisy schůzí distribuovaného virtlabu|Zápisy schůzí distribuovaného virtlabu]] 
- 
-== Obecné informace == 
-* [[Help:MediaWiki|Věci k zacházení s (touto) Wiki]] 
-* další užitečné informace jsou na stránce [[Nápověda a HOW-TOs]] 
-* [[Virtlab:Kontakty|Podrobné kontakty na člený SRPV s "rozpisem" činností]] 
-* [https://vl-test.cs.vsb.cz/websvn/ Webové rozhraní pro přístup k SVN] ('''nutná autentizace''' univerzálním heslem) 
- 
-Testovací Virtlab může být kdykoli upgradován z SVN. '''Do SVN proto dávejte prosím jen konzistentní a rozumně funkční verze''', žádné mezistavy. 
-Pokud tedy na testovacím Virtlabu něco zkoušíte, udělejte si kopii webové struktury u sebe v adresáři, protože '''"oficiální" struktura webu může být kdykoli prepsána upgradem z repository'''. 
-* [[Virtlab:SQL|Požadavky na změnu SQL databáze na produčním Virtlabu]]+[[Kategorie:UNCOMPLETE]]

Aktuální verze

Zde jsou informace primárně pro SRPV

Filosofie vývoje

  • důraz na spolehlivou základní funkčnost
    • co nejméně zbytečných omezení pro uživatele a vychytávek speciálních případů (na které stejně v praxi téměř nedojde a jen znepřehledňují kód)
  • důsledné ošetření chybových stavů, zotavení z chyb
    • počítat s výpadkem komunikace mezi distribuovanými komponentami ve kterémkoli okamžiku a zotavit se z něj
  • co největší modularita
    • na úrovni spustitelných programů i zdrojových kódů
    • důležité pro neustále se rozrůstající projekt i vývojový tým
  • kvalitní a jednotný logging debug informací a informací o běhu
    • mezi servery předávat volitelný parametr hlavičky TransactionID - vymýšlí klient (povětšinou řídící server (PHP), případně aktivátor konfigurací) - server nemění, zopakuje v odpovědi, pokud dotaz rozesílá dále, zopakuje. Loguje se pro snadné sledování akcí vyvolaných konkrétním požadavkem.
    • debug a log hlášení v angličtině (předpoklad brzkého exportu řešení mimo ČR)


Distribuovaný Virtlab

Testovací prostředí distribuovaného Virtlabu je budováno s podporou grantu-projektu Fondu rozvoje Cesnet č. 213/2006 a za spoluúčasti LCNA při obchodně-podnikatelské fakulty Slezské univerzity v Karviné.

Osobní nástroje