Publications

Detailed Information

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

DC Field Value Language
dc.contributor.advisor문수묵-
dc.contributor.author유용환-
dc.date.accessioned2022-04-20T07:52:48Z-
dc.date.available2022-04-20T07:52:48Z-
dc.date.issued2021-
dc.identifier.other000000167816-
dc.identifier.urihttps://hdl.handle.net/10371/178964-
dc.identifier.urihttps://dcollection.snu.ac.kr/common/orgView/000000167816ko_KR
dc.description학위논문(석사) -- 서울대학교대학원 : 공과대학 전기·정보공학부, 2021.8. 문수묵.-
dc.description.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 기기 등에 대한 적용 가능성을 검증했으며, 추가적으로 프레임워크의 활용 방안 및 향후 연구 방향에 대해 논의한다.
-
dc.description.abstractWith 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 apps 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 todays 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.
-
dc.description.tableofcontentsChapter 1. Introduction 1
1.1. JavaScript App Migration 1
1.2. Purpose of Research 2
Chapter 2. Background 4
2.1. Snapshot-based Approach 4
2.2. Function Closure and Scope Tree 6
2.3. Limitations of Previous Works 6
Chapter 3. Proposed Approach 10
3.1. Module Profiling 10
3.2. Migrating Modified Built-in Objects 11
3.3. Scope Tree Building 11
3.4. Syntax-Aware Tree Re-ordering 12
3.5. Tree Partitioning 13
3.6. Snapshot Code Generation 13
Chapter 4. Evaluation 17
4.1. Implementation and Setup 17
4.2. Scope Tree Analysis 18
4.3. Snapshot Code Sizes 19
4.4. Framework Time Overhead 20
Chapter 5. Discussion 22
5.1. Limitations 22
5.2. Alternative Approach 22
5.3. Potential Use Cases 23
Chapter 6. Conclusion 24
Bibliography 25
Abstract in Korean 27
-
dc.format.extentiii, 27-
dc.language.isoeng-
dc.publisher서울대학교 대학원-
dc.subjectJavaScript-
dc.subjectapp migration-
dc.subjectserialization-
dc.subjectcode generation-
dc.subject자바스크립트-
dc.subject앱 마이그레이션-
dc.subject직렬화-
dc.subject코드 생성-
dc.subject.ddc621.3-
dc.titleSnapshot-based Migration of ES6 JavaScript-
dc.title.alternativeES6 자바스크립트의 스냅샷 기반 마이그레이션-
dc.typeThesis-
dc.typeDissertation-
dc.contributor.AlternativeAuthorYong-Hwan Yoo-
dc.contributor.department공과대학 전기·정보공학부-
dc.description.degree석사-
dc.date.awarded2021-08-
dc.identifier.uciI804:11032-000000167816-
dc.identifier.holdings000000000046▲000000000053▲000000167816▲-
Appears in Collections:
Files in This Item:

Altmetrics

Item View & Download Count

  • mendeley

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

Share