ROZDZIAŁ 1
Przegląd Internet Information Services 5.0
Internet Information Services (IIS) 5.0, serwer internetowy wbudowany w Microsoft Windows 2000 Server, ułatwia udostępnianie dokumentów i informacji poprzez sieć wewnętrzną przedsiębiorstwa lub poprzez Internet. IIS 5.0 jest najszybszym serwerem internetowym dla Windows 2000 Server i jest w pełni zintegrowany z usługą Microsoft Active Directory. Taka kombinacja usług internetowych z usługami systemu operacyjnego umożliwia wdrożenie skalowalnych i solidnych aplikacji internetowych. Dzięki nowemu pokoleniu rozwiązań sieciowych, istniejące dane i aplikacje mogą być używane także w Internecie, a przedsiębiorstwa mogą zdefiniować od nowa wewnętrzne i zewnętrzne procesy stosowane w firmie.
IIS 5.0 zawiera kilka nowych funkcji przydatnych administratorom sieciowym i dostawcom usług internetowych (ISP) przy tworzeniu skalowalnych aplikacji, witryn i klastrów. IIS 5.0 udoskonalono tak, aby zwiększyć wydajność i solidność publikacji, zabezpieczeń, administracji i aplikacji internetowych, oraz zmniejszyć koszty i zapewnić lepsze środowisko dla aplikacji.
Microsoft oferuje wraz z IIS 5.0 kilka innych produktów, które włączone w instalację zapewnią dodatkową moc i elastyczność. Na przykład, Microsoft Site Server ułatwia zarządzanie dużymi klastrami, dostosowywanie dzienników i tworzenie szczegółowych raportów.
W niniejszym rozdziale przedstawione są nowe funkcje oraz ogólny opis architektury IIS 5.0. Zrozumienie struktury IIS 5.0 pomoże skutecznie zarządzać witrynami i katalogami wirtualnymi oraz optymalnie skonfigurować aplikacje do współdziałania z IIS 5.0.
W tym rozdziale:
Nowe funkcje IIS 5.0
Poniżej przedstawione są nowe funkcje i udoskonalenia IIS 5.0. Pełna lista nowych funkcji, wraz ze szczegółowymi opisami i procedurami znajduje się w dokumentacji online IIS 5.0.
Zabezpieczenia
Omawiamy tu skrótowo nowe funkcje zabezpieczeń w IIS 5.0. Więcej szczegółów znajduje się w rozdziale „Zabezpieczenia”.
Identyfikacja skrótowa - zwiększa bezpieczeństwo i pewność identyfikacji użytkowników korzystających z serwerów proxy i zapór ogniowych. IIS 5.0 oferuje także wcześniejsze metody identyfikacji: anonimową, HTTP Basic, Windows NT wezwanie/
odpowiedź oraz identyfikację NTLM (teraz zwaną zintegrowaną identyfikacją
Windows).
Server-Gated Cryptography - pozwala organizacjom finansowym posiadającym wersje eksportowe IIS na wykorzystanie mocnego, 128-bitowego szyfrowania. Server-Gated Cryptography (SGC) jest rozszerzeniem Secure Sockets Layer (SSL). SGC jest wbudowany w IIS 5.0, jednakże wymaga specjalnego certyfikatu.
Nowe kreatory zabezpieczeń - upraszczają zadania związane z administracją serwerową.
Web Server Certificate Wizard (kreator certyfikatów serwera Web) - upraszcza administrację certyfikatami w IIS 5.0, w tym tworzenie zamówień i zarządzanie cyklem ważności certyfikatów.
Permissions Wizard (kreator uprawnień) - upraszcza konfigurowanie dostępu do witryn, w tym stosowanie założeń dotyczących dostępu do wirtualnych katalogów i plików. Dodatkowo Permissions Wizard pozwala uwzględnić te założenia
w uprawnieniach dotyczących systemu plikowego NTFS.
CTL Wizard (kreator CTL) - konfiguruje listy zaufanych certyfikatów (CTL). CTL jest listą zaufanych urzędów certyfikacji związaną z danym katalogiem. Listy te są szczególnie przydatne dostawcom usług internetowych, którzy posiadają
na jednym serwerze kilka witryn, wymagających różnych list zatwierdzonych urzędów certyfikacji.
Identyfikacja Kerberos v5 - przekazuje dane identyfikacyjne pomiędzy komputerami w sieci Microsoft Windows. IIS 5.0 jest w pełni zintegrowany z modelem identyfikacji Kerberos v5 używanym w Windows 2000 Server.
Przechowywanie certyfikatów Certyfikaty serwerowe są przechowywane, kopiowane i konfigurowane przy użyciu pojedynczego punktu wejścia. Przechowywanie certyfikatów w IIS jest już zintegrowane z dostarczonym wraz z Windows 2000 systemem przechowywania Microsoft CryptoAPI (CAPI).
Fortezza
Standard zabezpieczenia
rządu USA. Standard ten odpowiada
architekturze zabezpieczenia Defense Messaging System, zapewniając mechanizm
kryptograficzny obejmujący integralność, identyfikację oraz kontrolę dostępu do
wiadomości, komponentów i systemów.
Administracja
Przedstawione tu są nowe funkcje administracyjne pomagające skuteczniej zarządzać instalacją IIS 5.0. Szczegóły i przykłady znajdują się w rozdziale „Administracja instalacją ISP”.
Restart IIS Usługi internetowe można zrestartować bez konieczności restartu komputera.
Księgowanie procesów Tworzone są informacje dotyczące wykorzystywania zasobów procesora na serwerze przez różne witryny. Pomogą one ustalić, które witryny wykorzystują nadmierną ilość zasobów albo posiadają źle działające skrypty lub procesy Common Gateway Interface (CGI).
Regulacja procesów Funkcja ta ogranicza czas procesora poświęcany skryptom
zewnątrzprocesowym w Active Server Pages (ASP), Internet Server Application
Programming Interface (ISAPI) i aplikacjach CGI dla poszczególnych witryn. Dodatkowo umożliwia zatrzymywanie i restartowanie źle działających procesów.
Udoskonalone
niestandardowe komunikaty błędów Umożliwiają przesłanie klientom informacji w
przypadku błędów HTTP w ich witrynach. Cecha ta szczegółowo przetwarza błędy
skryptów na stronach ASP, poprzez niestandardowy komunikat błędu
500-100.asp. Można korzystać z komunikatów dostarczonych przez IIS 5.0 lub utworzyć własne.
Internetowe narzędzia administracji Umożliwiają zdalne zarządzanie serwerem
z prawie każdej przeglądarki, na każdej platformie. W IIS 5.0 można założyć konta administracyjne (operatorów) posiadające ograniczone uprawnienia administracyjne w witrynach, w celu rozdzielenia zadań administracyjnych.
Terminal Services (Usługi terminalowe) Umożliwiają zdalną administrację usługami Windows (takimi jak IIS) poprzez Microsoft Management Console (MMC). Terminal Services są cechą Windows 2000 Server i łączą się z serwerami Windows telefonicznie lub poprzez Point-to-Point Tunneling Protocol (PPTP). Oprogramowanie klienckie Terminal Services musi być zainstalowane także na komputerach klienckich.
Programowalność
Omawiamy tu nowe funkcje zwiększające programowalność w IIS. Więcej szczegółów na ten temat znajduje się w rozdziale „Administracja instalacji ISP” i w dokumentacji online IIS 5.0.
Ochrona aplikacji IIS 5.0 zapewnia większą ochronę i pewność aplikacji internetowych. Domyślnie, w IIS 5.0 wszystkie aplikacje działają we wspólnym procesie oddzielonym od głównych procesów IIS 5.0. Dodatkowo najważniejsze aplikacje mogą być odłączone zarówno od głównych procesów IIS 5.0, jak i od procesów wspólnych.
Nowe cechy w ASP - zwiększające wydajność i ułatwiające pisanie skuteczniejszych skryptów po stronie serwera:
Nowe metody sterowania przepływem
Udoskonalona obsługa błędów
ASP bez skryptu
Obiekty o udoskonalonej wydajności
Integracja z Extensible Markup Language (XML)
Komponenty skryptowe Microsoft Windows
Nowy sposób ustalania możliwości przeglądarki
Samodostrajanie ASP
Include z atrybutem SRC po stronie serwera
Skrypty kodowane na stronach ASP
ADSI
2.0 Dodaje do istniejącego dostawcy Microsoft Active Directory Service
Interfaces (ADSI) niestandardowe obiekty, właściwości i metody, co zapewnia większą elastyczność przy konfigurowaniu witryn.
Szczegółowe opisy nowych funkcji znajdują się w dokumentacji online IIS 5.0 pod hasłem „Features”.
Standardy internetowe
Poniżej omówione są nowe standardy internetowe dostarczone razem z IIS 5.0. Więcej informacji na ten temat znajduje się w dokumentacji online IIS 5.0.
Web Distributed Authoring and Versioning (WebDAV) Pozwala autorom
na zdalną edycję, przesuwanie, usuwanie plików, katalogów i edycję ich właściwości
na serwerze poprzez połączenie HTTP.
Restart FTP Przerwane ładowanie pliku poprzez File Transfer Protocol (FTP) zaczyna się znowu od punktu, w którym zostało przerwane.
Kompresja HTTP Umożliwia szybszy przekaz stron pomiędzy serwerem a klientami posiadającymi możliwość kompresji. Pliki statyczne są pakowane i buforowane, pliki stworzone dynamicznie są pakowane na żądanie.
Architektura IIS 5.0
W poniższych częściach omówione są metody współdziałania komponentów IIS 5.0. Na początku przedstawiono przegląd całej architektury IIS 5.0, po czym omówiono architekturę administracji i architekturę programowalności. Na końcu opisane są sposoby integracji innych usług Windows 2000 Server i produktów Microsoft z instalacją IIS 5.0.
Przegląd architektury
IIS 5.0 jest usługą Windows 2000 Server, dlatego dobrze współdziała z wieloma innymi usługami działającymi na Windows 2000 Server. Na rysunku 1.1 przedstawiony jest związek pomiędzy IIS 5.0 a innymi usługami, które można zainstalować na Windows 2000 Server.
Rysunek 1.1 Architektura IIS 5.0
Standardowe usługi internetowe (serwery Web i FTP) umieszczone są w procesie o nazwie Inetinfo. Oprócz tych usług, proces ten zawiera wspólną pulę wątków, bufor i usługi dzienników IIS 5.0.
IIS 5.0 nie wymaga dodatkowej administracji kont użytkowników, ponieważ model zabezpieczenia jest identyczny z modelem używanym przez Windows 2000 Server. Co więcej, do administracji IIS 5.0 można wykorzystać takie istniejące narzędzia Windows 2000 Server jak System Monitor, Event Viewer i MMC.
W kolejnych częściach omówione są ściśle zintegrowane z IIS 5.0 narzędzia Windows 2000.
Microsoft Management Console
MMC daje możliwość korzystania z programów zwanych snap-in (przystawkami), za pomocą których można zarządzać serwerami. MMC zapewnia wspólne środowisko, w którym działać mogą różne snap-in, co pozwala na zarządzanie kilkoma usługami z pojedynczego interfejsu. Oprócz integracji i standaryzacji narzędzi administracyjnych, MMC umożliwia dostosowanie konsoli poprzez wybór potrzebnych narzędzi.
Na przykład, IIS 5.0 MMC obsługuje Internet Services Manager jako snap-in ułatwiający administrację witryn na komputerze z zainstalowanym IIS 5.0. Innym przykładem są Microsoft Component Services, które zawierają snap-in MMC ułatwiający administrację pakietami transakcji.
Active Server Pages i Microsoft Script Debugger
ASP jest środowiskiem aplikacji po stronie serwera, w którym można tworzyć dynamiczne witryny i potężne aplikacje internetowe. Strony ASP mogą zawierać zakładki HTML, tekst oraz polecenia skryptowe. Polecenia te są wykonywane na serwerze i zwracają strony HTML wysyłającej żądanie przeglądarce. Strony ASP mogą wywołać komponenty Microsoft Component Object Model (COM) w celu wykonania zadań, na przykład podłączenia się do bazy danych lub wykonania obliczeń. ASP umożliwia tworzenie interaktywnych stron internetowych i budowanie całych aplikacji korzystających ze stron HTML jako interfejsu z użytkownikiem.
Microsoft Script Debugger ma na celu ułatwienie szybkiego wykrycia błędów i interaktywnego testowania skryptów serwerowych zawartych na stronach ASP. Script Debugger, który współdziała z Microsoft Internet Explorer 3.0 lub wersją późniejszą, wykrywa błędy w systemie just-in-time (JIT). Gdy wykonywanie skryptu zostaje przerwane z powodu błędu, Script Debugger uruchamia się automatycznie, pokazuje plik .asp ze wskazaniem wiersza powodującego błąd oraz produkuje komunikat błędu. Komputer zawiesza działanie programu. Błąd musi zostać usunięty a zmiany zapisane, zanim skrypt zostanie ponownie uruchomiony. Na rysunku 1.2 przedstawiony jest fragment kodu, w którym Script Debugger podświetlił wiersz zawierający błąd.

