| předchozí | obsah DP | home | následující |

2. Návrh nového programového systému

2.1. Co chceme?

Na začátku celé práce jsme si museli položit několik otázek, které nám daly představu o tom co vlastně potřebujeme. Tyto a další otázky se objevovaly ještě v průběhu celého vývoje. Byly zavrhovány slepé uličky, hledány nové směry. Další požadavky a potřeby byly řešeny a doplňovány během vývoje a testování systému.

Q: Co je úkolem?
A: Vytvořit aplikaci, program, nástroj pro jednoduché testování fungující ve webovém prohlížeči.

Q: Jaké jsou požadavky na programové vybavení?
A: Aby systém fungoval pod běžnými webovými prohlížeči a na běžných webových serverech. Nejlepší by bylo, aby byl zadarmo. To samé platí i pro vývojové prostředí. Nebude použito žádného obsáhlého komerčního systému, ale vytvořím s dostupnými prostředky aplikaci šitou na míru požadavkům.

Q: Kde a na co se testovací systém použije?
A: První vize a hlavní cíl je takový: na stránkách pro předměty MaKN [6] byly studenty v předmětu Programování IV zpracovávány tematické okruhy ke zkouškám z výše uvedených předmětů ve formě webových stránek. To, co by mohlo oživit učení a pomoci přípravě na zkoušku, by mohl být krátký testík.

Q: Jak to bude vypadat v praxi?
A: Student si přečte webovou stránku s předloženými informacemi aktuálního okruhu. Na jeho konci klikne na odkaz "TEST". Bude přesměrován do aplikace, kde pro něho bude připraven test z aktuálního okruhu. Ten zodpoví podle svých právě nabytých vědomostí. Systém vyplněný test zkontroluje, přehledně vyhodnotí a dovolí tak studentovi zjistit, co si zapamatoval, co mu uniklo a co si má raději ještě zopakovat. Student se pak může vrátit zpět ke čtení okruhu, dohledá si potřebné údaje a při dalším spuštění testu už určitě bude úspěšnější. Postupem času a prací jsme dospěli k rozhodnutí, že vyvíjený testovací systém nemusí sloužit pouze na stránkách MaKN. Vždyť by se mohl používat i pro testování při výuce jako alternativní způsob zápočtové písemky. Nebo vyučující na závěr cvičení zadá studentům připravený test na právě probranou látku. A když ne hned, tak třeba jako domácí úkol. Výborný způsob pro zajištění zpětné vazby. Zvláště když bude možno výsledná data jednoduše analyzovat rovnou v počítači.

Q: Co chceme, aby systém umožňoval?
A: Pro administrátory: Sestavení libovolných testových otázek, možnost nastavení parametrů testu jako je: volba počtu otázek, míchání, časové omezení, několik druhů bodového hodnocení, přihlašování se. Pro uživatele: Zobrazení testu, jeho vyhodnocení.

Q: Jaký by měl systém být?
A: Jednoduchý na ovládání uživatelem. Vzhledově přehledný a intuitivní. Nenáročný na údržbu a správu administrátorem a nezatěžující nutností znát technickou podstatu programu a další znalosti. V angličtině je na to výraz - User-friendly. V neposlední řadě taky bezpečný.

2.2. Přehled programových nástrojů

V potaz přicházelo několik nástrojů a programovacích jazyků a technologií, používaných v současné době pro tvorbu webových stránek a aplikací. Následuje jejich stručný přehled a popis vlastností. Přehledy převzaty z [7] a z [8].

2.2.1. HTML

HyperText Markup Language. Nejzákladnější jazyk, značkovací jazyk, pro zápis webových stránek. HTML dokument je obyčejný textový soubor se speciálními značkami tagy. Ty jsou zapisovány ve špičatých závorkách pod svými názvy. Tagy určují, jak má prohlížeč text či prvky mezi tagy zobrazit - interpretovat. Tagy jsou povětšinou párové, to znamená, že existuje otevírací a ukončovací tag s lomítkem: <tag>_text_</tag> Text mezi je interpretován dle významu tagu. Existují tagy základní struktury: <html>, <head>, <body>. Dále tagy měnící vzhled písma například <b> tučné, <i> kurzíva. Lze psát tabulky, seznamy, formátovat obrázky, dělit stránky do rámů a hlavně zapisovat odkazy, které zajišťují mezi internetovými stránkami navigaci. Tagy mohou mít několik konfiguračních parametrů.

Stránky psané pomocí jazyka HTML jsou statické. Jak jsou uloženy na serveru, tak je prohlížeč zobrazí. HTML je základem webu a prošlo svým zákonitým vývojem, zdokonalováním a standardizací až k verzi HTML 4.

