SlideShare a Scribd company logo
Techniques For Responsive
Real-Time Web User Interfaces

Roger Kitain
Principal Member Technical Staff




1   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Background
        Who Am I?

           Primary responsibility: JSF at Oracle
           JSF Co-spec lead for 1.2, 2.0
           Work related passion: Client side, JavaScript, Real-time web
            communication
           Hobbies: Music (Guitar), Hockey, Robotics, code slinger, all things
            cool!




2   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
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.




3   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Program Agenda


         Introduction
         The Real-Time Web
         User Interface Techniques
         Demos
         Summary



4   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
“Twitter is just a multiplayer notepad.”
           Ben Maddux

        “The internet: Transforming Society
        And Shaping the Future Through Chat”
            Dave Barry




5   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Introduction
            Traditional web: request / response model
                      – Based on HTTP
                      – No server initiated events

            Dynamic web:
                      – Web more dynamic since 1990’s
                      – Java Applets (1995), iframe (1996),
                            JavaScript, DHTML, Ajax




6   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
The Real-time Web
        Traditional Patterns




7   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
The Real-time Web
        Traditional Technologies

                             Partial Page Refresh                                                                                    No standard implementation

                             Real-time through polling                                                                               Complex: HTTP not designed to
                                                                                                                                     send unrequested server
                                                                                                                                     responses




8   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Communication
        Server Sent Events : HTML5 “Streaming”

           Web page subscribes to a stream of DOM events from server
           Unidirectional: events form server to client (over HTTP)
           Evolved from April 2004 proposal:
                     – http://ln.hixie.ch/?count=1&start=1083167110
           Specification:
                     – http://www.w3.org/TR/eventsource/




9   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Communication
         Server Sent Events : Client




10   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Communication
         Web Sockets: HTML5 “Full Duplex”

            Bidirectional client / server connection
            HTTP for initial handshake
            Connection: upgrade from HTTP to WS protocol
            Data sent in frames – Each frame (example):
                                 0x00Hello World0xff                                                     Data (Hello World) is UTF-8




11   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Communication
         Web Sockets : Client




12   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
User Interface Techniques
         Component Pattern

            Based on JSF 2.x component model and JavaScript
            Encapsulate HTML5 JavaScript API within JSF component.
            Connection established when page loads
            JSF component may also render “placeholder” markup for receiving
             message data.
            Works for Server Sent Events, Web Socket




13   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
User Interface Techniques
         Model Pattern

            Use Java API to start a connection from a model bean action method
            Connection established as the result of some user action
            JSF component may also render “placeholder” markup for receiving
             message data.
            Consider how to handle connection when bean goes out of scope




14   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
DEMO




15   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Web
         Use Case: Device Control




                                                                                                 Web Socket                                     Physical
                                                                                                   Server                                        Device




16   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
DEMO




17   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Real-time Web
         Use Case: Device Control




        Browser                                                                                  Web Socket                                     Physical
         Client                                                                                    Server                                        Device

                                                                                            Bean
                                                                                                                             Socket              Device
        JavaScript                                                                                                           Handler              SDK
           API




18   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
HTML5 Technology Availability
         Useful Resources


            http://caniuse.com
            http://feeds.feedburner.com/WhenCanIUse




19   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
HTML5 Technology
         Availability




20   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
HTML5 Technology
         Availability




21   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Summary

            Traditional web / dynamic web
            Traditional patterns / technologies
            Real-time communication (HTML5)
            User interface techniques
            Use cases




22   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
References


            http://thethirdstone.com
            http://java.net/projects/websocket-spec
            http://jcp.org/en/jsr/detail?id=356




23   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Q&A


24   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13
Graphic Section Divider




25   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classification from Slide 13

More Related Content

What's hot

Newfeaturesincontext 130911052709-phpapp01
Newfeaturesincontext 130911052709-phpapp01Newfeaturesincontext 130911052709-phpapp01
Newfeaturesincontext 130911052709-phpapp01
Frank Rodriguez
 
12.2 l2 implement-and_use_order management_ame integration
12.2 l2 implement-and_use_order management_ame integration12.2 l2 implement-and_use_order management_ame integration
12.2 l2 implement-and_use_order management_ame integration
Vishal Sharma
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Volha Banadyseva
 
Resume - Rajesh Lohakare
Resume - Rajesh LohakareResume - Rajesh Lohakare
Resume - Rajesh Lohakare
Rajesh Lohakare
 
Resume - Rajesh Lohakare
Resume - Rajesh LohakareResume - Rajesh Lohakare
Resume - Rajesh Lohakare
Rajesh Lohakare
 

What's hot (11)

Newfeaturesincontext 130911052709-phpapp01
Newfeaturesincontext 130911052709-phpapp01Newfeaturesincontext 130911052709-phpapp01
Newfeaturesincontext 130911052709-phpapp01
 
12.2 l2 implement-and_use_order management_ame integration
12.2 l2 implement-and_use_order management_ame integration12.2 l2 implement-and_use_order management_ame integration
12.2 l2 implement-and_use_order management_ame integration
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас домаАлександр Белокрылов, Александр Мироненко. Java Embedded у вас дома
Александр Белокрылов, Александр Мироненко. Java Embedded у вас дома
 
11212017 oracle project_portfolio_management_cloud_functional_known_issues_-_...
11212017 oracle project_portfolio_management_cloud_functional_known_issues_-_...11212017 oracle project_portfolio_management_cloud_functional_known_issues_-_...
11212017 oracle project_portfolio_management_cloud_functional_known_issues_-_...
 
120ocmug
120ocmug120ocmug
120ocmug
 
Resume - Rajesh Lohakare
Resume - Rajesh LohakareResume - Rajesh Lohakare
Resume - Rajesh Lohakare
 
Resume - Rajesh Lohakare
Resume - Rajesh LohakareResume - Rajesh Lohakare
Resume - Rajesh Lohakare
 
OSGi Community Event 2010 - Enterprise OSGi in WebSphere and Apache Aries
OSGi Community Event 2010 - Enterprise OSGi in WebSphere and Apache AriesOSGi Community Event 2010 - Enterprise OSGi in WebSphere and Apache Aries
OSGi Community Event 2010 - Enterprise OSGi in WebSphere and Apache Aries
 
Isaca e symposium understanding your data flow jul 6
Isaca e symposium   understanding your data flow jul 6Isaca e symposium   understanding your data flow jul 6
Isaca e symposium understanding your data flow jul 6
 
Imdad resume
Imdad resumeImdad resume
Imdad resume
 

Similar to Con5133

B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
Dr. Wilfred Lin (Ph.D.)
 
Con8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebsCon8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebs
Berry Clemens
 
A Importância do JavaFX no Mercado Embedded
A Importância do JavaFX no Mercado EmbeddedA Importância do JavaFX no Mercado Embedded
A Importância do JavaFX no Mercado Embedded
Bruno Borges
 
Con8817 api management - enable your infrastructure for secure mobile and c...
Con8817   api management - enable your infrastructure for secure mobile and c...Con8817   api management - enable your infrastructure for secure mobile and c...
Con8817 api management - enable your infrastructure for secure mobile and c...
OracleIDM
 
B2 whats new with oracle exalogic worlds best foundation for applications
B2   whats new with oracle exalogic worlds best foundation for applicationsB2   whats new with oracle exalogic worlds best foundation for applications
B2 whats new with oracle exalogic worlds best foundation for applications
Dr. Wilfred Lin (Ph.D.)
 
Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile FrontendsConsuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
Geertjan Wielenga
 

Similar to Con5133 (20)

whats-new-netbeans-ide-80.pptx
whats-new-netbeans-ide-80.pptxwhats-new-netbeans-ide-80.pptx
whats-new-netbeans-ide-80.pptx
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
 
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
 
206520 p6 web services programming interface
206520 p6 web services programming interface206520 p6 web services programming interface
206520 p6 web services programming interface
 
EBsSDKForJavaWithOracleADF_ppt.ppt
EBsSDKForJavaWithOracleADF_ppt.pptEBsSDKForJavaWithOracleADF_ppt.ppt
EBsSDKForJavaWithOracleADF_ppt.ppt
 
Con8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebsCon8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebs
 
WebSockets: um upgrade de comunicação no HTML5
WebSockets: um upgrade de comunicação no HTML5WebSockets: um upgrade de comunicação no HTML5
WebSockets: um upgrade de comunicação no HTML5
 
Marcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL WorkbenchMarcin Szałowicz - MySQL Workbench
Marcin Szałowicz - MySQL Workbench
 
A Importância do JavaFX no Mercado Embedded
A Importância do JavaFX no Mercado EmbeddedA Importância do JavaFX no Mercado Embedded
A Importância do JavaFX no Mercado Embedded
 
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun GuptaHTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Java EE 7 - Novidades e Mudanças
Java EE 7 - Novidades e MudançasJava EE 7 - Novidades e Mudanças
Java EE 7 - Novidades e Mudanças
 
