Validační server - automatická kontrola semestrálních prací

Princip validačního serveru

Zpět na hlavní stránku

Princip fungování validačního serveru bude nejjednodušší ukázat rovnou na procesu, jakým prochází práce, kterou student odevzdal:

  1. Odevzdání práce studentem (hovoříme samozřejmě o elektronickém odevzdání souboru).

    V současné době existují dvě "brány", přes které je možno práce odevzdat - jednou je portlet pro zápis a odevzdávání semestrálních prací, který je k dispozici v univerzitním portálu, druhým je systém pro organizování studentských soutěží (ten však není obecně přístupný, slouží pouze pro tento účel). V případě zájmu je ale možno validační server propojit i s jinými systémy.

  2. Příjem validačním serverem
  3. Určení validační domény

    Jedním z parametrů validace je tzv. "validační doména". Doména definuje konkrétní pravidla a proces validace - existuje tedy doména pro kontrolu semestrálních prací předmětu PPA1, další doména pro zmíněné studentské soutěže atd. Název domény, dle jejíž pravidel se zaslaný soubor validuje, je nutným a logickým vstupním parametrem validace.

  4. Úvodní kontroly

    Odevzdaný soubor projde prvními triviálními kontrolami na základě definic dané domény - maximální velikost souboru, možné přípony souboru atd. Splňuje-li soubor tyto základní formální požadavky, postupuje dál

  5. Příprava na validaci

    V tomto bodě začne server připravovat podmínky pro spuštění vlastních validačních scriptů, tj. připraví jim to správně prostředí:

    • Vytvoření vlákna pro validaci, omezení doby validace na zadané maximum

      Každá validace probíhá v samostatném vlákně, přičemž je možno omezovat maximální dobu trvání validace (i jednotlivých jejích částí, viz popis příkazů procesu validace).

    • Vytvoření pracovního adresáře pro tuto validaci

      V adresáři data/workdir (viz adresářová struktura) se vytvoří podadresář s jedinečným názvem a do něj se odevzdaný soubor nahraje.

    • Uložení kopie souboru

      Pro případ pozdějšího dohledávání se každý zaslaný soubor ukládá do adresáře data/store (viz adresářová struktura).

    • Vytvoření všech proměnných, které jsou později k dispozici scriptu
  6. Spuštění vlastního validačního procesu

    Je spuštěn validační proces, který je definován pro konkrétní doménu. Jedná se o kombinaci XML elementů s JavaScriptovým programem. Script může využívat mnoho služeb poskytovaných validačním serverem. Script přidává do výsledku validace různé informace / varování / chyby a generuje tak postupně výsledek validace. Více informací na stránce o validačním procesu.

  7. Zpracování výsledku validace

    Během validace se postupně vytváří tzv. ValidationResult, tj. výsledek validace. Ten obsahuje nejrůznější informace o validaci, chybové hlášky atd. - cokoliv, co autor validace považuje za důležité sdělit studentům, kteří práci odevzdali. Tento výstup může být převeden do HTML formy a uložen na místo okamžitě přístupné přes www. Možné jsou další formy výstupu, například uložení do databáze či XML souboru.

    Ukázky výstupů: #1, #2, #3

  8. Vyčištění

    Odstranění všech souborů a adresářů, které vznikly při validaci, promazání vyrovnávacích (cache) pamětí serveru.

  9. Vrácení výsledku

    Validační server vrátí výsledek validace (plus případně další údaje, záleží na konfiguraci domény) přes rozhraní zpět klientovi, v tomto případě webovskému serveru, který výsledek zobrazí studentovi.

Celý popisovaný proces se samozřejmě také ukládá do log souboru.

Zpět na hlavní stránku

autor: Lukáš Valenta, září 2007 (lukas.valenta at seznam.cz)