当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Dynamic Software Updates for Unmodified Browsers through Multi-Version Execution
arXiv - CS - Programming Languages Pub Date : 2021-06-08 , DOI: arxiv-2106.04655
Siddhanth Venkateshwaran, Ellen Kidane, Luís Pina

In this paper, we present the design, implementation, and evaluation of SINATRA, which supports instantaneous browser updates that do not result in any data loss through a novel Multi-Version eXecution (MVX) approach for JavaScript programs. SINATRA works in pure JavaScript, does not require any browser support, thus works on closed-source browsers, and requires trivial changes to each target page, that can be automated. First, SINATRA captures all the non-determinism available to a JavaScript program (e.g., event handlers executed, expired timers, invocations of Math.random). Our evaluation shows that SINATRA requires 5MB to store such events, and the memory grows at a modest rate of 23.1KB/s as the user keeps interacting with each page. When an update becomes available, SINATRA transfer the state by re-executing the same set of non-deterministic events on the new browser. During this time, which can be as long as 13 seconds, SINATRA uses MVX to allow the user to keep interacting with the old browser. Finally, SINATRA changes the roles in 353ms, and the user starts interacting with the new browser, effectively performing a browser update with zero downtime and no loss of state.

中文翻译:

通过多版本执行为未修改浏览器动态软件更新

在本文中,我们介绍了 SINATRA 的设计、实现和评估,它通过一种新颖的 JavaScript 程序多版本执行 (MVX) 方法支持即时浏览器更新,不会导致任何数据丢失。SINATRA 在纯 JavaScript 中工作,不需要任何浏览器支持,因此适用于闭源浏览器,并且需要对每个目标页面进行微不足道的更改,可以自动化。首先,SINATRA 捕获 JavaScript 程序可用的所有非确定性(例如,执行的事件处理程序、过期的计时器、Math.random 的调用)。我们的评估表明,SINATRA 需要 5MB 来存储此类事件,并且随着用户不断与每个页面进行交互,内存以 23.1KB/s 的适度速度增长。当有更新可用时,SINATRA 通过在新浏览器上重新执行相同的一组非确定性事件来传输状态。在此期间,可能长达 13 秒,SINATRA 使用 MVX 来允许用户与旧浏览器保持交互。最后,SINATRA 在 353 毫秒内更改角色,用户开始与新浏览器交互,有效地执行浏览器更新,零停机时间且不会丢失状态。
更新日期:2021-06-10
down
wechat
bug