Weitere ähnliche Inhalte
Ähnlich wie Java EE 7 at JAX London 2011 and JFall 2011 (20)
Kürzlich hochgeladen (20)
Java EE 7 at JAX London 2011 and JFall 2011
- 1. The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
1 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 2. 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.
2 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 3. Java EE 6 Implementations
Fastest implementations of a Java EE release ever!
3 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 4. Java EE – Developer Adoption
Downloads
40 Million+
45
Millions
40
35
30
25
20
15
10
5
0
FY
06
FY
07
FY
08
FY
09
FY
10
FY
11
FY
12
4 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 5. Java EE 7
5 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 6. Today’s Cloud Offerings Are Vendor-Specific
Infrastructure as Platform as Software as
a Service a Service a Service
…
6 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 7. Java EE 7 Focus: Platform as a Service
• Provide way for customers and users to leverage public,
private, and hybrid clouds
• PaaS support entails evolutionary change
• 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
7 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 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
8 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 9. Roles
Developer
PaaS Provider
PaaS
Customer/ JVM JVM JVM JVM JVM JVM JVM JVM JVM
Tenant Machine Machine Machine PaaS Product
Provider
JVM JVM JVM JVM JVM JVM JVM JVM JVM
Deployer
Machine Machine Machine PaaS Account
Tenant 1 Tenant 2 Tenant 3 Manager
Application
Submitter
PaaS
Administrator
Application
Administrator
9 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 10. Java EE 7 Focus Area: Cloud Services, Not Just
APIs
• In the cloud tenant applications Tenant App Tenant App Tenant App
consume services Java EE Application Level Services
Queuing Persistence Caching
• PaaS administrators host, Service Service Service
…
configure, and manage
PaaS Infrastructure Services
application and infrastructure Security Provisioning File
…
services Service Service Service
Platform as a Service - Services
• Existing APIs in Java EE need to
IaaS Infrastructure Services
be updated to be service-enabled
and tenant-aware Virt VIP VLAN Volume LBR …
– Example: pluggable services, late binding Infrastructure as a Service
and tenant id injection
10 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 11. Old Java EE model
Database
1
Provision and Initialize Service
• Configure Java EE resources –
JDBC, JMS etc LDAP
Service
Deploy Application EAR
2
Provision and Initialize
•
Messaging
3
Provision and Initialize
Service
Application
4
Provision and Initialize
Container
5
Deploy Application (EAR/
GAR/SAR …)
11 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 12. Java EE 7 Model: Auto-Provision Services
from Application Dependencies
• Provision and deploy application 1
Provision and Initialize Cloud Administration Service
resources (e.g. LDAP stripe, data
source instantiation and Database
Service
connection …) 2
Provision and Initialize
• Extensible Deployment Models LDAP
Supporting Multiple Frameworks 3
Provision and Initialize Service
• Spring, Seam, Play …
Messaging
4
Provision and Initialize
Service
Application
5
Deploy Application (EAR/
GAR/SAR …)
Container
12 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 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
)
13 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 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”)
14 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 15. 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”
)
15 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 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 = {…}
)
16 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 17. Java EE 7 Focus Area: Elasticity
Java EE 7 Focus:
Move the Bar Right
Elasticity Continuum
Java EE Cluster Elastic Cluster
Elastic Cluster
Capacity
Ca
on Demand
Single node Java EE Multi-Node Dynamic Self Adjusting
Non-Elastic Multi-Instance Clustering SLA Driven Elasticity
• Service Levels
• Minimum and Maximum Instances
• Futures – Self Adjustment, Capacity On Demand
17 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 18. 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”
18 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 19. Walkthrough (1)
SimplyCRM
DiabloCloud
19 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 20. Walkthrough (2)
SimplyCRM
DiabloCloud
Applica3on
Developer
Writes
App
20 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 21. Walkthrough (3)
SimplyCRM
DiabloCloud
Signs up as a customer
PaaS
Customer
PaaS
Account
Manager
21 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 22. Walkthrough (4)
SimplyCRM
DiabloCloud
Submits the application
Application System
Administrator
Submitter
App
22 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 23. Walkthrough (5)
ExtraServices
DiabloCloud
Discovers
App
23 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 24. Walkthrough (6)
ExtraServices
DiabloCloud
Signs up as a customer
PaaS
Customer
PaaS
Account
Manager
App
24 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 25. Walkthrough (7)
ExtraServices
DiabloCloud
Deployer
System
Administrator
Customizes and
deploys the application
App
25 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 26. Walkthrough (8)
ExtraServices
DiabloCloud
Deployer
System
Administrator
Provisions on
Cloud
infrastructure
App
26 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 27. Walkthrough (9)
ExtraServices
DiabloCloud
Deployer
System
Administrator
Provisioned and
Deployed App
27 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 28. Walkthrough (10)
ExtraServices
DiabloCloud
Access the application
End-‐Users
Provisioned and
Deployed App
28 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 29. Walkthrough (11)
ExtraServices
DiabloCloud
End-‐Users
Access the application
Provisioned and
Deployed App
Administrator
Administers the application
29 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 30. Walkthrough (12)
ExtraServices
DiabloCloud
System
Administrator
Monitors
End-‐Users
Access the application
Provisioned and
Deployed App
Administrator
Administers the application
30 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 31. Demo
PaaSing a Java EE Application in the Cloud
31 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 32. Conference Planning in the Cloud
Java EE Application
JSF JPA Deploy
Services
EJB 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">
http://glassfish.org/javaone2011 <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>
32 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 33. Service Provisioning
Load
Balancer
Java EE Java EE ... Java EE
Database
33 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 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
• Mapping to tenant done by the container
• Tenant id available to application
– E.g., under java:comp/tenantId or by injection
34 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 35. Java EE 7 Focus Area: Application Level Multi
Tenancy
• Goal: Simple configuration
• Flexible tenant discriminator support
• Other areas impacted - JNDI, JMS, EJB …
@Entity
@Table(name=“EMP”)
@MultiTenant(SINGLE_TABLE)
depart_id DEPT_ID
@TenantDiscriminator(name=“company-‐id”,
columnName=“COMPANY”)
public
class
Employee
{
EMP
EMP_ID VERSION F_NAME L_NAME GENDER DEPT_ID
1 1 John Doe M 1
2 3 Jane Doe F 2
SELECT
*
FROM
EMPLOYEE
WHERE
L_NAME
LIKE
‘D%’
AND
DEPT_ID=
1
35 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 36. Persistence Layer
Multi-tenant Taxonomies
• Dedicated App, Dedicated Database
• Shared App, Dedicated Database
• Dedicated App, Shared Database
• Shared App, Shared Database
36 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 37. Dedicated App, Dedicated Database
Persistence Layer Multi-Tenant Taxonomies
App is configured for tenant-id
at bootstrap and connects to
the data source
37 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 38. Shared App, Dedicated Database
Persistence Layer Multi-Tenant Taxonomies
App knows tenant-id and
connects with the tenant-specific
data source
38 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 39. Dedicated App, Shared Database
Persistence Layer Multi-Tenant Taxonomies
Tenant-id configured at bootstrap
and connects to tenant-specific table
or striped table
39 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 40. Shared App, Shared Database
Persistence Layer Multi-Tenant Taxonomies
App knows tenant-id and
connects to tenant specific
table or striped table
40 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 41. 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
– 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
41 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 42. Java EE 7 – Candidate JSRs
Web Jcache 1.0
JAX-RS JSP 2.2
Conainer
2.0 JSF 2.2 (JSR 107)
CDI Extensions EL 3.0
Extensions
Bean Validation 1.1
Concurrency
Servlet 3.1 Utilities 1.0
State
CDI 1.1 / Interceptors 1.1 / JSR 250 1.1 Management 1.0
Batch
Managed Beans 1.0 EJB 3.2 Processing 1.0
JPA 2.1, JTA 1.1 JMS 2.0 JSON 1.0
42 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 43. Transparency
• Our 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
43 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 44. 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
44 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 45. How to Get in the Loop
• 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
45 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
- 46. The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
46 Copyright © 2011, Oracle and/or its affiliates. All rights reserved.