First, What is a Web Server?
A web server is a specialized type of file server. Its job is to retrieve files from the server’s hard drive, format the files for the Web browser, and send them out via the network. Web servers are designed to do a great job of sending static content out to a large number of users. The pages delivered by the server are expected to be the same for everyone who visits the server.
The function of a typical Web server is shown below. The user requests a web page. The Web Server finds the web page file in a local directory and sends it back out to the user. When graphic files are requested, the same thing happens. The Web Server finds the requested graphic files and sends them back to the user.
The Web Server standards were originally designed to publish static documents on the Internet. There was a limited capability for accessing dynamic content, but this was never intended to support high volume, highly interactive Web applications.
Then, as the Internet and Web browsers became popular in the mid-1990’s, organizations saw an opportunity to provide web pages that contained dynamic content like stock prices, weather information, inventory levels, and shipping status for a package. Web browsers became such a pervasive way to access information that users and organizations desired to access a wide variety of information and applications through their Web browser. So, Web servers had to be extended to allow software application development and access to databases.
Then, What is a Web Application Server?
Web application servers are designed specifically to extend web servers to support dynamic content. The application server software “hooks in” to the web server software and automatically intercepts any user requests for dynamic content. The web server still sends out static web pages and graphic files–Just like before. But now, the application server can create dynamic content by mixing data with templates, running programs, or by accessing databases.
There are a variety of Web Application Server product available. Some of the more popular products include:
Cold Fusion is inexpensive and easy to learn resulting in low cost for both development and implementation. Its may be less applicable for complex or high-volume projects.
Active Server Pages and .Net
For companies that have already committed to Microsoft, the Active Server Pages (ASP) application server included with IIS is a good choice. ASP code is usually written in Visual Basic, and there a large number of qualified developers resulting in moderate development cost. ASP typically only runs with Microsoft operating systems, so it is not a great choice for high-volume projects that will run on Unix hardware..
Microsoft is migrating ASP to its new .Net product. This product offers a lot of potential, but as of May, 2002, all the components are still not released and .Net is still unproven.
Java 2 Enterprise Edition (J2EE) is a great choice for enterprise and mission critical applications. It is highly scalable and can run under almost any operating system from Windows to high-end Unix servers. J2EE code is written in Java.
J2EE application servers are available from over 30 vendors including IBM (WebSphere), Sun (iPlanet) BEA (WebLogic), Macromedia (jRun). There are even several open source J2EE servers (Tomcat, Resin, & jBoss).