Rysunek 1.2 Microsoft Script Debugger
Indexing Service
Indexing Service indeksuje znajdujące się na dyskach pliki i ich właściwości oraz zapisuje te informacje w katalogu. Przeszukiwany jest pełny tekst i właściwości dokumentów przechowywanych w witrynie internetowej lub w sieci wewnętrznej. Za pomocą przykładów zainstalowanych wraz z Indexing Service, administrator witryny może szybko utworzyć formularze do zapytań i udostępnić je użytkownikom. Użytkownicy mogą wysłać zapytania wypełniając pola formularza. Serwer przekazuje zapytanie aparatowi zapytania, który odnajduje odpowiednie dokumenty i zwraca klientowi wyniki w postaci strony internetowej.
Oprócz indeksowania stron w formacie HTML, Indexing Service potrafi przeszukiwać dokumenty w formatach używanych przez takie aplikacje jak Microsoft Word i Microsoft Excel, wobec czego nie muszą być one przekształcane na HTML.
Certificate Services
Microsoft Certificate Services jest wielofunkcyjną, dostosowywalną aplikacją serwerową, która wydaje, wycofuje i odnawia certyfikaty cyfrowe. Certyfikaty te mają standardowy format X.509 wersja 3, a używane są do aplikacji korzystających z kluczy publicznych, na przykład do identyfikacji serwerowej i klienckiej w protokołach SSL i Private Communication Technology (PCT). Certificate Services pozwala organizacjom wykonywać identyfikację w sieci wewnętrznej lub poprzez Internet.
Message Queuing
Message Queuing umożliwia szybkie, pewne i asynchroniczne wysyłanie i odbieranie wiadomości przez aplikacje. Oferuje wsparcie Microsoft ActiveX, kontrole zabezpieczeń, narzędzia administracyjne oraz integrację z innymi strategicznymi cechami Microsoft, takimi jak IIS 5.0, Component Services i Certificate Services. Oznacza to, że Message Queuing jest najczęściej wybieranym produktem do obsługi kolejek wiadomości w aplikacjach działających w Microsoft Windows 95 i Windows 98 oraz w Windows 2000 Server. Message Queuing zapewnia interoperatywność z innymi ważnymi platformami i produktami.
Komponent Database Access
Komponent Microsoft Database Access korzysta z Microsoft ActiveX Data Objects (ADO) dla uzyskania dostępu do informacji przechowywanych w bazie danych lub innej tabelowej strukturze danych. Aplikacje klient/serwer obsługujące dane, wdrożone poprzez Internet lub sieć wewnętrzną, mogą wykorzystać komponent do integracji informacji z różnych źródeł, w tym z relacyjnych (SQL) i nierelacyjnych systemów zarządzania bazami danych (DBMS). Komponent Database Access składa się z następujących części, które są wydane, udokumentowane i wspierane jako całość:
ADO i Microsoft Remote Data Service (RDS)
Open Database Connectivity (ODBC)
Dostawca OLE DB Microsoft dla ODBC
ADO ułatwia pisanie aplikacji do udostępniania danych z serwera bazy danych poprzez dostawcę OLE DB i manipulacji nimi. Głównymi zaletami ADO są: łatwość obsługi, szybkość, oraz mała ilość wymaganej pamięci i miejsca na dysku. ADO wspiera funkcje, które są istotne przy budowaniu aplikacji klient/serwer i aplikacji internetowych.
ADO zawiera także RDS, technologię buforowania danych po stronie klienta o dużej wydajności, która zapewnia aplikacjom internetowym możliwość połączenia z bazami danych. RDS służy do budowania inteligentnych aplikacji internetowych udostępniających i aktualizujących dane z każdego dostawcy OLE DB, w tym DBMS kompatybilnych z ODBC. Ponieważ RDS można zrealizować za pomocą znanych technologii — standardowych kontrolek wizualnych, HTML i Microsoft Visual Basic Scripting Edition (VBScript) — RDS można bez problemu zintegrować z istniejącymi aplikacjami Microsoft Visual Basic, tak, aby mogły być używane w Internecie.
Komponent Database Access zawiera także ODBC oraz dostawcę OLE DB dla ODBC. Komponenty te, używane razem z odpowiednim sterownikiem ODBC, zapewniają dostęp do kilku popularnych DBMS, w tym do Microsoft SQL Server, baz danych Oracle, Microsoft Access i kilku innych pulpitowych baz danych.
Architektura administracyjna
W tej części omówione są funkcje architektury IIS 5.0, które upraszczają zadania administracyjne i umożliwiają administrację witryny na kilka różnych sposobów. IIS 5.0 oferuje cały komplet narzędzi do zarządzania serwerem internetowym i jego komponentami oraz niezależną witryną internetową. Dodatkowo, do utworzenia niestandardowych interfejsów można skorzystać z IIS Administration Objects (omówionych w następnej części rozdziału), dostarczonych razem z IIS 5.0.
Rysunek 1.3 przedstawia narzędzia administracyjne dostarczone wraz z IIS 5.0 i ich interakcję z IIS Administration Objects.

