List of application servers

Last updated

This list compares the features and functionality of application servers, grouped by the hosting environment that is offered by that particular application server.

Contents

C

C++

Go

Java

ProductVendorEditionLast release Jakarta EE
compatibility [1]
Servlet JSP HTTP/2 License
ColdFusion Adobe Systems 2016.0.12016-05-017 partial platform3.12.3No Proprietary, commercial
Enterprise Server Borland 6.72007-011.42.42.0No Proprietary, commercial
Geronimo ASF 3.0.12013-05-286 full platform3.02.2NoFree, Apache
GlassFish Eclipse Foundation 7.0.19 [2] 2024-11-0110 full platform6.03.1YesFree, EPL, GPL + classpath exception
JBoss Enterprise Application Platform Red Hat 8.0 [3] 2024-02-0510 full platform6.03.1YesFree, LGPL
Jetty Eclipse Foundation 12.0.82024-04-0310 full platform [4] 6.03.1YesFree, Apache 2.0, EPL
JEUS TmaxSoft 82013-087 full platform3.02.2No Proprietary, commercial
Lucee (Formerly Railo)Lucee Association Switzerland5.3.2.772019-05-277 partial platform3.12.3NoFree, CDDL, GPL + classpath exception
NetWeaver Application Server SAP AG 7.42013-01-1152.52.1No Proprietary, commercial
Oracle Containers for J2EE Oracle Corporation 10.1.3.5.02009-081.42.42.0No Proprietary, commercial
Orion Application Server IronFlare2.0.72006-03-091.32.31.2No Proprietary, commercial
Payara Server Payara Services6.2025.12025-01-0110 full platform6.03.1YesFree, CDDL, GPL + classpath exception
Resin Servlet Container (open source) Caucho Technology 4.0.622019-05-236 Web Profile [5] 3.02.2NoFree, GPL
Resin Professional Application Server 6 Web Profile3.02.2No Proprietary, commercial
Tomcat ASF 10.1.102023-06-239 partial platform6.03.1YesFree, Apache v2
TomEE ASF 8.0.152023-05-088 Web Profile4.02.3YesFree, Apache v2
WebLogic Server Oracle Corporation

(formerly BEA Systems)

14.1.1.0.02020-03-30 [6] 8 full platform4.02.3Yes Proprietary, commercial
IBM WebSphere Application Server IBM 24.0.0.52024-05-21 [7] 10 full platform, [8] 6.0 [9] 3.1 [10] Yes [11] Proprietary, commercial
WebSphere AS Community Edition IBM 3.0.0.42013-06-216 full platform3.02.2No Proprietary, commercial
WildFly

(formerly JBoss AS)

Red Hat

(formerly JBoss)

35.0.0.Final [12] 2025-01-0910 full platform6.03.1YesFree, Apache v2

JavaScript

LPC

Lua

.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

Objective-C

PHP

Python

Ruby

Smalltalk

Tcl

Container Based

Container based application servers run each application in a container. The application can be written in any programming language.

See also

Related Research Articles

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

The Jakarta Transactions, one of the Jakarta EE APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment. JTA was a specification developed under the Java Community Process as JSR 907. JTA provides for:

The Jakarta Messaging API is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicated as a sequence of bytes with no explicit message boundaries. Note that streaming protocols are almost always built above protocols using discrete messages such as frames (Ethernet), datagrams (UDP), packets (IP), cells (ATM), et al.

Jakarta Connectors are a set of Java programming language tools designed for connecting application servers and enterprise information systems (EIS) as a part of enterprise application integration (EAI). While JDBC is specifically used to establish connections between Java applications and databases, JCA provides a more versatile architecture for connecting to legacy systems.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

Jakarta Persistence, also known as JPA is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

Phusion Passenger is a free web server and application server with support for Ruby, Python and Node.js. It is designed to integrate into the Apache HTTP Server or the nginx web server, but also has a mode for running standalone without an external web server. Phusion Passenger supports Unix-like operating systems, and is available as a gem package, as a tarball, or as native Linux packages.

<span class="mw-page-title-main">Node.js</span> JavaScript runtime environment

Node.js is a cross-platform, open-source JavaScript runtime environment that can run on Windows, Linux, Unix, macOS, and more. Node.js runs on the V8 JavaScript engine, and executes JavaScript code outside a web browser.

<span class="mw-page-title-main">Vert.x</span>

Eclipse Vert.x is a polyglot event-driven application framework that runs on the Java Virtual Machine.

Express.js, or simply Express, is a back end web application framework for building RESTful APIs with Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs. It has been called the de facto standard server framework for Node.js.

Enduro/X is an open-source middleware platform for distributed transaction processing. It is built on proven APIs such as X/Open group's XATMI and XA. The platform is designed for building real-time microservices based applications with a clusterization option. Enduro/X functions as an extended drop-in replacement for Oracle Tuxedo. The platform uses in-memory POSIX message queues which insures high inter-process communication throughput.

<span class="mw-page-title-main">Deno (software)</span> Secure JavaScript and TypeScript runtime

Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, the creator of Node.js and Bert Belder.

References

  1. "Java EE Compatibility". www.oracle.com.
  2. "7.0.19 | projects.eclipse.org". projects.eclipse.org. Retrieved 2024-11-19.
  3. "Red Hat Extends Java Support in the Cloud with JBoss Enterprise Application Platform 8". www.redhat.com. 6 February 2024.
  4. "The Eclipse Jetty Project". eclipse.dev.
  5. "Caucho Resin is Officially Certified Against the Java EE 6 Web Profile". InfoQ.
  6. Lyons, Will (2020-06-27). "WebLogic Server 14.1.1.0.0 is Available". The WebLogic Server Blog.
  7. "What is new in this release of Liberty". www.ibm.com. Retrieved 2024-07-26.
  8. "Jakarta EE 10 programming model support". IBM .
  9. "Jakarta Servlet 6.0". www.ibm.com. Retrieved 2024-07-26.
  10. "Jakarta Server Pages 3.1". www.ibm.com. Retrieved 2024-07-26.
  11. "HTTP/2 support for Liberty". www.ibm.com.
  12. "WildFly 35 is released!". Wildfly Official website.