Projects per year
Abstract
Dynamic analyses are commonly implemented by instrumenting the program under analysis.
Examples of such analyses for JavaScript range from checkers of user-defined invariants to concolic testers.
For a full-stack JavaScript program, these analyses need to reason about the state of the client-side and server-side processes it is comprised of.
Lifting a dynamic analysis so that it supports full-stack programs can be challenging.
It involves distributed communication to maintain the analysis state across all processes, which has to be deadlock-free.
In this paper, we advocate maintaining distributed analysis state in a centralized analysis process instead ---which is communicated with from the processes under analysis.
The approach is supported by a dynamic analysis platform that provides abstractions for this communication.
We evaluate the approach through a case study.
We use the platform to build a distributed origin analysis, capable of tracking the expressions from which values originate from across process boundaries, and deploy it on collaborative drawing application.
The results show that our approach greatly simplifies the lifting process at the cost of a computational overhead.
We deem this overhead acceptable for analyses intended for use at development time.
Examples of such analyses for JavaScript range from checkers of user-defined invariants to concolic testers.
For a full-stack JavaScript program, these analyses need to reason about the state of the client-side and server-side processes it is comprised of.
Lifting a dynamic analysis so that it supports full-stack programs can be challenging.
It involves distributed communication to maintain the analysis state across all processes, which has to be deadlock-free.
In this paper, we advocate maintaining distributed analysis state in a centralized analysis process instead ---which is communicated with from the processes under analysis.
The approach is supported by a dynamic analysis platform that provides abstractions for this communication.
We evaluate the approach through a case study.
We use the platform to build a distributed origin analysis, capable of tracking the expressions from which values originate from across process boundaries, and deploy it on collaborative drawing application.
The results show that our approach greatly simplifies the lifting process at the cost of a computational overhead.
We deem this overhead acceptable for analyses intended for use at development time.
Original language | English |
---|---|
Title of host publication | GPCE 2018 - Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming |
Subtitle of host publication | Concepts and Experiences, co-located with SPLASH 2018 |
Editors | Eric Van Wyk, Tiark Rompf |
Publisher | ACM |
Pages | 107-118 |
Number of pages | 12 |
ISBN (Electronic) | 9781450360456 |
ISBN (Print) | 978-1-4503-6045-6/18/11 |
DOIs | |
Publication status | Published - 5 Nov 2018 |
Event | International Conference on Generative Programming: Concepts & Experience - Boston, United States Duration: 5 Nov 2018 → 6 Nov 2018 Conference number: 17 |
Conference
Conference | International Conference on Generative Programming: Concepts & Experience |
---|---|
Abbreviated title | GPCE |
Country/Territory | United States |
City | Boston |
Period | 5/11/18 → 6/11/18 |
Keywords
- Distributed Applications
- Dynamic Analysis
- JavaScript
Fingerprint
Dive into the research topics of 'Orchestrating Dynamic Analyses of Distributed Processes for Full-Stack JavaScript Programs'. Together they form a unique fingerprint.Projects
- 1 Finished
-
IWTSBO11: TEARLESS: Secure Coordination of Rich Internet Application Tiers
Gonzalez Boix, E. & De Roover, C.
1/01/16 → 31/12/19
Project: Applied