<XML><RECORDS><RECORD><REFERENCE_TYPE>3</REFERENCE_TYPE><REFNUM>7273</REFNUM><AUTHORS><AUTHOR>Renaud,K.V.</AUTHOR><AUTHOR>Bishop,J.M.</AUTHOR><AUTHOR>Lo,J.</AUTHOR><AUTHOR>Worrall,B.</AUTHOR></AUTHORS><YEAR>2004</YEAR><TITLE>Algon: from interchangeable distributed algorithms to interchangeable middleware</TITLE><PLACE_PUBLISHED> SC 2004 Software Composition Saturday, April 3, 2004 (http://www.ida.liu.se/~uweas/sc2004). Workshop affiliated with ETAPS 2004 (http://www.lsi.upc.es/etaps04) Barcelona, Spain, March 28-April 4, 2004. </PLACE_PUBLISHED><PUBLISHER>Dept of Computing Science, University of Glasgow</PUBLISHER><LABEL>Renaud:2004:7273</LABEL><ABSTRACT>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. </ABSTRACT></RECORD></RECORDS></XML>