Vyšlo v týdeníku CHIPweek č. 22/96, 28. května 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a622k600.php3

Unlock the Internet, aneb: nová internetová koncepce Microsoftu

Firma Microsoft v současné době seznamuje širší odbornou veřejnost se svou novou strategií na poli Internetu, a to prostřednictvím konferencí, které pořádá po celém světě. Místem konání jedné nich z nich se 16. května stala i Praha

internetová konference firmy Microsoft byla opravdu velkou a významnou událostí - podle vyjádření pořadatelů se jí zúčastnilo na 700 tuzemských odborníků, a přes 500 zahraničních návštěvníků. Pravdou je, že kinosál Paláce kultury místy skutečně praskal ve švech, a pro případná budoucí repete se prý již uvažuje i o Strahovském stadionu :-) . Ovšem neméně velký byl i význam toho, co se na konferenci prezentovalo: byla to ve skutečnosti celá nová filosofie, kterou se firma Microsoft hodlá řídit, a která úzce souvisí s Internetem a jeho myšlenkami a technologiemi. Pojďme si proto naznačit, v čem tato nová filosofie spočívá - místo obvyklého výčtu přednášejících, názvu přednášek, společenského zákulisí a obsahu jídelního lístku.

Embrace and Extend

Představitelé Microsoftu jsou v odborném tisku často dotazováni, zda jejich firma nezaspala nástup Internetu. Ať již bývá odpověď jakkoli diplomatická, pravdou je že v poslední době Microsoft bere Internet opravdu vážně. Sám si v této souvislosti vytyčil heslo „Embrace and Extend", tedy něco jako „přijmout a dále rozvinout". První fáze hesla se v praxi projevuje tím, že Microsoft se snaží převzít a zabudovat do svých produktů myšlenky, které vznikly v prostředí Internetu a osvědčily se. Jedná se především o samotný princip „brouzdání" (browsing), který uživatelé Internetu dobře znají jako svůj nový „životní styl", přesněji jako způsob přístupu a práce s tím, co je jim nabízeno prostřednictvím služby WWW. Jsou to přitom v zásadě stejné zdroje a služby (např. textové dokumenty, zvuky, obrázky, hry, obecnější aplikace atd.), jaké jim nabízí i jejich osobní počítače - tak proč by se potom mělo k těmto objektům přistupovat různými způsoby v závislosti na tom, zda jsou „místní", nebo naopak „vzdálené"? Novou myšlenkou je tedy nabídnout uživateli onen „brouzdací přístup" i k lokálním objektům, které má u sebe na svém osobním počítači, a sjednotit tak jeho styl práce. V praxi to znamená, že uživatelé se i na své místní objekty (soubory, zařízení, aplikace atd.) budou moci dívat „brýlemi" hypertextových stránek, stejně tak jako na objekty vzdálené, nacházející se na Internetu. Současně s tím se sjednotí i nástroje, prostřednictvím kterých tak uživatelé budou činit - v prostředí MS Windows tak například splyne jejich Windows Explorer (v české lokalizaci Průzkumník) a browser Internet Explorer. Výsledkem bude jediná aplikace (jediný Explorer), univerzálně použitelná pro brouzdání „venkem" (Internetem) i „vnitřkem" (uživatelovým počítačem). Mělo by se tak stát již v příští verzi Windows 95, která je připravována pod kódovým označením Nashville (a nejspíše půjde o doplněk, rozšiřující stávající Windows). V Paláci kultury již byla předvedena i názorná ukázka.

Pro úplnost je vhodné ještě dodat, že brouzdání „venkem" nemusí znamenat jenom práci ve skutečném Internetu. Může to stejně tak dobře být práce v tzv. Intranetu, neboli v privátní síti fungující na principu Internetu (tj. využívající technologie Internetu), případně i v kombinovaném prostředí umožňujícím přístup do privátního Intranetu i veřejného Internetu. Microsoft se tak tímto tahem elegantně a účinně vyrovnal i s dnešním trendem k Intranetovým řešením.

Technologie ActiveX

Největší novum v přístupu Microsoftu k celé problematice Internetu však představuje jeho koncepce technologií ActiveX. Tu je třeba přiřadit již ke druhé části hesla „Embrace and Extend", neboť jde o výrazné rozšíření toho, co je v Internetu možné dnes. Sympatické a velmi důležité přitom je, že Microsoft tato rozšíření nekoncipuje jako ryze proprietární - tam, kde to je možné, aplikuje již existující standardy, a zcela nová řešení (a tudíž proprietární) přijímá jen tam, kde už to jinak nejde. Konkrétní příklad bude následovat, nejprve si naznačme o co vlastně jde.

