Java EE 7 –Embracing the Cloud and HTML 5-AmitNaikJavaOne 2012
About Me          Principal Engineer with the R&D Incubation & Innovation Lab at BMC          Software, Pune.          Wor...
Agenda           Current “buzz”           Java EE 7 – Overview           HTML 5 Features           Cloud Features         ...
Current Buzz – Developer Edition           Simplification of Tool set (& Polyglotism)           BIG Data           HTML 5 ...
Simplification & Polyglotism          Developers demand less boiler plate code          The best tool that fits the task –...
JVM is a durable and popular platform          The JVM itself has become a key part of many language strategies!         “...
The Challenge of Big Data                                         Webscale Data                                         Te...
Java to the Rescue (with help from Web 2.0 frameworks)                                         Java has become the popular...
Java EE 7 – Cloud & HTML 5   Java EE 7 and further releases to address:     - HTML 5     - Cloud© Copyright 5/4/2012 BMC S...
Java Enterprise Edition - Progression© Copyright 5/4/2012 BMC Software, Inc   10
Java EE 7 - Overview          Java SE 7 (Dolphin) released June-July 2011 -          Java EE 7 to follow   JSR 342: Umbrel...
Java EE 7 Overview - JSRs© Copyright 5/4/2012 BMC Software, Inc   12
Four Key aspects           Java EE 7 has a lot of JSRs!           Already covered topics:           - JSR 343: Whats Comin...
Focus of the presentation   We will look at four key areas:    - JSF enhancements HTML 5 – JSF 2.0 & 2.2    - HTML 5 WebSo...
JEE 7 and HTML 5                                               JSF© Copyright 5/4/2012 BMC Software, Inc                  ...
HTML 5 – Future of Web Markup© Copyright 5/4/2012 BMC Software, Inc   16
HTML 5 Features: HTML Elements                                         HTML4                  HTML5        Semantic elemen...
HTML 5 Elements: Audio & Video          Audio Today           -    Most audio played through flash plug-in           -    ...
Java EE 7 - Web Tier support           HTML5 support           Web socket support           Standard JSON API           NI...
JSF Composite Components          Truly Reusable component          Turns page markup into a JSF UI component with attache...
JSF support – HTML 5 with composite components   <html... xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h=http://java....
JSF support – HTML 5 with composite components     audio.js:   function play() {   var audio = document.getElementsByTagNa...
JSF Support for HTML 5 to be enhanced   JSF 2.2 enhancements for HTML5 support           -    Semantic tags, browser featu...
JEE 7 and HTML 5                                           WebSockets© Copyright 5/4/2012 BMC Software, Inc               ...
WebSocket – Bidirectional TCP          Way for multiplexing bi-directional, full-duplex communications channels          o...
WebSocket – HTTP connection Handshake          Client Request:   GET /mychat HTTP/1.1   Host: server.example.com   Upgrade...
Java API for WebSocket support JSR – JSR 356          Creating components to handle bi-directional WebSocket          conv...
Web Socket Sample (w/Grizzly WebSocket API)   public class ChatApplication extends WebSocketApplication<ChatWebSocket>   {...
Concurrency Utils for Managed                             code© Copyright 5/4/2012 BMC Software, Inc           29
Concurrency Utils – not for managed code!          Java.util.concurrent is a great set of libraries for          managing ...
Managed Code unfriendly APIs           java.util.Timer           java.lang.Thread           java.util.concurrent.ExecutorS...
javax.enterprise.concurrent for Managed code           JSR 236: Concurrency Utilities for Java EE           Created in 200...
Preview of javax.enterprise.concurrent (JSR 236)          ManagedExecutorService - Manageable version of a ExecutorService...
JEE 7 and Cloud© Copyright 5/4/2012 BMC Software, Inc                     34
Cloud Introduction - Simple Cloud Model© Copyright 5/4/2012 BMC Software, Inc    35
Cloud Introduction          Service Delivery Models           -    IaaS – Infrastructure as a Service – Amazon EC2, Racksp...
Service Delivery Models           IaaS           Platform as a Service (PaaS)           - Deploy customer created/acquired...
Cloud Offerings are vendor specific          Taxonomies, APIs, Service Levels, Interconnections, etc are varied          I...
No Standards yet!© Copyright 5/4/2012 BMC Software, Inc   39
Needs of a PaaS Ready app          Application as a whole need to be versioned          Multiple versions can coexist     ...
Less control over underlying services© Copyright 5/4/2012 BMC Software, Inc   41
Java EE 7 Cloud Focus: Platform as a Service          Next logical step for Java EE          Java EE 7 : Evolves from Prov...
New PaaS Roles in Java EE 7          PaaS Product Vendor          PaaS Provider          PaaS Account Manager          Paa...
Multi-tenancy in Java EE 7          Support for separate isolated instances of the same          app for different tenants...
Multi-Tenancy Illustration          Goal: Simple configuration          Flexible tenant discriminator support          Oth...
PaaS Impact on deployment – Traditional Deployment© Copyright 5/4/2012 BMC Software, Inc               46
PaaS Impact on deployment – Cloud Deployment© Copyright 5/4/2012 BMC Software, Inc         47
Wrap-up          Java EE 7 is going to be a major step forward          HTML 5 support being added incrementally thru     ...
Contact – Amit Naik© Copyright 5/4/2012 BMC Software, Inc   49
Q&A© Copyright 5/4/2012 BMC Software, Inc   50
References          http://www.infoq.com/articles/twitter-java-use          http://cloudopsmanagement.wordpress.com/2011/0...
Learn more at www.bmc.com© Copyright 5/4/2012 BMC Software, Inc                               52
Back-up Slides© Copyright 5/4/2012 BMC Software, Inc   53
Upcoming SlideShare
Loading in …5
×

Java EE 7 - Embracing the Cloud and HTML 5

6,422 views

Published on

JavaOne 2012 India Conference Presentation on the Exciting stuff in the upcoming Java EE 7 for Cloud Computing and HTML5

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,422
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Java EE 7 - Embracing the Cloud and HTML 5

  1. 1. Java EE 7 –Embracing the Cloud and HTML 5-AmitNaikJavaOne 2012
  2. 2. About Me Principal Engineer with the R&D Incubation & Innovation Lab at BMC Software, Pune. Work on emerging technologies such as Cloud Computing and Monitoring, Big Data Analysis, Mobile Architectures, UI frameworks Systems management & Monitoring background Experience architecting and building performant and scalable enterprise solutions across a variety of domains Working (& playing) with Java from 1997© Copyright 5/4/2012 BMC Software, Inc 2
  3. 3. Agenda Current “buzz” Java EE 7 – Overview HTML 5 Features Cloud Features Wrap-up and Q&A© Copyright 5/4/2012 BMC Software, Inc 3
  4. 4. Current Buzz – Developer Edition Simplification of Tool set (& Polyglotism) BIG Data HTML 5 Cloud© Copyright 5/4/2012 BMC Software, Inc 4
  5. 5. Simplification & Polyglotism Developers demand less boiler plate code The best tool that fits the task – Polyglotism!© Copyright 5/4/2012 BMC Software, Inc 5
  6. 6. JVM is a durable and popular platform The JVM itself has become a key part of many language strategies! “invokedynamic” introduced in Java SE 7 as a JVM level feature to better support dynamic languages Project Coin – Simplify and add some better syntactic constructs Multi-catch try-with-resources Strings in Switch Etc…© Copyright 5/4/2012 BMC Software, Inc 6
  7. 7. The Challenge of Big Data Webscale Data Terrabytes/day Tweets Geo Check-ins Web logs Social Data Atmospheric data Etc, Etc© Copyright 5/4/2012 BMC Software, Inc 7
  8. 8. Java to the Rescue (with help from Web 2.0 frameworks) Java has become the popular language of choice for implementation for many big data frameworks Apache Hadoop has become a very popular Java based implementation of the Map- Reduce Paradigm Multiple distributions of Hadoop (Cloudera, DataMeer, HortonWorks) Cassandra – Highly Available DB engine written in Java (Facebook) Column oriented “NoSQL” DB© Copyright 5/4/2012 BMC Software, Inc 8
  9. 9. Java EE 7 – Cloud & HTML 5 Java EE 7 and further releases to address: - HTML 5 - Cloud© Copyright 5/4/2012 BMC Software, Inc 9
  10. 10. Java Enterprise Edition - Progression© Copyright 5/4/2012 BMC Software, Inc 10
  11. 11. Java EE 7 - Overview Java SE 7 (Dolphin) released June-July 2011 - Java EE 7 to follow JSR 342: Umbrella JSR for Java EE 7 Q3 2012 Public Review Q4 2012 Proposed Final Draft Q1 2013 Final Release (Pushed back from Q3 2012)© Copyright 5/4/2012 BMC Software, Inc 11
  12. 12. Java EE 7 Overview - JSRs© Copyright 5/4/2012 BMC Software, Inc 12
  13. 13. Four Key aspects Java EE 7 has a lot of JSRs! Already covered topics: - JSR 343: Whats Coming in Java Message Service 2.0 - Java API for JSON - JAX-RS 2.0: Whats in JSR 339? - Enterprise JavaBeans Technology 3.2 - Java Persistence API 2.1© Copyright 5/4/2012 BMC Software, Inc 13
  14. 14. Focus of the presentation We will look at four key areas: - JSF enhancements HTML 5 – JSF 2.0 & 2.2 - HTML 5 WebSockets – (JSR 356) - Concurrency Utils. for EE (JSR 236) - Cloud – Multiple JSRs© Copyright 5/4/2012 BMC Software, Inc 14
  15. 15. JEE 7 and HTML 5 JSF© Copyright 5/4/2012 BMC Software, Inc 15
  16. 16. HTML 5 – Future of Web Markup© Copyright 5/4/2012 BMC Software, Inc 16
  17. 17. HTML 5 Features: HTML Elements HTML4 HTML5 Semantic elements for Structure <header>, <nav>, <article>, <section>, <aside>, <footer>, etc Cleaner Source – no more “div craziness”© Copyright 5/4/2012 BMC Software, Inc 17
  18. 18. HTML 5 Elements: Audio & Video Audio Today - Most audio played through flash plug-in - Not all browsers have same plug-ins (& security risks) <audio> element: - Standard way to include audio: sound files or audio stream - 3 supported formats: Ogg Vorbis, MP3, Wav (browsers may support subset) Usage example: <audio controls="controls"> <source src="song.ogg" type="audio/ogg"> <source src="song.mp3" type="audio/mpeg"> </audio> Specify multiple audio file formats: browser will use first recognized format “controls” attribute: adds “play”, “pause”, and “volume” controls© Copyright 5/4/2012 BMC Software, Inc 18
  19. 19. Java EE 7 - Web Tier support HTML5 support Web socket support Standard JSON API NIO.2-based web container© Copyright 5/4/2012 BMC Software, Inc 19
  20. 20. JSF Composite Components Truly Reusable component Turns page markup into a JSF UI component with attached validators, converters, listeners <html xmlns=http://www/w3/org/1999/xhtml xmlns:h=http://java.sun.com/jsf/html xmlns:f=http://java.sun.com/jsf/core xmlns:my=”http://java.sun.com/jsf/composite/comp”> ……………. <my:out value=”yes”/> On disk: <context root>/resources/comp/out.xhtml> JSF Composite components can leverage the HTML 5 JavaScript API!© Copyright 5/4/2012 BMC Software, Inc 20
  21. 21. JSF support – HTML 5 with composite components <html... xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h=http://java.sun.com/jsf/html xmlns:f="http://java.sun.com/jsf/core" xmlns:cc="http://java.sun.com/jsf/composite"> <h:head> ... </h:head> … <h:body> <cc:interface> <cc:attribute name=”src” required=”true” ”/> <cc:attribute name=”controls” required=”false” /> </cc:interface> <cc:implementation> <h:outputScript library=”js” name=”audio.js” target=”head”/> <audio src="#{cc.attrs.src}" controls="#{cc.attrs.controls}"></audio> <input type=”button” value=”Play” onclick=”play()”/> <input type=”button” value=”Pause” onclick=”pause()”/> </cc:implementation> </h:body>© Copyright 5/4/2012 BMC Software, Inc 21
  22. 22. JSF support – HTML 5 with composite components audio.js: function play() { var audio = document.getElementsByTagName("audio")[0]; audio.play(); var display = document.getElementsByTagName("input")[0]; display.value = audio.src; } function pause() { var audio = document.getElementsByTagName("audio")[0]; audio.pause(); }© Copyright 5/4/2012 BMC Software, Inc 22
  23. 23. JSF Support for HTML 5 to be enhanced JSF 2.2 enhancements for HTML5 support - Semantic tags, browser feature detection - Use of HTML5 by components - Audio and Video usage enhancements JSR-276 (tool support) Mobile renderkits Page resolver and application context manager API© Copyright 5/4/2012 BMC Software, Inc 23
  24. 24. JEE 7 and HTML 5 WebSockets© Copyright 5/4/2012 BMC Software, Inc 24
  25. 25. WebSocket – Bidirectional TCP Way for multiplexing bi-directional, full-duplex communications channels over a single TCP connection Real-time, bidirectional web communication with low overhead (compared to technologies such as COMET) Standardized way for the server to send content to the browser without being solicited by the client TCP port 80 – no need for additional firewall port rules TCP based, uses HTTP handshake to initiate & terminate WebSocket session Defines two new URI schemes - ws: and wss: for unencrypted and encrypted connections Supported Chrome 16, Firefox 11 and Internet Explorer 10 Blessed by IETF – Tracked by RFC 6455© Copyright 5/4/2012 BMC Software, Inc 25
  26. 26. WebSocket – HTTP connection Handshake Client Request: GET /mychat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: chat Sec-WebSocket-Version: 13 Server response: HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk= Sec-WebSocket-Protocol: chat© Copyright 5/4/2012 BMC Software, Inc 26
  27. 27. Java API for WebSocket support JSR – JSR 356 Creating components to handle bi-directional WebSocket conversations Initiating and intercepting WebSocket events Creation and consumption of WebSocket text and binary messages Abililty to define WebSocket protocols & content models Configuration and management of WebSocket sessions, - timeouts, - retries, - connection pooling Define how WebSocket applications within Java EE security model© Copyright 5/4/2012 BMC Software, Inc 27
  28. 28. Web Socket Sample (w/Grizzly WebSocket API) public class ChatApplication extends WebSocketApplication<ChatWebSocket> { protected ChatWebSocket createWebSocket(Connection c, ServerWebSocketMeta m) { return new ChatWebSocket(c, m, this); } public void onMessage(ChatWebSocket s, DataFrame frame) { String msg = frame.getAsText(); s.sendJson(s.getUser(), msg); } public void onClose(ChatWebSocket s) { s.sendJson(“system”, s.getUser() + “ left the chat”); } }© Copyright 5/4/2012 BMC Software, Inc 28
  29. 29. Concurrency Utils for Managed code© Copyright 5/4/2012 BMC Software, Inc 29
  30. 30. Concurrency Utils – not for managed code! Java.util.concurrent is a great set of libraries for managing concurrent executions – makes writing multi-threaded code (somewhat) simple Cannot (should not) be used in managed environments! Server containers provide runtime support for Java EE application components (Servlets and EJBs) Layer between the App code and Platform resources Multi-threaded code is discouraged in “Managed”© Copyright 5/4/2012 BMC Software, Inc 30
  31. 31. Managed Code unfriendly APIs java.util.Timer java.lang.Thread java.util.concurrent.ExecutorService ThreadPoolExecutor ….© Copyright 5/4/2012 BMC Software, Inc 31
  32. 32. javax.enterprise.concurrent for Managed code JSR 236: Concurrency Utilities for Java EE Created in 2003 Inactive till now Getting a Reboot now! Q4 2012: Release Public Review Draft Q1 2013: Final Release On-Track for Java EE 7© Copyright 5/4/2012 BMC Software, Inc 32
  33. 33. Preview of javax.enterprise.concurrent (JSR 236) ManagedExecutorService - Manageable version of a ExecutorService. ManagedScheduledExecutorService - Manageable version of a ScheduledExecutorService. ManagedTaskListener - ManagedTaskListener is used to monitor the state of a tasks Future. ManagedThreadFactory - Manageable version of a ThreadFactory Etc…© Copyright 5/4/2012 BMC Software, Inc 33
  34. 34. JEE 7 and Cloud© Copyright 5/4/2012 BMC Software, Inc 34
  35. 35. Cloud Introduction - Simple Cloud Model© Copyright 5/4/2012 BMC Software, Inc 35
  36. 36. Cloud Introduction Service Delivery Models - IaaS – Infrastructure as a Service – Amazon EC2, Rackspace - PaaS – Platform as a Service – CloudFoundry, Heroku, Force.com, Google Apps, Amazon Beanstalk - SaaS – Software as a Service – SalesForce, Workday Ownership/Deployment Flavors - Public - Private - Hybrid - Community© Copyright 5/4/2012 BMC Software, Inc 36
  37. 37. Service Delivery Models IaaS Platform as a Service (PaaS) - Deploy customer created/acquired apps - Using languages and tools supported by PaaS Provider - No control of underlying cloud infrastructure - Control over deployed applications, hosting env. Configuration for owned apps© Copyright 5/4/2012 BMC Software, Inc 37
  38. 38. Cloud Offerings are vendor specific Taxonomies, APIs, Service Levels, Interconnections, etc are varied In the IaaS space: AWS is emerging as a de-facto standard (API adopted by Eucalyptus, CloudStack etc) In the PaaS space: Number of providers springing up that can provide support for Java Applications and services© Copyright 5/4/2012 BMC Software, Inc 38
  39. 39. No Standards yet!© Copyright 5/4/2012 BMC Software, Inc 39
  40. 40. Needs of a PaaS Ready app Application as a whole need to be versioned Multiple versions can coexist Must deal with data versioning, upgrades, etc. Need ability to specify QoS properties Apps both expose and connect to services simultaneously Tighter requirements for resource and state management Better isolation between applications© Copyright 5/4/2012 BMC Software, Inc 40
  41. 41. Less control over underlying services© Copyright 5/4/2012 BMC Software, Inc 41
  42. 42. Java EE 7 Cloud Focus: Platform as a Service Next logical step for Java EE Java EE 7 : Evolves from Providing Services to Being one Define new platform roles to accommodate PaaS model Services become First Class citizens 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© Copyright 5/4/2012 BMC Software, Inc 42
  43. 43. New PaaS Roles in Java EE 7 PaaS Product Vendor PaaS Provider PaaS Account Manager PaaS Customer Application Submitter Application Administrator End-User© Copyright 5/4/2012 BMC Software, Inc 43
  44. 44. 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 Mapping to tenant done by the container Tenant id available to application - E.g., under java:comp/tenantId or by injection© Copyright 5/4/2012 BMC Software, Inc 44
  45. 45. Multi-Tenancy Illustration Goal: Simple configuration Flexible tenant discriminator support Other areas impacted - JNDI, JMS, EJB …© Copyright 5/4/2012 BMC Software, Inc 45
  46. 46. PaaS Impact on deployment – Traditional Deployment© Copyright 5/4/2012 BMC Software, Inc 46
  47. 47. PaaS Impact on deployment – Cloud Deployment© Copyright 5/4/2012 BMC Software, Inc 47
  48. 48. Wrap-up Java EE 7 is going to be a major step forward HTML 5 support being added incrementally thru number of JSRs Embracing the Cloud and focusing on PaaS space JVM continues to be a very popular part of Java Ecosystem Exciting times ahead! - Modularity (Project Jigsaw), Closures, etc© Copyright 5/4/2012 BMC Software, Inc 48
  49. 49. Contact – Amit Naik© Copyright 5/4/2012 BMC Software, Inc 49
  50. 50. Q&A© Copyright 5/4/2012 BMC Software, Inc 50
  51. 51. References http://www.infoq.com/articles/twitter-java-use http://cloudopsmanagement.wordpress.com/2011/06/02/open- source-engine-powering-the-next-gen-cloud-stack-part-1/ http://en.wikipedia.org/wiki/HTML5 http://www.slideshare.net/keilw/java-ee-7-the-voyage-of-the- cloud-treader http://en.wikipedia.org/wiki/WebSocket http://www.rfc-editor.org/rfc/rfc6455.txt http://xkcd.com/927/© Copyright 5/4/2012 BMC Software, Inc 51
  52. 52. Learn more at www.bmc.com© Copyright 5/4/2012 BMC Software, Inc 52
  53. 53. Back-up Slides© Copyright 5/4/2012 BMC Software, Inc 53

×