Virtlab:Řídící server/Mapovací algoritmus

Z VirtlabWiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
Verze z 22:41, 15. 1. 2007
Vav166 (Diskuse | příspěvky)

← Předchozí porovnání
Verze z 17:08, 22. 2. 2007
Vav166 (Diskuse | příspěvky)

Následující porovnání →
Řádka 1: Řádka 1:
-Nástin postupu algoritmy:+Celkový postup mapovacího algoritmu:
-# srovnání typů zařízení ve vybavení a virtuální topologii => když je třeba mít v topologii typ zařízení, které nemáme, tak je celé mapování na nic :-)+# '''rychlé ověřění jednoduchých podmínek''', jestli má mapování šanci na úspěch
-# srovnání "speciálních" vlastností zařízení v topologii a vybavení+## '''srovnání typů zařízení''' ve vybavení a virtuální topologii. Pokud je třeba mít v topologii typ zařízení, které nemáme mezi vybavením, tak není třeba s mapováním pokračovat - nepovede se.
-# srovnání "speciálních" vlastností jednotlivých linek a interfaců zařízení ve vybavení+##* použijí se funkce <tt>[[Virtlab:ParserTopology.php.inc|virtlabParserTopology]]::getVertexesTypes()</tt> a <tt>[[Virtlab:ParserEquipment.php.inc|virtlabParserEquipment]]::getDevicesTypes()</tt>, jejiž výstupy se jednoduše porovnají pomocí funkce <tt>[http://www.php.net/array_diff array_diff]</tt>
 +## '''srovnání ''speciálních'' vlastností zařízení''' v topologii a vybavení. Pokud v topologii požaduji po zařízení určitou speciální vlastnost, která se v celém vybavení vůbec nevyskytuje - mapování se nepovede.
 +##* použijí se funkce <tt>[[Virtlab:ParserTopology.php.inc|virtlabParserTopology]]::getVertexesFeatures()</tt> a <tt>[[Virtlab:ParserEquipment.php.inc|virtlabParserEquipment]]::getDevicesFeatures()</tt>, jejiž výstupy se jednoduše porovnají pomocí funkce <tt>[http://www.php.net/array_diff array_diff]</tt>
 +## '''srovnání ''speciálních'' vlastností jednotlivých linek''' a rozhraní zařízení ve vybavení. Pokud je v topologii po některé lince požadována speciální vlastnost, musí tuto vlastnost mít obě rozhraní, které tvoří konce této linky. Takže na každou vlastnost linky musí připadat alespoň dvě vlastnosti rozhraní.
 +##* použije se funkce <tt>[[Virtlab:ParserTopology.php.inc|virtlabParserTopology]]::getEdgesFeatures()</tt>, jejíž výstupní seznam se zdvojí funkcí <tt>[[Virtlab:SupportFunctions.php.inc|DoubleArrayItems]]</tt>. Teto seznam se poravná funkcí <tt>[[Virtlab:SupportFunctions.php.inc|array_porovnej]]</tt> (kvůli duplicitním hodnotám nejde použít <tt>[http://www.php.net/array_diff array_diff]</tt>) s výstupem funkce <tt>[[Virtlab:ParserEquipment.php.inc|virtlabParserEquipment]]::getDevicesInterfacesFeatures()</tt>. array_diff]
... ...
 +
 +[[Kategorie:Diplomová práce]]
 +[[Kategorie:Jan Vavříček]]

Verze z 17:08, 22. 2. 2007

Celkový postup mapovacího algoritmu:

  1. rychlé ověřění jednoduchých podmínek, jestli má mapování šanci na úspěch
    1. srovnání typů zařízení ve vybavení a virtuální topologii. Pokud je třeba mít v topologii typ zařízení, které nemáme mezi vybavením, tak není třeba s mapováním pokračovat - nepovede se.
    2. srovnání speciálních vlastností zařízení v topologii a vybavení. Pokud v topologii požaduji po zařízení určitou speciální vlastnost, která se v celém vybavení vůbec nevyskytuje - mapování se nepovede.
    3. srovnání speciálních vlastností jednotlivých linek a rozhraní zařízení ve vybavení. Pokud je v topologii po některé lince požadována speciální vlastnost, musí tuto vlastnost mít obě rozhraní, které tvoří konce této linky. Takže na každou vlastnost linky musí připadat alespoň dvě vlastnosti rozhraní.

...

Osobní nástroje