Moderni technologie
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Moderni technologie

  • 1,177 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,177
On Slideshare
1,176
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
22
Comments
0
Likes
0

Embeds 1

http://is.muni.cz 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Moderní webové technologie a cloudHTML 5Když se poprvé v roce 1990 objevila první specifikace jazyka HTML bylo to pro mnohé velmikontroverzní. Základní myšlenkou bylo zjednodušit popis dokumentu, k čemuž se používal TeX čiLaTeX takovou formou, která by byla přístupná pro webové prohlížeče a mohla dobře spolupracovats 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é uspokojitpotřeby vývojářů. Současně ale začala vznikat poptávka po tom, aby dokumenty byly nikoli jenstatické, ale aby bylo možné stránku dynamicky měnit na základě požadavků uživatele. Tuto potřebureflektoval jazyk PHP. Mimo to se začaly objevovat postupně další technologie, které se snažilyomezení HTML doplnit – Java Script umožňoval animaci prvků na stránkách, postupně nastoupil Flashpro 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, seznačně vzdálila od reality – dnešní prohlížeče potřebují podporu Flash, Java Script, Java a řada dalšíchformá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 nalicenčních podmínkách. Jde o proprietární formát, který je možné vyvíjet jen ve velmi malémmnožství aplikací a pro jeho přehrávání je třeba mít nainstalovaný speciální zásuvný modul. Vneposlední řadě jsou zde problémy s bezpečností a velké hardwarové nároky. Proto se nové projektysnaží do velké míry o to, aby bylo možné Flash eliminovat.HTML 5: logická strukturaDnes 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 1999nahradí XHTML. Jde o spojení výhod XML popisu dokumentu a HTML. Z prvně jmenované byly přejatyDTD, tedy pojmenování jednotlivých objektů, které se nacházejí na stránce a popis jejich atributů, zdruhého pak většina značek. Cílem bylo zachovat zpětnou kompatibilitu s HTML 4.01, ale zvýšitmožnosti popisu dokumentu. Přibyla také různá formální omezení, jako bylo zrušení nepárovýchznaček. Ač ve skutečnosti tento formát nic podstatného neřeší, je dnes jednoznačně nejrozšířenější adrtivá 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 ohleduna 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ánkyPomocí těchto tagů (nikoli atributů) je možné stránku logicky rozčlenit. V tomto kontextu je dobré sezmínit, že se paradoxně vrací k zásadám známých z TeX. Další zajímavostí je možnost spojit text sobrázkem či videem do jednoho logického celku. Doposud bylo možné umístit popisek jen v atributualt, který představoval alternativní popisek v případě, že se obrázek nezobrazí správně. To že jejprohlížeče aplikovali různě, je druhá věc. Nový tag figure umožňuje spojit obě zmíněné, logickysouvisející, informace do jednoho celku. Opět jde o velký krok směrem k logické struktuře istrojové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é velmisnadno 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émupředchůdci se může dobře opírat především o nově zavedené značky section (ale i jiné). Cílem celéhonávrhu je snadná orientace uživatele i automatizace ve zpracovávání informací.Multimédia a formulářeJednoznačně mediálně nejznámější jsou možnosti v oblasti multimédií, které HTML 5 přináší. Jde o třitagy audio, video a canvas, na které se podíváme podrobněji. Pokud chtěl někdo v klasickém (X)HTMLvlož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šinoutak, že se data streemovala z nějakého vzdáleného serveru (např. YouTube). To mělo několikzá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 nadalší 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 audiofunguje 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é vrá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ě vHTML 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í spektrumnástrojů, HTML 5 je silně rozšiřuje. Původně nebylo možné provádět žádnou kontrolu údajů neboomezit vkládaná data. Jedinou možností bylo užít Java Scriptu či PHP. Díky nově zavedenýmatributům to ale již nebude nutné.Jednotlivá políčka formuláře jsou opatřeny atributy, které si sami pohlídají, zda jsou vyplněnykorektně: • 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átuDalší vlastnostiTí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í napočí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 ainovátor v oblasti HTML 5). Pokud není uživatel připojen k síti, zobrazí se mu e-maily za posledníchtř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žikupřipojení se provede synchronizace. To umožňuje, aby s online aplikacemi uživatel pracoval i bezpř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íchdatabází. Ač jde o novinky, které jsou pro studenty možná nepříliš průhledné, jsou velmi důležité prový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íhoročníku střední školy přes univerzitu do praxe, uběhne téměř jedna celá dekáda, během které sekompletně vymění všechny programy, trendy a technologie. Proto se relativně velký prostor věnujetomu, aby byli studenti samostatně schopni s různými nástroji pracovat a učit se. Dále paksamozř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íchtrendů a možností.Jsou pro to přinejmenším tři důvody. Předně nebude výuka působit strnulým, museologickýmdojmem. 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ýmipojmy představit. V neposlední řadě je zde také motivační prvek – studenti se dozví o něčemaktuá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ýchtechnologií zmínit a stručně okomentovat. Jistě není možné postihnout vše, ale myslím, že i onenvý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 5V současné době nejdiskutovanější technologií webu je nesporně HTML 5, která navazuje na XHTML aHTML. V čem se od klasického HTML, které se běžně vyučuje, liší? Myslím, že je možné změnyrozdělit do tří základních kategorií – důraz na strukturu dokumentu, podpora multimédií a offilineaplikace. Především na první dvě se o pr řádek níže podíváme poněkud podrobněji. Změn je alesamozřejmě více. Jako příklad je možné uvést vynucování párovosti všech značek, změnu zápisuně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čekpopsat obsah. Zvláštní značkou je popsána hlavička, patička, navigace, postranní panel nebooddě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átovatdokument. Přibyla také možnost spojit textový popis s videem či obrázkem. Trend je tedy takový, abybylo možné pomocí HTML 5 snadno popsat nejen vzhled dokumentu, ale také jeho logickoustrukturu.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 bylonutné užívat Flash ovládacích prvků, které jsou bezpečnostně velice problematické a i co se týčejejich vývoje ne právě snadné. Mimo to přibyla značka canvas, jenž umožňuje vytvořit jakésiinteraktivní plátno, do kterého může uživatel kreslit, zvětšovat si v něm vytvořený graf atp. Tento tagumožňuje v HTML 5 vytvářet nejen webové stránky, ale také webové aplikace. Ty mohou fungovattaké 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 jepřítomné políčko na e-mail, musí v něm být údaj ve správném formátu, podobně u data nebo textu.AJAXAJAX (Asynchronous JavaScript and XML) je technologie, která umožňuje, aby se načítala jen ta částstránky, která se aktuálně mění. Například je možné na webovou stránku umístit anketu a pohlasová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 onlinetextové editory, tabulkové procesory nebo databáze. Nemusí se stále dokola načítat celá stránka, jenwebový 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 jejednotnou technologií, ale spíše o konceptu práce s informacemi. Příkladem toho, že může býtimplementován dosti odlišně je druh dat, která se zasílají prostřednictvím XMLHttpRequest – může jíto 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 druhoustranu má také své problémy. Je rozbita koncepce logické struktury dokumentu, který se dynamickymění. Nepříliš dobře fungují tlačítka Zpět a Vpřed ve webových prohlížečích. Jsou zde problémy sestrojový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 naprofesionální úrovni.CSS 3Kaskádové styly (v anglickém originále Cascading Style Sheets) slouží k popisu zobrazení dokumentuvytvoř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ódstává přehlednějším a logičtějším. Nezanedbatelnou výhodou také je, že pokud je CSS souborumí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 tohotojazyka.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 jejednou 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 podpora2D a 3D transformace. Přímo pomocí kaskádových stylů bude možné upravovat vlastnosti dvoj itrojrozměrných objektů. Přítomné jsou funkce pro rotace, translace, změny velikosti atp. Význam jezř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 řadystrá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í jeprohlíž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 vzá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 ozarovná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 otechnologie budoucnosti, které by především ve vývoji webových aplikací měly nahradit AJAX. Důrazje kladen na oddělení obsahu a jeho logickou strukturu na jedné straně (HTML 5) a jeho vzhledu (CSS3). Velkým krokem kupředu je možnost opustit velké množství obrázků, které byly na webu jen čistě zdesignový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 doprohlížečů. Alespoň částečnou podporu nabízejí všechny dnes rozšířené aplikace pro procházeníwebu.ZávěrPodařilo se nám stručně se zmínit o AJAX jako o současné technologii na tvorbu webových aplikací ao CSS 3 s HTML 5, které představují jejich budoucnost. Ve volném pokračování se budeme věnovattechnologiím PHP, Java, Flash či Java Script, čímž bychom měli pokrýt většinu dnes používanýchwebových technologií mimo databázové systémy.JavaJava 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ší anejoblíbenější na světě a to hned z několika důvodů. Předně je platformně nezávislý, takževytvořenou aplikaci je možné provozovat pod jakýmkoli operačním systémem. Dále existuje i ve verzipro 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 Javyzvolili jiný přístup. Do operačního systému se nainstaluje speciální klient (JVM), který je vyvíjen prokaždý systém zvlášť. Všem koncovým aplikacím v Javě dává ale jednotné prostředí. Prostřednictvímvirtuálního stroje jsou obsluhovány všechny požadavky aplikace a operační systém přímo pracuje jens JVM. Nepříjemným důsledkem je jejich pomalejší spouštění a někdy také nižší běhová rychlost. Tytoproblémy jsou ale postupně odstraňovány. Z našeho pohledu je důležité, že pomocí Javy lze vytvořitaplety, 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 velicesilný 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í.FlashJednou z nejkontroverznějších technologií je Flash. Slouží pro tvorbu webových banerů, animací čiaplikací. Je založený na spojení vektorové grafiky s ActionScript. V novějších verzích ale podporujetaké práci s bitmapy a je možné nalézt relativně složité aplikace v něm vytvořené, jako jsou onlinefoto 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 zokna 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žnostireagovat 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 awebových aplikací. Výhodou je možnost běhu v prohlížeči a malá velikost souboru. Druhou variantouje 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.PHPJednou z nejvíce používaných webových technologií současnosti je PHP ( PHP: HypertextPreprocessor). 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ěží skripta 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.) avyuží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 řadaframeworků. Z didaktického hlediska je ale problematické to, že má dynamické typování (typpromě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é jemož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ějiuváděna malá podpora výjimek, slabá podpora UNICODE a neschopnost udržet kontext (proto jevelmi 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 jemožné se na webu setkat. Microsoft se pokusil o vytvoření alternativy s názvem ASP. Tatotechnologie 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čnostrozhodla nahradit ASP.NET, která vychází z komplexního balíčku .NET. Ten se snaží konkurovatpř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ýmnedostatkem je nepřenositelnost a závislost na rozsáhlém a často zbytečně robustním rozhraní.JavaScriptJavaScript je multiplatformní, objektově orientovaný skriptovací jazyk, který se užívá u webovýchstrá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 pracovatse soubory). Má podobnou syntaxi jako Java a stejně a stejně tak je silně objektově orientován. Jazykslouž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 jakopří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šíchaplikací). 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ěrAč jsme se o vybraných webových technologiích zmínili jen velice krátce a informativně, přestověříme, že jsme vytvořili alespoň základní informativní rámec, který by mohl být předán studentůmtak, aby byli schopni ve webových magazínech či zprávách dobře rozlišit, o čem se mluví a jaké jsouzákladní rysi těchto konceptů. V dalším článku se stručně podíváme na databázové systémy, které seve webovém prostředí používají.Databázové systémySoučástí výuky informatiky by měla být také práce s databázemi. Je jistě dobré, pokud mají studentijasno 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 sepodrobněji na některé databázové systémy, jenž mají reálné aplikace, ale také na některé, které jemož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 jemož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, žedatabáze bude v každém okamžiku konzistentní a nebude možné provádět více operací s jednoupoložkou současně. Jde o zásadní bezpečností opatření, které zabraňuje tomu, aby vznikly záznamy schybami či nesmyslnými hodnotami. Na druhou stranu dochází díky ACID samozřejmě k netriviálnímuzpomalení 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ímmá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ěmitodatabá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 SQLdatabázi, která bude evidovat textové dokumenty a v jednotlivých sloupcích budou základní metainformace 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 druhemalternativních databází jsou grafové databáze, kde je důraz kladen na souvislosti mezi jednotlivýmiobjekty. 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ýzustruktury 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 nainternetu do velké míry prim SQL (především u menších a jednodušších projektů), je dobré, aby bylistudenti s pojmem (a základními principy) NoSQL seznámeni. Umožní jim totiž době pochopit, žeorganizace 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, aletaké ř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á propochopení č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 zazbytečné buzzword bez významu a budoucnosti. 9
  • 10. SQLJak 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řenytabulkou). Data je možné definovat, modifikovat, přidávat, je podporována práce s různýmipří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 dvazáznamy se stejným ID. Databáze se řídí pravidlem ACID – transakce se provede buď jako celek nebovů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ázemia 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ázePro řadu aplikací je SQL zbytečně složitou a robustní databází. V praxi se setkáváme s velkýmmnož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émuklíč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é aplikacetohoto druhu databáze může být Redis, který umožňuje k jednomu klíči přiřadit více záznamů a to vpě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žšíchmožností databáze. Časté je řešení, kdy základní dotazy a funkce zajišťuje rychlá key-value databáze apokročilejší a náročnější operace pomaleji relační databáze. Toto řešení užívá například Facebook čiLinkedIn.Dokumentově orientované databáze a XML databázeJiným problémem SQL databází je jejich pevná struktura. Tabulka musí mít jasně definovaný početsloupců a všechna data s nimi musí přiměřeným způsobem pracovat. Základní myšlenkoudokumentově 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 kdynapsali 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 dokumentydo systému uloženy (zde se například vyčleňují XML databáze) a jak konkrétně jsou z nich dolovánadata.Grafově orientované databázePoslední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ítflexibilnější řešení, které nabízejí právě grafově orientované databáze. Každý uzel má mimo vlastníchinformací 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ějvedoucí 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ěremAč 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