An 'application server' is a
software engine that delivers
applications to
client computers or devices. Moreover, an application server handles most, if not all, of the
business logic and
data access of the application (a.k.a. centralization). The main benefit of an application server is the ease of application development, since applications need not be
programmed; instead, they are assembled from building blocks provided by the application server. For example, a
wiki is an ''application server'' that allows users to build
dynamic content assembled from
articles. Moreover,
wikipedia is an assembled wiki that delivers an
encyclopedia stored in a
filesystem, with changes to the encyclopedia stored in a
database.
Although the term ''application server'' applies to all
platforms, it has become heavily identified with the
Sun Microsystems
J2EE platform; however, it has also come to encompass servers of Web-based applications, such as integrated platforms for
e-commerce,
content management systems, and Web-site builders.
Common features
Application server products typically bundle
middleware to enable applications to intercommunicate with dependent applications, like
Web servers,
database management systems, and
chart programs. Some application servers also provide an
API, making them
operating system independent.
Portals are a common application server mechanism by which a single point of entry is provided to multiple devices.
History
In the later part of the
1990s, it was thought that a massive transition to centrally served applications was likely, and that the desktop PC would be replaced by lightweight
network computers. This would have been a return to the much older model of computing as it was done in the
1960s, with a large central computer being accessed by multiple users using
dumb terminals. The difference now was the widespread use of the
Graphical User Interface (GUI). Certain products, such as
Citrix's
WinFrame, became quite popular, allowing standard
Windows software to be run on an NT server and accessed from a wide variety of clients, including non-Windows platforms such as
Mac and
Unix. Currently, the trend is to deliver applications via a browser or other Internet device.
Java application servers
J2EE Servers
Following the success of the
Java platform, the term ''application server'' sometimes refers to a
Java Platform--Enterprise Edition (J2EE) application server. Among the better known commercial J2EE application servers are
WebLogic Server (
BEA),
JBoss (
Red Hat),
WebSphere (
IBM),
JRun (
Adobe),
Geronimo Application Server (
Apache Foundation), and
Oracle OC4J (
Oracle Corporation).
The
JOnAS application server, developed by the
ObjectWeb consortium, is the first non-commercial, open source application server to have achieved official certification of compliance with J2EE. The Web modules are
servlets and
JavaServer Pages, and business logic is built into
Enterprise JavaBeans (EJB). J2EE provides standards for containing the Web components.
Tomcat from
Apache and JOnAS from ObjectWeb are typical of containers into which to put these modules. Both organizations provide the code freely and openly (
open source).
A Java Server Page (JSP) is a servlet from Java that executes in a Web container—the Java equivalent of
CGI scripts. JSPs are a way to create
HTML pages by embedding references to the server logic within the page. HTML coders and Java programmers can work side by side by referencing each other's code from within their own.
JavaBeans are the independent class components of the Java 2 architecture from
Sun Microsystems.
The application servers mentioned above mainly serve Web applications. Some application servers target networks other than the Web:
SIP servers, for instance, target telephony networks.
Non J2EE Servers
J2EE is a specification for a particular type of Java application server, also known as
EJB application servers, because of the component they run, namely the ''Java bean''.
There are other types of Java based application servers that comply with different specifications, for example the
POJO application server uses the Java language as its specification, and is also named after the component it runs, namely a ''Java application''.
Other platforms
The term ''application server '' has also been applied to various non-J2EE and non-Java offerings. For example, with the rising popularity of
.NET, Microsoft can claim to deliver an application server. Additionally, open source application servers are available from other vendors. Some examples are
Appaserver,
Base4,
Concept,
TurboMiddleware, and
Zope.
Advantages of application servers
;
Data and code integrity : By centralizing business logic on an individual or small number of server machines, updates and upgrades to the application for all users can be guaranteed. There is no risk of old versions of the application accessing or manipulating data in an older, incompatible manner.
; Centralized configuration : Changes to the application configuration, such as a move of database server, or system settings, can be done centrally.
;
Security : A central point through which access to data and portions of the application itself can be managed is considered a security benefit, devolving responsibility for authentication away from the potentially insecure client layer without exposing the database layer.
;
Performance : By limiting the network traffic to
presentation layer traffic, it is perceived that the client-server model improves the performance of large applications in heavy usage environments.
;
Total Cost of Ownership (TCO) : In combination, the benefits above are considered to represent a cost saving to a company when developing
enterprise applications. In practice, however, the technical challenges of writing software that conforms to that paradigm combined with the need for
software distribution to distribute client code somewhat negate these benefits.
See also
★
Server
★
web server
★
Client-server
★
Standalone server
★
Comparison of application servers See this article for a list of web application servers listed by programming language.