COMPUTERWORLD
Specializovan² t²denφk o v²poΦetnφ technice
o Internetu
(CW 23/96)

Interaktivnφ web

Nenφ tomu tak dßvno, kdy se webovskΘ strßnky skv∞ly v∞tÜinou jen n∞jak²m tφm obrßzkem. TakΘ slu₧eb, kterΘ bylo mo₧nΘ na t∞chto strßnkßch najφt, nebylo zrovna nejvφce a jejich realizace byla dosti spartßnskß. V poslednφch n∞kolika m∞sφcφch doÜlo ke vstupu mnoha firem do internetovskΘho byznysu, kter² p°inesl takΘ mnoho nov²ch technologiφ pro o₧ivenφ WWW strßnek a vytvß°enφ interaktivnφch slu₧eb.

ProΦ vlastn∞ pou₧φvat WWW?

World Wide Web, dnes jedna z nejpopulßrn∞jÜφch slu₧eb Internetu, byla p∙vodn∞ navr₧ena s ·myslem vytvo°it hypertextovΘ prost°edφ pro sdφlenφ informacφ. Kdo by se nadßl, ₧e se jφ dostane takovΘ podpory ÜirokΘ ve°ejnosti a stane se jedniΦkou mezi dalÜφmi, p∙vodn∞ daleko rozmanit∞jÜφmi slu₧bami Internetu.

Zßkladnφ model je velice jednoduch² a stojφ na HTML jazyku. Dokumenty zapsanΘ v HTML jsou vlastn∞ textovΘ soubory vyu₧φvajφcφ dalÜφ mo₧nosti, jak definovat specißlnφ text jako nap°. odkaz. Odkaz byl takΘ vlastn∞ prvnφm zßrodkem interaktivity, proto₧e umo₧≥uje v zßvislosti na p°ßnφ u₧ivatele zobrazit po₧adovanou informaci. D∙le₧itou vlastnostφ modelu bylo statickΘ uspo°ßdßnφ, nebo¥ HTML dokumenty jsou pouze soubory, kterΘ lze Φφst a pouze s pomocφ dodateΦn²ch prost°edk∙ lze reagovat na akce u₧ivatele. V∞tÜina odezev je takΘ zpracovßna samotn²m prohlφ₧eΦem, kter² je daleko vφce ne₧ jen pouh² prohlφ₧eΦ HTML soubor∙.

Krßtce °eΦeno velmi t∞₧ko byste hledali nevhodn∞jÜφ platformu na vytvß°enφ interaktivnφch slu₧eb, ne₧ je prßv∞ WWW. P°esto nelze mßvnout rukou a vytvß°et vlastnφ °eÜenφ, proto₧e v tom p°φpad∞ se vystavujete problΘm∙m s distribucφ vaÜeho softwaru na vÜechny platformy. Prßv∞ dostupnost webovsk²ch prohlφ₧eΦ∙ pro vÜechny poΦφtaΦovΘ platformy je obrovskou v²hodou WWW p°ed ostatnφmi typy slu₧eb. U₧ivatel nemusφ toti₧ instalovat specißlnφ software pro ka₧dou slu₧bu, staΦφ mu jeden program. Navφc - pokud se u₧ivatel brouzdß webem a narazφ na interaktivnφ aplikaci vytvo°enou pomocφ WWW, m∙₧e ji ihned vyu₧φt. To jsou dostateΦnΘ d∙vody, proΦ rozÜφ°it p∙vodnφ model WWW a umo₧nit tak provoz interaktivnφch slu₧eb a aplikacφ. Se vstupem komerΦnφch subjekt∙ se roztrhl pytel s nßstroji a zp∙soby, jak takovΘ aplikace tvo°it. Nejprve se podφvejme na dva zßkladnφ mo₧nΘ p°φstupy k tomuto problΘmu.

ServerovΘ aplikace

Ideßlnφm stavem je, pokud aplikace p°φliÜ nezat∞₧uje poΦφtaΦ u₧ivatele a jejφ zpracovßnφ probφhß na serveru. V takovΘm p°φpad∞ nenφ u₧ivatel nucen Φinit nic jinΘho, ne₧ reagovat na akce aplikace a u₧φvat v²hod slu₧eb tΘto aplikace. Velmi mal² soubor ·loh lze °eÜit tφmto zp∙sobem a pokud nejsou p°φmo °eÜeny pracφ na klientu, tak alespo≥ spolupracφ klienta a serveru. Nejprve se podφvejme, jak rozÜφ°it mo₧nosti WWW, ani₧ bychom u₧ivatele zat∞₧ovali instalacφ specißlnφch dopl≥k∙ jeho prohlφ₧eΦe.

