Možností rozšiřování funkcí www prohlížečů je celá řada. V dnešním článku si je roztřídíme a podíváme se na ně blíže. Mluvit budeme o různých druzích plug-inů pro Netscape Navigator a Microsoft Explorer, přičemž u toho druhého vezmeme v potaz i ActiveX componenty.
Snad nejdůležitější součástí dnešních prohlížečů se stává jazyk či platforma Java, i když ta nabývá skutečně celé řady forem a nemůžeme ji omezit jen na svět www. Modifikace chování prohlížečů, a tedy i pohled na www stránky jsou ale ještě pestřejší patří sem JavaScript, VirtualBasic, CGI aplikace i speciální formy programování www serverů, ale to již přesahuje téma článku.
Svět prohlížečů
World Wide Web umožňuje zobrazovat rozdílné typy dat v rámci jednoho dokumentu, přičemž do dat patří mimo textu zvuk, obraz, ale třeba také příkazy pro ovládání robotické paže. Je samozřejmě nezbytné, aby pro podobná data byl použitý počítač náležitě vybaven, na toto téma jsme se ovšem "bavili" v dřívějších číslech časopisu. Nad určitou úroveň základního vybavení je to otázka osobních preferencí, zda vyžadujete kameru nad postelí či zmíněnou robotickou motoriku.
Podívejme se ale na softwarovou stránku, na doplňky nezbytné pro povýšení našeho www prohlížeče do stavu, v jakém ho potřebujeme. Zde je ovšem uživatel plně v moci původního autora stránek musí akceptovat jím použité technologie a prostřednictvím nich si stránku zobrazit. Autor má plné právo se s ohledem na své schopnosti a potřeby rozhodnout, zda využije možností JavaScriptu či ActiveX. Podotkněme, že tyto technologie jsou z hlediska dosažitelného výsledku do značné míry záměnné a míra jejich využívání může záviset na právě probíhajícím módním trendu.
Původně byly nové typy dat podporovány v prohlížečích formou pomocných aplikací (helperů), které byly spuštěny do volného paměťového prostoru pro prezentaci dané části dokumentu. Již ze samotného popisu vyplývá řada omezení a nepohodlí podobného postupu.
Plug-iny
Od verze 2.0 Netscape Navigoru je ale možné helpery nahrazovat zásuvnými moduly plug-iny. Místo otevření pro prohlížeč neznámých dat do externích prohlížečů, plug-in je umožňuje prezentovat v rámci kompozice stránky a mnohem důsledněji respektovat autorovu práci. Možnosti plug-inů a typů podporovaných dat jsou prakticky neomezené, protože mateřský prohlížeč tu předává kontrolu samostatnému kódu nezávislých programátorů a omezuje je maximálně z hlediska dostupné paměti.
Plug-iny byly vyvinuty firmou Netscape pro podporu nových typů dat v rámci okna Navigatoru, bez nutnosti spouštět externí prohlížeče. Dalším cílem bylo uvolnit ruce programátorům, aby mohli sami rozhodovat o způsobu zobrazování dat. Posledním požadavkem bylo samozřejmě crossplatformní zpřístupnění dat.
Plug-iny mohou poskytovat multimediální funkce, zobrazovat formátované informace, spouštět aplikace, zajišťovat komunikaci mezi aplikacemi nebo spravovat odkazy na jiná místa Internetu. Plug-in může reprezentovat třeba tabulkový procesor, umožňující přímo v prohlížeči (lokálně) pracovat s tabulkami.
Princip jejich funkce je jednoduchý: pokud Navigator narazí na neznámý typ dat, vyhledá na disku plug-in tomuto typu přiřazený a nahraje jej do paměti. Jakmile není jeho služeb potřeba, je paměť zase uvolněna. Pokud není adekvátní plug-in nalezen, pokusí se prohlížeč pomoci uživateli s jeho nalezením vlastní nahrání a instalace ovšem zůstávají "manuální" prací.
Netscape definoval tři odlišné typy plug-inů: embedded, full-page a hidden. Nejtypičtějším příkladem jsou ty první, zapuštěné, které se objevují jako součást větších HTML dokumentů. Takto je třeba možné pracovat s MPEG filmy, které se jeví jako "pohyblivé" obrázky a jsou viditelné přímo jako součást stránek. Full-page alias celostránkové plug-iny se chovají adekvátně svému názvu pro takto podporované typy dat se prostě otevře nové okno prohlížeče pro ilustraci stačí otevřít libovolný pdf dokument.
Hidden (skryté) plug-iny běží na pozadí www stránky a umožňují uživateli rolovat stránkou a prohlížet si ji, zatímco plug-in pracuje. To je nejjednodušší metoda pro vytváření stránek s MIDI hudbou jako doprovodem.
Nevýhodou plug-inů je především nutnost jejich shánění a některé plug-iny přitom mohou představovat megabajty dat ke stažení. Vzhledem k tradičnímu stavu Internetu, plného změn a nestabilních beta-verzí, může být někdy problém plug-in vůbec rozchodit. Bezpečnost vašich dat není zcela garantována a nějaký prohnilý kousek kódu se může na vašem disku docela pobavit jak se to prokázalo například u starší verze Shockwave. Plug-iny musí být pro danou platformu zkompilovány, a na rozdíl od Javy tak pro určitý operační systém vůbec nemusí být dostupné. Ještě horší je, že nemusí fungovat ve všech prohlížečích, a pokud jich používáte víc, budete si možná muset plug-in nahrát v několika různých verzích.
Existuje mnoho různých přehledů dostupných plug-inů: nejvhodnějším začátkem je určitě BrowserWatch Plug--In Plaza! (http://browserwatchinternet.com/plug-in.html.), kde nalezneme celou řadu důležitých informací, týkajících se i ostatních témat tohoto článku. Snad jen připomeňme, že z nekonečné řady plug-inů vyčnívá Shockwave firmy Macromedia, který se stal de facto (a dočasně) standardem pro interaktivní multimédia na www.
JavaScript a VBScript
JavaScript je skriptovací jazyk vyvinutý firmou Netscape, opět pro vytváření interaktivních stránek. V žádném případě nemá nic společného s Javou, jak by se mohlo podle náhodné podoby názvů zdát.
Pokud nějaký program podporuje skriptovací jazyk, znamená to, že obsahuje jeho interpreter a má implementovanou určitou velmi limitovanou množinu instrukcí bezprostředně spojených s nějakou jeho činností, již může provádět. Jde o jednoduchou formu programování, ale dá se jí dosáhnout působivých výsledků.
Pro běh JavaScriptu je nezbytný pouze prohlížeč tento jazyk podporující, což z těch dvou opravdu důležitých činí oba dva. To velmi nahrává používání JavaScriptu, zvláště když přičteme ještě jeden malinký důvodek jde zřejmě o nejjednodušší způsob začlenění jisté formy interaktivity do vaší stránky.
Vyžaduje to jisté znalosti HTML programování a výsledek začleněný přímo do zdrojového kódu stránky vypadá nějak takto:
<script language="JavaScript">
document.write("Toto je JavaScript!")
</script>
Proti práci s C++ či Javou je to přece jen jednodušší i když pro tento skriptovací jazyk neexistuje taková rozmanitost neustále zdokonalovaných vývojových prostředí na druhé straně většina problémů schopnějších alternativ se JavaScriptu prostě netýká.
Dobrým startem je prostudování si stránek "VOODOO\S INTRODUCTION TO JAVASCRIPT" (http://rummelplatz.uni-mannheim.de/~skoch/js/tutorial.htm).
VB Script je velmi výkonný skriptovací jazyk, navržený pro vytváření aktivního obsahu www stránek. Umožňuje vývojářům spojovat a automatizovat akce objektů na stránce obsažených, včetně ActiveX Controls (viz dále) a apletů napsaných v jazyku Java. Je to novější pohled na problematiku očima firmy Microsoft.
Java a Java aplety
Java je jazyk vyvinutý společností Sun Microsystems, jenž umožňuje www stránkám obsahovat kód, který je prováděn prohlížečem. Java je vlastně interpretována, což umožňuje Java programy spouštět na libovolném systému, který má "virtual machine", implementující dostatečně aktuální verzi Javy. Z programátorského hlediska je Java objektový jazyk velmi se podobající C++, ovšem s tou výjimkou, že chybějí problematické rutiny pro práci s pamětí, které jsou zřejmě největší slabinou C++. Kvalita výsledku ovšem jako vždy závisí na programátorovi. Program může běžet v samostatném okně, nebo také jen sofistikovaně manipulovat s částmi stránky. HotJava je mimochodem www prohlížeč zcela napsaný v programovacím jazyku Java, a je tak mezi svou konkurencí jednoznačně "nejcrossplaformnější" je naprosto identický pro všechny platformy.
Při interpretaci jsou v průběhu Java programů ty jsou většinou označovány jako Java aplety příkazy postupně překládány do spustitelné formy. Kvalita interpreteru, tedy stabilita a výsledná rychlost programů, se může velmi lišit podle systému a dostupného hardwaru. Nový přístup (paradoxní označení ve spojení s něčím tak mladým, jako je Java) je používání tzv. JIT (Just In Time) překladačů, které hned po nahrání aplety přeloží; poté už s nimi již můžeme pracovat. Rychlost je až desetkrát větší než při plně interpretačním postupu.
Důležitým kriteriem použitelnosti Javy je bezpečnost dat na lokálním disku připojeného počítače. Java byla vymyšlena tak, aby se nahraným apletům daly vymezit "hrací mantinely". Zabudovaný "Java security manager" je konzultován, kdykoli se Java pokusí operovat na vašem disku či v interním síťovém prostředí, a v naprosté většině případů zabrání jakýmkoli akcím mimo rámec prohlížeče. S rozšiřováním působnosti Javy na intranety a kancelářské aplikace (viz Office firmy Corel) budou ovšem restriktivní pravomoci manageru oslabovány a boj s novými bezpečnostními slabinami Javu nepochybně ještě čeká.
Většina operačních systémů dnes nabízí Java přehrávače, jejichž služby jsou dostupné všem standardním aplikacím, které jsou schopny je využít. Pokud si jen trochu hrajete s Interpreterem, můžete mít brzy na svém počítači třeba tři nebo čtyři implementace Javy. Většinou bude rozhodující ta používaná ve www prohlížeči např. Microsoft Explorer je natolik šikovný, že nabízí možnost volby.
V každém případě především komerční místa vyžadující identifikaci uživatele jsou dnes z 90 % postaveny na Javě, a bez ohledu na ActiveX a další technologie se bez ní již brzy nikdo neobejde. Java může být využita i mimo rámec www, například v prostředí Internetu nebo intranetu, kde demonstruje efektivní použití architektury klient-server či síťových počítačů NC. Programy budou nahrávány z ústředního serveru přímo do paměti bezdiskových počítačů. Levné, efektivní, i když určitě ne nejrychlejší. To je ale budoucnost, která se stane realitou na přelomu tisíciletí.
Prozatím je více vývojářů než hotových programů, ale jejich skutečná záplava je již nepochybně na cestě. Počítejte však s tím, že budou pro svůj běh vyžadovat přítomnost jistých knihoven kódu (Classes) na vašem počítači jinak by velikost nahrávaných apletů byla příliš veliká.
CGI
CGI (Common Gateway Interface) patří vlastně do soudku ovládání serverů, ovšem přímo se dotýká i uživatelů, kdykoli se prohlížená stránka chová dostatečně nestandardním způsobem. CGI skripty jsou metodou,
jak doprogramovávat např. v jazyce Pearl funkce ležící mimo možnosti formátu i plug-inů pro www servery. Můžeme si je představit jako miniprogramy, operující v rámci hostitelského systému. O těchto formách skriptování rovněž platí většina z komentářů k JavaScriptu.
Takto lze dynamicky generovat stránky obsahující data hledaná v databázi či je skutečně po částech seskládat podle uživatelova zadání. Následek je zřejmý stránky existují dočasně a poznamenávat si jejich adresu nemá žádný smysl. To bývá problém u vyhledávacích stránek (AltaVista), kde řada nabídnutých odkazů nikam nevede.
ActiveX
Technologie ActiveX je jistá forma alternativy jazyku Java firmy Microsoft. Jde o prostředek pro vytváření interaktivních www míst, nabízející technologie pro klienty i servery formou Active Controls, ActiveX Documents a ActiveX Scripting. Tzv. ActiveX Controls fungují velmi podobně tradičnímu OLE mohou být uloženy na klientově disku nebo je lze nahrát v okamžiku potřeby z internetového serveru. ActiveX Scripting umějí koordinovat aktivity jednotlivých "Controls" v rámci www stránek. Pro takovéto skriptování jsou prozatím dostupné jazyky VB Script a JavaScript.
ActiveX Documents představují slibnou technologii, nahrazující klasické stránky. Takovéto aktivní dokumenty s interaktivními funkcemi, vytvořené právě zmíněnými prostředky, lze totiž prohlížet a modifikovat přímo ve www prohlížeči, pokud samozřejmě ActiveX podporuje. Na tomto principu bude postaven Internet Explorer 4.0 a Windows 98, s možností takto vytvářet vlastní uživatelské rozhraní.
Jak vidno, jdou možnosti ActiveX daleko za funkčnost klasických plug-inů. Zejména mohou být začleněny do stránky a automaticky nahrány při jejím prohlížení. Bohužel z hlediska crossplatformnosti a bezpečnosti dat jsou slepými mezi jednookými. Řada z jejich funkcí je příliš Windows-centrická a nezapomínejme, že jako servery a pro vytváření stránek se používají především jiné platformy. Slušné množství ActiveX Controls je dostupných pro Windows 95/NT, pro 3.x a ostatní systému je to velmi slabé. Programovací rozhraní ActiveX je poměrně komplikované, ovšem Visual Basic verze 5 zvládne jejich snadné generování, avšak opět pouze pro Windows 95/NT. Připomeňme, že ActiveX musí být specificky psány pro danou platformu, na rozdíl od interpretované Javy.
Velmi závažné bezpečnostní problémy pronásledují ActiveX od samotného počátku a nevychované stránky mohou třeba mazat soubory na místním disku. Původní forma zabezpečení (Authenticode, digital ID pracující na principu identifikace výrobce, kterého by bylo možno hnát k zodpovědnosti) se ukázala nedostačující. ActiveX Controls by měly být označeny digitálním podpisem výrobce a prohlížeč by před jejich nahráním měl uživatele informovat, zda je podpis přítomen, a v takovém případě zobrazit i základní informace o výrobci včetně www adresy. Na uživateli potom je, zda si daný produkt pustí do počítače (jen tento, všechny budoucí od daného výrobce...).
Množství bezpečnostních děr v ActiveX zaplavilo na počátku roku odborný tisk a v podstatě opozdilo vývoj Exploreru 4.0 i Windows 98, protože Microsoft musel různá odhalení "kontrovat" rychlými aktualizacemi odkrytých slabin architektury. Bezprostřední použití čeká ActiveX spíše v intranetech než Internetu....
Jaroslav Zapletal