You are on page 1of 7

The J2EE platform provides access to a host of enterprise services using well-defined and standard

Java Enterprise APIs that are listed below.

• Enterprise JavaBeans (EJB)


• extensible Markup Language (XML)
• Servlets
• Java Server Pages (JSP)
• Java Messaging Service (JMS)
• Java Database Connectivity (JDBC)
• Struts
• Hibernate
• JSF
• JavaMail
• JavaIDL
• Java Naming and Directory Interface (JNDI)
• Java RMI/IIOP
• Java Transaction Services (JTS) and Java Transaction API (JTA)

Servers:

• Websphere
• Weblogic
• JBoss
• Geronimo
• Tomcat
• Oracle
• Sun

IDEs

• Eclipse
• RAD
• WSAD
• JDeveloper
• NetBeans

Advantages:

Everything is standardized. There are well-documented APIs you can implement over legacy systems,
WebSphere, Weblogic, JBoss, whatever. If you have J2EE application servers, it's no problem. In
general, J2EE gives you a lot of flexibility. Once you've developed your app, you can deploy it wherever
you need to. All you need to do is change the deployment descriptors. Also, the open source community
has tons of really cool, free, well-documented tools.

J2EE is platform independent. So It can work in any os like windows, linux, mac, etc..

Running j2ee applications is simple.. It just need a server which support j2ee standard
jsp,servlets,taglibs,etc like tomcat, jboss, websphere..
It is easy to maintain and modify..
Localisation is supported.. We can define variables instead of text.. So it is easy to
develop for different languages(english, french, german, chinese, etc).

It is Open Source.

Even the IDE(Integrated Development Environment) like Eclipse, Netbeans, are free.
Application servers are also free like Tomcat, jboss,etc.. Databases like Mysql,
PostgreSQL which are commonly used in J2ee are free too.. So the development cost is
cheap.. Just need pc and a programmer..

It can be classified in to different stages and levels of developments.. So the developer


and designer roles can be clearly separated.

Simplified connectivity. J2EE technology makes it easier to connect the applications and systems you already
have and bring those capabilities to the web, to cell phones, and to devices. J2EE offers Java Message Service
for integrating diverse applications in a loosely coupled, asynchronous way. The J2EE platform also offers
CORBA support for tightly linking systems through remote method calls. In addition, the J2EE platform has J2EE
Connectors for linking to enterprise information systems such as ERP systems, packaged financial applications,
and CRM applications.

Faster solutions delivery time to market. The J2EE platform uses "containers" to simplify development. J2EE
containers provide for the separation of business logic from resource and lifecycle management, which means
that developers can focus on writing business logic -- their value add -- rather than writing enterprise
infrastructure. For example, the Enterprise JavaBeans (EJB) container (implemented by J2EE technology
vendors) handles distributed communication, threading, scaling, transaction management, etc. Similarly, Java
Servlets simplify web development by providing infrastructure for component, communication, and session
management in a web container that is integrated with a web server.

• Freedom of choice. J2EE technology is a set of standards that many vendors can implement. The
vendors are free to compete on implementations but not on standards or APIs. Sun supplies a
comprehensive J2EE Compatibility Test Suite (CTS) to J2EE licensees. The J2EE CTS helps ensure
compatibility among the application vendors which helps ensure portability for the applications and
components written for the J2EE platform. The J2EE platform brings Write Once, Run Anywhere (WORA)
to the server.

Disadvantages:

It's complicated, and the architecture allows you to shoot yourself in the foot. For example, it's a well-
known best practice never to put business logic in an interface, but the architecture lets you do that. So
programmers can put database calls in JSP [JavaServer Pages, the Java user interface for the Web] if it
seems like a good idea at the moment. Later, when there's a change in the DB, you end up having to
change 50 JSPs.
Figure-1 J2EE Application Model

As you can see from the Figure-1, there are four tiers in J2EE application model:
client tier, web tier, business tier and enterprise information system (EIS) tier.
Business and web tiers are generally existed in a server application called application
server or J2EE server. Application server provides complex services needed by
components in business and web tiers.
Figure-2 Interaction between client, web and business tiers in J2EE

Client tier can have two types of components: web client or application client. Web
clients access the components in the web tier namely servlets or java server pages
(jsp). Web browsers as a web client are generally used to access web tier
components.

Application clients are standalone applications that do not run in browsers (e.g.
swing application). They directly accesses to the components in the business tier.
Figure-3 Business and EIS tiers

Figure-3 shows Business and EIS tiers in detail. EIS tier contains database and
legacy systems and can be accessed from the business tier.

There are three types of components in business tier: entity beans, session beans
and message-driven beans. We will discuss them separately in detailed subsequent
tutorials.

Another important concept in J2EE architecture is the “container” concept. An


enterprise application needs to implement very complex services to be successful.
Some of those services are transaction and state management, resource pooling and
multi-threading. J2EE architecture separates those low level services from the
application logic by implementing those services in containers. So, web containers
are mainly used to provide low level services to web components (e.g. servlet) or
EJBs (e.g. entity beans) Containers are also used to manage execution of the
components in business tier. Figure-4 may demystify this idea more.
Figure-4 J2EE Application Server and Containers

J2EE APIs and Technologies


There are several APIs and technologies which make J2EE a working platform. These
APIs and technologies are described below briefly:

1. Java Database Connectivity (JDBC) API: JDBC is a set of interfaces which


allows Java applications access to any database. This API has the same purpose as
Microsoft’s ODBC.

2. Remote Method Invocation (RMI): RMI is an API which allows Java objects to
communicate remotely with other objects. This API has the same purpose of CORBA
from OMG.

3. Java IDL: IDL is a standard platform-independent declarative language which is


used to define interfaces that object implementations provide and client objects call.
Java IDL allows any Java object to communicate with other objects in any language
by means of IDL.

4. Enterprise Java Beans: EJB is a standard distributed object framework and


component model to Java. Enterprise Java Beans are components used in business
tier of J2EE. The details and types of EJBs will be discussed in subsequent tutorials.

5. Servlets and Java Server Pages (JSP): Servlets are Java programs running on
a web server and that produces results viewed remotely on a web server. Servlets
and JSPs have the same purpose that CGI or PHP had in the past.
6. Java Message Service (JMS): JMS API is a messaging standard that allows J2EE
components to create, send, receive, and read messages. It enables distributed
communication between components.

7. Java Transaction API (JTA): JTA allows J2EE components to perform


distributed transactions. Distributed transaction processing is a complex topic which
is out of scope of this tutorial.

8. JavaMail: JavaMail API allows Java components send and receive emails in a
platform-independent way.

9. Java API for XML Processing (JAXP): Extensive Markup Language (XML) is a
data format for interchanging structured documents on the Web. JAXP allows Java
applications to parse and transform XML documents. XML is heavily used in J2EE as a
data format.

Hibernate is an object-relational mapping (ORM) library for the Java language, providing a
framework for mapping an object-oriented domain model to a traditional relational database. ...

Apache Struts is an open-source web application framework for developing Java EE web
applications. It uses and extends the Java Servlet API to encourage developers to adopt a model-
view-controller (MVC) architecture. ...

You might also like