Java EE | Java EE 7: Developing for the Cloud | Arun Gupta
Upcoming SlideShare
Loading in...5
×
 

Java EE | Java EE 7: Developing for the Cloud | Arun Gupta

on

  • 2,359 views

2011-11-01 | 12:10 PM - 01:00 PM...

2011-11-01 | 12:10 PM - 01:00 PM
This talk introduces the Java EE 7 platform, the latest revision of the Java platform for the enterprise. The focus of Java EE 7 is on the cloud, and specifically it aims to bring Platform-as-a-Service providers and application developers together so that portable applications can be deployed on any cloud infrastructure and reap all its benefits in terms of scalability, elasticity, multitenancy, etc. Furthermore, Java EE 7 continues the ease of development push that characterized prior releases by bringing further simplification to enterprise development. It also adds new, important APIs such as the REST client API in JAX-RS 2.0 and the long awaited Concurrency Utilities for Java EE API, and plenty of improvements to all other components.

Statistics

Views

Total Views
2,359
Views on SlideShare
2,359
Embed Views
0

Actions

Likes
0
Downloads
41
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Java EE | Java EE 7: Developing for the Cloud | Arun Gupta Java EE | Java EE 7: Developing for the Cloud | Arun Gupta Presentation Transcript

  • The Java EE 7 Platform: Developing for the CloudArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta 1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Java EE 6 Implementations Fastest implementations of a Java EE release ever!2 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   3 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Java EE 74 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 …5 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 service6 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-tenancy7 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 JVMDeployer Machine Machine Machine PaaS Account Tenant 1 Tenant 2 Tenant 3 Manager Application Submitter PaaS Administrator Application Administrator 8 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 9 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 …)10 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 Serviceresources (e.g. LDAP stripe, datasource instantiation and Database Serviceconnection …) 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 …) Container11 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 )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 @JMSConnectionFactory ( name=“java:app/myJMSConnectionFactory”, resourceType=“javax.jms.QueueConnectionFactory”) @JMSDestination( name=“java:app/myQueue”, resourceType=“javax.jms.Queue”)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 @MailSession ( name=“java:app/mailSession”, from=“MyService@ExtraServices.com” )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 @ConnectorService ( name=“java:app/myCustomConnector”, type=“com.extraServices.customConnector.class”, properties = {…} )15 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 DemandSingle node Java EE Multi-Node Dynamic Self AdjustingNon-Elastic Multi-Instance Clustering SLA Driven Elasticity •  Service Levels •  Minimum and Maximum Instances •  Futures – Self Adjustment, Capacity On Demand 16 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”17 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (1) SimplyCRM   DiabloCloud  18 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (2) SimplyCRM   DiabloCloud   Applica3on   Developer   Writes App19 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (3) SimplyCRM   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager  20 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (4) SimplyCRM   DiabloCloud   Submits the application Application System  Administrator   Submitter App21 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (5) ExtraServices   DiabloCloud   Discovers App22 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (6) ExtraServices   DiabloCloud   Signs up as a customer PaaS  Customer   PaaS  Account  Manager   App23 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (7) ExtraServices   DiabloCloud   Deployer   System  Administrator   Customizes and deploys the application App24 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (8) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisions on Cloud infrastructure App25 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (9) ExtraServices   DiabloCloud   Deployer   System  Administrator   Provisioned and Deployed App26 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Walkthrough (10) ExtraServices   DiabloCloud   Access the application End-­‐Users   Provisioned and Deployed App27 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 application28 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 application29 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Demo PaaSing a Java EE Application in the Cloud30 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> 31 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • Service Provisioning Load Balancer Java EE Java EE ... Java EE Database32 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 injection33 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  34 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 Database35 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 source36 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 source37 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 table38 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 table39 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 Profile40 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.041 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 Process42 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 843 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/theaquarium44 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
  • The Java EE 7 Platform: Developing for the CloudArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta 45 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.