SlideShare a Scribd company logo
Main sponsor




The	
  Java	
  EE	
  7	
  Pla,orm:	
  Developing	
  for	
  the	
  Cloud	
  
Arun	
  Gupta,	
  Java	
  EE	
  &	
  GlassFish	
  Guy	
  
blogs.oracle.com/arungupta,	
  @arungupta	
  
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   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 6 Platform
                                                                           December 10, 2009


3   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 6 – Key Statistics

    •  40+ Million Java EE 6 Component Downloads
    •  #1 Choice for Enterprise Developers
    •  #1 Application Development Platform
    •  Fastest implementation of a Java EE release




4   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Top Ten Features in Java EE 6
    1.  EJB packaging in a WAR
    2.  Servlet and CDI extension points
    3.  Optional web.xml!
    4.  Type-safe dependency injection
    5.  CDI Events
    6.  JSF standardizing on Facelets
    7.  EJBContainer API
    8.  @Schedule!
    9.  EJB No Interface View
    10. Web Profile
5   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Today’s Cloud Offerings are all Proprietary


    Infrastructure as                                                      Platform as   Software as
        a Service                                                           a Service     a Service




6   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7




7   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 and 8 – Focus Areas

                 Cloud                                                              Modularity                   HTML5
•  Provisioning                                                                •  Building on Jigsaw      •  Emerging Web
                                                                                                             Standards require a
•  Elastic & Autonomic                                                         •  Focus on OSGi interop      programming model
   Scalability
                                                                               •  Supporting Profiles &   •  JSON, WebSockets,
•  Multi-Tenancy                                                                  Modular Applications       off-line, APIs & DOM




    8   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Focus: Platform as a Service

    •  Next logical step for Java EE
          –  J2EE à Java EE 6 : The Java EE Platform provides services
          –  Java EE 7 : The Java EE Platform IS a service

    •  PaaS support entails evolutionary change

    •  Basic form of SaaS

    •  Provide way for customers and users to leverage public,
       private, and hybrid clouds
9   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 PaaS Roadmap
     •  Define new platform roles to accommodate PaaS model
     •  Add metadata
           –  For service provisioning and configuration
           –  For QoS, elasticity
           –  For sharing of applications and resources
           –  For (re)configurability and customization
     •  Add useful APIs for cloud environment
           –  JAX-RS client API, Caching API, State Management, JSON,…
     •  Extend existing APIs with support for multi-tenancy
10   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Roles

             Developer
                                                                                                                 PaaS Provider

     PaaS
 Customer/                                                       JVM JVM JVM        JVM JVM JVM   JVM JVM JVM
    Tenant                                                                Machine     Machine       Machine            PaaS Product
                                                                                                                       Provider

                                                                 JVM JVM JVM        JVM JVM JVM   JVM JVM JVM
Deployer
                                                                          Machine     Machine       Machine           PaaS Account
                                                                      Tenant 1       Tenant 2      Tenant 3           Manager
 Application
  Submitter
                                                                                                                PaaS
                                                                                                                Administrator
                           Application
                         Administrator

  11   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Existing Java EE model
                                                                                                                   Database
                                                                             1	
     Provision and Initialize       Service
     •  Configure Java EE resources –
        JDBC, JMS etc                                                                                               LDAP
                                                                                                                   Service
     •  Deploy Application EAR
                                                                             2	
       Provision and Initialize




                                                                                                                  Messaging
                                                                             3	
      Provision and Initialize
                                                                                                                   Service

                                                                                                                  Application
                                                                             4	
  
                                                                                      Provision and Initialize
                                                                                                                   Container


                                                                             5	
     Deploy Application (EAR/
                                                                                          GAR/SAR …)




12    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Model: Auto-Provision Services
     from Application Dependencies
•  Provision and deploy application                                          1	
     Provision and Initialize     Cloud Administration Service


resources (e.g. LDAP stripe, data
source instantiation and                                                                                              Database
                                                                                                                       Service
connection …)                                                                2	
       Provision and Initialize




•  Extensible Deployment Models                                                                                         LDAP
   Supporting Multiple Frameworks                                            3	
      Provision and Initialize         Service
     •  Spring, Seam, Play …
                                                                                                                    Messaging
                                                                             4	
  
                                                                                      Provision and Initialize
                                                                                                                     Service

                                                                                                                   Application
                                                                             5	
     Deploy Application (EAR/
                                                                                          GAR/SAR …)
                                                                                                                    Container


13    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Services

     •  Cloud apps consume services
           –  Persistence, queueing, mail, caching, …
     •  Service metadata facilitates ease of use when deploying
        into the cloud
           @DataSourceDefinition(!
               name=“java:app/jdbc/myDB”,!
                        className=“oracle.jdbc.pool.OracleDataSource”,!
                        isolationLevel=TRANSACTION_REPEATABLE_READ,!
                        initialPoolSize=5!
           ) !



