Java EE – Java Platform, Enterprise Edition

Java Platform, Enterprise Edition (Java EE) is the standard in community-driven enterprise software. Java EE is developed using the Java Community Process, with contributions from industry experts, commercial and open-source organizations, user groups, and countless individuals. Each release integrates new features that align with industry needs, improves application portability, and increases developer productivity.

Java EE – Specifications

Java EE includes several specifications that serve different purposes, like generating web pages, reading and writing from a database in a transactional way, managing distributed queues, and much more.

The Java EE APIs include several technologies that extend the functionality of the base SE APIs, such as Enterprise JavaBeans, connectors, servlets, JavaServer Pages, and several web service technologies.

Java EE specifications
Typical usage of Enterprise Edition specification

Web specifications

  • Servlet: defines how to manage HTTP requests, synchronously or asynchronously;
  • WebSocket: defines a set of APIs to service WebSocket connections;
  • Java Server Faces: a technology for constructing user interfaces out of components;
  • Unified Expression Language (EL) is a simple language originally designed to satisfy the specific needs of web application developers.

Web service specifications

Java API for RESTful Web Services provides support in creating web services according to the REST architectural pattern;

  • Java API for XML Web Services can be used to create SOAP web services JAX-WS;
  • Java API for JSON Processing is a set of specifications to manage information encoded in JSON format JAX-RS ;
  • Java API for JSON Binding provides specifications to convert JSON information into or from Java classes;
  • Java Architecture for XML Binding allows mapping XML into Java objects.

Enterprise specifications

  • Contexts and Dependency Injection is a specification to provide a dependency injection container;
  • Enterprise JavaBean (EJB) specification defines a set of lightweight APIs that an EJB container will support to provide transactions (JTA), remote procedure calls (RMI or RMI-IIOP), concurrency control, dependency injection, and access control for business objects;
Java EE API in different layers
Some Java EE API in different layers
  • Java Persistence API are specifications about the object-relational mapping between relation database tables and Java classes;
  • Java Transaction API contains the interfaces and annotations to interact with the transaction support offered by the enterprise edition;
  • Java Message Service provides a common way for Java programs to create, send, receive, and read an enterprise messaging system’s messages.

Other specifications

  • Validation contains the annotations and interfaces for the declarative validation support offered by the Bean Validation API;
  • Batch Applications provide the means to run long-running background tasks that possibly involve a large volume of data and which may need to be periodically executed;
  • Java EE Connector Architecture is a Java-based technology solution for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions.

JAVA

  • Used in big enterprises;
  • Robust, modular, and scalable;
  • Platform independent;
  • Strongly typed giving it more security;
  • Compiled to byte-code, given performance push;
  • Static type checking;
  • Handle Concurrency;
  • Natively multi-threading.

Java – Consider using, this if your project involves :

  • Server-Side Applications;
  • Big Data Analytics;
  • Enterprise Software;
  • Scientific Computing.

References

Java Platform, Enterprise Edition – https://docs.oracle.com/javaee/7/tutorial/overview007.htm
Your First Cup – https://docs.oracle.com/javaee/6/firstcup/doc/gcrky.html
The Java EE 6 Tutorial – https://docs.oracle.com/javaee/6/tutorial/doc/bnabo.html