Distributed Computing
Exploiting virtual synchrony in distributed systems
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Knowledge and common knowledge in a distributed environment
Journal of the ACM (JACM)
TARK '92 Proceedings of the fourth conference on Theoretical aspects of reasoning about knowledge
Using knowledge to optimally achieve coordination is distributed systems
TARK '92 Proceedings of the fourth conference on Theoretical aspects of reasoning about knowledge
Reasoning about knowledge
A formal model of knowledge, action, and communication in distributed systems: preliminary report
Proceedings of the fourth annual ACM symposium on Principles of distributed computing
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Artificial Intelligence
A Link Between Knowledge and Communication in Faulty Distributed Systems
Proceedings of the 3rd Conference on Theoretical Aspects of Reasoning about Knowledge
Reliable Broadcast in Synchronous and Asynchronous Environments (Preliminary Version)
Proceedings of the 3rd International Workshop on Distributed Algorithms
Concurrent common knowledge: defining agreement for asynchronous systems
Distributed Computing
Hi-index | 0.00 |
This paper describes Sage, a software environment supporting software development, synthesis, and testing for distributed computing applications. While the principal domain of interest is applications that must be fault-tolerant (i.e., be able to withstand the failure of some of the participants) Sage is not limited to this; it can be extended to distributed applications with no criticality requirements and to those with security requirements. Sage mechanically applies specialized knowledge-theoretic analyses to a distributed application's high-level specification to automatically derive the necessary communication between the participants in the computation. In particular, Sage implements the results of Chandy and Misra [2] and mimics the analyses of others [9, 10, 12, 15] which have previously only been performed theoretically. Sage applies these results to strategies commonly used by programmers of distributed applications, and commonly provided by packaged subsystems for distributed computing (also called "middleware"), to derive and synthesize correct, efficient solutions.