You are on page 1of 20

A Brief Introduction to Java

Enterprise Edition Platform


(JEE)
Juan Manuel Gimeno
Josep Maria Rib
{jmgimeno,josepma}@diei.udl.cat

Title:(by-sa.eps)
Creator:Adobe Illustrator(R)
CreationDate:3/27/08 4:27 P

What do we mean by Platform?

When a programmer has to handle collections

Doesn't start by developing a hash table


Uses the Collections API in the Standard Edition of
Java (JSE)

When a programmer needs a transactional,


secure, interoperable, distributed application

Doesn't start by developing the low-level plumbing

Uses the Enterprise Edition of Java (JEE)

Focuses the efforts in the problem not in the lowlevel details

A little bit of history

JEE was born in May 1998 as Project JPE


(Java Professional Edition)
J2EE1.2 was released in Dec 1999 as an
umbrella specification consisting on 10 JSRs
(Java Specification Request)
Starting with J2EE1.3 the specification was
developed by the Java Community Process
(JCP)

J2EE1.2

Focus on distributed systems

CORBA was the competitor

Enterprise Java Beans (EJBs)

Remote stateful and stateless service objects

Entity EJBs (persistence objects) optional

Built on Remote Method Invocation-Internet Inter


ORB Protocol (RMI-IIOP)

Servlets and Java Server Pages (JSP)

JMS for messaging

J2EE1.3

First to be developed by the Java Community


Process (JCP) under JSR58

Entity beans now are mandatory

XML deployment descriptors for EJBs

Introduced local interfaces passing arguments


by reference
J2EE Connector Architecture (JCA) introduced
to connect Java EE to EIS (Enterprise
Information Systems)

J2EE1.4

JSR 151
Added support for Web Services as EJB2.1
could be invoked over SOAP/HTTP

Timer service created

Better support for

Management

Deployment

But there were problems ...

Systems created with J2EE

Too complicated

Development time out of proportion

J2EE component model

Heavy-weight

Difficult to test

Difficult to deploy

Difficult to run

and alternatives

A new way og developing enterprise


applications using lightweight frameworks

Struts

Spring

Hibernate

Java EE 5

JSR 244

Inspired in open source frameworks

Based on a POJO (Plain Old Java Object)


programming model

Metadata can be defined by annotations and


XML descriptors optional
Java Server Faces (JSF) introduced
JAX-WS 2.0 replaced JAX-RPC as the SOAP
web services API.

Java EE 6

JSR 316
Annotations, POJO programming,
configuration-by-exception (even for web tier)

JPA 2.0

New JAX-RS 1.1 (RESTfull web services)

Deprecation of some APIs (by prunning)

Profiles: web profile

Dependency injection

History of the Specification

Java Community Process (JCP)

Open organization created in 1998 involved in


the definition of the future versions and features
When the need for a new component or API is
identified, the spec lead creates a JSR and
forms a group of experts
This group has to deliver

A specification

A reference implementation (RI)

A Technology Compatibility Kit (TCK).

Standards

Java EE is an umbrella specification that


bundles together other JSRs
Java EE standards implemented by

Commercial () or open-source solutions

No locking to an implementation

Portable with minor changes

Architecture

Java EE is a set of specifications implemented


by diferent containers
Containers are runtime environments that
provide certain services to the components
they host
The components use well-defined contracts to
communicate

with the Java EE infrastructure

With other components

Relationships between containers

Components

The java EE runtime defines four types of


components that an implementation must
support

Application clients and applets are components that


run on the client
Java Servlets, JSP and JSF are components that
run on the server (web container)
Enterprise Java Beans EJB are business
components that run on the server (ejb container)

Containers

The Java EE Server provides underlying


services in the form of a container for every
component type
Each container has a specific role, supports a
set of APIs and offer services to components

Security, database access, transaction handling,


naming directory, resource injection,

Because all these services are provided, the


programmer can concentrate on the business
problem at hand

Clients and servers

Services provided by containers

Bibliography

A.Gonalves, Beginning Java EE6 Platform


with Glassfish 3, Apress (2009)
The Java EE 6 Tutorial, Volume I

You might also like