Overview of IIS 6.0 Architecture

Applies To: Windows Server 2003, Windows Server 2003 with SP1

IIS 6.0 provides a redesigned World Wide Web Publishing Service (WWW service) architecture that can help you achieve better performance, reliability, scalability, and security for your Web sites, whether they run on a single server running IIS or on multiple servers.

IIS 6.0 runs a server in one of two distinct request processing models, called application isolation modes. Application isolation is the separation of applications by process boundaries that prevents one application or Web site from affecting another and reduces the time that you spend restarting services to correct problems related to applications.

In IIS 6.0, application isolation is configured differently for each of the two IIS application isolation modes. Both modes rely on the HTTP protocol stack (also referred to as HTTP.sys) to receive Hypertext Transfer Protocol (HTTP) requests from the Internet and return responses. HTTP.sys resides in kernel mode, where operating system code, such as device drivers, runs. HTTP.sys listens for, and queues, HTTP requests. For more information about HTTP.sys, see HTTP Protocol Stack.

The new request-processing architecture and application isolation environment enables individual Web applications, which always run in user mode, to function within a self-contained worker process. A worker process is user-mode code whose role is to process requests, such as returning a static page or invoking an Internet Server API (ISAPI) extension or filter. Worker processes use HTTP.sys to receive requests and send responses over HTTP. For more information about worker processes, see Worker Processes.

IIS 6.0 Request Processing Models

Worker process isolation mode is the new IIS request processing model. In this application isolation mode, you can group Web applications into application pools, through which you can apply configuration settings to the worker processes that service those applications. An application pool corresponds to one request routing queue within HTTP.sys and one or more worker processes.

Worker process isolation mode enables you to completely separate an application in its own process, with no dependence on a central process such as Inetinfo.exe to load and execute the application. All requests are handled by worker processes that are isolated from the Web server itself. Process boundaries separate each application pool so that when an application is routed to one application pool, applications in other application pools do not affect that application. By using application pools, you can run all application code in an isolated environment without incurring a performance penalty. For more information about application pools, see How Application Pools Work.

For a visual representation of worker process isolation mode architecture, see Figure 2.1.

Art Image

Worker process isolation mode delivers all the benefits of the new IIS 6.0 architecture, including multiple application pools, health monitoring and recycling, increased security and performance, improved scalability, and processor affinity. For example, the new health monitoring features can help you discover and prevent application failures, and can also help protect your Web server from imperfect applications.

IIS 5.0 isolation mode provides compatibility for applications that were designed to run in earlier versions of IIS. When IIS 6.0 is running in IIS 5.0 isolation mode, request processing is almost identical to the request processing in IIS 5.0. When a server is working in IIS 5.0 isolation mode, application pools, recycling, and health monitoring features are unavailable.

For a visual representation of IIS 5.0 isolation mode architecture, see Figure 2.2. The dashed line in Figure 2.2 indicates the dependency of the worker process on the WWW service, which manages the worker process. For more information about the role of the WWW service, see WWW Service Administration and Monitoring.

Art Image

Use IIS 5.0 isolation mode only if components or applications do not function in worker process isolation mode. The latter mode is designed to provide an environment in which most existing applications or sites function correctly.

For more information about IIS 6.0 isolation modes, see Application Isolation Modes.

IIS 6.0 Services

IIS 6.0 provides four Internet services: the World Wide Web Publishing Service (WWW service) for hosting Internet and intranet content; the File Transfer Protocol (FTP) service for hosting sites where users can upload and download files; the Network News Transfer Protocol (NNTP) service for hosting discussion groups; and the Simple Mail Transfer Protocol (SMTP) service for sending and receiving e-mail messages.

After installing these services, you can create sites or virtual servers, configure properties and security settings, and set up components to further customize your system. For more information about IIS services, see IIS 6.0 Services later in this section and Configuring Internet Sites and Services.

WWW Service Administration and Monitoring*,* which is a new set of features that were added to the WWW service in IIS 6.0, manages worker processes, supports the new request processing model, and is responsible for health management and maintenance, including application pool health monitoring, recycling worker processes, and rapid-fail protection.

IIS Admin service is a service of the Microsoft® Windows® Server 2003, Standard Edition; Microsoft® Windows® Server 2003, Enterprise Edition; Microsoft® Windows® Server 2003, Web Edition; and Microsoft® Windows® Server 2003, Datacenter Edition operating systems. The IIS Admin service manages the IIS metabase, which stores IIS configuration data. The IIS Admin service makes metabase data available to applications and the core components of IIS. For more information about the IIS metabase, see The IIS Metabase.

Comparing Basic Functionality Between IIS 6.0 and Earlier IIS Versions

For a quick preview of IIS architecture, comparing IIS 6.0 architecture with the architecture for earlier versions of IIS, see Table 2.1, which summarizes the basic functionality for different versions of IIS.

Table 2.1 Basic Functionality in Different Versions of IIS

Functionality IIS 4.0 IIS 5.0 IIS 5.1 IIS 6.0

Platform

Microsoft® Windows NT® 4.0 operating system

Microsoft® Windows®  2000 Server operating system

Microsoft® Windows®  XP Professional operating system

Windows Server 2003

Architecture

32-bit

32-bit

32-bit and 64-bit

32-bit and 64-bit

Network subsystem

TCP/IP kernel

TCP/IP kernel

TCP/IP kernel

HTTP.sys kernel

Application request processing model

MTX.exe: Multiple DLL hosts in High application isolation.

Inetinfo.exe: In-process as DLLs with Low isolation.

DLLHost.exe: Multiple DLL hosts in Medium or High application isolation.

Inetinfo.exe: In-process as DLLs with Low isolation.

DLLHost.exe: Multiple DLL hosts in Medium or High application isolation.

Inetinfo.exe: In-process as DLLs with Low isolation.

W3wp.exe: In worker process isolation mode (multiple worker processes).

Inetinfo.exe: Only in IIS 5.0 isolation mode with in-process applications.

DLLHost.exe: Only in IIS 5.0 isolation mode with out-of-process applications.

Metabase configuration

Binary

Binary

Binary

XML

Security

Windows authentication

Secure Sockets Layer (SSL)

Windows authentication

SSL

Kerberos

Windows authentication

SSL

Kerberos

Windows authentication

SSL

Kerberos

.NET Passport support

Remote administration

HTMLA1

HTMLA

No HTMLA

Terminal Services

Remote Administration Tool (HTML)

Terminal Services

1 Hypertext Markup Language Administration or HTML-based administration. HTMLA-based administration allows administrators to manage IIS Web servers by using a standard Web browser, such as Microsoft® Internet Explorer, as the client-side interface.