Rysunek 1.3 Architektura administracyjna IIS 5.0
IIS Administration Objects
IIS Administration Objects (IIS Admin Objects) są obiektami COM podlegającymi nieograniczonej dystrybucji, które pozwalają aplikacji manipulować kluczami konfiguracyjnymi IIS 5.0 i danymi w znajdującej się w pamięci metabazy. IIS Admin Objects służą do pisania aplikacji, takich jak narzędzia do administracji serwera lub opracowywania stron internetowych, które sprawdzają i aktualizują konfigurację serwera za pomocą manipulacji kluczami i danymi w metabazie. Dodatkowo IIS Admin Objects pozwalają na przechowywanie związanych z IIS 5.0 danych konfiguracyjnych różnych aplikacji w metabazie (co umożliwia szybszy dostęp do nich) bez zapełniania rejestru systemowego Windows.
IIS Admin Objects są również programowalnymi obiektami COM, które mogą zostać wywołane przez skrypt na stronie ASP lub aplikację niestandardową w celu zmiany przechowywanych w metabazie wartości konfiguracyjnych IIS 5.0. Na przykład, w metabazie są przechowywane używane przez IIS 5.0 uprawnienia dostępu do plików i katalogów. Uprawnienia dotyczące jednego lub wielu plików lub katalogów można skutecznie ustawić za pomocą prostego skryptu na stronie ASP. IIS Admin Objects są wykorzystywane do administracji IIS 5.0 przez Internet Services Manager (snap-in do MMC) oraz jego wersję przeglądarkową (omówione poniżej), Microsoft Windows Script Host (WSH) i niestandardowe aplikacje administracyjne.
Internet Services Manager
Internet Services Manager (snap-in do MMC) umożliwia zarządzanie wieloma witrynami IIS 5.0 z dowolnego miejsca w Internecie. Można utworzyć witryny i katalogi wirtualne, ustawić uprawnienia, skonfigurować dzienniki i włączyć regulację procesów.
IIS 5.0 zawiera także wersję przeglądarkową tego snap-in, Internet Services Manager (HTML), przedstawioną na rysunku 1.4. Narzędzie to umożliwia konfigurację IIS 5.0 z prawie każdego komputera w Internecie lub sieci wewnętrznej.