CGI skripty

CGI (Common Gateway Interface) je nejstarÜφm °eÜenφm problΘm∙ se statikou HTML jazyka. Ale stßle pat°φ k nejpou₧φvan∞jÜφm. Prvnφm d∙vodem je Üirokß podpora snad vÜech existujφcφch WWW server∙, druh²m transparentost pro u₧ivatele. I ostatnφ °eÜenφ nevy₧adujφ v∞tÜinou od u₧ivatele nic jinΘho ne₧ standardnφ prßci s webem, ale existujφ pouze na urΦitΘ platform∞.

Jak tedy CGI funguje? Velmi jednoduÜe: WWW server p°edß skriptu ·daje dodanΘ u₧ivatelem (kliknutφm na tlaΦφtko, vepsßnφm dat do formulß°e) a ten je zpracuje. Vytvo°φ HTML strßnku, kterß je potom p°edßna zp∞t serveru. Skript m∙₧e b²t klasick² program, ale Φasto je takΘ °eÜen pomocφ dßvkov²ch p°φkaz∙ shellu Unixu (bash, sh, apod.).

Tφmto zp∙sobem lze samoz°ejm∞ °eÜit jen urΦitou skupinu ·loh. CGI je velmi neefektivnφ a zat∞₧uje znaΦn∞ server. Proto se pomalu p°echßzφ k elegantn∞jÜφm °eÜenφm.

API server∙

N∞kolik nejpou₧φvan∞jÜφch WWW server∙ nabφzφ vlastnφ soubor funkcφ, kterΘ umo₧≥ujφ vytvß°et dalÜφ slu₧by. RozÜi°ujφcφ programy pracujφ s daty od u₧ivatele a HTML dokumenty, kterΘ si u₧ivatel vy₧ßdal.

Mo₧nosti vyu₧itφ jsou ÜirokΘ a stejn∞ jako v p°edchozφm p°φpad∞, klientskß strana z∙stßvß naprosto stejnß. Nev²hodou je existence odliÜn²ch API pro ka₧d² produkt. Pokud se vÜak spolΘhßte na jedinΘho dodavatele, je pou₧φvßnφ API ideßlnφm °eÜenφm.

KlientskΘ aplikace

Jak ji₧ bylo napsßno, WWW prohlφ₧eΦe nejsou pouh²mi zobrazovaΦi HTML dokument∙. Jejich hlavnφ Φinnost stojφ prßv∞ na prßci s HTML dokumenty a teprve nov∞jÜφ verze jsou schopnΘ i pracovat s jin²mi daty.

Model klient/server se stßvß stßle populßrn∞jÜφm zp∙sobem °eÜenφ informaΦnφch systΘm∙. ╚asto je toto slovnφ spojenφ pou₧ito v kontextu, kter² neodpovφdß p∙vodnφmu v²znamu. U internetovsk²ch aplikacφ se vlastn∞ v₧dy jednß o spoluprßci klienta se serverem, ale zmφn∞nΘ oznaΦenφ se tΘm∞° nepou₧φvß. Pod pojmem "klientskΘ aplikace" se skr²vß °eÜenφ vyu₧φvajφcφ stßvajφcφho serveru (tj. standardnφho webovskΘho, FTP apod.) a veÜkerß prßce probφhß na poΦφtaΦi u₧ivatele. Samoz°ejm∞, ₧e se Φasto vyu₧φvß kombinace obou p°φstup∙, ale stßle p°evlßdß dopl≥ovßnφ funkΦnosti programu u₧ivatele.

Proto se nejprve podφvejme, jak je mo₧nΘ obohatit vaÜe strßnky o pohybujφcφ se objekty, "₧ivß" data atd. Dnes si ji₧ m∙₧ete vybrat z nep°ebernΘho mno₧stvφ zp∙sob∙.

Java

Nejste jist∞ p°ekvapeni, ₧e na prvnφm mφst∞ uvßdφm tento velmi populßrnφ jazyk. Nemusφ b²t pouze °eÜenφm na stran∞ klienta, ale m∙₧e. Prßv∞ tato flexibilita je v²teΦn² d∙vod, proΦ pou₧φt Javu. Jestli₧e dnes jeÜt∞ nejste p°ipraveni na propojenφ sv²ch dat na serveru s aplikacφ, zφtra se m∙₧e stßt nutnostφ tato data zp°φstupnit. A nenφ menÜφ problΘm ne₧ lehce upravit ji₧ existujφcφ program, prozatφm vyu₧φvajφcφ pouze mo₧nosti b∞hu v rßmci prohlφ₧eΦe WWW.