14   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Services

     •  Cloud apps consume services
           –  Persistence, queueing, mail, caching, …
     •  Service metadata facilitates ease of use when deploying
        into the cloud
           @JMSConnectionFactoryDefinition(

             name=“java:app/myJMSConnectionFactory”,
             className=“javax.jms.QueueConnectionFactory”

             resourceAdapterName=“myJMSRA”) !
           !
           @JMSDestinationDefinition(

             name=“java:app/myQueue”,

             className=“javax.jms.Queue”

             destinationName=“myQueue1”)!
15   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Services

     •  Cloud apps consume services
           –  Persistence, queueing, mail, caching, …
     •  Service metadata facilitates ease of use when deploying
        into the cloud
           @MailSessionDefinition(!
               name=“java:app/mailSession”,

               host=“example.com”

               from=“MyService@example.com”!
           ) !




16   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Services

     •  Cloud apps consume services
           –  Persistence, queueing, mail, caching, …
     •  Service metadata facilitates ease of use when deploying
        into the cloud
           @ConnectorResourceDefinition(!
               name=“java:app/myCustomConnector”,!
                        className=“com.extraServices.CustomConnector.class”,!
                        properties= {…}!
           ) !




17   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Elasticity
                                                                                   Java EE 7 Focus:
                                                                                  Move the Bar Right



                                                                             Elasticity Continuum


                                                                                  Java EE Cluster            Elastic Cluster
                                                                                                                Elastic Cluster
                                                                                                                                   Capacity
                                                                                                                                      Ca
                                                                                                                                  on Demand



Single node                                                                    Java EE Multi-Node        Dynamic Self Adjusting
Non-Elastic                                                                  Multi-Instance Clustering    SLA Driven Elasticity

      •  Service Levels
      •  Minimum and Maximum Instances
      •  Futures – Self Adjustment, Capacity On Demand
 18   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Example Scenario

     “A software company writes an application, submits it to a
       PaaS provider, then any number of tenants sign up for the
       application, deploy it, their end users access it”




19   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (1)
                   SimplyCRM	
                                              DiabloCloud	
  




20   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (2)
                   SimplyCRM	
                                              DiabloCloud	
  


                   ApplicaDon	
  
                   Developer	
  


                                    Writes


                        App




21   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (3)
                   SimplyCRM	
                                                                             DiabloCloud	
  

                                                                            Signs up as a customer
               PaaS	
  Customer	
                                                                    PaaS	
  Account	
  Manager	
  




22   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (4)
                   SimplyCRM	
                                                                             DiabloCloud	
  

                                                                            Submits the application
                  Application                                                                         System	
  Administrator	
  
                  Submitter



                                                                                                                 App




23   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (5)
                 ExtraServices	
                                                          DiabloCloud	
  

                                                                            Discovers
                                                                                        App




24   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (6)
                 ExtraServices	
                                                                           DiabloCloud	
  

                                                                            Signs up as a customer
               PaaS	
  Customer	
                                                                    PaaS	
  Account	
  Manager	
  



                                                                                                       App




25   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (7)
                 ExtraServices	
                                                                           DiabloCloud	
  


                    Deployer	
                                                                        System	
  Administrator	
  
                                                                            Customizes and
                                                                            deploys the application



                                                                                                             App




26   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (8)
                 ExtraServices	
                                                   DiabloCloud	
  


                    Deployer	
                                                System	
  Administrator	
  



                                                                            Provisions on
                                                                                Cloud
                                                                            infrastructure

                                                                                          App




27   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (9)
                 ExtraServices	
                                                 DiabloCloud	
  


                    Deployer	
                                              System	
  Administrator	
  




                                                                              Provisioned and
                                                                               Deployed App




28   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (10)
                 ExtraServices	
                                                                       DiabloCloud	
  




                                                                            Access the application
                      End-­‐Users	
                                                                  Provisioned and
                                                                                                      Deployed App




29   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (11)
                 ExtraServices	
                                                                            DiabloCloud	
  




                      End-­‐Users	
                                         Access the application


                                                                                                          Provisioned and
                                                                                                           Deployed App

                  Administrator	
                                           Administers the application




30   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Walkthrough (12)
                 ExtraServices	
                                                                               DiabloCloud	
  


                                                                                                          System	
  Administrator	
  




                                                                                                                            Monitors

                      End-­‐Users	
                                         Access the application


                                                                                                            Provisioned and
                                                                                                             Deployed App

                  Administrator	
                                           Administers the application




31   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Demo
     PaaSing a Java EE Application in the Cloud




     glassfish.org/javaone2011


32   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Conference Planning in the Cloud

Java EE Application

       JSF                                JPA                               Deploy

                                   Services
      EJB                          Metadata
                                                                               <glassfish-services>

                                                                               <service-description init-type="LB" name="ConferencePlanner-lb">

                                                                                   <template id="LBNative"/>

                                                                                   <configurations>

                                                                                      <configuration name="https-port" value="50443"/>

                                                                                      <configuration name="ssl-enabled" value="false"/>

                                                                                      <configuration name="http-port" value="50080"/>

                                                                                   </configurations></service-description>

                                                                               <service-description init-type="JavaEE" name="ConferencePlanner">

                                                                                   <characteristics>

                                                                                      <characteristic name="service-type" value="JavaEE"/>

                                                                                   </characteristics>

                                                                                   <configurations>

                                                                                      <configuration name="max.clustersize" value="4"/>

                                                                                      <configuration name="min.clustersize" value="2"/>

                                                                                   </configurations>

                                                                               </service-description>!
                                                                               . . .

                                                                               </glassfish-services>!



