Understanding Internet Information Services - Part 3
 
Published: 05 Oct 2007
Abstract
This article covers the new features intended to come up in IIS 7.0 Windows Process Activation Service (WAS), Web server engine, new approach to processing requests and integrating the request-processing pipelines from IIS and ASP.NET.
by Uday Denduluri
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 26233/ 70

Introduction

This article continues my series on IIS. In Part 1 of the series we went though a web server, IIS in particular, listing out all the components of IIS with the different authentication mechanisms available. In the second part of the series we saw all the new features that are currently available in IIS 6.0. This would include the different modes of operations for IIS, all the services in IIS, Application pools, etc.

In this article we are more confined to the new features of IIS 7.0. Internet Information Services (IIS) 7.0 is the Web server for Windows Vista and Windows Server 2008. Windows Server 2008 has all the IIS features that we need to host web applications on production systems. Windows Vista also has features which depend on the version. Here the IIS is built for testing the web applications. The major change in IIS 7.0 from the previous versions of IIS is the separation of individual modules. Modules are nothing but individual features of the web server. By separating the modules, the Administrator can customize the web server by adding and removing the modules. In the next section we will go thorough all the modules in detail.

Components

The new architecture of Internet Information Services (IIS) 7.0 has the following components. Figure 1 shows all the components in IIS 7.0.

·         Windows Process Activation Service (WAS)

·         Web server engine

·         The new approach to the Request-processing pipelines

Figure 1

Let us see each of these components in detail.

Note: Components shown in Figure 1 are illustrated for a better understanding. MSDN (Microsoft) may have its own version of the diagram.

Windows Process Activation Service

Windows Activation Service is a new service that is added to the IIS components. This service manages the configuration of Application pools and worker process. We have dealt with Application pools and worker process in my previous article Understanding Internet Information Services - Part 2. “When IIS 6.0 runs in worker process isolation mode, we have the option of grouping different Web applications into groups. This concept of grouping applications is known as Application pools. An application pool is a group of one or more Web Sites that are served by a worker process or set of worker processes.”

Before we understand the functionality of Windows Process Activation Service, we need to understand some new terms in IIS 7.0: ApplicationHost.config file and Listener adapters. ApplicationHost.config is the IIS 7.0’s metabase file that is located in the directory “%windir%\system32\inetsrv\config.” It is similar to the web.config file as it is an XML file. Listener adapters are components that establish communication between WAS and protocol listeners. Windows process Activation Service reads certain information from the ApplicationHost.config file and passes that information to the listener adapters on the server. Once listener adapters receive configuration information, they configure their related protocol listeners and prepare the listeners to listen for requests. This is how the windows process activation service manages the configuration.

Web Server Engine

IIS 7.0 includes a Web server engine in which we can add or remove components called modules. A Module has some features that the server uses to process requests. Let us list down some modules and discuss each one in detail.

1.    HTTP Module –This module mainly deals with the request processing pipeline. This is an integrated pipeline that allows both the managed and native code to run. With IIS 7.0, developers can create HTTP modules by using new API's. Typically all the functionality is exposed as a class that has all the operations as methods. The extensibility has been the major feature for developing the IIS 7.0. The main functionality of HTTP module is responding to the information and inquiries sent in client headers, to return HTTP errors, to redirect requests, and more.

2.    Security Module – This module in IIS 7.0 is related to the security in the request processing pipeline. Security means the authentication schemes for the server. In my previous article Understanding Internet Information Services - Part 1 we discussed various authentication mechanisms supported by IIS.

3.    Content Modules – This module deals with managing the contents of the virtual directory. Whenever a request is received from client this module takes up the request and starts the processing. For example, if a request for ABC.html comes from a client then this module looks for the file ABC.html in the appropriate virtual directory. Generally content module deals with the static content. In case of no file name specified, content module is responsible for displaying all the files in the directory or sending the default file.

4.    Compression Module – This module deals with the compression in the request processing pipeline.

5.    Caching Module – For any ASP.Net programmer caching should not be a new feature. Caching is storing a result page while sending the response to the client browser. Later on the same stored response can be sent for the multiple requests. This feature can tremendously improve the efficiency of the request processing pipeline. This module deals with the management of caching. This involves storing a cache, invalidating a cache and also sending the cached response for the similar requests.

6.    Logging and Diagnostics Modules – Logging in IIS 7.0 may look new for ASP.net programmers but it is widely used feature for web server administrators. IIS 7.0 logs comprehensive information about each and every request received by the server. It makes note of the time of request, resource name, IP address of the client, etc. This module deals with all these features.

Difference in working of IIS 6.0 and IIS 7.0

IIS 7.0 is quite different from IIS 6.0. IIS 7.0 has the following advantages over IIS 6.0. We can have control on modules that we want to execute on the server, customize the web server based on our needs, extend the modules that are currently available and use custom modules.

Recalling my first article on IIS 6.0, we discussed the service World Wide Web Publishing Service (WWW Service). “This is the core service of IIS. This hosts internet and intranet, connects to all the clients though HTTP requests. It uses and configures the HTTP protocol Stack and worker process for the same. It also monitors the health of worker process.” In IIS 7.0 there are some changes to the Windows Web Publishing Service (WWW service). In IIS 7.0, WWW service is no longer responsible for managing the worker processes. Instead, the WWW service is currently responsible for configuring HTTP.sys.

References

Conclusion

This article exposes all the features of IIS 7.0. Initially it lists all the components of IIS 7.0 and describes each one of them in detail. The latter part of the article explains the differences between the working of IIS 7.0 and IIS 6.0.



User Comments

Title: pansiyon   
Name: pansiyon
Date: 2010-07-29 5:13:33 AM
Comment:
We are using iis6 but iis 7 has an extension for configuring redirects and urls, i love that.
Title: No comments posted yet   
Name: No comments posted yet
Date: 2009-11-26 9:47:20 AM
Comment:
No comments posted yet

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2019 ASPAlliance.com  |  Page Processed at 2019-08-24 10:40:38 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search