Comet and Websocket Web Applications How to Scale Server-Side Event-Driven Scenarios

Total Page:16

File Type:pdf, Size:1020Kb

Comet and Websocket Web Applications How to Scale Server-Side Event-Driven Scenarios Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet [email protected] Roma, March 5th, 2011 1 Agenda What are Comet web applications ? Impacts of Comet web applications WebSocket web applications The CometD project Questions & Answers Roma, March 5th, 2011 2 What are Comet & WebSocket Web Applications ? Roma, March 5th, 2011 3 Web 1.0 Applications Web Classic Interaction Request Pattern Bursts of requests for HTML, images, CSS, JS Navigation Mode Full page based Interaction with Server Reactive, changes happen on user click Resources download Roma, March 5th, 2011 4 Ajax Web Applications Web Classic + XMLHttpRequest (XHR) Request Pattern: changed Bursts (for classic) + Concurrent (for XHR) Requires synchronization in server code Navigation Mode: radically changed Sometimes full page, most often single page with partial changes Interaction with Server: changed Reactive as before Data download Roma, March 5th, 2011 5 Comet Web Applications Web Classic + Ajax + WebSocket Request Pattern, Navigation Mode, Interaction with Server Same as with XHR More Efficient Now messages can be server-initiated Messages do not require a response Uses JavaScript Same as with XHR Roma, March 5th, 2011 6 Rich User Interfaces Traditional Web sacrificed Rich UI for: Ubiquitous access Zero Install Heavy usage of client-side JavaScript and XHR changed the way we create and develop webapps They become rich, and raise expectations Server side events are needed To meet user raised expectations To implement new types of web applications Roma, March 5th, 2011 7 Comet Examples Roma, March 5th, 2011 8 Polling for Server Side Events Polling Strategy for Server-side Events Notification Simple to implement (“I can do that !”) Sensible latency Can look like a denial of service (DoS) attack to the poor server When poll interval is short When the number of clients is large Roma, March 5th, 2011 9 Long Polling for Server-side events Comet Strategy More difficult to implement correctly Minimal latency The “long poll” request is held by the server until: A server-side event arrives A timeout expires The client disconnects Roma, March 5th, 2011 10 Websocket for Server-side events WebSocket strategy More efficient than long poll True bidirectional web communication WebSocket Messages No more Request & Response Not widely deployed yet Messages can be initiated by the server Roma, March 5th, 2011 11 WebSocket From HTML 5 interface WebSocket API & Protocol { Two way communication attribute Function onopen; attribute Function onmessage; Developed by WHATWG attribute Function onerror; Browser vendors attribute Function onclose; Little server side input boolean send(in String data); In IETF WG void close(); Developing standard }; Slow progress Experimentally Deployed Chrome, Opera, Firefox Roma, March 5th, 2011 12 Impacts on the Server Roma, March 5th, 2011 13 Scaling Polling Scaling Polling 1000 clients, each polling every 5 seconds Request Rate: 200 requests/s Latency: 2.5 seconds in average, too high How can polling achieve, say, 250 ms latency ? Reduce the polling interval to 0.5 seconds Request Rate: 2000 requests/s, pretty high Limits Most likely, the server is CPU bound, then connection bound Roma, March 5th, 2011 14 Scaling Comet (Blocking) Scaling Comet (long polling) 1000 clients, long poll request held for 20 seconds Request Rate: 50 requests/s, good But yields 1000 concurrent requests ! Running out of threads in the pool On 64-bit JVM the thread stack size is 1 MB Latency Average latency approaches network latency Maximal latency is at least 3x network latency Limits Most likely, the server is memory bound Note that threads stack memory is outside Java heap Roma, March 5th, 2011 15 Scaling Comet Comet has huge impacts on server-side You cannot just deploy your Comet web application in a standard configuration You cannot deploy your Comet application behind Apache Httpd & other intermediaries Do not scale for the same reasons You need a new generation of servers Roma, March 5th, 2011 16 Asynchronous Servers Jetty Server explored these problems in the Servlet(TM) space for JMS messaging. The Jetty Continuations allow the Jetty Server to threadlessly suspend requests The continuation concepts have been incorporated in the new Servlet(TM) 3.0 specification Jetty 6 and Jetty 7 successfully deployed Comet applications worldwide Jetty 8 implements the Servlet(TM) 3.0 specification Roma, March 5th, 2011 17 Blocking Comet Server-side Event-driven Comet Web Application Roma, March 5th, 2011 18 Asynchronous Comet Server-side Event-driven Comet Web Application Roma, March 5th, 2011 19 Scaling Comet (Asynchronous) Comet (Asynchronous) 1000 clients, long poll request held for 20 seconds Wait for server-side events is threadless Request is re-run on event arrival or on long poll timeout Request Rate: 100 requests/s, good Only few concurrent active (threaded) requests Good latency, good request rate, no thread pool problems Limits Most likely, the server is connection bound, then CPU bound Scales a lot better than normal polling and blocking Comet Roma, March 5th, 2011 20 Scaling Comet (WebSocket) WebSocket 1000 clients, keepalive message every 20 seconds No need to reply, decreased bandwidth Wait for server-side events is threadless Request Rate: 50 requests/s, good Only few concurrent active (threaded) requests Optimal latency, good request rate, no thread pool problems Limits Most likely, the server is connection bound, then CPU bound Scales a slightly better than Comet with continuations due to better data density and reduced request rate Roma, March 5th, 2011 21 The Need of a Framework With Comet, we have an asynchronous bidirectional web Looks like messaging to me Writing server-side code based on continuations (or, in the future, with Servlet 3.0) is difficult It really is, you don't want to do it How are failures handled? Timeouts, dropouts, retries, backoffs, cross domain, etc. Web applications should be easy to write Can we abstract the gory details into a library ? Roma, March 5th, 2011 22 The CometD Project Roma, March 5th, 2011 23 The CometD Project We have now a scalable bidirectional web What do we need to write applications ? We don't want to care about: Which transport: long-polling, websocket limits: same-origin policy, two connection limits We want: A clean way to publish data to the server A clean way to receive data from the server A clean way to “emit” server-side events to clients Roma, March 5th, 2011 24 CometD JavaScript API var cometd = $.cometd; // jQuery style cometd.init('http://myserver/cometd'); cometd.subscribe('/my/channel', function(message) { var data = message.data; // Do something with the data }); cometd.publish('/my/channel', { chatText: 'hello!' }); cometd.disconnect(); Roma, March 5th, 2011 25 The CometD Project There are a lot of other details to take care of Transport Negotiation WebSocket, Long Polling over CORS, JSONP, etc. Authentication Network Failures With possible automatic retry Message Batching Message Acknowledgment Message serialization Etc. From these and other requirements and input, the CometD project was born Roma, March 5th, 2011 26 The CometD Project The CometD project delivers libraries that use the Comet technique (long poll) or WebSocket to transport Bayeux messages The Bayeux protocol specifies the format of the Bayeux messages It is based on JSON Libraries are available in JavaScript (client) Java (client and server) Perl & Python (less active) Roma, March 5th, 2011 27 Bayeux Bayeux is at its core a publish/subscribe messaging system Very similar to JMS publish/subscribe A Bayeux channel is similar to a JMS Topic You may subscribe to it You will be delivered messages published onto You can publish messages to a channel The server automatically delivers the messages to all channel subscribers Roma, March 5th, 2011 28 CometD JavaScript The JavaScript library features Common code with bindings for Dojo and jQuery Highly configurable Message batching Automatic reconnection Pluggable transports WebSocket, Long Polling and Callback Polling available Supports Cross-Origin servers Extensible Many extensions already available Roma, March 5th, 2011 29 CometD Java The Java library features Highly scalable (the client is based on Jetty asynchronous HTTP Client) Message batching Lazy messages A variety of listeners to be notified of relevant events in client and server Data filters to automatically convert data Extensions SecurityPolicy Roma, March 5th, 2011 30 Performance Roma, March 5th, 2011 31 DEMO Roma, March 5th, 2011 32 WebSocket Redux Slightly better maximal latency But don't run your pacemaker on it Slightly better data density If only that was a limitation! No help with hard problems Connection management Handling Failures You still need a framework like CometD Roma, March 5th, 2011 33 References WebSocket http://www.w3.org/TR/websockets http://www.ietf.org/id/draft-ietf-hybi-thewebsocketprotocol-01.txt CometD http://cometd.org Jetty http://eclipse.org/jetty Roma, March 5th, 2011 34 Questions & Answers Roma, March 5th, 2011 35.
Recommended publications
  • AJAX Requests CPEN400A - Building Modern Web Applications - Winter 2018-1
    What is AJAX XmlHttpRequest Callbacks and Error Handling JSON Lecture 6: AJAX Requests CPEN400A - Building Modern Web Applications - Winter 2018-1 Karthik Pattabiraman The Univerity of British Columbia Department of Electrical and Computer Engineering Vancouver, Canada Thursday, October 17, 2019 What is AJAX XmlHttpRequest Callbacks and Error Handling JSON What is AJAX ? 2 1 What is AJAX 2 XmlHttpRequest 3 Callbacks and Error Handling 4 JSON What is AJAX XmlHttpRequest Callbacks and Error Handling JSON What is AJAX ? 3 Mechanism for modern web applications to communicate with the server after page load Without refreshing the current page Request can be sent asynchronously without holding up the main JavaScript thread Stands for “Asynchronous JavaScript and XML”, but does not necessarily involve XML Complement of COMET (Server Push) What is AJAX XmlHttpRequest Callbacks and Error Handling JSON A Brief History of AJAX 4 Introduced by Microsoft as part of the Outlook Web Access (OWA) in 1998 Popularized by Google in Gmail, Maps in 2004-05 Term AJAX coined around 2005 in an article Made part of the W3C standard in 2006 Supported by all major browsers today What is AJAX XmlHttpRequest Callbacks and Error Handling JSON Uses of AJAX 5 Interactivity To enable content to be brought in from the server in response to user requests Performance Load the most critical portions of a webpage first, and then load the rest asynchronously Security (this is questionable) Bring in only the code/data that is needed on demand to reduce the attack surface of the
    [Show full text]
  • HTML5 Websocket Protocol and Its Application to Distributed Computing
    CRANFIELD UNIVERSITY Gabriel L. Muller HTML5 WebSocket protocol and its application to distributed computing SCHOOL OF ENGINEERING Computational Software Techniques in Engineering MSc arXiv:1409.3367v1 [cs.DC] 11 Sep 2014 Academic Year: 2013 - 2014 Supervisor: Mark Stillwell September 2014 CRANFIELD UNIVERSITY SCHOOL OF ENGINEERING Computational Software Techniques in Engineering MSc Academic Year: 2013 - 2014 Gabriel L. Muller HTML5 WebSocket protocol and its application to distributed computing Supervisor: Mark Stillwell September 2014 This thesis is submitted in partial fulfilment of the requirements for the degree of Master of Science © Cranfield University, 2014. All rights reserved. No part of this publication may be reproduced without the written permission of the copyright owner. Declaration of Authorship I, Gabriel L. Muller, declare that this thesis titled, HTML5 WebSocket protocol and its application to distributed computing and the work presented in it are my own. I confirm that: This work was done wholly or mainly while in candidature for a research degree at this University. Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated. Where I have consulted the published work of others, this is always clearly attributed. Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work. I have acknowledged all main sources of help. Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself.
    [Show full text]
  • USER GUIDE IE-SNC-P86xx-07
    COMET SYSTEM www.cometsystem.com Web Sensor P8610 with PoE Web Sensor P8611 with PoE Web Sensor P8641 with PoE USER GUIDE IE-SNC-P86xx-07 © Copyright: COMET System, s.r.o. Is prohibited to copy and make any changes in this manual, without explicit agreement of company COMET System, s.r.o. All rights reserved. COMET System, s.r.o. makes constant development and improvement of their products. Manufacturer reserves the right to make technical changes to the device without previous notice. Misprints reserved. Manufacturer is not responsible for damages caused by using the device in conflict with this manual. To damages caused by using the device in conflict with this manual cannot be provide free repairs during the warranty period. Revision history This manual describes devices with latest firmware version according the table below. Older version of manual can be obtained from a technical support. This manual is also applicable to discontinued device P8631. Document version Date of issue Firmware version Note IE-SNC-P86xx-01 2011-06-13 4-5-1-22 Latest revision of manual for an old generation of firmware for P86xx devices. IE-SNC-P86xx-04 2014-02-20 4-5-5-x Initial revision of manual for new generation of 4-5-6-0 P86xx firmware. IE-SNC-P86xx-05 2015-03-13 4-5-7-0 IE-SNC-P86xx-06 2015-09-25 4-5-8-0 IE-SNC-P86xx-07 2017-10-26 4-5-8-1 2 IE-SNC-P86xx-07 Table of contents Introduction ........................................................................................................................................................ 4 General safety rules ..................................................................................................................................... 4 Device description and important notices ..............................................................................................
    [Show full text]
  • An Overview December 2012
    An Overview December 2012 PUSH TECHNOLOGY LIMITED Telephone: +44 (0)20 3588 0900 3RD FLOOR HOLLAND HOUSE Email: [email protected] 1-4 BURY STREET LONDON EC3A 5AW www.pushtechnology.com ©Copyright Push Technology Ltd December 2012 Contents Introduction 3 Diff usionTM Technology 3 Development experience 4 Publishers 4 Scalability Message queues 4 Distribution 5 Performance 5 Management 5 Support and Training 6 Diff erentiators 6 Data quality of service Benefi ts 7 Inteligent data management 2 ©Copyright Push Technology Ltd December 2012 Introduction Push’s fl agship product, Diff usionTM, provides a Diff usionTM Technology one stop, end-to-end solution for delivering real- At the heart of Diff usionTM is the Diff usionTM server - a time data services to “edge” facing Internet and 100% Java, high performance message broker and data mobile clients. distribution engine with support for multiple protocols Diff usionTM provides all of the components required to including Push Technology’s own high-speed, protocol deliver a scalable, high performance solution across DPT as well as standards Comet and WebSockets. Native a broad range of client technologies; including a high client connectivity is supported on a wide-range of throughput, low latency message broker; scalable, cross- platforms, from JavaScript to Java, Flash/ActionScript to platform connection infrastructure and intelligent traffi c Android and .NET to iOS/Objective-C – the Diff usionTM management and shaping. client SDKs cover all of the popular mobile and browser- based client technology choices in use today. Diff usionTM provides signifi cant benefi ts to customers: • Stream real-time, dynamic content over the Transports Internet to any device.
    [Show full text]
  • Research of Web Real-Time Communication Based on Web Socket
    Int. J. Communications, Network and System Sciences, 2012, 5, 797-801 http://dx.doi.org/10.4236/ijcns.2012.512083 Published Online December 2012 (http://www.SciRP.org/journal/ijcns) Research of Web Real-Time Communication Based on Web Socket Qigang Liu, Xiangyang Sun Sydney Institute of Language & Commerce, Shanghai University, Shanghai, China Email: [email protected] Received September 4, 2012; revised October 15, 2012; accepted October 26, 2012 ABSTRACT Regarding the limitations of traditional web real-time communication solutions such as polling, long-polling, flash plug-in, propose that using new coming Web Socket technology in the web real-time communication field, introduce the features of Web Socket technology, analysis the difference between Web Socket protocol and HTTP protocol, offer an approach to implement the Web Socket both in client and server side, prove Web Socket can decrease network traf- fic and latency greatly by an experiment, made the prospect of future application of Web Socket in web real-time com- munication. Keywords: Web Socket; Full-Duplex; HTTP Streaming; Long-Polling; Latency 1. Introduction mary solutions used by Web developers to accomplish the real-time communication between browser and server The Internet has been an indispensable part of people’s in the past. life in the fast growing information age. People’s re- Polling an approach manually refreshing page is re- quirements for the Internet have changed from informa- placed by auto running program is the earliest solution tion accessibility in the Web 1.0 era to information in- for real-time communication applied in browser. Easy teraction in the Web 2.0 era, and to current instant inter- implementation and no additional requirement for client action observed in an increasing number of pricing sys- and server are the big advantage of this solution.
    [Show full text]
  • USER GUIDE IE-SNC-Tx6xx-06
    COMET SYSTEM www.cometsystem.com Web Sensor T0610 with PoE Web Sensor T4611 with PoE Web Sensor T3610 with PoE Web Sensor T3611 with PoE Web Sensor T7610 with PoE Web Sensor T7611 with PoE Web Sensor T7613D with PoE Web Sensor T6640 with PoE Web Sensor T6641 with PoE Web Sensor T5640 with PoE Web Sensor T5641 with PoE USER GUIDE IE-SNC-Tx6xx-06 © Copyright: COMET System, s.r.o. Is prohibited to copy and make any changes in this manual, without explicit agreement of company COMET System, s.r.o. All rights reserved. COMET System, s.r.o. makes constant development and improvement of all its products. Manufacturer reserves the right to make technical changes without previous notice. Misprints reserved. Manufacturer is not responsible for damages caused by using the device in conflict with this manual. To damages caused by using the device in conflict with this manual cannot be provided free repairs during the warranty period. Revision history This manual describes devices with latest firmware version according the table below. Older version of manual can be obtained from a technical support. Document version Date of issue Firmware version Note IE-SNC-Tx6xx-01 2013-04-29 1-5-5-x Initial revision of manual 1-5-6-0 IE-SNC-Tx6xx-02 2013-12-03 1-5-7-0 1-5-7-1 IE-SNC-Tx6xx-04 2017-02-20 1-5-7-2 1-5-7-3 IE-SNC-Tx6xx-05 2017-09-29 1-5-7-4 IE-SNC-Tx6xx-06 2017-12-18 1-5-7-5 New devices T6640, T6641, T5640, T5641 2 IE-SNC-Tx6xx-06 Table of contents Introduction .......................................................................................................................................................
    [Show full text]
  • Review Paper on AJAX Comet and Websocket Uses for Web HMI/SCADA
    International Journal of Engineering Research and General Science Volume 3, Issue 5, September-October, 2015 ISSN 2091-2730 Review Paper on AJAX Comet and Websocket Uses for Web HMI/SCADA Ayyaj .I .Nadaf 1, S. V. Kulkarni2. Dr. P. P. Shaha3. Dr. M. K. Bhanarkar4 Department of Electronics, Shivaji University, Kolhapur 1,4 , Department of Electronics, Devchand College, Nipani 2,3 [email protected] Abstract— This paper presents review of Ajax Comet and Websocket technology and its uses for industrial control application. This could help for selecting the correct protocol in righteous application. AJAX is asynchronous JavaScript and Extensible Markup Language used for pushing data on a web. Comet is another dominant technology evolved for real time data access on web platform. Websocket is a new trend in which data is transferred in a bidirectional link established with lower layer model. Human Machine Interface (HMI) and Supervisory Control and Data Acquisition (SCADA) are the two major part in control application after Programmable Logic Controller (PLC). Keywords— PROTOCOL, AJAX, COMET, WEBSOCKET, SCADA, PLC. INTRODUCTION I N Automated industry there are lots of process variable need to be controlled so as to get process under control. Simply saying there are lots of real time protocols available for real time monitoring of data. Prevalent manufacturer in the field of automation are Siemens, Allen-Bradley, Mitsubishi, Fanuc, Yamaha, Panasonic and much more stated their own protocols and dedicated hardware/software. New trend is of open source in this case they are building their platform for data interoperable. Same race found for the browser based technology.
    [Show full text]
  • Icefaces Getting Started Guide, Community Edition
    Getting Started Guide Version 1.6 Copyright Copyright 2005-2007. ICEsoft Technologies, Inc. All rights reserved. The content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by ICEsoft Technologies, Inc. ICEsoft Technologies, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide. ICEfaces is a trademark of ICEsoft Technologies, Inc. Sun, Sun Microsystems, the Sun logo, Solaris and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. All other trademarks mentioned herein are the property of their respective owners. ICEsoft Technologies, Inc. Suite 200, 1717 10th Street NW Calgary, Alberta, Canada T2M 4S2 Toll Free: 1-877-263-3822 (USA and Canada) Telephone: 1-403-663-3322 Fax:1-403-663-3320 For additional information, please visit the ICEfaces website: http://www.icefaces.org ICEfaces v1.6 June 2007 About this Guide The ICEfaces Getting Started Guide will help you quickly get started building ICEfaces applications. By reading through this guide, you will: • Gain a basic understanding of what ICEfaces is and what it can do for you. • Install ICEfaces and run the sample applications on your local application server. • Work through a basic ICEfaces tutorial that transforms a standard JSF application into a rich web application powered by ICEfaces.
    [Show full text]
  • Comet User Guide, V 1.8.2
    CoMET User Guide Edit User Role Production Version 1.8.2 Table of Contents Contact Information 1 Acknowledgements 1 Overview 1 New Users 2 Log In 2 Viewing Options 6 Dark Mode 6 Streamline Page 6 Link to CoMET User Guide 7 Filters 7 Record Actions 8 New Record 8 Import 8 Upload an XML File 9 Upload Multiple/Bulk XML Files 11 URL To Remote XML File 13 Create 14 Bulk Actions 20 Change Group (action not available for EDIT user role) 20 Download (action not available for EDIT user role) 20 Publishing 21 Request to Publish 21 Metadata Records List 23 Edit 23 Data Management Plan 23 Data Stewardship Maturity Questionnaire (DSMQ) 23 ISO Editor 24 Extract and View Errors 25 Collaborative Editing 28 Docucomp Components 28 Manage 28 Copy 28 Revision History 30 Compare Versions 31 Undo a Change By Reverting To Prior Version 35 Delete Record 36 View 37 CoMET Format XML 38 Landing Page HTML 39 Plain Text HTML 40 Unresolved ISO 19115-2 XML 41 Assess 42 Component Analysis 42 CSW Rubric 43 DOI Rubric 44 ISO Rubric V2 45 Validate 46 Validate ISO 46 Data Stewardship Maturity Questionnaire (DSMQ) 48 New Record 48 Create 48 Edit 52 Evaluate Questionnaire 53 API 54 Basic CRUD Operations 55 Operations Supported by API: 55 Create — API endpoint - HTTP POST 55 Update — API endpoint - HTTP PUT 56 Export — API endpoint - HTTP GET 57 Delete — API endpoint - HTTP DELETE 58 Search — API endpoint - HTTP GET 59 Appendix 61 Glossary of Terms 61 Contact Information Questions or feedback regarding this guide should be directed to the OneStop Metadata Content Team ([email protected], [email protected], [email protected]) If you encounter issues or need to report a bug in CoMET, please email [email protected].
    [Show full text]
  • Celebrating Comet's 25 Years of Providing Innovative Education and Training
    CELEBRATING COMET’S 25 YEARS OF PROVIDING INNOVATIVE EDUCATION AND TRAINING BY VICTORIA JOHNSON, RICHARD JEFFRIES, GREG BYRD, WENDY SCHREIBER-ABSHIRE, ELIZABETH PAGE, BRUCE MULLER, AND TIM ALBERTA COMET has continually evolved during its 25-year history in order to meet the needs for global geoscience education. lot can change in 25 years. In 1990, major Valdez, ran aground in 1989 (Fig. 1)—at the time, the political changes led the news as the fall of the largest oil spill in the nation’s coastal waters (National A Berlin Wall in 1989 resulted in the reunification Ocean Service 2015). News was also being made in of Germany and East Germany in 1990, the eventual science and technology, and one of the biggest changes collapse of the Soviet Union (U.S. Department of State involved computers. While personal computers had 2014), and major changes in foreign relations. Here, been available for several years, compared to today’s in the United States, the media continued coverage of models, they were slow, had considerably less memory, cleanup operations in Alaska to remediate environ- and their ability to display graphics and multimedia mental damage caused when the oil tanker, Exxon was limited. Cell phones were just coming on the mar- ket, but they certainly were not smart. And the web? It did not exist. The first web page was not created AFFILIATIONS: JOHNSON,* JEFFRIES, BYRD, SCHREIBER-ABSHIRE, PAGE, until late in 1990 by Tim Berners-Lee at the European MULLER, AND ALBERTA—University Corporation for Atmospheric Organization for Nuclear Research (CERN) (World Research/Cooperative Program for Operational Meteorology, Wide Web Consortium 2014).
    [Show full text]
  • Real-World Comet-Based Applications
    Real-World Comet-Based Applications Jean-Francois Arcand, Sun Microsystems, Inc. Greg Wilkins, Webtide Alex Russel, DOJO Foundation TS-6807 2007 JavaOneSM Conference | Session TS-6807 | Goal of This Talk What You Will Gain This session will introduce Comet technologies. Comet (sometimes called request polling, HTTP streaming, or continuation) is a programming technique that enables web servers to send data to the client without any need for the client to request it. It allows creation of event-driven web applications. 2007 JavaOneSM Conference | Session 6807 | 2 Agenda Introduction Introduction to Comet The need for standards Bayeux The Open Ajax Alliance Available solutions Q&A 2007 JavaOneSM Conference | Session 6807 | 3 Agenda Introduction Introduction to Comet The need for standards Bayeux The Open Ajax Alliance Available solutions Q&A 2007 JavaOneSM Conference | Session 6807 | 4 Introduction Who we are.... ● Jean-Francois Arcand, Senior Staff Engineer ● Main developer of the Project Grizzly NIO framework and Project GlassFish™ WebContainer ● Greg Wilkins, CTO, Webtide ● Main developer of the Jetty HTTP server and servlet container ● Alex Russell—Director of R&D at SitePen 2007 JavaOneSM Conference | Session 6807 | 5 Agenda Introduction Introduction to Comet The need for standards Bayeux The Open Ajax Alliance Available solutions Q&A 2007 JavaOneSM Conference | Session 6807 | 6 Introduction to Comet ● Comet is: ● Programming technique for long-running connections over HTTP ● Allows creation of event-driven, interactive web apps 2007
    [Show full text]
  • From Data Push to Websockets
    From Data Push to WebSockets The History of Data Push and the Lightstreamer Technology Alessandro Alinone Last updated: 17 Oct 2018 Agenda ● History of Data Push ● Lightstreamer Technology ● Lightstreamer Success Stories ● MQTT.Cool and JMS Extender What Is Data Push? Information is delivered on the fly as soon as it is generated. Web pages and mobile apps are updated in real time. Many application domains are taking benefit from push technology: ● Financial Services: Online trading platforms for capital markets, live price dissemination, order submission, spread betting ● Gaming: Sports betting, online casinos, online multiplayer video games ● Aerospace and Defense: Web telemetry of space vehicles, satellites, and aircrafts, web-based management of airport operations ● Media: social TV, second screen, sports event live data ● Transportation and Logistics: live tracking, supply chain monitoring ● Alerting: Emergency mass notification systems ● And many others: Social networks, in-app notifications, online collaboration tools, online auctions, systems monitoring, e-learning, etc. Many Terms Used to Refer to Data Push Real-Time Messaging In-App Messaging Data Streaming Push Technology In-App Notifications WebSockets Push Notifications Comet Real-Time Web Web Streaming Real-Time Notifications Long Polling Data Push Internet Messaging Last Mile Messaging Reverse Ajax Ajax Push Web Push and others... The Four Waves of Data Push ● 1996-2000: Webcasting Coarse-grained daily updates ● 2000-2012: Comet (the term "Comet" was coined by Alex Russell
    [Show full text]