SlideShare a Scribd company logo
<Insert Picture Here>




The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta
The following/preceding 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
The Core Java EE 6 Programming Model


                Web
                                                    JSP 2.2
             Container    JAX-RS 1.1   JSF 2.0
   CDI       Extensions                              EL 1.2
Extensions
                              Servlets 3.0

                                                                Bean
         CDI 1.0 / Interceptors 1.1 / JSR 250 1.1             Validation
                                                                  1.0

   Managed Beans 1.0                     EJB 3.1

                     JPA 2.0 / JTA 1.1



                                                                           3
The Java EE 6 Web Profile 1.0

  Servlets 3.0     JPA 2.0          EJB 3.1     JDBC      StAX

                 Interceptors
    JSF 2.0                         JAX-RS      JNDI     JavaMail
                      1.1
                     Bean
  EJB 3.1 Lite                        JAXB      JMS       JACC
                 Validation1.0

    JSP 2.2        CDI 1.0          JAX-WS      JAXP      SAAJ

                  Managed
    JTA 1.1                         JASPIC     JAX-RPC     ...
                  Beans 1.0




                                 Contributed
                                 by RedHat       New     Updated



                                                                    4
Compatible Java EE 6 Impls

Today:
                             Web Profile Only




Announced:
                                          5
6
9 Reasons why Java EE 6 will save $$

• Prototyping (multiple IDEs)
• Development (~30MB, incremental deployment, ...)
• Production (Variety, Start small/then scale)
• Support (Pick the best one)
• Training (“Only” Java EE 6 APIs)
• Portability (Backwards compatibility)
• Adoption (Growing)
• Freedom of choice (Multiple vendors)
• Plan B (Similar component models)


       http://www.adam-bien.com/roller/abien/entry/8_reasons_why_java_ee


                                                                           7
Jigsaw puzzle,
    From the real users ...                                   Modular, standard, less
                                                              xml, easy, easy, have I
  Developers can concentrate                                  said easy?
  on business logic, Java EE 6 is
  providing a standard for
                                  Standards compliance, vendor
  the infrastructure.
                                  independence, milliseconds
                                  and kilobyte deployment
                                                                      Faster development,
Higher integrated specs,                                              less frameworks, less
simple and annotation driven,                                         complexity, more great
single-classloader WARs,                                              code shipped
next level of industry
standard                             Definite excuse to
                                     avoid Spring forever

                                                                Simplified Java
  Not your fat grandfather's                                    Development, Focus on
  enterprise Java anymore,                                      building great products
  enterprise Java renaissance

                   http://blogs.oracle.com/arungupta/tags/community+feedback


                                                                                           8
Avoid “framework explosion”


   In selecting an application server our main goal
   was to avoid the framework explosion that
   happens when you use a "custom" Enterprise
   stack like Tomcat + Spring + Hibernate +
   Myfaces +... Java EE 6 had 80% of what we
   needed out of the box: strong persistence
   support ( JPA ), inversion of control ( CDI ), and
   a lightweight component model ( EJB 3.1 )


http://blogs.oracle.com/stories/entry/egesa_engineering_avoids_framework_explosion

                                                                                     9
What does Java EE offer to Cloud ?

●
    Containers
●
    Injectable services
●
    Scale to large clusters
●
    Security model
●
    ...




                                         10
Java EE for the Cloud : JSR 342
• More easily operate on private/public clouds
     • Multi-tenancy
     • Elasticity
•   Tighter requirements for resource and state
    management
•   Better isolation between applications
•   Potential standard APIs for NRDBMS, Caching,
    other
•   Common management and monitoring interfaces
•   Better packaging
•   Evolution, not revolution
                                                   11
Cloud Platform



  Application
  Java      Persistence Queueing
  Service   Service     Service    …
  State Management
  Virtualization Layer




                                       12
Cloud Platform


  Application
   Code   Code   Code                                   QoS
                        Schema   Migration   Security                 …
   Module Module Module                                 Information


  Java             Persistence Queueing
  Service          Service     Service                        …
  State Management
  Virtualization Layer




                                                                          13
Cloud Platform



  Application   Application Application

  Java            Persistence Queueing
  Service         Service     Service     …
  State Management
  Virtualization Layer




                                              14
Cloud Platform



  Application   Application Application Application Application

  Java            Persistence Queueing
  Service         Service     Service             …
  State Management
  Virtualization Layer




                                                                  15