Rysunek 1.4 Internet Services Manager (HTML)
Skrypty wbudowane i niestandardowe
IIS Admin Objects pozwalają maksymalnie uprościć administrację programową. Są one oparte na ADSI i umożliwiają automatyzację wielu zadań administracyjnych. IIS 5.0 zawiera kilka wbudowanych skryptów administracyjnych zainstalowanych domyślnie w katalogu Inetpub\AdminScripts - do zadań bardziej złożonych można utworzyć własne skrypty niestandardowe. Udostępnienie i manipulacja ADSI są proste w przypadku użycia dowolnego języka wspierającego automatyzację, na przykład VBScript lub Microsoft JScript, Visual Basic, Java i C++. Przykłady i informacje o tworzeniu niestandardowych skryptów znajdują się w rozdziale „Administracja instalacji ISP”.
IIS Admin Objects i ADSI współdziałają z WSH, środowiskiem skryptowym dla 32-bitowych platform Windows niezależnym od języka. Microsoft dostarcza aparaty skryptowania VBScript i JScript razem z WSH. Inni producenci sprzedają aparaty skryptowania ActiveX dla innych języków, takich jak Perl.
Architektura programowalności
Architektura programowalności jest oparta na hierarchii określającej sposób przetwarzania przez IIS 5.0 przyjmowanych żądań. Po zrozumieniu hierarchii można zaprojektować skuteczne aplikacje, wykorzystujące wszystkie funkcje oferowane przez IIS 5.0.
Coraz częściej aplikacje internetowe są niezbędne dla pracy przedsiębiorstw, a więc muszą być solidne i dostępne dla wszystkich klientów. Przed powstaniem Internetu większość aplikacji była pisana dla pojedynczych użytkowników i wykonywana na pojedynczych komputerach, a większość wspólnego kodu serwerowego była pisana i wykonywana wewnątrz baz danych. Aplikacje internetowe są wdrażane w rozproszonym, odłączonym środowisku. Często są one uruchamiane na wielu różnych serwerach i korzystają z informacji z wielu różnych przechowalni danych. IIS 5.0 wprowadza na platformę Windows 2000 Server technologie niezbędne dla organizacji projektujących i wdrażających solidne i skalowalne aplikacje internetowe dla wielu użytkowników.
Na rysunku 1.5 przedstawiona jest architektura programowalności IIS 5.0 wraz z omówionymi poniżej komponentami. Po lewej stronie rysunku znajduje się najtrudniejszy sposób projektowania aplikacji internetowych (CGI), a po prawej stronie najprostszy sposób, korzystający ze wszystkich funkcji hierarchii IIS 5.0.

