InternetovΘ technologie pro tvorbu webov²ch aplikacφ
Boj o web pokraΦuje!
Internetovß horeΦka je nenßvratn∞ pryΦ, pot°eba tvorby webov²ch aplikacφ z∙stßvß. Na scΘnu p°ichßzejφ novΘ technologie a pokroΦilΘ verze technologiφ ji₧ zab∞hnut²ch. Chip se zam∞°il na Φty°i z nich: ASP.NET, ColdFusion, J2EE a PHP.
Od masovΘho rozÜφ°enφ internetu uplynulo sedm let. Doba internetovΘho "boomu" druhΘ poloviny devadesßt²ch let je nenßvratn∞ pryΦ, technologickΘ indexy akciov²ch trh∙ ji₧ n∞kolik desφtek m∞sφc∙ vytrvale klesajφ a slovo eBusiness ztratilo na svΘm lesku. Internet se ale osv∞dΦil! A to nejen jako modernφ nßstroj pro Üφ°enφ informacφ, ale takΘ coby nov² kanßl pro distribuci zbo₧φ a slu₧eb. Z velkΘ Φßsti za to vd∞Φφ technologiφm, kterΘ umo₧nily propojit databßze informacφ se sv∞tem webov²ch strßnek. Z mnoh²ch jmenujme ASP, ColdFusion, J2EE a PHP, odvßd∞jφcφ svou prßci na stran∞ serveru, nebo ActiveX prvky, Java Applety a Flash animace, spouÜt∞nΘ p°φmo v prohlφ₧eΦi webov²ch strßnek. V²voj ale pokraΦuje dßle. LetoÜnφ rok byl na novinky v oblasti internetu obzvlßÜt∞ bohat². Microsoft oficißln∞ uvedl svou novou platformu .NET, Macromedia novΘ verze sv²ch produkt∙ pod oznaΦenφm MX, na trhu s aplikaΦnφmi servery J2EE zu°φ konkurenΦnφ boj gigant∙ velikosti Sun Microsystems, IBM, Oracle a BEA. Boj o web pokraΦuje!
Od ASP k ASP.NET
PφÜe se rok 1996 a Microsoft, ve snaze dohnat rozjet² vlak internetovΘ mßnie, uvßdφ technologii Active Server Pages (ASP), kterß mß programßtor∙m webov²ch aplikacφ usnadnit tvorbu dynamicky generovan²ch strßnek. Technologie ASP, p∙vodn∞ vyvφjenß pod k≤dov²m oznaΦenφm Denali, spoΦφvß v kouscφch programovΘho skriptu vklßdan²ch do HTML k≤du webovΘ strßnky. Na p°elomu milΘnia je ji₧ ASP dob°e zavedenou technologiφ. Na obzoru se vÜak objevujφ robustn∞jÜφ technologie zalo₧enΘ na platform∞ Javy. Microsoft proto neotßlφ a pracuje na v²voji svΘ vlastnφ komplexnφ sφ¥ovΘ platformy. Letos v ·noru, po Φty°ech letech v²voje a dvou letech testovßnφ v podob∞ beta verzφ, Microsoft oficißln∞ uvedl na trh novou platformu pod nßzvem .NET. Jde o ucelen² blok technologiφ, kterΘ majφ programßtor∙m pomoci p°i tvorb∞ distribuovan²ch aplikacφ. SouΦßstφ balφku .NET je i technologie pro tvorbu webov²ch aplikacφ nazvanß ASP.NET. Od svΘ p°edch∙dkyn∞ ASP (nynφ naz²vanΘ Classic ASP) se vÜak v mnohΘm liÜφ. Dalo by se °φci, ₧e Microsoft posbφral ty nejlepÜφ prvky z dostupn²ch technologiφ, p°idal jednoduchost vlastnφ p∙vodnφ technologii ASP a s nemalou dßvkou inovace vÜe zatavil do jednoho ucelenΘho komplexu.
Jak to funguje
NovΘ ASP strßnky majφ nynφ koncovku ASPX a mohou b²t napsßny v n∞kterΘm z mnoha jazyk∙, kterΘ platforma .NET nabφzφ (C#, Visual Basic, C++, J# a dalÜφ). P°i prvnφm volßnφ se strßnka nejprve automaticky p°evede do obecnΘho jazyka, kter² Microsoft naz²vß MSIL. Takto p°ipraven² k≤d je potom zkompilovßn do nativnφho k≤du. Zkompilovan² k≤d se spustφ, provede po₧adovanΘ funkce a p°edß vygenerovan² HTML k≤d web serveru, kter² jej zaÜle klientovi. Na rozdφl od klasick²ch ASP strßnek se ASPX strßnka kompiluje pouze p°i prvnφm naΦtenφ. Nev²hodou je pon∞kud delÜφ odezva, kterß m∙₧e dosahovat i n∞kolika sekund. Ka₧dΘ dalÜφ dotazy na stejnou strßnku jdou u₧ ale do zkompilovanΘho programovΘho bloku, tak₧e ASPX strßnky jsou (po zkompilovßnφ) v²razn∞ rychlejÜφ ne₧ klasickΘ ASP strßnky. DalÜφ novinkou v psanφ ASPX strßnek je odd∞lenφ prezentaΦnφ vrstvy od programovΘho k≤du, kter² je nynφ ulo₧en v samostatnΘm souboru. HTML k≤d strßnky je tak p°ehledn∞jÜφ, programov² k≤d se zase snadn∞ji kompiluje a lΘpe se hledajφ potencißlnφ chyby. Dφky tomu mohl b²t zvolen takΘ zcela nov² p°φstup k tvorb∞ webov²ch strßnek. V∞tÜina klasick²ch HTML prvk∙ (nap°. popisky, tlaΦφtka Φi textovß pole) nynφ existuje takΘ v podob∞ tzv. Web Controls. Tyto elementy jsou uvozeny znaΦkovacφm p°φkazem <asp:nazev_prvku>, spouÜtφ se na stran∞ serveru a jsou p°φstupnΘ z programovΘho k≤du na pozadφ strßnky. Zde spoΦφvß z°ejm∞ nejv∞tÜφ rozdφl oproti klasick²m ASP strßnkßm. Programßto°i p°echßzejφcφ na novou technologii nad Web Controls nejprve nechßpav∞ kroutφ hlavou, ale brzy si je oblφbφ, p°edevÜφm pro jejich p°ehlednost a zrychlenφ prßce, kterΘ mohou p°inΘst. ASP.NET je velk²m krokem kup°edu. Tvorba webov²ch strßnek je p°ehledn∞jÜφ a robustn∞jÜφ. WebovΘ slu₧by (Web Services) lze vytvß°et stejn∞ snadno a rychle, platformu .NET lze zdarma stßhnout a nainstalovat! Jedinou nev²hodou tak z∙stßvß fixace na operaΦnφm systΘmu Windows.
ColdFusion
Technologie "rozÜφ°en²ch HTML znaΦek", ColdFusion, vznikß v roce 1995. Jejφm tv∙rcem je J. J. Allaire, zakladatel stejnojmennΘ firmy Allaire Corporation. Prvnφmi produkty firmy se stßvajφ ColdFusion server pro Windows NT a HTML editor HomeSite. Na zatφm nenasycenΘm trhu internetov²ch technologiφ pro tvorbu dynamick²ch strßnek se ColdFusionu da°φ velmi dob°e. Zatφmco Microsoft p°edstavuje technologii ASP, Allaire ji₧ uvßdφ na trh ColdFusion Application Server. Produktu se brzy dostßvß podpory na platform∞ Unix (HP, Sun Solaris a Linux). V roce 1999 Sun Microsystems uvßdφ svou platformu J2EE (Java 2 Enterprise Editon), urΦenou pro tvorbu robustnφch sφ¥ov²ch aplikacφ. Allaire vidφ v J2EE budoucnost. Dlouho proto nevßhß a v roce 1999 kupuje firmu Live Software, tv∙rce aplikaΦnφho serveru JRun, vystav∞nΘho prßv∞ na technologii J2EE. Allaire vytvß°φ verzi ColdFusion pro prost°edφ Javy a integruje jej se serverem JRun. ColdFusion tak neztrßcφ na svΘ jednoduchosti, zßrove≥ vÜak existuje vhodnß alternativa (JRun) pro tvorbu robustnφch Φßstφ webovΘ aplikace, kterΘ ColdFusion standardn∞ nenabφzφ. V roce 2001 kupuje Allaire firmu Macromedia a p°ebφrß jejφ jmΘno. Necel² rok po akvizici je na trhu ji₧ novß °ada produkt∙ pod oznaΦenφm MX.
Charakteristika
Jak ji₧ bylo naznaΦeno, technologie ColdFusion je zalo₧ena na znaΦkovacφch p°φkazech (anglicky "tag"), kterΘ se vklßdajφ do HTML k≤du strßnky stejn∞ jednoduÜe jako t°eba text nebo obrßzky. Ka₧d² ColdFusion p°φkaz plnφ urΦitou funkci, nap°φklad v²pis dat z databßze nebo odeslßnφ e-mailu. V HTML k≤du strßnky jsou tyto p°φkazy snadno rozeznatelnΘ. Prvφ t°i znaky p°φkazu tvo°φ "<CF" nßsledovßno typem p°φkazu a vstupnφmi parametry. Po vzoru HTML oznaΦuje Macromedia svΘ znaΦkovacφ p°φkazy CFML. Z technologickΘho hlediska funguje ColdFusion velmi podobn∞ jako klasickΘ ASP. Sφla technologie ColdFusion spoΦφvß p°edevÜφm v jednoduchosti a programovΘ nenßroΦnosti. DynamickΘ strßnky mohou vytvß°et i zaΦßteΦnφci bez znalosti objektovΘho programovßnφ. Tv∙rc∙m webov²ch strßnek staΦφ znßt n∞kolik CFML p°φkaz∙, kterΘ voln∞ vlo₧φ do svΘho HTML k≤du, a dynamickß strßnka je na sv∞t∞. ColdFusion se tak v²born∞ hodφ pro tvorbu relativn∞ mal²ch a nenßroΦn²ch web∙. ProblΘm m∙₧e nastat a₧ u slo₧it∞jÜφch webov²ch aplikacφ. Programßtor nemusφ najφt CFML tag, kter² bude spl≥ovat jeho po₧adavky. V poslednφ verzi ColdFusion MX je tento problΘm °eÜen mo₧nostφ tvorby vlastnφch znaΦkovacφch p°φkaz∙ nebo volßnφm komponent typu COM, COBRA a EJB. Zßkladnφ verze ColdFusion se dß po°φdit do 30 000 korun a je vhodnß zejmΘna pro menÜφ webovΘ projekty a designΘry HTML strßnek, kte°φ pot°ebujφ vytvß°et dynamicky generovanΘ strßnky rychle, bez nutnosti psanφ stovek °ßdk∙ programovΘho k≤du. Enterprise Edition je zhruba p∞tkrßt dra₧Üφ, nabφzφ ale takΘ mnohem v∞tÜφ paletu funkcφ vΦetn∞ podpory XML, webov²ch slu₧eb a integrace s platformami J2EE a .NET.
JSP a J2EE
Java a internet - dva pojmy, kterΘ spolu u₧ dlouhou dobu nerozluΦn∞ souvisφ. Objektov² programovacφ jazyk Java byl vyvinut firmou Sun Microsystems v roce 1991, p∙vodn∞ pro malß elektronickß za°φzenφ. Objektovß struktura, nezßvislost na hardwarovΘ platform∞ a jednoduchost vÜak p°edurΦily Javu pro pot°eby internetu. V polovin∞ devadesßt²ch let za₧φvß Java rozkv∞t jako nßstroj pro tvorbu Java applet∙ b∞₧φcφch na stran∞ klienta. Sunu postupn∞ dochßzφ, ₧e by Javu bylo mo₧nΘ stejn∞ dob°e pou₧φt takΘ na stran∞ serveru pro tvorbu dynamick²ch strßnek. V roce 1997 proto p°ichßzφ s konceptem Servlets - mal²ch program∙ generujφcφch webovΘ strßnky na stran∞ serveru. Sun pokraΦuje ve svΘ vizi internetu a o rok pozd∞ji p°edstavuje komplexnφ platformu J2EE (Java 2 Enterprise Edition). SouΦßstφ novΘ platformy je i technologie objektov²ch komponent EJB, vhodn²ch pro tvorbu distribuovan²ch aplikacφ. Tvorba prezentaΦnφ vrstvy webov²ch aplikacφ vÜak byla stßle pon∞kud nep°ehlednß. Sun se inspiroval technologiφ ASP a v roce 1999 zve°ejnil obdobnou specifikaci pod nßzvem Java Server Pages (JSP), postavenou na svΘ platform∞ J2EE. Technologie JSP v²razn∞ usnadnila prßci programßtor∙m. Namφsto psanφ komplexnφch servlet∙ nynφ staΦilo obohatit HTML k≤d strßnky o Φßsti programovΘho k≤du a novß JSP strßnka byla na sv∞t∞. Sun Microsystems navφc nenφ jedinou firmou, kterß dodßvß produkty zalo₧enΘ na platform∞ J2EE. Dφky svΘ licenΦnφ politice p°itßhla zßjemce z °ad softwarov²ch gigant∙. Pozornost se v∞nuje p°edevÜφm tvorb∞ aplikaΦnφch server∙ (viz tabulka).
Jak to funguje
V praxi funguje JSP nßsledujφcφm zp∙sobem. Klient si vy₧ßdß strßnku. Web server p°edß po₧adavek do aplikaΦnφho serveru. Pokud jde o prvnφ volßnφ JSP strßnky od jejφ zm∞ny, je strßnka nejprve p°evedena do podoby servletu. Zdrojov² k≤d (.java) takto vytvo°enΘho servletu je dßle zkompilovßn do bytovΘho k≤du (.class), kter² je pomocφ rozhranφ JVM spuÜt∞n. Program provede p°φsluÜnΘ operace (nap°φklad mapovßnφ EJB objektu, p°φstup do databßze) a v²sledek procesu p°edß zp∞t do web serveru, kter² v²slednou HTML strßnku zaÜle klientovi. P°i dalÜφm dotazu na stejnou strßnku ji₧ nedochßzφ ke kompilaci, ale k p°φmΘmu spuÜt∞nφ bytovΘho k≤du, tak₧e strßnka je v²razn∞ rychlejÜφ. Dφky rozhranφ JVM je technologie J2EE nezßvislß na hardwarovΘ platform∞ a operaΦnφm systΘmu. Programßto°i Φasto pφÜou JSP strßnky, servlety a EJB objekty v prost°edφ Windows, hotovΘ aplikace potom obvykle b∞₧φ na n∞kterΘm z typ∙ Unixu bez nutnosti jakΘkoliv zm∞ny k≤du. Pou₧φvßnφ interpreteru JVM sice zaruΦuje nezßvislost na platform∞, ale p°inßÜφ s sebou takΘ malou nev²hodu: aplikace interpretovanß pomocφ JVM je o n∞co mßlo pomalejÜφ ne₧ program spuÜt∞n² v nativnφ k≤du konkrΘtnφho operaΦnφho systΘmu. J2EE dnes pat°φ mezi vysp∞lΘ a robustnφ technologie se Üirokou podporou odv∞tvφ. AplikaΦnφ servery zalo₧enΘ na J2EE se vyznaΦujφ velk²m stupn∞m komplexnosti, a vy₧adujφ proto zruΦnΘ programßtory se znalostφ pokroΦilΘho objektovΘho programovßnφ. LicenΦnφ poplatky mnoha distributor∙ aplikaΦnφch server∙ (obzvlßÜt∞ firem IBM a BEA, kterΘ majφ dohromady 70 % trhu) se Φasto pohybujφ i v °ßdech statisφc∙ korun. Z toho d∙vodu se hodφ a₧ pro v²voj velk²ch internetov²ch a intranetov²ch aplikacφ.
PHP
Psal se rok 1994, kdy₧ se "duchovnφ otec" PHP Rasmus Lerdorf rozhodl ve svΘm volnΘm Φase naprogramovat v Perlu mno₧inu skript∙ slou₧φcφch pro evidenci p°φstupu k jeho strßnkßm. Toto °eÜenφ se vÜak ukßzalo pon∞kud neefektivnφm, nebo¥ neustßlΘ spouÜt∞nφ interpreteru jazyka Perl zat∞₧ovalo webov² server, v Φeho₧ d∙sledku se Rasmus rozhodl portovat cel² systΘm do jazyka C. Po autorov∞ uvoln∞nφ ·vodnφ verze PHP (Personal Home Page Tools) pro svΘ p°ßtele se systΘm zaΦal stßle vφce Üφ°it i mezi ostatnφ tv∙rce strßnek, zejmΘna potΘ, co byl autorem dopln∞n jeÜt∞ o program Form Interpreter - FI, zp°φstup≥ujφcφ databßzovΘ systΘmy na webu. A prßv∞ v okam₧iku zaΦlen∞nφ FI do tehdejÜφho PHP vznikl systΘm PHP/FI, kter² de facto zahßjil celosv∞tovou popularitu PHP. P∙vodnφ obsah zkratky tak zaΦal postupn∞ ztrßcet na obsahu (systΘm byl rozÜi°ovßn skupinou programßtor∙ o °adu funkcφ/mo₧nostφ), a tak vzniklo novΘ oznaΦenφ systΘmu: PHP hypertextov² preprocesor. V souΦasnΘ dob∞ m∙₧eme pracovat s verzφ PHP 4.2.2, kterß obsahuje oproti verzi 3 °adu zm∞n, ale hlavn∞ je podstatn∞ rychlejÜφ. PHP strßnky fungujφ na podobnΘm principu jako klasickΘ ASP strßnky. Podle koncovky ₧ßdanΘ strßnky je dotaz p°esm∞rovßn do modulu PHP ISAPI (p°φpadn∞ NSAPI Φi CGI), kter² strßnku zkompiluje a spustφ. V²sledek je p°edßn zp∞t do webovΘho serveru, kter² jej zaÜle klientovi. Jist∞ se v tomto okam₧iku ptßte, co stßlo za tak velkou a stßle rostoucφ popularitou jazyka. D∙vod∙ je hned n∞kolik. Prvnφm je bezpochyby jednoduchost vytvß°enφ k≤du, nebo¥ PHP skripty se dajφ pohodln∞ zaΦlenit p°φmo do HTML k≤du, p°φkazy majφ jednoduchou syntaxi ( je poznat, ₧e PHP byl navrhovßn programßtory pro programßtory - nejvφce se v n∞m "najdou" programßto°i v C/C++) a prßce s databßzemi je takΘ velmi jednoduchß. Druh²m je pak nezßvislost na platform∞, PHP skripty m∙₧eme programovat a p°enßÜet mezi zcela r∙zn²mi systΘmy (Windows, Unix, Mac OS a OS/2) a provozovat je na °ad∞ server∙ (Apache, iPlanet a dalÜφ). KoneΦn∞ t°etφm podstatn²m d∙vodem je skuteΦnost, ₧e PHP je open source a nap°φklad spolu s Linuxem, databßzov²m serverem MySQL a webov²m serverem Apache poskytuje levnΘ a stabilnφ °eÜenφ pro dynamicky generovanΘ strßnky webov²ch server∙. A v jak²ch v²vojov²ch prost°edφch (b∞₧φcφch na OS firmy Microsoft) lze vytvß°et PHP aplikace? Situace se i v tomto segmentu dynamicky vyvφjφ. D°φve staΦil programßtor∙m jednoduch² textov² editor, dnes ji₧ u v²vojov²ch prost°edφ po₧adujφ mo₧nost lad∞nφ k≤du, integrovan² webov² server a podporu databßzov²ch server∙. Dnes se setkßvßme s podporou jazyka PHP (minimßln∞ jeho syntaxe) nejen ve v∞tÜin∞ vysp∞l²ch vizußlnφch WYSIWYG prost°edφ typu Macromedia Dreamweaver MX, ale objevujφ se ji₧ celß studia zam∞°enß p°φmo na PHP, nap°. Zend Studio 2.5 (ex. ve verzφch i pro Linux a Mac OS X).