Česká zemědělská univerzita v Praze Fakulta provozně ekonomická Obor Informatika Katedra informačních technologií
Teze k diplomové práci na téma:
Moderní WWW technologie
Vypracoval: Ondřej Volráb Vedoucí diplomové práce: Ing. Jiří Vaněk, Ph.D. © Praha 2003
V postavení dnešního Internetu dochází k podstatným změnám. Přestává být totiž vnímán jako něco neobvyklého a zařazuje se mezi ostatní běžná média jakými jsou tisk, rozhlas a televize. Jednu z klíčových rolí v tomto vývoji sehrává služba World Wide Web. Současné prostředí webových stránek lze již považovat za skutečně multimediální. Schopnost kombinace textových, zvukových a obrazových dat je však pouze prvním krokem k plnému využití webu. Uživatelé jsou stále náročnější a očekávají od WWW stránek prostředí, které jim nabídne informace s přidanou hodnotou a to kdykoliv a ve formě jakou preferují. Tyto a řada dalších požadavků vedou k potřebě dynamického pojetí webu, který se dokáže přizpůsobovat konkrétnímu uživateli. K uspokojení této potřeby je naštěstí k dispozici celá řada technologií pro dynamické generování WWW stránek. Jejich úspěšné nasazení je však podmíněno zevrubnými znalostmi alespoň těch nejpoužívanějších z nich. Rychle se měnící podmínky kladou stále vyšší nároky na nezávislost aplikací na konkrétním prostředí. Výjimkou nejsou ani webové aplikace. Stále více se proto uplatňují technologie, které nabízejí přenositelnost mezi jednotlivými operačními systémy i webovými a aplikačními servery. Dynamický rozvoj celého odvětví vyžaduje neustálé doplňování informací o dostupných technologiích. Zároveň je však důležité umět tyto technologie také vhodně zkombinovat. Diplomová práce (DP) zaměřená na moderní webové technologie proto sleduje především následující dva cíle: 1. Charakterizovat klíčové technologie pro tvorbu dynamických WWW stránek. 2. Demonstrovat možnosti spolupráce konkrétních technologií v rámci reálné aplikace pro dynamické generování grafů. Jako úvod do problematiky webových technologií nabízí DP nejprve stručný přehled základních principů, na kterých služba World Wide Web pracuje. Jedná se zejména o protokol HTTP, systém jednoznačných identifikátorů URL a jazyk pro tvorbu stránek HTML. U protokolu HTTP jsou uvedeny především zásadní rozdíly mezi jeho nejpoužívanějšími verzemi. Popis URL zase naznačuje způsob, jakým jsou konstruovány veškeré internetové adresy. Jazyk HTML je zmíněn zejména z pohledu své příslušnosti k SGML standardu. Bezprostředně navazující kapitola nabízí krátký pohled na historický vývoj webu a pokouší se zařadit klíčové technologie do širších souvislostí.
1
Prostředky pro tvorbu moderních WWW stránek lze rozdělit na technologie aktivní na straně klienta a na technologie aktivní na straně serveru. Z nepřeberného množství klientských technologií se DP zabývá skriptovacími jazyky JavaScript a VBScript a dále komponentami ActiveX. Opomenuta nezůstává ani technologie Flash zpřístupňující na webu vektorovou animaci. Vedle jejího tradičního uplatnění je nastíněna také možnost obousměrné komunikace mezi Flash klientem a Flash serverem. Přehled technologií na straně serveru je zahájen představením několika obecných rozhraní webového serveru. Jejich hlavním smyslem je transparentně rozšířit možnosti web serveru s ponecháním volnosti při výběru konkrétních prostředků. Po jejich stručném charakterizování dostávají prostor dva největší rivalové v oblasti tvorby komplexních webových aplikací, a to platformy J2EE a .NET. Nejde však v žádném případě o jejich vzájemné porovnávání, ale spíše o osvětlení jejich základních principů a možností. Část věnovaná platformě J2EE přibližuje oba způsoby jakými lze v tomto prostředí vytvářet dynamické WWW stránky. První z nich jsou servlety, které je možné považovat za určitou obdobu klasických CGI skriptů. Servlety jsou velmi vhodné při provádění kontrol a např. při práci s databázemi, ale již ne tak vhodné pro generování rozsáhlejších výstupů jakými jsou HTML dokumenty. Pro tuto činnost je výhodnější použít standardní rozšíření s názvem Java Server Pages, které představuje druhý ze způsobů tvorby dynamického webu na platformě J2EE. Obdobným způsobem jako J2EE je popsána také platforma ASP.NET. Po jejím zařazení do celkové architektury .NET je pozornost soustředěna na nový přístup uplatňovaný při návrhu WWW formulářů. V principu jde o vytváření objektové reprezentace klientského formuláře na straně serveru. Výsledkem je snazší kontrola a následné zpracovávání formulářů. Mezi další vlastnosti ASP.NET, kterým se DP věnuje patří velice kvalitní podpora práce s webovými službami. Pro určitý okruh webových aplikací jsou ideálním řešením serverové skriptovací jazyky. Vyznačují se obvykle jednoduchou syntaxí, a proto jejich obliba neustále roste. Velkou výhodou je rovněž skutečnost, že mnohé z nich jsou k dispozici zcela zdarma. Z širokého spektra nabízených skriptovacích technologií bylo vybráno pět, jež jsou podrobněji přiblíženy v samostatné kapitole. Největšího prostoru se dostalo hypertextovému preprocesoru PHP. Jedná se o jeden z vůbec nejpopulárnějších jazyků pro tvorbu dynamického webu. Po ohlédnutí za historií jazyka jsou vymezeny tři hlavní oblasti, ve kterých dnes nachází PHP své uplatnění. V prvé řadě se jedná o tvorbu skriptů pro webové servery. Vedle toho je možné PHP použít také 2
zcela samostatně. To z něj dělá velice silný nástroj pro psaní nejrůznějších pomocných programů. Třetí oblastí je tvorba aplikací s grafickým uživatelským rozhraním. Pro tyto účely se používá rozšíření označované jako PHP-GTK. Jednou z největších předností PHP je jeho přenositelnost napříč operačními systémy a webovými servery. Velice důležitá je také dostupnost kvalitní podpory databázových prostředků a standardu XML. Uplatňování objektového přístupu ve všech fázích tvorby softwaru obvykle přináší řadu výhod. PHP tento všeobecný trend postupem času stále více promítá do své vnitřní struktury. S každou další verzí přichází dramatické zlepšení podpory obecně zažitých prostředků pro objektově orientované programování (OOP). Uživatelům se tak dostávají do rukou silné nástroje pro zvýšení znovupoužitelnosti, rozšiřitelnosti a udržovatelnosti výsledků jejich práce. Jaký je současný stav a co lze v nejbližší době od PHP v tomto směru očekávat je nastíněno v závěru podkapitoly. Uvedení dalších čtyř skriptovacích technologií (ASP, Perl, Python a Ruby) v příslušných podkapitolách si klade za cíl především nabídnout alternativy k hlavním proudům. Přehled by měl zároveň napomoci k vytvoření rámcové představy o možnostech a způsobech jejich využití. Poslední část DP demonstruje možnosti využití uvedených technologií v rámci reálné aplikace pro dynamické generování grafů. Vývoj této aplikace je naznačen od počátečního stanovení požadavků přes výběr vhodných prostředků, postup řešení a navržená rozhraní, až po možnosti využití a dalšího rozšiřování. Ukázky výstupu jsou znázorněny na obrázcích 1 a 2. V závěru práce jsou uvedena některá doporučení týkající se volby konkrétních technologií při tvorbě dynamického webu. Na straně klienta jde zejména o rozšíření dané technologie mezi uživateli. Z tohoto důvodu se nejvíce uplatňuje skriptovací jazyk JavaScript a postupně také grafický formát Flash. Ze serverových technologií lze doporučit hypertextový preprocesor PHP a v případě komplexních aplikací platformu J2EE.
3
Obrázek 1 - ukázka sloupcového grafu s uživatelsky definovatelnými barvami
Obrázek 2 - ukázka koláčového grafu obohaceného o animaci
4
Vybraná literatura [1] BERKA, M., KUČERA, J., MACUR, J., et. al. WWW-multimediální informační prostředí Internetu. 1. vyd. Brno: UNIS, 1997. 159 s. ISBN CPISBN-632. [2] ECKEL, Bruce. Myslíme v jazyku Java. Přeložil Bogdan Kiszka. 1. vyd. Praha: Grada, 2001. 472 s. (Myslíme v …, Knihovna zkušeného programátora.) Přeloženo z Thinking in Java 2nd Edition. ISBN 80-247-0027-1. [3] ISAACS, Scott. Dynamické HTML. Přeložil J. Dudr. 1. vyd. Praha: Computer Press, 1998. 436 s. Přeloženo z Inside Dynamic HTML. ISBN 80-7226-083-9. [4] KOSEK, Jiří. Domovská stránka Jirky Koska -- "VŠE O WWW" [online]. c1999-2003, poslední aktualizace 2003-03-15 [cit. 2003-03-18]. Dostupné z:
. [5] KOSEK, Jiří. PHP: tvorba interaktivních internetových aplikací. 1. vyd. Praha: Grada, 1998. 492 s. ISBN 80-7169-373-1. [6] MICROSOFT. MSDN CZ: Brožury s vývojářskou tématikou [online]. c2003, poslední aktualizace 2003-03-07 [cit. 2003-03-07]. Dostupné z: . [7] OPAQUE INDUSTRIES. Ming - an SWF output library and PHP module [online]. c2000-2002, poslední aktualizace 2003-03-02 [cit. 2003-03-18]. Dostupné z: . [8] SCHMULLER, Joseph. ActiveX – tvorba dokonalých WWW stránek. Přeložil M. Blažík. 1. vyd. Praha: Grada, 1998. 484 s. Přeloženo z: ActiveX – No experience required. ISBN 80 7169 610-2. [9] SPAINHOUR, S., ECKSTEIN, R. Webmaster v kostce. Přeložil J. Veselský. 1. vyd. Praha: Computer Press, 1999. 504 s. Přeloženo z Webmaster in a Nutshell. ISBN 807226-251-3. [10] SPELL, Brett. Java: Programujeme profesionálně. Přeložil Bogdan Kiszka. 1. vyd. Praha: Computer Press, 2002. 1022 s. Přeloženo z Professional Java Programming. ISBN 80-7226-667-5. [11] SUN MICROSYSTEMS, The Source for Java Technology [online]. c1995-2003, poslední aktualizace 2003-04-14 [cit. 2003-04-14]. Dostupné z: . [12] THE PHP GROUP. PHP: Hypertext Preprocessor [online]. c2001-2003, poslední aktualizace 2003-04-07 [cit. 2003-04-07]. Dostupné z: . [13] THE PHP GROUP. PHP-GTK [online]. c2001-2002, poslední aktualizace 2002-10-10 [cit. 2003-02-19]. Dostupné z: . [14] ZEND TECHNOLOGIES. Zend Technologies - PHP tools for development, protection and scalability of PHP applications [online]. c1999-2003, poslední aktualizace 2003-0414 [cit. 2003-04-14]. Dostupné z: .
5