Download as pdf or txt
Download as pdf or txt
You are on page 1of 48

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

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

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.

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

Java EE 6 Platform December 10, 2009

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

Java EE 6 Key Statistics


40+ Million Java EE 6 Component Downloads #1 Choice for Enterprise Developers #1 Application Development Platform Fastest implementation of a Java EE release

Copyright 2012, Oracle and/or its 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
5 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Todays Cloud Offerings are all Proprietary


Infrastructure as a Service Platform as a Service Software as a Service

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

Java EE 7

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

Java EE 7 and 8 Focus Areas


Cloud
Provisioning Elastic & Autonomic Scalability Multi-Tenancy

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

Copyright 2012, Oracle and/or its 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

Copyright 2012, 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-tenancy


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

Roles
Developer PaaS Customer/ Tenant PaaS Provider

JVM JVM JVM


Machine

JVM JVM JVM


Machine

JVM JVM JVM


Machine

PaaS Product Provider

Deployer

JVM JVM JVM


Machine

JVM JVM JVM


Machine

JVM JVM JVM


Machine

Tenant 1 Application Submitter Application Administrator


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

Tenant 2

Tenant 3

PaaS Account Manager PaaS Administrator

Existing Java EE model


1 Provision and Initialize

Database Service

Configure Java EE resources JDBC, JMS etc Deploy Application EAR

Provision and Initialize

LDAP Service Messaging Service Application Container

Provision and Initialize

Provision and Initialize

Deploy Application (EAR/ GAR/SAR )

12

Copyright 2012, Oracle and/or its 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
4 Provision and Initialize 1 Provision and Initialize Cloud Administration Service

Provision and Initialize

Database Service

Provision and Initialize

LDAP Service Messaging Service Application Container

Deploy Application (EAR/ GAR/SAR )

13

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
@DataSourceDefinition(! name=java:app/jdbc/myDB,! className=oracle.jdbc.pool.OracleDataSource,! isolationLevel=TRANSACTION_REPEATABLE_READ,! initialPoolSize=5! ) !

14

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

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
@ConnectorService (! name=java:app/myCustomConnector,! type=com.extraServices.customConnector.class,! properties = {}! ) !

17

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

Elasticity
Java EE 7 Focus: Move the Bar Right

Elasticity Continuum
Java EE Cluster
Elastic Cluster Elastic Cluster

Capacity Ca on Demand

Single node Non-Elastic

Java EE Multi-Node Multi-Instance Clustering

Dynamic Self Adjusting SLA Driven Elasticity

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

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

Walkthrough (1)
SimplyCRM DiabloCloud

20

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

Walkthrough (2)
SimplyCRM Applica3on Developer Writes DiabloCloud

App

21

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

Walkthrough (3)
SimplyCRM PaaS Customer Signs up as a customer DiabloCloud PaaS Account Manager

22

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

Walkthrough (4)
SimplyCRM Submits the application System Administrator DiabloCloud Application Submitter

App

23

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

Walkthrough (5)
ExtraServices Discovers DiabloCloud App

24

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

Walkthrough (6)
ExtraServices Signs up as a customer DiabloCloud PaaS Customer PaaS Account Manager

App

25

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

Walkthrough (7)
ExtraServices Deployer Customizes and deploys the application DiabloCloud System Administrator

App

26

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

Walkthrough (8)
ExtraServices Deployer DiabloCloud System Administrator

Provisions on Cloud infrastructure


App

27

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

Walkthrough (9)
ExtraServices Deployer DiabloCloud System Administrator

Provisioned and Deployed App

28

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

Walkthrough (10)
ExtraServices DiabloCloud

End-Users

Access the application

Provisioned and Deployed App

29

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

Walkthrough (11)
ExtraServices DiabloCloud

End-Users

Access the application Provisioned and Deployed App

Administrator

Administers the application

30

Copyright 2012, 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 application

31

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

Demo
PaaSing a Java EE Application in the Cloud

glassfish.org/javaone2011

32

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

Conference Planning in the Cloud


Java EE Application
JSF JPA

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

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

Service Provisioning
Load Balancer

Java EE

Java EE

...

Java EE

Database

34

Copyright 2012, 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!
35 Copyright 2012, 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


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


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

Java EE 7 Candidate JSRs


Web Container Extensions

Bean Validation 1.1

CDI Extensions

JAX-RS 2.0

JSF 2.2

JSP 2.2 EL 3.0

Jcache 1.0 (JSR 107)


Concurrency Utilities 1.0 State Management 1.0 Batch Processing 1.0 JSON 1.0

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

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

Java Persistence API 2.1


@NamedStoredProcedureQuery, StoredProcedureQuery! Bulk update/delete using Criteria! User-defined functions using FUNCTION! Persistence Context Synchronization

38

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

Java API for RESTful Web Services 2.0


Client-side API Validation Hypermedia Alignment with CDI Server-side content negotiation (qs) Filters and Entity Interceptors Client-side and Server-side Async
39 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

JavaServer Faces 2.2


Queue control for Ajax requests File Upload component (Non-Ajax & Ajax) Injection in all JSF artifacts including converters & validators @FaceletsResourceResolver! Instantiating composite components in Java . . .
40 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Contexts & Dependency Injection 1.1


Embedded mode to startup outside Java EE container Global ordering of interceptors and decorators API for managing built-in contexts Send Servlet events as CDI events . . .

41

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

Enterprise JavaBeans 3.2


Three-part specification
Core CMT transactions on Managed Beans, Non-persistent timer and Async method to Lite Optional Entity Beans, JAX-RPC Web service endpoint Interceptors

Alignment with JMS 2.0

42

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

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 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
43 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Status and Schedule


All JSRs up and running Early Drafts: JSF 2.2, JAX-RS 2.0, JPA 2.1, CDI 1.1, EJB 3.2 Final release target: Q3 2012 Date-driven release: Anything not ready will be deferred to Java EE 8

44

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

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

GlassFish Server 3.1


Centralized administration Clustering / HA GlassFish Server Control

GlassFish Server 3.1.2


Bug Fixes Incremental features

2009

2010

2011

2012

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 4
Java EE 7 Multitenancy PaaS-enablement

45

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

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

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

You might also like