KEMBAR78
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel | PPT
Develop Real Time HTML5 Applications using
      WebSocket with Apache Camel & ActiveMQ

      Camel One
      16 of May - 2012
        th




    Charles Moulliard
    Sr. Principal Solution Architect
    Apache Committer

        Copyright © 2010 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
1
Speaker : Charles Moulliard

    • Engineer in Agronomy & Master in Zoology
      – 18 years of experience in IT world development
      – Specialized in new technologies Web & Integration
      – Project manager in Bank, Financial, Telco world
    • Solution Architect at FuseSource
    • Committer on projects : Apache ServiceMix, Apache
      Karaf (PMC), Apache Camel, Fuse Fabric

       Twitter : http://twitter.com/cmoulliard
       LinkedIn : http://www.linkedin.com/in/charlesmoulliard
       My blog : http://cmoulliard.blogspot.com
       Slideshare : http://www.slideshare.net/cmoulliard
2                              © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
    • History & HTML5
    • Websocket revealed
 ActiveMQ
    • Stomp and WebSocket
 Camel
    • Camel-websocket
 Demo
 Conclusion

3                       © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
    • History & HTML5
    • Websocket revealed
 ActiveMQ
    • Stomp and WebSocket
 Camel
    • Camel-websocket
 Demo
 Conclusion

4                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 History
    • Started with Java Applet
      and Shockwave player (199x)
    • Followed by Macromedia
      Shockwave, Adobe Flash,
      Microsoft Silverlight
    •Goal : Develop
      client-server application
      using HTTP/RMI protocol
5                    © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Evolution : Animation  Design Rich
  Internet Applications (Intranet)
 Limitations about Technology based on
  Web 1.0 concepts
    • No push  require lot of HTTP requests
    • RMI protocol  blocked by Firewall
    • Exchanges mainly use XML - WebServices
    • Compatibility between plugin(s) / browser
    • Code should be signed (to access local
      resources)
6                      © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Web 2.0 “Revolution”
    •              HTTPs requests

    •Due to volume of data (video,
     audio, text) exchanged
     between “social networks”
    • User becomes “actor” – “collaborating”

 New solutions have been imagined  Ajax
    technology (2005), JSON instead of XML , REST
7                     © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 JavaScript client uses (a)synchronous
  communication with server : XML, JSON
     Ajax Reverse, but not really PUSH




8                     © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 First Strategy Developed
 Cometd/Bayeux protocol
 Principe
    • Use a persistent or long-lasting HTTP
      connection with HTTP server
      (streaming / polling)
    • Events based to push data to the
      browser
    • Connection is keep alive till timeout




9                            © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Drawbacks :
     • Browser (HTTP 1.x spec) only allows 2
       connections with HTTP server  1 connection
       will be kept alive for Cometd/Bayeux server
     • Any new event requests a new HTTP call
     • Bayeux communication protocol has not been
       standardized through IETF, W3C
     • Exchanges based on “Bayeux” message structure
       (and not XML, JSON, …) – more complex to
       handle
     • One Way communication (server  client)
10                      © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 2nd approach - WebSocket
 HTML5 (2009)
     • ~= html + css + js
     • Offline storage
     • RealTime/Communication
     • File/Hardware Access
     • CSS 3, Graphics/Multimedia
     • Supported by Tablet/Pc/Mobile
     • More info :
       http://slides.html5rocks.com/#landing-slide
11                      © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Websocket revealed
     •Full-duplex single
      socket connection
     •HTTP request followed
      by WebSocket data
      Packets exchange
     •ws:// and wss:// protocol
     •Developed part of HTML5 initiative
     •Specification rfc-6455 (Dec-2011) managed
      by IETF Task Force
12                    © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 What the browser sends 


                                                                          Key which is base64 encoded
                                                                          and uses as handshake
                                                                          between client and server




                                                                Version of WebSocket used –
                                                                allow client and server to check if
                                                                they are compatible



