KEMBAR78
Java EE 7 at JAX London 2011 and JFall 2011 | PDF
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
 1   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
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 © 2011, Oracle and/or its affiliates. All rights reserved.
Java EE 6 Implementations
    Fastest implementations of a Java EE release ever!




3   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Java EE – Developer Adoption
                                                                                                Downloads	
                                         40 Million+
               45	
  
Millions	
  



               40	
  
               35	
  
               30	
  
               25	
  
               20	
  
               15	
  
               10	
  
                5	
  
                0	
  
                                   FY	
  06	
                       FY	
  07	
          FY	
  08	
     FY	
  09	
     FY	
  10	
     FY	
  11	
     FY	
  12	
  

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




5   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Today’s Cloud Offerings Are Vendor-Specific

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




                                                                               …

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

    •  Provide way for customers and users to leverage public,
       private, and hybrid clouds

    •  PaaS support entails evolutionary change

    •  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



7   Copyright © 2011, 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
8   Copyright © 2011, 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

  9   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Focus Area: Cloud Services, Not Just
       APIs
•  In the cloud tenant applications                                           Tenant App               Tenant App             Tenant App

   consume services                                                                   Java EE Application Level Services
                                                                                Queuing          Persistence      Caching
•  PaaS administrators host,                                                    Service            Service        Service
                                                                                                                                  …

   configure, and manage
                                                                                           PaaS Infrastructure Services
   application and infrastructure                                               Security         Provisioning    File
                                                                                                                                  …
   services                                                                     Service             Service         Service

                                                                                       Platform as a Service - Services
•  Existing APIs in Java EE need to
                                                                                           IaaS Infrastructure Services
   be updated to be service-enabled
   and tenant-aware                                                            Virt        VIP       VLAN       Volume      LBR       …

   –  Example: pluggable services, late binding                                             Infrastructure as a Service
      and tenant id injection
  10   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Old 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 …)




11        Copyright © 2011, 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


12        Copyright © 2011, 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
           )



13   Copyright © 2011, 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
           @JMSConnectionFactory (
            name=“java:app/myJMSConnectionFactory”,
                 resourceType=“javax.jms.QueueConnectionFactory”)

           @JMSDestination(
                 name=“java:app/myQueue”,
                 resourceType=“javax.jms.Queue”)

14   Copyright © 2011, 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
           @MailSession (
            name=“java:app/mailSession”,
                 from=“MyService@ExtraServices.com”
           )




15   Copyright © 2011, 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
           @ConnectorService (
            name=“java:app/myCustomConnector”,
                 type=“com.extraServices.customConnector.class”,
                 properties = {…}
           )




16   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Focus Area: 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
 17   Copyright © 2011, 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”




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




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


                   Applica3on	
  
                   Developer	
  


                                    Writes


                        App




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

                                                                            Signs up as a customer
               PaaS	
  Customer	
                                                                    PaaS	
  Account	
  Manager	
  




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

                                                                            Submits the application
                  Application                                                                         System	
  Administrator	
  
                  Submitter



                                                                                                                 App




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

                                                                            Discovers
                                                                                        App




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

                                                                            Signs up as a customer
               PaaS	
  Customer	
                                                                    PaaS	
  Account	
  Manager	
  



                                                                                                       App




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


                    Deployer	
                                                                        System	
  Administrator	
  
                                                                            Customizes and
                                                                            deploys the application



                                                                                                             App




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


                    Deployer	
                                                System	
  Administrator	
  



                                                                            Provisions on
                                                                                Cloud
                                                                            infrastructure

                                                                                          App




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


                    Deployer	
                                              System	
  Administrator	
  




                                                                              Provisioned and
                                                                               Deployed App




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




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




28   Copyright © 2011, 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




29   Copyright © 2011, 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




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




31   Copyright © 2011, 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">
http://glassfish.org/javaone2011                                                     <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>
    32   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Service Provisioning

                                                                              Load
                                                                             Balancer



                                                  Java EE                   Java EE    ...   Java EE


                                                                            Database



33   Copyright © 2011, 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 or by injection

34   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Focus Area: Application Level Multi
     Tenancy
     •  Goal: Simple configuration
     •  Flexible tenant discriminator support
     •  Other areas impacted - JNDI, JMS, EJB …
@Entity	
  
@Table(name=“EMP”)	
  
@MultiTenant(SINGLE_TABLE)	
   depart_id                 DEPT_ID
@TenantDiscriminator(name=“company-­‐id”,	
  columnName=“COMPANY”)	
  