Cloud Platform

           Managed Environment

  Application   Application Application Application Application

  Java            Persistence Queueing
  Service         Service     Service             …
  State Management
  Virtualization Layer




                                                                  16
The Java EE 7 Modularity

• Built on Java SE 8 work
• Applications made of modules
• Dependencies are explicit
• Versioning is built-in
• Classloaders are straightened




                                  17
Modular Applications

 demo-app
   demo-web-1.0.3




                       18
Modular Applications

 demo-app
                    twitter-client-1.0.3
   demo-web-1.0.3
                    demo-persist-1.0.3




                                           19
Modular Applications

 demo-app
                    twitter-client-1.0.3
   demo-web-1.0.3
                    demo-persist-1.0.3



   javaee-web-7.0        jpa-2.1           jax-rs-2.0




                                                        20
Modular Applications

 demo-app
                      twitter-client-1.0.3
    demo-web-1.0.3
                      demo-persist-1.0.3



    javaee-web-7.0         jpa-2.1           jax-rs-2.0




 gf-appserver-4.0.1   eclipselink-2.1.3


                         jersey-2.0.5




                                                          21
Modular Applications

 demo-app
                      twitter-client-1.0.4   jax-rs-2.1.1
    demo-web-1.0.4
                      demo-persist-1.0.3     jersey-2.1.2



    javaee-web-7.0         jpa-2.1




 gf-appserver-4.0.1   eclipselink-2.1.3


                         jersey-2.0.5




                                                            22
Modular Applications

 demo-app
                      twitter-client-1.0.5   jax-rs-2.1.1
    demo-web-1.0.5
                      demo-persist-1.0.3     jax-rs-2.1.1



    javaee-web-7.0         jpa-2.1            jax-rs-2.1.5




 gf-appserver-4.1.2   eclipselink-2.1.3


                         jersey-2.0.5         jersey-2.1.7




                                                             23
Java EE 7 JSR Soup
• Java Persistence API 2.1 – JSR 338
• JAX-RS 2.0 – JSR 339
• Servlets 3.1 – JSR 340
• Expression Language 3.0 – JSR 341
• Java EE 7 – JSR 342
• Java Message Service 2.0 – JSR 343
• Java Server Faces 2.2 – JSR 344
• EJB 3.2 – JSR 345
• CDI 1.1 – JSR 346
• JCache – JSR 107
• ...

                                       24
Servlets 3.1 (JSR 340)
  http://jcp.org/en/jsr/detail?id=340
  http://servlet-spec.java.net



• Cloud support
• Multi-tenancy
  • Security / Session state / Resources isolation
• Asynchronous IO based on NIO2
• Simplified Asynchronous Servlets
• Utilize Java EE concurrency utilities
• Enable support for Web Sockets



                                                     25
JPA 2.1 (JSR 338)
    http://jcp.org/en/jsr/detail?id=338
    http://jpa-spec.java.net

●
    Multi-tenancy
●
    Support for stored procedures, vendor function
●
    Update and Delete Criteria queries, JPQL ↔
    Criteria
●
    Query by Example
●
    Support for schema generation
●
    Persistence Context synchronization control
●
    Dynamic definition of PU
●
    Additional event listeners

                                                     26
EJB 3.2 (JSR 345)
 http://jcp.org/en/jsr/detail?id=345




• Enablement for use in cloud
• Factorization of the EJB technology
  • Interceptors was the first example
  • Container-managed transactions as target
• Alignment with other specifications
• Mark “pruned” technologies as optional
  • EJB 1.x and 2.x entity beans
  • Web service invocation using JAX-RPC



                                               27
JAX-RS 2.0 (JSR 339)
    http://jcp.org/en/jsr/detail?id=339
    http://jax-rs-spec.java.net

●
    Client API
    ●
         Low level using Builder pattern, Higher-level
●
    Hypermedia
●
    MVC Pattern
    ●
         Resource controllers, Pluggable viewing technology
●
    Bean Validation
    ●
         Form or Query parameter validation
●
    Closer integration with @Inject, etc.
●
    Server-side asynchronous request processing
●
    Server-side content negotiation

                                                              28
CDI 1.1 (JSR 346)
 http://www.jcp.org/en/jsr/proposalDetails?id=346




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




                                                    29
Expression Language 3.0 (JSR 341)
 http://jcp.org/en/jsr/detail?id=341
 http://el-spec.java.net



