[comp.os.research] Arjuna contacts

M.C.Little@newcastle.ac.uk (Mark Little) (08/24/89)

Project Name: Arjuna

Project Members (August 1989):
	Santosh K. Shrivastava (principle investigator and coordinator)
	Graham D. Parrington
	Stuart M. Wheater
	Fariba Hedayati
	Mark C. Little
	Shangjie Jin

Contacts:
    Stuart M. Wheater	      Mark C. Little
    stuart@uk.ac.newcastle    mcl@uk.ac.newcastle
    
    Computing Laboratory,
    University of Newcastle upon Tyne,
    Newcastle upon Tyne,
    NE1 7RU,
    England.
    
Status: Active

Environment: Sun-3 workstations

Description:

  Arjuna is an object-oriented programming system that provides a set of tools
for the construction of fault-tolerant distributed applications. A prototype
version written in C++ has been designed and implemented to run on a collection
of Unix workstations connected by a local area network.Arjuna provides nested
atomic actions (nested atomic transactions) for structuring application
programs. Atomic actions operate on objects, which are instances of abstract
data types (C++ classes), by making use of remote procedure calls (RPCs).

  The design and implementation goal of Arjuna was to provide a state of the
art programming system for constructing fault-tolerant distributed applications.
In meeting this goal, three system properties were considered highly important:

(i)	Integration of mechanisms: a fault-tolerant distributed system requires
	a variety of system functions for naming, locating and invoking
	operations upon local and remote objects and also for concurrency
	control, error detection and recovery from failures etc. These mechanisms
	must be provided in an integrated manner such that their use is easy and
	natural.
	
(ii)	Flexibility: these mechanisms should also be flexible, permitting
	application specific enhancements, such as type-specific concurrency and
	recovery control, to be easily produced from existing default ones.
	
(iii)	Portability: the system should be easy to install and run on a variety
	of hardware configurations.
	
  The computational model of atomic actions controlling operations upon objects
provides a natural framework for incorporating integrated mechanisms for fault-
tolerance and distribution. In Arjuna, these mechanisms have been provided
through a number of C++ classes; these classes have been organised into a class/
type hierarchy in a manner which will be familiar to the developers of
'traditional' (single node) centralised object-oriented systems. Arjuna is novel
with respect to other fault-tolerant distributed systems in taking the approach
that every major entity in the system is an object. Thus, Arjuna not only
supports an object-oriented model of computation, but its internal structure
is also object-oriented. This approach permits the use of the type inheritance
mechanism of object-oriented systems for incorporating the properties of fault-
tolerance and distribution in a very flexible way, permitting the implementation
of concurrency control and recovery for objects in a type specific manner. In
this aspect, Arjuna bears some resemblence to the Avalon/C++ system. Also,
Arjuna has been implemented without any changes to the underlying operating
system (Sun Unix), making it quite portable.

Publications:
	S. K. Shrivastava, G. N. Dixon, G. D. Parrington.
	Objects and Actions in reliable distributed systems.
	IEEE Software Eng. Journal, September 1987.

	F. Panzieri, S. K. Shrivastava.
	Rajdoot: a remot procedure call mechanism supporting orphan detection
		 and killing.
	IEEE Trans. on Softwrae Eng. January 1988.
	
	G. N. Dixon.
	Object management for persistence and recoverability
	PhD Thesis, Technical Report 276, December 1988.
	
	G. D. Parrington.
	Management of concurrency in a reliable object-oriented system.
	PhD Thesis, Technical Report 277, December 1988.
	
	G. N. Dixon, S. K. Shrivastava.
	Exploiting type inheritance facilities to implement recoverability
	in object based systems.
	Proc. of 6th Symp. on Reliability in Distributed Software and Database
	Systems, Williamsburg, march 1987.
	
	G. N. Dixon, S. K. Shrivastava, G. D. Parrington.
	Managing persistent objects in Arjuna: a system for reliable
	distributed computing.
	Proc. of Workshop on persistent object systems, St. Andrews, Aug 1987.
	
	S. K. Shrivastava, L. Mancini, B. Randell.
	On the duality of fault-tolerant system structures.
	Workshop on experiences with dist. systems, Kaiserslautern, Lecture
        Notes in Computer Science, Vol 309, Sept. 1987
	 
	
	G. D. Parrington, S. K. Shrivastava.
	Implementing concurrency control in reliable distributed object-oriented
	systems.
	ECOOP88, Lecture Notes in Computer Science, Vol. 322.
	
        S.K. Shrivastava, G.N. Dixon, G.D. Parrington, F. Hedayati,
        S.M. Wheater and M. Little,
        The Design and Implementation of Arjuna.
        Technical Report, 1989.

	G. N. Dixon, G. D. Parrington, S. K. Shrivastava, S. M. Wheater.
	The treatment of persistent objects in Arjuna.
	ECOOP89, July 1989 (also, The Computer Journal, Vol. 32, Aug 1989).