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. |