33   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Service Provisioning

                                                                              Load
                                                                             Balancer



                                                 Java EE                    Java EE    ...   Java EE


                                                                            Database



34   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Multi-tenancy in Java EE 7
     •  Support for separate isolated instances of the same app for
        different tenants
           –  One application instance per tenant
           –  Tenants correspond to units of isolation
           –  Multitenant apps are declared as such
           –  Each instance customized and deployed for a single tenant
           –  Limited form of SaaS

     •  Mapping to tenant done by the container
     •  Tenant id available to application
           –  E.g., under java:comp/tenantId!

35   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Is Not Just Cloud-y
     •  Alignment of ManagedBeans across CDI, EJB, JSF, …
           –  POJO à ManagedBean à Enterprise JavaBean
           –  Extension of container-managed transactions beyond EJB

     •  Further simplifications for ease-of-development
           –      JAX-RS 2.0 Client API, hypermedia, bean validation, …
           –      JMS 2.0 focus on ease-of-development
           –      Expanded use of dependency injection
           –      Expanded service metadata; improved configuration

     •  Pruning
           –  EJB CMP and BMP, JAX-RPC, Deployment API
     •  Update to Web Profile

36   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 – Candidate JSRs

                                           Web
                                                                            JAX-RS     JSF 2.2                                      Jcache 1.0
                                         Container                                                 EL 3.0                           (JSR 107)
        CDI                             Extensions                            2.0      JSP 2.2
     Extensions




                                                                                                            Bean Validation 1.1
                                                                                                                                   Concurrency
                                                                              Servlet 3.1                                           Utilities 1.0
                                                                                                                                    (JSR 236)
                                                                                                                                       State
                        CDI 1.1 / Interceptors 1.1 / JSR 250 1.1                                                                  Management 1.0
                                                                                                                                    (JSR 350)
                                                                                                                                       Batch
        Managed Beans 1.0                                                               EJB 3.2                                   Processing 1.0
                                                                                                                                    (JSR 352)
                                                                                                                                     JSON 1.0
                    JPA 2.1                                                  JTA 1.1             JMS 2.0                             (JSR 353)



37   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Early Draft

     •  Requires Java SE 7
     •  Added new roles
     •  Resource definition metadata
              –  DataSourceDefinition,
                 JMSConnectionFactoryDefinition,
                 JMSDestinationDefinition, MailSessionDefinition,
                 ConnectorResourceDefinition!
              –  Pre-provisioned or shared resource


38   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Early Draft

     •  Default Data Source java:comp/defaultDataSource!
     •  Default JMS Connection Factory java:comp/
           defaultJMSConnectionFactory!
     •  Tenant Identifier: java:comp/tenantId!
     •  Made optional
              –  EJB Entity Beans, EJB QL, JAX-RPC, Deployment API, JAXR




39   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java Persistence API 2.1

     •  @NamedStoredProcedureQuery,
        StoredProcedureQuery!
     •  Bulk update/delete using Criteria!
     •  User-defined functions using FUNCTION!
     •  Persistence Context Synchronization




40   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java API for RESTful Web Services 2.0

     •  Client-side API
     •  Validation
     •  Hypermedia
     •  Alignment with CDI
     •  Server-side content negotiation (qs)
     •  Filters and Entity Interceptors
     •  Client-side and Server-side Async

41   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
JavaServer Faces 2.2

     •  Queue control for Ajax requests
     •  File Upload component (Non-Ajax & Ajax)
     •  Injection in all JSF artifacts – including converters &
        validators
     •  @FaceletsResourceResolver!
     •  Instantiating composite components in Java
     •  . . .

42   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Contexts & Dependency Injection 1.1

     •  Embedded mode to startup outside Java EE container
     •  Global ordering of interceptors and decorators
     •  API for managing built-in contexts
     •  Send Servlet events as CDI events
     •  . . .




43   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Enterprise JavaBeans 3.2

     •  Three-part specification
           –  Core CMT transactions on Managed Beans, Non-persistent timer
              and Async method to Lite
           –  Optional CMP, BMP, Entity Beans, EJB QL, JAX-RPC Web
              service endpoint
           –  Interceptors
     •  Alignment with JMS 2.0



