The perceived advantages of distributed systems, such as increased reliability and availability, are o set by the increased complexity of developing such applications. The developers of distributed applications have to both understand the core functionality of the application, and to cater for the mechanisms of distribution. Distribution brings with it issues of mutual exclusion, termination and deadlock which are addressed di erently in a centralised system. We propose using separation of concerns. to control any additional complexity thus introduced. We identify speci cally the well known distributedalgorithms whichsolve distributedmutual exclusion and so on, and provide a framework whereby they can be injected into an existing system. The framework is called Algon, and consists of the algorithms, various wrappers and interfaces in Java, and sample schedulers which are needed to handle communication between the now distributed processes. Algon does not supply middleware, and the int...