43
1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 8 Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

  • Upload
    shaman

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy. - PowerPoint PPT Presentation

Citation preview

Page 1: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 7: Developing for the CloudArun Gupta, Java EE & GlassFish Guy

Page 2: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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.

Page 3: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 6 PlatformDecember 10, 2009

Page 4: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Top Ten Features in Java EE 6

1. EJB packaging in a WAR2. Servlet and CDI extension points3. Optional web.xml4. Type-safe dependency injection5. CDI Events6. JSF standardizing on Facelets7. EJBContainer API8. @Schedule9. EJB No Interface View10.Web Profile

Page 5: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 6 Implementations Fastest implementations of a Java EE release ever!

Page 6: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Today’s Cloud Offerings are all Proprietary

Infrastructure as Infrastructure as a Servicea Service

Infrastructure as Infrastructure as a Servicea Service

Platform as Platform as a Servicea Service

Platform as Platform as a Servicea Service

Software as Software as a Servicea Service

Software as Software as a Servicea Service

Page 7: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 7

Page 8: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

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

Page 9: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

Page 10: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Cloud Services, Not Just APIs

• Tenant applications consume services

• PaaS administrators host, configure, and manage application and infrastructure services

• Existing APIs in Java EE need to be updated to be service-enabled and tenant-aware– Example: pluggable services

Queuing Service

PersistenceService

CachingService

Security Service

Infrastructure as a Service

Platform as a Service - Services

Provisioning Service

FileService

PaaS Infrastructure Services

Java EE Application Level Services

Tenant App Tenant App Tenant App

Virt VIP VLAN Volume LBR

IaaS Infrastructure Services

Page 11: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Roles

Developer

PaaS Customer/

Tenant

Application Submitter

Application Administrator

PaaS Provider

PaaS Product Provider

PaaS Account Manager

PaaS Administrator

Deployer

Tenant 1 Tenant 2 Tenant 3

Machine

JVM JVM JVM

Machine

JVM JVM JVM

Machine

JVM JVM JVM

Machine

JVM JVM JVM

Machine

JVM JVM JVM

Machine

JVM JVM JVM

Page 12: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Existing Java EE model

• Configure Java EE resources – JDBC, JMS etc

• Deploy Application EAR

Database Service1

2

4

5

LDAPService

Provision and Initialize

Provision and Initialize

Provision and Initialize

Provision and Initialize

3

Messaging Service

Application Container

Deploy Application (EAR/GAR/SAR …)

Page 13: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 7 Model: Auto-Provision Services from Application Dependencies

• Provision and deploy application resources (e.g. LDAP stripe, data source instantiation and connection …)

• Extensible Deployment Models Supporting Multiple Frameworks

• Spring, Seam, Play …

Database Service

Cloud Administration Service1

2

4

5

LDAPService

Provision and Initialize

Provision and Initialize

Provision and Initialize

Provision and Initialize

3

Messaging Service

Application ContainerDeploy Application

(EAR/GAR/SAR …)

Page 14: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

)

Page 15: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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”)

Page 16: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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=“[email protected]

)

Page 17: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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 = {…}

)

Page 18: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Elasticity

• Service Levels

• Minimum and Maximum Instances

• Futures – Self Adjustment, Capacity On Demand

Elasticity Continuum

Single nodeNon-Elastic

Dynamic Self AdjustingSLA Driven Elasticity

Java EE Multi-Node Multi-Instance Clustering

Java EE 7 Focus:Move the Bar Right

Java EE Cluster

Ca

Elastic ClusterCapacity

on Demand

Elastic Cluster

Page 19: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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”

Page 20: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (1)DiabloCloudDiabloCloudSimplyCRMSimplyCRM

Page 21: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (2)SimplyCRMSimplyCRM

ApplicationDeveloper

ApplicationDeveloper

AppApp

Writes

DiabloCloudDiabloCloud

Page 22: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (3)

PaaS Account ManagerPaaS Account ManagerPaaS CustomerPaaS CustomerSigns up as a customer

SimplyCRMSimplyCRM DiabloCloudDiabloCloud

Page 23: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (4)

ApplicationSubmitter

ApplicationSubmitter

AppApp

Submits the applicationSystem AdministratorSystem Administrator

SimplyCRMSimplyCRM DiabloCloudDiabloCloud

Page 24: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (5)ExtraServicesExtraServices

AppAppDiscovers

DiabloCloudDiabloCloud

Page 25: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (6)

PaaS CustomerPaaS CustomerSigns up as a customer

DiabloCloudDiabloCloudExtraServicesExtraServices

