Many use Java application servers with source code. We thought about alternatives to Glassfish and decided to learn a little.

What is an application server?
An application server can often be described as a software environment that sits at the middle level of a server-oriented architecture.
An application server can often be thought of as part of a three-tier application that is a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server, and provides security and stateful services.
For web applications, the application server will run in the same environment as its web servers, and the application servers will support dynamic page generation and implement services such as clustering, failover, and load balancing.
For those who are far from the topic, I will explain - this allows you to write code to run on the server and code on the client and allow them to communicate with each other. Developers who have high performance requirements can rent dedicated servers on DeltaHost: https://deltahost.com/dedicated.html
GlassFish
GlassFish is a project originally started by Sun Microsystems for the Java EE platform and now part of the Oracle Corporation. It is available under a dual license:
- General Development and Distribution License (CDDL);
- GNU General Public License (GPL) with classpath exception.
- Oracle no longer provides commercial support for GlassFish Server.
GlassFish is often regarded as a Java EE reference implementation and therefore supports Enterprise JavaBeans (managed server component architecture for modularizing enterprise applications), JPA (Java Persistence API), JavaServer Faces, JMS (Java Message Service), RMI (Java Remote Method Invocation), JavaServer Pages, Servlets and more.
Glassfish allows you to build enterprise applications that are portable and scalable and that integrate with legacy technologies.
It is built on a modular kernel based on OSGi and runs right on top of the Apache Felix implementation. It can also work with Equinox OSGi or Knopflerfish OSGi. HK2 abstracts the OSGi module system to provide components that can also be viewed as services and injected at runtime, and uses an Apache Tomcat derivative as a servlet container to serve web content, with the added Grizzly component that uses Java New I/O (NIO ) for scalability and speed.

JBoss Enterprise Application Platform
The JBoss Enterprise Application Platform, also known as JBoss EAP, is an open source platform (available under the GNU General Public License). Used to create, deploy, and host highly transactional Java applications and services. It is also available as a subscription based server. The JBoss Enterprise Application Platform is part of a broader software portfolio known as the JBoss Enterprise Middleware portfolio.
JBoss works cross-platform and can be used on any operating system that supports Java. Its main features include support for Java EE standards and web services, Enterprise Java Beans (EJB), Java persistence using Hibernate, Object Request Broker (ORB) using JacORB to interact with CORBA objects, JBoss Seam framework including Java annotations, JavaServer Faces (JSF), including RichFaces, Web Application Services, including Apache Tomcat for JavaServer Pages (JSPs), and Java Servlets.
JBoss includes security services, including Java Authentication and Authorization Service (JAAS) and Authentication Plugins (PAM), as well as additional web services and interoperability, including JAX-RPC, JAX-WS, many WS standards -* and MTOM/XOP.
WildFly
WildFly, more commonly known as JBoss AS, is an application server created by JBoss but currently under constant development by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification separately from the JBoss Enterprise Application Platform.
WildFly is free and open source software available under the GNU Lesser General Public License (LGPL), version 2.1. Wild Fly is currently in 8.2.0 Final and 9.0.0Beta2 Release.
Some of the features and functionality included in WildFly: clustering, deployment API, distributed caching (using Infinispan, standalone project), distributed deployment, Enterprise JavaBeans version 3 and 2.1, fault tolerance (including Web and EJB sessions), persistent programming, authentication Java and Authorization Service (JAAS), Java EE Connector Architecture (JCA) integration, Java Management extensions, Java Messaging Service (JMS) integration, Java Naming and Directory Interface (JNDI), Java Transaction API (JTA), Java Authorization contract for containers , (JACC) JavaMail integration, Java Server Faces 1.2 (Mojarra) Java Server Pages (JSP) / Java Servlet 2.1 / 2.5
Wildfly also supports web services such as JAX-WSJDBCLoad balancing and includes a management API, OSGi frameworkRMI-IIOP and can run in two server modes: traditional, single JVM, standalone mode and multi-JVM option, domain mode , which synchronizes configuration across any number of processes and hosts.
Apache Tomcat
Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies released under the Apache License version 2 and developed by the Apache Software Foundation (ASF). Apache Tomcat implements several Java EE specifications, including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, and provides a "pure Java" HTTP web server environment for running code.
Apache Tomee
Apache TomEE is an enterprise Java version of Apache Tomcat that integrates several enterprise Java projects, including Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces.
Apache TomEE Web Profile can provide Servlets, JSP, JSF, JTA, JPA, CDI, Bean Inspection and EJB Lite and also provides JAX-RS (RESTfull Services) plus EJB Full, Java EE Connector Architecture, JMS (Java Message Service) and JAX -WS (web services) and includes support for Mojarra and EclipseLink.
Blazix
Blazix is a full-featured Java application server and web server (serving HTML files and images in addition to the standard application server workload). Blazix currently provides Servlet 2.3, JSP 1.2, EJB 1.1, and JMS 1.0.2. It also implements HTTP/1.1 and is written entirely in Java, and can be used cross-platform. It can be used as a complete web server on its own, especially when there is a lot of traffic.
Some of the included features have support for clustering without a single point of failure for load balancing and failover, EJB and web archive deployment and upgrade, Secure Socket Layer web services, transaction management, security.
Apache Geronimo
Apache Geronimo is a server developed by the Apache Software Foundation and licensed under the Apache license. Apache Geronimo is compliant with the Java Enterprise Edition (Java EE) 6 specification and supports various technologies such as JMS, Enterprise JavaBeans, connectors, servlets, JSP, JSF, Unified Expression Language, and JavaMail.
Developers can create portable and scalable applications that integrate well with legacy technologies. It should be noted that development of Apache Geronimo is now largely discontinued, though not entirely.
JOnAS
JOnAS is an open source implementation of the Java EE Application Server specification, released under an open source LGPL license and developed and maintained by the ObjectWeb Consortium (ObjectWeb is a non-commercial European consortium).
JOnAS provides a fully compliant EJB container via EasyBeans and is available with an embedded Tomcat or Jetty web container that supports the 1.6 JVM and can run on a variety of operating systems including Linux, Windows, AIX and many Posix platforms.
Version 5 of JOnAS is completely based on the OSGi platform; using Apache Felix, Eclipse Equinox, or Knopflerfish, which means that the JOnAS components are packaged and contain tools for creating, deploying, and monitoring JOnAS clusters; it also includes self-management functions.
Resin
Resin is a web and application server created by Caucho Technology. Available under GPL and commercial license. A commercial licensed version of Resin Pro is available for corporate and production environments. Resin supports the Java EE standard as well as the mod_php/PHP engine known as Quercus.
Resin is also one of the oldest application and web servers as it predates Apache Tomcat which was released in 1999.
Resin Pro includes features such as built-in caching and features such as clustering support, advanced administration, and more, but the open source version of Resin is used without these features.
The web server includes support for static files/JSP/Servlet/JSF, URL rewriting, proxy caching, Gzip compression, SSL, virtual hosts, Comet/Server sending and WebSockets.
Jetty
Jetty is a Java-based HTTP server and servlet container, a free open source project within the Eclipse Foundation (originally developed as an independent open source project).
The web server is relatively popular and is used in products such as Apache ActiveMQ, Alfresco, Apache Geronimo, Apache Maven, Apache Spark, Google App Engine, Eclipse, Twitter Streaming API, and supports the latest Java Servlet API (with JSP support). ) as: as well as AJP, JASPI, JMX, JNDI, OSGi, SPDY, and WebSocket.