<Insert Picture Here>




                       Java EE : The Evolution of a Platform
                       Arun Gupta, Java EE & GlassFish Guy
                       blogs.oracle.com/arungupta, @arungupta

Friday, May 13, 2011
The following is intended to outline our general product
                       direction. It is intended for information purposes only,
                       and may not be incorporated into any contract. It is
                       not a commitment to deliver any material, code, or
                       functionality, and should not be relied upon in making
                       purchasing decisions.
                       The development, release, and timing of any features
                       or functionality described for Oracle’s products remains
                       at the sole discretion of Oracle.


                                                                                  2

Friday, May 13, 2011
Java EE 6 Platform
                       December 10, 2009



                                        3

Friday, May 13, 2011
The Core Programming Model Explained

                                     Web Container                                  JSP 2.2
                                      Extensions     JAX-RS 1.1      JSF 2.0       JSTL 1.2
                           CDI
                        Extensions
                                                         Servlet 3.0 / EL 2.2
                                                                                                Bean
                                DI 1.0 / CDI 1.0 / Interceptors 1.1 / JSR 250 1.1             Validation
                                                                                                  1.0


                             Managed Beans 1.0                           EJB 3.1

                                                     JPA 2.0 / JTA 1.1



                                                                                                      4

Friday, May 13, 2011
Top 10 Favorite Features in Java EE 6

                        10. Web Profile
                        09. EJB no interface view
                        08. EJB Timer Service
                        07. EJBContainer API
                        06. JSF standardizing on facelets
                        05. CDI events
                        04. CDI injection (with no Strings involved)
                        03. Optional web.xml
                        02. Servlet and CDI extension points
                        01. EJB packaging in WAR

                                                                       5

Friday, May 13, 2011
Java EE 6 Sample Application



                                            PrimeFaces

                       Browser            JSF            EJB/CDI         JPA


                                                                               Database

                                                          REST           JPA
                                                          Client



                                                             Jersey Client
                                                                 API




                                                                                          6

Friday, May 13, 2011
Sample tweet :-)




                       #Javaone is the best Java conference
                       in the world. #Oracle rocks!



                                                          7

Friday, May 13, 2011
Future<Java_EE>
                        <Insert Picture Here>




                                                8
Friday, May 13, 2011
Java EE for the Cloud


                       •   Tighter requirements for resource and state management
                       •   Better isolation between applications
                       •   Potential standard APIs for NRDBMS, caching, other
                       •   Common management and monitoring interfaces
                       •   Better packaging
                       •   Evolution, not revolution




                                                                                    9

Friday, May 13, 2011
Cloud Platform



                                               Application


                              Java      Persistence    Queueing
                                                                  …
                             Service      Service       Service

                                           State Management

                                           Virtualization Layer



                                                                      10

Friday, May 13, 2011
Cloud Platform


                                                     Application
                             Code   Code   Code                                      QoS
                                                 Schema   Migration   Security                     …
                            Module Module Module                                 Information


                               Java         Persistence          Queueing
                                                                                               …
                              Service         Service             Service

                                                State Management

                                                Virtualization Layer



                                                                                                       11

Friday, May 13, 2011
Cloud Platform



                            Application   Application   Application


                               Java          Persistence        Queueing
                                                                           …
                              Service          Service           Service

                                                 State Management

                                                 Virtualization Layer



                                                                               12

Friday, May 13, 2011
Cloud Platform



                            Application   Application   Application   Application   Application


                               Java          Persistence        Queueing
                                                                                      …
                              Service          Service           Service

                                                 State Management

                                                 Virtualization Layer



                                                                                                  13

Friday, May 13, 2011
Cloud Platform

                                               Managed Environment

                            Application   Application   Application   Application   Application


                               Java          Persistence        Queueing
                                                                                      …
                              Service          Service           Service

                                                 State Management

                                                 Virtualization Layer



                                                                                                  14