Samotný Microsoft prezentuje svou technologii ActiveX jako celou soustavu prostředků, které mají především za cíl „oživit" WWW stránky (aktivovat, učinit aktivními), a zahrnout do nich všelijaké aktivní prvky reagující na nejrůznější podněty, různé multimediální prvky i celé malé a velké aplikace - zkrátka prakticky cokoli, co tvůrci stránek budou potřebovat k dosažení kýženého efektu. Dovolím si ale vyslovit názor, že jde současně i o dlouho očekávanou reakci Microsoftu na myšlenku, stojící v pozadí za jazykem Java a trendem k tzv. network-centric computing. Tato myšlenka spočívá v tom, že v síťovém prostředí se společně s daty budou přenášet po síti i programy potřebné pro jejich zpracování - neboli že bude docházet k dynamické distribuci aplikací po síti, na základě jejich skutečné potřeby. To pak umožní ústup od dosavadní tendence vybavovat koncové uzly vším, co by na nich mohlo být někdy zapotřebí (což vedlo na jejich výraznému „bobtnání" a narůstání jejich složitosti a obtížnosti správy). Právě firma Microsoft byla často kritizována, že jde proti tomuto trendu, resp. tento trend byl mnohdy chápán jako směřující proti přístupu firmy Microsoft. No a nyní tedy i firma Microsoft dala najevo, že nepůjde proti zmíněnému proudu, a představila svou vlastní koncepci, se kterou se chce vydat ve směru tohoto proudu. Svou novou koncepci přitom prezentuje současně i jako řešení, které umožní nahradit dosavadní „monolitický" přístup k budování aplikací (tj. budování velkých, jednolitých, a tudíž i značně těžkopádných aplikací) jednodušším a lépe modulárním „komponentním" přístupem, který umožňuje aplikace dynamicky sestavovat z menších částí (komponent) až v okamžiku skutečné potřeby. Oproti dosavadním koncepcím (tak jako třeba v případě jazyka Java) je přístup Microsoftu obecnější a univerzálnější - například v tom, že není striktně vázán na platformu služby WWW a její HTML stránky, ale je možné jej využít i jinde.

ActiveX Controls

Komponenty, resp. výkonné moduly (výkonné části) jsou v terminologii koncepce ActiveX realizovány jako tzv. controls, konkrétně ActiveX Controls. Po technické stránce jsou to zobecněné a zdokonalené prvky OLE (tzv. OLE Controls). Původně byly tyto OLE prvky určitými můstky či přechody mezi dvěma aplikacemi v prostředí MS Windows, které jim umožňovaly vzájemně si poskytovat své služby. To se nyní v zásadě zachovává, ale nový „control" může být současně i sám výkonným programem (aplikací), a ne pouze přechodovým můstkem do jiné aplikace. Asi nejlépe je dívat se na ActiveX Control jako na entitu, kterou lze požádat o provedení něčeho (poskytnutí nějaké služby, úkonu apod.), a ona to zajistí (ať již sama, nebo prostřednictvím někoho jiného). Příkladem může být ActiveX Control, který zajistí přehrání videosekvence, zjistí určitý údaj v databázi apod. Pokud bychom chtěli srovnat ActiveX Control s tzv. applety jazyka Java, pak jde principiálně o totéž, ale ActiveX Controls jsou bohatší a obecnější (a applety jazyka Java lze tedy chápat spíše jako jistou podmnožinou ActiveX Controls). Zatímco u appletů jazyka Java se počítá pouze s tím, že budou přenášeny po síti a „prováděny" (ve skutečnosti interpretovány) u uživatele, s prvky ActiveX Controls je možných více variant. Mohou být umístěny na síti (v zásadě kdekoli) a být přenášeny až na základě skutečné potřeby, nebo mohou již „čekat" na koncovém uzlu a být zde připraveny na případné využití. Významnější odlišností ActiveX Controls od appletů jazyka Java je jejich vztah k různým platformám - zatímco applety jsou nezávislé na konkrétní platformě, ActiveX Controls na nich závislé jsou (a možnost provozování na více platformách se zřejmě bude řešit existencí více verzí stejných ActiveX Controls pro různé platformy). Výhodou závislosti na konkrétní platformě je možnost kompilace a výrazně rychlejší běh.

