# JBoss Enterprise Application Platform

The JBoss Enterprise Application Platform (or JBoss EAP) is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services developed and maintained by Red Hat. The JBoss Enterprise Application Platform is part of Red Hat's Enterprise Middleware portfolio of software. Because it is Java-based, the JBoss application server operates across platforms; it is usable on any operating system that supports Java. JBoss Enterprise Application Platform was originally called JBoss and was developed by the eponymous company JBoss, acquired by Red Hat in 2006.

## Product components and features

Red Hat's latest JBoss EAP version is 7, with Cumulative Patches 2 and Cumulative Patches 3 (JBoss EAP 7.2 and JBoss EAP 7.3, respectively).
Key features:
* Eclipse-based Integrated Development Environment (IDE) is available using JBoss Developer Studio
* Supports Java EE and Web Services standards
* Enterprise Java Beans (EJB)
* Java persistence using Hibernate
* Object request broker (ORB) using JacORB for interoperability with CORBA objects
* JBoss Seam framework, including Java annotations to enhance POJOs, and including JBoss jBPM
* JavaServer Faces (JSF), including RichFaces
* Web application services, including Apache Tomcat for JavaServer Pages (JSP) and Java Servlets
* Caching, clustering, and high availability, are provided by the subsystem Infinispan (formerly JBoss Cache)
* EJB that includes JNDI and RMI
* Security services, including Java Authentication and Authorization Service (JAAS) and pluggable authentication modules (PAM)
* Web Services and interoperability, including JAX-RPC, JAX-WS, many WS-* standards, and MTOM/XOP
* Integration and messaging services, including J2EE Connector Architecture (JCA), Java Database Connectivity (JDBC), and Java Message Service (JMS)
* Management and Service-Oriented Architecture (SOA) using Java Management Extensions (JMX)
* Additional administration and monitoring features are available using JBoss Operations Network
Key components:
* JBoss Application Server, the framework used to support the development and implementation of applications
* Hibernate, an object/relational mapping and persistence (ORM) framework
* JBoss Seam, a framework for building web applications
* JBoss Web Framework Kit, for building Java applications
Lists of components, features, and standards supported are available.

## Licensing and pricing

JBoss itself is free and open-source, but Red Hat charges to provide a support subscription for JBoss Enterprise Middleware. Red Hat allows the use of JBoss EAP for development, but to obtain support in production a support subscription is required and customizations are not supported.

## Related products

These products are part of the JBoss Enterprise Middleware portfolio of software, or are included with the JBoss Enterprise Application Platform software.
* JBoss Enterprise Web Platform (or JBoss EWP) This software is a lighter weight version of the JBoss Enterprise Application Platform. The key components are essentially the same as the full JBoss Enterprise Application Platform, but uses a slimmed down profile of the JBoss Application Server. Lists of components and standards supported are available.
* JBoss Enterprise Portal Platform (or JBoss EPP) This software is an enterprise portal with the core portal features of presentation, master page objects, containers, and a repository, and also an optional site publisher. Key components:
** JBoss Enterprise Application Platform – the software infrastructure
** GateIn Portal – both an enterprise web portal and also a portal framework to build upon. GateIn Portal includes support for Web Services for Remote Portlets (WSRP), Java Content Repository (JCR), Single Sign-On (SSO), and OpenSocial gadgets.
** JBoss Portlet Bridge – a non-final draft implementation of the JSR-301 and JSR-329 specifications that support JavaServer Faces (JSF) within a JSR-286 portlet. This software also supports other web frameworks such as JBoss Seam and RichFaces to run inside a portlet.
** Site Publisher – web content management (optional) (by eXo)
    JBoss EPP implements the standards for Portlet 2.0 (JSR-286), JCR (JSR-170), OASIS WSRP 1.0, and OpenSocial.
    A list of components is available.
    The GateIn project is a merge of JBoss Portal 2.7 and eXo Portal 2.5 that produced GateIn Portal 3.0, and also the related projects GateIn Portlet Container, eXo JCR, and JBoss Portlet Bridge.
* JBoss Enterprise Web Server (or JBoss EWS) This software is a platform for lightweight Java applications, but also handles large scale websites. JBoss EWS may be deployed as a standard enterprise web server, a simple Java application server, or an enterprise open source application infrastructure. Key components:
** Apache Tomcat – including Java Servlet and JavaServer Pages
** Apache Web Server – including common modules and connectors for authentication, caching, proxying, filtering, and load balancing (mod_jk)
    Lists of components and standards supported are available.
* JBoss Web Framework Kit This software is a set of web frameworks used for building light and rich Java applications. Components:
** Google Web Toolkit – framework for rich Internet applications
** RichFaces – framework for rich Internet applications
** Spring Framework – Java framework
** Apache Struts – Java framework
* JBoss Cache (or JBC) This software implements a cache for frequently accessed Java objects to improve application performance. The cache can be replicated and transactional. The cache can be replicated across one or more Java Virtual Machines (JVM) across a network. The cache can be transactional because a JTA compliant transaction manager can be configured and make any cache interaction transactional. The two types of JBoss Cache are Core and POJO, with the POJO library built on top the Core library.
* JBoss Netty This software is a New I/O (NIO) client-server framework for the development of Java network applications such as protocol servers and clients. The asynchronous event-driven network application framework and tools is used to simplify network programming such as TCP and UDP socket servers. Netty includes an implementation of the reactor pattern of programming.