Internet i serwer aplikacyjny

Nowa wersja Internet Information Services (IIS) w Windows Server 2003 została zupełnie inaczej zaprojektowana niż wcześniejsze. Praktycznie zmieniły się zupełnie zasady zarówno instalacji (domyślnie IIS w ogóle nie jest instalowany na serwerze; administrator musi go wybrać, a dodatkowo określić, jakie rozszerzenia będą dostępne w IIS). Główna zmiana związana jest z zupełnie inną architekturą serwera.

Nowa wersja Internet Information Services (IIS) w Windows Server 2003 została zupełnie inaczej zaprojektowana niż wcześniejsze. Praktycznie zmieniły się zupełnie zasady zarówno instalacji (domyślnie IIS w ogóle nie jest instalowany na serwerze; administrator musi go wybrać, a dodatkowo określić, jakie rozszerzenia będą dostępne w IIS). Główna zmiana związana jest z zupełnie inną architekturą serwera.

W Windows 2000, gdy przychodzi żądanie do serwera WWW, jest ono najpierw przetwarzane na poziomie jądra (gdzie następuje obsługa m.in. gniazd TCP/IP). Następnie dane przesyłane są do procesu IIS, gdzie następuje analiza nagłówka HTTP. W zależności od wyników analizy żądanie przekierowywane jest do konkretnego procesu CGI czy ASP, który obsługuje daną witrynę.

W Windows Server 2003, w jądrze moduł HTTP.SYS odpowiada za pełną obsługę protokołu HTTP. Dzięki temu jądro od razu może przeanalizować żądanie i wywołać odpowiedni proces roboczy, który ma je obsłużyć. Na poziomie jądra odbywa się także obsługa pamięci podręcznej, co jeszcze bardziej przyspiesza działanie serwera. Należy podkreślić, że jest także druga strona medalu - do jądra Windows Server 2003 wprowadzony został dodatkowy komponent, potencjalne źródło problemów.

IIS 6.0 wykorzystuje zupełnie nowy model izolacji procesów, który z jednej strony zapewnia większy poziom bezpieczeństwa, a z drugiej - lepiej wykorzystuje zasoby serwera.

W IIS 5 dostępne były dwa sposoby izolacji aplikacji WWW działających na serwerze. Aplikacja mogła funkcjonować jako oddzielny proces albo wszystkie aplikacje WWW były gromadzone w jednym procesie (w takim trybie znacznie mniejsze jest zużycie zasobów). Jednak w tym trybie wadliwie działająca aplikacja mogła zakłócić pracę innych witryn, a nawet głównego procesu IIS, co jest niedopuszczalne, na przykład gdy na serwerze są hostowane witryny różnych klientów.

.NET pozwala administratorowi precyzyjnie ustawić uprawnienia do pakietów.

.NET pozwala administratorowi precyzyjnie ustawić uprawnienia do pakietów.

W IIS 6.0 dostępny jest dodatkowy model izolacji aplikacji. Można utworzyć dodatkową instancję "zestawu" - tzw. pulę czy "web garden". Proces inetinfo.exe (główny proces serwera WWW) jest zupełnie oddzielony, nie zawiera żadnego kodu aplikacji WWW uruchamianych na IIS. W ten sposób znacznie zwiększono stabilność serwera - praktycznie błędnie napisana aplikacja nie może spowodować zawieszenia inetinfo.exe.

Wydzielenie wątków roboczych zwiększyło elastyczność konfiguracji serwera WWW - można grupować określone serwisy WWW w wybranych, oddzielnych procesach. Każdy z tych procesów może mieć oddzielne uprawnienia. Konfigurując pulę., można ustawiać m.in., maksymalny rozmiar pamięci oraz zdefiniować sytuacje, w których aplikacje będą automatycznie restartowane.

W IIS 6.0 można także podać, ile procent mocy procesora mają maksymalnie zająć wątki robocze działające w ramach puli (ten mechanizm może być wykorzystany, gdy serwer pełni także inną funkcję oprócz serwera WWW). W ten sposób administrator może skonfigurować taki serwer, który poradzi sobie nawet z błędnie napisanymi witrynami. Warto dodać, że podczas restartu puli (a więc i danej aplikacji) nie jest tracona sesja użytkownika. Innymi słowy, jeżeli internauta dokonywał zakupów w sklepie, gdzie sesja jest wykorzystywana do przechowywania informacji o koszyku, to nie zauważy restartu puli - nadal będzie miał dostępny swój koszyk itp.

Jednak w razie konieczności administrator może włączyć tryb zgodności z IIS 5.0 - ta opcja przydaje się, jeżeli wspomnianego modelu izolacji wymagają aplikacje uruchamiane na danym serwerze.

W IIS 6.0 konfiguracją serwera zarządza oddzielny komponent WAS (Web Administration Service). Odpowiada on za dynamiczną zmianę konfiguracji IIS w trakcie działania serwera. WAS może także zatrzymać zbyt długi nieużywany wątek roboczy. W zależności od opcji mogą być dynamicznie wykrywane zmiany w metabazie (pliku XML), który określa konfigurację serwera. Administrator ma do wyboru korzystanie z administracyjnego GUI albo ręczne edytowanie pliku tekstowgo z konfiguracją. Równocześnie dzięki XML-owi wszystkie ustawienia można zapisać w pliku (np. konfiguracje katalogów wirtualnych).

Internet Information Server ma wbudowaną obsługę autoryzacji przy użyciu Microsoft Passport. Dotychczas dostępne były metody wykorzystywania zintegrowanej autoryzacji Windows, autoryzacji typu diggest oraz podstawowego mechanizmu, gdzie hasło i nazwa użytkownika przesyłane były w niezakodowanej postaci. Warto dodać, że aby logować się w witrynie przy użyciu Microsoft Passport, trzeba skonfigurować odpowiednio Passport Manager Authorization i zarejestrować system.

Warto też dodać, że użytkownicy serwera FTP są izolowani od użytkowników WWW.

IIS 6.0 jest bardzo wydajnym serwerem plików HTML (czyli informacji statycznych). Obsługuje także najnowszą wersję rozszerzeń FrontPage oraz SharePoint Portal Server. Na IIS 6.0 można uruchamiać zarówno strony dynamiczne ASP, jak i napisane przy użyciu technologii .NET - ASP.NET.

W wypadku .NET administrator ma bardzo duże możliwości kontroli uruchamianego kodu. Program w .NET (np. kod obsługujący witrynę ASP.NET) umieszczany jest w tzw. pakietach (assembly). Taki pakiet może być podpisany cyfrowo przez autora. Administrator może określić, że "ufa" pakietom podpisanym przez danego programistę albo że na serwerze mogą działać tylko te aplikacje, które są podpisane danym kluczem. Można też dokładnie określić, jakie operacje są dozwolone dla danego pakietu (czy też pakietu o danej sygnaturze).

Ustawienie uprawnień dla pakietów .NET obejmuje chyba każdy aspekt działania. Można ograniczać prawa zapisu w określonych miejscach na dysku, blokować dostęp do Active Directory, określać zasady komunikacji sieciowej, MSMQ itp. Można też zabronić dostępu do API systemowego (pakiety .NET działają w specjalnym, izolowanym środowisku). Wszystko to sprawia, że omawiana technologia jest dosyć bezpieczna i administrator może określić, co będzie działać na "jego" serwerze.

Administrator może bardzo precyzyjnie określić uprawnienia jakich udziela danemu pakietowi .NET.


Zobacz również