Comparison of application servers
Application servers are system software upon which web applications or desktop 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 Internet Information Services (IIS)) and (almost always) in front of an SQL database (e.g. PostgreSQL, MySQL, or Oracle). Web applications are computer code which run atop application servers and are written in the language(s) the application server supports and call the runtime libraries and components the application server offers.
Many application servers exist. 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. 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.
- POCO C++ Libraries - A set of open source class libraries including Poco.Net.HTTPServer.html
- CppCMS
- uWSGI[1]
- Enduro/X - A middleware platform for distributed transaction processing, based on XATMI and XA standards, open source
Go
- Enduro/X ASG - Application server for Go. This provides XATMI and XA facilities for Golang. Go application can be built by normal Go executable files which in turn provides stateless services, which can be load balanced, clustered and reloaded on they fly with out service interruption by means of administrative work only. Framework provides distributed transaction processing facility for Go.
Haskell
Java
Product | Vendor | Edition | Last release | Java EE compatibility [2] |
Servlet | JSP | HTTP/2 | License |
---|---|---|---|---|---|---|---|---|
ColdFusion | Adobe Systems | 2016.0.1 | 2016-05-01 | 7 partial platform | 3.1 | 2.3 | No | Proprietary, commercial |
Enhydra | Lutris | 5.1.9 | 2005-03-23 | No | No | Free, GPL | ||
Enterprise Server | Borland | 6.7 | 2007-01 | 1.4 | 2.4 | 2.0 | No | Proprietary, commercial |
Geronimo | ASF | 3.0.1 | 2013-05-28 | 6 full platform | 3.0 | 2.2 | No | Free, Apache |
GlassFish | GlassFish Community | 4.1.1 | 2015-10 | 7 full platform | 3.1 | 2.3 | No | Free, CDDL, GPL + classpath exception |
iPlanet Web Server | Oracle Corporation | 7.0.21 | 2015-04 | Yes[3] | 2.5 | 2.1 | No | Proprietary, commercial |
JBoss Enterprise Application Platform | Red Hat | 6.4.0.GA | 2015-04 | 6 full platform | 3.0 | 2.2 | No | Free, LGPL |
Jetty | Eclipse Foundation | 9.3.3 | 2015-08-27 | 7 partial platform[4] | 3.1 | 2.3 | Yes | Free, Apache 2.0, EPL |
JEUS | TmaxSoft | 8 | 2013-08 | 7 full platform | 3.0 | 2.2 | No | Proprietary, commercial |
JOnAS | OW2 Consortium
(formerly ObjectWeb) |
5.3 | 2013-10-04 | 6 Web Profile | 3.0 | 2.2 | No | Free, LGPL |
JRun | Adobe Systems | 4 updater 7 | 2007-11-06 | 1.3 | 2.3 | 1.2 | No | Proprietary, commercial |
NetWeaver Application Server | SAP AG | 7.4 | 2013-01-11 | 6 | 2.5 | 2.1 | No | Proprietary, commercial |
Oracle Containers for J2EE | Oracle Corporation | 10.1.3.5.0 | 2009-08 | 1.4 | 2.4 | 2.0 | No | Proprietary, commercial |
Orion Application Server | IronFlare | 2.0.7 | 2006-03-09 | 1.3 | 2.3 | 1.2 | No | Proprietary, commercial |
Resin Servlet Container (open source) | Caucho Technology | 4.0.36 | 2013-04-25 | 6 Web Profile[5] | 3.0 | 2.2 | No | Free, GPL |
Resin Professional Application Server | Caucho Technology | 4.0.36 | 2013-04-25 | 6 Web Profile | 3.0 | 2.2 | No | Proprietary, commercial |
Rupy | Rupy | 1.2 | 2015-01-01 | No | No | Free, LGPL | ||
Tomcat | ASF | 8.0.26 | 2015-08-21 | 7 partial platform | 3.1 | 2.3 | No | Free, Apache v2 |
TomEE | ASF | 1.7.4 | 2016-03 | 6 Web Profile | 3.0 | 2.2 | No | Free, Apache |
WebLogic Server | Oracle Corporation
(formerly BEA Systems) |
12.2.1 | 2015-10-26 | 7 full platform | 3.1 | 2.3 | No | Proprietary, commercial |
WebObjects | Apple Inc. | 5.4.3 | 2008-09-15 | Partial[6] | No | Proprietary, commercial | ||
IBM WebSphere Application Server | IBM | 8.5.5.6 | 2014-08-26 | 6 & 7 full platform | 3.1 | 2.3 | No | Proprietary, commercial |
WebSphere AS Community Edition | IBM | 3.0.0.4 | 2013-06-21 | 6 full platform | 3.0 | 2.2 | No | Proprietary, commercial |
WildFly
(formerly JBoss AS) |
Red Hat
(formerly JBoss) |
10.1 | 2016-08-19 | 7 full platform | 3.1 | 2.3 | Yes | Free, LGPL |
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.
- Wakanda Server - Server-side JavaScript application server integrating a NoSQL database engine (WakandaDB[7]), a dedicated HTTP server, user, and group management and an optional client-side JavaScript framework.
- Node.js - implements Google's V8 engine as a standalone (outside the browser) asynchronous Javascript interpreter. A vigorous open-source developer community on GitHub has implemented many supporting products, notably npm for package management and Connect and Express app server layers.
- Phusion Passenger
LPC
- Dworkin's Game Driver (DGD)
.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:
- Internet Information Services web server
- Windows Server AppFabric
- .NET Framework (Windows Communication Foundation, Web Services, .NET Remoting, Microsoft Message Queuing (MSMQ), ASP.NET, ADO.NET)
- Distributed Transactions, COM+
- Active Directory Lightweight Directory Service (ADLDS), Active Directory Federation Services (ADFS), Authorization Manager
Third-party
- Mono - Developed by Novell, Inc., licensed under GPL
- Base4 - An open source project
- TNAPS Application Server - Freeware, developed by TN, LLC
Objective-C
- GNUstepWeb - WebObjects 4.5 compatible, licensed under LGPL
Python
- CherryPy
- Django-cms - By Divio AG
- Google App Engine
- Gunicorn
- mod_python
- mod_wsgi
- Phusion Passenger
- Paste
- Tornado
- Twisted
- Web2py
- Zope - By Zope, Inc.
Perl
PHP
Ruby
Smalltalk
- Seaside - A continuations based web application server
Tcl
- AOLserver - Released as NaviServer before being bought by AOL in 1995
See also
- Content management system
- Web framework
- Comparison of web frameworks
- Comparison of server-side JavaScript solutions
References
- ↑ "The uWSGI project — uWSGI documentation".
- ↑ http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html
- ↑ http://java.sun.com/j2ee/tested_config/hitachi14.html
- ↑ http://www.eclipse.org/jetty/documentation/current/jetty-javaee.html#webprofile-7
- ↑ http://www.infoq.com/news/2011/06/resin-web-profile
- ↑ http://developer.apple.com/documentation/WebObjects/JSP_and_Servlets/About/chapter_1_section_1.html
- ↑ WakandaDB