• A JSR by itself
• Make EL easier to use outside EE container
  • Simplified to use in Java SE
• EL Context is split into Parsing and
  Evaluation context
• Explicit coercion rules using API
• Criteria-based selection from Collection
• Operators: ==, concat, sizeof
• CDI events for expression evaluation
                                             30
JMS 2.0 (JSR 343)
 http://jcp.org/en/jsr/detail?id=343
 http://jms-spec.java.net



• Long overdue – after 9 years
• Modest scope, major extensions
  deferred to a subsequent revision
• Ease-of-development
• Clarification of relationship with other
  Java EE specs
• New mandatory API for pluggable JMS
  provider

                                             31
Bean Validation 1.1 (JSR TBD)
 http://in.relation.to/Bloggers/JSRBeanValidation11WhatToPutIn




• Integration with other specs
   • JAX-RS: Validate parameters on HTTP calls
   • JAXB: convert into XML schema descriptor
   • JPA: DDL generation
• Method level validation
  public void processOrder(@Valid Order order,
                           @Min(0) @Max(30) int retry) {
  }


• @Valid and group propagation
• Apply constraints on element collection

                                                                 32
JSF 2.2 (JSR 344)
 http://jcp.org/en/jsr/detail?id=344
 http://jsf-spec.java.net



• Ease of development
  • cc:interface is optional
  • JSF lifecycle is CDI aware
  • Runtime configuration options change
• Support implementation of Portlet Bridge
  2.0
• Support for HTML5 features
  • Forms, Heading/Section content model, ...
• New components like FileUpload and
 BackButton
                                                33
Java EE 7 : Technology Refresh

• Ease-of-development: JMS 2.0
• Latest web standards
   • New JSRs: Web Sockets, Java JSON API
   • HTTP Client API (JAX-RS 2.0)
• Possible JSRs inclusion
   • Concurrency Utilities for Java EE (JSR 236)
   • JCache (JSR 107)




                                                   34
Transparency Checklist                     NEW
 http://jcp.org/en/resources/transparency



• EG members names
• EG business reported on publicly
  readable alias
• Schedule is public, current and updated
  regularly
• Public can read/write to a wiki
• Discussion board on jcp.org
• Public read-only issue tracker


                                                  35
Java EE 7 – When ?

• Late 2012
• Date-driven release
   • Anything not ready will be deferred to Java EE 8
• Participate
   • Expert Groups forming
   • Public discussion lists
   • JCP membership free for individuals




                                                   36
GlassFish Server Distributions


Distribution                  License      Features

                                           • Java EE 6 compatibility
GlassFish Server Open         CDDL &       • Web Profile support
Source Edition 3.1            GPLv2        • In-memory replication / clustering
Web Profile
                                           • Centralized Administration

                                           • Java EE 6 compatibility
GlassFish Open Source         CDDL &       • Full Java EE distribution
Edition 3.1                   GPLv2        • In-memory replication / clustering
                                           • Centralized Administration
                                           • Adds
Oracle GlassFish Server 3.1   Commercial        • Oracle GlassFish Server Control
Web Profile                                     • Patches, support, knowledge
                                                base
                                           • Adds
Oracle GlassFish Server 3.1   Commercial        • Oracle GlassFish Server Control
                                                • Patches, support, knowledge
                                                base
References


• oracle.com/javaee
• glassfish.org
• oracle.com/goto/glassfish
• blogs.oracle.com/theaquarium
• youtube.com/GlassFishVideos
• Follow @glassfish




                                 38
<Insert Picture Here>




The Java EE 7 Platform: Developing for the Cloud
Arun Gupta, Java EE & GlassFish Guy
blogs.oracle.com/arungupta, @arungupta

More Related Content

What's hot (20)

PDF
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
 
PDF
TDC 2011: OSGi-enabled Java EE Application
Arun Gupta
 
PDF
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
PDF
Java EE 6 and GlassFish portfolio
Alexis Moussine-Pouchkine
 
PDF
GlassFish REST Administration Backend
Arun Gupta
 
PDF
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Arun Gupta
 
PDF
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Arun Gupta
 
PDF
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
 
PDF
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Arun Gupta
 
PDF
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
Arun Gupta
 
PDF
Running your Java EE 6 applications in the Cloud
Arun Gupta
 
