Deadlock detection in distributed databases
ACM Computing Surveys (CSUR)
Distributed software engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Distributed algorithms visualisation for educational purposes
ITiCSE '99 Proceedings of the 4th annual SIGCSE/SIGCUE ITiCSE conference on Innovation and technology in computer science education
Distributed deadlock detection
ACM Transactions on Computer Systems (TOCS)
An optimal algorithm for mutual exclusion in computer networks
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Using multidimensional separation of concerns to (re)shape evolving software
Communications of the ACM
Interactive execution of distributed algorithms
Journal on Educational Resources in Computing (JERIC)
Deadlock detection in distribution object systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Introduction to Distributed Algorithms
Introduction to Distributed Algorithms
A java toolkit for teaching distributed algorithms
Proceedings of the 7th annual conference on Innovation and technology in computer science education
Advanced Concepts in Operating Systems
Advanced Concepts in Operating Systems
Garf: A Tool for Programming Reliable Distributed Applications
IEEE Parallel & Distributed Technology: Systems & Technology
Quantifying aspects in middleware platforms
Proceedings of the 2nd international conference on Aspect-oriented software development
Real-Time Specification Inheritance Anomalies and Real-Time Filters
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Object Location Control Using Meta-level Programming
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Algorithm + strategy = parallelism
Journal of Functional Programming
Kava - using byte code rewriting to add behavioural reflection to Java
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
Hi-index | 0.00 |
We present the design and implementation of a framework for interchangeable distributed algorithms. The algorithms are drawn from the set which includes mutual exclusion, deadlock detection and agreement protocols, and we have implemented several examples of the first tonsiswo of these. Algon cts of a library of algorithms, a framework for incorporating them into a new or existing system, and a tool for evaluating comparative performance. In this way, much of the complexity related to distributed systems can be isolated in its own component level and the programmer can choose from among different algorithms in the same class based on performance in a given application. Incorporating many algorithms in a single framework was made possible by the observation that algorithms in a given class, e.g. mutual exclusion, almost always expose the same methods. These methods interface with an Algon scheduler which maintains state and provides convenient hooks for the application to invoke the services of the algorithm. In this paper we describe the structure of Algon in detail, with a distributed deadlock detection algorithm as the case study. We then extend the notion of separation of concerns by creating an addition layer in Algon, underneath which the middleware that runs on each node can be interchanged, for example from Java-RMI to CORBA. Challenges in the re-tooling of the system, related to multiple inheritance, exceptions and the automatic generation of stubs and skeletons in our implementation language, Java, were overcome in novel ways. Algon has the potential to be a framework with a long life, as it can adapt to new middleware, such as .NET.