Enterprise Edition (Java EE) 6 Overview 2940

Embed Size (px)

Citation preview

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    1/28

    Java Platform,Enterprise Edition (Java

    EE) 6 Overview

    Roberto Chinnici

    Sun Microsystems, Inc.

    2940

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    2/28

    2

    Agenda

    > Java EE Platform evolut ion

    > Theme and features

    > Components (JSRs)

    > Timeline> Get involved!

    > The Great Web Profile Poll

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    3/28

    3

    Ease of Developm ent Focus

    Major Revamp of Programming Model

    EJB 3.0 support for POJOs means less to

    learn, less to code and less to maintain

    New Java Persistence API makes object /

    relational mapping cleaner and easier

    New and updated W eb Services (JAX-W S 2.0

    and JAXB 2.0) simplifies SOA implem entationJavaServer Faces 1.2 facilitates building

    W eb 2.0 Applications with AJAX

    Annotations often eliminate the need for

    deployment descriptors

    Supported by NetBeans

    5.5 EnterprisePack

    Get the SDK:

    http://java.sun.com /javaee/downloads/

    Java EE 5

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    4/28

    4

    Java EE 5 Implementations

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    5/28

    5

    History of Enterprise Java

    May 1998 Dec 1999 Sept 2001 Nov 2003 March 20050

    0.5

    1

    1.5

    2

    2.5

    3

    3.5

    4

    4.5

    5

    JPEProject

    J2EE 1.2

    Servlet , JSP,EJB, JMSRMI/ IIOP

    J2EE 1.3CMP,

    ConnectorArchitecture

    J2EE 1.4Web Services,

    Management,Deployment,Async.

    Connector

    Java EE 5Ease ofDevelopmentAnnotationsEJB 3.0Persistence API

    New andUpdated

    Web Services

    Robustness

    WebServices

    EnterpriseJava

    Platform

    `

    Ease ofDevelopment

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    6/28

    6

    Theme for Java EE 6

    Rightsizing

    =Flexibility, Focus, Simplification

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    7/28

    7

    Rightsizing Explained

    > Enable flexibility at development and deployment

    > Make it possible to focus on specif ic classes ofapplications

    > Simplify by removing rarely used or superseded APIs

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    8/28

    8

    New Java EE 6 Features

    > Profiles

    > Pruning

    > Extensibility

    > More ease of development

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    9/28

    9

    Profiles

    > Rules defined by the Java EE Platform spec

    > Profiles can be

    proper subsets

    proper supersets overlapping (drop something, add something

    else)

    > Web Prof ile defined right away

    > Other prof iles fol low regular JCP process

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    10/28

    10

    Pruning

    > Make some components optional

    > Strong signal for all new development work

    > Same rules proposed by Java SE

    pruned now, optional in next release> Pruning candidates:

    JAX- RPC, EJB Entity Beans

    JAXR, JSR- 88

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    11/28

    11

    Extensibility

    > Embrace open source libraries and frameworks

    > Create a level playing field

    > Enable simple pluggabili ty of technologies

    > Script ing as a f irst- class cit izen

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    12/28

    12

    Ease of Development in the WebTier> Use of annotations across all web APIs

    > No edit ing of web.xml required

    > Self- registration of third- party libraries

    > Simplif ied packaging> JAX- RS for RESTful web services

    > Script ing support via extensibili ty

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    13/28

    13

    JAX- RS Sampleimport javax.ws.rs.*;

    import org.apache.abdera.model.*;

    @Path("activitylog")

    @ProduceMime("applicat ion/ atom+ xml")

    public class ActivityLog {@GET

    public Feed getFeed() {...}

    @GET @Path("{id}")

    public Entry getEntry(@PathParam("id") String id) {...}

    }

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    14/28

    14

    EJB 3.1

    > Singletons

    > Opt ional local interfaces

    > Simplif ied packaging in web apps

    > Applicat ion startup/ shutdown events> Calendar- based t imers

    > Global JNDI names

    > EJB Lite

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    15/28

    15

    EJB 3.1 Sample (1)@Startup

    @Singleton

    public class SingleBean {

    @PostConstruct

    public void onStartup() {... applicat ion ini t ialization code goes here ...

    }

    ... more methods to access shared data ...

    }

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    16/28

    16

    EJB 3.1 Sample (2)@Stateless

    publ ic class TimerBean {

    @Schedule(dayOfWeek= Sun)

    public void onSunday() {... periodically do some work ...

    }

    }

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    17/28

    17

    EJB 3.1 Sample (3)@Stateless

    publ ic class HelloWorldBean/ * no interface */ {

    publ ic String hello(String name) {

    return hello, + name;

    }}

    @EJBHelloWorldBean hello;

    hello.hello(David);

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    18/28

    18

    New JSRs in Java EE 6

    > EJB 3.1

    > JPA 2.0

    > Servlet 3.0

    > JSF 2.1> JAX- RS 1.0

    > WebBeans 1.0

    > Java Connector Archi tecture 1.6

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    19/28

    19

    More JSRs We Track

    > Bean Validation (JSR- 303)

    > Timer API (JSR- 236)

    > Work Manager API (JSR- 237)

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    20/28

    20

    Other Components

    > Java SE 6 underneath

    > Point updates:

    JAX- WS 2.2

    JSR- 109 1.3 JSP 2.2

    > Completed JSRs:

    JSR- 196

    JAXB 2.2

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    21/28

    21

    Timeline

    > June 2007 Expert group formed

    > Q3 2008 Public draft

    > Q4 2008 Proposed f inal draft

    > Q2 2009 Final release

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    22/28

    22

    Participate!

    > Early/ publ ic drafts available for many of the specs

    > Send feedback

    > Cont ribute to the GlassFish implementat ion

    > Use TP2, blog about it

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    23/28

    23

    GlassFish V3

    > Open source implementat ion of Java EE 6

    > Fully modular, extensible

    > OSGi R4 based

    > Small footpr int , fast startup> Mult ip le containers, including JRuby, Groovy

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    24/28

    24

    Web Profile Options (from my blog)

    > Aservlets, JSP, JSTL, EL, JSR- 45, JSR- 250

    > B = A +

    EJB Lite, JTA, JPA, JSF, WebBeans

    > C = Full Platform = B +

    JAX- RS, Connectors, JMS, JAF, JavaMail,

    JAX- WS, JAXB, JSR- 181, JSR- 109,

    JSR- 115, JSR- 196, JSR- 77,

    JAX- RPC*, JAXR*, JSR- 88*

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    25/28

    25

    Java.net Poll

    > 1. A small set of JSRs

    > 2. A larger set of JSRs wi thout JSR or WebBeans

    > 3. A larger set of JSRs with JSR and WebBeans

    > 4. I'm not interested in Java EE 6 prof iles

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    26/28

    26

    Java.net Poll (Results)

    > 1. A small set of JSRs

    > 2. A larger set of JSRs without JSR or

    WebBeans

    > 3. A larger set of JSRs with JSR and WebBeans

    > 4. I'm not interested in Java EE 6 prof iles

    17%

    11.9%

    46.7%

    24.2%

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    27/28

    27

    Q&A

  • 8/14/2019 Enterprise Edition (Java EE) 6 Overview 2940

    28/28

    Roberto Chinnicihttp:/ / weblogs.java.net/ blog/ robc/

    Sun Microsystems, Inc. [email protected]