Friday, May 13, 2011
Modularity


                       •   Build on Java SE 8 work
                       •   Applications made of modules
                       •   Dependencies are explicit
                       •   Versioning is built-in
                       •   Classloaders straightened out




                                                           15

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                            j1demo-web-1.0.3




                                               16

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                           twitter-client-2.3.0
                            j1demo-web-1.0.3   requires

                                                          j1demo-persist-1.4.0




                                                                                  17

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                twitter-client-2.3.0
                            j1demo-web-1.0.3
                                               j1demo-persist-1.4.0
                              requires




                             javaee-web-7.0




                                                                       18

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                twitter-client-2.3.0
                            j1demo-web-1.0.3
                                               j1demo-persist-1.4.0     requires


                                                  requires




                             javaee-web-7.0           jpa-2.1          jax-rs-2.0




                                                                                    19

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                 twitter-client-2.3.0
                             j1demo-web-1.0.3
                                                j1demo-persist-1.4.0




                              javaee-web-7.0           jpa-2.1          jax-rs-2.0

                             implements


                         gf-appserver-4.0.1

                                  …
                                  …
                                   ……

                                                                                     20

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                 twitter-client-2.3.0
                             j1demo-web-1.0.3
                                                j1demo-persist-1.4.0




                              javaee-web-7.0           jpa-2.1          jax-rs-2.0

                                                implements


                         gf-appserver-4.0.1                             implements
                                                  eclipselink-2.1.3
                                …
                                …
                                 ……                 jersey-2.0.5

                                                                                     21

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                 twitter-client-2.4.0    jax-rs-2.1
                             j1demo-web-1.0.3
                                                j1demo-persist-1.4.0    jersey-2.1.1




                              javaee-web-7.0           jpa-2.1




                         gf-appserver-4.0.1
                                                  eclipselink-2.1.3
                                …
                                …
                                 ……                 jersey-2.0.5

                                                                                       22

Friday, May 13, 2011
Modular Applications

                         j1demo.app
                                                 twitter-client-2.4.0         jax-rs-2.1
                             j1demo-web-1.0.3
                                                j1demo-persist-1.4.0         jersey-2.1.1




                              javaee-web-7.0           jpa-2.1          jax-rs-2.1




                         gf-appserver-4.1.5
                                                  eclipselink-2.1.3
                                …
                                …
                                 ……                 jersey-2.1.5

                                                                                            23

Friday, May 13, 2011
Java EE 7 Content (so far)

                       • Filed and voted !                                 • Other
                         –   Java EE 7 (JSR 342)                                – JCache revived (JSR 107)
                         –   JPA 2.1 (JSR 338)                                  – Concurrency Utilities (236)
                         –   JAX-RS 2.0 (JSR 339)                               – MRs: JSR250, JAX-WS 2.3,
                         –   Servlet 3.1 (JSR 340)                                JTA 1.2, JSP 2.3, connectors
                         –   JSF 2.2 (JSR 344)                             • Yet to be filed
                         –   EL 3.0 (JSR 341)                                   – Bean Validation 1.1
                         –   JMS 2.0 (JSR 343)                                  – JSR-330 1.1
                         –   EJB 3.2 (JSR 345)                                  – JSON 1.0
                         –   CDI 1.1 (JSR 346)


                                      All Oracle-led JSRs as open projects on java.net
                                      Publicly viewable, archived expert group mailing list. JIRA, wiki, ...
                                      Ex: http://jpa-spec.java.net
                                                                                                                 24

Friday, May 13, 2011
Java EE 7 - When?


                       • Late 2012
                       • Date-driven release
                         – (anything not ready will be deferred to Java EE 8)

                       • Participate !
                         – Expert Groups still forming, consider joining
                         – JCP membership free for individuals




                                                                                25

Friday, May 13, 2011
Java EE 6 Platform

                            Available Today

                       http://www.oracle.com/javaee


                                                 26

Friday, May 13, 2011

