Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Software architecture in practice
Software architecture in practice
Fundamentals of fault-tolerant distributed computing in asynchronous environments
ACM Computing Surveys (CSUR)
The program-size complexity of self-assembled squares (extended abstract)
STOC '00 Proceedings of the thirty-second annual ACM symposium on Theory of computing
Software engineering for security: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Evaluating software architectures: methods and case studies
Evaluating software architectures: methods and case studies
Architectural style requirements for self-healing systems
WOSS '02 Proceedings of the first workshop on Self-healing systems
On the Decidability of Self-Assembly of Infinite Ribbons
FOCS '02 Proceedings of the 43rd Symposium on Foundations of Computer Science
Algorithmic self-assembly of dna
Algorithmic self-assembly of dna
A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems
IEEE Transactions on Software Engineering
Proceedings of the 28th international conference on Software engineering
Arithmetic computation in the tile assembly model: Addition and multiplication
Theoretical Computer Science
A Discreet, Fault-Tolerant, and Scalable Software Architectural Style for Internet-Sized Networks
ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
An Architectural Style for Solving Computationally Intensive Problems on Large Networks
SEAMS '07 Proceedings of the 2007 International Workshop on Software Engineering for Adaptive and Self-Managing Systems
Exploring the Role of Software Architecture in Dynamic and Fault Tolerant Pervasive Systems
SEPCASE '07 Proceedings of the 1st International Workshop on Software Engineering for Pervasive Computing Applications, Systems, and Environments
Complexity of compact proofreading for self-assembled patterns
DNA'05 Proceedings of the 11th international conference on DNA Computing
Error free self-assembly using error prone tiles
DNA'04 Proceedings of the 10th international conference on DNA computing
Compact error-resilient computational DNA tiling assemblies
DNA'04 Proceedings of the 10th international conference on DNA computing
Nondeterministic polynomial time factoring in the tile assembly model
Theoretical Computer Science
Solving NP-complete problems in the tile assembly model
Theoretical Computer Science
Crystal-growth-inspired algorithms for computational grids
BADS '09 Proceedings of the 2009 workshop on Bio-inspired algorithms for distributed systems
Software Engineering for Self-Adaptive Systems: A Research Roadmap
Software Engineering for Self-Adaptive Systems
Engineering Self-Adaptive Systems through Feedback Loops
Software Engineering for Self-Adaptive Systems
Constant-size tileset for solving an NP-complete problem in nondeterministic linear time
DNA13'07 Proceedings of the 13th international conference on DNA computing
Improving impact of self-adaptation and self-management research through evaluation methodology
Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems
Using allopoietic agents in replicated software to respond to errors, faults, and attacks
Proceedings of the 48th Annual Southeast Regional Conference
Monitoring and recovery of web service applications
The smart internet
Monitoring and recovery of web service applications
The smart internet
Using feature locality: can we leverage history to avoid failures during reconfiguration?
Proceedings of the 8th workshop on Assurances for self-adaptive systems
Hi-index | 0.00 |
Fault and adversary tolerance have become not only desirable but required properties of software systems because mission-critical systems are commonly distributed on large networks of insecure nodes. In this paper, we describe how the tile style, an architectural style designed to distribute computation, can inject fault and adversary tolerance. The result is a notion of tolerance that is entirely abstracted away from the functional properties of the software system. The client may specify what fraction of the network is faulty or malicious (e.g., 25%) and the acceptable system failure rate (e.g., 2-10), and the system's architecture adjusts automatically to ensure a failure rate no higher than the one specified. The technique is entirely automated and consists of a "smart redundancy" mechanism that brings the failure rate exponentially close to 0 by slowing down the execution speed linearly.