SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...
Moderni technologie
1. Moderní webové technologie a cloud
HTML 5
Když se poprvé v roce 1990 objevila první specifikace jazyka HTML bylo to pro mnohé velmi
kontroverzní. Základní myšlenkou bylo zjednodušit popis dokumentu, k čemuž se používal TeX či
LaTeX takovou formou, která by byla přístupná pro webové prohlížeče a mohla dobře spolupracovat
s protokolem HTTP. Východiskem byla přitom zjednodušená specifikace jazyka SGML. První oficiální
vydání bylo v roce 1991 (verze 0.9) a tato verze jazyka nepodporovala grafický režim.
Velice rychle se ale ukázalo, že web (či hypertext) se bude rozvíjet mnohem rychleji, než se původně
očekávalo. Postupně tak docházelo k úpravám jednotlivých verzí tak, aby bylo možné uspokojit
potřeby vývojářů. Současně ale začala vznikat poptávka po tom, aby dokumenty byly nikoli jen
statické, ale aby bylo možné stránku dynamicky měnit na základě požadavků uživatele. Tuto potřebu
reflektoval jazyk PHP. Mimo to se začaly objevovat postupně další technologie, které se snažily
omezení HTML doplnit – Java Script umožňoval animaci prvků na stránkách, postupně nastoupil Flash
pro vývoj webových aplikací atd.
Původní myšlenka, že bude existovat jeden formát, který by popisoval vzhled a chování stránek, se
značně vzdálila od reality – dnešní prohlížeče potřebují podporu Flash, Java Script, Java a řada dalších
formátů, aby dokázaly uspokojit nároky uživatelů, kteří chtějí nakupovat v elektronických obchodech,
platit kartou, hrát hry nebo online sledovat video. V posledních letech se objevilo několik technologií,
které se tento problém snaží řešit.
Ještě než se pustíme do popisu jednotlivých technologií, dovolíme si malou odbočku. Dnes se velká
část webových aplikací vytváří ve Flash. Jde o formát relativně rozšířený, ale značně problematický.
Předně není možný jeho provoz na výrobcích značky Apple, která se s Adobe nedomluvila na
licenčních podmínkách. Jde o proprietární formát, který je možné vyvíjet jen ve velmi malém
množství aplikací a pro jeho přehrávání je třeba mít nainstalovaný speciální zásuvný modul. V
neposlední řadě jsou zde problémy s bezpečností a velké hardwarové nároky. Proto se nové projekty
snaží do velké míry o to, aby bylo možné Flash eliminovat.
HTML 5: logická struktura
Dnes jednoznačně nejdiskutovanější technologií, do které jsou vkládány velké naděje je HTML 5.
Původní představa vývoje HTML byla taková, že jeho poslední verzi 4.01, která vyšla v roce 1999
nahradí XHTML. Jde o spojení výhod XML popisu dokumentu a HTML. Z prvně jmenované byly přejaty
DTD, tedy pojmenování jednotlivých objektů, které se nacházejí na stránce a popis jejich atributů, z
druhého pak většina značek. Cílem bylo zachovat zpětnou kompatibilitu s HTML 4.01, ale zvýšit
možnosti popisu dokumentu. Přibyla také různá formální omezení, jako bylo zrušení nepárových
značek. Ač ve skutečnosti tento formát nic podstatného neřeší, je dnes jednoznačně nejrozšířenější a
drtivá většina webů jej využívá.
Prvním problémem, který HTML 5 řeší je absence rozumného sémantického vyjadřování XHTML.
Tomu bylo v zásadě úplně lhostejné, jakou část stránky popisuje – vždy se užil tag div a to bez ohledu
na to, zda ohraničoval grafický prvek, infobox, článek či odstavec. To je problematické pokud mají
vyhledávače textu rozumět nebo pokud jej potřebují nějakým dalším způsobem zpracovat. Také
nevidomým uživatelům by pomohlo, kdyby si mohli přečíst článek odděleně od okolních informací.
1
2. Proto přináší HTLM 5 následující nové tagy:
• header - reprezentuje hlavičku stránky
• nav - reprezentuje část stránky, která je určena k navigaci, nejčastěji menu
• article - reprezentuje delší textové části, jako jsou články, komentáře atp.
• section - reprezentuje různé části stránek, např. kapitoly
• aside - reprezentuje boční panel stránky
• footer - reprezentuje patičku stránky
Pomocí těchto tagů (nikoli atributů) je možné stránku logicky rozčlenit. V tomto kontextu je dobré se
zmínit, že se paradoxně vrací k zásadám známých z TeX. Další zajímavostí je možnost spojit text s
obrázkem či videem do jednoho logického celku. Doposud bylo možné umístit popisek jen v atributu
alt, který představoval alternativní popisek v případě, že se obrázek nezobrazí správně. To že jej
prohlížeče aplikovali různě, je druhá věc. Nový tag figure umožňuje spojit obě zmíněné, logicky
související, informace do jednoho celku. Opět jde o velký krok směrem k logické struktuře i
strojovému zpracování webových stránek.
Další zásadní změny se týkají dialogů. Především na zpravodajských webech jde o relativně častou
činnost a tak se jí autoři specifikace rozhodli dát vlastní značku – dialog. Pomocí něj je možné velmi
snadno formátovat dialog. Opět je v pozadí podpora dialogových systémů a strojového zpracování.
Stejně jako XHTML, také HTML 5 obsahuje DOM, tedy logickou, stromovou strukturu. Oproti svému
předchůdci se může dobře opírat především o nově zavedené značky section (ale i jiné). Cílem celého
návrhu je snadná orientace uživatele i automatizace ve zpracovávání informací.
Multimédia a formuláře
Jednoznačně mediálně nejznámější jsou možnosti v oblasti multimédií, které HTML 5 přináší. Jde o tři
tagy audio, video a canvas, na které se podíváme podrobněji. Pokud chtěl někdo v klasickém (X)HTML
vložit na web video, měl smůlu. Jedinou možností bylo využití Flash přehrávače a to ještě většinou
tak, že se data streemovala z nějakého vzdáleného serveru (např. YouTube). To mělo několik
zásadních nevýhod. Uživatel musel mít Flash nainstalovaný, přehrávače byly bezpečnostně
problematické. Implementace samotného přehrávače byla relativně obtížná a tak velká část lidí
nahrála video na YouTube a na své stránky umístila jen přehrávač. Zobrazovaná reklama a odkazy na
další videa šli do kapsy Google (či jiné příslušné firmě) a uživatel neměl možnost je nijak ovlivňovat.
Díky novým tagům video a audio je vložení videa či audia na web záležitostí jedno řádku:
<video src="soubor.ogg"></video>
Je dobré si všimnout povinnosti pracovat s párovými značkami, stejně jako u XHTML. Práce s audio
funguje v zásadě úplně stejně.
Asi nejzajímavějším tagem z této kategorie je ale canvas. Jde o tvorbu plátna, na které je možné v
rámci prohlížeče kreslit. Je tak možné vložit například interaktivní graf, měnící se obrázek, ovládací
prvek k videu a mnoho dalšího. Mimo jiné je možné díky tomuto prvku aktivně vyvíjet aplikace plně v
HTML 5. Jde o přímou náhradu Flash.
2
3. Velkých změn a vylepšení se dočkaly také formuláře. Zatímco (X)HTLM nabízí jen základní spektrum
nástrojů, HTML 5 je silně rozšiřuje. Původně nebylo možné provádět žádnou kontrolu údajů nebo
omezit vkládaná data. Jedinou možností bylo užít Java Scriptu či PHP. Díky nově zavedeným
atributům to ale již nebude nutné.
Jednotlivá políčka formuláře jsou opatřeny atributy, které si sami pohlídají, zda jsou vyplněny
korektně:
• datetime – reprezentuje datum a čas
• date – reprezentuje datum
• month – reprezentuje měsíc
• week – reprezentuje týden
• time – reprezentuje čas
• number - reprezentuje číslo
• range – umožňuje nastavit rozsah číselných hodnot, které se nastaví parametry min a max
• email – pole pro zadání e-mailové adresy včetně ověření, zda je formát správný
• url – reprezentuje URL adresu
• search – vyhledávací políčko
• color – reprezentuje pole s výběrem barvy a převedením do jejího textového formátu
Další vlastnosti
Tím ale výčet změn v HTML 5 rozhodně nekončí. Velice užitečnou funkcí, která umožňuje efektivní
tvorbu webových aplikací je podpora offline módu. Prohlížeč si umí vytvořit během připojení na
počítači soubory, kterých umí využívat v případě, že uživatel není aktuálně připojený k internetu.
Příkladem může být aplikace pro Gmail, kterou vytvořil Google (světově největší propagátor a
inovátor v oblasti HTML 5). Pokud není uživatel připojen k síti, zobrazí se mu e-maily za posledních
třicet dní, může na ně v klidu odpovědět, třídit je atp. Všechny změny se uloží lokálně a v okamžiku
připojení se provede synchronizace. To umožňuje, aby s online aplikacemi uživatel pracoval i bez
připojení. Implementace není zatím úplně jednoduchá, ale první pokusy již jsou a fungují době.
Mezi další novinky patří perzistentní úložiště formou asociativního pole či podpora relačních
databází. Ač jde o novinky, které jsou pro studenty možná nepříliš průhledné, jsou velmi důležité pro
vývoj aplikací. Je také třeba podotknout, že HTML 5 přímo předpokládá spolupráci s CSS.
Je vždy otázkou, co vlastně v gymnaziálním kurzu informatiky učit. Než se student dostane z prvního
ročníku střední školy přes univerzitu do praxe, uběhne téměř jedna celá dekáda, během které se
kompletně vymění všechny programy, trendy a technologie. Proto se relativně velký prostor věnuje
tomu, aby byli studenti samostatně schopni s různými nástroji pracovat a učit se. Dále pak
samozřejmě principům, které se s časem nemění, nebo jen různě obměňují. Přesto si myslím, že by se
(alespoň čas od času) měla i do středoškolského výkladu zařadit kapitola, která se týká aktuálních
trendů a možností.
Jsou pro to přinejmenším tři důvody. Předně nebude výuka působit strnulým, museologickým
dojmem. V médiích se o těchto technologiích mluví relativně hodně a je jistě dobré, když jsou
3
4. studenti schopni zúčastnit se diskuse na tato témata a mají jasnou představu co si pod jednotlivými
pojmy představit. V neposlední řadě je zde také motivační prvek – studenti se dozví o něčem
aktuálním, zajímavém a novém.
Proto se domnívám, že má smysl alespoň základy nejznámějších novinek v oblasti webových
technologií zmínit a stručně okomentovat. Jistě není možné postihnout vše, ale myslím, že i onen
výběr toho nejzajímavějšího má svůj smysl a význam. Může probudit v žácích zvědavost a chuť
poznávat něco nového, podílet se na vznikajících technologiích. Ač bude náš výběr značně selektivní,
přesto snad pomůže pedagogovi v základní orientaci v trendech, které nemusí běžně sledovat.
HTML 5
V současné době nejdiskutovanější technologií webu je nesporně HTML 5, která navazuje na XHTML a
HTML. V čem se od klasického HTML, které se běžně vyučuje, liší? Myslím, že je možné změny
rozdělit do tří základních kategorií – důraz na strukturu dokumentu, podpora multimédií a offiline
aplikace. Především na první dvě se o pr řádek níže podíváme poněkud podrobněji. Změn je ale
samozřejmě více. Jako příklad je možné uvést vynucování párovosti všech značek, změnu zápisu
některých atributů (třeba pro nastavení řeči) nebo podporu databází a asociativních pamětí.
Pokud jde o logickou strukturu dokumentu je možné zmínit především snahu na úrovni značek
popsat obsah. Zvláštní značkou je popsána hlavička, patička, navigace, postranní panel nebo
odděleny sekce či text v článku. To vše umožňuje stroji, aby dobře identifikoval obsah webové
stránky a zjistil, čím se skutečně zabývá. Spolu s podporou CSS je možné pohodlněji formátovat
dokument. Přibyla také možnost spojit textový popis s videem či obrázkem. Trend je tedy takový, aby
bylo možné pomocí HTML 5 snadno popsat nejen vzhled dokumentu, ale také jeho logickou
strukturu.
Další vylepšení se týkají práce s multimédii. Na web je možné přímo vložit video či audio, aniž by bylo
nutné užívat Flash ovládacích prvků, které jsou bezpečnostně velice problematické a i co se týče
jejich vývoje ne právě snadné. Mimo to přibyla značka canvas, jenž umožňuje vytvořit jakési
interaktivní plátno, do kterého může uživatel kreslit, zvětšovat si v něm vytvořený graf atp. Tento tag
umožňuje v HTML 5 vytvářet nejen webové stránky, ale také webové aplikace. Ty mohou fungovat
také offline, což je jejich další velká výhoda.
Vylepšení se dočkal také formulář, ve kterém je nově možné kontrolovat zadané údaje – pokud je
přítomné políčko na e-mail, musí v něm být údaj ve správném formátu, podobně u data nebo textu.
AJAX
AJAX (Asynchronous JavaScript and XML) je technologie, která umožňuje, aby se načítala jen ta část
stránky, která se aktuálně mění. Například je možné na webovou stránku umístit anketu a po
hlasování se hlasujícímu ukáže, jaké možnosti preferovali ostatní čtenáři. Přitom se nenačítá celá
stránka, ale pouze box s uvedenou anketou. To umožňuje vývoj webových aplikací jako jsou online
textové editory, tabulkové procesory nebo databáze. Nemusí se stále dokola načítat celá stránka, jen
webový prohlížeč synchronizuje měnící se obsah se serverem.
4
5. Využívá se přitom následujících tří technologií: HTML (XHTML) spolu s CSS pro prezentaci informací;
DOM a JavaScript pro zobrazování a dynamické změny a především XMLHttpRequest, který
umožňuje asynchronní výměnu dat s webovým serverem. Není možné tedy mluvit o tom, že AJAX je
jednotnou technologií, ale spíše o konceptu práce s informacemi. Příkladem toho, že může být
implementován dosti odlišně je druh dat, která se zasílají prostřednictvím XMLHttpRequest – může jít
o XML, HTML či JSON nebo třeba prostý text.
AJAX umožnil rozvoj webových aplikací, které nebyly odkázány na problematický Flash. Na druhou
stranu má také své problémy. Je rozbita koncepce logické struktury dokumentu, který se dynamicky
mění. Nepříliš dobře fungují tlačítka Zpět a Vpřed ve webových prohlížečích. Jsou zde problémy se
strojovým zpracováním nebo s prohlížením v mobilních telefonech. Přesto jde o koncept, který
zásadním způsobem proměnil internet a umožnil na něm provozovat webové aplikace na
profesionální úrovni.
CSS 3
Kaskádové styly (v anglickém originále Cascading Style Sheets) slouží k popisu zobrazení dokumentu
vytvořeného ve značkovacích jazycích (HTML, XML, XHTML). Hlavním cílem návrhu je oddělení
vzhledu od struktury a obsahu dokumentu. Tím, že jsou vzhledové parametry umístěné zvlášť se kód
stává přehlednějším a logičtějším. Nezanedbatelnou výhodou také je, že pokud je CSS soubor
umístěn mimo HTML strukturu v externím souboru, je možné snadno měnit vzhled celého webu.
Aktuální situace je taková, že se nejvíce používá CSS 2 a postupně se vyvíjí třetí generace tohoto
jazyka.
My se v následujícím podíváme (alespoň stručně) na novinky, které CSS 3 přináší. Obecně je možné
říci, že stejně jako u HTML 5, je zde snaha o to, aby byl eliminován význam Java Scriptu. Proto je
jednou z novinek také podpora animací a změn. Nyní je možné si nastavit měnící se velikost písma,
jeho barevnost atp. Například poté, co na něj uživatel klikne. Další významnou novinkou je podpora
2D a 3D transformace. Přímo pomocí kaskádových stylů bude možné upravovat vlastnosti dvoj i
trojrozměrných objektů. Přítomné jsou funkce pro rotace, translace, změny velikosti atp. Význam je
zřejmý při použití tagu canvas v HTML 5.
Přibyly také nové selektory, které umožňují pracovat s prvním a posledním odstavcem, což je u řady
stránek také velice užitečné. Zlepšení se dočkala práce se sloupci a tabulkami, písmem či barvami.
Nově je možné pracovat také s průhledností. Osobně za jednu z největších novinek považuji značku
@media, která umožňuje změnu vzhledu stránky (na úrovni CSS) na základě toho, z jakého zařízení je
prohlížena. Nemělo by tak být nutné mít vlastní verze celých webů pro mobilní telefony či televize,
jen by se připojilo pár řádků do CSS souboru.
Z dalších zajímavých možností se pracuje na modulu Speech, který by měl upravovat hlasový výstup.
Pokud má uživatel čtečku textu, bude možné pomocí tohoto modulu nastavit rychlost, například v
závislosti na výšce hlasu (vysoký hlas umožňuje rychlejší čtení atp.). Novinkou jsou také kulaté
rámečky, které se doposud musely řešit pomocí obrázků, což nebylo ani zdaleka ideální.
Podporováno je také více obrázků na pozadí nebo třeba lepší formátování textu (ať již jde o
zarovnání, stínování atp.)
5
6. Jak je vidět, celý koncept nového CSS 3 směřuje ke spojení s HTML 5. V tomto ohledu jde o
technologie budoucnosti, které by především ve vývoji webových aplikací měly nahradit AJAX. Důraz
je kladen na oddělení obsahu a jeho logickou strukturu na jedné straně (HTML 5) a jeho vzhledu (CSS
3). Velkým krokem kupředu je možnost opustit velké množství obrázků, které byly na webu jen čistě z
designových důvodů (stínovaný text, speciální nadpisy, kulaté rámečky,...).
Problémem může být to, že se technologie stále vyvíjí, takže není možná její úplná implementace do
prohlížečů. Alespoň částečnou podporu nabízejí všechny dnes rozšířené aplikace pro procházení
webu.
Závěr
Podařilo se nám stručně se zmínit o AJAX jako o současné technologii na tvorbu webových aplikací a
o CSS 3 s HTML 5, které představují jejich budoucnost. Ve volném pokračování se budeme věnovat
technologiím PHP, Java, Flash či Java Script, čímž bychom měli pokrýt většinu dnes používaných
webových technologií mimo databázové systémy.
Java
Java je objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems (dnes patří
Oracle) a byl poprvé zveřejněn v roce 1995. Jde o jazyk, který dnes patří mezi nejrozšířenější a
nejoblíbenější na světě a to hned z několika důvodů. Předně je platformně nezávislý, takže
vytvořenou aplikaci je možné provozovat pod jakýmkoli operačním systémem. Dále existuje i ve verzi
pro mobilní telefony a je možné jej použít také pro webové aplikace.
Zatímco přímo kompilované jazyky (např. C) jsou vždy určené pro jeden operační systém, autoři Javy
zvolili jiný přístup. Do operačního systému se nainstaluje speciální klient (JVM), který je vyvíjen pro
každý systém zvlášť. Všem koncovým aplikacím v Javě dává ale jednotné prostředí. Prostřednictvím
virtuálního stroje jsou obsluhovány všechny požadavky aplikace a operační systém přímo pracuje jen
s JVM. Nepříjemným důsledkem je jejich pomalejší spouštění a někdy také nižší běhová rychlost. Tyto
problémy jsou ale postupně odstraňovány. Z našeho pohledu je důležité, že pomocí Javy lze vytvořit
aplety, které mohou běžet v internetovém prohlížeči jako samostatné aplikace. Zřejmě nejznámější
jsou různé příklady fyzikálních experimentů.
Mezi základní vlastnosti Javy patří například:
• Podpora síťových protokolů na nejrůznějších vrstvách.
• Bezpečnost – útočník může napadnout maximálně JVM. Ten je ale při každém novém
spuštění znovu iniciován.
• Umožňuje běh většího množství úloh.
• Je modulární což usnadňuje návrh aplikací.
• Je robustní a nabízí silnou typovou kontrolu. Z pohledu práce s pamětí nabízí řadu užitečných
funkcí jako je Garbage collector.
• Podporuje distribuované výpočty.
• Je objektově orientovaný.
Z pohledu webové aplikace je nepříjemné především to, že se musí spustit JVM, což zabere nějaký
čas a je nutné, aby byl na klientské stanici nainstalovaný, což není vždy splněno. Jinak jde o velice
silný a kvalitní nástroj, kterým je možné vytvářet velice robustní a rozsáhlé projekty. Pokud uvažujete
6
7. o výuce objektově orientovaného programování na gymnáziu, nelze než doporučit právě Javu. Další
výhodou je velké množství bezplatných vývojových prostředí.
Flash
Jednou z nejkontroverznějších technologií je Flash. Slouží pro tvorbu webových banerů, animací či
aplikací. Je založený na spojení vektorové grafiky s ActionScript. V novějších verzích ale podporuje
také práci s bitmapy a je možné nalézt relativně složité aplikace v něm vytvořené, jako jsou online
foto editory. Technologie je uzavřená a patří společnosti Adobe. Díky nedohodě s Apple není možné
Flash užívat v iPhnoe či iPad.
Jednou z nejpopulárnějších aplikací této technologie jsou online hry, které je možné hrát přímo z
okna prohlížeče. Mají malou velikost, jsou rychlé, jednoduché a snadno se programují. Flash je možné
používat i bez ActionScript, ale pak je omezen jen na jednoduché grafické prvky bez možnosti
reagovat na uživatele. Jednou z kontroverzních věcí je také bezpečnost, která není na vysoké úrovni.
Flash cookies současně nabízejí netriviální možnosti v oblasti průlomu do soukromí uživatele.
Z Flash je možné výsledek exportovat do dvou různých formátů. První variantou je SWF, pro jehož
běh je třeba mít nainstalovaný speciální zásuvný modul, přehrávač nebo aplikaci. Využívá se u webu a
webových aplikací. Výhodou je možnost běhu v prohlížeči a malá velikost souboru. Druhou variantou
je EXE soubor, který je spustitelný ve Windows a přímo v sobě integruje přehrávač.
Pokud jde o ActionScript, tak je to moderní a relativně vyspělý objektově orientovaný programovací
jazyk, který je určený pro manipulaci s grafickými prvky a dobře uzpůsoben na interakci s uživatelem.
Aktuálně je ve verzi 3, která podporuje práci s bitmapovou grafikou či XML soubory. Dokáže také
pracovat s formáty jako je ZIP či PDF.
Dnes se zdá, že bude Flash postupně nahrazený HTML 5 a především jeho tagy canvas a video. Právě
v oblasti přehrávačů videa se HTML 5 prosazuje nejrychleji.
PHP
Jednou z nejvíce používaných webových technologií současnosti je PHP ( PHP: Hypertext
Preprocessor). Jde o skriptovací programovací jazyk, který se inspiroval především v jazyce C (ale také
u Perl či Java). Dnes se používá při tvorbě dynamických webových stánek, jako jsou elektronické
obchody, redakční systémy atp. Všechny výpočty jsou prováděny na straně serveru a uživatel se dozví
(prostřednictvím HTTP) pouze výsledek.
Je tedy nezávislý na operačním systému a k jeho užívání je potřebný jen server, na kterém běží skript
a webový prohlížeč. Existuje ale také implementace určená pro desktopy, která se ale příliš
nepoužívá. Jeho základní výhodou je možnost spolupracovat s databázemi (MySQL, Oracle atp.) a
využívat různé protokoly, které nativně podporuje. Jazyk vznikl v roce 2005.
Z hlediska výuky programování jde o sporný jazyk. Na jednu stranu nabízí veliké možnosti a praktické
využití, je snadné se jej naučit a používat s relativně dobrými výsledky a existuje k němu řada
frameworků. Z didaktického hlediska je ale problematické to, že má dynamické typování (typ
proměnné se určuje až přiřazením hodnoty), pole je standardně asociativní nebo nabízí v řadě
případů značně variabilní možnosti zápisu.
7
8. Mezi velké výhody jazyka patří dnes především obrovské množství již vytvořených aplikací, které je
možné nahrát na server a snadno použít. Za všechny je možné uvést MediaWiki, WordPress či phpDB.
Příjemná je také velice svobodná licence a bohatá knihovna funkcí. Mezi nedostatky je nejčastěji
uváděna malá podpora výjimek, slabá podpora UNICODE a neschopnost udržet kontext (proto je
velmi vhodné užívat frameworky).
Díky svému rozšíření a dobré podpoře databází jde o jeden z nejdůležitějších jazyků, se kterými je
možné se na webu setkat. Microsoft se pokusil o vytvoření alternativy s názvem ASP. Tato
technologie se ale příliš nerozšířila, především díky závislosti na platformě Windows na straně
serveru (světový prim hraje Linux) a navíc nenabídla nic zásadního navíc. Proto se jí společnost
rozhodla nahradit ASP.NET, která vychází z komplexního balíčku .NET. Ten se snaží konkurovat
především Javě tím, že kód z různých programovacích jazyků překládá do jednotného metajazyka,
který je možné v počítačích vybavených Microsoft .NET Framework spustit a použít. Velkým
nedostatkem je nepřenositelnost a závislost na rozsáhlém a často zbytečně robustním rozhraní.
JavaScript
JavaScript je multiplatformní, objektově orientovaný skriptovací jazyk, který se užívá u webových
stránek k zajištění jednoduchých uživatelem definovaných operací, jako je reakce na kliknutí, najetí
kurzoru atp. Na rozdíl od PHP neběží na straně serveru, ale na straně klienta a to obvykle po načtení
celé stránky. Z důvodu bezpečnosti má proto relativně omezenou funkčnost (např. nemůže pracovat
se soubory). Má podobnou syntaxi jako Java a stejně a stejně tak je silně objektově orientován. Jazyk
sloužil jako vzor pro ActionScript.
JavaScript je součástí DHTML (spolu s HTML, CSS a případně DOM), ale užívají jej i některé další
aplikace pro psaní různých rozšíření. Pokud jde o praktickou implementaci, nejčastěji je vkládán jako
přímý kód do HTML stránky, nebo je do ní vložen odkaz na zvláštní soubor (především u složitějších
aplikací). Jde také o základe AJAXu.
Pokud jde o prohlížeče webu, tak jejich tvůrci si správně všimli toho, že je to právě JavaScript, který
způsobuje to, že jsou stránky pomalé. Proto vznikla celá řada metod, jak jej co nejrychleji zpracovat.
Řada studentů bude jistě znát mediálně diskutované interprety SpiderMonkey či V8.
Závěr
Ač jsme se o vybraných webových technologiích zmínili jen velice krátce a informativně, přesto
věříme, že jsme vytvořili alespoň základní informativní rámec, který by mohl být předán studentům
tak, aby byli schopni ve webových magazínech či zprávách dobře rozlišit, o čem se mluví a jaké jsou
základní rysi těchto konceptů. V dalším článku se stručně podíváme na databázové systémy, které se
ve webovém prostředí používají.
Databázové systémy
Součástí výuky informatiky by měla být také práce s databázemi. Je jistě dobré, pokud mají studenti
jasno v tom, jaké jsou aktuální trendy a možnosti v této oblasti a co se reálně v dnešním světě
používá. Proto dnes navážeme na seriál o moderních webových technologiích a podíváme se
podrobněji na některé databázové systémy, jenž mají reálné aplikace, ale také na některé, které je
možné považovat za perspektivní a budoucnost ovlivňující.
8
9. Pro současný web je signifikantní masivní užívání SQL. Jak si dále ukážeme, jde o jazyk, pomocí
kterého je možné pracovat s relačními databázemi, které jsou poměrně jednoduché na představu a je
možné je popsat pomocí EPR diagramu či jiných grafických prvků. Jejich předností (a současně hlavní
slabinou) je ACID. Jde o zkratku slov (atomicity, consistency, isolation, durability). ACID zajišťuje, že
databáze bude v každém okamžiku konzistentní a nebude možné provádět více operací s jednou
položkou současně. Jde o zásadní bezpečností opatření, které zabraňuje tomu, aby vznikly záznamy s
chybami či nesmyslnými hodnotami. Na druhou stranu dochází díky ACID samozřejmě k netriviálnímu
zpomalení práce s databází, které musí být v řadě případů serializováno a současně samotné hlídání
vyžaduje nemalou režii.
Proto se nedávno (od roku 2009) začal prosazovat koncept s označením NoSQL. Tímto označením
máme na mysli všechny databázové koncepty, které využívají jiného přístupu, nežli jen prostého SQL.
To ale neznamená, že na určitou množinu operací či část databáze tuto technologii neužijí. Oblastí
využití NoSQL je celá řada. Jde jednak o extrémně velké společnosti, které musí zpravovat databáze,
které čítají miliardy položek (Google, Twitter, LinkedIn). V zásadě potřebují, aby bylo možné s těmito
databázemi pracovat mimořádně rychle a případné změny se mohou provádět o něco pomaleji.
Další oblastí, kde je nutné opustit koncept klasického SQL jsou především aplikace, které nepracují s
čistě textovými informacemi, které je možné snadno řadit do tabulek. Jistě si lze představit SQL
databázi, která bude evidovat textové dokumenty a v jednotlivých sloupcích budou základní meta
informace souboru. Ale představa, že je možné pomocí ní s dokumenty pokročileji pracovat
(provádět jejich lexikální analýzu, počítat jejich délku, vyhledávat v nich) je lichá. Dalším druhem
alternativních databází jsou grafové databáze, kde je důraz kladen na souvislosti mezi jednotlivými
objekty. Opět je možné si představit SQL databázi, která toto umí, ale nebylo by to příliš efektivní.
Dále je možné mluvit o databázích založených na konceptu klíč-hodnota, které jsou mimořádně
rychlé nebo na databázových systémech pracujícími s objekty.
Jejich kategorií je ale podstatně více. Je možné hovořit o XML databázích, které umožňují efektivně
pracovat s XML soubory a využívat všech výhod tohoto formátu – od tvorby souvislostí, přes analýzu
struktury až třeba po práci s obsahem. To vše vysoce přehledně a strukturovaně.
Jak je vidět, nabídka databázových systémů je relativně bohatá. Ač v současné době hraje na
internetu do velké míry prim SQL (především u menších a jednodušších projektů), je dobré, aby byli
studenti s pojmem (a základními principy) NoSQL seznámeni. Umožní jim totiž době pochopit, že
organizace dat může být podstatně složitější a pestřejší, nežli pouhá tabulka, na kterou jsou databáze
často omezovány. Díky porozumění tomu, jakým způsobem je možné pracovat s netradičně
organizovanými daty je možné jim vysvětlit možnosti fungování sémantického desktopu či webu, ale
také řadu dalších aplikací.
Důležité je také to, že HTML 5 pracuje právě s NoSQL a jeho znalost bude v budoucnu klíčová pro
pochopení činnosti všech webových aplikací. Proto se pokusíme v tomto článku alespoň stručně
naznačit základní koncepty těchto databází a jejich praktické využití. A to i přesto, že se v nejbližší
době k jejich praktickému využití nebo tvorbě studenti zřejmě nedostanou a řada lidí je považuje za
zbytečné buzzword bez významu a budoucnosti.
9
10. SQL
Jak jsme již řekli, nejznámější a nejvíce používanou databázovou technologií současnosti je SQL
(Structured Query Language). Jde o jazyk, který pracuje s relačními databázemi (ty jsou tvořeny
tabulkou). Data je možné definovat, modifikovat, přidávat, je podporována práce s různými
přístupovými právy, pohledy atp. Konkrétní realizace těchto databází pak mohou obsahovat také
různé algoritmy, které jsou řízeny událostmi a umožňují tak automatické zásahy do tabulky.
Důležité je, že každý prvek v databázi (řádek v tabulce) musí mít primární klíč, což je množina hodnot,
které jej jednoznačně identifikují. Pokud si pro tento účel zavedeme například ID, není možné mít dva
záznamy se stejným ID. Databáze se řídí pravidlem ACID – transakce se provede buď jako celek nebo
vůbec, není možné provést operaci, která by narušila integritu databáze, každá operace se provádí
jako izolovaná od ostatních a změny jsou trvale uloženy.
V současné době je SQL jednoznačně nejpoužívanějším běžným způsobem, jak pracovat s databázemi
a to především u klasicky vypadajících záznamů, jednodušších webových služeb nebo u různých
úředních registrů. Výhodou je spolehlivost, stabilita, snadnost návrhu i jednoduchá implementace.
Key-value databáze
Pro řadu aplikací je SQL zbytečně složitou a robustní databází. V praxi se setkáváme s velkým
množstvím případů, kdy je vhodnější požít co možná nejrychlejší a nejednodušší databázové systémy.
Příkladem mohou být key-value (klič-hodnota) databáze. Ty jsou založeny na myšlence, že každému
klíči je přiřazena určitá hodnota. Databázový systém umí v zásadě jen odpovědět na otázku na klíč,
vrátit informaci o hodnotě, přidávat a upravovat záznamy atp.
Postupně se koncept o něco rozšířil a ke klíči lze připojovat hodnot více. Velice často jde o systémy,
které běží v paměti RAM, což umožňuje skutečně bleskovou odezvu. Příkladem praktické aplikace
tohoto druhu databáze může být Redis, který umožňuje k jednomu klíči přiřadit více záznamů a to v
pěti různých datových typech jako je řetězec, seznam, množina, uspořádaná množina či asociativní
pole.
Tyto databáze se používají všude tam, kde je třeba zajistit rychlé odpovědi, třeba i za cenu nižších
možností databáze. Časté je řešení, kdy základní dotazy a funkce zajišťuje rychlá key-value databáze a
pokročilejší a náročnější operace pomaleji relační databáze. Toto řešení užívá například Facebook či
LinkedIn.
Dokumentově orientované databáze a XML databáze
Jiným problémem SQL databází je jejich pevná struktura. Tabulka musí mít jasně definovaný počet
sloupců a všechna data s nimi musí přiměřeným způsobem pracovat. Základní myšlenkou
dokumentově orientovaných databází je to, že jednotlivé dokumenty mohou obsahovat určité
podobné informace, které je možné v rámci databáze použít. Chceme například zjistit, co jsme kdy
napsali o panu Novákovy. V SQL jde o neřešitelný problém, ale tyto databáze to umožňují relativně
snadno zjistit. Jednotlivé implementace se pak liší především v tom, v jakém formátu jsou dokumenty
do systému uloženy (zde se například vyčleňují XML databáze) a jak konkrétně jsou z nich dolována
data.
Grafově orientované databáze
Posledním druhem databází, o kterých se zde zmíníme podrobněji, jsou grafově orientované
databáze (Graph database). Již jsme naznačili, že jedním z největších problémů relačních databází je
10
11. malá škálovatelnost, která je daná pevně nastavenou tabulkou. V řadě případů je ale potřeba mít
flexibilnější řešení, které nabízejí právě grafově orientované databáze. Každý uzel má mimo vlastních
informací uloženy také odkazy na své kolegy (sousední uzly). Pokud je grafem strom, pak je možné
odlišit rodiče a potomky, v obecném případě to není ale nutné.
Práce s databází je v zásadě velice jednoduchá. Nový uzel přidáme tak, že připojíme odkaz na něj
vedoucí k některému stávajícímu uzlu. To je rychlá a jednoduchá operace. Vyhledávání je pak možné
řešit pomocí stromu, který by obsahoval klíče a odkazy na uzly. Mimo to je možné jednotlivá spojení
také pojmenovat, takže není nutné spojovat jen prvky stejné kategorie (například přátele v sociální
sítí), ale je možné takto odkazovat i na jiné entity (například na školu, oblíbenou kapelu atp.).
Závěrem
Ač jsme neprošli ani zdaleka všechny možnosti práce databázových systémů, pokusili jsme se alespoň
stručně načrtnout jejich základní možnosti. Student by měl mít po absolvování této látky komplexní
přehled o tom, co to je databáze a znát několik možností, jak je možné ji v principu realizovat.
11