Dynamic software updating

Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use. We present a ne...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Hicks, Michael, Moore, Jonathan T., Nettles, Scott
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 23
container_issue
container_start_page 13
container_title
container_volume
creator Hicks, Michael
Moore, Jonathan T.
Nettles, Scott
description Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use. We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable. To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.
doi_str_mv 10.1145/378795.378798
format Conference Proceeding
fullrecord <record><control><sourceid>proquest_acm_b</sourceid><recordid>TN_cdi_proquest_miscellaneous_31173022</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>31173022</sourcerecordid><originalsourceid>FETCH-LOGICAL-a2068-9bcdc39022a6c3c1c8baa28510dec96d773e951c388fd8e04e0e89063eaad2f93</originalsourceid><addsrcrecordid>eNqNkDtLxEAUhQdUcFlTWthtZWXWe2cmyZ1S1ics2Gg93MxMJJrHmtkg_nujEWytPg7n4xRHiFOENaLOLlVBhcnWP6ADkZiCMCNEpVHToViAymU6JTgWSYyvADB1pLVciLPrz47b2q1iX-0_eAirced5X3cvJ-Ko4iaG5JdL8Xx787S5T7ePdw-bq23KEnJKTem8Uwak5Nwph45KZkkZgg_O5L4oVDAZOkVUeQqgAwQykKvA7GVl1FKcz7u7oX8fQ9zbto4uNA13oR-jVYiFmub_RHatLfv-LVoE-32AnQ-YQZN48S_RlkMdKvUFGOVXqA</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype><pqid>31173022</pqid></control><display><type>conference_proceeding</type><title>Dynamic software updating</title><source>ACM Digital Library Complete</source><creator>Hicks, Michael ; Moore, Jonathan T. ; Nettles, Scott</creator><creatorcontrib>Hicks, Michael ; Moore, Jonathan T. ; Nettles, Scott</creatorcontrib><description>Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use. We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable. To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.</description><identifier>ISSN: 0362-1340</identifier><identifier>ISBN: 9781581134148</identifier><identifier>ISBN: 1581134142</identifier><identifier>DOI: 10.1145/378795.378798</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Social and professional topics -- Professional topics -- Management of computing and information systems -- Software management -- Software maintenance ; Software and its engineering ; Software and its engineering -- Software creation and management -- Software post-development issues ; Software and its engineering -- Software notations and tools -- Compilers ; Software and its engineering -- Software notations and tools -- General programming languages -- Language types</subject><ispartof>Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, 2001, p.13-23</ispartof><rights>2001 ACM</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>309,310,776,780,785,786,4036,4037,23909,23910,25118,27902</link.rule.ids></links><search><creatorcontrib>Hicks, Michael</creatorcontrib><creatorcontrib>Moore, Jonathan T.</creatorcontrib><creatorcontrib>Nettles, Scott</creatorcontrib><title>Dynamic software updating</title><title>Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation</title><description>Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use. We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable. To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.</description><subject>Social and professional topics -- Professional topics -- Management of computing and information systems -- Software management -- Software maintenance</subject><subject>Software and its engineering</subject><subject>Software and its engineering -- Software creation and management -- Software post-development issues</subject><subject>Software and its engineering -- Software notations and tools -- Compilers</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language types</subject><issn>0362-1340</issn><isbn>9781581134148</isbn><isbn>1581134142</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2001</creationdate><recordtype>conference_proceeding</recordtype><recordid>eNqNkDtLxEAUhQdUcFlTWthtZWXWe2cmyZ1S1ics2Gg93MxMJJrHmtkg_nujEWytPg7n4xRHiFOENaLOLlVBhcnWP6ADkZiCMCNEpVHToViAymU6JTgWSYyvADB1pLVciLPrz47b2q1iX-0_eAirced5X3cvJ-Ko4iaG5JdL8Xx787S5T7ePdw-bq23KEnJKTem8Uwak5Nwph45KZkkZgg_O5L4oVDAZOkVUeQqgAwQykKvA7GVl1FKcz7u7oX8fQ9zbto4uNA13oR-jVYiFmub_RHatLfv-LVoE-32AnQ-YQZN48S_RlkMdKvUFGOVXqA</recordid><startdate>2001</startdate><enddate>2001</enddate><creator>Hicks, Michael</creator><creator>Moore, Jonathan T.</creator><creator>Nettles, Scott</creator><general>ACM</general><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>2001</creationdate><title>Dynamic software updating</title><author>Hicks, Michael ; Moore, Jonathan T. ; Nettles, Scott</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a2068-9bcdc39022a6c3c1c8baa28510dec96d773e951c388fd8e04e0e89063eaad2f93</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2001</creationdate><topic>Social and professional topics -- Professional topics -- Management of computing and information systems -- Software management -- Software maintenance</topic><topic>Software and its engineering</topic><topic>Software and its engineering -- Software creation and management -- Software post-development issues</topic><topic>Software and its engineering -- Software notations and tools -- Compilers</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language types</topic><toplevel>online_resources</toplevel><creatorcontrib>Hicks, Michael</creatorcontrib><creatorcontrib>Moore, Jonathan T.</creatorcontrib><creatorcontrib>Nettles, Scott</creatorcontrib><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Hicks, Michael</au><au>Moore, Jonathan T.</au><au>Nettles, Scott</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Dynamic software updating</atitle><btitle>Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation</btitle><date>2001</date><risdate>2001</risdate><spage>13</spage><epage>23</epage><pages>13-23</pages><issn>0362-1340</issn><isbn>9781581134148</isbn><isbn>1581134142</isbn><abstract>Many important applications must run continuously and without interruption, yet must be changed to fix bugs or upgrade functionality. No prior general-purpose methodology for dynamic updating achieves a practical balance between flexibility, robustness, low overhead, and ease of use. We present a new approach for C-like languages that provides type-safe dynamic updating of native code in an extremely flexible manner (code, data, and types may be updated, at programmer-determined times) and permits the use of automated tools to aid the programmer in the updating process. Our system is based on dynamic patches that both contain the updated code and the code needed to transition from the old version to the new. A novel aspect of our patches is that they consist of verifiable native code (e.g. Proof-Carrying Code [17] or Typed Assembly Language [16]), which is native code accompanied by annotations that allow on-line verification of the code's safety. We discuss how patches are generated mostly automatically, how they are applied using dynamic-linking technology, and how code is compiled to make it updateable. To concretely illustrate our system, we have implemented a dynamically-updateable web server, FlashEd. We discuss our experience building and maintaining FlashEd. Performance experiments show that for FlashEd, the overhead due to updating is typically less than 1%.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/378795.378798</doi><tpages>11</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0362-1340
ispartof Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, 2001, p.13-23
issn 0362-1340
language eng
recordid cdi_proquest_miscellaneous_31173022
source ACM Digital Library Complete
subjects Social and professional topics -- Professional topics -- Management of computing and information systems -- Software management -- Software maintenance
Software and its engineering
Software and its engineering -- Software creation and management -- Software post-development issues
Software and its engineering -- Software notations and tools -- Compilers
Software and its engineering -- Software notations and tools -- General programming languages -- Language types
title Dynamic software updating
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-10T08%3A32%3A23IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_acm_b&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Dynamic%20software%20updating&rft.btitle=Proceedings%20of%20the%20ACM%20SIGPLAN%202001%20conference%20on%20Programming%20language%20design%20and%20implementation&rft.au=Hicks,%20Michael&rft.date=2001&rft.spage=13&rft.epage=23&rft.pages=13-23&rft.issn=0362-1340&rft.isbn=9781581134148&rft.isbn_list=1581134142&rft_id=info:doi/10.1145/378795.378798&rft_dat=%3Cproquest_acm_b%3E31173022%3C/proquest_acm_b%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=31173022&rft_id=info:pmid/&rfr_iscdi=true