Professional Documents
Culture Documents
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..
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.
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.
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.
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. ...