J2EE™, Java™ 2 Enterprise Edition, is currently marketed as the only alternative to Microsofts .NET technology series.

The enterprise system market is the next battlefield, and the giants are aiming for each other's throats. In one corner we have Microsoft with its proprietary .NET technology, which is controlled by Microsoft and heavily dependent on other Microsoft products and technologies. In the other corner we find IBM and Sun, foremost, backed by hundreds of other software companies, with their Java based J2EE. It is important to understand the reasons behind these factions, when listening to the different arguments. It is not necessarily so that one or the other is superior to the other. Microsoft sells operating systems, application software and development tools. IBM sells services, hardware and application server software, Sun sells hardware and operating systems. Because of this, Microsoft is more interested in closed source solutions, IBM is more interested complicated multi-tier solutions and Sun is more interested in networked non-Linux, non-Windows solutions.

As mentioned in previous writeups, J2EE is a framework for multi tier enterprise applications written in Java. J2EE itself is only a specification, defining the behavior of an application server supporting it. It comes with a wide variety of protocols and standards that are supposed to cover all aspects needed for creating large scale mission critical applications.

It is important to understand the complexity involved in writing transactional, distributed, robust, secure and manageable applications for an enterprise system. The amount of developers can usually be counted in the hundreds and the users in thousands, and this requires a completely different level of awareness than writing and deploying a single stand-alone application. It also requires a large set of well-defined interfaces between components in the software architecture.

The J2EE application model has three main tiers: the client tier, the middle tier and the EIS tier, where EIS is "Enterprise Information System(s)". The layers can only communicate with each other using one of the defined protocols, and also within each layers, different containers are only accessible through its APIs. The client tier contain clients running browsers or stand-alone Java applications. These communicate with the services provided by the Web container, or sometimes directly with the EJB container. The Web container runs all Servlets, JSP pages, XML parsing and creates the HTML for the clients. The EJB container tracks the client session and controls the user access to the EIS tier. The middle tier also has containers for JMS, JavaMail and other services. The EIS tier contains connectors to the back end data system.

                            |                                   |
                            |                                   |
                            |            EJB container          |
     Clients                |                                   |               RDBMS, ERP
                            |            Web container          |               Legacy system
                            |                                   |
                            |            JMS                    |
                            |                                   |
                            |                                   |
                            |                                   |
     Client tier                         Middle tier                            EIS tier

The following standards and technologies are included in the 1.3 version of the J2EE specification:

 

Reference: java.sun.com