Also called an appserver. A program that handles all application operations between users and an organization's backend business applications or databases. Application servers are typically used for complex transaction-based applications. To support high-end needs, an application server has to have built-in redundancy, monitors for high-availability ... more


Also called an appserver. A program that handles all application operations between users and an organization's backend business applications or databases. Application servers are typically used for complex transaction-based applications. To support high-end needs, an application server has to have built-in redundancy, monitors for high-availability ... more on appservers

Application Servers (appservers)


Definition: An application server, or appserver, is software that typically interfaces one or more databases to convey processed data to and from a user interface.

The user interface is often web based through a browser, but it may be through other means to client computers in any distributed network situation. The application server and databases may be housed in the same or separate computers.

The term “server” is applied to computers in a number of ways: for instance file, web and printer servers. “Application server” doesn’t necessarily apply to a machine, however, as it is actually a piece of software. Loosely speaking, any software that centrally processes data for distributed client machines can be seen as an application server.

 

Application Servers
 


What they do

The application server’s role is to take care of the “business logic” in a “multi-tier” architecture. The business logic is simply the functions that the software performs on the data. Multi-tier refers to the three tiers involved in the system: client – application server – database.

Application servers are written for specific tasks, defined by business needs. Its basic job is to retrieve, process and present data to the user interface, and process any input data whether queries or updates, including any validation, verification and security checks that need to be performed. But what the data is, and what the processes are, vary widely.

A common example of an application server is an Internet search engine. In this instance, the client machines are any computer that logs on to the search engine’s website, and the data input is the search. The application server takes the input and will run several operations on the search term, dependant on the particular search engine’s technology. Then, queries are made to the search engine’s database of web content, and the returned data is ordered and presented back to the client machine.

Other common examples include:

* Online booking systems
* Centralised stock control
* Online banking
* Online dictionaries and other reference

Tiers, n-tiers and multi-tiers

Many networks still run on a two tier approach, in which the client computers are connected to a central server, but each client has their own copy of a particular application installed on them. This means all processing happens on the client computers, and the connection to the server is used only for data retrieval.

The three tier approach, sometimes called n-tier or more commonly multi-tier, takes the processing away from the clients, leaving them with only data presentation. In this model, the client may be referred to as a “thin client”.

Diagram of a multi-tier application server environment

Diagram of a multi-tier application server environment

Interestingly, even though the three tiers are usually split across three separate computers, it’s still possible for all three tiers of interface, application, and database to sit on a single computer.

Advantages of Application Servers

Situating the application on a central computer decouples the clients from the processing, allowing the client computers to access the application from any platform. In other words, any Windows™ or Linux PC or Macintosh ® running any browser can connect to a web based application server, regardless of their individual specifications.

Centralisation of the application holds clear advantages for maintenance and management. The computer that holds the application server can be maintained and upgraded as required to meet demand, and the software can be engineered and developed with a certainty of environment that wouldn’t be possible if the processing had to be run on many distributed computers.

Disadvantages of Application Servers

There are three main disadvantages of centralised processing. Firstly, if the servers go down then clients simply can't access the application. Secondly, the reliance on network connections, including the Internet, exposes the vulnerability that any network outage also chokes all access to the application. Finally, security, since data which may be sensitive could be transferred over public networks.

The way to tackle the first two problems is to ensure adequate redundancy of resources – so, backup servers, network and Internet connections are a must. It’s almost impossible to cover all angles in this, particularly as most of the WAN is out of management control, and the steps taken to cover outage risk will be governed by how mission critical the application server’s availability is.

Tackling security issues is always difficult. However, there are a number of methods, encryption and secure connections for instance, that are applied across all forms of sensitive web interaction. These methods equally apply to application server interfacing over the Internet.

Development Platforms

Java EE, once known as J2EE, is a platform that has become a benchmark for application server developments. Not a standard as such, still compliance with Java EE requirements grants a product significant value status. As a result, Java is widely used as the language of choice for application servers.

However, Microsoft’s ASP.Net platform is also powerful and commonly used, and many developers still use CGI and PERL. The choice of platform for an application server may have technical constraints, and it is down to system analysts and developers to make the choice of suitable solution.