Thursday, May 31, 2012

Application Server v/s Web Server



A Web server can be either a computer program or a computer running a program that is responsible for accepting HTTP requests from clients, serving back HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects on it.

An application server is the kind of software engine that will deliver various applications to another device. It is the kind of computer found in an office or university network that allows everyone in the network to run software off of the same machine.


A web server and an application server may differ on the following points:

Comparison chart




Application Server
Web Server
Protocols:
Supports HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page (static content) or
delegates the dynamic response generation to some
other program such as CGI scripts or Servlets or JSPs in the application server.
Exposes business logic and dynamic content to the client
through various protocols such as HTTP, TCP/IP, IIOP, JRMP etc.
Job:
application server is used to serve web based applications and enterprise based applications (i.e sevlets, jsps and ejbs...). because application server contains web server internally.
web server is used to serve web based applications. (i.e servlets and jsps)
Examples of popular server products:
  • Weblogic server
  • Sun Java Application server
  • Apache Geronimo
  • Apache Tomcat
  • Microsoft IIS
Clients can include:
GUI’s, Web Servers
Web browsers, search engine robots
What is it?:
A server that exposes business logic to client applications through various protocols including HTTP.
A server that handles HTTP protocol.
Functions:
To deliver various applications to another device, it allows everyone in the network to run software off of the same machine.
Keeping HTML, PHP, ASP etc files available for the web browsers to view when a user accesses the site on the web, handles HTTP requests from clients.
Functionality:
Adds functionality
Does not add any
Introduction (from Wikipedia):
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do.
Web server can refer to either the hardware (the computer) or the software (the computer application) that helps to deliver content that can be accessed through the Internet.



Function

The main function of a web server is keeping files active for web site browsing, 24x7. Any time lost is known as down time which means that at that point, the website and its pages will not be viewable. Any good web hosting company tries to keep their downtime to less than a fraction of a second to be successful. An Application server facilitates this process and tries to make for easy data access of an application.

Multi Threading

The Web Server does NOT support the concept of multi-threading.
In Application Server we have features like connection pooling, isolation pooling, multi-threading, and majorly the Transaction feature which is not there in Web Server.

Web servers (programs) are supposed to serve requests quickly from more than one TCP/IP connection at a time.Consider that Internet Explorer or Firefox Web Browser is a local program on the user's hard drive, whereas the web pages themselves are not. The web pages are actually stored on the hard drives of other computers, and these are known as web servers.

Application server products typically bundle middleware to enable applications to intercommunicate with dependent applications, like Web servers, database management systems, and chart programs.

Load Limit

A web server (program) has defined load limits, because it can handle only a limited number of concurrent client connections (usually between 2 and 60,000, by default between 500 and 1,000) per IP address (and IP port) and it can serve only a certain maximum number of requests per second. 
On the other hand, an application server has a much higher capacity.

Model

Webserver delegation model is fairly simple, when the request comes into the webserver, it simply passes the request to the program best able to handle it (Server side program). It may not support transactions and database connection pooling.  Web servers support to deploy .war files only while Application servers support to deploy .war and .ear files.
Application server is more capable of dynamic behaviour than webserver. An application server can be configured to work as a webserver.

History

The first web server owes its origin to Tim Berners-Lee when as part of a new project  to his employer CERN(European Organization for Nuclear Research). In 1989 he wrote two programs which led to the implementation of the first web server. The Application server first came up in the 1990's.
It can be said that a Web server is a subset of an application server. Application servers and web servers are beginning to blur into each other with the expansion of the Internet and Web 2.0 technologies.  In most instances currently, software is hosted on web servers, and then downloaded to the local hard drive, where it is installed on the local computer. In the new model that fuses the web server and application server, the software would be hosted online and the user could access it and use it as needed, generally, at a lower rate than if he or she were to purchase the software new.

No comments:

Post a Comment