Virtlab:Vývojáři

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 10:52, 11. 2. 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 ==
 +* 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)
 +
-== Stávající (nedistribuovaný) Virtlab - provoz a testování ==+== 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é.'''
-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.+* 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:Terminologie|Terminologie a základní architektura]]
-* [[Virtlab:Testing|Co je třeba testovat]]+
-** [[Virtlab:Testing-globalTesting-12-2006|Globální otestování 12/2006]]+
- +
-* [[Virtlab:SQL|Požadavky na změnu SQL databáze na produčním Virtlabu (nedistribuovaná verze Virtlabu)]]+
-* [[Virtlab:Porady|Zápisy z porad - provozní záležitosti (produkční i testovací Virtlab), testing]]+
-* [[Virtlab:Kontakty|Podrobné kontakty na člený SRPV s "rozpisem" činností]]+
-* konfigurace+
-** [[Virtlab:Produkční-Konfigurace|Konfigurace produkčního Virtlabu]]+
-** [[Virtlab:Testovací-Konfigurace|Konfigurace testovacího Virtlabu]]+
- +
-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'''.+
- +
-=== Zápisy ze schůzek správců, testerů a vývojářu ===+
- +
-Seznam zápisů naleznete v kategorii [[:Kategorie:Zápisy schůzí nedistribuovaného virtlabu|Zápisy schůzí nedistribuovaného virtlabu]].+
- +
-=== Materiály k nedistribuvoanému Virtlabu ===+
-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)]]+
- +
-== Architektura distribuovaného Virtlabu ==+
- +
-'''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+
- +
-* [[Virtlab:DistrTerminologie|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 (?) 
- 
-* [[Virtlab:DistrRozsireni|Navrhované pokročilé vlastnosti a plány do budoucna]] 
- 
- 
-== Vyvíjený (distribuovaný) Virtlab - provoz a testování == 
- 
- 
-* [[Virtlab:DistrTesting|Co je třeba testovat (až bude co...)]] 
-* konfigurace 
-** [[Virtlab:DistrTestovací-Konfigurace|Konfigurace testovacího distribuovaného Virtlabu]] 
- 
- 
-== Zápisy ze schůzek vývojářů == 
- 
-Seznam zápisů naleznete v kategorii [[:Kategorie:Zápisy schůzí distribuovaného virtlabu|Zápisy schůzí distribuovaného virtlabu]]. 
- 
-== Nejbližší nutné kroky == 
- 
-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í. 
- 
- 
-== SVN, Wiki, Mantis a ostatní služby pro podporu vývoje == 
-* [[Help:MediaWiki|Věci k zacházení s (touto) Wiki]]+[[Kategorie:UNCOMPLETE]]
-* [https://vl-test.cs.vsb.cz/websvn/ Webové rozhraní pro přístup k SVN (nutná autentizace univerzálním heslem)]+

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