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.
|
|
|
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
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.
|