by Arthur Knowles
Although other products currently are available (such as those included with the Windows NT Resource Kit) to enable you to publish content on the Internet using Windows NT, none of them offers the same range of features as the Microsoft Internet Information Server (IIS). After reading this chapter, you might be wondering whether I work for Microsoft. Well, I'm not a Microsoft employee; however, I do like what the IIS can do. I think you will too.
The idea of using the Internet to provide information to Internet-savvy users is not new; people have been doing this for many years. The concept of publishing content on the Internet, however, is new. It is now possible for people who have no experience with HTML to create simple Web pages using their own word processor, such as Word for Windows, and a template, provided by the Internet Assistant, for example. For a more professional-looking Web page, one can use dedicated programs such as Sausage Software's HotDog Pro, SoftQuad's HotMetal, or Microsoft's Front Page. These Windows applications do all the hard work of inserting HTML tags and formatting documents for you.
Unlike in the early years, when you could make available a small amount of information on the Internet, you can now place large amounts of information (including information from your large internal databases) on the Internet for millions of users to view. For the most part this has been made possible by three things. First, the available bandwidth on the Internet has increased tremendously. Secondly, the Internet has changed to allow commercial enterprises. Finally, you no longer have to use UNIX, or a derivative, operating system to provide your Internet services.
This chapter starts with a look at what makes up the Internet Information Server (IIS). This includes a look at the various components, as well as the possibilities to extend IIS to meet your specific needs. You'll then move on to a look at what the IIS can do for you and how well it stacks up against the competition. Finally, you will take a brief look at publicizing your Web site so that potential customers can find you. After all, it does you little good to create an Internet Web site if no one knows how to find you. Right?
The IIS is more than just a port of a couple of Internet services to Windows NT Server. Because IIS does provide these services, however, a complete description requires that you understand this collection of services. You then will learn more about what makes IIS different. This can really be summed up by just saying that IIS is an extensible platform. It provides many different methods to customize IIS to suit your individual requirements.
The IIS consists of three specific Windows NT Services used to publish content (data) using the TCP/IP protocol as the underlying transmission mechanism: a World Wide Web (WWW) server, a File Transfer Protocol (FTP) server, and a Gopher server. The key to understanding just how this works is to realize that IIS provides the servers of a client/server product. Without a client application, such as a web browser like the Internet Explorer, the server really doesn't do much good. The function of a client/server application varies, depending on the underlying transport mechanism. To get an idea of how the process functions, take a look at Figure 1.1. This example uses SQL Server to illustrate how a client/server application functions.
Figure 1.1. An example client/server database model.
The computer on the right of the figure executes an application such as Microsoft Access, which is considered the client application. The computer on the left of the figure executes SQL Server, which is considered the server application. In essence, the client application makes a request, such as to retrieve a row of data. This request then is passed onto SQL Server over your network. After SQL Server receives the request, it processes it and then passes just the data back to the client application for display. Only the commands from the client application to the server application and the data from the server application to the client application pass over the network. Now compare the client/server database model to a monolithic database model, as shown in Figure 1.2.
Figure 1.2. An example monolithic database model.
In the monolithic model, you can assume that the client computer also is running Microsoft Access. Instead of accessing a SQL Server database, though, the database (or the file that contains the database) is stored on a network server. The database just as easily can be located on your local hard drive, but for comparison purposes, I've placed the data on the file server. Instead of splitting the task between two separate applications, all the processing actually is performed by Microsoft Access. Suppose that you want to search a database. The entire contents of the database must be passed to Microsoft Access, which processes the database row by row until it finds the requested information. The monolithic database model places a heavier load on your network than does the client/server model.
This is one reason why the Internet services also use a client/server modelto lower the bandwidth requirements. You can think of the Internet as a very large wide area network (WAN). A WAN is a collection of computers that are not physically located in the same location as your network (or local area network). Most WANs use very slow connections (56 Kbps) to connect computers to your LAN. Some use higher speed connections (up to 45 Mbps). The connection speed determines how much information can be passed between the server application and the client application. When you consider that most Internet connections by clients occur using a speed of 1440028800 bps (57600115200 bps with compression), you can see the need to lower the bandwidth requirements as much as possible.
The Microsoft WWW Publishing Service is a WWW server. It uses the HyperText Transmission Protocol (HTTP) to communicate with its client application (a web browser). This can be confusing sometimes because people may refer to your WWW Publishing Service as a WWW server or an HTTP server. It really doesn't matter, though, because all of these perform the same task; each responds to the client application requests. These requests are the basis for publishing information on the World Wide Web.
The WWW is a content-rich environment. It encompasses the majority of network traffic on the Internet. You can use it to display (on your web browser) text, static graphics images, animated graphics images, 3-D worlds, and audio/video files. You also can use it to play audio files. And this is just the tip of the iceberg. New features are being added to web browsers almost constantly, which means adding additional extensions to your Web server in order to support them.
Web browsers no longer are tied specifically toward supporting Web servers. You can use today's web browsers to connect to FTP sites and Gopher sites, and even to access newsgroups. Future versions may encompass other Internet services as well. These services could include e-mail, Telnet, remote shells, and so on. There's no telling exactly what the future will bring in the WWW client/server arena.
Whereas the WWW Publishing Service is an HTTP server, the FTP Publishing Service is a File Transfer Protocol (FTP) server. The FTP Publishing Service is much less complex than the WWW Publishing Service. The FTP Publishing Service is used primarily as a data repository. This repository can contain various types of files that users can upload or download to their systems using an FTP client application. It is similar to a communications program, such as Procomm for Windows, which you use to access a bulletin board system (BBS). When you decide to download a file from the BBS, you have to specify a download protocol. Most often, this is the ZMODEM protocol.
The Gopher Publishing Service is used much less frequently than the WWW or FTP Publishing Service. It primarily is used to publish very large amounts of textual data. If you have an encyclopedia to publish, for example, the Gopher Publishing Service is a good choice to use as your publishing medium. The biggest benefit of the Gopher Publishing Service is that it can be searched with relatively speedy responses, and that the data actually can span multiple servers. Although it is possible to perform similar processes with the WWW or FTP Publishing Service, it does take more work from you.
The key to anyand I do mean anyproject is the means to extend the capabilities of the project based on user demands. Every project grows to encompass new features and to keep the customer satisfied, or it stagnates and dies. This is true of the Internet Information Server as well. IIS is so extensible, you might be overwhelmed by the possibilities. Of course, the flip side to this is that there is something for everyone. The software development kits available for IIS include legacy support, such as the Common Gateway Interface (CGI), as well as new APIs that bring the power of OLE (ActiveX) to the World Wide Web. This chapter gives you a brief overview of these possibilities.
Depending on who you talk to and when you talk to them, you might have heard of the Internet Server Application Programming Interface (ISAPI). This is a proprietary programming interface introduced with IIS as a replacement for CGI development tasks. You can create ISAPI applications to extend the functionality of the IIS just as you would a CGI application. The biggest difference between a CGI application and an ISAPI application is that a CGI application executes in a separate process, whereas an ISAPI application is really a dynamic link library (DLL) that executes in the same address space as the WWW Publishing Service. An ISAPI DLL is much faster than a CGI application that performs the same task. It also consumes less resources, which means that you can service many more users.
You can use an ISAPI application to create an online calculator, for example; the user sees a calculator screen on his web browser, with which he can interact. The actual calculations are performed on the WWW server, and the results are returned for display on the client's web browser. This, of course, is a very simple task, which might not be challenging enough for you. So perhaps you should consider these possibilities:
ActiveX, formally code named Sweeper, is where the real changes are going to be occurring in future products. ActiveX basically brings the power of OLE objects to the Internet. With ActiveX, you will be able to create custom controls for web browsers to enhance their functionality. If you currently have a custom control that you have developed, it should not be too difficult to migrate it to ActiveX. These same custom controls will be insertable into Visual Basic applications, which also implies the possibility of insertion into Visual C++ applications or any application environment that supports the OLE custom controls.
As another sideline benefit, ActiveX introduces the OLE document objects concept. This will give you the capability to create or host documents (a document, in this context, can be any object for which you have developed a custom control) in a frame within a web browser. You could view a Word document inside a frame of your web browser, for example. Or you could go as far as to turn your web browser into a full-fledged word processor as you do today with OLE automation. This technology is going to revolutionize the web, and you can be a part of it.
There is still more to talk about with ActiveX. In fact, I could go on and on, but ActiveX really is so huge a topic that it requires its own book. ActiveX supports two new scripting languages. The first is Java Script, which is based on SUN Microsystems Java language. Java is based on C++ and is used to provide interactive applications, commonly called applets, which can be integrated into your web browser. The second is Visual Basic Scripts, which performs a similar function but, of course, is based on Microsoft's Visual Basic. Both these scripting languages have been trimmed down to remove potentially dangerous functions.
The Common Gateway Interface (CGI) has been around on the World Wide Web for quite some time. If you already have CGI applications, you can continue to use them. If not, you might want to consider writing some. The biggest question you should have if you are new to WWW development is whether you should choose to develop CGI or ISAPI applications. If your development skills are up to snuff and you have been writing Windows applications using C++ for quite some time, there is really no contest. Just choose ISAPI and start coding today.
On the other hand, if you are new to applications development using C++ (or you prefer C, FORTRAN, PASCAL, or whatever), you might want to consider developing CGI applications. A CGI application is any application that supports the standard input (stdin) and standard output (stdout) interface, and can access environment variables. This can cover a lot of ground and can provide you with an easier transition. You also can use CGI with the Perl scripting language instead of a compiled application, such as a C++ executable, to rapidly develop applications to extend your web server's functionality.
The most common reason to use IIS is to create a WWW or FTP site within your organization. How you will use IIS, however, may differ. You can use it to create an Internet web site. Or perhaps you will want to create an intranet web site. This section covers these topics. Your next stop will be a brief look at how well IIS actually stacks up against the competition.
The Internet is taking the corporate and home markets by storm. People everywhere are looking to leverage the Internet. The Internet services most commonly used include WWW and FTP services. For the most part, these services always have been used externallyor, to be more specific, these services have been provided by sources outside of the local area network. As a corporation begins to provide these services, the corporation first uses these services to supply information to external users, to sell products, or possibly even to provide technical support to customers. These services have been used, however, only to provide a means for external users, or Internet clients, to access these resources. This policy is slowly changing as third-party manufacturers add Internet capabilities to their products. Lotus Notes is one such application. It started as a groupware product used internally on the corporate LAN to facilitate user collaboration, but now it is being enhanced to provide Internet support as well.
You might be wondering why these third-party applications are being enhanced to provide this functionality. The bottom line is that the Internet has become such a rich source of materials that it is becoming difficult to live without it. If a tool does not provide Internet support, it is not nearly as useful. Look at Lotus Notes, for example. Your current version of Lotus Notes might have a great deal of corporate information in its proprietary database, but now that you plan to connect to the Internet, you want to share some of this information with your Internet customers. The current version of Lotus Notes provides this capability so that you can use this information internally within your corporate LAN or externally.
Although Lotus Notes is a powerful tool, not everyone has embraced it. One good reason for this is the expense involved, and the functionality provided by Notes doesn't meet everyone's needs. And this is where the same tools you use today, such as a WWW browser, can be used internally on your local area network to provide similar functionality. These tools, although less developed than the current market of groupware products, are less expensive to use. More important, however, is that they also are much easier to maintain, configure, and access from various operating system platforms. Almost every operating system in existence today provides a TCP/IP stack and associated tools.
With the IIS and the current crop of web browsers, you can perform the following tasks:
Intranet publishing is not suitable for every task. Nor is it really for everyone. Publishing data internally does require additional resources. As with most products, there are pros and cons that you should be aware of before you commit your resources. Table 1.1 summarizes these items.
Pro |
Con |
|
An intranet is an excellent platform for publishing information internally. |
Collaborative applications for intranets are not nearly as powerful as those offered by traditional groupware products, such as Lotus Notes. |
|
A web browser is available for almost any operating unlike the proprietary clients used for traditional groupware applications. |
Unlike a groupware product, which integrates all the system, applications into a single product, you need to install separate clients for Web browsing, e-mail, and so on. |
|
Web servers, especially IIS, do not require as much raw processing power or hard disk space as compared to traditional groupware products. |
Although it is quite easy to link an ODBC-complaint database to your IIS Web server, few tools are available to link other back-end components. It is possible to use the SDKs provided with the BackOffice components, including IIS, to integrate your Web server. However, if your third-party product does not have such a development kit, you will be unable to link the information. |
|
You can use numerous Internet products to access your data. These products generally interoperate quite well. |
Intranet publishing requires the TCP/IP protocol to use these tools. If your LAN uses another protocol, you might be forced to change to TCP/IP or install a gateway before these products function properly. If you plan to access the Internet as well, you also need to obtain routable IP addresses. |
|
IIS is a scaleable platform. As you need additional horsepower, you can migrate your system to another processor platform or even add additional processors to increase performance. |
No built-in replication services are available to distribute your data. |
|
With the availability of new HTML authoring tools, such as Front Page, HotDog, and HotMetal, it is quite simple to create Web pages. |
HTML, by itself, is not powerful enough to create client/server applications. Although new standards, such as ActiveX, Visual Basic Scripting, Java Scripts, and so on are available, these still are in their infancy. Using these tools requires custom development. |
To sum up this discussion on intranets versus Internet publishing, I would like to point out one major benefit of intranets. If you start with an intranet publishing site, when the time comes for you to enter the world of Internet publishing, you will be ready. It takes very little to actually convert an intranet site to an Internet site. Specifically, you will need to consider the following:
The key factor in almost everyone's mind today is how well a particular product performs. If it is a poor performer, your company suffers, which means that you too might suffer the consequences for recommending the product. On the other hand, if the product performs well, everyone is happy, and you even might be rewarded for your product recommendation. The one key item that most people seem to forget, however, is that performance is relative. In order to determine a performance level, you must compare a product to another product that performs a similar function.
In an open throughput testing scenario, the IIS outperformed the Netscape Communication Server 1.12 for Windows NT on the same hardware platform by 4 to 1 in the throughput test. (The platform was an HP NetServer LS with an Intel Pentium 133 MHz processor, 32 MB of RAM, a 1 MB L2 cache, two 1 GB hard drives, and a DEC 10/100 Mb Ethernet adapter.) It also outperformed Netscape Communication Server 1.12 for BSD UNIX (which required 128 MB of RAM to complete the test) by 3 to 1. When compared to Novell NetWare's Web Server 2.0, it surpassed it by 2 to 1. These are pretty impressive results because they indicate that IIS requires fewer resources. This translates directly to providing faster client response times and the capability to handle larger peak loads than the competition.
Similar results were obtained based on the number of connections per second. The average response time results were even more impressive, indicating that even for small Web sites, IIS is a better solution. But, more important, IIS provides the means to use APIs to create custom solutions, such as dynamic Web pages, that outperform the competition as well. When the CGI was compared to ISAPI on the same server using IIS, the ISAPI applications transferred almost five times as much data as a similar CGI application. When ISAPI was compared to NSAPI (the Netscape proprietary APIs), ISAPI was almost three times faster.
What all of this really means to you is that you can create a high-performance Web site that outperforms other platforms, including RISC servers such as SUN SPARCServer-20 or HP 9000 Model HP 200 workstations. This means that you can get more bang for your buck, which is important to any company. It also means that you can achieve greater scaleability and handle larger peak loads using Windows NT Server and the IIS.
After you design your WWW site and are ready to publish data on the Internet, you should take care of a few additional items if you want people to find your site. If you have sufficient funds, check with your Internet service provider (ISP) to see whether it offers any plans to publicize your site. Many ISPs do have such plans, and it can make your life a lot easier to let them do the work for you. If your budget doesn't include funds for this purpose, you can try to take care of it yourself. You can start by getting your site published in a directory listing or newsgroup.
A directory listing is a service that Internet users can use to search for an item by keywords. Usually, the individual directory listing, such as Yahoo, indexes your entire Web site. This makes it easy for users to find your Web site, even if they cannot remember your site name. Although you can submit your Web site to an individual directory listing service, it is much easier to submit your site to Submit It at
http://submit-it.permalink.com/submit-it/
This organization supplies a form-based approach for you to submit information about your WWW site. Your site then automatically is submitted to a number of directory listing sites, including Apollo, ElNet Galaxy, Jump Station, Harvest, Infoseek, Lycos, Open Text, Web Index, New Rider's WWW Yellow Pages, Netcenter, Nikos, Pronet, Starting Point, WebCrawler, What's New Too, Whole Internet Catalog, World Wide Web Worm, Yahoo, and Yellow Pages.com. You can expect a two- to four-week delay from the time you submit your site to the time when it actually is available in these directory listings.
Other directory listing services are available that are not included in Submit It's list, including the following:
Excite at
http:www.excite.com
NCSA's What's New page at
http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/whats-new.html
The Open Market Commercial Sites Index at
http://www.directory.net
The Webaholics Top 50 Links at
http://www.ohiou.edu/~rbarret/webaholics/favlinks/entries.html
The Webaholics lists rotate constantly, and there are numerous cool sites of the day and week pages that you can try to make. If you do, be assured that some people will stop by to take a look at your site. And the more people that stop by, the more people will be told about your site. Word of mouth is still one of the commonly used methods used to find hot sites on the Internet. Another possibility is to use a posting service such as PostMaster at
http://www.netcreations.com/postmaster
This service uses a form to post information to 17 Web sites for free. For a fee of $500, you can post to a larger list of 300 different print and broadcast media contacts.
After these services, try Digital's Alta Vista engine at
http://www.altavista.digital.com
It's a good bet that your site already will be listed, but, if not, you can fill out a form and be on your way. Keep in mind that when you do go searching for your site, don't just stop with your home page. Look for all the pages you want to be sure that Internet users will find. When you see your listing, check out the description for the page. If you do not like what you see, change your Web page. Many of these services use the title of your Web page, plus a couple of additional lines (generally, the first couple of lines on the page) as a teaser.
You also should check out the online malls because many of them consist of links to other sites where you can post your link for free. Check the Index of Commercial Databases and Malls posted by the Multimedia Marketing Group at
http://hevanet.com/online/com.html
for a list. You also can try the Yellow Pages of the Entire United States on the WWW at
http://www.telephonebook.com
which is made available by the American Business Information in Omaha, Nebraska. If you are not already listed, you can get a free listing by filling out a form.
Publishing information about your Web site in a newsgroup (or online BBS) is another way for members to notice that you have arrived on the Web. Before you try any postings in a newsgroup, however, keep these rules in mind:
If you fail to follow these rules, you might receive a lot of hate mail or flamesneither of which will do much to attract users to your Web site. The newsgroup for general announcements of a new Web site is
comp.infosystems.www.announce
If your Web site deals with a specific topic, look around to see in what other newsgroups it may be applicable to post an announcement.
This chapter just touched on some of the basic concepts of the IIS. It described some, but not all, of the possible uses for IIS within your organization. It also briefly described the available methods you can use to extend your Web server's functionality with ISAPI, as well as how you can provide additional functionality with ActiveX, Java Scripts, Visual Basic Scripts, CGI, and Perl.
In future chapters, you will actually get your hands dirty by developing some basic applications to demonstrate the functionality of these development tools. Although the amount of information can be daunting, you should consider this in another light. Basically, there is something for everyone. It is not a requirement that you become proficient in all the available methods. Instead, you can start slow and move up as your requirements grow.
Next, you had a quick peek at how you can use IIS internally within your company to publish information and as a stepping stone to full Internet access. You also looked at the basic performance characteristics of the IIS. You should remember that IIS takes advantage of the Windows NT architecture to provide a scaleable platform that is more efficient (faster) than other Web serversincluding many RISC platforms that cost thousands of dollars more. Finally, you examined some of the items you will need to address in order to publicize your Web site. With careful planning and attention to detail, your Web site could become one of the more popular Web sites available.
In the next chapter, you will learn more about Windows NT Server so that you can build a more efficient platform to host the IIS. This will give you the additional knowledge to plan and build a truly awesome Web server.