DocumentCode :
1421835
Title :
Bristlecone: Language Support for Robust Software Applications
Author :
Demsky, Brian ; Sundaramurthy, Sivaji R.
Author_Institution :
Dept. of Electr. Eng. & Comput. Sci., Univ. of California, Irvine, CA, USA
Volume :
37
Issue :
1
fYear :
2011
Firstpage :
4
Lastpage :
23
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.
Keywords :
Java; program compilers; program diagnostics; programming languages; software fault tolerance; specification languages; Bristlecone compiler; Java version; Web crawler; Web server; benchmark applications; game server; high-level organization specification; high-level structure; injected failures; language support; low-level operational specification; multiroom chat server; programming language; robust software applications; robust software systems; runtime; static analysis; task interactions; Software robustness.;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2010.27
Filename :
5416725
Link To Document :
بازگشت