This Article 
 Bibliographic References 
 Add to: 
Flexible Robust Programming in Distributed Object Systems
September/October 2002 (vol. 14 no. 5)
pp. 1126-1140

Abstract—Distributed applications that access persistent objects must maintain object state consistency even when failures are encountered during the manipulation of such objects. The basic transaction model, which has been implemented by several systems to ensure consistent executions of distributed applications, is not flexible enough to meet the requirements of many complex distributed applications. This has also been recognized for advanced database applications and, as a result, extended transaction models have been developed. We argue that distributed applications that manipulate long-lived data can benefit from such transaction models. We take an approach which views the various transaction models as policies for building robust applications. Thus, we advocate that the system implement several transaction models. A robust application can be programmed in such a system using a combination of several transaction models to meet its consistency requirements. We use applications from the domain of computer-supported cooperative work to motivate such an approach. We also develop a set of system-level mechanisms which can be used to implement multiple transaction models in a uniform manner. These mechanisms are used to implement nested, split, and cooperating transaction models. A prototype system that has been implemented is described to demonstrate the feasibility of this approach.

[1] V. Abrossimov et al., “Generic Virtual Memory Management for Operating System Kernels,” Proc. 12th Symp. Operating System Principles, 1989.
[2] M. Accetta et al., “Mach: a New Kernel Foundation for Unix Development,” Proc. Usenix Conf., 1986.
[3] R. Ananthanarayanan, S. Menon, A. Mohindra, and U. Ramachandran, "Experiences in integrating distributed shared memory with virtual shared memory management," Operating Systems Rev., July 1992.
[4] R. Barga and C. Pu, “A Practical Approach to Realizing Extended Transaction Models,” Proc. 21st Conf. Very Large Data Bases, 1995.
[5] A. Biliris et al., “ASSET: A System for Supporting Extended Transactions,” Proc. 1994 ACM SIGMOD Int'l Conf. Management of Data, June 1994.
[6] K. Birman, “Maintaining Consistency in Distributed Systems,” Technical Report Technical Report, TR91-1240, Cornell Univ., Ithaca, Nov. 1991.
[7] K. Birman and T. Joseph., “Exploiting Virtual Synchrony in Distributed Systems,” Proc. ACM Symp. Operating Systems Principles, ACM Press, New York, 1987, pp. 123‐138.
[8] R. Chen and P. Dasgupta, “Implementing Consistency Control Mechanisms in the Clouds Distributed Operating System,” Proc. 11th Int'l Conf. Distributed Computing Systems, May 1991.
[9] R. Kazman, "Tool Support for Architectural Analysis and Design," Joint Proc. SIGSOFT '96 Workshops, ACM Press, New York, pp. 94-97.
[10] P. Chrysanthis and K. Ramamritham, “ACTA: A Framework for Specifying and Reasoning about Transaction Structure and Behavior,” Proc. SIGMOD Int'l Conf. Management of Data, May 1990.
[11] P. Dasgupta et al., “The Clouds Distributed Operating System,” Computer, June 1991.
[12] D. Detlefs, M. Herlihy, and J. Wing, “Inheritance of Synchronization and Recovery Properties in Avalon /C++,” Computer, vol. 21, no. 12, Dec. 1988.
[13] A. Elmagarmid, Database Transaction Models for Advanced Applications. Morgan-Kaufmann Publishing Company, 1992.
[14] E.N. Elnozahy and W. Zwaenepoel, "Replicated Distributed Processes," Proc. 22nd Int'l Symp. Fault-Tolerant Computing (FTCS-22), pp. 18-27, July 1992.
[15] H. Garcia-Molina, “Using Semantic Knowledge for Transaction Processing Databases,” ACM Trans. Database Systems, vol. 8, no. 2, pp. 186-213, Mar. 1983.
[16] H. Garcia-Molina and K. Salem, "Sagas," Proc. ACM SIGMOD Ann. Conf., pp. 249-259, May 1987.
[17] D. Georgakopoulos and M. Hornick, “A Framework for Enforceable Specification of Extended Transaction Models and Transactional Workflows,” Int'l J. Intelligent and Cooperative Information Systems, vol. 3, no. 3, 1994.
[18] J. Gray and A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kauffman, 1993.
[19] I. Greif and S. Sarin, “Data Sharing in Group Work,” ACM Trans. Office Information Systems, Apr. 1987.
[20] I. Greif, R. Seliger, and W. Weihl, “A Case Study of CES: A Distributed Collaborative Editing System Implemented In Argus,” IEEE Trans. Software Eng., Sept. 1992.
[21] G. Kaiser, “A Flexible Transaction Model for Software Engineering,” Proc. Int'l Conf. Data Eng., 1990.
[22] M.J. Knister and A. Prakash, “Distedit: A Distributed Toolkit for Supporting Multiple Group Editors,” Proc. Conf. CSCW, 1990.
[23] H. Korth, E. Levy, and A. Silberschatz, “A Formal Approach to Recovery by Compensating Transactions,” Proc. 16th VLDB Conf., 1990.
[24] H. Korth and G. Speegle, “Formal Model of Correctness without Serializability,” Proc. SIGMOD Int'l Conf. Management of Data, 1988.
[25] B. Liskov and R. Scheifler, “Guardians and Actions: Linguistic Support for Robust, Distributed Programs,” ACM Trans. Programming Languages and Systems, vol. 5, no. 3, pp. 381-404, July 1983.
[26] J. Eliot and B. Moss, Nested Transactions. An Approach to Reliable Distributed Computing. Information Systems Series. Cambridge, Mass.: MIT Press, 1985.
[27] M. Nodine and S. Zdonik, “Cooperative Transaction Hierarchies: A Transaction Model to Support Design Applications,” Proc. 16th Conf. Very Large Data Bases, 1990.
[28] C. Pu, G.E. Kaiser, and N. Hutchinson, "Split-Transaction for Open-Ended Activities," Proc. 14th VLCB Conf., pp. 26-37, May 1988.
[29] M. Satyanarayanan, “Light-Weight Recoverable Virtual Memory,” Proc. 14th Symp. Operating System Principles, Dec. 1993.
[30] R. Schuman et al., “Recovery Management in the RelaX Distributed Transaction Layer,” Proc. Eighth Symp. Reliable Distributed Systems, 1989.
[31] S. Shrivastava et al., “The Design and Implementation of Arjuna,” Technical Report Technical Report Series, No. 280, Computing Laboratory, Univ. of Newcastle upon Tyne, Mar. 1989.
[32] S. Shrivastava and S. Wheater, “Implementing Fault-Tolerant Distributed Applications Using Objects and Multi-Coloured Actions,” Proc. 10th Int'l Conf. Distributed Computing Systems, Mar. 1990.
[33] A. Spector et al., “Support For Distributed Transactions in the TABS Prototype,” IEEE Trans. Software Eng., June 1985.
[34] D. Taylor, “How Big Can an Atomic Action Be,” Proc. Fifth Symp. Reliable Distributed Systems, 1986.
[35] A. Tripathi, “An Overview of the Nexus Distributed Operating system Design,” IEEE Trans. Software Eng., June 1989.
[36] M. Weinstein et al., “Transactions and Synchronization in a Distributed Operating System,” Proc. 10th Symp. Operating System Principles, Oct. 1985.

Index Terms:
Transaction models, fault tolerance, distributed object systems, operating systems, and computer-supported cooperative work.
Mustaque Ahamad, Muthusamy Chelliah, "Flexible Robust Programming in Distributed Object Systems," IEEE Transactions on Knowledge and Data Engineering, vol. 14, no. 5, pp. 1126-1140, Sept.-Oct. 2002, doi:10.1109/TKDE.2002.1033779
Usage of this product signifies your acceptance of the Terms of Use.