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