1. 1 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag, 17.10.2011
2. Disclaimer
The thoughts expressed here are
the personal opinions of the author
and no official statement
of the msg systems ag.
2 Markus Eisele, Oracle ACE Director FMW & SOA msg systems ag
4. Agenda
1. Java EE – Past, Present and Future
2. Java EE 7 – Platform as a Service
3. All the Specs
4. GlassFish 4.0
4 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
5. Java EE Past, Present and Future
Cloud
Flexible Java EE 7
Ease of Multi-tenancy,
Java EE 6 Isolation
Development
Pruning Application
Extensibility Versioning,
Web Java EE 5 Profiles Packaging
Services Ease-of-dev
Ease of
EJB Lite Virtualization
Development
RESTful WS
J2EE 1.4 Annotations
CDI Modularity
EJB 3.0
Robustness Persistence API
Web Services, New Roles
Management, New and
Enterprise J2EE 1.3 Deployment, Updated
Java Async. Web Services
Platform CMP, `
Connector
Connector
J2EE 1.2 Architecture
Web Profile
&
Servlet, JSP, Managed
EJB, JMS Beans 1.0
JPE RMI/IIOP
Project
May 1998 Dec 1999 Sep 2001 Nov 2003 May 2006 Dec 2009 Q3 2012
10 specs 13 specs 20 specs 23 specs 28 specs 28+ specs
5 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
6. 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
6 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
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
multitenancy
8 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
9. Java EE 7 Roles
9 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
10. Cloud Services – not just APIs
• In the cloud 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, late binding and
tenant id injection
10 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
11. Existing Java EE Model
• Old Java EE Model
Configure Java EE
resources – JDBC, JMS
etc
Deploy Application EAR
• Java EE 7 Model
Provision and deploy
application resources
(e.g. LDAP stripe, data
source instantiation and
connection …)
• Extensible Deployment
Models Supporting
Multiple Frameworks
Spring, Seam, Play …
11 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
12. Auto-Provision Services from Application Dependencies
• Java EE 7 Model
Provision and deploy
application resources
(e.g. LDAP stripe, data
source instantiation and
connection …)
• Extensible Deployment
Models Supporting
Multiple Frameworks
Spring, Seam, Play …
12 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
13. Elasticity
• Service Levels
• Minimum and Maximum Instances
• Futures – Self Adjustment, Capacity On Demand
13 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
14. And … not only clouds:
• 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
14 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
15. Java EE 7 at a Glance
15 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
16. Java EE 7 – JSR 342
• The main theme is to easily run applications on private or
public clouds
• The platform will define application metadata descriptor to
describe PaaS execution environment such as multi-tenancy,
resources sharing, quality-of-service, and dependencies
between applications
• Embrace latest standards like HTML5, WebSocket, JSON and
have a standards-based API for each one of them
• Remove inconsistencies between Managed Beans, EJB,
Servlets, JSF, CDI, and JAX-RS
• Possible inclusion of JAX-RS 2.0 in the Web Profile, revised
JMS 2.0 API
• Technology Refresh for several existing technologies (more
on this below) and possible inclusion of Concurrency Utilities
for Java EE (JSR 236) and JCache (JSR 107)
16 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
17. Java EE 7 – JSR 342
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=342
• Spec lead: Linda DeMichiel, Bill Shannon (Oracle)
• Project: javaee-spec.java.net
• Mailing Lists Archive:
jsr342-expert@javaee-spec.java.net
users@javaee-spec.java.net
17 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
18. JPA 2.1 – JSR 338
• Multi-Tenancy (Table discriminator)
• Stored Procedures and vendor functions
• Update and Delete Critieria queries
• Custom types and transformation methods - Query by
Example
• Dynamic PU Definition
• Persistence Context synchronization
• CDI injection into listeners
• Schema Generation (Additional mapping metadata to
provide better standardization)
18 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
19. JPA 2.1 – JSR 338
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=338
• Spec lead: Linda DeMichiel (Oracle)
• Project: jpa-spec.java.net
• Mailing Lists Archive:
jsr338-experts@jpa-spec.java.net
users@jpa-sepc.java.net
19 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
20. Java Message Server 2.0 -JSR 343
• This could be considered as the most mature spec in
general. It had a long 9 years to go since it's last
maintenance release (April 2002).
Ease of development - changes to the JMS
programming model to make the application
development simpler and easier
• Remove/Clarify ambiguities in the existing specification
• Integration with CDI
• Clarification of the relationship between JMS and other
Java EE specs
• A new mandatory API to allow any JMS provider to be
integrated with any Java EE container
• Multi-tenancy and other cloud-related features from the
platform
20 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
21. Java Message Server 2.0 -JSR 343
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=343
• Spec lead: Nigel Deakin (Oracle)
• Project: jms-spec.java.net
• Mailing List Archive:
jsr-343-experts@jms-spec.java.net
users@jms-spec.java.net
21 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
22. EJB 3.2 – JSR 345
• Enhancements to the EJB architecture to enable PaaS,
such as multi-tenancy
• Factorization of container-managed transactions to use
outside EJB
• Further use of annotations
• Alilgnment and integration with other specifications in
the platform
• Incremental factorization (Interceptors)
• Proposed Optional: BMP/CMP
• Proposed Optional: Web Services invocation using
RPC
22 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
23. EJB 3.2 – JSR 345
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=345
• Spec lead: Marina Vatkina (Oracle)
• Project: ejb-spec.java.net
• Mailing List Archive:
jsr-345-experts@ejb-spec.java.net
users@ejb-spec.java.net
23 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
24. CDI 1.1 – JSR 346
• Global ordering of interceptors and decorators
• API for managing built-in contexts
• Embedded mode to allow startup outside Java EE
container
• Declarative control over which packages/beans are
scanned in an archive
Injection for static members such as loggers
• Send Servlet events as CDI event
24 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
25. CDI 1.1 – JSR 346
• Approved by the JCP, Early Draft Available
Spec lead: Pete Muir (RedHat)
• Project: CDI 1.1 Development
Mailing List Archive:
http://lists.jboss.org/pipermail/cdi-dev/
https://twitter.com/jsr346
25 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
26. Servlet 3.1 – JSR 340
• Optimize the PaaS model for Web applications
• Multi tenancy for security, session, resources, etc.
• Asynchronous IO based on NIO2
• Simplfiied asynchronous Servlets
• Utilize Java EE concurrency utilities
• Enable support for WebSockets
26 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
27. Servlet 3.1 – JSR 340
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=340
• Spec lead: Shing-Wai Chan, Rajiv Mordani (Oracle)
• Project: servlet-spec.java.net
• Mailing List Archive:
jsr340-experts@servlet-spec.java.net
users@servlet-spec.java.net
27 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
28. Java Server Faces 2.2 - JSR 344
• Ease of Development - making configuration options
dynamic, make cc:interface in composite components
optional, shorthand URLs for Facelet tag libraries,
integration with CDI, OSGi support for JSF artifacts
Support implementation of Portlet Bridge 2.0 (JSR 329)
• Support for HTML5 features like HTML5 Forms,
Metadata, Heading and Section content model
• Flow management, Listener for page navigation events,
and new components like FileUpload and BackButton
28 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
29. Java Server Faces 2.2 - JSR 344
• Approved by the JCP, Early Draft Available
• http://jcp.org/en/jsr/detail?id=344
• Spec lead: Ed Burns (Oracle)
• Project: javaserverfaces-spec-public.java.net
• Mailing List Archive:
jsr344-experts@javaserverfaces-spec-public.java.net
users@javaserverfaces-spec-public.java.net
29 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
30. JAX-RS 2.0 – JSR 339
• Client API - low level using builder pattern and possibly
a higher level on top of that
• Hypermedia - easily create and process links
associated with resources
Form or Query parameter validation using Bean
Validation
• Closer integration with @Inject, etc
• Server-side asynchronous request processing
• Server-side content negotiation using "qs"
30 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
31. JAX-RS 2.0 – JSR 339
• Approved by the JCP, Early Draft Available, Draft
Javadocs
• http://jcp.org/en/jsr/detail?id=339
• Spec lead: Santiago Pericas-Geersten, Marek Potociar
(Oracle)
Project: jaxrs-spec.java.net
Mailing List Archive:
jsr339-experts@jax-rs-spec.java.net
users@jax-rs-spec.java.net
31 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
32. Expression Language 3.0 – JSR 341
• Separate ELContext into parsing and evaluation
contexts
• Customizable EL coercion rules
• Reference static methods and members directly in EL
expressions
• Adding operators like equality, string concatenation, and
sizeof etc.
• Integration with CDI such as generating events
before/during/after the expressions are evaluated
32 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
33. Expression Lanugage 3.0 – JSR 341
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=341
• Spec lead: Kin-man Chung (Oracle)
• Project: el-spec.java.net
• Mailing List Archive:
jsr-341-experts@el-spec.java.net
users@el-spec.java.net
33 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
34. Bean Validation 1.1 – JSR 349
• Integration with other Java EE specs
JAX-RS: Validate parameters and return values on
HTTP calls
JAXB: Convert constraints into XML schema
descriptor
• Method level validation
• Apply constraints on group collection
• Extend the model to support AND and OR style
composition
34 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
35. Bean Validation 1.1 – JSR 349
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=349
• Spec lead: Emmanuel Bernard (RedHat)
• Project: beanvalidation.org
Mailing List Archive:
http://lists.jboss.org/pipermail/beanvalidation-dev/
35 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
36. MR Releases
• Common Annotations 1.2 MR
• JAX-WS 2.3 MR
• JTA 1.2 MR
• JSP 2.3 MR
• JASPIC 1.2 MR
36 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
37. Candiadates
• JCache 1.0 (JSR 107)
• Concurrency Utilities 1.0 (JSR-236)
• State Management 1.0 (JSR 350)
• Batch Processing 1.0 (JSR 352)
• Java API for JSON Processing 1.0 (JSR 353)
37 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
38. JCache - JSR 107
• API and semantics for temporary, in-memory caching of
Java objects, including object creation, shared access,
spooling, invalidation, and consistency across JVMs
• Package: javax.cache
38 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
39. JCache - JSR 107
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=107
• Spec lead: Yannis Cosmadopoulos, Cameron Purdy
(Oracle) and Gregory Luck (Software AG)
• Project page: jsr107spec
• Mailing List Archive:
jsr107@googlegroups.com
39 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
40. State Management - JSR 350
• API that can be used by applications and Java EE
containers to offload the responsibility of statement
management into third party providers with different
QoS characteristics
• Java SE-based callers can access the state data by
querying the state providers
• Providers with different QoS can be added and API
callers can query to meet their criteria
• Package: javax.state and javax.state.provider
40 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
41. State Management - JSR 350
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=350
• Spec lead: Mitch Upton (Oracle)
• Project page: java-state-management.java.net
• Mailing List Archive:
jsr-350-experts@java-state-management.java.net,
jsr-350-users@java-state-management.java.net
41 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
42. Batch Application for the Java Platform - JSR 352
• Programming model for batch applications and a
runtime for scheduling and executing jobs
• Defines Batch Job, Batch Job Step, Batch Application,
Batch Executor, and Batch Job Manager for the
standard programming model
• Package: javax.batch
42 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
43. Batch Application for the Java Platform - JSR 352
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=352
• Spec lead: Chris Vignola (IBM)
• Project page: jbatch.java.net
• Mailing List Archive:
issues@jbatch.java.net
43 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
44. Concurrency Utilities for Java EE - JSR 236
• Provides a clean, simple, independent API by building
on JSR 166, making it appropriate for use within any
Java EE container.
• Package: javax.util.concurrent
44 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
45. Concurrency Utilities for Java EE - JSR 236
• Approved by the JCP
• http://jcp.org/en/jsr/detail?id=236
• Spec lead: Anthony Lai, Naresh Revanuru (Oracle)
• Project page:
• Mailing List Archive:
45 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
46. Java API for JSON Processing - JSR 353
• Produce and consume JSON text in a streaming
fashion(similar to StAX API for XML)
• Build a Java object model for JSON text using API
classes(similar to DOM API for XML)
46 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
47. Java API for JSON Processing - JSR 353
• Under JCP Review
• http://jcp.org/en/jsr/detail?id=353
• Spec lead: Jitendra Kotamraju
• Project Page: http://java.net/projects/json-processing-
spec
• Mailing List Archive
47 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
48. Status and Schedule
• Nearly all JSRs up and running
• Final release target: Q3 2012
• Date-driven release: anything not ready will be
deferred to Java EE 8
48 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
49. JCP 2.8
• The Expert Groups for most of the JSRs have already been formed
but you can still participate by joining the publicly visible aliases and
reviewing the drafts. All the JSRs following JCP 2.8 are run more
transparently and some of the highlights on that front are:
• Names of the EG members are publicly visible
• EG business reported on publicly readable alias
• Schedule is public, current and updated regularly
• Public can read/write to a wiki to discuss the status so far
• Discussion board on jcp.org
• Public read-only issue tracker
49 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
50. Links and Readings
• Enterprise Software Development mit Java Blog:
http://blog.eisele.net
• Markus‘ Twitter
http://twitter.com/myfear
• Java EE 7 Expert Group Page
http://javaee-spec.java.net
One project per spec – e.g., jpa-spec, jax-rs-spec, jms-spec…
• Java EE 7 Reference Implementation
http://glassfish.org
• The Aquarium
http://blogs.oracle.com/theaquarium
• Arun Gupta‘s Blog „Miles to go…“
http://blogs.oracle.com/arungupta
• Java Community Process
http://jcp.org
50 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag
51. 51 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag, 17.10.2011
52. Conference Planning in the Cloud - JavaOne 2011 Demo
52 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag, 17.10.2011
53. Service Provisioning
53 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag, 17.10.2011
54. GlassFish Server – Java EE RI - Roadmap
54 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag, 17.10.2011
55. Vielen Dank für Ihre Aufmerksamkeit
Markus Eisele
http://twitter.com/myfear
http://blog.eisele.net/
www.msg-systems.com
www.msg-systems.com
55 Markus Eisele, Insurance - Strategic IT-Architecture msg systems ag