The acronym J2EE stands for Java 2 Platform, Enterprise Edition. The software platform supports mainframe-level computing of big enterprises. Companies like IBM have designed J2EE for simpler methods of application development in a tiered environment.
J2EE helps enterprises adopt simple processes of developing software applications and reduces programming and training costs because the software platform helps developers create standardized, reusable modules. In addition, the software enables multitier architecture to handle different programming aspects automatically.
Java EE APIs comprise of various technologies that extend the base functionalities of Java SE APIs.
- javax.servlet: This servlet defines a range of APIs to address HTTP requests. Specifications included in this servlet are JavaServer Pages.
- javax.faces: It is the root of JavaServer Faces (JSF) API. This technology is used to develop user interfaces using several components.
- javax.websocket: The WebSocket specification defines APIs linked with WebSocket connections.
- javax.faces.component: This part of JavaServer Faces API is component-oriented and one of its core packages. This software tool contains a UML diagram of component hierarchy.
- javax.enterprise.inject: It includes injection annotations that define beans, stereotype, built-in qualifiers, classes and interfaces belonging to the Contexts and Dependency Injection (CDI) APIs.
- javax.el: The package defines classes and user interfaces for Expression Language of Java EE. Expression Language is designed to address specific needs of developing web applications. JavaServer Faces uses this package to combine components with backing beans and CDI uses it to connect components with name beans to be used across the software platform.
- javax.enterprise.context: Context annotations and interfaces present under Contexts and Dependency Injection (CDI) API are defined by this package.
- javax.ejb: The Enterprise JavaBean is a framework containing lightweight APIs, i.e. a set of reusable code for communicating with other software applications. The major functions supported by this framework include providing transactions using JTA, concurrency control, remote procedure calls (RMI/RMI-IIOP), access control, and dependency injection for business objects.The Enterprise JavaBeans classes and interfaces define contracts between clients and enterprise beans along with the EJB container and enterprise beans.
- javax.validation: Annotations and interfaces included in this package support s the functions of declarative validation offered by Bean Validation API. This API provides a complete solution for establishing bean constraints that can be enforced across multiple layers of classes. J2EE honors bean validation constraints in the persistence layer, whereas JavaServer Faces performs the same functions in the view layer.
- javax.security.auth.message: The package provides core functions of Java Authentication SPI (JASPIC) that involves classes and interfaces to build authentication modules to secure J2EE applications.
Tiered Applications with Java EE Technology
Multi-tiered applications separate basic functionalities into isolated functional areas, also known as tiers. The different tiers included are client-tier, middle-tier, and data tier that is also known as enterprise information systems tier.
Client tier has a client program that sends requests to the middle tier. Business functions of the middle tier deal with client requests, process application data, and stores data in a datastore present in the data tier permanently.
J2EE application development focuses development of enterprise applications on the middle tier because then it is easier to manage the applications. In addition, it leads to development of more robust and secure enterprise applications.
It consists of application clients having an access to Java EE server and usually located on a different machine than the server. Clients are able to make requests to the server. Then, the server processes these requests and returns a response to the client.
Several types of enterprise applications can be Java EE clients; often the clients are different Java applications such as web browsers, standalone IT applications, other servers etc. that run on different machines using J2EE server.
This tier of Java application comprises of components that manage interaction between clients and business tier. Primary tasks of the web tier include:
- Generate dynamic content in multiple formats as per client needs.
- Collect inputs from users of client interface and return appropriate results from components present in business tier.
- Control display of screens or pages on client’s interface.
- Maintain data stability for user sessions.
- Perform basic logic and store some of the data temporarily in components of JavaBeans.
Java EE Technologies Used in the Web Tier
Components included in this tier provide business ogic to an enterprise application. The business logic is a code providing functionality to specific business domain for instance, ecommerce website or financial industry. The proper design of enterprise applications, core functionalities exists in the components of a business tier.
J2EE Technologies in Business Tier
Enterprise Information Systems (EIS) Tier
The EIS tier comprises of database servers, ERP systems, as well as other sources of data, such as mainframes. The data sources are located on separate machines rather than J2EE server, which can be accessed by business tier’s components.
Every Java platform comprises of an Application Programming Interface (API) and Java Virtual Machine (VM).
VM refers to programs for a specific software platform and hardware, which supports Java applications. An API refers to a combination of software components to be used to create various other software applications.
Each platform allows applications to run on any compatible system providing all benefits of Java programming language i.e. power, independence, stability, development ease, as well as security.
Java Standard Edition (Java SE)
The core functionalities of Java SE API define basic types of Java objects ranging from basic programming language to high-level classes. Java SE APIs is normally used for security, networking, GUI development, database access, and XML parsing.
Along with core APIs, this Java platform also comprises of a virtual machine, deployment technologies, development tools, class libraries, and other toolkits, commonly used in Java applications.
If you are a new user of Java technology, you must always use Java SE platform to begin with.
Java Enterprise Edition (Java EE)
If the software application needs a large scale and distributed system of components, you should use Java EE. Java EE contain libraries like JDBC, JPA for database access, RMI for remote method identification, JMS for messaging, and other libraries for XML processing, web services. Java EE defines standard APIs for Enterprise JavaBeans, portlets, servlets, JS pages etc.
Java Micro Edition (Java ME)
This Java platform helps development of applications for mobile devices as well as embedded systems. Java ME is a subset of Java SE functionality, and introduces libraries needed to design specific applications for mobile devices.
This platform helps developing rich web applications utilizing lightweight APIs. Applications developed on this platform use hardware accelerated graphics and media engines to support high-performance clients and implement a modern, user-friendly, and responsive design and high-level APIs.