Java EE Technical Keynote - JavaOne India 2011

  • 1.
    <Insert Picture Here> Java EE : The Evolution of a Platform Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta Friday, May 13, 2011
  • 2.
    The following isintended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2 Friday, May 13, 2011
  • 3.
    Java EE 6Platform December 10, 2009 3 Friday, May 13, 2011
  • 4.
    The Core ProgrammingModel Explained Web Container JSP 2.2 Extensions JAX-RS 1.1 JSF 2.0 JSTL 1.2 CDI Extensions Servlet 3.0 / EL 2.2 Bean DI 1.0 / CDI 1.0 / Interceptors 1.1 / JSR 250 1.1 Validation 1.0 Managed Beans 1.0 EJB 3.1 JPA 2.0 / JTA 1.1 4 Friday, May 13, 2011
  • 5.
    Top 10 FavoriteFeatures in Java EE 6 10. Web Profile 09. EJB no interface view 08. EJB Timer Service 07. EJBContainer API 06. JSF standardizing on facelets 05. CDI events 04. CDI injection (with no Strings involved) 03. Optional web.xml 02. Servlet and CDI extension points 01. EJB packaging in WAR 5 Friday, May 13, 2011
  • 6.
    Java EE 6Sample Application PrimeFaces Browser JSF EJB/CDI JPA Database REST JPA Client Jersey Client API 6 Friday, May 13, 2011
  • 7.
    Sample tweet :-) #Javaone is the best Java conference in the world. #Oracle rocks! 7 Friday, May 13, 2011
  • 8.
    Future<Java_EE> <Insert Picture Here> 8 Friday, May 13, 2011
  • 9.
    Java EE forthe Cloud • Tighter requirements for resource and state management • Better isolation between applications • Potential standard APIs for NRDBMS, caching, other • Common management and monitoring interfaces • Better packaging • Evolution, not revolution 9 Friday, May 13, 2011
  • 10.
    Cloud Platform Application Java Persistence Queueing … Service Service Service State Management Virtualization Layer 10 Friday, May 13, 2011
  • 11.
    Cloud Platform Application Code Code Code QoS Schema Migration Security … Module Module Module Information Java Persistence Queueing … Service Service Service State Management Virtualization Layer 11 Friday, May 13, 2011
  • 12.
    Cloud Platform Application Application Application Java Persistence Queueing … Service Service Service State Management Virtualization Layer 12 Friday, May 13, 2011
  • 13.
    Cloud Platform Application Application Application Application Application Java Persistence Queueing … Service Service Service State Management Virtualization Layer 13 Friday, May 13, 2011
  • 14.
    Cloud Platform Managed Environment Application Application Application Application Application Java Persistence Queueing … Service Service Service State Management Virtualization Layer 14 Friday, May 13, 2011
  • 15.
    Modularity • Build on Java SE 8 work • Applications made of modules • Dependencies are explicit • Versioning is built-in • Classloaders straightened out 15 Friday, May 13, 2011
  • 16.
    Modular Applications j1demo.app j1demo-web-1.0.3 16 Friday, May 13, 2011
  • 17.
    Modular Applications j1demo.app twitter-client-2.3.0 j1demo-web-1.0.3 requires j1demo-persist-1.4.0 17 Friday, May 13, 2011
  • 18.
    Modular Applications j1demo.app twitter-client-2.3.0 j1demo-web-1.0.3 j1demo-persist-1.4.0 requires javaee-web-7.0 18 Friday, May 13, 2011
  • 19.
    Modular Applications j1demo.app twitter-client-2.3.0 j1demo-web-1.0.3 j1demo-persist-1.4.0 requires requires javaee-web-7.0 jpa-2.1 jax-rs-2.0 19 Friday, May 13, 2011
  • 20.
    Modular Applications j1demo.app twitter-client-2.3.0 j1demo-web-1.0.3 j1demo-persist-1.4.0 javaee-web-7.0 jpa-2.1 jax-rs-2.0 implements gf-appserver-4.0.1 … … …… 20 Friday, May 13, 2011
  • 21.
    Modular Applications j1demo.app twitter-client-2.3.0 j1demo-web-1.0.3 j1demo-persist-1.4.0 javaee-web-7.0 jpa-2.1 jax-rs-2.0 implements gf-appserver-4.0.1 implements eclipselink-2.1.3 … … …… jersey-2.0.5 21 Friday, May 13, 2011
  • 22.
    Modular Applications j1demo.app twitter-client-2.4.0 jax-rs-2.1 j1demo-web-1.0.3 j1demo-persist-1.4.0 jersey-2.1.1 javaee-web-7.0 jpa-2.1 gf-appserver-4.0.1 eclipselink-2.1.3 … … …… jersey-2.0.5 22 Friday, May 13, 2011
  • 23.
    Modular Applications j1demo.app twitter-client-2.4.0 jax-rs-2.1 j1demo-web-1.0.3 j1demo-persist-1.4.0 jersey-2.1.1 javaee-web-7.0 jpa-2.1 jax-rs-2.1 gf-appserver-4.1.5 eclipselink-2.1.3 … … …… jersey-2.1.5 23 Friday, May 13, 2011
  • 24.
    Java EE 7Content (so far) • Filed and voted ! • Other – Java EE 7 (JSR 342) – JCache revived (JSR 107) – JPA 2.1 (JSR 338) – Concurrency Utilities (236) – JAX-RS 2.0 (JSR 339) – MRs: JSR250, JAX-WS 2.3, – Servlet 3.1 (JSR 340) JTA 1.2, JSP 2.3, connectors – JSF 2.2 (JSR 344) • Yet to be filed – EL 3.0 (JSR 341) – Bean Validation 1.1 – JMS 2.0 (JSR 343) – JSR-330 1.1 – EJB 3.2 (JSR 345) – JSON 1.0 – CDI 1.1 (JSR 346) All Oracle-led JSRs as open projects on java.net Publicly viewable, archived expert group mailing list. JIRA, wiki, ... Ex: http://jpa-spec.java.net 24 Friday, May 13, 2011
  • 25.
    Java EE 7- When? • Late 2012 • Date-driven release – (anything not ready will be deferred to Java EE 8) • Participate ! – Expert Groups still forming, consider joining – JCP membership free for individuals 25 Friday, May 13, 2011
  • 26.
    Java EE 6Platform Available Today http://www.oracle.com/javaee 26 Friday, May 13, 2011