Wednesday, October 21, 2009

Application Server

                      Application Server

 

What is Application  Server ?

An application server is a component-based product that resides in the middle-tier of a server centric architecture. It provides middleware services for    security and state maintenance, along with data access and persistence.

Java application servers are based on the Java™ 2 Platform, Enterprise Edition (J2EE™). J2EE uses a multi-tier distributed model. This model generally includes a Client Tier, a Middle Tier, and an EIS Tier. The Client Tier can be one or more applications or browsers. The J2EE Platform is in the Middle Tier and consists of a Web Server and an EJB Server. (These servers are also called "containers.") There can be additional sub-tiers in the middle tier. The Enterprise Information System (EIS) tier has the existing applications, files, and databases.

For the storage of business data, the J2EE platform requires a database that is accessible through the JDBC, SQLJ, or JDO API. The database may be accessible from web components, enterprise beans, and application client components. The database need not be accessible from applets.

J2EE multi-tier architecture showing the client tier, middle tier, and EIS tier

Types of application servers:

The simplest forms of servers are disk servers and file servers. With a file server, the client passes requests for files or file records over a network to the file server. This form of data service requires large bandwidth and can slow a network with many users down considerably. Traditional LAN computing allows users to share resources, such as data files and peripheral devices, by moving them from standalone PCUs onto a Networked File Server (NFS). The more advanced form of servers are database servers, transaction server and application servers.In database servers, clients passes SQL (Structured Query Language) requests as messages to the server and the results of the query are returned over the network. The code that processes the SQL request and the data resides on the server allowing it to use its own processing power to find the requested data, rather than pass all the records back to a client and let it find its own data as was the case for the file server. In transaction servers, clients invoke remote procedures that reside on servers which also contains an SQL database engine. There are procedural statements on the server to execute a group of SQL statements (transactions) which either all succeed or fail as a unit. The applications based on transaction servers are called On-line Transaction Processing (OLTP) and tend to be mission-critical applications which require 1-3 second response time, 100% of the time and require tight controls over the security and integrity of the database. The communication overhead in this approach is kept to a minimum as the exchange typically consists of a single request/reply (as opposed to multiple SQL statements in database servers). Application servers are not necessarily database centered but are used to server user needs, such as. download capabilities from Dow Jones or regulating a electronic mail process. Basing resources on a server allows users to share data, while security and management services, which are also based in the server, ensure data integrity and security.
 

When an application server should be used ?

You should consider an application server when you have a need for:

  • Integration with existing systems and databases
  • Web site support

Secondary reasons to use application servers derive from the primary reasons. A few secondary reasons are:

  • E-Commerce
  • Web-integrated collaboration
  • Component re-use. 
  • One way to look at application servers is that they are a formalization of a solution to a problem that has been around for a long time. That problem can characterized as a need to create an integrated presentation and processing environment for existing systems and databases. The presentation has pretty much been decided with browsers now being the dominant interface. This is why you usually see a Web server paired with or included in an application server. The integrated processing has been moving towards components for some time. Application servers provide containers for such components along with application program interfaces (APIs) to support the components. These APIs are to the existing systems and databases.

ow does an application server work:

It would be interesting to consider what's inside of the application server and how it works. Some of the basic functionalities of an application server are transaction management, data persistence, object pooling, socket handling, and request handling. The flow between these responsibilities is seen in Figure 4. There are various components that handle these functionalities. These components need to synchronize the threads within the application server, in order to manage and maintain the sanctity of data and operations on them. This synchronization, although beneficial and necessary for the proper functioning of the application server, acts as a limitation at higher loads, even when there are enough hardware resources.

http://onjava.com/onjava/2005/01/19/graphics/Fig4.gif

 


0 comments:

Post a Comment