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 条
  • [21] Dynamic software updating of OLTs without service interruption
    Harada, Takumi
    Ujikawa, Hirotaka
    Yoshino, Manabu
    Oota, Noriyuki
    Suzuki, Ken-Ichi
    Otaka, Akihiro
    [J]. 2017 25TH INTERNATIONAL CONFERENCE ON SOFTWARE, TELECOMMUNICATIONS AND COMPUTER NETWORKS (SOFTCOM), 2017, : 50 - 54
  • [22] Mutatis mutandis:: Safe and predictable dynamic software updating
    Stoyle, G
    Hicks, M
    Bierman, G
    Sewell, P
    Neamtiu, I
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (01) : 183 - 194
  • [23] Mutatis Mutandis:: Safe and predictable dynamic software updating
    Stoyle, Gareth
    Hicks, Michael
    Bierman, Gavin
    Sewell, Peter
    Neamtiu, Iulian
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2007, 29 (04):
  • [24] Dynamic Software Updating for Cyber-Physical Systems
    Kang, Sungjoo
    Chun, Ingeol
    Kim, Wontae
    [J]. 18TH IEEE INTERNATIONAL SYMPOSIUM ON CONSUMER ELECTRONICS (ISCE 2014), 2014,
  • [25] State of the Art of Dynamic Software Updating in Java']Java
    Gregersen, Allan Raundahl
    Rasmussen, Michael
    Jorgensen, Bo Norregaard
    [J]. SOFTWARE TECHNOLOGIES (ICSOFT 2013), 2014, 457 : 99 - 113
  • [26] Dynamic Software Updating Using a Relaxed Consistency Model
    Chen, Haibo
    Yu, Jie
    Hang, Chengqun
    Zang, Binyu
    Yew, Pen-Chung
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2011, 37 (05) : 679 - 694
  • [27] Automating Software Processes
    Killisperger, Peter
    Peters, Georg
    Stumptner, Markus
    Nothhelfer-Kolb, Beate
    [J]. INFORMATION SYSTEMS DEVELOPMENT: CHALLENGES IN PRACTICE, THEORY AND EDUCATION, VOLS 1AND 2, 2009, : 1059 - 1068
  • [28] AUTOMATING SOFTWARE DESIGN
    FREEMAN, P
    [J]. COMPUTER, 1974, 7 (04) : 33 - 38
  • [29] AUTOMATING SOFTWARE EVOLUTION
    LIU, ZY
    [J]. INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 1995, 5 (01) : 73 - 87
  • [30] Automating software evolution
    Hearnden, D
    Bailes, P
    Lawley, M
    Raymond, K
    [J]. 7TH INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION, 2004, : 95 - 100