A First Look at IIS 7.0
Componentization and ASP.NET integration are among the many new features coming up in the next version of Internet Information Services.
by Danielle Ruest and Nelson Ruest
February 1, 2005
Microsoft's next-generation Web server, Internet Information Services (IIS) 7.0, isn't due for release until Longhorn ships sometime in 2006. But it's a good idea for Web developers to start thinking about the changes IIS 7.0 will bring, said Bill Staples, group program manager of Microsoft's Internet Information Services (IIS) and Web Platform and Tools Team, and Mary Alice Colvin, product manager for IIS and the entire IIS development team. In fact, the IIS 7.0 beta program is set to start sometime this year.
In a candid interview on the topic, Staples and Colvin discussed the coming changes (also see the sidebar, "Top 6 Features in IIS 7.0" by Eric Deily, who will be talking about IIS 7.0 at VSLive! next week). The most important of these is the componentization of IIS. All of IIS's functions will be specific components that you can turn on or off at your leisure. This means that when you install the Web server, you'll be able to add only the functionality you need, one piece at a time.
For example, if your applications do not use Common Gateway Interfaces (CGI), you can simply remove that component from your IIS configuration. Today, IIS functions are mostly monolithic, making you install core functionalities whether you use them or not. When a patch for CGI comes around, you need to apply it even though you don't use it. With IIS 7.0, you'll need to worry only about the components you chose to install. This will support even more secure configurations of IIS.
In addition, the componentization of IIS will allow Microsoft to build the service onto a set of public application programming interfaces (APIs). Because the APIs will be public, they will allow third-party vendors to build their own functionalities into the Web server. And because each functionality is a specific component that can be added to or removed from IIS, these third-party add-ons will be completely transparent to the system.
Another key aspect of IIS 7.0 will be its complete integration with ASP.NET. Currently, ASP.NET consists of additional functionality that is tacked on top of IIS. Although they integrate well, it still takes two different sets of instructions to manage the two together—IIS is managed through its Metabase, and ASP.NET is managed through web.config files. In version 7.0, IIS will be completely integrated with not only ASP.NET but also the .NET Framework, ADO.NET, and even Indigo—the next version of the Microsoft Web Services platform. This means that there will be a single configuration point for all components of an application and the engines used to run it. The greatest advantage of this level of integration is that you will be able to deliver an application complete with its associated Web server configuration when you need to deploy it. This will vastly simplify administrators' jobs.
Speaking of administrators, they will also enjoy vast enhancements in IIS 7.0. "We've had the IIS Microsoft Management Console (MMC) since the first version of IIS introduced so many years ago," said Staples, who has been an IIS customer since version 1.0. "As the service evolves, we've added functionalities to the MMC, but never really took the time to rethink the interface as a whole."
With IIS 7.0, Microsoft will be releasing a new administration tool that will provide a one-stop shop for all administration functions, even down to the .NET Framework or Indigo level. This interface, a Windows Forms application based on the .NET Framework, will provide a rich graphical user interface for the management of application and Web server configurations. No more manual editing of web.config files! The interface is standalone and can be installed on any machine. All instructions are converted to HTTP and then sent to the Web server, so you can manage all IIS machines remotely whether they are inside or outside the firewall.
The admin tool will also include the ability to delegate the administration of either specific applications or entire Web servers, making it even easier to ensure that administrative duties are assigned to the right personnel. Unfortunately, this tool is for IIS 7.0 only, and will not be able to manage older versions of the service.
Finally, the IIS programming model will change. Today, added functionality to IIS is created through the addition of Internet service APIs or ISAPI filters. Because of its complete integration with ASP.NET and the other core components of the .NET Framework, IIS programming will no longer require the creation of ISAPI filters. In fact, the HttpModules and HttpHandlers in IIS will use a single pipeline for all requests in both native (or Win32) and managed (or .NET) interfaces. This will greatly simplify IIS and ASP.NET programming.
In addition, because they share a single structure, IIS and ASP.NET security settings will be controlled through the same interface. And because of its componentization and integration with ASP.NET, the running IIS engine will require fewer elements than it does today. Of course, it will still support ISAPI filters, classic Active Server Pages, and CGIs to make IIS 7.0 backward-compatible.
"One of the major goals for this release is to make the transition from IIS 6.0 to 7.0 as smooth and easy as possible," Staples said. Colvin agreed: "The best approach is to move to IIS 6.0 today to be able to take advantage of the features of IIS 7.0 when it comes along," she said. For this, she recommends a special IIS Web site (see Resources), which provides information and justification for moving to IIS 6.0.
The features of IIS 7.0 seem compelling, but they will not be an accessible reality for some time. If you are holding off on IIS 6.0 because you are waiting for version 7.0, keep in mind that IIS 6.0 is an excellent Web server engine with vast improvements over IIS 5.0 (see Resources). There is an upcoming service pack for IIS 6.0—integrated with the upcoming Windows Server 2003 service pack 1 due out sometime this year—which will add the ability to improve event tracing in support of application debugging.
Of course, this event tracing will also be improved in version 7.0, but right now it will deliver much more information than you have today. Add that to the existing IIS 6.0 feature set, and you'll see that it beats any previous version of IIS hands down, and even competes head-to-head with any other Web server on the market. According to Staples, you should work with IIS 6.0 today and prepare for IIS 7.0 through the betas that will be forthcoming this year. This will lead you to the best Web experience.
About the Authors
Danielle Ruest and Nelson Ruest (MCSE, MCT) are multiple book authors focusing on systems design, administration, and management. They run a consulting company that concentrates on IT infrastructure architecture and change and configuration management. You can reach them at .
|