PaaS Account ManagerPaaS Account Manager

AppApp

Page 26: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

AppApp

Walkthrough (7)

DeployerDeployer

Customizes anddeploys the application

DiabloCloudDiabloCloudExtraServicesExtraServices

System AdministratorSystem Administrator

Page 27: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

AppApp

Walkthrough (8)

Provisions onCloud

infrastructure

DiabloCloudDiabloCloudExtraServicesExtraServices

System AdministratorSystem AdministratorDeployerDeployer

Page 28: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (9)

Provisioned and Deployed App

Provisioned and Deployed App

DiabloCloudDiabloCloudExtraServicesExtraServices

System AdministratorSystem AdministratorDeployerDeployer

Page 29: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (10)

End-UsersEnd-UsersAccess the application

DiabloCloudDiabloCloudExtraServicesExtraServices

Provisioned and Deployed App

Provisioned and Deployed App

Page 30: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (11)

End-UsersEnd-Users Access the application

AdministratorAdministrator Administers the application

DiabloCloudDiabloCloudExtraServicesExtraServices

Provisioned and Deployed App

Provisioned and Deployed App

Page 31: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Walkthrough (12)

Monitors

DiabloCloudDiabloCloudExtraServicesExtraServices

System AdministratorSystem Administrator

End-UsersEnd-Users Access the application

AdministratorAdministrator Administers the application

Provisioned and Deployed App

Provisioned and Deployed App

Page 32: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

DemoPaaSing a Java EE Application in the Cloud

Page 33: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Conference Planning in the Cloud

Java EE ApplicationJava EE Application

Deploy

Services Services MetadataMetadata

JSFJSF JPAJPA

http://glassfish.org/javaone2011

<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>

Page 34: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Service Provisioning

DatabaseDatabaseDatabaseDatabase

Java EE Java EE Java EE. . .

Load Load BalancerBalancer

Load Load BalancerBalancer

Page 35: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

Page 36: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

Page 37: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 7 – Candidate JSRs

JPA 2.1JPA 2.1

Managed Beans 1.0Managed Beans 1.0 EJB 3.2EJB 3.2

CDI 1.1 / Interceptors 1.1 / JSR 250 1.1CDI 1.1 / Interceptors 1.1 / JSR 250 1.1

Servlet 3.1Servlet 3.1

CDIExtension

s

CDIExtension

s

JSP 2.2EL 3.0

JSP 2.2EL 3.0JSF 2.2JSF 2.2JAX-RS

2.0JAX-RS

2.0

WebContainer

Extensions

WebContainer

Extensions

JMS 2.0JMS 2.0

Jcache 1.0(JSR 107)Jcache 1.0(JSR 107)

ConcurrencyUtilities 1.0

ConcurrencyUtilities 1.0

StateManagement 1.0

StateManagement 1.0

Batch Processing 1.0

Batch Processing 1.0

JSON 1.0JSON 1.0JTA 1.1JTA 1.1

Page 38: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

Page 39: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Status and Schedule

• All JSRs up and running

• Early Drafts: JSF 2.2, JAX-RS 2.0, JPA 2.1, CDI 1.1

• Final release target: Q3 2012

• Date-driven release: Anything not ready will be deferred to Java EE 8

Page 40: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

GlassFish Roadmap

20092009 20102010 20112011

GlassFish Server 3.1.2•Bug Fixes•Incremental features

GlassFish Server 3.1.2•Bug Fixes•Incremental features

GlassFish Server 3.1•Centralized administration•Clustering / HA•GlassFish Server Control

GlassFish Server 3.1•Centralized administration•Clustering / HA•GlassFish Server Control

20122012

GlassFish Server 4•Java EE 7•Multitenancy•PaaS-enablement

GlassFish Server 4•Java EE 7•Multitenancy•PaaS-enablement

GlassFish v3•Java EE 6 support•Single instance•GlassFish Enterprise Mgr

GlassFish v3•Java EE 6 support•Single instance•GlassFish Enterprise Mgr

GlassFish Server 3.0.1•Oracle branding•Oracle platform support•Oracle interoperability

GlassFish Server 3.0.1•Oracle branding•Oracle platform support•Oracle interoperability

GlassFish Server 3.1.1•Bug fixes•Updated components•Incremental features

GlassFish Server 3.1.1•Bug fixes•Updated components•Incremental features

Page 41: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

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

Page 42: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8

Java EE 7: Developing for the CloudArun Gupta, Java EE & GlassFish Guyblogs.oracle.com/arungupta, @arungupta,[email protected]

Page 43: Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy

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

Insert Information Protection Policy Classification from Slide 8