Automating Object Transformations for Dynamic Software Updating

被引:20
|
作者
Magill, Stephen [1 ,2 ]
Hicks, Michael [2 ]
Subramanian, Suriya [3 ]
McKinley, Kathryn S. [4 ,5 ]
机构
[1] IDA Ctr Comp Sci, Baltimore, MD USA
[2] Univ Maryland, College Pk, MD 20742 USA
[3] Intel Corp, Santa Clara, CA 95051 USA
[4] Microsoft Res, Redmond, WA USA
[5] Univ Texas Austin, Austin, TX 78712 USA
关键词
Algorithms; Languages; Theory; Dynamic Software Update; DSU; Hot-Swapping; Program Synthesis; State Transformation; Object Correlation; Object Matching;
D O I
10.1145/2398857.2384636
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic software updating (DSU) systems eliminate costly downtime by dynamically fixing bugs and adding features to executing programs. Given a static code patch, most DSU systems construct runtime code changes automatically. However, a dynamic update must also specify how to change the running program's execution state, e. g., the stack and heap, to make it compatible with the new code. Constructing such state transformations correctly and automatically remains an open problem. This paper presents a solution called Targeted Object Synthesis (TOS). TOS first executes the same tests on the old and new program versions separately, observing the program heap state at a few corresponding points. Given two corresponding heap states, TOS matches objects in the two versions using key fields that uniquely identify objects and correlate old and new-version objects. Given example object pairs, TOS then synthesizes the simplest-possible function that transforms an old-version object to its new-version counterpart. We show that TOS is effective on updates to four open-source server programs for which it generates non-trivial transformation functions that use conditionals, operate on collections, and fix memory leaks. These transformations help programmers understand their changes and apply dynamic software updates.
引用
收藏
页码:265 / 280
页数:16
相关论文
共 50 条
  • [1] Synthesizing Object Transformation for Dynamic Software Updating
    Gu, Tianxiao
    Ma, Xiaoxing
    Xu, Chang
    Jiang, Yanyan
    Cao, Chun
    Lu, Jian
    [J]. PROCEEDINGS OF THE 2017 IEEE/ACM 39TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C 2017), 2017, : 336 - 338
  • [2] Dynamic software updating
    Hicks, M
    Moore, JT
    Nettles, S
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (05) : 13 - 23
  • [3] Dynamic software updating
    Hicks, M
    Nettles, S
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (06): : 1049 - 1096
  • [4] Automating object-oriented software refactoring
    Shankar, S
    Xu, XW
    [J]. SERP'03: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING RESEARCH AND PRACTICE, VOLS 1 AND 2, 2003, : 561 - 567
  • [5] A survey of dynamic software updating
    Seifzadeh, Habib
    Abolhassani, Hassan
    Moshkenani, Mohsen Sadighi
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2013, 25 (05) : 535 - 568
  • [6] Challenges in Dynamic Software Updating
    Mlinaric, Danijel
    [J]. TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS, 2020, 9 (01): : 117 - 128
  • [7] Automating object-oriented software development methods
    Tekinerdogan, B
    Saeki, M
    Sunyé, G
    van den Broek, P
    Hruby, P
    [J]. OBJECT-ORIENTED TECHNOLOGY, PROCEEDINGS, 2002, 2323 : 41 - 56
  • [8] Practical dynamic software updating for C
    Neamtiu, Iulian
    Hicks, Michael
    Stoyle, Gareth
    Oriol, Manuel
    [J]. ACM SIGPLAN NOTICES, 2006, 41 (06) : 72 - 83
  • [9] A Framework for Practical Dynamic Software Updating
    Chen, Gang
    Jin, Hai
    Zou, Deqing
    Liang, Zhenkai
    Zhou, Bing Bing
    Wang, Hao
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2016, 27 (04) : 941 - 950
  • [10] Formalizing class dynamic software updating
    Zhang, Shi
    Huang, LinPeng
    [J]. QSIC 2006: SIXTH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE, PROCEEDINGS, 2006, : 403 - +