Parallel network data processing in client side JavaScript applications

In modern computer systems, multicore processors are prevalent, even on mobile devices. Since JavaScript WebWorkers provide execution parallelism in a web browser, they can help utilize multicore CPUs more effectively. However, WebWorker limitations include a lack of access to web browser's native XML processing capabilities and related Document Object Model (DOM). We present a JavaScript DOM and XML processing implementation that adds missing APIs to WebWorkers. This way, it is possible to use JavaScript code that relies on native APIs within WebWorkers. We show and evaluate the seamless integration of an external XMPP library to enable parallel network data and user input processing in a web based real-time remote collaboration system. Evaluation shows that our XML processing solution has the same linear execution time complexity as its native API counterparts. The proposed JavaScript solution is a general approach to enable parallel XML data processing within web browser-based applications. By implementing standards compliant DOM interfaces, our implementation is useful for existing libraries and applications to leverage the processing power of multicore systems.

[1]  Christoph Meinel,et al.  Evaluating an instant messaging protocol for digital whiteboard applications , 2011 .

[2]  Christoph Meinel,et al.  Tele-Board: Enabling efficient collaboration in digital design spaces , 2011, Proceedings of the 2011 15th International Conference on Computer Supported Cooperative Work in Design (CSCWD).

[3]  J. Xu OpenCL – The Open Standard for Parallel Programming of Heterogeneous Systems , 2009 .

[4]  Peter Saint-Andre Extensible Messaging and Presence Protocol (XMPP): Core , 2011, RFC.

[5]  Tommi Mikkonen,et al.  Transforming the web into a real application platform: new technologies, emerging trends and missing pieces , 2011, SAC.

[6]  Adam Welc,et al.  Generic workers: towards unified distributed and parallel JavaScript programming model , 2010, PSI EtA '10.

[7]  Robert D. Cameron REX: XML Shallow Parsing with Regular Expressions , 1999, Markup Lang..

[8]  Aiman Erbad,et al.  DOHA: scalable real-time web applications through adaptive concurrent execution , 2012, WWW.

[9]  Christoph Meinel,et al.  Towards cross-platform collaboration - Transferring real-time groupware to the browser , 2013, Proceedings of the 2013 IEEE 17th International Conference on Computer Supported Cooperative Work in Design (CSCWD).

[10]  Peter Saint-Andre,et al.  Bidirectional-streams Over Synchronous HTTP (BOSH) , 2016 .

[11]  Tim Bray,et al.  The JavaScript Object Notation (JSON) Data Interchange Format , 2014, RFC.

[12]  Arnaud Le Hors,et al.  Document Object Model (DOM) Level 2 Core Specification - Version 1.0 , 2000 .

[13]  Scott A. Mahlke,et al.  Dynamically accelerating client-side web applications through decoupled execution , 2011, International Symposium on Code Generation and Optimization (CGO 2011).

[14]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[15]  John Resig,et al.  Secrets of the JavaScript Ninja , 2013 .

[16]  Tatiana Shpeisman,et al.  River trail: a path to parallelism in JavaScript , 2013, OOPSLA.

[17]  Tommi Mikkonen,et al.  The Death of Binary Software: End User Software Moves to the Web , 2011, 2011 Ninth International Conference on Creating, Connecting and Collaborating through Computing.