PDF
The State of Java under Oracle at JCertif 2011
Arun Gupta
 
PDF
Java EE 6 : Paving The Path For The Future
IndicThreads
 
PDF
Jfokus 2012: PaaSing a Java EE Application
Arun Gupta
 
PDF
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
PDF
Java Summit Chennai: JAX-RS 2.0
Arun Gupta
 
PPT
Designing JEE Application Structure
odedns
 
PDF
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Arun Gupta
 
PDF
GlassFish REST Administration Backend at JavaOne India 2012
Arun Gupta
 
DOCX
Jboss
Sridhar Rapala
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
 
TDC 2011: OSGi-enabled Java EE Application
Arun Gupta
 
The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
Java EE 6 and GlassFish portfolio
Alexis Moussine-Pouchkine
 
GlassFish REST Administration Backend
Arun Gupta
 
Java EE 7: Developing for the Cloud at Java Day, Istanbul, May 2012
Arun Gupta
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Arun Gupta
 
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
 
Java EE / GlassFish Strategy & Roadmap @ JavaOne 2011
Arun Gupta
 
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
Arun Gupta
 
Running your Java EE 6 applications in the Cloud
Arun Gupta
 
The State of Java under Oracle at JCertif 2011
Arun Gupta
 
Java EE 6 : Paving The Path For The Future
IndicThreads
 
Jfokus 2012: PaaSing a Java EE Application
Arun Gupta
 
Jfokus 2012 : The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
 
Java Summit Chennai: JAX-RS 2.0
Arun Gupta
 
Designing JEE Application Structure
odedns
 
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Arun Gupta
 
GlassFish REST Administration Backend at JavaOne India 2012
Arun Gupta
 

Similar to The Java EE 7 Platform: Developing for the Cloud (FISL 12) (20)

PDF
Understanding the nuts & bolts of Java EE 6
Arun Gupta
 
PDF
Java EE 6 Component Model Explained
Shreedhar Ganapathy
 
PDF
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Arun Gupta
 
PDF
Java EE 6 workshop at Dallas Tech Fest 2011
Arun Gupta
 
PDF
Java EE Technical Keynote - JavaOne India 2011
Arun Gupta
 
PDF
JavaEE 6 and GlassFish v3 at SFJUG
Marakana Inc.
 
PDF
Java EE 6 & GlassFish v3 @ DevNexus
Arun Gupta
 
PDF
Java EE 6 & GlassFish 3
Arun Gupta
 
PDF
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Arun Gupta
 
PDF
Java E
Arun Gupta
 
PDF
Spark IT 2011 - Java EE 6 Workshop
Arun Gupta
 
ODP
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Codemotion
 
PDF
Java EE 7: the Voyage of the Cloud Treader
Saltmarch Media
 
PDF
Java one brazil_keynote_dochez
Jerome Dochez
 
PDF
Java EE 與 雲端運算的展望
javatwo2011
 
PDF
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
Markus Eisele
 
PDF
Andrei Niculae - JavaEE6 - 24mai2011
Agora Group
 
PDF
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Arun Gupta
 
PDF
Java EE6 Overview
Eduardo Pelegri-Llopart
 
PDF
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Skills Matter
 
Understanding the nuts & bolts of Java EE 6
Arun Gupta
 
Java EE 6 Component Model Explained
Shreedhar Ganapathy
 
Java EE 6 & GlassFish v3: Paving the path for the future - Tech Days 2010 India
Arun Gupta
 
Java EE 6 workshop at Dallas Tech Fest 2011
Arun Gupta
 
Java EE Technical Keynote - JavaOne India 2011
Arun Gupta
 
JavaEE 6 and GlassFish v3 at SFJUG
Marakana Inc.
 
Java EE 6 & GlassFish v3 @ DevNexus
Arun Gupta
 
Java EE 6 & GlassFish 3
Arun Gupta
 
Java EE 6 Hands-on Workshop at Dallas Tech Fest 2010
Arun Gupta
 
Java E
Arun Gupta
 
Spark IT 2011 - Java EE 6 Workshop
Arun Gupta
 
Enterprise Java in 2012 and Beyond, by Juergen Hoeller
Codemotion
 
Java EE 7: the Voyage of the Cloud Treader
Saltmarch Media
 
Java one brazil_keynote_dochez
Jerome Dochez
 
Java EE 與 雲端運算的展望
javatwo2011
 
