Imagen: runtime migration of browser sessions for javascript web applications

Due to the increasing complexity of web applications and emerging HTML5 standards, a large amount of runtime state is created and managed in the user's browser. While such complexity is desirable for user experience, it makes it hard for developers to implement mechanisms that provide users ubiquitous access to the data they create during application use. This paper presents our research into browser session migration for JavaScript-based web applications. Session migration is the act of transferring a session between browsers at runtime. Without burden to developers, our system allows users to create a snapshot image that captures all runtime state needed to resume the session elsewhere. Our system works completely in the JavaScript layer and thus snapshots can be transfered between different browser vendors and hardware devices. We report on performance metrics of the system using five applications, four different browsers, and three different devices.

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

[2]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[3]  Antony L. Hosking,et al.  Mostly-copying reachability-based orthogonal persistence , 1999, OOPSLA '99.

[4]  Eric Wohlstadter,et al.  Automated object persistence for JavaScript , 2010, WWW '10.

[5]  Silviu Andrica,et al.  WaRR: A tool for high-fidelity web application record and replay , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[6]  Martin Gaedke,et al.  Exploiting single-user web applications for shared editing: a generic transformation approach , 2012, WWW.

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

[8]  Dejan S. Milojicic,et al.  Process migration , 1999, ACM Comput. Surv..

[9]  Jason Nieh,et al.  WebPod: persistent Web browsing sessions with pocketable storage devices , 2005, WWW '05.

[10]  Miron Livny,et al.  Condor-a hunter of idle workstations , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[11]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[12]  William Landi,et al.  Undecidability of static analysis , 1992, LOPL.

[13]  Roy T. Fielding,et al.  Principled design of the modern Web architecture , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[14]  Neil Fraser Differential synchronization , 2009, DocEng '09.

[15]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[16]  David R. Karger,et al.  Sync kit: a persistent client-side database caching toolkit for data intensive websites , 2010, WWW '10.

[17]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[18]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[19]  Daniel Görgen,et al.  Co-browsing dynamic web pages , 2009, WWW '09.

[20]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[21]  Dong Zhou,et al.  Flexible on-device service object replication with replets , 2004, WWW '04.