skip to main content
research-article

Migration of Web Applications with Seamless Execution

Published:14 March 2015Publication History
Skip Abstract Section

Abstract

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.

References

  1. M. Adiba and B. Lindsay. "Database snapshots." Proceedings of the sixth international conference on Very Large Data Bases, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Adobe Flash runtime. http://www.adobe.com/products/flashruntimes.htmlGoogle ScholarGoogle Scholar
  3. Airplay. https://www.apple.com/airplay/Google ScholarGoogle Scholar
  4. Apple Handoff, Apple Worldwide Developers Conference (WWDC) 2014, https://developer.apple.com/videos/wwdc/2014/, Jun 2014.Google ScholarGoogle Scholar
  5. B. Chun et. al, CloneCloud: elastic execution between mobile device and cloud. In Proceedings of the sixth conference on Computer systems (EuroSys '11). 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Browser extension. http://en.wikipedia.org/wiki/Browser_extensionGoogle ScholarGoogle Scholar
  7. D. Lee. JXON: an Architecture for Schema and Annotation Driven JSON/XML Bidirectional Transformations. In Proceedings of Balisage: The Markup Conference 2011.Google ScholarGoogle Scholar
  8. DLNA. http://www.dlna.org/Google ScholarGoogle Scholar
  9. Dropbox. https://www.dropbox.comGoogle ScholarGoogle Scholar
  10. Enyojs. http://enyojs.comGoogle ScholarGoogle Scholar
  11. F. Bellucci et. al, Engineering JavaScript state persistence of web applications migrating across multiple devices. In Proceedings of the 3rd ACM SIGCHI symposium on Engineering interactive computing systems (EICS '11). 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Firefox OS. http://www.mozilla.org/en-US/firefox/osGoogle ScholarGoogle Scholar
  13. G. Wang. Improving Data Transmission in Web Applications via the Translation between XML and JSON. In Proceedings of the 2011 Third International Conference on Communications and Mobile Computing (CMC '11). 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. HTML5. http://www.w3.org/TR/html5/Google ScholarGoogle Scholar
  15. J. Lo et. al, Imagen: runtime migration of browser sessions for javascript web applications. In Proceedings of the 22nd international conference on World Wide Web (WWW '13). 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. Mickens, J. Elson, and J. Howell. Mugshot: deterministic capture and replay for Javascript applications. In Proceedings of Networked Systems Design and Implementation, pages 159--174, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. jQuery. http://www.jquery.comGoogle ScholarGoogle Scholar
  18. JSON. http://www.json.orgGoogle ScholarGoogle Scholar
  19. Json.NET - Preserving Object References. http://james.newtonking.com/json/help/index.htmlGoogle ScholarGoogle Scholar
  20. JSON-Circular. https://github.com/StewartAtkins/JSON-CircularGoogle ScholarGoogle Scholar
  21. JsonML. http://www.jsonml.org/Google ScholarGoogle Scholar
  22. JSON-R: A JSON Extension That Deals With Object References (Circular And Others). http://java.dzone.com/articles/json-r-json-extension-dealsGoogle ScholarGoogle Scholar
  23. K. Baik et. al. Boosting up Embedded Linux device: experience on Linux-based Smartphone. In proceedings of the Linux Symposium. 2010.Google ScholarGoogle Scholar
  24. N. Nurseitov et al,. Comparison of JSON and XML Data Interchange Formats: A Case Study. In Proceedings of CAINE, 9, 157--162. 2009.Google ScholarGoogle Scholar
  25. Offline Tetris. http://tetris.alexkessinger.net/Google ScholarGoogle Scholar
  26. PS4 Remote Play. https://support.us.playstation.com/app/answers/detail/a_id/5065/~/ps4-remote-play-and-second-screenGoogle ScholarGoogle Scholar
  27. Ext JS. http://www.sencha.com/products/extjsGoogle ScholarGoogle Scholar
  28. Serialization. http://en.wikipedia.org/wiki/SerializationGoogle ScholarGoogle Scholar
  29. Sync tabs across devices. https://support.google.com/chrome/answer/2591582?hl=enGoogle ScholarGoogle Scholar
  30. Takashi Suezawa. Persistent execution state of a Java virtual machine. In Proceedings of the ACM 2000 conference on Java Grande (JAVA '00). 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Tizen. https://www.tizen.orgGoogle ScholarGoogle Scholar
  32. V8 snapshot. https://developers.google.com/v8/embedGoogle ScholarGoogle Scholar
  33. webOS. http://www.openwebosproject.orgGoogle ScholarGoogle Scholar
  34. Y.-Y. Su and J. Flinn. Slingshot: deploying stateful services in wireless hotspots. In Proceedings of the 3rd international conference on Mobile systems, applications, and services (MobiSys '05). 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. B. Burg et al, Interactive record/replay for web application debugging. Proceedings of the 26th annual ACM symposium on User interface software and technology. 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. Oh and S. Moon, Snapshot-based Loading-Time Acceleration for Web Applications. In Proceedings of the ACM/IEEE International Symposium on Code Generation and Optimization (CGO 2015). 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Migration of Web Applications with Seamless Execution

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 50, Issue 7
        VEE '15
        July 2015
        221 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2817817
        • Editor:
        • Andy Gill
        Issue’s Table of Contents
        • cover image ACM Conferences
          VEE '15: Proceedings of the 11th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
          March 2015
          238 pages
          ISBN:9781450334501
          DOI:10.1145/2731186

        Copyright © 2015 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 14 March 2015

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!