44   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Bean Validation 1.1

     •  Open: Spec, Reference Implementation, TCK
     •  Method-level validation  @MethodValidated	
  
                                 public	
  class	
  OrderService	
  {	
  	
  
     •  Dependency Injection     	
  	
  	
  	
  public	
  OrderService(@NotNull	
  CreditCardProcessor	
  creditCardProcessor)	
  {	
  	
  
                                 	
  	
  	
  	
  	
  	
  	
  	
  //...	
  	
  
                                                                             	
  	
  	
  	
  }	
  
                                                                             	
  
                                                                             	
  	
  	
  	
  public	
  void	
  placeOrder(	
  
                                                                             	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @NotNull	
  @Size(min=3,	
  max=20)	
  String	
  customerCode,	
  	
  
                                                                             	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @NotNull	
  @Valid	
  Item	
  item,	
  	
  
                                                                             	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @Min(1)	
  int	
  quanDty)	
  {	
  	
  
                                                                             	
  	
  	
  	
  	
  	
  //...	
  	
  
                                                                             	
  	
  	
  	
  	
  }	
  
                                                                             	
  }	
  




45    Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0

     •  Connection, Session and other objects are
        AutoCloseable
     •  Simplified API
           –  Less verbose
           –  Reduce the number of objects needed to send/receive message
           –  Allow resource injection
           –  Alternative, not replacement, for standard API
           –  Remove JMSException, where possible
     •  New methods – no need for redundant arguments
46   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Transparency
     •  Oracle’s Java EE 7 JSRs are run in the open on java.net
           –  http://javaee-spec.java.net
           –  One project per spec – e.g., jpa-spec, jax-rs-spec, jms-spec…
     •  Publicly viewable Expert Group mail archive
           –  Users observer list gets copies of all Expert Group emails
     •  Publicly viewable download area
     •  Publicly viewable issue tracker
     •  Commitment to update to JCP 2.8 Process

47   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Status and Schedule


•  All JSRs up and running
•  Early Drafts
  –  Java EE 7 Platform, JSF 2.2, JAX-RS 2.0, JPA 2.1, CDI 1.1, EJB 3.2,
     JMS 2.0, Bean Validation 1.1, Expression Language 3.0

•  Final release target: Q2 2013



  48   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
GlassFish Roadmap
GlassFish v3                                                                        GlassFish Server 3.1               GlassFish Server 3.1.2
•  Java EE 6 support                                                                •  Centralized administration      •  Bug Fixes
•  Single instance                                                                  •  Clustering / HA                 •  Incremental features
•  GlassFish Enterprise Mgr                                                         •  GlassFish Server Control




 2009                                               2010                                           2011               2012                       2013


     GlassFish Server 3.0.1                                                                 GlassFish Server 3.1.1             GlassFish Server 4
     •  Oracle branding                                                                     •  Bug fixes                       •  Java EE 7
     •  Oracle platform support                                                             •  Updated components              •  Multitenancy
     •  Oracle interoperability                                                             •  Incremental features            •  PaaS-enablement




        49   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Call to Action

     •  Java EE 7 Expert Group Project
           – http://javaee-spec.java.net
     •  Java EE 7 Reference Implementation
           – http://glassfish.org
     •  The Aquarium
           –  http://blogs.oracle.com/theaquarium

50   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
51   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot (20)

PDF
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
 
PDF
TDC 2011: OSGi-enabled Java EE Application
Arun Gupta
 
PDF
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
PDF
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
PDF
Java EE 7 and HTML5: Developing for the Cloud
Arun Gupta
 
PDF
Java EE Technical Keynote at JavaOne Latin America 2011
Arun Gupta
 
PDF
GlassFish REST Administration Backend
Arun Gupta
 
PDF
Java EE 7 at JAX London 2011 and JFall 2011
Arun Gupta
 
PDF
Websocket 1.0
Arun Gupta
 
PDF
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Arun Gupta
 
PDF
GlassFish Community Update @ JavaOne 2011
Arun Gupta
 
PDF
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
Arun Gupta
 
PDF
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Arun Gupta
 
PDF
JAX-RS 2.0: What’s New in JSR 339 ?
Arun Gupta
 
PDF
GlassFish 3.1 at JCertif 2011
Arun Gupta
 
PDF
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
 
PDF
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Arun Gupta
 
PDF
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
Arun Gupta
 
PDF
Playing in the Same Sandbox: MySQL and Oracle
lynnferrante
 
PDF
5050 dev nation
Arun Gupta
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
 
TDC 2011: OSGi-enabled Java EE Application
Arun Gupta
 
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
Java EE 7 and HTML5: Developing for the Cloud
Arun Gupta
 
Java EE Technical Keynote at JavaOne Latin America 2011
Arun Gupta
 
GlassFish REST Administration Backend
Arun Gupta
 
Java EE 7 at JAX London 2011 and JFall 2011
Arun Gupta
 
Websocket 1.0
Arun Gupta
 
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Arun Gupta
 
GlassFish Community Update @ JavaOne 2011
Arun Gupta
 
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
Arun Gupta
 
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Arun Gupta
 
JAX-RS 2.0: What’s New in JSR 339 ?
Arun Gupta
 
GlassFish 3.1 at JCertif 2011
Arun Gupta
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
 
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Arun Gupta
 
JAX-RS 2.0: New and Noteworthy in RESTful Web services API at JAX London
Arun Gupta
 
Playing in the Same Sandbox: MySQL and Oracle
lynnferrante
 
5050 dev nation
Arun Gupta
 