13                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 And what it receives




                                                                Response created by the server
                                                                (client key + GUI) signed SHA-1 and
                                                                encoded in base64




14                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Next Data frames are exchanged back and
  forth between client and server through
  TCP/IP connection




 Bytes or UTF-8 Text packets are supported
 Text is mainly used within JavaScript
15                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Sec-WebSocket-protocol
     • Application-level protocol layered over the WebSocket
       Protocol (chat, …)


 Sec-WebSocket-Extensions
     • Initially sent from the client to the server, and then
       subsequently sent from the server to the client,
     •  To agree on a set of protocol-level extensions to use for
       the duration of the connection



16                          © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Introduction

 Benefits
     • Use same ports as HTTP and
      HTTPS
     •Bandwidth reduction
     •No long polling process
     •No more unnecessary traffic
     •Standard based
     •Security managed though Web
      Server (SSL, Authentication)

17                   © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
     • History & HTML5
     • Websocket revealed
 ActiveMQ
     • Stomp and WebSocket
 Camel
     • Camel-websocket
 Demo
 Conclusion

18                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

 Provide a websocket implementation using
  ws:// transport connector
 Use Jetty WebSocket v7.5
 Is available since ActiveMQ 5.6
 Stomp is the wire format

 More info :
  http://activemq.apache.org/websockets.html

19               © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

                       HTTP(S)
                   Request/Response

       Client                                   WebSocket                                    Stomp      ActiveMQ
     (Browser)                                  Connector                                   Converter   (Backend)
                        TCP
                     (WebSocket)
                                                                                           ActiveMQ




                 1. HTTP Request (Upgrade)

                      2. HTTP Response


                     3. Stomp Subscribe
                                                              4. Message received
                                                                   from Topic

                       5. Send WebSocket
                              Data




20                                           © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

 Server side
     • 1) Transport connector must be enable for websocket



                                                                           Add ws:// transport connector


     • 2) Topics/Queues will be used as channels to send (or
       receive messages)                          Nothing special …




21                           © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

 Client side
     • Need js client
      A) stomp.js : Author Jeff Mesnil
       – Code : https://github.com/jmesnil/stomp-websocket
       – Doc : http://www.jmesnil.net/stomp-websocket/doc/
      B) stomple : Author  Karl Krukow
       – Code : https://github.com/krukow/stomple




22                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

    2) Create a WebSocket connection with
     ActiveMQ using Stomp.js client
                                                                                           JQuery helps us to
                                                                                           display result in HTML
                                                                                           page

A. Create a client
to connect to the
server

                                                                                                   Destination : /topic/stockQuoteTopic
                                                                                                   url : ws://localhost:61614/stomp :




         C. Establish connection using                                                 C. Wait response …
         login, password




   23                                    © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

   • 3) Subscribe to the topic (= channel)
Subscribe to the topic and listen on
messages

                                                                                              Parse JSON messages




   • 4) When job is done  close connection
                                                                                     Close here




   24                                  © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - ActiveMQ

 Benefits
     •Acts as real time data feed provider (topic)
     •Infrastructure can be secured
       – Web Server level (SSL, Authentication)
       – ActiveMQ “security plugin”
     •By combining Scalability/High Availability
      features of ActiveMQ, feed are persisted,
      distributed


25                       © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
     • History & HTML5
     • Websocket revealed
 ActiveMQ
     • Stomp and WebSocket
 Camel
     • Camel-websocket
 Demo
 Conclusion

