In this article, we will explain what is Java EE using examples.
Nowadays, it is a world of distributed computing. We see computing resources such as are geographically spread across and yet require collaboration to accomplish their tasks and computing needs. This demands well-thought specifications for clear understanding and protocols for communication, presentation, data storage, data processing, integration between the services.
Modern apps consist of components, deployed independently and capable of receiving and sending communications over the network, called web services.
In this context, it is worth mentioning the 3-tier or multi-tier application architecture. The figure shows the tiers in a typical application. It includes Presentation tier, Web tier, Business tier, and Database/EIS tier.
2. What is Java EE?
As per the Java EE documentation, Java EE platform uses a distributed multitiered application model for the enterprise applications. Enterprise Applications provides tools and business logic to model real-time businesses. Java EE is a set of specifications and APIs to address all the four layers of an Enterprise Application as shown in the above figure.
Java EE is built over Java SE which works on Write-Once Run-Anywhere principle.
3. What does Java EE contain?
In this section, we list all the components of Java EE with components. The components are grouped by each of the tiers in the application.
3.1 Client Tier
3.2 Web Tier
Web clients typically work on a request-response model where-in the users request for some answers from the Java EE server and the web components respond with a response. All these communications are happening over the HTTP protocol.
Java Server Pages: JSPs are an improved way of writing servlets. You can use markup called scriptlets such as <% and %>. JSPs also support UI tools such as tiling, templating, and many interesting features for rapid UI development. For the examples on JSPs check out our other article from Java Code Geeks.
Java Server Faces: Java Server Faces (JSF) are component-based scriptlets which can be embedded in any JSP or XHTML. Unlike JSPs, JSFs are component-based and event-based such as a click of a button, type, hover, etc., Further, JSFs have a backing bean that serves the business logic and access to all the other Java EE components in the server. For the examples on JSPs check out our other article from Java Code Geeks
For more details on the Web Tier components, check the Java EE page.
3.3 Business Tier
Enterprise Java Beans (EJB): EJB (Enterprise Java Bean), which is hosted by any Java EE application server, that computes business functionalities. It typically involves components that consume SOAP-based XML requests for business functions and respond with an XML for the expected business function results.
They also include components that offer REST-style communication protocol where-in they host REST API based endpoints where the Java EE components call the REST API using typically JSON-based or XML-based requests and the response.
Managed Beans: Managed beans are independent POJO (Plain-old Java Objects) which are managed by Java EE-compliant servers. Java servers manage the lifecycle and dependencies of managed beans. They create, inject, contain, and finally destroy them whenever not required.
These managed components can be accessed web-tier components such as JSP and JSFs but also be accessed by EJB and any other tier components. Unlike EJBs, these are not accessible outside of containers using any HTTP like communication protocols.
Java Message Service API: Java Message Service API is backbone support for event-driven architecture where the Java EE components interact with each other asynchronously. JMS API help the components to create, send and receive messages
JMS API is used to integrate two enterprise applications. For example, in an order processing application, you can see the ordering system talking to accounts to collect the payment once the order is initiated, and talking to the warehouse to ship the product once the order is created successfully.
For more details on the Business Tier components, check the Java EE page.
3.4 Database Tier
Java Persistence API: Java EE offers something known as Java Persistence API or simply know as JPA. JPA contains all the necessary modules to model the database objects. JPA manages entities that map to tables in the database and each property in the bean map to each column. For developers, JPA provides annotations to give something called Object-Relation-Mapping (ORM) to bind Java Objects with the database table.
JPA also provides methods for creating, retrieval, storage, and archive of the entities from the database.
Check out the examples from one of our Java Code Geeks for JPA.
Java Persistence Query Language: JPQL is used to create queries on the tables based on the abstract schema. You can create dynamic queries and fetch the results using JPQL as given in our another article on named queries.
For more details on the Java Persistence API refer to the documentation at the Java EE page.
4. What is not considered a Java EE
Java EE only details with Enterprise Applications. The following are not covered under Java EE:
- Core Java API such as JDBC which internally used by Java Persistence API to connect and query with the databases
- Spring framework is a framework that gives abstraction over Java EE.
- Java EE does not cover modules for the mobile applications which is covered by J2ME.
- Java EE does not cover client-tier technologies like applets for thick-client,
- Java EE does not cover basic data structures like a linked list, hashmap, and trees.
In this article, we gave a broad perspective of the technologies offered by Java EE through examples. For more information on Java EE refer to the official documentation.