Showing posts with label server. Show all posts
Showing posts with label server. Show all posts

Sunday, 15 May 2011

The web server

A Web server serves pages for viewing in web browser, application server provides exposes business logic for client applications through various protocols .Web server exclusively handles http requests.

A Web server handles the HTTP protocol. When the Web server receives an HTTP request, it responds with an HTTP response, such as sending back an HTML page. To process a request, a Web server may respond with a static HTML page or image, send a redirect, or delegate the dynamic response generation to some other program such as CGI scripts, JSPs (Java Server Pages), servlets, ASPs (Active Server Pages), server-side JavaScripts, or some other server-side technology.

Whatever their purpose, such server-side programs generate a response, most often in HTML, for viewing in a Web browser.

Understand that a Web server's delegation model is fairly simple. When a request comes into the Web server, the Web server simply passes the request to the program best able to handle it. The Web server doesn't provide any functionality beyond simply providing an environment in which the server-side program can execute and pass back the generated responses. The server-side program usually provides for itself such functions as transaction processing, database connectivity, and messaging.

While a Web server may not itself support transactions or database connection pooling, it may employ various strategies for fault tolerance and scalability such as load balancing, caching, and clustering—features oftentimes erroneously assigned as features reserved only for application servers.

Example of web servers

The Web Server are:

Apache HTTP Server, Apache Tomcat, IBM HTTP server, Oracle HTTP server, Sun Java System Web Server.

Application server

An Application Server is any server that supplies additional functionality related to enterprise computing -- for instance, load balancing, database access classes, transaction processing, messaging, and so on.

As for the application server, according to our definition, an application server exposes business logic to client applications through various protocols, possibly including HTTP. While a Web server mainly deals with sending HTML for display in a Web browser, an application server provides access to business logic for use by client application programs. The application program can use this logic just as it would call a method on an object (or a function in the procedural world).

Such application server clients can include GUIs (graphical user interface) running on a PC, a Web server, or even other application servers. The information traveling back and forth between an application server and its client is not restricted to simple display markup. Instead, the information is program logic. Since the logic takes the form of data and method calls and not static HTML, the client can employ the exposed business logic however it wants.

In most cases, the server exposes this business logic through a component API, such as the EJB (Enterprise JavaBeans) component model found on J2EE (Java 2 Platform, Enterprise Edition) application servers. Moreover, the application server manages its own resources. Such gate-keeping duties include security, transaction processing, and resource pooling, and messaging. Like a Web server, an application server may also employ various scalability and fault-tolerance techniques.

The web server may need to execute an application in response to the user’s request. It may be generating a list of news items, or handling a form submission to a guest book. If the server application is written as a Java Servlet, it will need a place to execute, and this place is typically called a Servlet Engine

EJB Application Servers provide an EJB container, which is the environment that beans will execute in, and this container will manage transactions, thread pools, and other issues as necessary. These application servers are usually stand-alone products, and developers would tie their servlets/JSP pages to the EJB components via remote object access APIs. Depending on the application server, programmers may use CORBA or RMI to talk to their beans, but the baseline standard is to use JNDI to locate and create EJB references as necessary.

WebLogic contains a web server, servlet engine, JSP processor, JMS facility, as well as an EJB container.

An Application Server = Web Server + EJB Container + middle ware services(resources Such gate-keeping duties include security, transaction processing, and resource pooling, and messaging)

Some examples of application server

The Java Enterprise Edition Application servers are:

BEA WebLogic server,Red Hat JBoss, IBM WebSphere Application server, Glassfish Application server.

Difference between a web server and an application server

A Web server serves pages for viewing in web browser, application server provides exposes business logic for client applications through various protocols .Web server exclusively handles http requests.
- A Web Server (otherwise known as an HTTP Server)

An Application Server is any server that supplies additional functionality related to enterprise computing -- for instance, load balancing, database access classes, transaction processing, messaging, and so on.

A Web Server understands and supports only HTTP protocol whereas an Application Server supports HTTP, TCP/IP and many more protocols. Also many more features such as Caches, Clusters, and Load Balancing are there in Application Servers which are not available in Web Servers. We can also Configure Application Servers to work as Web Server.


In short, Application Server is a super set of which Web Server is a sub set.

Sunday, 8 May 2011

Java Enterprise Edition (JEE) servers

Two of the most renown JEE servers are JBoss (now under RedHat) and GlassFish (from Sun).

Also there are servers like Weblogic server.
JBoss 4.2.x is JEE 5 able but not certified. JBoss 5.0 is JEE 5 certified. Glassfish and Weblogic also support JEE 5. All three servers are supported by NetBeans.

Also there are servers which are good but not free. eg.  IBM's Websphere Application Server, Oracle's Application Server, SAP's NetWeaver and Adobe's JRun and ColdFusion products.