In the absence of proper tools and architectural support, the task of building applications in a distributed system can become hopelessly complicated. Previous EPSRC and ESPRIT supported work at Newcastle has led to the development of a programming system called Arjuna that provides a set of tools for constructing fault-tolerant distributed applications [1,2]. It supports an object-oriented model of computation in which atomic actions (atomic transactions) control operations upon persistent objects. The main objectives of this project is to undertake research on consistency problems in large scale systems, and concentrate on the development of algorithms and techniques for building fault-tolerant applications. The ideas developed will be incorporated in Arjuna, and realistic demonstration applications will be built. Progress:Arjuna is an object-oriented programming system implemented in C++ that provides a set of tools for the construction of fault-tolerant distributed applications. Arjuna objects can be replicated on distinct nodes for obtaining high availability. Much effort has been devoted in making the system robust and usable by outside users. Arjuna system software has been freely available via anonymous ftp for research, development and teaching purposes since 1992 (http://arjuna.ncl.ac.uk/). Arjuna has been used for building a number of distributed applications [3]. Arjuna was used by our University for handling student registration during Oct 1994. All aspects of Arjuna, most notably atomic transactions and object replication were used in earnest in this application. It is expected that the system will be used routinely from now on. Our main effort has been devoted to evaluating the strengths and weakness of the present version of the Arjuna system (based on extensive application building experience) and working on the revised architecture of the system. The notable aspect of our redesign effort will be the development of a system with open implementations , permitting application specific customisation (e.g., RPC protocol, caching, server management). An object management system, called Shadows has been designed for supporting Arjuna Shadows permits support for mobile objects, migration, and automatic call forwarding, including safe garbage collection of references [4]. A scalable group communication protocol has been designed with the view of supporting communication requirements of flexible replica management schemes as well as cooperative applications [5]. Technology transfer:The Shadows object support system is in use by system developers at Hewlett-Packard, who are employing the system for a specific telecommunications application. The C++ stub generator software developed in conjunction with Arjuna is in use by GPT Ltd. A local SME (Prism technology Ltd) is working with us to incorporate Arjuna into its product.References[l] S.K. Shrivastava, G.N. Dixon and G.D. Parrington, An overview of the Arjuna distributed programming system , IEEE Software, January, l991, pp. 66-73.[2] G.D. Parrington, S.K. Shrivastava, S.M. Wheater and M.C. Little, The Design and Implementation of Arjuna , BROADCAST Project deliverable report, Vol. 4, October 1994 (available from Dept. of Computing Science, University of Newcastle upon Tyne, UK). [3] S.K. Shrivastava, Lessons learned from building and using the Arjuna distributed programming system , Int. Workshop on Distributed Computing Systems: Theory meets Practice, Dagstuhl, September l995.[4] S.J. Caughey and S.K. Shrivastava, Architectural Support for Mobile Objects , BROADCAST PrOject deliverable report, Vol. 3, October 1994 (available from Dept. of Computing Science, University of Newcastle upon Tyne, UK).[5] P. Ezhilchelvan, R. Macedo and S.K. Shrivastava, Newtop: a fault-tolerant group group communication protocol!, 15th IEEE Intl. Conf. on Distributed Computing Systems, ICDCS-15 Vancouver, May 1995 (to be presented).
|