S Gokul
J2EE as an application programming model
As indicated earlier, J2EE is not just a bundle of technologies — it is also a
basic middleware infrastructure upon which scalable enterprise applications can
be built. In other words, we can say that J2EE comes with a set of architectural
recommendations, which, when implemented, result in a flexible and distributed
enterprise wide e-commerce network application.
Now, what are all these recommendations ?
From a bird’s eye view, let us look at the entire multi-tier e-business
infrastructure, as proposed by J2EE.
Client tier: The client tier consists of varieties of clients —
Internet based clients (e-commerce users), Intranet clients (in-house
departmental users), desktop applications (for various departmental/business
usage) and even non-computer based clients like WAP phones. As the scope of
business spreads across other communication media, any type of client that can
get connected to the network will be able to utilize the e-business services.
Presentation logic tier: The tier houses modules that are
specifically aimed at presenting the business information to the user. These
include servlets, JSPs and HTML/WML pages that might deliver the processed
business data to the client. Taking a closer look at this tier, we can identify
that the HTTP Web servers — that are used to deliver static HTML pages to the
clients - very much fall within this tier. The purpose behind having a separate
tier for Presentation Logic is to ensure that the business logic is not affected
by the changes made to presentation logic and vice versa. This also gives room
for presentation logic developers (like HTML/GUI designers) to work independent
of Business logic developers (programmers).
J2EE infrastructure as the underlying architecture for enterprise eBusiness
and applications.
Business logic tier: By business logic, we mean the core business
mechanisms that are applied on the raw data to produce the desired results. In
J2EE, business logic is usually encapsulated in Enterprise Javabeans (EJBs)
components. There are several types of EJBs like Session beans, Entity beans and
Message beans that can satisfactorily accommodate any business situation. Since
EJBs are independent business components, they can be reused again and again by
customizing certain parameters. For example, the whole enterprise can end up
with a single Login EJB, with multiple implementations for different business
users. EJBs are scalable, load-balanced and distributed. Thus, the EJBs you need
for an application can even be scattered across the globe!
Backend EIS tier: An enterprise backend usually consists of a
heterogeneous mix of legacy systems, database Servers, ERP implementations and
so on…and these resources may even be scattered across the globe! J2EE
provides a whole bunch of technologies that help us connect the middleware
infrastructure to backend applications. Database servers can be connected
through JDBC API, and legacy systems and mainframes can make use of MOM
(messages oriented middleware) services. The J2EE connector architecture — to
be released shortly — is expected to standardize the fundamental interfaces
that will eventually connect the middleware with the backend systems.
Click here to view image.
J2EE: The standard for building Web Application Servers
J2EE is just a reference platform. Enterprises need actual implementations of
this platform — in the form of servers — to implement J2EE infrastructure in
their environments. These servers are typically called Application Servers or
Web Application Servers — to distinguish them from the HTTP Web Servers that
are meant for static HTML delivery.
These application servers provide the necessary middleware infrastructure
that can be implemented in one or more servers — so that the enterprise
applications can be built/ported over to this platform. Many application servers
even come with development environments (called IDEs) that can be used to
develop applications for the middleware infrastructure — easily.
Most of the Web Application Servers come bundled with their own HTTP Web
servers, apart from extending support to all other leading Web servers in the
market like NES and IIS. Thus, middleware can be easily implemented without
disturbing the Web servers that are already serving the production environment.
Almost all Application Servers either fully implement or at least fully
support the J2EE platform. Some of the top-notch products in this category like
BEA’s Web Logic, IBM’s Web Sphere, Allaire’s Jrun and Sun-Netscape’s i-Planet
are all based on J2EE.
Sun has certified roughly 25 Application Server companies to be J2EE
compliant and the list is growing further. Enterprises can evaluate various
features from these products - that are specific to their environment/business -
and zero in upon the server that seems to suit most.
J2EE as a combination of various server side technologies
The strength of J2EE lies with the fact that it is not an independent technology
of its own but a wealthy combination of proven server side technologies in Java.
The components that make up the J2EE bundle include:
- Java servlets
- Java Server Pages (JSP)
- Enterprise Javabeans (EJBs)
- Java Database Connectivity (JDBC)
- Java Messaging Services (JMS)
- Java Naming and Directory Services (JNDI)
- Java Transaction Services (JTS)
- JavaMail
- XML