Advanced Java programming

Advanced Java programming is basically related with Java Enterprise Edition or Java EE or JEE, which is a widely used platform for server programming in the Java programming language. The Java Enterprise Edition platform differs from the Java Standard Edition Platform (Java SE) in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.

The platform was previously known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java EE in version 5. The previous version is called J2EE 1.4. Java EE is defined by its specification. The current version is called Java EE 8. As with other Java Community Process specifications, Java EE is also considered informally to be a standard since providers must agree to certain conformance requirements in order to declare their products as Java EE compliant; albeit with no ISO or ECMA standard.

JEE includes several API specifications, such as JDBC, RMI, E-Mail, JMS, Web Services, XML, etc. and defines how to coordinate them. JEE also features some specifications unique to JEE for components. These include Enterprise JavaBeans (EJB), Servlets, Portlets (following the Java Portlet specification), JavaServer Pages (JSP) and several Web Service technologies. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. A JEE application server can handle transactions, security, scalability, concurrency and management of the components that are deployed to it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks.

 

General APIs

The Java EE APIs includes several technologies that extend the functionality of the base Java SE APIs.

javax.ejb

The Enterprise JavaBean’s 1st and 2nd API defines a set of APIs that a distributed object container will support in order to provide persistence, remote procedure calls (using RMI or RMI-IIOP), concurrency control, and access control for distributed objects. This package contains the Enterprise JavaBeans classes and interfaces that define the contracts between the enterprise bean and its clients and between the enterprise bean and the EJB container.

javax.transaction

These packages define the Java Transaction API (JTA).

javax.xml.stream

This package contains readers and writers for XML streams.

javax.jms

This package defines the Java Message Service (JMS) API. The JMS API provides a common way for Java programs to create, send, receive and read an enterprise messaging system’s messages.

javax.faces.component.html

This package defines the JavaServer Faces (JSF) API. JSF is a technology for constructing user interfaces out of components.

javax.persistence

This package contains the classes and interfaces that define the contracts between a persistence provider and the managed classes and the clients of the Java Persistence API.