public	
  class	
  Employee	
  {	
  
                     EMP
                             EMP_ID                           VERSION        F_NAME   L_NAME   GENDER   DEPT_ID
                                   1                                  1       John     Doe       M         1
                                   2                                  3       Jane     Doe       F         2


     SELECT	
  *	
  FROM	
  EMPLOYEE	
  WHERE	
  L_NAME	
  LIKE	
  ‘D%’	
  AND	
  DEPT_ID=	
  1	
  

35    Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Persistence Layer
     Multi-tenant Taxonomies
     •  Dedicated App, Dedicated Database
     •  Shared App, Dedicated Database
     •  Dedicated App, Shared Database
     •  Shared App, Shared Database




36   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Dedicated App, Dedicated Database
     Persistence Layer Multi-Tenant Taxonomies




                                                                            App is configured for tenant-id
                                                                             at bootstrap and connects to
                                                                                   the data source



37   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Shared App, Dedicated Database
     Persistence Layer Multi-Tenant Taxonomies




                                                                               App knows tenant-id and
                                                                            connects with the tenant-specific
                                                                                     data source



38   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Dedicated App, Shared Database
     Persistence Layer Multi-Tenant Taxonomies




                                                                             Tenant-id configured at bootstrap
                                                                            and connects to tenant-specific table
                                                                                      or striped table



39   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Shared App, Shared Database
     Persistence Layer Multi-Tenant Taxonomies




                                                                             App knows tenant-id and
                                                                            connects to tenant specific
                                                                               table or striped table



40   Copyright © 2011, 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
           –  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

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

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




                                                                                                         Bean Validation 1.1
                                                                                                                                Concurrency
                                                                             Servlet 3.1                                         Utilities 1.0

                                                                                                                                   State
                      CDI 1.1 / Interceptors 1.1 / JSR 250 1.1                                                                 Management 1.0

                                                                                                                                   Batch
      Managed Beans 1.0                                                              EJB 3.2                                   Processing 1.0


                                   JPA 2.1, JTA 1.1                                          JMS 2.0                              JSON 1.0


42    Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Transparency
     •  Our 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 match JCP 2.8 Process

43   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Status and Schedule


     •  Nearly all JSRs up and running
     •  Remaining ones to be filed in next few weeks
     •  Final release target: Q3 2012
     •  Date-driven release: anything not ready will be
        deferred to Java EE 8



44   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
How to Get in the Loop

     •  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

45   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
 46   Copyright © 2011, Oracle and/or its affiliates. All rights reserved.

Java EE 7 at JAX London 2011 and JFall 2011

  • 1.
    The Java EE7 Platform: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta 1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 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 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 3.
    Java EE 6Implementations Fastest implementations of a Java EE release ever! 3 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 4.
    Java EE –Developer Adoption Downloads   40 Million+ 45   Millions   40   35   30   25   20   15   10   5   0   FY  06   FY  07   FY  08   FY  09   FY  10   FY  11   FY  12   4 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 5.
    Java EE 7 5 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 6.
    Today’s Cloud OfferingsAre Vendor-Specific Infrastructure as Platform as Software as a Service a Service a Service … 6 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 7.
    Java EE 7Focus: Platform as a Service •  Provide way for customers and users to leverage public, private, and hybrid clouds •  PaaS support entails evolutionary change •  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 7 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 8.
    Java EE 7PaaS 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 8 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 9.
    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 9 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 10.
    Java EE 7Focus Area: Cloud Services, Not Just APIs •  In the cloud tenant applications Tenant App Tenant App Tenant App consume services Java EE Application Level Services Queuing Persistence Caching •  PaaS administrators host, Service Service Service … configure, and manage PaaS Infrastructure Services application and infrastructure Security Provisioning File … services Service Service Service Platform as a Service - Services •  Existing APIs in Java EE need to IaaS Infrastructure Services be updated to be service-enabled and tenant-aware Virt VIP VLAN Volume LBR … –  Example: pluggable services, late binding Infrastructure as a Service and tenant id injection 10 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 11.
    Old Java EEmodel 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 …) 11 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 12.
    Java EE 7Model: 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 12 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 13.
    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 ) 13 Copyright © 2011, 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 @JMSConnectionFactory ( name=“java:app/myJMSConnectionFactory”, resourceType=“javax.jms.QueueConnectionFactory”) @JMSDestination( name=“java:app/myQueue”, resourceType=“javax.jms.Queue”) 14 Copyright © 2011, 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 @MailSession ( name=“java:app/mailSession”, from=“MyService@ExtraServices.com” ) 15 Copyright © 2011, 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 @ConnectorService ( name=“java:app/myCustomConnector”, type=“com.extraServices.customConnector.class”, properties = {…} ) 16 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 17.
    Java EE 7Focus Area: 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 17 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 18.
    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” 18 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 19.
    Walkthrough (1) SimplyCRM   DiabloCloud   19 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 20.
    Walkthrough (2) SimplyCRM   DiabloCloud   Applica3on   Developer   Writes App 20 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 21.
    Walkthrough (3) SimplyCRM   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager   21 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 22.
    Walkthrough (4) SimplyCRM   DiabloCloud   Submits the application Application System  Administrator   Submitter App 22 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 23.
    Walkthrough (5) ExtraServices   DiabloCloud   Discovers App 23 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 24.
    Walkthrough (6) ExtraServices   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager   App 24 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 25.
    Walkthrough (7) ExtraServices   DiabloCloud   Deployer   System  Administrator   Customizes and deploys the application App 25 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 26.
    Walkthrough (8) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisions on Cloud infrastructure App 26 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 27.
    Walkthrough (9) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisioned and Deployed App 27 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 28.
    Walkthrough (10) ExtraServices   DiabloCloud   Access the application End-­‐Users   Provisioned and Deployed App 28 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 29.
    Walkthrough (11) ExtraServices   DiabloCloud   End-­‐Users   Access the application Provisioned and Deployed App Administrator   Administers the application 29 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 30.
    Walkthrough (12) ExtraServices   DiabloCloud   System  Administrator   Monitors End-­‐Users   Access the application Provisioned and Deployed App Administrator   Administers the application 30 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 31.
    Demo PaaSing a Java EE Application in the Cloud 31 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 32.
    Conference Planning inthe 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"> http://glassfish.org/javaone2011 <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> 32 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 33.
    Service Provisioning Load Balancer Java EE Java EE ... Java EE Database 33 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 34.
    Multi-tenancy in JavaEE 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 or by injection 34 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 35.
    Java EE 7Focus Area: Application Level Multi Tenancy •  Goal: Simple configuration •  Flexible tenant discriminator support •  Other areas impacted - JNDI, JMS, EJB … @Entity   @Table(name=“EMP”)   @MultiTenant(SINGLE_TABLE)   depart_id DEPT_ID @TenantDiscriminator(name=“company-­‐id”,  columnName=“COMPANY”)   public  class  Employee  {   EMP EMP_ID VERSION F_NAME L_NAME GENDER DEPT_ID 1 1 John Doe M 1 2 3 Jane Doe F 2 SELECT  *  FROM  EMPLOYEE  WHERE  L_NAME  LIKE  ‘D%’  AND  DEPT_ID=  1   35 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 36.
    Persistence Layer Multi-tenant Taxonomies •  Dedicated App, Dedicated Database •  Shared App, Dedicated Database •  Dedicated App, Shared Database •  Shared App, Shared Database 36 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 37.
    Dedicated App, DedicatedDatabase Persistence Layer Multi-Tenant Taxonomies App is configured for tenant-id at bootstrap and connects to the data source 37 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 38.
    Shared App, DedicatedDatabase Persistence Layer Multi-Tenant Taxonomies App knows tenant-id and connects with the tenant-specific data source 38 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 39.
    Dedicated App, SharedDatabase Persistence Layer Multi-Tenant Taxonomies Tenant-id configured at bootstrap and connects to tenant-specific table or striped table 39 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 40.
    Shared App, SharedDatabase Persistence Layer Multi-Tenant Taxonomies App knows tenant-id and connects to tenant specific table or striped table 40 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 41.
    Java EE 7Is 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 –  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 41 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 42.
    Java EE 7– Candidate JSRs Web Jcache 1.0 JAX-RS JSP 2.2 Conainer 2.0 JSF 2.2 (JSR 107) CDI Extensions EL 3.0 Extensions Bean Validation 1.1 Concurrency Servlet 3.1 Utilities 1.0 State CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Management 1.0 Batch Managed Beans 1.0 EJB 3.2 Processing 1.0 JPA 2.1, JTA 1.1 JMS 2.0 JSON 1.0 42 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 43.
    Transparency •  Our 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 match JCP 2.8 Process 43 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 44.
    Status and Schedule •  Nearly all JSRs up and running •  Remaining ones to be filed in next few weeks •  Final release target: Q3 2012 •  Date-driven release: anything not ready will be deferred to Java EE 8 44 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 45.
    How to Getin the Loop •  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 45 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • 46.
    The Java EE7 Platform: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta 46 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.