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