SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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
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
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
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
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
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
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
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
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
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
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

Mais conteúdo relacionado

Destaque

Jedlé rostliny - Jídlo obecné
Jedlé rostliny - Jídlo obecnéJedlé rostliny - Jídlo obecné
Jedlé rostliny - Jídlo obecnéOndřej Kasal
 
Základy technického vybavení počítačů
Základy technického vybavení počítačůZáklady technického vybavení počítačů
Základy technického vybavení počítačůMichal Černý
 
Am0614 ukazka lr
Am0614 ukazka lrAm0614 ukazka lr
Am0614 ukazka lrsoliter.com
 
Digitální komunikace - On-line marketing
Digitální komunikace - On-line marketingDigitální komunikace - On-line marketing
Digitální komunikace - On-line marketingOndřej Krišica
 
Blatem informa mayo 2014
Blatem informa mayo 2014Blatem informa mayo 2014
Blatem informa mayo 2014blatem
 
Anatomie d'un email - ONG
Anatomie d'un email - ONGAnatomie d'un email - ONG
Anatomie d'un email - ONGContactlab
 
Panel 2 hojný michal
Panel 2 hojný michalPanel 2 hojný michal
Panel 2 hojný michalperinova
 
Albatros Jelena Spasic
Albatros Jelena SpasicAlbatros Jelena Spasic
Albatros Jelena SpasicDejan Pejčić
 
Newsletter 2011 01-02
Newsletter 2011 01-02Newsletter 2011 01-02
Newsletter 2011 01-02arraweb
 
Mikrofinance - Prilezitosti a rizika
Mikrofinance - Prilezitosti a rizikaMikrofinance - Prilezitosti a rizika
Mikrofinance - Prilezitosti a rizikaInnovation Tank
 
Športové okuliare ALPINA 2012
Športové okuliare ALPINA 2012Športové okuliare ALPINA 2012
Športové okuliare ALPINA 2012Ivo Vydra
 
0905 Thermo Complete
0905 Thermo Complete0905 Thermo Complete
0905 Thermo Completeguest80b2a2d6
 

Destaque (20)

Jedlé rostliny - Jídlo obecné
Jedlé rostliny - Jídlo obecnéJedlé rostliny - Jídlo obecné
Jedlé rostliny - Jídlo obecné
 
Gotická klenba
Gotická klenbaGotická klenba
Gotická klenba
 
Katalog
Katalog Katalog
Katalog
 
Základy technického vybavení počítačů
Základy technického vybavení počítačůZáklady technického vybavení počítačů
Základy technického vybavení počítačů
 
Am0614 ukazka lr
Am0614 ukazka lrAm0614 ukazka lr
Am0614 ukazka lr
 
Digitální komunikace - On-line marketing
Digitální komunikace - On-line marketingDigitální komunikace - On-line marketing
Digitální komunikace - On-line marketing
 
Blatem informa mayo 2014
Blatem informa mayo 2014Blatem informa mayo 2014
Blatem informa mayo 2014
 
Anatomie d'un email - ONG
Anatomie d'un email - ONGAnatomie d'un email - ONG
Anatomie d'un email - ONG
 
Cepicky osgeocz
Cepicky osgeoczCepicky osgeocz
Cepicky osgeocz
 
Aditzak
AditzakAditzak
Aditzak
 
Basnik
BasnikBasnik
Basnik
 
Panel 2 hojný michal
Panel 2 hojný michalPanel 2 hojný michal
Panel 2 hojný michal
 
Spring Web Services
Spring Web ServicesSpring Web Services
Spring Web Services
 
Agronomía
AgronomíaAgronomía
Agronomía
 
Albatros Jelena Spasic
Albatros Jelena SpasicAlbatros Jelena Spasic
Albatros Jelena Spasic
 
Newsletter 2011 01-02
Newsletter 2011 01-02Newsletter 2011 01-02
Newsletter 2011 01-02
 
Mikrofinance - Prilezitosti a rizika
Mikrofinance - Prilezitosti a rizikaMikrofinance - Prilezitosti a rizika
Mikrofinance - Prilezitosti a rizika
 
Športové okuliare ALPINA 2012
Športové okuliare ALPINA 2012Športové okuliare ALPINA 2012
Športové okuliare ALPINA 2012
 
0905 Thermo Complete
0905 Thermo Complete0905 Thermo Complete
0905 Thermo Complete
 
Abraxas
AbraxasAbraxas
Abraxas
 

Semelhante a Moderni technologie

Ivan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan K
 
Ondra Kučera: Otevřený web a jeho současný stav
Ondra Kučera: Otevřený web a jeho současný stavOndra Kučera: Otevřený web a jeho současný stav
Ondra Kučera: Otevřený web a jeho současný stavTomáš Holas
 
Confluence novinky 5.8
Confluence novinky 5.8Confluence novinky 5.8
Confluence novinky 5.8Onlio
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal DeveloperyJozef Toth
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Péhápkaři
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devuVašek Purchart
 