JUG Darmstadt - Java EE 7 - Auf in die Wolken!
Markus Eisele
 
Andrei Niculae - JavaEE6 - 24mai2011
Agora Group
 
Java EE 6 & GlassFish v3: Paving the path for the future - Spark IT 2010
Arun Gupta
 
Java EE6 Overview
Eduardo Pelegri-Llopart
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Skills Matter
 
Ad

More from Arun Gupta (20)

PDF
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
 
PPTX
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
 
PDF
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
 
PPTX
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
 
PPTX
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
 
PPTX
Why Amazon Cares about Open Source
Arun Gupta
 
PDF
Machine learning using Kubernetes
Arun Gupta
 
PDF
Building Cloud Native Applications
Arun Gupta
 
PDF
Chaos Engineering with Kubernetes
Arun Gupta
 
PDF
How to be a mentor to bring more girls to STEAM
Arun Gupta
 
PDF
Java in a World of Containers - DockerCon 2018
Arun Gupta
 
PPTX
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
 
PDF
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
 
PDF
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
 
PDF
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
 
PDF
Container Landscape in 2017
Arun Gupta
 
PDF
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
PDF
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
PDF
Thanks Managers!
Arun Gupta
 
PDF
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
 
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
 
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
 
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
 
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
 
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
 
Why Amazon Cares about Open Source
Arun Gupta
 
Machine learning using Kubernetes
Arun Gupta
 
Building Cloud Native Applications
Arun Gupta
 
Chaos Engineering with Kubernetes
Arun Gupta
 
How to be a mentor to bring more girls to STEAM
Arun Gupta
 
Java in a World of Containers - DockerCon 2018
Arun Gupta
 
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
 
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
 
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
 
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
 
Container Landscape in 2017
Arun Gupta
 
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
 
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
 
Thanks Managers!
Arun Gupta
 
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
 
Ad

Recently uploaded (20)

PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
July Patch Tuesday
Ivanti
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
July Patch Tuesday
Ivanti
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 