Zdßlo by se, ₧e dalÜφ technologie jsou zbyteΦnΘ, ale Java nenφ ideßlnφ. Pouze malΘ procento u₧ivatel∙ vlastnφ poΦφtaΦ a software umo₧≥ujφcφ provoz tzv. Java applet∙ a ne vÜe lze elegantn∞ °eÜit Javou. Podφvejme se tedy dßle.

ActiveX

Microsoft nikdy nespφ, alespo≥ ne p°φliÜ dlouho. Ve velmi nedßvnΘ dob∞ nabφdl v²vojß°∙m internetovsk²ch aplikacφ novinku pod nßzvem ActiveX. Pokud nebudeme zachßzet p°φliÜ do detail∙, je ActiveX realizacφ OLE technologie pro Internet.

Pomocφ tzv. ActiveX controls je mo₧nΘ rozÜφ°it webovskou strßnku o vlo₧enΘ objekty, kterΘ zpracovßvajφ akce u₧ivatele a mohou dokonce propojovat data na serveru s HTML strßnkami. Proto₧e tato technika je relativn∞ mladß, jejφ ₧ivotaschopnost se teprve prokß₧e.

ActiveX je sice soupe°em Javy, ale Microsoft elegantn∞ nad°adil svΘ °eÜenφ nad sunovsk² jazyk. Applety mohou b²t toti₧ jednφm z vlo₧en²ch objekt∙ a mohu spolupracovat s dalÜφmi. Hlavnφ nev²hodou je podpora pouze platformy Windows.

Plug-ins

JeÜt∞ ne₧ se objevila Java a ActiveX, na WWW kraloval Netscape a jeho rozÜφ°enφ, kterß se oznaΦujφ jako tzv. plug-ins (anglick² v²raz je natolik v²sti₧n², ₧e p°eklad do Φestiny je zbyteΦn²).

Existujφ desφtky, mo₧nß stovky t∞chto plug-in∙ a ka₧d² se v∞nuje jinΘmu problΘmu. Jsou zalo₧eny na komunikaci pomocφ API netscapovskΘho prohlφ₧eΦe nebo samostatnΘ prßce se specißlnφmi daty. Tato data jsou vlo₧ena do HTML dokumentu pomocφ odkazu a definice typu dat.

Aby bylo mo₧nΘ s t∞mito daty pracovat, musφ si u₧ivatel stßhnout a nainstalovat p°φsluÜnou aplikaci. Proto₧e pro ka₧dΘ °eÜenφ existujφ samostatnΘ aplikace, znamenß to neustßlou instalaci nov²ch produkt∙. To urΦit∞ nenφ cesta pro ty, kte°φ cht∞jφ rychle a efektivn∞ s Internetem pracovat, proto se dß p°edpoklßdat, ₧e plug-iny se stanou dopl≥kem jin²ch °eÜenφ (nap°. Javy).

NicmΘn∞ existujφ obecn∞ rozÜφ°enΘ plug-iny (nap°. Shockwave, RealAudio, VRML), dopl≥ujφcφ web o multimedißlnφ dimenzi. N∞kterΘ z nich se dokonce staly souΦßstφ nov²ch verzφ prohlφ₧eΦ∙ a jejich ₧ivotnost bude asi delÜφ. Ale dalÜφ postupn∞ mizφ, mφsto nich nastoupily ActiveX a zmφn∞nß Java. TakΘ jejich ·rove≥ a podpora v²robce je odliÜnß kus od kusu a tak tedy doporuΦuji od jejich pou₧φvßnφ spφÜe odstoupit.

Existuje vφt∞z?

Jak vidφte, je mnoho mo₧nostφ, jak se zbavit strnulosti HTML a ka₧d² mß svß pozitiva i negativa. Nelze jednoznaΦn∞ °φci, kter² zvolit, i kdy₧ urΦitΘ trendy jsou znßt. Tak tedy mΘ osobnφ doporuΦenφ znφ: pro Φist∞ serverovΘ aplikace volte API WWW serveru, pro klienty Javu nebo ActiveX.

(pes)


| <<< | CW o Internetu | COMPUTERWORLD | IDG CZ homepage |