Evaluation of Server Push Technologies for Scalable Client-Server Communication

When a consumer (or client) invokes a provider’s service that has a long time processing, a synchronous call is not a good option. This kind of communication blocks the consumer until the response arrives, and, besides, the invocation timeout can be reached raising a timeout error. Hence, an asynchronous call is more appropriate where the consumer calls the provider’s service and continues processing, and, when the provider’s service finishes it pushes the response to the consumer. There are different ways for implementing an asynchronous communication. A simple way is the consumer providing a callback function which the provider’s service invokes when it finishes the processing, performing a server push operation. However, there are many cases where this solution cannot be applied requiring other alternatives, e.g.: the consumer keeps up with the service execution checking for its readiness or state, and when it finishes, it calls another provider’s service to get the result; the consumer and provider keep an open connection for the asynchronous communication. This work analyzes the main server push technologies used for web development, presenting their weaknesses and strengths, and the existing main challenges. As a result, we provide a technologies comparison, and a classification based on multiple qualitative dimensions that helps one to choose the technology that fits its requirements and/or can be used to guide future researches in this field.

[1]  Björn Stierand,et al.  Can I use... Support tables for HTML5, CSS3, etc , 2017 .

[2]  Mikko Pohja Server Push for Web Applications via Instant Messaging , 2010, J. Web Eng..

[3]  Kai Shuang,et al.  Research on Server Push Methods in Web Browser based Instant Messaging Applications , 2013, J. Softw..

[4]  Arie van Deursen,et al.  A Comparison of Push and Pull Techniques for AJAX , 2007, 2007 9th IEEE International Workshop on Web Site Evolution.

[5]  Steve Vinoski Server-Sent Events with Yaws , 2012, IEEE Internet Comput..

[6]  Salvatore Loreto,et al.  Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP , 2011, RFC.

[7]  Eliot Estep Mobile HTML5: Efficiency and Performance of WebSockets and Server-Sent Events , 2013 .

[8]  Martin Thomson,et al.  Generic Event Delivery Using HTTP Push , 2016, RFC.

[9]  Keith W. Ross,et al.  Computer networking - a top-down approach featuring the internet , 2000 .

[10]  Martin Thomson,et al.  Hypertext Transfer Protocol Version 2 (HTTP/2) , 2015, RFC.

[11]  Gaurav S. Sukhatme,et al.  Most valuable player: a robot device server for distributed control , 2001, Proceedings 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems. Expanding the Societal Role of Robotics in the the Next Millennium (Cat. No.01CH37180).

[12]  Syed Rahman,et al.  Remote Data Visualization through WebSockets , 2011, 2011 Eighth International Conference on Information Technology: New Generations.

[13]  Xun Qu A Mobile Tcp Socket , 1997 .

[14]  Alex Delis,et al.  Real-time client-server push strategies: specification and evaluation , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[15]  Bradford G. Nickerson,et al.  Communicating and Displaying Real-Time Data with WebSocket , 2012, IEEE Internet Computing.

[16]  து.நித்யா,et al.  Server Sent Events , 2015 .

[17]  Harrick M. Vin,et al.  Comparative Evaluation of Server-push and Client-pull Architectures for Multimedia Servers , 1996 .

[18]  Mikko Pohja Server push with instant messaging , 2009, SAC '09.

[19]  Alexey Melnikov,et al.  The WebSocket Protocol , 2011, RFC.