Using coordinated atomic actions to design dependable distributed object systems

The Coordinated Atomic CA action concept is a uni ed approach to structuring complex concurrent activities and supporting error recovery between multiple interacting objects in an object oriented system This paradigm provides a conceptual framework for supporting both cooperating and competing concurrency and achieving fault tolerance by extending and integrating two complementary concepts conversations and transactions CA actions have properties of both conversations and transactions Conversations are used to control cooperative concurrency and to implement coordinated error recovery whilst transactions are used to maintain the consistency of shared resources in the presence of failures and competitive concurrency Each CA action has roles which are activated by some external activities i e participants e g threads processes and which cooperate within the scope of the CA action A CA action starts when all roles have been activated and nishes when each role has completed its execution Objects that are external to CA actions and can therefore be accessed concurrently by more than one CA action must support transactional semantics In other words the sequence of operations performed by a given CA action on a set of such objects must be atomic with respect to other CA actions In this way it is possible to guarantee good fault tolerance properties for CA actions and prevent information smuggling between CA actions The execution of a CA action updates the system state represented by a set of external objects atomically In addition actions can use local objects They are the only means by which the participants within an action can interact and coordinate their executions These local objects are similar to the local variables of procedures but because they can be used by several participants their consistency has to be provided usually not by the CA action support but by the objects themselves which must guarantee some form of monitor semantics CA actions provide a basic framework for exception handling that can support a variety of fault tolerance mechanisms to tolerate both hardware and software faults In particular backward and forward error recovery as well as their combination can be used The purpose of the research described in this paper is to demonstrate how CA actions could be used as a system structuring tool for designing dependable distributed systems by applying them to the Production Cell case study and to the Distributed GAMMA model and to explore some of the issues that arise in providing a distributed implementation of CA actions

[1]  Daniel Le Métayer,et al.  Programming by multiset transformation , 1993, CACM.

[2]  Claus Lewerentz,et al.  Formal Development of Reactive Systems: Case Study Production Cell , 1995 .

[3]  Avelino Francisco Zorzo,et al.  Implementation of blocking coordinated atomic actions based on forward error recovery , 1997, J. Syst. Archit..

[4]  K ShrivastavaSantosh,et al.  An Overview of the Arjuna Distributed Programming System , 1991 .

[5]  Brian Randell,et al.  Coordinated Atomic Actions: from Concept to Implementation , 1997 .

[6]  B. Randell,et al.  Using Coordinated Atomic Actions to Design Complex Safety-critical Systems: the Production Cell Case Study , 1997 .

[7]  Avelino Francisco Zorzo,et al.  Coordinated atomic actions as a technique for implementing distributed gamma computation , 1999, J. Syst. Archit..

[8]  Jie Xu,et al.  Exception handling and resolution in distributed object-oriented systems , 1996, Proceedings of 16th International Conference on Distributed Computing Systems.

[9]  Alan Burns,et al.  Implementing Atomic Actions in Ada 95 , 1997, IEEE Trans. Software Eng..

[10]  Nicolas Guelfi,et al.  Formal development of Java based Web parallel applications , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[11]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[12]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[13]  Cecília M. F. Rubira,et al.  Fault tolerance in concurrent object-oriented software through coordinated error recovery , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[14]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[15]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[16]  Jean-Pierre Banâtre Parallel Multiset Processing: FRom Explicit Coordination to Chemical Reaction , 1996, COORDINATION.