With the J2EE component model(Java 2 Enterprise Edition), a platform for the development of enterprise-wide applications (Enterprise Application) was already introduced by Sun Microsystems in 2000. These applications can also be distributed applications in the broadest sense. In addition to the platform for the platform-independent execution of programs written in the Java programming language, J2EE integrates a collection of so-called component models. One of the best known component models is probably the Enterprise JavaBeans (EJB) model. The component models are based on the 4-tier architecture of the J2EE architecture.
The specification created by SUN Microsystems includes software components, services as well as interfaces, so that the products of different manufacturers are interoperable if the specification is observed. Sun provides a number of reference implementations that can be used to check the compatibility of your own applications with the J2EE standard. The J2EE component model is available for download at the link below. In addition to the Java Virtual Machine (JVM), a special J2EE application server such as BEA WebLogic is required. J2EE is the basis for the development of many enterprise applications and competes with Microsoft's .NET platform.
The J2EE platform supports the realization of so-called distributed applications - in this case the applications are distributed over several components, which are then largely independent of each other. In a sense, J2EE defines a framework for creating such distributed applications, which in turn are based on a component model. In this context, J2EE is also referred to as a 4-tier architecture - also known as a four-tier model.user interface, and an extensive set of so-called services. The J2EE specification defines the following services:
- JDBC Extension
- Remote Method Invocation (RMI) - IIOP
- Enterprise JavaBeans (EJB)
- Java Servlets
- Java Server Pages (JSP)
- Java Messaging Service (JMS)
- Java Naming and Directory Interface (JNDI)
- Java TransactionAPI (JTA)
- Java Mail
Brief overview of J2EE technologiesComponent Technologies Provide the business logic of an application, using JSP, servlets, and Enterprise JavaBeans (EJB) components. EJBs are divided into Session Beans, Entity Beans and Message Driven Beans.
Service technologies: Provide the components with additional services, such as JDBC, JTA, JNDI, and others.
Communication Technologies Control the communication between components and services. These include the Internet protocols such as HTTP or TCP/IP, SSL protocol; RemoteObject Protocols such as RMI- RMI-IIOP, JavaIDL; Java Messaging Service (JMS) and Java Mail. A central element of the J2EE platform are the containers, an equivalence of the J2EE environment to the Java Virtual Machine (JVM) of the Java Standard Edition (J2SE). Containers provide standardized runtime environments in the form of their own logical systems. These, in turn, then provide components with specific services such as the JDBC extension or component lifecycle management. The J2EE specification distinguishes the following types of containers:
- EJB containers, the runtime environment for Enterprise Java Beans (EJB),
- Web containers, the runtime environment for Java Server Pages (JSP) and for servlets
- JCA containers for integrating heterogeneous applications in the J2EE environment.
The component model of the J2EE implements many advantages equally from the view of manufacturers, developers as well as users:
Platform independence J2EE uses the Java platform and is therefore independent of the various system platforms.
Simplified architecture and development A component-based model of an application can be mapped more easily to any functionalities of an application. This also allows developers to work in parallel on the basis of a uniform standard.
Standardization and vendor independence Applications can be developed independently of a manufacturer by adhering to the J2EE specification. Each application can be ported to any J2EE-compatible application server with a minimum of customizing. This also provides the basis for developing stable and scalable applications that can also be maintained or reused.
Enterprise Application Integration J2EE defines the standard for the cooperation of all important information systems in a company - also called Enterprise Information Systems (EIS). Here are the standard services: JDBC, Java Naming and Directory Interface (JNDI), Java Mail, Java Transaction API (JTA), and Java IDL.
Scalability, load balancing and fault tolerance Applications can run on multiple servers in parallel - this requires cluster-capable application servers. By distributing the load across multiple servers, systems can scale within wide limits as well as respond better to fluctuations in load requirements.
The execution of J2EE components always requires the use of the application server already mentioned. A whole range of servers and providers - some commercial and some open source - are available for this purpose. This means that a wide range of applications, from client-server to e-commerce applications, can be covered. However, not all application servers fully comply with the J2EE specification. Therefore there is a list of certified servers from Sun Microsystems. Here is a brief listing of certified J2EE application servers:
- Commercial servers: BeaWebLogic, SAP NetWeaver Application Server, IBM Web-Sphere Application Server, Oracle Application Server.
- Open Source Servers: Glashfish, JBoss, Apache Geronimo.