A distributed coordinated atomic action scheme

Coordinated Atomic actions have proved to be a very general concept which can be successfully applied for structuring complex concurrent systems consisting of elements which both cooperate and compete. The canonical Coordinated Atomic action is built of several cooperating participants (roles) and a set of local objects which represent the action state and provide the feature for cooperation. In addition, Coordinated Atomic actions can compete for external objects which have conventional transactional properties. This paper offers a general approach to designing distributed Coordinated Atomic action schemes and discusses the problems of action components partitioning and distribution. The approach proposed relies on using forward error recovery in the form of distributed and concurrent exception handling and resolution. After discussing the general approach, we demonstrate how it can be applied when the standard distributed model of Ada 95 is used. The presentation of the scheme is sufficiently detailed for it to be used in practice. In particular, a thorough description of the action support and all patterns (skeletons) required for designing application software are given.

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

[2]  Alexander Romanovsky Practical exception handling and resolution in concurrent programs , 1996 .

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

[4]  Alan Burns,et al.  Concurrency in ADA , 1995 .

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

[6]  Brian Randell,et al.  Error recovery in asynchronous systems , 1986, IEEE Transactions on Software Engineering.

[7]  Roy H. Campbell,et al.  Atomic actions for fault-tolerance using CSP , 1986, IEEE Transactions on Software Engineering.

[8]  C. A. R. Hoare Parallel programming: an axiomatic approach , 1975, Language Hierarchies and Interfaces.

[9]  Andrew S. Tanenbaum,et al.  Distributed operating systems , 2009, CSUR.

[10]  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.

[11]  Alexander Romanovsky,et al.  Atomic Actions Based on Distributed/C oncurrent Exception Resolution , 1996 .

[12]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

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

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

[15]  C. A. R. Hoare,et al.  Parallel Programming: An Axiomatic Approach , 1975, Comput. Lang..

[16]  I. Bey,et al.  Delta-4: A Generic Architecture for Dependable Distributed Computing , 1991, Research Reports ESPRIT.

[17]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[18]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

[19]  Brian Randell,et al.  Approaches to Software Fault Tolerance , 1993 .

[20]  Alexander Romaovsky Practical Exception Handling and Resolution in Concurrent Programs , 1997, Comput. Lang..

[21]  S. S. Yau,et al.  Design of self-checking software , 1975 .

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

[23]  K. H. Kim,et al.  Approaches to Mechanization of the Conversation Scheme Based on Monitors , 1982, IEEE Transactions on Software Engineering.

[24]  Alan Burns,et al.  Programming Replicated Systems in Ada 95 , 1996, Comput. J..

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