ECM-information system
ECM-information systemECM-information system
ECM-information systemTereza Dvorska
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPIGottvaldovaM
 
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaciWebinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaciJaroslav Prodelal
 

Semelhante a Moderni technologie (20)

Ivan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmyIvan Kutil: Google Apps pro firmy
Ivan Kutil: Google Apps pro firmy
 
Zaverecny ukol
Zaverecny ukolZaverecny ukol
Zaverecny ukol
 
TNPW2-2011-04
TNPW2-2011-04TNPW2-2011-04
TNPW2-2011-04
 
TNPW2-2011-08
TNPW2-2011-08TNPW2-2011-08
TNPW2-2011-08
 
Webové technologie
Webové technologieWebové technologie
Webové technologie
 
Softecon 2010
Softecon 2010Softecon 2010
Softecon 2010
 
Ondra Kučera: Otevřený web a jeho současný stav
Ondra Kučera: Otevřený web a jeho současný stavOndra Kučera: Otevřený web a jeho současný stav
Ondra Kučera: Otevřený web a jeho současný stav
 
Confluence novinky 5.8
Confluence novinky 5.8Confluence novinky 5.8
Confluence novinky 5.8
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
TNPW2-2013-10
TNPW2-2013-10TNPW2-2013-10
TNPW2-2013-10
 
Seo Pro Drupal Developery
Seo Pro Drupal DeveloperySeo Pro Drupal Developery
Seo Pro Drupal Developery
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
ECM-information system
ECM-information systemECM-information system
ECM-information system
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
 
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaciWebinář: Ovládněte umění správy dokumentů ve vaší organizaci
Webinář: Ovládněte umění správy dokumentů ve vaší organizaci
 

Mais de Michal Černý

ChatGPT ve školní praxi
ChatGPT ve školní praxiChatGPT ve školní praxi
ChatGPT ve školní praxiMichal Černý
 
Filosoficke problemy spojene s informacni spolecnosti.pptx
Filosoficke problemy spojene s informacni spolecnosti.pptxFilosoficke problemy spojene s informacni spolecnosti.pptx
Filosoficke problemy spojene s informacni spolecnosti.pptxMichal Černý
 
Otevřený přístup jako předpoklad akademického prostředí
Otevřený přístup jako předpoklad akademického prostředíOtevřený přístup jako předpoklad akademického prostředí
Otevřený přístup jako předpoklad akademického prostředíMichal Černý
 
Us qualis rex, talis grex
Us qualis rex, talis grexUs qualis rex, talis grex
Us qualis rex, talis grexMichal Černý
 
11 non scholae, sed vitae discimus
11 non scholae, sed vitae discimus11 non scholae, sed vitae discimus
11 non scholae, sed vitae discimusMichal Černý
 
Vzdělávání založené na datech
Vzdělávání založené na datechVzdělávání založené na datech
Vzdělávání založené na datechMichal Černý
 
Kritický přístup k edTechu
Kritický přístup k edTechuKritický přístup k edTechu
Kritický přístup k edTechuMichal Černý
 
06 Společenské změny
06 Společenské změny06 Společenské změny
06 Společenské změnyMichal Černý
 
11 Patenty a otevřená kultura
11 Patenty a otevřená kultura11 Patenty a otevřená kultura
11 Patenty a otevřená kulturaMichal Černý
 
10 Digitální antropologie
10 Digitální antropologie10 Digitální antropologie
10 Digitální antropologieMichal Černý
 
09 Sociální informatika
09 Sociální informatika09 Sociální informatika
09 Sociální informatikaMichal Černý
 
09 Učící se společnost
09 Učící se společnost09 Učící se společnost
09 Učící se společnostMichal Černý
 
07 Změny v umění a kultuře
07 Změny v umění a kultuře07 Změny v umění a kultuře
07 Změny v umění a kultuřeMichal Černý
 
04 Technologické změny
04 Technologické změny04 Technologické změny
04 Technologické změnyMichal Černý
 
02 Informační revoluce
02 Informační revoluce02 Informační revoluce
02 Informační revoluceMichal Černý
 
00 Informační společnost - struktura kurzu
00 Informační společnost - struktura kurzu00 Informační společnost - struktura kurzu
00 Informační společnost - struktura kurzuMichal Černý
 
The Principle of Non-Discrimination in the Infosphere: A New Ethics
The Principle of Non-Discrimination in the Infosphere:  A New EthicsThe Principle of Non-Discrimination in the Infosphere:  A New Ethics
The Principle of Non-Discrimination in the Infosphere: A New EthicsMichal Černý
 
Online vzdělávání: od designu k praxi
Online vzdělávání: od designu k praxiOnline vzdělávání: od designu k praxi
Online vzdělávání: od designu k praxiMichal Černý
 

Mais de Michal Černý (20)

ChatGPT ve školní praxi
ChatGPT ve školní praxiChatGPT ve školní praxi
ChatGPT ve školní praxi
 
