Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
A Brief Introduction to Java Enterprise Edition Platform
(JEE)
Juan Manuel GimenoJosep Maria Ribó
{jmgimeno,josepma}@diei.udl.cat
Title:(by-sa.eps) Creator:Adobe Illustrator(R) 8.0 CreationDate:3/27/08 4:27 PM
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 low-
level 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.Gonçalves, “Beginning Java EE6 Platform with Glassfish 3”, Apress (2009)
● The Java EE 6 Tutorial, Volume I