Using Replication to Build Highly Available .NET Applications

Replication is a well-known technique to achieve fault-tolerance in distributed systems, thereby enhancing availability. However, so far, not much attention has been paid to object replication using Microsoft's .NET technologies. In this paper, we present the lessons we have learned during design and implementation of a .NET based replication framework that allows building dependable, distributed .NET applications. Our framework does not only support traditional replication protocols like primary-backup replication or voting but also a new protocol for explicit balancing between data integrity and availability. Based on our experiences, we recommend to use a state-of-the-art group communication toolkit (e.g., spread) and .NET remoting as basis for object replication in a .NET environment

[1]  Lorenz Froihofer,et al.  Trading Integrity for Availability by Means of Explicit Runtime Constraints , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Keith Marzullo,et al.  Highly-available services using the primary-backup approach , 1992, [1992 Proceedings] Second Workshop on the Management of Replicated Data.

[4]  K. M. Göschka,et al.  Using replication for increased availability of a distributed telecommunication management system , 2004 .

[5]  Flaviu Cristian,et al.  Understanding fault-tolerant distributed systems , 1991, CACM.

[6]  Karl M. Göschka,et al.  Fault-tolerance in a distributed management system: a case study , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[7]  Hans P. Reiser,et al.  A flexible replication framework for scalable and reliable .net services , 2005, IADIS AC.

[8]  M. Rott,et al.  Innovation and the Knowledge Economy : Issues , Applications , Case Studies , 2005 .

[9]  Francesc D. Muñoz-Escoí,et al.  DeDiSys Lite: an environment for evaluating replication protocols in partitionable distributed object systems , 2006, First International Conference on Availability, Reliability and Security (ARES'06).

[10]  Yair Amir,et al.  A low latency, loss tolerant architecture and protocol for wide area group communication , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[11]  Thomas Seidmann Distributed shared memory using the .NET framework , 2003, CCGrid 2003. 3rd IEEE/ACM International Symposium on Cluster Computing and the Grid, 2003. Proceedings..

[12]  Simon Patarin,et al.  A Framework for Prototyping J2EE Replication Algorithms , 2004, CoopIS/DOA/ODBASE.

[13]  Idit Keidar,et al.  Group communication specifications: a comprehensive study , 2001, CSUR.

[14]  Francesc D. Muñoz-Escoí,et al.  A system architecture for enhanced availability of tightly coupled distributed systems , 2006, First International Conference on Availability, Reliability and Security (ARES'06).

[15]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[16]  Fred B. Schneider,et al.  The primary-backup approach , 1993 .

[17]  Luís E. T. Rodrigues,et al.  Appia, a flexible protocol kernel supporting multiple coordinated channels , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[18]  Mark Garland Hayden,et al.  The Ensemble System , 1998 .

[19]  David K. Gifford,et al.  Weighted voting for replicated data , 1979, SOSP '79.