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.