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
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.
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
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
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!
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
7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Insert Information Protection Policy Classification from Slide 8
Java EE 7
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
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
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
…
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
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 …)
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 …)
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
)
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”)
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]”
)
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 = {…}
)
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
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”
20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Insert Information Protection Policy Classification from Slide 8
Walkthrough (1)DiabloCloudDiabloCloudSimplyCRMSimplyCRM
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
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
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
24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Insert Information Protection Policy Classification from Slide 8
Walkthrough (5)ExtraServicesExtraServices
AppAppDiscovers
DiabloCloudDiabloCloud
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
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
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
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
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
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
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
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
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>
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
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
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
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
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
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
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
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
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]
43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Insert Information Protection Policy Classification from Slide 8
Top Related