Jak na webové aplikace

V souvislosti se současným vývojem webových aplikací se velmi často skloňuje slovo Ajax. Někteří odborníci ale nast...


V souvislosti se současným vývojem webových aplikací se velmi často skloňuje
slovo Ajax. Někteří odborníci ale nastolují otázku, zda se jedná o tu správnou
cestu. Strana 27
VoIP dospívá
Zvuková kvalita, spolehlivost volání a rozšířené funkce VoIP systémů jsou
konečně dostatečně vyzrálé pro použití, a aby se technologie VoIP dočkala
širokého využití i v podnicích, zbývá vyřešit už jen několik málo problémů...
Strana 28
Inteligentní a bezpečné WLAN
Vědci v současnosti pracují na projektu s názvem Knowledge Based Networking
síti, která bude schopna autokonfigurace, inteligentního cachování a směrování
dat i rychlého a spolehlivého sdílení informací. Strana 29
Webové aplikace dnes představují významný fenomén. Zatímco ve své
"prehistorické" podobě měly ve formě jednoduchých webových stránek pouze
informační funkci, dnes jsou schopny provozovat značnou část agendy podnikových
aplikací. Někteří IT odborníci proto přirovnávají nástup webových aplikací k
milníku, srovnatelnému například s příchodem architektury klient-server
počátkem 90. let. Aplikace založené na webových technologiích využívá stále
více podnikových zákazníků.
Pokud měříme čas z hlediska vývoje počítačů a internetu, tak v poměrně vzdálené
době vznikaly internetové stránky pouhým psaním HTML stránek, což nebylo nic
jiného než několik souborů na vzdáleném počítači, honosně označovaném jako
server, které se při napsání správné URL stáhly na počítač uživatele a
zobrazily. Server se do tohoto procesu tedy nijak výrazně nezapojoval. Netrvalo
však dlouho a lidé postupně začali stránky obohacovat dynamicky se generujícím
obsahem. Postupem času ale začaly vycházet na povrch nevýhody tehdejšího
způsobu generování stránek. Pravděpodobně nejvýraznějším problémem bylo, že pro
každé generování stránky bylo nutné nahrávat celý spustitelný program nebo
interpret do paměti a spouštět ho jako samostatný proces. Tento způsob je však
při velkém množství požadavků neúnosný. První generace
Proto se vzápětí objevily prostředky, které bychom dnes mohli označit jako
řešení webových aplikací první generace open source programovací jazyk PHP
(dříve tato zkratka představovala Personal Home Page, dnes PHP je spíše
spojováno s Hypertext Preprocessor) a podobné řešení od Microsoftu nazvané ASP
(Active Server Pages). Jednalo se přibližně o rok 1997, kdy obě technologie
dospěly do verzí, které se ve veřejnosti velmi výrazně rozšířily ASP 2.0 a PHP
3. Přínosem této technologie byl nejen nový jazyk a těsnější integrace s
webovým serverem, ale také řada podpůrných knihoven a funkcí, které výrazně
zjednodušovaly vývoj aplikací. Zároveň představovaly asi největší rozdíl mezi
ASP a PHP. ASP samo o sobě neobsahuje mnoho vestavěných funkcí, a nové funkce a
knihovny se do něj přidávají prostřednictvím objektů COM. To znamená, že na
server stačí nakopírovat a zaregistrovat příslušnou DLL knihovnu, přičemž z ASP
máte jednoduchý přístup ke všem funkcím dané knihovny pomocí objektů COM.
Na druhou stranu PHP se dodává s pevnou sadou knihoven, které jsou
naprogramovány pouze pro řešení PHP. Je možné přidávat nové knihovny, ale ty
musí byt speciálně vyvinuty pro PHP. To by se mohlo jevit oproti ASP jako
nevýhoda, ale množství knihoven a funkcí, s nimiž se PHP běžně dodává, je
zpravidla pro většinu aplikací dostatečné.
Samozřejmě, že zde byli (a jsou) i jiní autoři a dodavatelé technologií pro
internet. Jedním z nich je např. Sun a jeho Java. Původním řešením pro webové
aplikace od Javy byly takzvané servlety šlo v podstatě o ekvivalent starého
způsobu psaní aplikací. Kód HTML se generoval pomocí metody print stejně jako
se používá třeba drive v Perlu nebo v programovacím jazyku C. Servlety ale měly
několik zásadních výhod, například udržovaly takzvané sessions (relace). O
správu a spouštění servletu se stará servlet container, který úzce spolupracuje
se serverem a díky tomu tak může servlety spouštět a spravovat daleko
efektivněji, než spouští obyčejný web server programy CGI (Common Gateway
Interface). Navíc servlety podporují relace, což CGI programy neumožňují.
Základní princip psaní ASP, PHP nebo JSP (Java Server Pages) stránek je
jednoduchý. Programátor napíše obyčejnou HTML stránku, a následně nebo současně
napíše mezi speciální značky program v PHP nebo ASP. Problém je však v tom, že
tento způsob tvorby kódu dává programátorům příliš mnoho volnosti takový
pracovník prostě může psát kód kde chce a jak chce. Proto často existuje mnoho
diametrálně odlišných způsobů, jak napsat jednu a tutéž věc. Důsledkem pak je,
že projekty jsou různě vedené, každý má svoji vlastní filozofii, a tak je často
velmi složité po jiném týmu převzít kód a dále ho rozvíjet či upravovat.
Druhá generace
Významnou změnu do vývoje webových aplikaci přineslo v roce 2001 uvedení
ASP.Net. Přínos ASP.Net by se dal skutečně označit jako revoluční, takže jej
můžeme označit za počátek druhé generace webových aplikací. Určitě by se dala
najít řada aplikací a frameworků, které používaly stejné nápady jako ASP.Net
dříve, než ASP.Net spatřilo světlo světa, avšak právě tato technologie byla
prvním prostředím, které všechny zmíněné dobré nápady integrovalo do úhledného
balíčku s dobrou dokumentací a rozsáhlým množství příkladů. Navíc Microsoft
vydal novou verzi svého programu Visual Studio, která byla přímo připravena pro
vývoj aplikací v .Net frameworcích. Jednou z do té doby nevídaných funkcí bylo
například ladění webových aplikací přímo v prostředí Visual Studia stejným
způsobem, jaké byli uživatelé zvyklí z běžných desktopových aplikací.
Podívejme se postupně na několik hlavních přínosů ASP.Net:
n Podpora pro vytváření pravých zapouzdřených komponent a vývoj vlastních tagů.
n Transparentní uchovávání stavu jednotlivých komponent na stránce.
n Události komponent, které sice vyvolá klient v prohlížeči, ale spustí je kód
na serveru.
n Rozdělení zpracování stránky na serveru do několika logických kroků.
n Solidní knihovna dodávaná s .Net frameworkem.
Jak jsme již uvedli, jednou z hlavních nevýhod ASP nebo PHP je příliš velká
volnost při zpracování stránky HTML. Na rozdíl od toho se stránka v ASP.Net
zpracovává v několika logicky oddělených krocích. V podstatě stránka není z
hlediska ASP.Net nic jiného než komponenta (stejně jako ostatní komponenty
umístěné na stránce), která má několik dodatečných vlastností, ale v zásadě
prochází na serveru stejným cyklem jako každá jiná komponenta. Jednotlivé fáze
se realizují voláním příslušných metod. Mezi nejvýznamnější fáze patří load,
kde si programátor obvykle nastaví výchozí hodnoty, pak fáze zpracování
událostí, kdy mění stránku a její komponenty na základě událostí vyvolaných u
klienta, a konečně render. Také druhá generace...
Své místo mezi frameworky druhé generace si určitě zaslouží i jazyk Ruby on
Rails. Ruby je propracovaný objektový jazyk spíše jde o webový framework
postavený na jazyku Ruby. Ruby on Rails má zcela jinou filozofii tvorby
aplikací než PHP, ASP, JSP nebo ASP.Net. Srdcem Ruby on Rails je takzvaná MVC
(Model-View-Controller) architektura. Za Model je považována ta část kódu,
která se stará o samotnou práci s daty a s databází a jež obsahuje samotnou
logiku aplikace. View je komponenta, která se stará o zobrazování dat. A
konečně Controller je takový rozcestník, který řídí přechody mezi stránkami
nebo akcemi na stránkách.
Bohužel PHP samo o sobě nenabízí nic podobného jako ASP.Net. Na druhou stranu
je díky své jednoduchosti a multiplatformnosti často využíváno v méně
nákladných hostingových plánech a slouží spíše pro vývoj menších projektů.
Pokud se však podíváme na PHP komunitu pozorněji, zjistíme, že pro PHP existuje
řada frameworků, některé se blíží ASP.Net, jiné si naopak půjčují nápady
odjinud. Lze skoro říci, že pro každou filozofii programování se v PHP dá najít
alespoň jeden framework. Tím by se dalo PHP zařadit po bok ASP.Net do druhé
generace webových aplikací. Mezi PHP frameworky, na něž lze v poslední době
často narazit a jež byly inspirovány jazykem Ruby On Rails, patří například
CakePHP, Symfony, PHPOnTrax, Mojavi nebo Zend framework. Pokud chcete v PHP
programovat podobně jako v prostředí ASP.Net, zkuste Prado. Nyní je pro PHP k
dispozici více než 40 různých frameworků. To by se dalo na druhou stranu
považovat trochu za nevýhodu, protože těžko najdete odborníka, který by měl
zkušenost s více než s několika z nich. Těžko lze tedy dopředu říci, který
framework by mohl být nejvhodnější zrovna pro nějaký konkrétní projekt.
Případný rigorózní průzkum, testování a porovnání může být poměrně nákladné.
Často je také slyšet názor, že PHP není vhodné na větší projekty, že v něm
nelze psát elegantně a že práce v PHP je spíše jednodušší, protože "to přece
zvládne každý". Na druhou stranu ale v celkovém součtu běží na PHP nejvíce
webových aplikací a většina známých open source webových aplikací je postavena
právě na PHP.
Ovšem i Java může nabídnout něco nového. Jedná se převážně o framework Struts a
Java Server Faces (JSF). Jednou z výhod těchto frameworků je to, že oba staví
na servletech a JSP. Není tedy nutné si pořizovat speciální server nebo
provádět složitou konfiguraci. Jediné, co stačí, je použít příslušné JAR (Java
Archive) standardním způsobem. Z hlediska serveru pak vše vypadá jako jakákoliv
jiná běžná aplikace.
Závěrem
Bylo by příjemné, kdyby prohlížeče zobrazovaly uživatelské rozhraní pomocí
komponent, které by měly své obrazy na serveru a komunikace mezi serverem a
prohlížečem by pro programátora probíhala transparentně. Připomeňme, že některé
z těchto nápadů jsou alespoň zčásti integrované například v prostředcích:
n XUL (UI rozhraní pro produkty Mozilla, které lze využít k tvorbě webových
aplikací)
n XAML (nadcházející nový jazyk pro uživatelské rozhraní ve Windows Vista)
n Macromedia Flex (uživatelské rozhraní pro webové aplikace, založené na
Macromedia Flash s možností transparentní komunikace klientů se serverem)
n OpenLaszlo (podobné řešení implementované v JavaScriptu)
Autor pracuje jako Software Engineer ve společnosti Kaktus Software.(pal) 6 1394
Budoucí "třetí" generace
Podívejme se na možné další směry vývoje webových aplikací. Označme je dočasně
jako webové aplikace třetí generace. V souvislosti se současným vývojem
webových aplikací se dnes velmi často skloňuje slovo Ajax. Osobně si myslím, že
se jedná o krok správným směrem, ovšem diskutoval bych o tom, zda se jedná o tu
správnou cestu. Pokusím se tento názor objasnit, ale nejprve se podívejme, co
Ajax znamená. Pokud se začteme do nějakého článku o Ajaxu, obvykle hned na
začátku zjistíme, že všechno, co Ajax umí nebo umožňuje, už tady dávno bylo jen
se tomu dalo nové naleštěné jméno. Ajax znamená zkratku slov Asynchronous
JavaScript And XML. Typická Ajax knihovna je proto tvořena několika
javascriptovými funkcemi, které umožňují komunikovat se serverem na pozadí
stránky (to znamená bez obvyklého zadávání požadavků), čehož se dociluje pomocí
standardních vestavěných komponent v moderních prohlížečích. Pokud se o tom
zmíníte před zkušeným vývojářem webových aplikací, tak se zarazí a zeptá se, co
je na tom nového podobné prostředky už dříve používal.
Na druhé straně typická Ajax stránka se také vyznačuje značným množstvím
vizuálních efektů a animací. To logicky kráčí ruku v ruce s dynamickým
načítáním obsahu, ale spíše už je to jen taková třešnička na dortu. Dost často
se ale setkáte se stránkami, které tyto efekty zneužívají a samotnému Ajaxu
právě dobré jméno nedělají. Mnoho lidí je dnes Ajaxem uchváceno a samotný Ajax
pro ně často znamená jen zmíněné blyštivé grafické prostředky. Osobně si
myslím, že se jedná pouze o přechodný stav, protože Ajax zatím představuje
stále ještě něco nového a dosud neokoukaného. Vzpomeňme si například na
technologii Flash, která už také začíná v poslední době nacházet důstojnější
místo a nepoužívá se tak často jako dříve. Proč? Protože už se okoukala a lidé
už nejsou ochotni čekat na opakované načítání nebo přehrávání té samé animace
při každém kliknutí na tlačítko nebo menu.
Ajax se tedy dá podle mnohých odborníků označit spíše za slepenec starých triků
pod novou nálepkou. V zásadě je možné s filozofií přesunu více funkčností
směrem k bohatšímu uživatelskému rozhraní pro web souhlasit, ale není jisté,
zda tu správnou volbu představuje právě Ajax. Bylo by dobře, kdyby internetové
prohlížeče poskytovaly to, co dnes umí ASP.Net nebo právě Ajax.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.