Co je to ISAPI
ISAPI je rozhraní k IIS - Internet Information Serveru, které nám
umožňuje psát aplikace pro internet, které běží na straně serveru. Znamená to,
že klient (typicky internetový prohlížeč) vyvolá aplikaci na straně serveru, která
jako výsledek vrátí data, jež jsou ve formě dané HTTP protokolem a poté jsou tato
data odeslána zpět na klientskou stranu. Pokud je klientem internetový prohlížeč,
výsledek je zobrazen jako webová stránka.
Vytvořit ISAPI aplikaci znamená vytvořit DLL knihovnu a umístit ji
na web-server. Pokud vzdálený uživatel požádá server o vykonání ISAPI aplikace,
vykoná se námi definovaná funkce, která by měla vrátit data ve formátu HTTP
protokolu. Jak je vidět, tak princip je velmi jednoduchý a jak uvidíme dále, praxe
není o mnoho složitější.
Poslední, co bychom měli na úvod vyřešit je, proč vlastně psát
ISAPI aplikace a k čemu nám jsou. Kouzlo webových aplikací obecně je možnost
dynamického generování stránek. Chcete vést knihu hostů? Pokud ano, hned máme na
světě webovou aplikaci. Chcete vytvořit počitadlo přístupů? Máme další
použití. Chcete zobrazovat aktuální ceník Vašeho obchodu? Jak jinak, než pomocí
webové aplikace. Pokud se rozhlédnete po internetu, tak zjistíte, že skoro každý
server používá webové aplikace.
Jaké jsou možnosti serverových aplikací
Aplikaci běžící na straně webové serveru můžeme vytvořit mnoha
způsoby. V současné době je asi nejrozšířenější ASP, PHP a ISAPI. První dvě
jmenované jsou aplikace, které jsou psány ve speciálních jazycích (Visual Basic
Script, PHP) a v okamžiku, kdy si klient vyžádá určitou stránku obsahující
program, je tento na straně serveru vykonán a výsledek je odeslán klientovi. Velkou
výhodou je, že program je tovřen jak samotným jazykem skriptu, tak HTML textem, což
umožňuje vytvářet aplikace snadno a rychle. Nevýhodou je, že jsme omezeni možnostmi
skriptovacích jazyků, které jsou zvláště u ASP nemalé. Další nevýhodou je, že
aplikace jsou na straně serveru interpretovány, což má neblahý vliv na rychlost, i
když je třeba mít na paměti, že nakonec největší zdržení nastane při přenosu
výsledku ze serveru na klienta.
Možná se zdá, že jsem zapomněl na to nejdůležitější - na
ISAPI aplikace. Bohužel nezapoměl, ale vytvářet ISAPI aplikace pro generování
dynamického obsahu stránek není příliš rozumné, protože tam si vystačíme s ASP
nebo PHP (mimochodem tento server používá redakční systém vytvořený v PHP). ISAPI
má smysl v okamžiku, kdy provádíme velmi, velmi složité akce, v jiných skriptech
těžko realizovatelné. Například připojovat se na jiné servery, provádění
složitých výpočtů, atp. Sice získáváme rychlost výpočtů ale na úkor rychlosti
vývoje. Otázkou je, co je pro nás důležitější (rychlý vývoj = rychlé peníze
:-). Ale abych jenom nestrašil, zas TAK hrozné to není. Jedním velkým kladem ISAPI
aplikací je, že je můžeme programovat v našem krásném a milovaném C++ a nemusíme
se učit nějaký jiný hloupý jazyk (VBS) nebo jazyk, který by to rád dotáhl na C++
(PHP).
MFC podopora a ISAPI
V okamžiku, kdy klient vyvolá ISAPI aplikaci, je volána speciální
funkce, která je s touto aplikací spojena. Je to trochu podobné, jako když přijde
okénku zpráva a je vyvolána okénková procedura. Stejně jako v případě oken, i zde
se MFC snaží původní chování skrýt a zabalit jej do C++ tříd. A stejně jako v
případě oken, se to programátorům MFC skvěle podařilo. V dalších dílech si
ukážeme, jak je to uděláno.
Shrnutí
V prvním úvodním dílu jsme se seznámili s tím, co to jsou ISAPI
aplikace, k čemu nám jsou a naopak k čemu ne. Taktéž jsme si ukázali konkurenci
ISAPI aplikací - serverové skriptovací jazyky. |