26                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel

 Camel-websocket component - part of Camel
  2.10 (http://camel.apache.org/websocket.html )
 Use Jetty WebServer v7.5
 Can be used to produce or consume
 Allow to send packets to multiple clients
  (“sendToAll”) or to individual (=key)
 Should be combined with EIP patterns to
  aggregate/split/enrich data and/or other
  components (RSS, Atom, Twitter, JSon, …)

27                  © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel
                         HTTP(S)
                     Request/Response

       Client                                     WebSocket                                 Data            JMS
     (Browser)                                    Component                                Format         Component
                          TCP
                       (WebSocket)
                                                                                           Camel



                                                                                                             ActiveMQ
                                                                                                              (Topic)



                 1. HTTP Request (Upgrade)

                      2. HTTP Response


                    3. Connect to channel                                                           4. Message consumed
                                                                                                         From Topic
                                                            5. On Camel Exchange
                                                                   received

                       6. Send WebSocket
                              Data




28                                           © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps – Camel - Produce

 1) Create a Camel Route to produce
  websocket packets  Http Client




               Data consumed from a topic are send
               to all the WebSocket clients
               connected




29                  © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps – Camel - Consume

 1) or Create a Camel Route to consume -
  produce websocket packets

                                                                 WebSockets packets are received by
                                                                 the websocket:chat-room endpoint




                                 Packets send by client in the channel
                                 “chat-room” are resend to all the
                                 clients connected to the “chat-room”




30                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel

 2) Client side - Will use WebSocket js script in
     combination with jquery, jquery-ui, … to
     communicate

                                                                      First. Create a WebSocket connection




                                       4 methods are available :
                                       -onopen
                                       -onmessage
                                       -onerror
                                       -onclose



31                      © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel

 2) Parse messages
                                                                Every websocket “message” is consumed here




                                          Message is parsed
                                          using JSON (text 
                                          Object)




                         Next we display the result in the HTML page




32                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel

 2) Close connection
                                                                Close event can be used to stop
                                                                   communication with server




33                © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Camel

 Benefits Provided by Camel framework 
     • Camel acts as a mediation router between
      “feed” providers and “feed” consumers
     • Will facilitate “aggregation”, “enrichment”,
      “filtering” of the feeds receive before to
      distribute them
     • Will provide the components required to
      interconnect “platforms”
     • Camel + ActiveMQ + Fabric = Scalability, High
      Availability, Cloud of data Feed
34                       © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
     • History & HTML5
     • Websocket revealed
 ActiveMQ
     • Stomp and WebSocket
 Camel
     • Camel-websocket
 Demo
 Conclusion

35                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Demo




     ActiveMQ – Stock
           Trader
          Demo 1


36               © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Demo




     Camel – Chat
        Room
       Demo 2

37              © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Demo

     Camel – News
        Feed
       Demo 3


                                                              Need help :
                                                              Send messages to
                                                               #camelone

38              © 2012 FuseSource Corp. All rights reserved
Agenda

 Introduction
     • History & HTML5
     • Websocket revealed
 ActiveMQ
     • Stomp and WebSocket
 Camel
     • Camel-websocket
 Demo
 Conclusion

39                       © 2012 FuseSource Corp. All rights reserved
Real Time HTML5 Apps - Conclusion

 ActiveMQ and Camel are ready
  for “Real Time HTML5
  Application Development”
 Provide best of the Fuse -
  Apache technology for
  integration (EIP and
  components)
 Will help you to drive your
  business (transport, tracking,…)
 Available for any device ….
  Tablet/iPhone/Android/Pc/Mac
40                     © 2012 FuseSource Corp. All rights reserved
Any Questions?

                                             Twitter : @cmoulliard

                                             More info :
                                              http://fusesource.com




  Demo code :
   https://github.com/FuseByExample/websocket-activemq-c


41                   © 2012 FuseSource Corp. All rights reserved