Viewers also liked (16)

PDF
Nicola Dourambeis, Salesforce | Agile Turkey Summit 2013
Agile Turkey
 
PDF
Java Day Tokyo 2016 feedback at Kumamoto
Takashi Ito
 
PDF
agile summit 2014 sponsorship deck v.2 public
AgileSummit
 
PDF
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Steve Elliott
 
PDF
Java For The Cloud Presentation @ AlphaCSP's JavaEdge 2008
Baruch Sadogursky
 
PPTX
CloudOps evening presentation from Amazon
Alistair Croll
 
PDF
Cloud computing and bioinformatics
Enis Afgan
 
PDF
Introduction of Cloud Computing
Rahul Hada
 
PDF
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
PPTX
AWS Monitoring & Logging
Jason Poley
 
PDF
Spring Cloud Servicesの紹介 #pcf_tokyo
Toshiaki Maki
 
PDF
Cloud Native Microservices with Spring Cloud
Conor Svensson
 
PDF
Java in the Cloud : PaaS Platforms in Comparison
Eberhard Wolff
 
PDF
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
PDF
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
PDF
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Marcin Grzejszczak
 
Nicola Dourambeis, Salesforce | Agile Turkey Summit 2013
Agile Turkey
 
Java Day Tokyo 2016 feedback at Kumamoto
Takashi Ito
 
agile summit 2014 sponsorship deck v.2 public
AgileSummit
 
Java Update - Bristol JUG. Part 2 - Java EE / Java in the Cloud.
Steve Elliott
 
Java For The Cloud Presentation @ AlphaCSP's JavaEdge 2008
Baruch Sadogursky
 
CloudOps evening presentation from Amazon
Alistair Croll
 
Cloud computing and bioinformatics
Enis Afgan
 
Introduction of Cloud Computing
Rahul Hada
 
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
AWS Monitoring & Logging
Jason Poley
 
Spring Cloud Servicesの紹介 #pcf_tokyo
Toshiaki Maki
 
Cloud Native Microservices with Spring Cloud
Conor Svensson
 
Java in the Cloud : PaaS Platforms in Comparison
Eberhard Wolff
 
Microservices - java ee vs spring boot and spring cloud
Ben Wilcock
 
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Marcin Grzejszczak
 
Ad

Similar to Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012 (20)

PDF
Java ee 7 platform developing for the cloud kshitiz saxena
IndicThreads
 
PDF
Java EE7: Developing for the Cloud
Dmitry Buzdin
 
PDF
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
Markus Eisele
 
PDF
GlassFish in the Virtual World
Arun Gupta
 
KEY
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
Danival Calegari
 
PDF
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Dr. Spock
 
PDF
Java EE Technical Keynote - JavaOne India 2011
Arun Gupta
 
PDF
Java EE 7 - Into the Cloud
Markus Eisele
 
PPTX
SPEC INDIA Java Case Study
SPEC INDIA
 
PDF
Mach Technology
Open Stack
 
PPTX
vFabric - Ideal Platform for SaaS Apps
VMware vFabric
 
PDF
Cloud Architectures for Alpha Dogs!
Vikas Gupta
 
PDF
OpenPaaS, the open-source Enterprise Social network for the Cloud, OW2con'12,...
OW2
 
PDF
V fabric overview
Pronam Chatterjee
 
PDF
DevOps for Mobile - DevOpsDays, NY, 2013
Sanjeev Sharma
 
PDF
2011 04-dsi-javaee-in-the-cloud-andreadis
dandre
 
PPTX
Comm Gate Corporate Profile V0.4
Abhik Biswas
 
PDF
Java CAPS
Jaime Contreras
 
PDF
10 reasons why Nuxeo is using GlassFish
Nuxeo
 
PPT
IBM Pulse 2013 session - DevOps for Mobile Apps
Sanjeev Sharma
 
Java ee 7 platform developing for the cloud kshitiz saxena
IndicThreads
 
Java EE7: Developing for the Cloud
Dmitry Buzdin
 
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
Markus Eisele
 
GlassFish in the Virtual World
Arun Gupta
 
JavaOne 2012 - BOF7955 ­ Avoiding Java EE Application Design Traps to Achieve...
Danival Calegari
 
Avoiding Java EE Application Design Traps to Achieve Effective Use of Cloud C...
Dr. Spock
 
Java EE Technical Keynote - JavaOne India 2011
Arun Gupta
 
Java EE 7 - Into the Cloud
Markus Eisele
 
SPEC INDIA Java Case Study
SPEC INDIA
 
Mach Technology
Open Stack
 
vFabric - Ideal Platform for SaaS Apps
VMware vFabric
 
Cloud Architectures for Alpha Dogs!
Vikas Gupta
 
OpenPaaS, the open-source Enterprise Social network for the Cloud, OW2con'12,...
OW2
 
V fabric overview
Pronam Chatterjee
 
DevOps for Mobile - DevOpsDays, NY, 2013
Sanjeev Sharma
 
2011 04-dsi-javaee-in-the-cloud-andreadis
dandre
 
