Migration of Web Applications with Seamless Execution

Web applications (apps) are programmed using HTML5, CSS, and JavaScript, and are distributed in the source code format. Web apps can be executed on any devices where a web browser is installed, allowing one-source, multi-platform environment. We can exploit this advantage of platform independence for a new user experience called app migration, which allows migrating an app in the middle of execution seamlessly between smart devices. This paper proposes such a migration framework for web apps where we can save the current state of a running app and resume its execution on a different device by restoring the saved state. We save the web app's state in the form of a snapshot, which is actually another web app whose execution can restore the saved state. In the snapshot, the state of the JavaScript variables and DOM trees are saved using the JSON format. We solved some of the saving/restoring problems related to event handlers and closures by accessing the browser and the JavaScript engine internals. Our framework does not require instrumenting an app or changing its source code, but works for the original app. We implemented the framework on the Chrome browser with the V8 JavaScript engine and successfully migrated non-trivial sample apps with reasonable saving and restoring overhead. We also discuss other usage of the snapshot for optimizations and user experiences for the web platform.

[1]  Jon Howell,et al.  Mugshot: Deterministic Capture and Replay for JavaScript Applications , 2010, NSDI.

[2]  Michael D. Ernst,et al.  Interactive record/replay for web application debugging , 2013, UIST.

[3]  Byung-Gon Chun,et al.  CloneCloud: elastic execution between mobile device and cloud , 2011, EuroSys '11.

[4]  Clemente Izurieta,et al.  Comparison of JSON and XML Data Interchange Formats: A Case Study , 2009, CAINE.

[5]  saina. kim,et al.  Boosting up Embedded Linux device : experience on Linux-based Smartphone , 2010 .

[6]  Fabio Paternò,et al.  Engineering JavaScript state persistence of web applications migrating across multiple devices , 2011, EICS '11.

[7]  Jason Flinn,et al.  Slingshot: deploying stateful services in wireless hotspots , 2005, MobiSys '05.

[8]  Soo-Mook Moon,et al.  Snapshot-based loading-time acceleration for web applications , 2015, 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).

[9]  Guanhua Wang Improving Data Transmission in Web Applications via the Translation between XML and JSON , 2011, 2011 Third International Conference on Communications and Mobile Computing.

[10]  Takashi Suezawa,et al.  Persistent execution state of a Java virtual machine , 2000, JAVA '00.

[11]  Bruce G. Lindsay,et al.  Database Snapshots , 1980, VLDB.

[12]  Eric Wohlstadter,et al.  Imagen: runtime migration of browser sessions for javascript web applications , 2013, WWW.

[13]  David Lee JXON: an Architecture for Schema and Annotation Driven JSON/XML BidirectionalTransformations , 2011 .