Browse

Snapshot-based Migration of ES6 JavaScript
ES6 자바스크립트의 스냅샷 기반 마이그레이션

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
유용환
Advisor
문수묵
Issue Date
2021
Publisher
서울대학교 대학원
Keywords
JavaScriptapp migrationserializationcode generation자바스크립트앱 마이그레이션직렬화코드 생성
Description
학위논문(석사) -- 서울대학교대학원 : 공과대학 전기·정보공학부, 2021.8. 문수묵.
Abstract
최근 웹 플랫폼 및 자바스크립트의 인기와 함께, 자바스크립트로 작성된 프로그램을 위한 앱 마이그레이션 기술이 연구된 바 있다. 이는 이종의 기기 간에 연속적인 워크플로우를 제공해 새로운 사용자 경험을 제공하는 기술을 일컫는다. 여러 선행 연구에서 스냅샷 기반 방법론을 사용해 앱의 런타임 상태를 텍스트 형태로 직렬화 및 복원하는 시도를 했다. 그러나, 기존 연구들은 구 버전 자바스크립트 상에서 진행됐다는 한계가 있다. 이에 비해 ECMAScript2015 (ES6) 업데이트 이후 자바스크립트에 다양한 기능이 도입되었기 때문에, 기존 방법들은 오늘날 real-world 애플리케이션을 마이그레이션하기 어렵다.
본 논문은 [19]에서 소개된 우리의 프레임워크를 소개한다. 우리는 선행 연구에서 다뤄지지 않은 block scope, module, class syntax와 같은 ES6의 주요 기능을 분석했으며 이러한 새로운 기능을 사용하는 앱을 마이그레이션 하기 위한 알고리즘을 제안했다. 또한, 우리는 최신 자바스크립트 엔진에 대한 분석을 통해 실행 중인 자바스크립트 프로그램의 런타임 상태를 scope tree라는 자료구조 상에 직렬화하고, 후처리를 거친 scope tree로부터 스냅샷 코드를 생성했다. 이러한 방법론을 V8 자바스크립트 엔진인 상에 구현했으며, 복잡한 최신 자바스크립트 기능을 사용하는 벤치마크 프로그램에 대해 실험했다. 실험 결과를 통해 이러한 방법이 모바일 기기 간에 5개의 벤치마크 프로그램을 성공적으로 마이그레이션 시킨다는 것을 보였다. 복잡도가 가장 높은 앱 (ML 벤치마크, 소스 코드 크기 213KB)에 대한 실험에서 프레임워크로 인한 시간 부하를 측정한 결과, X86 랩톱에서 200ms 미만, ARM 기반 임베디드 보드에서 800ms 미만이었다. 이러한 결과를 통해 자원이 제한된 IoT 기기 등에 대한 적용 가능성을 검증했으며, 추가적으로 프레임워크의 활용 방안 및 향후 연구 방향에 대해 논의한다.
With the growing popularity of the web platform and JavaScript, an interesting user experience called application (app) migration has been proposed for JavaScript programs. To enable a non-breaking workflow across different devices, recent studies have proposed snapshot-based techniques in which an app’s runtime state is serialized into a text form that can be restored back later. A limitation of existing literature, however, is that they are based on old JavaScript specifications. Since major updates introduced by ECMASCript2015 (a.k.a. ES6), JavaScript supports various features that cannot be migrated correctly with existing methods. Some of these features are heavily used in today’s real-world apps and thus greatly reduces the scope of previous works.
In this thesis, I will mainly introduce my work presented in [19]. In the paper, we analyzed ES6 features such as block scopes, modules, and class syntax that were previously uncovered in app migration. We presented an algorithm that enables migration of apps implemented with these new features. Based on the standards adopted in modern JavaScript engines, our approach serializes a running program into a scope tree and reorganizes it for snapshot code generation. We implemented our idea on the open source V8 engine and experiment with complex benchmark programs of modern JavaScript. Results showed that our approach correctly migrates 5 target programs between mobile devices. Our framework could migrate the most complex app of source code size 213KB in less than 200ms in a X86 laptop and 800ms in an embedded ARM board, showing feasibility in resource-constrained IoT devices. I will also discuss possible use cases and research directions and conclude.
Language
eng
URI
https://hdl.handle.net/10371/178964

https://dcollection.snu.ac.kr/common/orgView/000000167816
Files in This Item:
Appears in Collections:
College of Dentistry/School of Dentistry (치과대학/치의학대학원)Dept. of Dental Science(치의과학과)Theses (Ph.D. / Sc.D._치의과학과)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse