Bristlecone: Language Support for Robust Software Applications

We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization specification that describes how the application's conceptual operations interact and a low-level operational specification that describes the sequ...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:IEEE transactions on software engineering 2011-01, Vol.37 (1), p.4-23
Hauptverfasser: Demsky, B, Sundaramurthy, S
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 23
container_issue 1
container_start_page 4
container_title IEEE transactions on software engineering
container_volume 37
creator Demsky, B
Sundaramurthy, S
description We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization specification that describes how the application's conceptual operations interact and a low-level operational specification that describes the sequence of instructions that comprise an individual conceptual operation. Bristlecone uses the high-level organization specification to recover the software system from an error to a consistent state and to reason how to safely continue the software system's execution after the error. We have implemented a compiler and runtime for Bristlecone. We have evaluated this implementation on three benchmark applications: a Web crawler, a Web server, and a multiroom chat server. We developed both a Bristlecone version and a Java version of each benchmark application. We used injected failures to evaluate the robustness of each version of the application. We found that the Bristlecone versions of the benchmark applications more successfully survived the injected failures. The Bristlecone compiler contains a static analysis that operates on the organization specification to generate a set of diagrams that graphically present the task interactions in the application. We have used the analysis to help understand the high-level structure of three Bristlecone applications: a game server, a Web server, and a chat server.
doi_str_mv 10.1109/TSE.2010.27
format Article
fullrecord <record><control><sourceid>proquest_RIE</sourceid><recordid>TN_cdi_crossref_primary_10_1109_TSE_2010_27</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>5416725</ieee_id><sourcerecordid>861560407</sourcerecordid><originalsourceid>FETCH-LOGICAL-c349t-84bd20552c89e34e9c6b928b3f6afb41bd30cdfcdcd3f988aa55ec219b5b14413</originalsourceid><addsrcrecordid>eNpd0M9LwzAUwPEgCs7pyaOX4sWDVPOzTTwIc8wfMBDcPIckfRkdXVOTFvG_d3PiwdPjwYfH44vQOcE3hGB1u1zMbijebrQ8QCOimMqZoPgQjTBWMhdCqmN0ktIaYyzKUozQ_UOsU9-ACy3cZXPTrgazgmwxdF2IfeZDzN6CHVKfLYLvP02EbNJ1Te1MX4c2naIjb5oEZ79zjN4fZ8vpcz5_fXqZTua5Y1z1ueS2olgI6qQCxkG5wioqLfOF8ZYTWzHsKu8qVzGvpDRGCHCUKCss4ZywMbra3-1i-Bgg9XpTJwdNY1oIQ9KyIKLAHJdbeflPrsMQ2-1zWgpWlIzQHbreIxdDShG87mK9MfFLE6x3JfW2pN6V1D_6Yq9rAPiTgpOipIJ9A1swboc</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>853673127</pqid></control><display><type>article</type><title>Bristlecone: Language Support for Robust Software Applications</title><source>IEEE Electronic Library (IEL)</source><creator>Demsky, B ; Sundaramurthy, S</creator><creatorcontrib>Demsky, B ; Sundaramurthy, S</creatorcontrib><description>We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization specification that describes how the application's conceptual operations interact and a low-level operational specification that describes the sequence of instructions that comprise an individual conceptual operation. Bristlecone uses the high-level organization specification to recover the software system from an error to a consistent state and to reason how to safely continue the software system's execution after the error. We have implemented a compiler and runtime for Bristlecone. We have evaluated this implementation on three benchmark applications: a Web crawler, a Web server, and a multiroom chat server. We developed both a Bristlecone version and a Java version of each benchmark application. We used injected failures to evaluate the robustness of each version of the application. We found that the Bristlecone versions of the benchmark applications more successfully survived the injected failures. The Bristlecone compiler contains a static analysis that operates on the organization specification to generate a set of diagrams that graphically present the task interactions in the application. We have used the analysis to help understand the high-level structure of three Bristlecone applications: a game server, a Web server, and a chat server.</description><identifier>ISSN: 0098-5589</identifier><identifier>EISSN: 1939-3520</identifier><identifier>DOI: 10.1109/TSE.2010.27</identifier><identifier>CODEN: IESEDJ</identifier><language>eng</language><publisher>New York: IEEE</publisher><subject>Analysis ; Application software ; Automation ; Back up systems ; Benchmarking ; Compilers ; Computer engineering ; Computer languages ; Computer programs ; Costs ; Digital Object Identifier ; Java ; Organizations ; Programming languages ; Robustness ; Runtime ; Servers ; Servers (computers) ; Software ; Software robustness ; Software systems ; Software tools ; Specifications ; Studies ; Switches ; Web browsers ; Web server</subject><ispartof>IEEE transactions on software engineering, 2011-01, Vol.37 (1), p.4-23</ispartof><rights>Copyright IEEE Computer Society Jan 2011</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c349t-84bd20552c89e34e9c6b928b3f6afb41bd30cdfcdcd3f988aa55ec219b5b14413</citedby><cites>FETCH-LOGICAL-c349t-84bd20552c89e34e9c6b928b3f6afb41bd30cdfcdcd3f988aa55ec219b5b14413</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/5416725$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>314,777,781,793,27905,27906,54739</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/5416725$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Demsky, B</creatorcontrib><creatorcontrib>Sundaramurthy, S</creatorcontrib><title>Bristlecone: Language Support for Robust Software Applications</title><title>IEEE transactions on software engineering</title><addtitle>TSE</addtitle><description>We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization specification that describes how the application's conceptual operations interact and a low-level operational specification that describes the sequence of instructions that comprise an individual conceptual operation. Bristlecone uses the high-level organization specification to recover the software system from an error to a consistent state and to reason how to safely continue the software system's execution after the error. We have implemented a compiler and runtime for Bristlecone. We have evaluated this implementation on three benchmark applications: a Web crawler, a Web server, and a multiroom chat server. We developed both a Bristlecone version and a Java version of each benchmark application. We used injected failures to evaluate the robustness of each version of the application. We found that the Bristlecone versions of the benchmark applications more successfully survived the injected failures. The Bristlecone compiler contains a static analysis that operates on the organization specification to generate a set of diagrams that graphically present the task interactions in the application. We have used the analysis to help understand the high-level structure of three Bristlecone applications: a game server, a Web server, and a chat server.</description><subject>Analysis</subject><subject>Application software</subject><subject>Automation</subject><subject>Back up systems</subject><subject>Benchmarking</subject><subject>Compilers</subject><subject>Computer engineering</subject><subject>Computer languages</subject><subject>Computer programs</subject><subject>Costs</subject><subject>Digital Object Identifier</subject><subject>Java</subject><subject>Organizations</subject><subject>Programming languages</subject><subject>Robustness</subject><subject>Runtime</subject><subject>Servers</subject><subject>Servers (computers)</subject><subject>Software</subject><subject>Software robustness</subject><subject>Software systems</subject><subject>Software tools</subject><subject>Specifications</subject><subject>Studies</subject><subject>Switches</subject><subject>Web browsers</subject><subject>Web server</subject><issn>0098-5589</issn><issn>1939-3520</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2011</creationdate><recordtype>article</recordtype><sourceid>RIE</sourceid><sourceid>8G5</sourceid><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><sourceid>GUQSH</sourceid><sourceid>M2O</sourceid><recordid>eNpd0M9LwzAUwPEgCs7pyaOX4sWDVPOzTTwIc8wfMBDcPIckfRkdXVOTFvG_d3PiwdPjwYfH44vQOcE3hGB1u1zMbijebrQ8QCOimMqZoPgQjTBWMhdCqmN0ktIaYyzKUozQ_UOsU9-ACy3cZXPTrgazgmwxdF2IfeZDzN6CHVKfLYLvP02EbNJ1Te1MX4c2naIjb5oEZ79zjN4fZ8vpcz5_fXqZTua5Y1z1ueS2olgI6qQCxkG5wioqLfOF8ZYTWzHsKu8qVzGvpDRGCHCUKCss4ZywMbra3-1i-Bgg9XpTJwdNY1oIQ9KyIKLAHJdbeflPrsMQ2-1zWgpWlIzQHbreIxdDShG87mK9MfFLE6x3JfW2pN6V1D_6Yq9rAPiTgpOipIJ9A1swboc</recordid><startdate>201101</startdate><enddate>201101</enddate><creator>Demsky, B</creator><creator>Sundaramurthy, S</creator><general>IEEE</general><general>IEEE Computer Society</general><scope>97E</scope><scope>RIA</scope><scope>RIE</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7WY</scope><scope>7WZ</scope><scope>7X7</scope><scope>7XB</scope><scope>87Z</scope><scope>88E</scope><scope>88F</scope><scope>88I</scope><scope>88K</scope><scope>8AL</scope><scope>8FE</scope><scope>8FG</scope><scope>8FI</scope><scope>8FJ</scope><scope>8FK</scope><scope>8FL</scope><scope>8G5</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BEZIV</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>FRNLG</scope><scope>FYUFA</scope><scope>F~G</scope><scope>GHDGH</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K60</scope><scope>K6~</scope><scope>K7-</scope><scope>K9.</scope><scope>L.-</scope><scope>L6V</scope><scope>M0C</scope><scope>M0N</scope><scope>M0S</scope><scope>M1P</scope><scope>M1Q</scope><scope>M2O</scope><scope>M2P</scope><scope>M2T</scope><scope>M7S</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PQBIZ</scope><scope>PQBZA</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>Q9U</scope><scope>7SC</scope><scope>7SP</scope><scope>8FD</scope><scope>F28</scope><scope>FR3</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201101</creationdate><title>Bristlecone: Language Support for Robust Software Applications</title><author>Demsky, B ; Sundaramurthy, S</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c349t-84bd20552c89e34e9c6b928b3f6afb41bd30cdfcdcd3f988aa55ec219b5b14413</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2011</creationdate><topic>Analysis</topic><topic>Application software</topic><topic>Automation</topic><topic>Back up systems</topic><topic>Benchmarking</topic><topic>Compilers</topic><topic>Computer engineering</topic><topic>Computer languages</topic><topic>Computer programs</topic><topic>Costs</topic><topic>Digital Object Identifier</topic><topic>Java</topic><topic>Organizations</topic><topic>Programming languages</topic><topic>Robustness</topic><topic>Runtime</topic><topic>Servers</topic><topic>Servers (computers)</topic><topic>Software</topic><topic>Software robustness</topic><topic>Software systems</topic><topic>Software tools</topic><topic>Specifications</topic><topic>Studies</topic><topic>Switches</topic><topic>Web browsers</topic><topic>Web server</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Demsky, B</creatorcontrib><creatorcontrib>Sundaramurthy, S</creatorcontrib><collection>IEEE All-Society Periodicals Package (ASPP) 2005-present</collection><collection>IEEE All-Society Periodicals Package (ASPP) 1998-Present</collection><collection>IEEE Electronic Library (IEL)</collection><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>ABI/INFORM Collection</collection><collection>ABI/INFORM Global (PDF only)</collection><collection>Health &amp; Medical Collection</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>ABI/INFORM Global (Alumni Edition)</collection><collection>Medical Database (Alumni Edition)</collection><collection>Military Database (Alumni Edition)</collection><collection>Science Database (Alumni Edition)</collection><collection>Telecommunications (Alumni Edition)</collection><collection>Computing Database (Alumni Edition)</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Hospital Premium Collection</collection><collection>Hospital Premium Collection (Alumni Edition)</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection (Alumni Edition)</collection><collection>Research Library (Alumni Edition)</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Business Premium Collection</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>Business Premium Collection (Alumni)</collection><collection>Health Research Premium Collection</collection><collection>ABI/INFORM Global (Corporate)</collection><collection>Health Research Premium Collection (Alumni)</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Business Collection (Alumni Edition)</collection><collection>ProQuest Business Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Health &amp; Medical Complete (Alumni)</collection><collection>ABI/INFORM Professional Advanced</collection><collection>ProQuest Engineering Collection</collection><collection>ABI/INFORM Global</collection><collection>Computing Database</collection><collection>Health &amp; Medical Collection (Alumni Edition)</collection><collection>Medical Database</collection><collection>Military Database</collection><collection>Research Library</collection><collection>Science Database</collection><collection>Telecommunications Database</collection><collection>Engineering Database</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Business</collection><collection>ProQuest One Business (Alumni)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>ProQuest Central Basic</collection><collection>Computer and Information Systems Abstracts</collection><collection>Electronics &amp; Communications Abstracts</collection><collection>Technology Research Database</collection><collection>ANTE: Abstracts in New Technology &amp; Engineering</collection><collection>Engineering Research Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>IEEE transactions on software engineering</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Demsky, B</au><au>Sundaramurthy, S</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Bristlecone: Language Support for Robust Software Applications</atitle><jtitle>IEEE transactions on software engineering</jtitle><stitle>TSE</stitle><date>2011-01</date><risdate>2011</risdate><volume>37</volume><issue>1</issue><spage>4</spage><epage>23</epage><pages>4-23</pages><issn>0098-5589</issn><eissn>1939-3520</eissn><coden>IESEDJ</coden><abstract>We present Bristlecone, a programming language for robust software systems. Bristlecone applications have two components: a high-level organization specification that describes how the application's conceptual operations interact and a low-level operational specification that describes the sequence of instructions that comprise an individual conceptual operation. Bristlecone uses the high-level organization specification to recover the software system from an error to a consistent state and to reason how to safely continue the software system's execution after the error. We have implemented a compiler and runtime for Bristlecone. We have evaluated this implementation on three benchmark applications: a Web crawler, a Web server, and a multiroom chat server. We developed both a Bristlecone version and a Java version of each benchmark application. We used injected failures to evaluate the robustness of each version of the application. We found that the Bristlecone versions of the benchmark applications more successfully survived the injected failures. The Bristlecone compiler contains a static analysis that operates on the organization specification to generate a set of diagrams that graphically present the task interactions in the application. We have used the analysis to help understand the high-level structure of three Bristlecone applications: a game server, a Web server, and a chat server.</abstract><cop>New York</cop><pub>IEEE</pub><doi>10.1109/TSE.2010.27</doi><tpages>20</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0098-5589
ispartof IEEE transactions on software engineering, 2011-01, Vol.37 (1), p.4-23
issn 0098-5589
1939-3520
language eng
recordid cdi_crossref_primary_10_1109_TSE_2010_27
source IEEE Electronic Library (IEL)
subjects Analysis
Application software
Automation
Back up systems
Benchmarking
Compilers
Computer engineering
Computer languages
Computer programs
Costs
Digital Object Identifier
Java
Organizations
Programming languages
Robustness
Runtime
Servers
Servers (computers)
Software
Software robustness
Software systems
Software tools
Specifications
Studies
Switches
Web browsers
Web server
title Bristlecone: Language Support for Robust Software Applications
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-20T12%3A11%3A26IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_RIE&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Bristlecone:%20Language%20Support%20for%20Robust%20Software%20Applications&rft.jtitle=IEEE%20transactions%20on%20software%20engineering&rft.au=Demsky,%20B&rft.date=2011-01&rft.volume=37&rft.issue=1&rft.spage=4&rft.epage=23&rft.pages=4-23&rft.issn=0098-5589&rft.eissn=1939-3520&rft.coden=IESEDJ&rft_id=info:doi/10.1109/TSE.2010.27&rft_dat=%3Cproquest_RIE%3E861560407%3C/proquest_RIE%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=853673127&rft_id=info:pmid/&rft_ieee_id=5416725&rfr_iscdi=true