Professional Documents
Culture Documents
JavaEE7 JFokus2012
JavaEE7 JFokus2012
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.
Java EE 7
Modularity
Building on Jigsaw Focus on OSGi interop Supporting Profiles & Modular Applications
HTML5
Emerging Web Standards require a programming model JSON, WebSockets, off-line, APIs & DOM
PaaS support entails evolutionary change Provide way for customers and users to leverage public, private, and hybrid clouds
Roles
Developer PaaS Customer/ Tenant PaaS Provider
Deployer
Tenant 2
Tenant 3
Database Service
12
Database Service
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! ) !
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)!
15 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
Services
Cloud apps consume services
Persistence, queueing, mail, caching,
Service metadata facilitates ease of use when deploying into the cloud
@MailSession (! name=java:app/mailSession,! from=MyService@ExtraServices.com! ) !
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 = {}! ) !
17
Elasticity
Java EE 7 Focus: Move the Bar Right
Elasticity Continuum
Java EE Cluster
Elastic Cluster Elastic Cluster
Capacity Ca on Demand
Service Levels Minimum and Maximum Instances Futures Self Adjustment, Capacity On Demand
18 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
Example Scenario
A software company writes an application, submits it to a PaaS provider, then any number of tenants sign up for the application, deploy it, their end users access it
19
Walkthrough (1)
SimplyCRM
DiabloCloud
20
Walkthrough (2)
SimplyCRM
Applica3on
Developer
Writes DiabloCloud
App
21
Walkthrough (3)
SimplyCRM
PaaS
Customer
Signs up as a customer DiabloCloud
PaaS
Account
Manager
22
Walkthrough (4)
SimplyCRM
Submits the application System
Administrator
DiabloCloud
Application Submitter
App
23
Walkthrough (5)
ExtraServices
Discovers DiabloCloud
App
24
Walkthrough (6)
ExtraServices
Signs up as a customer DiabloCloud
PaaS
Customer
PaaS
Account
Manager
App
25
Walkthrough (7)
ExtraServices
Deployer
Customizes and deploys the application DiabloCloud
System
Administrator
App
26
Walkthrough (8)
ExtraServices
Deployer
DiabloCloud
System
Administrator
27
Walkthrough (9)
ExtraServices
Deployer
DiabloCloud
System
Administrator
28
Walkthrough (10)
ExtraServices
DiabloCloud
End-Users
29
Walkthrough (11)
ExtraServices
DiabloCloud
End-Users
Administrator
30
Walkthrough (12)
ExtraServices
DiabloCloud
System
Administrator
Monitors End-Users Access the application Provisioned and Deployed App Administrator Administers the application
31
Demo
PaaSing a Java EE Application in the Cloud
glassfish.org/javaone2011
32
Deploy
EJB
Services Metadata
<glassfish-services> <service-description init-type="LB" name="ConferencePlanner-lb"> <template id="LBNative"/> <configurations> <configuration name="https-port" value="50443"/> <configuration name="ssl-enabled" value="false"/> <configuration name="http-port" value="50080"/> </configurations></service-description> <service-description init-type="JavaEE" name="ConferencePlanner"> <characteristics> <characteristic name="service-type" value="JavaEE"/> </characteristics> <configurations> <configuration name="max.clustersize" value="4"/> <configuration name="min.clustersize" value="2"/> </configurations> </service-description>! . . . </glassfish-services>!
33
Service Provisioning
Load Balancer
Java EE
Java EE
...
Java EE
Database
34
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
Pruning
EJB CMP and BMP, JAX-RPC, Deployment API
CDI Extensions
JAX-RS 2.0
JSF 2.2
Servlet 3.1 CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Managed Beans 1.0 JPA 2.1 JTA 1.1 EJB 3.2 JMS 2.0
37
38
41
42
Transparency
Oracles 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 download area Publicly viewable issue tracker Commitment to update to JCP 2.8 Process
43 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
44
GlassFish Roadmap
GlassFish v3
Java EE 6 support Single instance GlassFish Enterprise Mgr
2009
2010
2011
2012
GlassFish Server 4
Java EE 7 Multitenancy PaaS-enablement
45
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
46 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta, arun.p.gupta@oracle.com
47 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
48