206570 primavera and the fusion stack
206570 primavera and the fusion stack206570 primavera and the fusion stack
206570 primavera and the fusion stack
 
Con8817 api management - enable your infrastructure for secure mobile and c...
Con8817   api management - enable your infrastructure for secure mobile and c...Con8817   api management - enable your infrastructure for secure mobile and c...
Con8817 api management - enable your infrastructure for secure mobile and c...
 
Java ee7 1hour
Java ee7 1hourJava ee7 1hour
Java ee7 1hour
 
B2 whats new with oracle exalogic worlds best foundation for applications
B2   whats new with oracle exalogic worlds best foundation for applicationsB2   whats new with oracle exalogic worlds best foundation for applications
B2 whats new with oracle exalogic worlds best foundation for applications
 
As novidades do Java EE 7: do HTML5 ao JMS 2.0
As novidades do Java EE 7: do HTML5 ao JMS 2.0As novidades do Java EE 7: do HTML5 ao JMS 2.0
As novidades do Java EE 7: do HTML5 ao JMS 2.0
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
 
Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile FrontendsConsuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 

Con5133

  • 1. Techniques For Responsive Real-Time Web User Interfaces Roger Kitain Principal Member Technical Staff 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 2. Background Who Am I?  Primary responsibility: JSF at Oracle  JSF Co-spec lead for 1.2, 2.0  Work related passion: Client side, JavaScript, Real-time web communication  Hobbies: Music (Guitar), Hockey, Robotics, code slinger, all things cool! 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 3. 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. 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 4. Program Agenda  Introduction  The Real-Time Web  User Interface Techniques  Demos  Summary 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 5. “Twitter is just a multiplayer notepad.” Ben Maddux “The internet: Transforming Society And Shaping the Future Through Chat” Dave Barry 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 6. Introduction  Traditional web: request / response model – Based on HTTP – No server initiated events  Dynamic web: – Web more dynamic since 1990’s – Java Applets (1995), iframe (1996), JavaScript, DHTML, Ajax 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 7. The Real-time Web Traditional Patterns 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 8. The Real-time Web Traditional Technologies Partial Page Refresh No standard implementation Real-time through polling Complex: HTTP not designed to send unrequested server responses 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 9. Real-time Communication Server Sent Events : HTML5 “Streaming”  Web page subscribes to a stream of DOM events from server  Unidirectional: events form server to client (over HTTP)  Evolved from April 2004 proposal: – http://ln.hixie.ch/?count=1&start=1083167110  Specification: – http://www.w3.org/TR/eventsource/ 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 10. Real-time Communication Server Sent Events : Client 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 11. Real-time Communication Web Sockets: HTML5 “Full Duplex”  Bidirectional client / server connection  HTTP for initial handshake  Connection: upgrade from HTTP to WS protocol  Data sent in frames – Each frame (example): 0x00Hello World0xff Data (Hello World) is UTF-8 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 12. Real-time Communication Web Sockets : Client 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 13. User Interface Techniques Component Pattern  Based on JSF 2.x component model and JavaScript  Encapsulate HTML5 JavaScript API within JSF component.  Connection established when page loads  JSF component may also render “placeholder” markup for receiving message data.  Works for Server Sent Events, Web Socket 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 14. User Interface Techniques Model Pattern  Use Java API to start a connection from a model bean action method  Connection established as the result of some user action  JSF component may also render “placeholder” markup for receiving message data.  Consider how to handle connection when bean goes out of scope 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 15. DEMO 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 16. Real-time Web Use Case: Device Control Web Socket Physical Server Device 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 17. DEMO 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 18. Real-time Web Use Case: Device Control Browser Web Socket Physical Client Server Device Bean Socket Device JavaScript Handler SDK API 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 19. HTML5 Technology Availability Useful Resources  http://caniuse.com  http://feeds.feedburner.com/WhenCanIUse 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 20. HTML5 Technology Availability 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 21. HTML5 Technology Availability 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 22. Summary  Traditional web / dynamic web  Traditional patterns / technologies  Real-time communication (HTML5)  User interface techniques  Use cases 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 23. References  http://thethirdstone.com  http://java.net/projects/websocket-spec  http://jcp.org/en/jsr/detail?id=356 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 24. Q&A 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13
  • 25. Graphic Section Divider 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 13