Camelone-2012 HTML5 WebSocket ActiveMQ/Camel

  • 1.
    Develop Real TimeHTML5 Applications using WebSocket with Apache Camel & ActiveMQ Camel One 16 of May - 2012 th Charles Moulliard Sr. Principal Solution Architect Apache Committer Copyright © 2010 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company 1
  • 2.
    Speaker : CharlesMoulliard • Engineer in Agronomy & Master in Zoology – 18 years of experience in IT world development – Specialized in new technologies Web & Integration – Project manager in Bank, Financial, Telco world • Solution Architect at FuseSource • Committer on projects : Apache ServiceMix, Apache Karaf (PMC), Apache Camel, Fuse Fabric Twitter : http://twitter.com/cmoulliard LinkedIn : http://www.linkedin.com/in/charlesmoulliard My blog : http://cmoulliard.blogspot.com Slideshare : http://www.slideshare.net/cmoulliard 2 © 2012 FuseSource Corp. All rights reserved
  • 3.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 3 © 2012 FuseSource Corp. All rights reserved
  • 4.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 4 © 2012 FuseSource Corp. All rights reserved
  • 5.
    Real Time HTML5Apps - Introduction  History • Started with Java Applet and Shockwave player (199x) • Followed by Macromedia Shockwave, Adobe Flash, Microsoft Silverlight •Goal : Develop client-server application using HTTP/RMI protocol 5 © 2012 FuseSource Corp. All rights reserved
  • 6.
    Real Time HTML5Apps - Introduction  Evolution : Animation  Design Rich Internet Applications (Intranet)  Limitations about Technology based on Web 1.0 concepts • No push  require lot of HTTP requests • RMI protocol  blocked by Firewall • Exchanges mainly use XML - WebServices • Compatibility between plugin(s) / browser • Code should be signed (to access local resources) 6 © 2012 FuseSource Corp. All rights reserved
  • 7.
    Real Time HTML5Apps - Introduction  Web 2.0 “Revolution” • HTTPs requests •Due to volume of data (video, audio, text) exchanged between “social networks” • User becomes “actor” – “collaborating”  New solutions have been imagined  Ajax technology (2005), JSON instead of XML , REST 7 © 2012 FuseSource Corp. All rights reserved
  • 8.
    Real Time HTML5Apps - Introduction  JavaScript client uses (a)synchronous communication with server : XML, JSON  Ajax Reverse, but not really PUSH 8 © 2012 FuseSource Corp. All rights reserved
  • 9.
    Real Time HTML5Apps - Introduction  First Strategy Developed  Cometd/Bayeux protocol  Principe • Use a persistent or long-lasting HTTP connection with HTTP server (streaming / polling) • Events based to push data to the browser • Connection is keep alive till timeout 9 © 2012 FuseSource Corp. All rights reserved
  • 10.
    Real Time HTML5Apps - Introduction  Drawbacks : • Browser (HTTP 1.x spec) only allows 2 connections with HTTP server  1 connection will be kept alive for Cometd/Bayeux server • Any new event requests a new HTTP call • Bayeux communication protocol has not been standardized through IETF, W3C • Exchanges based on “Bayeux” message structure (and not XML, JSON, …) – more complex to handle • One Way communication (server  client) 10 © 2012 FuseSource Corp. All rights reserved
  • 11.
    Real Time HTML5Apps - Introduction  2nd approach - WebSocket  HTML5 (2009) • ~= html + css + js • Offline storage • RealTime/Communication • File/Hardware Access • CSS 3, Graphics/Multimedia • Supported by Tablet/Pc/Mobile • More info : http://slides.html5rocks.com/#landing-slide 11 © 2012 FuseSource Corp. All rights reserved
  • 12.
    Real Time HTML5Apps - Introduction  Websocket revealed •Full-duplex single socket connection •HTTP request followed by WebSocket data Packets exchange •ws:// and wss:// protocol •Developed part of HTML5 initiative •Specification rfc-6455 (Dec-2011) managed by IETF Task Force 12 © 2012 FuseSource Corp. All rights reserved
  • 13.
    Real Time HTML5Apps - Introduction  What the browser sends  Key which is base64 encoded and uses as handshake between client and server Version of WebSocket used – allow client and server to check if they are compatible 13 © 2012 FuseSource Corp. All rights reserved
  • 14.
    Real Time HTML5Apps - Introduction  And what it receives Response created by the server (client key + GUI) signed SHA-1 and encoded in base64 14 © 2012 FuseSource Corp. All rights reserved
  • 15.
    Real Time HTML5Apps - Introduction  Next Data frames are exchanged back and forth between client and server through TCP/IP connection  Bytes or UTF-8 Text packets are supported  Text is mainly used within JavaScript 15 © 2012 FuseSource Corp. All rights reserved
  • 16.
    Real Time HTML5Apps - Introduction  Sec-WebSocket-protocol • Application-level protocol layered over the WebSocket Protocol (chat, …)  Sec-WebSocket-Extensions • Initially sent from the client to the server, and then subsequently sent from the server to the client, •  To agree on a set of protocol-level extensions to use for the duration of the connection 16 © 2012 FuseSource Corp. All rights reserved
  • 17.
    Real Time HTML5Apps - Introduction  Benefits • Use same ports as HTTP and HTTPS •Bandwidth reduction •No long polling process •No more unnecessary traffic •Standard based •Security managed though Web Server (SSL, Authentication) 17 © 2012 FuseSource Corp. All rights reserved
  • 18.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 18 © 2012 FuseSource Corp. All rights reserved
  • 19.
    Real Time HTML5Apps - ActiveMQ  Provide a websocket implementation using ws:// transport connector  Use Jetty WebSocket v7.5  Is available since ActiveMQ 5.6  Stomp is the wire format  More info : http://activemq.apache.org/websockets.html 19 © 2012 FuseSource Corp. All rights reserved
  • 20.
    Real Time HTML5Apps - ActiveMQ HTTP(S) Request/Response Client WebSocket Stomp ActiveMQ (Browser) Connector Converter (Backend) TCP (WebSocket) ActiveMQ 1. HTTP Request (Upgrade) 2. HTTP Response 3. Stomp Subscribe 4. Message received from Topic 5. Send WebSocket Data 20 © 2012 FuseSource Corp. All rights reserved
  • 21.
    Real Time HTML5Apps - ActiveMQ  Server side • 1) Transport connector must be enable for websocket Add ws:// transport connector • 2) Topics/Queues will be used as channels to send (or receive messages) Nothing special … 21 © 2012 FuseSource Corp. All rights reserved
  • 22.
    Real Time HTML5Apps - ActiveMQ  Client side • Need js client A) stomp.js : Author Jeff Mesnil – Code : https://github.com/jmesnil/stomp-websocket – Doc : http://www.jmesnil.net/stomp-websocket/doc/ B) stomple : Author  Karl Krukow – Code : https://github.com/krukow/stomple 22 © 2012 FuseSource Corp. All rights reserved
  • 23.
    Real Time HTML5Apps - ActiveMQ  2) Create a WebSocket connection with ActiveMQ using Stomp.js client JQuery helps us to display result in HTML page A. Create a client to connect to the server Destination : /topic/stockQuoteTopic url : ws://localhost:61614/stomp : C. Establish connection using C. Wait response … login, password 23 © 2012 FuseSource Corp. All rights reserved
  • 24.
    Real Time HTML5Apps - ActiveMQ • 3) Subscribe to the topic (= channel) Subscribe to the topic and listen on messages Parse JSON messages • 4) When job is done  close connection Close here 24 © 2012 FuseSource Corp. All rights reserved
  • 25.
    Real Time HTML5Apps - ActiveMQ  Benefits •Acts as real time data feed provider (topic) •Infrastructure can be secured – Web Server level (SSL, Authentication) – ActiveMQ “security plugin” •By combining Scalability/High Availability features of ActiveMQ, feed are persisted, distributed 25 © 2012 FuseSource Corp. All rights reserved
  • 26.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 26 © 2012 FuseSource Corp. All rights reserved
  • 27.
    Real Time HTML5Apps - Camel  Camel-websocket component - part of Camel 2.10 (http://camel.apache.org/websocket.html )  Use Jetty WebServer v7.5  Can be used to produce or consume  Allow to send packets to multiple clients (“sendToAll”) or to individual (=key)  Should be combined with EIP patterns to aggregate/split/enrich data and/or other components (RSS, Atom, Twitter, JSon, …) 27 © 2012 FuseSource Corp. All rights reserved
  • 28.
    Real Time HTML5Apps - Camel HTTP(S) Request/Response Client WebSocket Data JMS (Browser) Component Format Component TCP (WebSocket) Camel ActiveMQ (Topic) 1. HTTP Request (Upgrade) 2. HTTP Response 3. Connect to channel 4. Message consumed From Topic 5. On Camel Exchange received 6. Send WebSocket Data 28 © 2012 FuseSource Corp. All rights reserved
  • 29.
    Real Time HTML5Apps – Camel - Produce  1) Create a Camel Route to produce websocket packets  Http Client Data consumed from a topic are send to all the WebSocket clients connected 29 © 2012 FuseSource Corp. All rights reserved
  • 30.
    Real Time HTML5Apps – Camel - Consume  1) or Create a Camel Route to consume - produce websocket packets WebSockets packets are received by the websocket:chat-room endpoint Packets send by client in the channel “chat-room” are resend to all the clients connected to the “chat-room” 30 © 2012 FuseSource Corp. All rights reserved
  • 31.
    Real Time HTML5Apps - Camel  2) Client side - Will use WebSocket js script in combination with jquery, jquery-ui, … to communicate First. Create a WebSocket connection 4 methods are available : -onopen -onmessage -onerror -onclose 31 © 2012 FuseSource Corp. All rights reserved
  • 32.
    Real Time HTML5Apps - Camel  2) Parse messages Every websocket “message” is consumed here Message is parsed using JSON (text  Object) Next we display the result in the HTML page 32 © 2012 FuseSource Corp. All rights reserved
  • 33.
    Real Time HTML5Apps - Camel  2) Close connection Close event can be used to stop communication with server 33 © 2012 FuseSource Corp. All rights reserved
  • 34.
    Real Time HTML5Apps - Camel  Benefits Provided by Camel framework  • Camel acts as a mediation router between “feed” providers and “feed” consumers • Will facilitate “aggregation”, “enrichment”, “filtering” of the feeds receive before to distribute them • Will provide the components required to interconnect “platforms” • Camel + ActiveMQ + Fabric = Scalability, High Availability, Cloud of data Feed 34 © 2012 FuseSource Corp. All rights reserved
  • 35.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 35 © 2012 FuseSource Corp. All rights reserved
  • 36.
    Real Time HTML5Apps - Demo ActiveMQ – Stock Trader Demo 1 36 © 2012 FuseSource Corp. All rights reserved
  • 37.
    Real Time HTML5Apps - Demo Camel – Chat Room Demo 2 37 © 2012 FuseSource Corp. All rights reserved
  • 38.
    Real Time HTML5Apps - Demo Camel – News Feed Demo 3 Need help : Send messages to #camelone 38 © 2012 FuseSource Corp. All rights reserved
  • 39.
    Agenda  Introduction • History & HTML5 • Websocket revealed  ActiveMQ • Stomp and WebSocket  Camel • Camel-websocket  Demo  Conclusion 39 © 2012 FuseSource Corp. All rights reserved
  • 40.
    Real Time HTML5Apps - Conclusion  ActiveMQ and Camel are ready for “Real Time HTML5 Application Development”  Provide best of the Fuse - Apache technology for integration (EIP and components)  Will help you to drive your business (transport, tracking,…)  Available for any device …. Tablet/iPhone/Android/Pc/Mac 40 © 2012 FuseSource Corp. All rights reserved
  • 41.
    Any Questions?  Twitter : @cmoulliard  More info : http://fusesource.com  Demo code : https://github.com/FuseByExample/websocket-activemq-c 41 © 2012 FuseSource Corp. All rights reserved