|
|
Let’s now take a closer look at how IIS evolved since its inception in 1995. This will help you understand the significance of some of the new features of IIS 6 and how this version can be considered a quantum leap forward from earlier versions. It’s also an interesting story of how a large company develops a new product on-the-fly, and how advances come in fits and starts.
The initial version of IIS was released in February 1996 for the Microsoft Windows NT 3.51 Server platform. Microsoft migrated their own microsoft.com site to IIS 1 for testing purposes prior to commercially releasing the product. This is a little-known fact to most people who complain about bugs and instabilities in Microsoft products and say they feel like beta testers who have to pay for Microsoft software prior to testing it. The reality is that Microsoft tests all new software they develop on their own in-house servers prior to releasing it commercially, and since microsoft.com is one of the largest sites in the world, this means each version of IIS gets thorough in-house testing prior to shipping. In fact, many Microsoft employees end up working with release candidates of current Microsoft Windows platforms and Microsoft Office products prior to general product release, and thus end up being (sometimes unwillingly, I suspect) beta testers for new software!
Anyway, IIS 1 included support for three popular Internet protocols: Hypertext Transfer Protocol (HTTP) for delivering web content, File Transfer Protocol (FTP) for hosting FTP sites for uploading and downloading files, and Gopher (not an acronym) for hierarchical storage and retrieval of files. It also included support for the Common Gateway Interface (GCI), a UNIX programming environment for implementing dynamic features like forms on web pages using scripting languages like Perl. Everything worked fine, but performance was less than stellar, despite Microsoft’s claim that it was the fastest web server around. Some of the features of IIS 1 included
Internet Services Manager, a GUI tool for managing IIS (see Figure 1-1).
Figure 1-1: Internet Services Manager for IIS 1
Integration with the Windows NT platform (IIS was implemented as a collection of Windows NT services).
Virtual servers, a method for hosting multiple websites on a single physical IIS machine. This feature was particularly useful for Internet Service Providers (ISPs) who needed to host thousands of sites for their clients, and it obviated the need of deploying a new physical server each time a new client wanted to set up a website.
Virtual directories, a method for locating website content in a directory located outside of the web root directory (\wwwroot) or on a network file server instead of on the web server itself, which provides added security and flexibility to publish content easily.
Internet Server API (ISAPI), an application programming interface that allowed dynamic web applications to be written using a high-level language like C++ and incorporated into static HTML pages.
Internet Database Connector (IDC), Microsoft’s first attempt at tying website content to back-end databases running Microsoft SQL Server or some other commercial database program like Oracle.
Support for both Basic Authentication (an RFC-compliant authentication scheme compatible with UNIX platforms) and Windows NT LAN Manager (NTLM) Challenge/Response Authentication for extra security in a corporate intranet environment.
Support for Secure Sockets Layer (SSL) version 1 protocol for building secure e-commerce sites.
Text file and ODBC logging for troubleshooting problems and tracking traffic.
Not bad for a first try!
This release marked the inclusion of IIS as a component of the new Microsoft Windows NT 4 Server platform, with its new services and enhanced Windows 95–like GUI. IIS 2 added several new features including
Integration of IIS into Windows NT Setup, allowing for IIS to be configured as part of the default installation of a Windows NT system.
Support for host header names in order to allow multiple websites to be hosted on a single server using only a single IP address and the default TCP port 80. This is great feature for ISPs and web hosting providers who want to host large numbers of sites on a single machine—but unfortunately, in this early release, few could figure out how to use it!
Support for both NCS- and CERN-style image maps.
Enhanced logging features for logging both successful and failed HTTP transactions. This feature was useful in troubleshooting browser/server communication problems.
HTTP byte range, a feature that allowed its supported client (Internet Explorer, naturally) to recover from interruptions and resume download.
Enhanced syntax for Internet Data Query (IDQ) and Hypertext Extension (HTX), which were early file formats used for connecting IIS to back-end database engines to allow clients to issue queries against databases.
HTML Administrator, an ISAPI application that supported administering IIS from a standard web browser (like Internet Explorer) as an alternative to the Internet Services Manager application in Administrative Tools. Using HTML Administrator, you could manage an IIS server remotely over the Internet using only a web browser. It was clunky, but it worked.
Key Manager, a tool for generating key pairs for acquiring digital certificates to implement the Secure Sockets Layer (SSL) protocol. For history’s sake, note that SSL was actually developed by Netscape!
Index Server, a tool for creating content indexes to allow users to perform full-text queries of web content hosted on IIS.
Released in December 1996 (that’s the third version released in less than a year!), Microsoft quickly touted version 3 of IIS as “40 percent faster than IIS 1” based on tests conducted by Shiloh Consulting and Haynes & Co. using SGI’s WebStone performance tool. Other tests showed that it also outperformed Netscape’s FastTrack Server and Novell’s NetWare Web Server, two other popular platforms used in enterprise environments.
Perhaps the most significant development with version 3 was the release of Microsoft’s server-side web scripting engine called Active Server Pages (ASP). ASP enabled developers to build dynamic web applications that had all the functionality of standard client/server applications while using a standard web browser for its client interface. Together with Microsoft’s powerful new ActiveX component technology (developed in reaction to the rising popularity of Sun’s Java programming environment) and two new scripting languages, Visual Basic Scripting Edition (VBScript) and JScript, essentially a knock-off of Netscape’s JavaScript, ASP was quickly embraced by the large Microsoft developer community as the wave of the future with regard to application development. ASP also supported connectivity with databases using the Open Database Connectivity (ODBC) standard and Microsoft’s new ActiveX Data Objects (ADO) technology. Because of the ease of developing ASP-enabled websites using VBScript and ODBC compared with the difficulty of creating ISAPI applications using C++ and the limitations of older Common Gateway Interface (CGI) technology, ASP became (and still is) the dominant development platform for writing dynamic web applications for IIS.
Version 3 represented a quantum leap forward for IIS, from web server to web application development platform, and it was widely embraced by businesses for this purpose. Netcraft’s statistics suggest that the popularity of IIS continued to rise after version 3 was released, while Apache began to plateau and other web servers declined in use. Other enhancements to Microsoft’s web platform strategy that appeared in version 3 included
Microsoft Transaction Server (MTS), for providing the underlying “plumbing” for distributed web applications
Microsoft Visual InterDev (part of Microsoft Visual Studio), for developing web applications using Visual Basic, Visual J++, and Visual C++
Microsoft NetShow, to provide streaming audio and video support for IIS
Microsoft FrontPage 97 Server Extensions, to enable FrontPage to be used as a development tool for websites on IIS
Microsoft had gone from offering a bare-bones web server to a full web application development platform and associated tools in under a year. Not bad for a big company! Who says inertia is proportional to size?
At that time, Microsoft also expanded its line of Internet server products with the release of the initial versions of Microsoft Site Server (now Content Management Server) and Merchant Server (now Commerce Server), both of its BackOffice line of server products (now replaced by the newer .NET Enterprise Server family of products). However, these products are beyond the scope of this book.
Microsoft soon improved on version 3 with the Windows NT 4 Option Pack, released in March 1998. The Option Pack provided a number of enhancements both to the underlying Windows NT 4 Server operating system and to the IIS platform, including
Version 4 of IIS itself
Version 2 of Microsoft Transaction Server (MTS)
Version 1 of Microsoft Message Queue Server (MSMQ), which provided the underlying plumbing for asynchronous communications within distributed applications on a network
Version 2 of Index Server
Version 1 of Microsoft Certificate Server, a tool for establishing a public key infrastructure (PKI) to support secure e-commerce
Site Server Express 2, a tool for helping manage large amounts of web content on IIS machines
Microsoft Internet Explorer 4.01, which helped Microsoft finally win the Browser Wars with Netscape
Personal Web Server (PWS), a scaled-down version of IIS for the Microsoft Windows 95 platform
Service Pack 3 for Windows NT 4
Microsoft Management Console (MMC) version 1, Microsoft’s first attempt at creating a single unified interface for administering all aspects of their Windows NT 4 Server platform (and later the basic administration interface for Windows 2000, Windows XP, and Windows .NET Server family)
IIS 4 marked a watershed in IIS development, with many administrators balking at the frequent upgrades and large numbers of new features they needed to cope with when deploying IIS. Many chose to stay with IIS 3 since it was stable and ran smoothly, rather than take the chance of upgrading to version 4 and seeing something break. Others saw the Option Pack enhancements as so many bells and whistles and also decided to stick with IIS 3. There were just too many service packs coming out of Redmond in the opinion of many people, though in fact all Microsoft was trying to do was make the Windows NT 4 platform more secure and reliable. Nevertheless, those who were forward-looking could see the writing on the wall and chose to upgrade, and in most cases this went smoothly enough.
Some of the enhancements that were rolled into version 4 included
An entirely new version of Internet Service Manager, implemented as a series of snap-ins for the new Microsoft Management Console (MMC) interface. This was probably the biggest change from the point of view of IIS administration, as it meant learning an unfamiliar interface for performing familiar tasks.
Implementation of the new HTTP 1.1 standard from the IETF, which made HTTP transfers more reliable and efficient.
Upgrading SSL to the new version 3 standard for greater security and support for 128-bit encryption (where allowed).
Use of MTS for developing transactional ASP applications that employed persistence to maintain state information across multiple HTTP requests. This allowed for much more complex web applications to be developed using ASP/IIS.
Improved browser-based administration of IIS using an ASP application called HTML Administrator (HTMLA).
The ability to manage certain aspects of IIS configuration by running scripts from the command line or desktop shortcuts. These scripts were typically written using JScript and executed using the new Windows Script Host (WSH).
The metabase, a new binary file that was used instead of the Registry for storing IIS configuration information. The most common question most administrators had after installing IIS 4 was, “Where’s the metabase, and how can I edit it directly?”
Host headers that actually worked, enabling multiple websites to be hosted on a single IIS machine using a single IP address and the default TCP port 80 (host headers were introduced into version 2 of IIS but needed support for HTTP 1.1 to work effectively).
Bare-bones support for two additional Internet standard protocols, Simple Mail Transport Protocol (SMTP), which was implemented in IIS 4 as an SMTP mail forwarder for use by ASP applications, and Network News Transport Protocol (NNTP), which forms the basis of USENET but was implemented in IIS 4 mainly to provide discussion group functionality for advanced websites.
There were various other enhancements as well, including a new Website Operators group for assigning users privileges for administering IIS, per-site bandwidth throttling (important in multihoming environments), configuration backup and rollback for greater reliability when IIS configurations were modified, W3C Extended Logging format (an industry standard finally adopted by Microsoft), the ability to run an ASP application in a separate memory space from the web server and from IIS itself (this helped ensure the stability of a web server running an unstable application), an improved Microsoft Virtual Machine to provide better Java support, a script debugger to facilitate debugging of ASP applications, domain blocking to restrict access to content based on domain or IP address, custom error messages for greater user usability, and so on.
Development of IIS on the Windows NT platform basically halted after the Option Pack was released (though several more service packs appeared for the platform to correct bugs and fix things that didn’t work in IIS). Instead, the next development in the history of the platform was version 5, which was released as part of the new Windows 2000 Server operating system two years later. The biggest difference between versions 4 and 5 was the name change: previously IIS stood for “Internet Information Server” and was considered almost a separate server application in Windows NT (though in fact it was really just an optional component), but with Windows 2000 the acronym now represented “Internet Information Services,” probably to indicate more clearly that Internet functionality was something that Microsoft had built into their new operating system from the ground up (just like Internet Explorer was supposed to be an “integrated” part of the operating system).
Apart from the name change, the most important enhancements in version 5 included
A new application model called Pooled Process that allowed multiple web applications to run within a shared memory space separate from the In Process space of Inetinfo.exe
CPU throttling, which allowed administrators to specify the share of CPU time that could be assigned to a site
Integration with Windows 2000’s Active Directory service, which provided greater security and the ability to delegate IIS administration at a more granular level than earlier versions
New wizards to simplify the job of setting up and managing IIS, including permissions wizards for securing access to sites
Support for Web Distributed Authoring and Versioning (WebDAV), an extension to HTTP 1.1 that allowed users to share documents over the Internet more easily
In addition, there were a few other enhancements, such as new ASP capabilities, support for the U.S. Government’s Fortezza security architecture, enhancements in scalability, and so on. IIS 5 was clearly nothing revolutionary, but it did represent a polishing and fine-tuning of the product that led some to upgrade from earlier versions.
Before I get to version 6, which is what this book is all about, we’ll briefly mention an interim release called IIS 5.1. This version is essentially a scaled-down and slightly enhanced version of IIS 5 and is available only on the Windows XP Professional desktop platform. It’s a little hard to know why Microsoft released this version, as few people need a stripped-down web server on their desktop machine. Web developers using FrontPage 2002 are probably about the only ones who would use this version, but any real web production company would prefer tying their developers into a real IIS 5 server. Basically, IIS 5.1 on Windows XP is to IIS 6 on Windows Server 2003 as Personal Web Server (PWS) on Windows NT Workstation is to IIS 4 on Windows NT Server. In other words, IIS 5.1 is about as unnecessary for the Windows XP/ 2003 platform as PWS was for the Windows NT platform. For the sake of being complete, I should mention that Windows 2000 Professional also had a scaled-down version of IIS 5 included with it, which was unfortunately also called IIS 5.
|
|