Comm Gate Corporate Profile V0.4
Abhik Biswas
 
Java CAPS
Jaime Contreras
 
10 reasons why Nuxeo is using GlassFish
Nuxeo
 
IBM Pulse 2013 session - DevOps for Mobile Apps
Sanjeev Sharma
 
Ad

More from Arun Gupta (20)

PDF
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
 
PPTX
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
 
PDF
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
 
PPTX
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
 
PPTX
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
 
PPTX
Why Amazon Cares about Open Source
Arun Gupta
 
PDF
Machine learning using Kubernetes
Arun Gupta
 
PDF
Building Cloud Native Applications
Arun Gupta
 
PDF
Chaos Engineering with Kubernetes
Arun Gupta
 
PDF
How to be a mentor to bring more girls to STEAM
Arun Gupta
 
PDF
Java in a World of Containers - DockerCon 2018
Arun Gupta
 
PPTX
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
 
PDF
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
 
PDF
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
 
PDF
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
 
PDF
Container Landscape in 2017
Arun Gupta
 
PDF
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
PDF
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
PDF
Thanks Managers!
Arun Gupta
 
PDF
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
 
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
 
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
 
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
 
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
 
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
 
Why Amazon Cares about Open Source
Arun Gupta
 
Machine learning using Kubernetes
Arun Gupta
 
Building Cloud Native Applications
Arun Gupta
 
Chaos Engineering with Kubernetes
Arun Gupta
 
How to be a mentor to bring more girls to STEAM
Arun Gupta
 
Java in a World of Containers - DockerCon 2018
Arun Gupta
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
 
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
 
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
 
Container Landscape in 2017
Arun Gupta
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
Thanks Managers!
Arun Gupta
 
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
 

Recently uploaded (20)

PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Biography of Daniel Podor.pdf
Daniel Podor
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 

Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012

  • 1. Main sponsor The  Java  EE  7  Pla,orm:  Developing  for  the  Cloud   Arun  Gupta,  Java  EE  &  GlassFish  Guy   blogs.oracle.com/arungupta,  @arungupta  
  • 2. 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 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. Java EE 6 Platform December 10, 2009 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. Java EE 6 – Key Statistics •  40+ Million Java EE 6 Component Downloads •  #1 Choice for Enterprise Developers •  #1 Application Development Platform •  Fastest implementation of a Java EE release 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. Top Ten Features in Java EE 6 1.  EJB packaging in a WAR 2.  Servlet and CDI extension points 3.  Optional web.xml! 4.  Type-safe dependency injection 5.  CDI Events 6.  JSF standardizing on Facelets 7.  EJBContainer API 8.  @Schedule! 9.  EJB No Interface View 10. Web Profile 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. Today’s Cloud Offerings are all Proprietary Infrastructure as Platform as Software as a Service a Service a Service 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. Java EE 7 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. Java EE 7 and 8 – Focus Areas Cloud Modularity HTML5 •  Provisioning •  Building on Jigsaw •  Emerging Web Standards require a •  Elastic & Autonomic •  Focus on OSGi interop programming model Scalability •  Supporting Profiles & •  JSON, WebSockets, •  Multi-Tenancy Modular Applications off-line, APIs & DOM 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. Java EE 7 Focus: Platform as a Service •  Next logical step for Java EE –  J2EE à Java EE 6 : The Java EE Platform provides services –  Java EE 7 : The Java EE Platform IS a service •  PaaS support entails evolutionary change •  Basic form of SaaS •  Provide way for customers and users to leverage public, private, and hybrid clouds 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. Java EE 7 PaaS Roadmap •  Define new platform roles to accommodate PaaS model •  Add metadata –  For service provisioning and configuration –  For QoS, elasticity –  For sharing of applications and resources –  For (re)configurability and customization •  Add useful APIs for cloud environment –  JAX-RS client API, Caching API, State Management, JSON,… •  Extend existing APIs with support for multi-tenancy 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. Roles Developer PaaS Provider PaaS Customer/ JVM JVM JVM JVM JVM JVM JVM JVM JVM Tenant Machine Machine Machine PaaS Product Provider JVM JVM JVM JVM JVM JVM JVM JVM JVM Deployer Machine Machine Machine PaaS Account Tenant 1 Tenant 2 Tenant 3 Manager Application Submitter PaaS Administrator Application Administrator 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. Existing Java EE model Database 1   Provision and Initialize Service •  Configure Java EE resources – JDBC, JMS etc LDAP Service •  Deploy Application EAR 2   Provision and Initialize Messaging 3   Provision and Initialize Service Application 4   Provision and Initialize Container 5   Deploy Application (EAR/ GAR/SAR …) 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. Java EE 7 Model: Auto-Provision Services from Application Dependencies •  Provision and deploy application 1   Provision and Initialize Cloud Administration Service resources (e.g. LDAP stripe, data source instantiation and Database Service connection …) 2   Provision and Initialize •  Extensible Deployment Models LDAP Supporting Multiple Frameworks 3   Provision and Initialize Service •  Spring, Seam, Play … Messaging 4   Provision and Initialize Service Application 5   Deploy Application (EAR/ GAR/SAR …) Container 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. Services •  Cloud apps consume services –  Persistence, queueing, mail, caching, … •  Service metadata facilitates ease of use when deploying into the cloud @DataSourceDefinition(! name=“java:app/jdbc/myDB”,! className=“oracle.jdbc.pool.OracleDataSource”,! isolationLevel=TRANSACTION_REPEATABLE_READ,! initialPoolSize=5! ) ! 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. Services •  Cloud apps consume services –  Persistence, queueing, mail, caching, … •  Service metadata facilitates ease of use when deploying into the cloud @JMSConnectionFactoryDefinition(
 name=“java:app/myJMSConnectionFactory”, className=“javax.jms.QueueConnectionFactory”
 resourceAdapterName=“myJMSRA”) ! ! @JMSDestinationDefinition(
 name=“java:app/myQueue”,
 className=“javax.jms.Queue”
 destinationName=“myQueue1”)! 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. Services •  Cloud apps consume services –  Persistence, queueing, mail, caching, … •  Service metadata facilitates ease of use when deploying into the cloud @MailSessionDefinition(! name=“java:app/mailSession”,
 host=“example.com”
 from=“[email protected]”! ) ! 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. Services •  Cloud apps consume services –  Persistence, queueing, mail, caching, … •  Service metadata facilitates ease of use when deploying into the cloud @ConnectorResourceDefinition(! name=“java:app/myCustomConnector”,! className=“com.extraServices.CustomConnector.class”,! properties= {…}! ) ! 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. Elasticity Java EE 7 Focus: Move the Bar Right Elasticity Continuum Java EE Cluster Elastic Cluster Elastic Cluster Capacity Ca on Demand Single node Java EE Multi-Node Dynamic Self Adjusting Non-Elastic Multi-Instance Clustering SLA Driven Elasticity •  Service Levels •  Minimum and Maximum Instances •  Futures – Self Adjustment, Capacity On Demand 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. Example Scenario “A software company writes an application, submits it to a PaaS provider, then any number of tenants sign up for the application, deploy it, their end users access it” 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. Walkthrough (1) SimplyCRM   DiabloCloud   20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. Walkthrough (2) SimplyCRM   DiabloCloud   ApplicaDon   Developer   Writes App 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. Walkthrough (3) SimplyCRM   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager   22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. Walkthrough (4) SimplyCRM   DiabloCloud   Submits the application Application System  Administrator   Submitter App 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. Walkthrough (5) ExtraServices   DiabloCloud   Discovers App 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. Walkthrough (6) ExtraServices   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager   App 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. Walkthrough (7) ExtraServices   DiabloCloud   Deployer   System  Administrator   Customizes and deploys the application App 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. Walkthrough (8) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisions on Cloud infrastructure App 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. Walkthrough (9) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisioned and Deployed App 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. Walkthrough (10) ExtraServices   DiabloCloud   Access the application End-­‐Users   Provisioned and Deployed App 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. Walkthrough (11) ExtraServices   DiabloCloud   End-­‐Users   Access the application Provisioned and Deployed App Administrator   Administers the application 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. Walkthrough (12) ExtraServices   DiabloCloud   System  Administrator   Monitors End-­‐Users   Access the application Provisioned and Deployed App Administrator   Administers the application 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. Demo PaaSing a Java EE Application in the Cloud glassfish.org/javaone2011 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. Conference Planning in the Cloud Java EE Application JSF JPA Deploy Services EJB Metadata <glassfish-services>
 <service-description init-type="LB" name="ConferencePlanner-lb">
 <template id="LBNative"/>
 <configurations>
 <configuration name="https-port" value="50443"/>
 <configuration name="ssl-enabled" value="false"/>
 <configuration name="http-port" value="50080"/>
 </configurations></service-description>
 <service-description init-type="JavaEE" name="ConferencePlanner">
 <characteristics>
 <characteristic name="service-type" value="JavaEE"/>
 </characteristics>
 <configurations>
 <configuration name="max.clustersize" value="4"/>
 <configuration name="min.clustersize" value="2"/>
 </configurations>
 </service-description>! . . .
 </glassfish-services>! 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. Service Provisioning Load Balancer Java EE Java EE ... Java EE Database 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. Multi-tenancy in Java EE 7 •  Support for separate isolated instances of the same app for different tenants –  One application instance per tenant –  Tenants correspond to units of isolation –  Multitenant apps are declared as such –  Each instance customized and deployed for a single tenant –  Limited form of SaaS •  Mapping to tenant done by the container •  Tenant id available to application –  E.g., under java:comp/tenantId! 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. Java EE 7 Is Not Just Cloud-y •  Alignment of ManagedBeans across CDI, EJB, JSF, … –  POJO à ManagedBean à Enterprise JavaBean –  Extension of container-managed transactions beyond EJB •  Further simplifications for ease-of-development –  JAX-RS 2.0 Client API, hypermedia, bean validation, … –  JMS 2.0 focus on ease-of-development –  Expanded use of dependency injection –  Expanded service metadata; improved configuration •  Pruning –  EJB CMP and BMP, JAX-RPC, Deployment API •  Update to Web Profile 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. Java EE 7 – Candidate JSRs Web JAX-RS JSF 2.2 Jcache 1.0 Container EL 3.0 (JSR 107) CDI Extensions 2.0 JSP 2.2 Extensions Bean Validation 1.1 Concurrency Servlet 3.1 Utilities 1.0 (JSR 236) State CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Management 1.0 (JSR 350) Batch Managed Beans 1.0 EJB 3.2 Processing 1.0 (JSR 352) JSON 1.0 JPA 2.1 JTA 1.1 JMS 2.0 (JSR 353) 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. Java EE 7 Early Draft •  Requires Java SE 7 •  Added new roles •  Resource definition metadata –  DataSourceDefinition, JMSConnectionFactoryDefinition, JMSDestinationDefinition, MailSessionDefinition, ConnectorResourceDefinition! –  Pre-provisioned or shared resource 38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. Java EE 7 Early Draft •  Default Data Source java:comp/defaultDataSource! •  Default JMS Connection Factory java:comp/ defaultJMSConnectionFactory! •  Tenant Identifier: java:comp/tenantId! •  Made optional –  EJB Entity Beans, EJB QL, JAX-RPC, Deployment API, JAXR 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. Java Persistence API 2.1 •  @NamedStoredProcedureQuery, StoredProcedureQuery! •  Bulk update/delete using Criteria! •  User-defined functions using FUNCTION! •  Persistence Context Synchronization 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. Java API for RESTful Web Services 2.0 •  Client-side API •  Validation •  Hypermedia •  Alignment with CDI •  Server-side content negotiation (qs) •  Filters and Entity Interceptors •  Client-side and Server-side Async 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 42. JavaServer Faces 2.2 •  Queue control for Ajax requests •  File Upload component (Non-Ajax & Ajax) •  Injection in all JSF artifacts – including converters & validators •  @FaceletsResourceResolver! •  Instantiating composite components in Java •  . . . 42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 43. Contexts & Dependency Injection 1.1 •  Embedded mode to startup outside Java EE container •  Global ordering of interceptors and decorators •  API for managing built-in contexts •  Send Servlet events as CDI events •  . . . 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 44. Enterprise JavaBeans 3.2 •  Three-part specification –  Core CMT transactions on Managed Beans, Non-persistent timer and Async method to Lite –  Optional CMP, BMP, Entity Beans, EJB QL, JAX-RPC Web service endpoint –  Interceptors •  Alignment with JMS 2.0 44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 45. Bean Validation 1.1 •  Open: Spec, Reference Implementation, TCK •  Method-level validation @MethodValidated   public  class  OrderService  {     •  Dependency Injection        public  OrderService(@NotNull  CreditCardProcessor  creditCardProcessor)  {                    //...            }            public  void  placeOrder(                            @NotNull  @Size(min=3,  max=20)  String  customerCode,                              @NotNull  @Valid  Item  item,                              @Min(1)  int  quanDty)  {                //...              }    }   45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 46. Java Message Service 2.0 •  Connection, Session and other objects are AutoCloseable •  Simplified API –  Less verbose –  Reduce the number of objects needed to send/receive message –  Allow resource injection –  Alternative, not replacement, for standard API –  Remove JMSException, where possible •  New methods – no need for redundant arguments 46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 47. Transparency •  Oracle’s Java EE 7 JSRs are run in the open on java.net –  http://javaee-spec.java.net –  One project per spec – e.g., jpa-spec, jax-rs-spec, jms-spec… •  Publicly viewable Expert Group mail archive –  Users observer list gets copies of all Expert Group emails •  Publicly viewable download area •  Publicly viewable issue tracker •  Commitment to update to JCP 2.8 Process 47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 48. Status and Schedule •  All JSRs up and running •  Early Drafts –  Java EE 7 Platform, JSF 2.2, JAX-RS 2.0, JPA 2.1, CDI 1.1, EJB 3.2, JMS 2.0, Bean Validation 1.1, Expression Language 3.0 •  Final release target: Q2 2013 48 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 49. GlassFish Roadmap GlassFish v3 GlassFish Server 3.1 GlassFish Server 3.1.2 •  Java EE 6 support •  Centralized administration •  Bug Fixes •  Single instance •  Clustering / HA •  Incremental features •  GlassFish Enterprise Mgr •  GlassFish Server Control 2009 2010 2011 2012 2013 GlassFish Server 3.0.1 GlassFish Server 3.1.1 GlassFish Server 4 •  Oracle branding •  Bug fixes •  Java EE 7 •  Oracle platform support •  Updated components •  Multitenancy •  Oracle interoperability •  Incremental features •  PaaS-enablement 49 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 50. Call to Action •  Java EE 7 Expert Group Project – http://javaee-spec.java.net •  Java EE 7 Reference Implementation – http://glassfish.org •  The Aquarium –  http://blogs.oracle.com/theaquarium 50 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 51. 51 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.