GlassFish - the reference implementation of Java EE
GlassFish is an open-source application server 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: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception. Oracle no longer provides commercial support for GlassFish Server but several organisations have filled that space, most notably Payara who are co-sponsors for NetBeans Day UK.
GlassFish is often considered as the reference implementation of Java EE and so supports Enterprise JavaBeans (a managed, server-side component architecture for modular construction of 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 to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. Optional components can also be installed for additional services.
It is built upon a modular kernel powered by OSGi, and runs straight on top of the Apache Felix implementation. It is also capable of running with Equinox OSGi or Knopflerfish OSGi runtimes. HK2 abstracts the OSGi module system to provide components, which can also be viewed as services and injected into the run time and uses a derivative of Apache Tomcat as the servlet container for serving Web content, with an added component called Grizzly which uses Java New I/O (NIO) for scalability and speed.