2.2.2. XHTML

EXtensible HyperText Markup Language. Nástupce HTML. Je s ním téměř shodný, ale má přísnějšími požadavky na strukturu dle standartu XML (o XML se zmiňuji v kapitole3. Už v jeho definici a standartu [9] se píše, že je reformulací HTML jako aplikace XML. Díky přísným a zároveň jednoduchým pravidlům lze XML a tedy i XHTML snadno automatizovaně zpracovávat, a to dává větší potenciál do budoucna.. Kdyby prohlížeči stačilo umět XHTML, byl by mnohem jednodušší (a tedy menší a rychlejší), než když musí zvládat veškeré nevyzpytatelnosti HTML.

Nejpodstatnější požadavky jsou: správnost vnoření elementů, koncové značky, ošetření prázdných značek, značky malým písmem, hodnoty u všech atributů a v uvozovkách, ošetření speciálních znaků. Ale jedná se stále o statickou technologii.

2.2.3. DHTML

Dynamic HyperText Markup Language je z dílny firmy Microsoft. Ta přišla v roce 1997 v rámci prohlížeče Microsoft Internet Exporer s technologií DHTML. Jde o obdobu JavaScriptu, v určitém směru DMTML JavaScript překonal, dynamika stránek je propracovanější. DHTML poskytuje i řadu dalších vizuálních efektů.

2.2.4. JavaScript

JavaScript je klientský skript, je tedy zpracováván prohlížečem. Začleňuje se přímo do textu HTML. JavaScript má s programovacím jazykem Java podobnou syntaxi, ale není to totéž. Využívá objektů prohlížeče a zabudovaných objektů, funguje ve většině prohlížečů, ale jeho provádění lze zakázat. Neumožňuje přístup k souborům (kromě cookies) ani k žádným systémovým objektům. Je šikovný pro jednoduché doplnění HTML stránek.

2.2.5. SSI

Server Side Includes. Je to nejstarší dynamická technologie. Příkazy skriptu se kombinují přímo se zápisem stránky v HTML. Předtím, než je stránka odeslána uživateli, jsou všechny příkazy skriptu vyhodnoceny a jejich výsledek doplněn na odpovídající místo stránky. O vyhodnocení a zpracování příkazů se stará sám WWW-server. Do prohlížeče dorazí již zcela běžná stránka zapsaná v HTML. Stránky s SSI se obvykle ukládají do souborů s příponou .shtml. WWW-server je pak nakonfigurován tak, aby SSI prováděl v těchto souborech. Pokud by tak náhodou nedělal, skript zapisovaný jako HTML komentář <!-- skript --> zaručí, že prohlížeč nezobrazí nic a neovlivní tak výsledné zobrazení stránky. SSI jsou náročnější na údržbu a aktualizaci. Je podporován většinou serverů.

2.2.6. ASP

Active Server Pages. Produkt Microsoftu pro své servery Internet Information Server (IIS) a Personal Web Server (PWS). ASP fungují stejně jako SSI na principu serverem vkládaných vsuvek (příkazy se provedou na serveru). Jako skriptovací jazyk můžeme použít VBScript nebo JScript. (JScript je implementace JavaScriptu od Microsoftu.) Další firmy nabízejí moduly i pro jiné jazyky (např. pro Perl, REXX a Python). Do HTML textu se skripty zapisují pomocí <% skript %>. V současnosti je nástupcem novější ASP.NET

2.2.7. PHP

PHP: Hypertext Preprocessor (zajímavá zkratka, tzv. rekurzívní akronym). Další mnohoúčelový skriptovací jazyk pro dynamicky generované stránky, který se přímo začleňuje do textu HTML nebo je celý skript uložen v souboru .php. Zpracování probíhá na straně serveru. Skript je zapisován ve formátu <?php skript ?>. PHP je podporováno většinou serverů a celý systém je šířen bezplatně pod Open Source licencí. Velká část jeho syntaxe je vypůjčená z C, Javy a Perlu. Současná verze PHP je PHP4 s novým ZEND jádrem a pracuje se už na verzi 5.

2.3. PHP

2.3.1. Vybrali jsme PHP

Pro další využití a programování bylo vybráno posledně zmiňované PHP4. A to z několika důvodů:
1. Na školním serveru gama.fsv.cvut.cz je PHP nainstalováno a bez problémů funguje.
2. Je to freeware, takže žádné placení licencí a instalací.
3. Je to nejrozšířenější programovací nástroj. Existuje mnoho diskusních fór, kde lze hledat radu a existuje dostatek dokumentace a příruček i v českém jazyce.

2.3.2. Trocha historie nikoho nezabije [7]

Na počátku zrodu systému stál Rasmus Lerdorf. Psal se rok 1994 a Rasmus si ve volném čase vytvořil v Perlu jednoduchý systém pro evidování přístupu k jeho stránkám. Pro zmenšení zátěže WWW-serveru ho později přepsal do jazyka C.

Ačkoliv byl celý systém určen pro osobní Rasmusovo použití, zalíbil se i ostatním uživatelům serveru a začali ho používat. Systém se stal oblíbeným a používalo jej stále více uživatelů. Ti přicházeli s požadavky na vylepšení celého systému. Autor ho proto rozšířil, doplnil o dokumentaci a uvolnil jej pod názvem Personal Home Page Tools, který později změnil na Personal Home Page Construction Kit. Kromě již zmíněného systému pro evidování přístupu ke stránkám, vytvořil i nástroj, který umožňoval začleňování SQL-dotazů do stránek, vytváření formulářů a zobrazování výsledků dotazů. Program, který umožnil zpřístupnění databází na Webu, se jmenoval Form Interpreter(FI).

Celosvětovou proslulost si získal systém PHP/FI 2.0.Tento systém vznikl spojením dvou předcházejících programů autora. V této podobě se jednalo o jednoduchý programovací jazyk, který se zapisoval přímo do HTML stránek.

Od roku 1998 je k dispozici PHP 3.3. Oproti předchozí verzi byl celý systém zrychlen a rozšířen o mnoho dalších funkcí. Nová verze běží i pod Windows. Do jazyka jsou stále přidávány nové možnosti, které umožňují efektivnější vytváření internetových aplikací. Přibyla verze 4 a už se pracuje na 5.

2.3.3. Možnosti a vlastnosti PHP

PHP se řadí do skupiny skriptovacích jazyků, které se provádějí na straně serveru.. PHP je na serveru závislé, protože na něm běží jeho interpreter, který skripty provádí. Tím se odlišuje od skriptů prováděných na straně klienta (např. JavaScript). Má to své výhody i nevýhody. Výhodou PHP v tomto případě je, že se ke zdrojovým kódům skriptů nedostane nikdo jiný než autor, kdežto ke zdrojovému kódu JavaScriptu se dostane každý, kdo si stáhne HTML stránku, v níž je skript obsažen. JavaScript má výhody ve své možnosti dynamicky reagovat na událost způsobenou klientem, což PHP nedokáže, protože k provedení každé své nové události musí být vždy prohlížečem znovu odeslán požadavek na server.

Samotné PHP skripty se zapisují přímo do HTML stránky, nebo do souboru s funkcemi HTML vypisující. PHP interpreter na serveru pak pracuje tak, že HTML příkazy rovnou ukládá do výsledné HTML stránky, ale narazí-li na PHP skript, nejprve ho provede a potom je do HTML stránky zapsán jeho výsledek. A to je celý krám, jak dynamicky generovat HTML stránky, což je základním posláním jazyka PHP.

2.4. Server

V předchozí kapitole jsem uvedl, že PHP běží pouze na serveru, správněji na webserveru. S ním komunikuje přes CGI.

2.4.1. CGI

Common Gateway Interface. CGI-rozhraní definuje předání dat mezi webserverem a CGI-programem (CGI-skriptem). To je rozhraní zajišťující předávání dat mezi serverem a programem. Každá HTML stránka obsahující PHP skript musí být spuštěna přes server, který spustí interpret PHP. CGI je standardním nástrojem, který by měl podporovat každý slušný web-server.

Zjednodušeně to funguje asi takto: Klient se pomocí HTTP obrátí na server. Server vytvoří CGI-proces. CGI-proces převede HTTP požadavky do proměnného prostředí. Dál vytvoří kanál (data pathways) mezi serverem a externím CGI-programem. Následně CGI-program zpracovává požadavek a použije vytvořený kanál na odpověď serveru. V závěrečné fázi server odešle informace na klienta.

Webserverů je několik druhů. Mezi nejznámější a nepoužívanější se bezesporu řadí server Apache. Jeho vývoj probíhá od roku 1995 do dnes, kdy se zdokonaluje verze 2. Hlavní výhodou Apache je, že je šířen pod Open source licencí, tedy zcela zdarma a se zdrojovými kódy. Ke stažení je na http://www.apache.org. Apache je možné stáhnout krom linuxové i ve verzi pro Windows.
Pro úplnost uvedu ještě jména dalších konkurenčních serverů jako je nám už povědomý z kapitoly 2.2.6. o ASP. Microsoftí servery PWS, IIS3, IIS4. Dalšími jsou OmniHTTPd Server, Xitami, Netscape servers, iPlanet.


| předchozí | obsah DP | home | následující |