Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.Gonçalves, “Beginning Java EE6 Platform with Glassfish 3”, Apress (2009) The Java EE 6 Tutorial, Volume I