Coordinated atomic actions as a technique for implementing distributed gamma computation

The intentions of this paper are to discuss Coordinated Atomic (CA) actions and to demonstrate how they can be used in a very new application area. We apply this concept to designing a particular case of the Gamma computational paradigm, i.e. distributed Gamma computation. Within our approach, each Gamma reaction is an action. We demonstrate how Gamma computation can be effectively implemented in conventional distributed message passing systems using CA actions. The paper discusses our design and the benefits we gain by applying CA actions: allowing as much concurrency as possible, together with guaranteeing data consistency, a better system structuring, clear separation of different system levels, and additional flexibility. This experimental design and the Java implementation allow us to conclude that CA actions are a very powerful paradigm which can be used for implementing many complex systems and, in particular, software to support some parallel computational models and paradigms.

[1]  Eike Best,et al.  Semantics of sequential and parallel programs , 1996, Prentice Hall International series in computer science.

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

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

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

[5]  Daniel Le Métayer,et al.  Gamma and the chemical reaction model: ten years after , 1996 .

[6]  John C. Knight,et al.  On the provision of backward error recovery in production programming languages , 1989, [1989] The Nineteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[7]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[8]  David B. Lomet,et al.  Process structuring, synchronization, and recovery using atomic actions , 1977, Language Design for Reliable Software.

[9]  D. B. Lomet Process structuring, synchronization, and recovery using atomic actions , 1977 .

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

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

[12]  Roy H. Campbell,et al.  Atomic Actions in Concurrent Systems , 1986, ICDCS.

[13]  Pascal Fradet,et al.  Gamma and the Chemical Reaction Model: Fifteen Years After , 2000, WMP.

[14]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

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

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

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

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

[19]  Nicolas Guelfi,et al.  Formal Development and Validation of the DSGamma System Based on CO-OPN/2 and Coordinated Atomic Actions , 1998 .

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

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

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

[23]  Avelino Francisco Zorzo,et al.  On distribution of coordinated atomic actions , 1997, OPSR.