Rysunek 1.5 Architektura programowalności
Trzy pierwsze hierarchie (licząc od lewej) na rysunku 1.5 są samoograniczające. Przy konfiguracji aplikacji do działania na serwerze internetowym zaleca się wybór hierarchii jak najbliżej prawej strony i maksymalne wykorzystanie aplikacji wbudowanych.
Programowalność konfiguruje się biorąc pod uwagę trzy opcje dotyczące aplikacji internetowych. Każda hierarchia na rysunku 1.5 oferuje jedną lub więcej z tych opcji. Zaleca się wybór opcji w następującej kolejności (na rysunku od prawej strony do lewej):
1. Aplikacja wbudowana W pierwszej kolejności należy szukać aplikacji wbudowanych w IIS 5.0. Na przykład, aby wyposażyć witrynę w możliwości kompresji należy zainstalować wbudowany filtr ISAPI lub komponent COM.
2. Aplikacja zewnętrznego producenta Jeśli IIS 5.0 nie zawiera wbudowanej aplikacji do danego zadania, to należy zakupić aplikację od zewnętrznego producenta. Na przykład można zakupić filtr ISAPI umożliwiający identyfikację.
3. Aplikacja niestandardowa Jeśli żądany typ aplikacji nie jest wbudowany w IIS 5.0 ani nie jest dostępny na rynku, to należy utworzyć własną niestandardową aplikację. Oczywiście metoda ta (pokazana po lewej stronie rysunku) jest najtrudniejsza. Budowanie aplikacji CGI w tej kategorii jest najmniej zalecane, z przyczyn omówionych dalej w tym rozdziale.
Przy projektowaniu aplikacji internetowych napotyka się na te same komplikacje, co przy projektowaniu aplikacji serwerowych dla wielu użytkowników. Na przykład, przy projektowaniu aplikacji dla wielu użytkowników dużo czasu poświęca się na budowanie złożonych procedur do zarządzania pulami procesów serwerowych, pulami wątków, połączeniami z bazami danych, kontekstami użytkowników i transakcjami zwykle powiązanymi z aplikacjami serwerowymi. IIS 5.0 wraz z funkcjami i produktami współdziałającymi z nim w systemie operacyjnym Windows pozwalają wyeliminować dużą część tych komplikacji, dzięki wbudowanym technologiom serwerowym. Wraz z Windows 2000 Server, technologie te zapewniają projektantom platformę do opracowywania aplikacji internetowych.
Więcej informacji o projektowaniu aplikacji internetowych znajduje się w rozdziałach „Projektowanie aplikacji internetowych” i „Dostęp do danych i transakcje”.
Common Gateway Interface
IIS 5.0 w pełni wspiera skrypty i pliki wykonywalne napisane według standardu CGI. Pliki wykonywalne CGI na serwerze mogą zostać uruchomione przez zdalnych użytkowników poprzez wypełnienie formularza HTML lub po prostu zażądanie URL od serwera. Parametry znajdujące się po znaku zapytania w URL zostają przekazane aplikacji CGI jako łańcuch środowiskowy, który następnie zostanie rozłożony i zastosowany. Aplikacje CGI działają na serwerze na zewnątrz procesu, czyli każde żądanie tworzy własny proces. Dzięki tej architekturze aplikacje CGI są wolniejsze od innych rodzajów, jednak ewentualne problemy w mniejszym stopniu wpływają na operacje serwera.
Filtry ISAPI
ISAPI jest internetowym API do rozszerzenia IIS 5.0 i innych serwerów HTTP wspierających jego interfejs. Filtry ISAPI są bibliotekami DLL umożliwiającymi wczesne przetwarzanie żądań i późniejsze przetwarzanie odpowiedzi, co z kolei umożliwia obsługę żądań i odpowiedzi HTTP w zależności od witryny. Filtry te mogą działać także na zewnątrz procesu, co daje większą solidność i zmniejsza ilość wyczerpywanych zasobów w porównaniu z aplikacjami CGI.
IIS 5.0 zawiera kilka wbudowanych filtrów ISAPI do takich zadań jak kompresja. Można także zainstalować filtry sprzedawane przez producentów zewnętrznych, na przykład do identyfikacji. Informacje o instalacji filtrów znajdują się pod hasłem „Installing ISAPI Filters” w dokumentacji online IIS 5.0.
Jeśli nie istnieje na rynku odpowiedni filtr, to można zbudować filtr niestandardowy. Na przykład, napisać DLL ISAPI w celu przechwycenia poszczególnych wydarzeń na serwerze i wykonania odpowiednich czynności. Funkcje takie są szczególnie przydatne w zakresie zabezpieczenia serwera. Więcej informacji na ten temat znajduje się w dokumentacji SDK w zestawie MSDN, w części dotyczącej IIS 5.0 pod hasłem „ISAPI Filters Overview”.
Kilka przykładowych filtrów ISAPI znajduje się na CD-ROM załączonym do publikacji Microsoft Windows 2000 Server Resource Kit.
Rozszerzenia ISAPI
Rozszerzenia ISAPI są to biblioteki DLL o wielu wątkach, które można załadować do tego samego obszaru pamięci (wewnątrz procesu) co usługa internetowa, a które wykonują zadania po stronie serwera, jako interfejs pomiędzy użytkownikiem i IIS 5.0. Rozszerzenia ISAPI są wydajniejsze od aplikacji CGI, z kilku przyczyn:
Rozszerzenia ISAPI można skonfigurować tak, aby wszystkie działały w jednym procesie lub w tym samym obszarze pamięci co usługa internetowa.
Zamiast ładowania osobnego pliku wykonywalnego dla każdego żądania, ISAPI wykorzystuje bezpieczne dla wątków pliki DLL umożliwiające jednokrotne załadowanie.
Do komunikacji z usługą internetową ISAPI używa API opartych na Microsoft Win32, które są o wiele szybsze niż metody stosowane przez CGI.
IIS 5.0 nie posiada wbudowanych rozszerzeń ISAPI, dlatego należy zakupić rozszerzenia od producentów zewnętrznych lub napisać własne. Zazwyczaj rozszerzenia ISAPI opracowane dla innych serwerów internetowych są łatwe do przeniesienia do IIS 5.0. Czasami warto przerobić istniejące aplikacje CGI na rozszerzenia ISAPI, ze względu na wydajność. Więcej informacji na ten temat znajduje się w rozdziale „Migracja serwera internetowego do IIS 5.0”. Informacje o projektowaniu rozszerzeń ISAPI znajdują się w dokumentacji online IIS 5.0 pod hasłem „Designing High-Performance ISAPI Applications”.
Active Server Pages
ASP zapewnia otwarte środowisko aplikacji serwerowych, w którym połączyć można HTML, skrypty serwerowe i komponenty serwerowe COM wielokrotnego użycia, tworząc w ten sposób dynamiczne i potężne rozwiązania internetowe. Po wykonaniu skryptu serwerowego na stronie ASP, wyniki są zwracane do przeglądarki klienta w postaci standardowego dokumentu HTML.
IIS 5.0 zapewnia rodzime wsparcie skryptów na stronach ASP napisanych w VBScript i w JScript. Aplikacje ASP można jednak napisać w dowolnym języku skryptowym pod warunkiem, że zainstalowany jest aparat skryptowania odpowiadający standardowi Active Scripting omówionemu dalej w tym rozdziale. Skrypty na stronach ASP mają dostęp do obiektów upraszczających i przyspieszających projektowanie, w tym obiektów typu Application, Session, Request, Response i Server.
ASP wspiera także komponenty COM, które umożliwiają ponowne wykorzystanie logiki przetwarzania do innych aplikacji. ASP jest wspierany przez wiele serwerów internetowych, a istniejące aplikacje ASP są łatwe do przeniesienia do IIS 5.0. Często warto przerobić aplikacje CGI na strony ASP, szczególnie wtedy, gdy funkcje mogą być wykonane za pomocą wbudowanych obiektów ASP. Więcej informacji znajduje się w rozdziale „Migracja serwera internetowego do IIS 5.0”.
Komponenty COM
ActiveX jest technologią opartą na COM pozwalającą projektantom utworzyć obiekty lub kontrole, które „aktywizują” strony internetowe. Przy użyciu narzędzi takich jak Microsoft Visual C++, Visual Basic i Microsoft Visual J++ można opracować komponenty COM i umieścić je na stronie w celu podniesienia poziomu interakcji. Komponenty COM można uruchomić na serwerze, na kliencie lub na jednym i drugim. Na przykład, spis treści dokumentacji online IIS 5.0 wykorzystuje kontrolkę Microsoft ActiveX zwaną HTML Help. Gdy informacje są pobierane z bazy danych Access lub SQL Server za pomocą OLE DB, ADO lub innych metod dostępu, komponenty COM można napisać w każdym języku kompatybilnym z COM, na przykład Visual Basic, Visual C++ lub Visual J++.
Active Scripting
Active Scripting jest technologią utworzoną przez Microsoft, mającą na celu umożliwienie projektantom wykorzystania istniejących języków skryptowych poprzez interfejs COM. Microsoft dostarcza dwa języki wykorzystujące Active Scripting — VBScript i JScript. Interfejs skryptowy jest jednak otwarty, dlatego producenci zewnętrzni mogą dostarczyć własne języki — takie jak Perl — dla wszystkich aplikacji używających skryptowania.
Component Services
Component Services jest systemem przetwarzania transakcji używanym do projektowania, wdrażania i zarządzania rozproszonymi aplikacjami serwerowymi. Transakcją jest w zasadzie każda codzienna operacja handlowa, na przykład wymiana pieniędzy za towary lub usługi.
W aplikacjach, transakcją jest operacja (rozpoczęta przez program), która przejdzie lub nie przejdzie jako całość, nawet gdy obejmuje wiele etapów (na przykład zamówienie, sprawdzenie zapasów i wystawienie faktury). Przetwarzanie transakcji jest niezbędne w przypadku rozproszonych aplikacji handlowych wymagających dokładności, zgodności danych oraz zabezpieczenia.
Poniżej przedstawione są niektóre wbudowane oraz możliwe do zainstalowania aplikacje Component Services:
Transaction Management
Queued Components
Object Pooling
Just-In-Time Activation
In-Memory Database
Thread Management
Role-Based Security
Ad Rotator
Skutkiem transakcji jest zmiana stanu zbioru danych z jednego na drugi. Na przykład, wypłata pieniędzy z konta bankowego powoduje odpowiednią zmianę stanu konta. Poprawne działanie transakcji wymaga czterech właściwości ACID: atomowości, zgodności (Consistency), izolacji i trwałości (Durability).
Atomowość Wszystkie zmiany dotyczące obiektów biorących udział w transakcji
są zatwierdzane jako jednostka. Wszystkie zmiany zostają zatwierdzone lub wycofane do stanu poprzedniego.
Zgodność Transakcja musi spowodować odpowiednią zmianę danych, tak jak wypłata pieniędzy z konta powoduje zmianę stanu konta.
Izolacja Częściowe, niezatwierdzone wyniki transakcji nie wpływają na transakcje współbieżne. Pracę wykonaną równocześnie przez różne transakcje należy traktować tak, jak gdyby transakcje odbyły się seryjnie jedna po drugiej. Inne postępowanie mogłoby doprowadzić do sprzeczności.
Trwałość
Zatwierdzone aktualizacje zarządzanych zasobów (na przykład danych w bazie) przetrwają awarie systemowe dotyczące połączenia, procesu i serwera. W takiej sytuacji możliwe jest odtworzenie stanu poprzedniego za pomocą dzienników transakcji.
Właściwości te gwarantują, że w czasie pomiędzy rozpoczęciem transakcji i jej zatwierdzeniem nie zostaną dokonane problematyczne zmiany danych. Dzięki tym właściwościom uproszczona jest także obsługa błędów przy aktualizacji baz danych i innych zasobów.
Component Services umożliwiają skuteczną pracę z transakcjami, a nawet pakowanie komponentów wewnątrz transakcji. Aplikację transakcyjną można opracować dla pojedynczego użytkownika, a następnie rozszerzyć za pomocą prostych poleceń skryptowych, tak, aby mogła być używana przez wielu pracowników. Komponenty Component Services podlegają aktywizacji i dezaktywizacji w zależności od tego, czy są potrzebne, dzięki czemu potrzeba mniej zasobów serwerowych, a liczba równoczesnych użytkowników aplikacji zwiększa się. Aplikacje Component Services mogą być uruchamiane także w osobnych obszarach pamięci, tak, że ich status operacyjny nie wpływa na inne aplikacje (funkcja ta nazywa się izolacją procesu).
Component Services oferują o wiele więcej niż prosty serwer zarządzania transakcjami. Stanowią także menedżer obiektów dla rozproszonych obiektów sieciowych i środowisk. W rzeczywistości definiują one model programowania oraz zapewniają środowisko przetwarzania i narzędzie graficzne do administracji aplikacjami przedsiębiorstwa. W szczególności oferowane są następujące możliwości:
Przetwarzanie transakcji rozproszonych
Automatyczne zarządzanie procesami i wątkami
Zarządzanie egzemplarzami obiektów
Regulacja tworzenia i używania obiektów za pomocą usługi rozproszonego zabezpieczenia
Obsługa administracji systemu i zarządzanie komponentami
poprzez graficzny interfejs.
Na rysunku 1.6 przedstawiony jest graficzny interfejs Component Services (snap-in do MMC) oraz zainstalowane pakiety. Interfejs ten pozwala na dodanie lub usunięcie pakietów i konfigurację Component Services zgodnie z potrzebami.

