kaazing gateway
play

Kaazing Gateway Open Source HTML 5 Web Socket Server Speaker - PowerPoint PPT Presentation

Kaazing Gateway Open Source HTML 5 Web Socket Server Speaker John Fallows Co-Founder: Kaazing Co-Author: Pro JSF and Ajax, Apress Participant: HTML 5 Community Agenda Networking Review HTML 5 Communication


  1. Kaazing Gateway Open Source HTML 5 Web Socket Server

  2. Speaker • John Fallows • Co-Founder: Kaazing • Co-Author: Pro JSF and Ajax, Apress • Participant: HTML 5 Community

  3. Agenda • Networking Review • HTML 5 Communication • Kaazing Gateway • Kaazing Enterprise Gateway • Kaazing Enterprise Gateway • Q & A

  4. Networking Review • Desktop Networking – Full-duplex bidirectional TCP sockets – Access any server on the network • Browser Networking • Browser Networking – Half-duplex HTTP request-response – HTTP polling, long polling, streaming – Same-origin HTTP requests

  5. Half-Duplex Architecture Java EE Container RMI - JDBC - TCP (Full Duplex) TCP (Full Duplex) Database EJB sport Logic IMAP - RMI TCP (Full Duplex) Application Transpo JavaMail JavaMail IMAP Server IMAP Server Servlet JABBER - TCP (Full Duplex) IM Server HTTP Custom - Browser ( Half Duplex ) JMS - Stock RMI TCP (Full Duplex) TCP (Full Duplex) Trading Trading JMS Stock Client JMS Feed

  6. HTML 5 Overview • Next generation application platform – Communication (sockets, cross-site) – Graphics (2D) – Drag ‘n’ drop – Drag ‘n’ drop – Storage (transient, persistent) – Offline – Compatibility – Scheduled for completion in 2022 (!)

  7. HTML 5 Communication • WebSocket – Proxy-friendly text socket for your browser • Server-Sent Events – Standardized HTTP streaming (downstream) – Standardized HTTP streaming (downstream) • Cross-Site XMLHttpRequest – Secure cross-site remote communication • postMessage – Secure inter-iframe communication

  8. Full-Duplex Architecture RMI - JDBC - Java EE TCP (Full Duplex) TCP (Full Duplex) EJB RMI - TCP (Full Duplex) JMS Database erver JDBC - TCP (Full Duplex) WebSocket Serv IMAP - TCP (Full Duplex) IMAP Server Jabber - TCP (Full Duplex) IM Server TCP over HTTP ( Full Duplex ) Browser Custom - TCP (Full Duplex) Stock Trading Feed

  9. Kaazing Protocols Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  10. Kaazing ByteSocket • Provides binary socket abstraction • Leverages text-based WebSocket – Encodes payload using base64 • Send and receive ByteBuffers • Send and receive ByteBuffers – JavaScript has no byte or ByteArray type (yet) • Kaazing Gateway converts base64

  11. Kaazing ByteSocket var location = “ws://www.kaazing.org/binary”; var socket = new ByteSocket(location); socket.onmessage = function(event) { alert(event.data.getInt()); } function(event) { alert(event.data.getInt()); } var buf = new ByteBuffer(); buf.putString(“Hello, world”, Charset.UTF8); socket.postMessage(buf.flip());

  12. Kaazing ByteSocket Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  13. HTML 5 WebSocket • Provides Full-Duplex Text Socket • Send and Receive Strings • Enables Streaming to Server Too • Browser Support • Browser Support – None (yet)

  14. HTML 5 WebSocket Schemes ws://www.kaazing.org/text wss://www.kaazing.org/encrypted-text wss://www.kaazing.org/encrypted-text

  15. HTML 5 WebSocket API var location = “ws://www.kaazing.org/text”; var socket = new WebSocket(location); socket.onopen = function(event) { socket.send(“Hello, WebSocket”); } function(event) { socket.send(“Hello, WebSocket”); } socket.onmessage = function(event) { alert(event.data); } socket.onclose = function(event) { alert(“closed”); }

  16. HTML 5 WebSocket Handshake GET /text HTTP/1.1\r\n Upgrade: WebSocket\r\n Connection: Upgrade\r\n Host: www.kaazing.org\r\n …\r\n …\r\n HTTP/1.1 101 WebSocket Protocol Handshake\r\n Upgrade: WebSocket\r\n Connection: Upgrade\r\n …\r\n

  17. HTML 5 WebSocket Frames • Frames can be sent full-duplex – Either direction at any time • Text Frames use terminator \x80Hello, WebSocket\0xff \x80Hello, WebSocket\0xff • Binary Frames use length prefix \x00\0x10Hello, WebSocket • Text and binary frames on same WebSocket

  18. Kaazing WebSocket Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  19. HTML 5 Server-Sent Events • Standardizes Comet – JavaScript API – Wire protocol • Encourages adoption by servers • Encourages adoption by servers • Browser Support – Patch under review for Firefox trunk

  20. HTML 5 Server-Sent Events • HTML DOM Element <eventsource src=“http://www.kaazing.org/sse” onmessage=“alert(event.data)” > • HTML DOM API var es = document.createElement(“eventsource”); es.addEventListener(“message”, function(event) { alert(event.data); }, false); es.addEventSource(“http://www.kaazing.org/sse”);

  21. HTML 5 Server-Sent Events GET /sse HTTP/1.1\r\n Host: www.kaazing.org\r\n Last-Event-ID: 9\r\n …\r\n 200 OK HTTP/1.1\r\n …\r\n :comment\n id: 10\n data: Hello, Server-Sent Events\n \n

  22. Kaazing Server-Sent Events Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  23. Cross-Site XMLHttpRequest • W3C Technical Report – Access Control for Cross-Site Requests – Published Sept 12, 2008 – http://www.w3.org/TR/access-control/ – http://www.w3.org/TR/access-control/ • Browser Support – Firefox 3.1-beta – IE8 XDomainRequest (similar) – Opera, Safari, Chrome coming

  24. Cross-Site XMLHttpRequest GET / HTTP/1.1\r\n Host: www.w3.org\r\n Origin: http://www.kaazing.org\r\n …\r\n …\r\n 200 OK HTTP/1.1\r\n Allow-Origin: http://www.kaazing.org\r\n …\r\n

  25. Kaazing Cross-Site XHR Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  26. HTML 5 postMessage • Send Strings Between HTML Documents – Documents may be served by different sites • Standard API targetWindow.postMessage(message, targetOrigin) targetWindow.postMessage(message, targetOrigin) window.onmessage = function(event) { alert(event.data); } • Browser Support – IE 8, FF 3, Opera 9, WebKit nightlies

  27. Kaazing postMessage Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  28. Kaazing postMessage • HTML 5 – targetWindow.postMessage(message, targetOrigin) • Kaazing – postMessage0(targetWindow, message, targetOrigin) – postMessage0(targetWindow, message, targetOrigin) – Documents must be served by same or peer domains http://www.kaazing.org:8000/same-domain https://www.kaazing.org:9000/secure-same -domain - or - http://peer0.kaazing.org:8000/peer-domain https://peer1.kaazing.org:9000/secure-peer-domain

  29. Kaazing Protocols Support Protocols ByteSocket WebSocket Server-Sent Events Cross-Site XHR postMessage IFrame XHR Cookies

  30. Kaazing Protocols • Text or Binary – Stomp – XMPP – IRC – IRC – Telnet – IMAP – SMTP – Custom…

  31. Kaazing Gateway Scalability • Concurrency – Proportional to bandwidth not connections • Latency – Socket integration, bytes-in, bytes-out – Socket integration, bytes-in, bytes-out • Stateless – Minimal memory usage, balancing, failover

  32. Kaazing Enterprise Gateway • Features – Adobe Flex APIs – Flash runtime detection – EncryptedKeyring – EncryptedKeyring – Single sign-on – Protocol Validation – Protocol Security Enhancements – Management

  33. Summary • Kaazing Gateway – HTML 5 WebSocket (and more) today – Open source community • http://www.kaazing.org • http://www.kaazing.org – Binary and text protocol support • Kaazing Enterprise Gateway – 60-day free trial • http://www.kaazing.com – 24x7 support available

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend