Application servers are system software upon which web applications run. Application Servers consist of web server connectors, computer programming languages, runtime libraries, database connectors, and the administration code needed to deploy, configure, manage, and connect these components on a web host. An application server runs behind a web Server (e.g. Apache or Microsoft IIS) and (almost always) in front of an SQL database (e.g. PostgreSQL, MySQL or Oracle). Web applications are computer code which run on top of application servers and are written in the language(s) the application server supports and call the runtime libraries and components the application server offers.
There are many application servers and the choice impacts the cost, performance, reliability, scalability, and maintainability of a web application.
Proprietary application servers provide system services in a well-defined but proprietary manner. The application developers develop programs according to the specification of the application server. Dependence on a particular vendor is the drawback of this approach.
An opposite but analogous case is the Java EE platform discussed below.
Java EE application servers provide system services in a well-defined, open, industry standard. The application developers develop programs according to the Java EE specification and not according to the application server.
A Java EE application developed according to Java EE standard can be deployed in any Java EE application server making it vendor independent.
This article compares the features and functionality of application servers, grouped by the hosting environment that is offered by that particular application server.
BASIC
- Run BASIC - An all-in-one BASIC scriptable application server, can automatically manage session and state
C++
- Tuxedo - Based on the ATMI standard, is one of the original application servers.
- Tntnet - Includes a template engine which allows embedding C++ code in HTML pages. Templates are compiled before run-time, and thus very fast. Multi-threaded, supports object lifetime via scoped variables.
- CPPSERV - C++ servlet container.
- Wt - A web toolkit similar to Qt permitting GUI-application-like web development with built-in Ajax abilities.
Haskell
Java
|
Enhydra | Lutris | 5.1.9 | March 23, 2005 | No | | | GPL |
Jetty | Mort Bay Consulting | 7.0.1 | November 25, 2009 | No | 3.0 | 2.1 | Apache 2.0 |
iPlanet Web Server | Oracle Corporation | 7.0u5 | December 21, 2007 | Yes | 2.5 | 2.1 | Free of charge, no changes allowed |
Java EE
JavaScript
- Broadvision - Server-side JavaScript AS. One of the early entrants in the market during the eCommerce dot-com bubble, they have vertical solution packages catering to the eCommerce industry.
.NET
Microsoft
Microsoft positions their middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server:
Third-party
- Mono - Developed by Novell, Inc., licensed under GPL.
- Base4 - An open source project.
- TNAPS Application Server - A freeware application server, developed by TN, LLC.
Objective-C
- GNUstepWeb - WebObjects 4.5 compatible, released under the LGPL.
- SOPE inspired by WebObjects extended with Zope concepts, used as foundation for SOGo.
Python
Perl
PHP
Smalltalk
- Seaside - A continuations based web application server based on Smalltalk
Tcl
- AOLserver - Released as NaviServer before being bought by AOL in 1995, this was a pioneering web application server - for the first time integrating a multi-threaded HTTP server with built in scripting language and database pools with abstraction layer.
See also
References