java ee technical keynote at javaone latin america 2011
DESCRIPTION
Java EE Technical Keynote at JavaOne Latin America 2011TRANSCRIPT
1 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Java EE 7: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy
2 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Java EE 6 Platform December 10, 2009
3 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Top Ten Features in Java EE 6
1. EJB packaging in a WAR 2. Servlet and CDI extension points 3. Optional web.xml!4. Type-safe dependency injection 5. CDI Events 6. JSF standardizing on Facelets 7. EJBContainer API 8. @Schedule!9. EJB No Interface View 10. Web Profile
4 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Java EE 6 Implementations Fastest implementations of a Java EE release ever!
5 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
• Java EE 6 and Developer Productivity Simplified Deployment and Management with Virtualization Integrated Traffic Management Enhanced High Availability and Disaster Recovery Much Higher Performance Seamless Upgrade
Released Today
6 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Today’s Cloud Offerings are all Proprietary
Infrastructure as a Service
Platform as a Service
Software as a Service
8 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
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 © 2011, Oracle and/or it’s affiliates. All rights reserved.
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
10 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Existing Java EE model
• Configure Java EE resources – JDBC, JMS etc
• Deploy Application EAR
Database Service 1
2
4
5
LDAP Service
Provision and Initialize
Provision and Initialize
Provision and Initialize
Provision and Initialize
3
Messaging Service
Application Container
Deploy Application (EAR/GAR/SAR …)
11 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
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 Service 1
2
4
5
LDAP Service
Provision and Initialize
Provision and Initialize
Provision and Initialize
Provision and Initialize
3
Messaging Service
Application Container Deploy Application (EAR/
GAR/SAR …)
12 | Copyright © 2011, Oracle and/or it’s 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 it’s 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 it’s affiliates. All rights reserved.
Java EE 7 Focus Area: Elasticity
• Service Levels • Minimum and Maximum Instances • Futures – Self Adjustment, Capacity On Demand
Elasticity Continuum
Single node Non-Elastic
Dynamic Self Adjusting SLA Driven Elasticity
Java EE Multi-Node Multi-Instance Clustering
Java EE 7 Focus: Move the Bar Right
Java EE Cluster Ca
Elastic Cluster Capacity
on Demand
Elastic Cluster
15 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Demo PaaSing a Java EE Application in the Cloud
16 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Conference Planning in the Cloud
Java EE Application
Deploy
EJB Services Metadata
JSF JPA
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>
17 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Service Provisioning
Database
Java EE Java EE Java EE . . .
Load Balancer
18 | Copyright © 2011, Oracle and/or it’s 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 – 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
19 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Java EE 7 – Candidate JSRs
JPA 2.1, JTA 1.1
Managed Beans 1.0 EJB 3.2
CDI 1.1 / Interceptors 1.1 / JSR 250 1.1
Servlet 3.1
CDI Extensions
JSP 2.2 EL 3.0 JSF 2.2 JAX-RS
2.0 Web
Container Extensions
Bea
n Va
lidat
ion
1.1
JMS 2.0
Jcache 1.0 (JSR 107)
Concurrency Utilities 1.0
State Management 1.0
Batch Processing 1.0
JSON 1.0
20 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
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 match JCP 2.8 Process
21 | Copyright © 2011, Oracle and/or it’s 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
22 | Copyright © 2011, Oracle and/or it’s affiliates. All rights reserved.
Java EE Roadmap
2009 2010 2011
GlassFish Server 3.1.2 • Bug Fixes • Incremental features
GlassFish Server 3.1 • Centralized administration • Clustering / HA • GlassFish Server Control
2012
GlassFish Server 4 • Java EE 7 • Multitenancy • PaaS-enablement
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.1.1 • Bug fixes • Updated components • Incremental features