The Java EE 7 Platform: Developing for the Cloud (FISL 12)

  • 1. <Insert Picture Here> The Java EE 7 Platform: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta
  • 2. The following/preceding 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
  • 3. The Core Java EE 6 Programming Model Web JSP 2.2 Container JAX-RS 1.1 JSF 2.0 CDI Extensions EL 1.2 Extensions Servlets 3.0 Bean CDI 1.0 / Interceptors 1.1 / JSR 250 1.1 Validation 1.0 Managed Beans 1.0 EJB 3.1 JPA 2.0 / JTA 1.1 3
  • 4. The Java EE 6 Web Profile 1.0 Servlets 3.0 JPA 2.0 EJB 3.1 JDBC StAX Interceptors JSF 2.0 JAX-RS JNDI JavaMail 1.1 Bean EJB 3.1 Lite JAXB JMS JACC Validation1.0 JSP 2.2 CDI 1.0 JAX-WS JAXP SAAJ Managed JTA 1.1 JASPIC JAX-RPC ... Beans 1.0 Contributed by RedHat New Updated 4
  • 5. Compatible Java EE 6 Impls Today: Web Profile Only Announced: 5
  • 6. 6
  • 7. 9 Reasons why Java EE 6 will save $$ • Prototyping (multiple IDEs) • Development (~30MB, incremental deployment, ...) • Production (Variety, Start small/then scale) • Support (Pick the best one) • Training (“Only” Java EE 6 APIs) • Portability (Backwards compatibility) • Adoption (Growing) • Freedom of choice (Multiple vendors) • Plan B (Similar component models) http://www.adam-bien.com/roller/abien/entry/8_reasons_why_java_ee 7
  • 8. Jigsaw puzzle, From the real users ... Modular, standard, less xml, easy, easy, have I Developers can concentrate said easy? on business logic, Java EE 6 is providing a standard for Standards compliance, vendor the infrastructure. independence, milliseconds and kilobyte deployment Faster development, Higher integrated specs, less frameworks, less simple and annotation driven, complexity, more great single-classloader WARs, code shipped next level of industry standard Definite excuse to avoid Spring forever Simplified Java Not your fat grandfather's Development, Focus on enterprise Java anymore, building great products enterprise Java renaissance http://blogs.oracle.com/arungupta/tags/community+feedback 8
  • 9. Avoid “framework explosion” In selecting an application server our main goal was to avoid the framework explosion that happens when you use a "custom" Enterprise stack like Tomcat + Spring + Hibernate + Myfaces +... Java EE 6 had 80% of what we needed out of the box: strong persistence support ( JPA ), inversion of control ( CDI ), and a lightweight component model ( EJB 3.1 ) http://blogs.oracle.com/stories/entry/egesa_engineering_avoids_framework_explosion 9
  • 10. What does Java EE offer to Cloud ? ● Containers ● Injectable services ● Scale to large clusters ● Security model ● ... 10
  • 11. Java EE for the Cloud : JSR 342 • More easily operate on private/public clouds • Multi-tenancy • Elasticity • Tighter requirements for resource and state management • Better isolation between applications • Potential standard APIs for NRDBMS, Caching, other • Common management and monitoring interfaces • Better packaging • Evolution, not revolution 11
  • 12. Cloud Platform Application Java Persistence Queueing Service Service Service … State Management Virtualization Layer 12
  • 13. Cloud Platform Application Code Code Code QoS Schema Migration Security … Module Module Module Information Java Persistence Queueing Service Service Service … State Management Virtualization Layer 13
  • 14. Cloud Platform Application Application Application Java Persistence Queueing Service Service Service … State Management Virtualization Layer 14
  • 15. Cloud Platform Application Application Application Application Application Java Persistence Queueing Service Service Service … State Management Virtualization Layer 15
  • 16. Cloud Platform Managed Environment Application Application Application Application Application Java Persistence Queueing Service Service Service … State Management Virtualization Layer 16
  • 17. The Java EE 7 Modularity • Built on Java SE 8 work • Applications made of modules • Dependencies are explicit • Versioning is built-in • Classloaders are straightened 17
  • 18. Modular Applications demo-app demo-web-1.0.3 18
  • 19. Modular Applications demo-app twitter-client-1.0.3 demo-web-1.0.3 demo-persist-1.0.3 19
  • 20. Modular Applications demo-app twitter-client-1.0.3 demo-web-1.0.3 demo-persist-1.0.3 javaee-web-7.0 jpa-2.1 jax-rs-2.0 20
  • 21. Modular Applications demo-app twitter-client-1.0.3 demo-web-1.0.3 demo-persist-1.0.3 javaee-web-7.0 jpa-2.1 jax-rs-2.0 gf-appserver-4.0.1 eclipselink-2.1.3 jersey-2.0.5 21
  • 22. Modular Applications demo-app twitter-client-1.0.4 jax-rs-2.1.1 demo-web-1.0.4 demo-persist-1.0.3 jersey-2.1.2 javaee-web-7.0 jpa-2.1 gf-appserver-4.0.1 eclipselink-2.1.3 jersey-2.0.5 22
  • 23. Modular Applications demo-app twitter-client-1.0.5 jax-rs-2.1.1 demo-web-1.0.5 demo-persist-1.0.3 jax-rs-2.1.1 javaee-web-7.0 jpa-2.1 jax-rs-2.1.5 gf-appserver-4.1.2 eclipselink-2.1.3 jersey-2.0.5 jersey-2.1.7 23
  • 24. Java EE 7 JSR Soup • Java Persistence API 2.1 – JSR 338 • JAX-RS 2.0 – JSR 339 • Servlets 3.1 – JSR 340 • Expression Language 3.0 – JSR 341 • Java EE 7 – JSR 342 • Java Message Service 2.0 – JSR 343 • Java Server Faces 2.2 – JSR 344 • EJB 3.2 – JSR 345 • CDI 1.1 – JSR 346 • JCache – JSR 107 • ... 24
  • 25. Servlets 3.1 (JSR 340) http://jcp.org/en/jsr/detail?id=340 http://servlet-spec.java.net • Cloud support • Multi-tenancy • Security / Session state / Resources isolation • Asynchronous IO based on NIO2 • Simplified Asynchronous Servlets • Utilize Java EE concurrency utilities • Enable support for Web Sockets 25
  • 26. JPA 2.1 (JSR 338) http://jcp.org/en/jsr/detail?id=338 http://jpa-spec.java.net ● Multi-tenancy ● Support for stored procedures, vendor function ● Update and Delete Criteria queries, JPQL ↔ Criteria ● Query by Example ● Support for schema generation ● Persistence Context synchronization control ● Dynamic definition of PU ● Additional event listeners 26
  • 27. EJB 3.2 (JSR 345) http://jcp.org/en/jsr/detail?id=345 • Enablement for use in cloud • Factorization of the EJB technology • Interceptors was the first example • Container-managed transactions as target • Alignment with other specifications • Mark “pruned” technologies as optional • EJB 1.x and 2.x entity beans • Web service invocation using JAX-RPC 27
  • 28. JAX-RS 2.0 (JSR 339) http://jcp.org/en/jsr/detail?id=339 http://jax-rs-spec.java.net ● Client API ● Low level using Builder pattern, Higher-level ● Hypermedia ● MVC Pattern ● Resource controllers, Pluggable viewing technology ● Bean Validation ● Form or Query parameter validation ● Closer integration with @Inject, etc. ● Server-side asynchronous request processing ● Server-side content negotiation 28
  • 29. CDI 1.1 (JSR 346) http://www.jcp.org/en/jsr/proposalDetails?id=346 • Global ordering of interceptors and decorators • API for managing built-in contexts • Embedded mode to startup outside Java EE container • Send Servlet events as CDI events 29
  • 30. Expression Language 3.0 (JSR 341) http://jcp.org/en/jsr/detail?id=341 http://el-spec.java.net • A JSR by itself • Make EL easier to use outside EE container • Simplified to use in Java SE • EL Context is split into Parsing and Evaluation context • Explicit coercion rules using API • Criteria-based selection from Collection • Operators: ==, concat, sizeof • CDI events for expression evaluation 30
  • 31. JMS 2.0 (JSR 343) http://jcp.org/en/jsr/detail?id=343 http://jms-spec.java.net • Long overdue – after 9 years • Modest scope, major extensions deferred to a subsequent revision • Ease-of-development • Clarification of relationship with other Java EE specs • New mandatory API for pluggable JMS provider 31
  • 32. Bean Validation 1.1 (JSR TBD) http://in.relation.to/Bloggers/JSRBeanValidation11WhatToPutIn • Integration with other specs • JAX-RS: Validate parameters on HTTP calls • JAXB: convert into XML schema descriptor • JPA: DDL generation • Method level validation public void processOrder(@Valid Order order, @Min(0) @Max(30) int retry) { } • @Valid and group propagation • Apply constraints on element collection 32
  • 33. JSF 2.2 (JSR 344) http://jcp.org/en/jsr/detail?id=344 http://jsf-spec.java.net • Ease of development • cc:interface is optional • JSF lifecycle is CDI aware • Runtime configuration options change • Support implementation of Portlet Bridge 2.0 • Support for HTML5 features • Forms, Heading/Section content model, ... • New components like FileUpload and BackButton 33
  • 34. Java EE 7 : Technology Refresh • Ease-of-development: JMS 2.0 • Latest web standards • New JSRs: Web Sockets, Java JSON API • HTTP Client API (JAX-RS 2.0) • Possible JSRs inclusion • Concurrency Utilities for Java EE (JSR 236) • JCache (JSR 107) 34
  • 35. Transparency Checklist NEW http://jcp.org/en/resources/transparency • EG members names • EG business reported on publicly readable alias • Schedule is public, current and updated regularly • Public can read/write to a wiki • Discussion board on jcp.org • Public read-only issue tracker 35
  • 36. Java EE 7 – When ? • Late 2012 • Date-driven release • Anything not ready will be deferred to Java EE 8 • Participate • Expert Groups forming • Public discussion lists • JCP membership free for individuals 36
  • 37. GlassFish Server Distributions Distribution License Features • Java EE 6 compatibility GlassFish Server Open CDDL & • Web Profile support Source Edition 3.1 GPLv2 • In-memory replication / clustering Web Profile • Centralized Administration • Java EE 6 compatibility GlassFish Open Source CDDL & • Full Java EE distribution Edition 3.1 GPLv2 • In-memory replication / clustering • Centralized Administration • Adds Oracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server Control Web Profile • Patches, support, knowledge base • Adds Oracle GlassFish Server 3.1 Commercial • Oracle GlassFish Server Control • Patches, support, knowledge base
  • 38. References • oracle.com/javaee • glassfish.org • oracle.com/goto/glassfish • blogs.oracle.com/theaquarium • youtube.com/GlassFishVideos • Follow @glassfish 38
  • 39. <Insert Picture Here> The Java EE 7 Platform: Developing for the Cloud Arun Gupta, Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta