|
|
Technologie
ISAPI
Jest to rozszerzenie programistyczne zaproponowane przez firmę Microsoft
do swojego serwera WWW Internet Information Server. Netscape
proponuje podobną technikę NSAPI dla swojego serwera Netscape
Enterprise Server. Ze względu na funkcjonalność odpowiednikiem
CGI w ISAPI jest tzw. rozszerzenie (ang. extension), czyli
dynamicznie dołączana biblioteka DLL (ang. Dynamic Linked
Library), której nazwę należy jawnie podać w adresie URL, np.
http://ural/scripts/ver3/isis.dll?browse
Takie wywołanie będzie uruchamiało metodę "browse" w bibliotece
isis.dll. Biblioteki, podczas pierwszego wywołania, zostają
dołączone do programu serwera i działają w jego środowisku,
a poszczególne wywołania sa obsługiwane jako kolejne wątki.
W samym programie poszczególne parametry wywołania są
zdefiniowane przy pomocy tzw. parse map, która z góry (w czasie
kompilacji) określa jakie parametry zostaną przekazane w metody.
Jest to moim zdaniem duża wada, ponieważ nie pozwala na
programowanie metod o zmiennej liczbie parametrów. Takiego
ograniczenia nie posiadają na przykład servlety Javy.
Drugim rodzajem bibliotek ISAPI są filtry (ang. filters). Są to programy
nie wywoływane jawnie przez użytkownika, tylko w czasie
zachodzenia określonych zdarzeń na serwerze:
- przyjście danych z przeglądarki (OnReadRawData),
- wysyłanie danych do przeglądarki (OnSendRawData),
- przetworzenie nagłówków HTTP (OnPreprocHeaders),
- próba autoryzacji użytkownika przez przeglądarkę (OnAuthenticate),
- przekształcanie URL w nazwę pliku na dysku (OnUrlMap),
- zapisanie do logu na serwerze (OnLog),
- zakończenie sesji (OnEndOfNetSession).
Pozwala to zdefiniować szereg własnych odpowiedzi na życzenia
użytkownika, przede wszystkim można przygotować dla niego
dokument w oparciu o bazę danych.
ISAPI jest potężnym narzędziem pozwalającym na programowanie niemalże
na poziomie serwera WWW. Ma to wykorzystanie np. przy złożonej
autoryzacji użytkowników stosowanej w systemach bankowych. Jako
szablon prezentacji stosuje się tutaj ASP.
|