Rysunek 1.6 Component Services – snap-in do MMC
Publikacja w witrynach
W tej części omówione jest ogólne rozwiązanie publikacji oferowane przez Windows 2000 Server w oparciu o istniejące dane i następujące technologie:
WebDAV (nowe rozszerzenie HTTP/1.1)
Rozszerzenia Microsoft FrontPage Server
FTP
WebDAV
WebDAV jest rozszerzeniem standardu HTTP 1.1 dotyczącego sposobu udostępniania poprzez połączenie HTTP i hierarchicznego ośrodka przechowywania plików, na przykład systemu plikowego. WebDAV umożliwia regulację zdalnego dostępu autorów do zasobów w systemie plikowym, pozwalając im edytować, przesuwać, przeszukiwać lub usuwać pliki, katalogi i ich właściwości na serwerze. Uprawnienia związane z wirtualnym katalogiem WebDAV można skonfigurować tak, aby można było:
Szukać katalogów, plików i ich właściwości.
Utworzyć, zmodyfikować i usunąć katalogi, pliki i ich właściwości.
Utworzyć, zmodyfikować, usunąć i przeglądać katalogi i ich właściwości.
Przechowywać i pobierać niestandardowe właściwości plików i katalogów.
Założyć blokady umożliwiające jednoczesne czytanie pliku przez wielu użytkowników, a uniemożliwiające jego modyfikację przez więcej niż jedną osobę.
Szczegółowe informacje o ustawianiu uprawnień WebDAV znajdują się w dokumentacji online IIS 5.0 pod hasłem „Setting Web Server Permissions”.
Zaletą WebDAV jest interoperatywność. Na przykład, do serwera WebDAV można podłączyć się z klienta Macintosh lub UNIX. Połączenia Uniform Naming Convention (UNC) nie oferują tak dużej elastyczności.
Rozszerzenia serwerowe FrontPage
Rozszerzenia serwerowe FrontPage są zbiorem programów, które można zainstalować razem z Windows 2000 na serwerze internetowym. Ich dodanie do snap-in IIS 5.0 pozwoli uprościć administrację. Rozszerzenia serwerowe FrontPage działają na obiektach nazywanych sieciami FrontPage (są to projekty zawierające wszystkie strony, obrazy i inne pliki, z których składa się witryna). Oferowane są następujące możliwości:
Opracowanie sieci FrontPage
Na przykład: gdy autor przesuwa stronę z jednego foldera do drugiego w sieci
FrontPage, to rozszerzenia automatycznie aktualizują wszystkie hiperłącza do tej strony z każdej innej strony i z każdego dokumentu Microsoft Office znajdującego się w sieci FrontPage. Zaktualizowane hiperłącza zostają umieszczone bezpośrednio na serwerze.
Pełny opis sieci FrontPage znajduje się w Microsoft FrontPage 2000 Server Extensions
Resource Kit pod adresem http://office.microsoft.com/pl-pl/assistance/CH790018031045.aspx.
Administracja sieci FrontPage
Na przykład: Administrator sieci FrontPage może określić, którzy użytkownicy mogą sieć administrować, modyfikować lub przeglądać.
Konserwacja funkcji przeglądania
Na przykład: Gdy użytkownicy sieci FrontPage tworzą grupę dyskusyjną, to rozszerzenia utrzymują indeks hiperłączy do artykułów wchodzących w skład dyskusji, osobne wątki dyskusji, spisy treści i formularze umożliwiające poszukiwanie stron.
Klient FrontPage i rozszerzenia serwerowe FrontPage współdziałają w celu minimalizacji liczby kosztownych przekazów plików poprzez Internet, co niewątpliwie przydaje się przy publikacji w witrynie. Gdy Microsoft FrontPage Explorer otwiera sieć FrontPage z serwera zawierającego rozszerzenia, to informacje o sieci (w tym mapa hiperłączy) zostają przekazane klientowi tak, aby FrontPage Explorer mógł je wyświetlić. Mimo to pełny zbiór stron i innych plików zawartych w sieci pozostaje na serwerze. Strona zostanie przekazana poprzez Internet dopiero po jej otwarciu w Microsoft FrontPage Editor. Mechanizm ten jest bardzo skuteczny – całą witrynę na serwerze można bezpośrednio zmodyfikować, ściągając i edytując tylko jeden plik.
FTP
Możliwa jest również publikacja do serwerów internetowych za pomocą FTP. FTP jest zintegrowany z systemem operacyjnym Windows jako usługa internetowa i publikuje informacje na serwerze internetowym poprzez standardowego klienta FTP. W zależności od klienta, FTP można używać za pomocą linii poleceń lub poprzez interfejs typu GUI (Graphical User Interface).
Więcej informacji o FTP znajduje się w rozdziale „Administracja instalacji ISP”.
Zasoby dodatkowe
Dodatkowe informacje o IIS 5.0 i innych funkcjach Windows 2000 Server znajdują się w następujących witrynach i publikacjach:
http://technet.microsoft.com/
Część witryny Microsoft TechNet dotycząca sieci wewnętrznych. Ściągnąć można White Paper, FAQ, opisy praktycznych doświadczeń oraz bezpłatne rozwiązania napisane przez Microsoft Solution Providers.
http://msdn.microsoft.com/library/default.asp?url=/workshop/entry.asp
Strona domowa Microsoft MSDN Online Web Workshop jest przydatna administratorom sieci i projektantom aplikacji internetowych.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/counter/
Część witryny MSDN Online Web Workshop dotycząca technologii serwerowych – zawiera odsyłacze do informacji o ASP.
http://www.learnasp.com/learnasp/
Dobre źródło informacji o ASP. Witryna zawiera artykuły dotyczące ASP, FAQ, materiały szkoleniowe, narzędzia i bezpłatne komponenty ASP do ściągnięcia.
http://www.microsoft.com/learning/books/ lub http://www.microsoft.com/mspress/easterneurope/
Witryna Microsoft Press. Microsoft Press wydaje książki i materiały szkoleniowe dotyczące produktów Microsoft i
powiązanych z nimi technologii.