Filosoficke problemy spojene s informacni spolecnosti.pptx
Filosoficke problemy spojene s informacni spolecnosti.pptxFilosoficke problemy spojene s informacni spolecnosti.pptx
Filosoficke problemy spojene s informacni spolecnosti.pptx
 
Otevřený přístup jako předpoklad akademického prostředí
Otevřený přístup jako předpoklad akademického prostředíOtevřený přístup jako předpoklad akademického prostředí
Otevřený přístup jako předpoklad akademického prostředí
 
Us qualis rex, talis grex
Us qualis rex, talis grexUs qualis rex, talis grex
Us qualis rex, talis grex
 
11 non scholae, sed vitae discimus
11 non scholae, sed vitae discimus11 non scholae, sed vitae discimus
11 non scholae, sed vitae discimus
 
Vzdělávání založené na datech
Vzdělávání založené na datechVzdělávání založené na datech
Vzdělávání založené na datech
 
Kritický přístup k edTechu
Kritický přístup k edTechuKritický přístup k edTechu
Kritický přístup k edTechu
 
01 Historie ICT
01 Historie ICT01 Historie ICT
01 Historie ICT
 
06 Společenské změny
06 Společenské změny06 Společenské změny
06 Společenské změny
 
11 Patenty a otevřená kultura
11 Patenty a otevřená kultura11 Patenty a otevřená kultura
11 Patenty a otevřená kultura
 
10 Digitální antropologie
10 Digitální antropologie10 Digitální antropologie
10 Digitální antropologie
 
09 Sociální informatika
09 Sociální informatika09 Sociální informatika
09 Sociální informatika
 
09 Učící se společnost
09 Učící se společnost09 Učící se společnost
09 Učící se společnost
 
07 Změny v umění a kultuře
07 Změny v umění a kultuře07 Změny v umění a kultuře
07 Změny v umění a kultuře
 
05 Ekonomické změny
05 Ekonomické změny05 Ekonomické změny
05 Ekonomické změny
 
04 Technologické změny
04 Technologické změny04 Technologické změny
04 Technologické změny
 
02 Informační revoluce
02 Informační revoluce02 Informační revoluce
02 Informační revoluce
 
00 Informační společnost - struktura kurzu
00 Informační společnost - struktura kurzu00 Informační společnost - struktura kurzu
00 Informační společnost - struktura kurzu
 
The Principle of Non-Discrimination in the Infosphere: A New Ethics
The Principle of Non-Discrimination in the Infosphere:  A New EthicsThe Principle of Non-Discrimination in the Infosphere:  A New Ethics
The Principle of Non-Discrimination in the Infosphere: A New Ethics
 
Online vzdělávání: od designu k praxi
Online vzdělávání: od designu k praxiOnline vzdělávání: od designu k praxi
Online vzdělávání: od designu k praxi
 

Último

SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...
SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...
SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...Taste
 
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanze
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanzeSEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanze
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanzeTaste
 
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...Taste
 
SEO Restart 2024: Jan Tichý - Na počátku bylo...
SEO Restart 2024: Jan Tichý - Na počátku bylo...SEO Restart 2024: Jan Tichý - Na počátku bylo...
SEO Restart 2024: Jan Tichý - Na počátku bylo...Taste
 
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro Shoptet
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro ShoptetSEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro Shoptet
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro ShoptetTaste
 
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonem
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonemSEO Restart 2024: Richard Klačko - Klíčovka s AI pohonem
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonemTaste
 
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...Taste
 
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...Taste
 
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...Taste
 
SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...
SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...
SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...Taste
 

Último (10)

SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...
SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...
SEO Restart 2024: Martin Michálek - Nová metrika rychlosti INP a praktické ti...
 
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanze
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanzeSEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanze
SEO Restart 2024: Roman Teuschel - Mezinárodní SEO v kontextu expanze
 
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...
SEO Restart 2024: Martina Zrzavá Libřická - SEO & DEV: Jak na vývojáře od poc...
 
SEO Restart 2024: Jan Tichý - Na počátku bylo...
SEO Restart 2024: Jan Tichý - Na počátku bylo...SEO Restart 2024: Jan Tichý - Na počátku bylo...
SEO Restart 2024: Jan Tichý - Na počátku bylo...
 
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro Shoptet
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro ShoptetSEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro Shoptet
SEO Restart 2024: Tomáš Zahálka - Tajné SEO tipy pro Shoptet
 
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonem
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonemSEO Restart 2024: Richard Klačko - Klíčovka s AI pohonem
SEO Restart 2024: Richard Klačko - Klíčovka s AI pohonem
 
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...
SEO Restart 2024: Martin Kopta a Jakub Goldmann - Jak se dnes navrhují weby a...
 
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...
SEO Restart 2024: Sarah Presch - Kognitivní předsudky - jak psychologické teo...
 
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...
SEO Restart 2024: Vojtěch Fiala - Linkbuilding vs. (digitální) PR: Od odkazů ...
 
SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...
SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...SEO Restart 2024: Martin Žatkovič - Můžeme jakožto SEO konzultanti uspět v Go...
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