Další zajímavé srovnání přináší i vztah ActiveX Controls k tzv. plug-in modulům, které jsou dnes tak populární u prohlížečů Navigator firmy Netscape. Také tyto plug-in moduly lze zahrnout pod ActiveX Controls, a chápat je jako jejich zvláštní případ (mající blíže k „necestující" variantě ActiveX Controls). Důležité je pak i to, že pro tvorbu jednotlivých ActiveX Controls je možné využít více prostředků a jazyků - lze je psát např. ve Visual C++, Visual Basic, Borland C++ apod. ale třeba také v jazyku Java!

„Scripting", nikoli „programming"

Další zajímavou vlastností technologie ActiveX je předpokládaná dělba práce: rozlišuje totiž tvorbu jednotlivých Controls a jejich „využívání", a v souvislosti s tím předpokládá i nasazení odlišných prostředků a nástrojů pro tyto dílčí činnosti. Zatímco v případě jazyka Java a jeho appletů obě činnosti splývají a provádí se týmiž prostředky (programováním v jazyku Java), Microsoft obě činnosti oddělil. Vychází zřejmě z toho, že psaní jednotlivých „Controls" bude činností spíše jednorázovou a bude záležitostí programátorů, kteří jsou zvyklí programovat a používat programovací jazyky. Tomu pak také odpovídá volba programátorských nástrojů pro jejich tvorbu. Naproti tomu „využívání" jednotlivých ActiveX Controls bude záležitostí spíše opakovanou, a budou ji mít na starosti lidé, kteří jsou spíše tvůrci obsahu než programátory. Zkusme si to přiblížit na příkladu WWW stránek: typickým způsobem „využití" nějakého ActiveX Control bude jeho volání z konkrétní WWW stránky, zahrnující například i předání skutečných parametrů. Ve skutečnosti ale může být vše poněkud složitější, a pro dosažení požadovaného efektu může být zapotřebí obecnější interakce - například čekání na různé události, reagování na ně (prostřednictvím volání ActiveX Controls) apod. Přislušnou interakci ovšem musí vyspecifikovat autor WWW stránky, který nebývá programátorem. Specifikace konkrétního postupu však je programováním, naštěstí obvykle dosti jednoduchým a nenáročným. Proto Microsoft zavedl pro takovéto „odlehčené programování" jednodušší prostředky než klasické programovací jazyky - tzv. skriptové jazyky (takže místo programování se pak jedná o tvorbu skriptů). Příkladem takovéhoto skriptového jazyka je Visual Basic Script (představující odlehčenou variantu jazyka Visual Basic, podobně jako je možné chápat jazyk JavaScript za odlehčenou variantu jazyka Java).

Na celé koncepci Microsoftu je zajímavé a důležité to, že pro „skriptování" (přesněji tzv. OLE scripting) nabízí více možností než jen svůj vlastní Visual Basic Script - skripty je možné psát například v jazyku Perl, v jazyku Visual Basic for Applications, a dokonce i v jazycích Java a JavaScript.

Active Documents a Containers

Dalším, velmi důležitým rysem nové koncepce Microsoftu, je skutečnost že se neomezuje jen na prostředí služby WWW a jejích stránek v jazyku HTML. Vkládání skriptů a volání konkrétních ActiveX Controls do HTML stránek, tak jak jsme si jej naznačili v předchozím odstavci, je jen jednou z možností. Obecně je totéž možné dělat i v dalších „objektech", kterým se obecně říká „Active Documents". Vedle HTML stránek to mohou být takovýmito „aktivními" či doslova „oživlými" dokumenty například textové dokumenty (kupř. dokumenty editoru Word), spreadsheety apod.

Důležité přitom je, že tyto aktivní dokumenty si mohou v sobě nést (přímo či nepřímo) většinu z toho, co potřebují pro své zpracování. Takže pak už vlastně ani nepotřebují pro své zpracování aplikaci v klasickém slova smyslu, ale spíše mnohem pasivnější „držák" či „kontejner", který by jim vytvářel základní prostředí pro jejich existenci a vlastní „aktivizaci". Proto se také v souvislosti s novou koncepcí mluví obecně o objektech typu „container" - příkladem jednoho „containeru" může být browser (Explorer), schopný zpracovávat aktivní dokumenty typu HTML stránek. Dalšími příklady objektů typu „container" pak mohou být složky balíku MS Office, dále systémový shell MS Windows atd.

Domyslíme-li právě naznačené skutečnosti do konce, je zřejmé v jakém smyslu není nová koncepce Microsoftu striktně vázána na Internet a službu WWW - aktivní dokumenty a jejich „containery" nemusí mít nic společného s Internetem a službou WWW. Pokud ale mají, děje se tak způsobem, který má blíže k dodržování standardů než srovnatelný přístup používaný u jazyka Java. Zatímco tam se jednotlivé applety vkládají do HTML stránek pomocí nestandardní značky <applet>, Microsoft použil ke stejnému účelu mechanismus objektů (značku <<object>>), zavedený právě pro tyto účely konsorciem W3C (které je všeobecně považováno za hlavní fórum, produkující standardy Web-u).

Aktivní servery

Nová internetová koncepce Microsoftu počítá i s výraznými změnami a vylepšeními na straně WWW serverů. Ty byly dosud jen pasivními skladišti HTML stránek, a jedinou možnost interakce WWW serveru s jeho okolím představovalo tzv. CGI rozhraní. To si lze v zásadě představit jako volání externího programu, který teprve sestaví HTML stránku, kterou si klient vyžádal. Nevýhodou je přitom skutečnost, že externí program (či alespoň proces) je při každém novém požadavku od klienta spouštěn (generován) znovu, což u vytíženějších serverů představuje velmi velkou zátěž. Microsoft nyní u svého WWW serveru (konkrétně serveru IIS, Internet Information Server) přichází s univerzálnějším řešením, umožňujícím volat nikoli externí programy (a pokaždé znovu), ale aplikace ve formě knihovních modulů dll (v prostředí Windows NT, pro které je server IIS konstruován) - tyto ale „poběží" trvale, a nebudou tedy pokaždé znovu spouštěny a následně zase ukončovány. Tvorba těchto serverových dll modulů, podpořená vývojovými nástroji, by měla být velmi jednoduchá.

Odlišný pak bude i mechanismus aktivování příslušných mechanismů - zatímco u rozhraní CGI musí být vše vyjádřeno v odkazu URL, který klient posílá svému serveru, v rámci nové koncepce ActiveX bude požadavek vyjádřen přímo v HTML stránce. Dokonce zde bude moci být „naprogramován" prostřednictvím skriptu, který bude interpretovat server v rámci přípravy HTML stránky k odeslání klientovi. Právě tato vlastnost přináší nové možnosti pro snazší a efektivnější navázání služby WWW na další aplikace a eventuelní další služby. Koncepčně zajímavým důsledkem je pak to, že v jedné a téže HTML stránce se nyní mohou vyskytovat dva různé druhy skriptů - jeden určený pro provedení (interpretaci) u klienta, a druhý na serveru.

Jestliže právě naznačený mechanismus „serverových" ActiveX aplikací je mechanismem aktivovaným jen v případě explicitní potřeby (v rámci konkrétní stránky, která si o to „sama řekne"), WWW server Microsoftu by v rámci nové koncepce měl nabízet i další možnost - tzv. ActiveX filters. Ty jsou automaticky volány při každém požadavku na kteroukoli HTML stránku, a to jak před, tak i po jejím případném zpracování na straně serveru. Hlavním důvodem pro zavedení takovýchto „filtrů" prý byly potřeby statistiky a nejrůznějšího vyhodnocování, ale v našich končinách asi bude tento mechanismus nejvíce ceněn jako užitečný nástroj pro implementaci různých druhů češtiny v rámci služby WWW - jak báječně jednoduché je nechat WWW server, aby před odesláním každé jednotlivé stránky sám zavolal filtr zajišťující potřebné překódování. Ještě další předností pak bude i to, že nový WWW server IIS by měl být schopen zachovávat kontext a pamatovat si některé stavové údaje o svých jednotlivých klientech.

Přehlídka produktů

Na konferenci Microsoftu samozřejmě nemohlo chybět první představení produktů, které by měly z nové koncepce ActiveX vycházet. Jde zejména o nový Internet Explorer verze 3, který by kromě technologií ActiveX měl podporovat např. i jazyky Java a JavaScript, dále tzv. rámečky (frames, proprietární rozšíření pocházející od firmy Netscape), i tzv. style sheets (zavedené konsorciem W3C). Zajímavou novinkou, jejíž ukázky byly na konferenci předvedeny, byl i produkt s kódovým jménem Jakarta - jde v zásadě o graficky orientované vývojové prostředí pro jazyk Java, vyvinuté firmou Microsoft. Předvedeny a náležitě komentovány byly i jednotlivé druhy programů Internet Assistant (pro Word, pro Excel, PowerPoint), a program FrontPage, prezentovaný jako „spíše jednodušší" nástroj pro tvorbu a udržování WWW serverů a jejich obsahu. Naopak o prostředku Internet Studio (který vychází z původního projektu BlackBird, a měl by být hlavním prostředkem pro „profesionální" tvorbu WWW stránek) se účastníci nedozvěděli téměř nic.