This Article 
 Bibliographic References 
 Add to: 
e-Transactions: End-to-End Reliability for Three-Tier Architectures
April 2002 (vol. 28 no. 4)
pp. 378-395

A three-tier application is organized as three layers: human users interact with front-end clients (e.g., browsers), middle-tier application servers (e.g., Web servers) contain the business logic of the application, and perform transactions against back-end databases. Although three-tier applications are becoming mainstream, they usually fail to provide sufficient reliability guarantees to the users. Usually, replication and transaction-processing techniques are applied to specific parts of the application, but their combination does not provide end-to-end reliability. The aim of this paper is to provide a precise specification of a desirable, yet realistic, end-to-end reliability contract in three-tier applications. We present the specification in the form of the Exactly-Once Transaction (e-Transaction) abstraction: an abstraction that encompasses both safety and liveness properties in three-tier environments. We give an example implementation of that abstraction and point out alternative implementations and tradeoffs.

[1] M.C. Little and S.K. Shrivastava, “Integrating the Object Transaction Service with the Web,” IEEE Proc. Second Int'l Workshop Enterprise Distributed Object Computing (EDOC), 1998.
[2] Object Management Group, CORBA Services—Transaction Service, 1.1 ed. Nov. 1997.
[3] D. Chappell, “How Microsoft Transaction Server Changes the COM Programming Model,” Microsoft Systems Journal, Jan. 1998.
[4] S. Maffeis, “Adding Group Communication and Fault-Tolerance to CORBA,” Proc. First USENIX Conf. Object-Oriented Technologies (COOTS), June 1995.
[5] P. Felber, B. Garbinato, and R. Guerraoui, “The Design of a CORBA Group Communication Service,” Proc. 15th Symp. Reliable Distributed Systems (SRDS), pp. 150-159, Oct. 1996.
[6] P. Narashimhan, L.E. Moser, and P.M. Melliar-Smith, “Exploiting the Internet Inter-ORB Protocol Interface to Provide CORBA with Fault Tolerance,” Proc. Third USENIX Conf. Object-Oriented Technologies and Systems (COOTS), June 1997.
[7] C. Karamanolis and J. Magee, “Client-Access Protocols for Replicated Services,” IEEE Trans. Software Eng., vol. 25, no. 1, Jan. 1999.
[8] P. Bernstein, V. Hadzilacos, and N. Goodman, Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
[9] N. Budhiraja, K. Marzullo, F.B. Schneider, and S. Toueg, “The Primary-Backup Approach,” Distributed Systems, S. Mullender, ed. Addison-Wesley, 1993.
[10] Distributed Transaction Processing: The XA Specification. x/Open Company Ltd, XO/SNAP/91/050, 1991.
[11] P. Bernstein, M. Hsu, and B. Mann, “Implementing Recoverable Requests Using Queues,” Proc. ACM Int'l Conf. Management of Data (SIGMOD), May 1990.
[12] S. Frølund and R. Guerraoui, “Implementing e-Transactions with Asynchronous Replication,” IEEE Trans. Parallel and Distributed Systems, vol. 12, no. 2, Feb. 2001.
[13] S. Frølund and R. Guerraoui, “A Pragmatic Implementation of e-Transactions,” Proc. IEEE Symp. Reliable Distributed Systems (SRDS), Oct. 2000.
[14] B.W. Lampson, “Reliable Messages and Connection Establishment,” Distributed Systems, S. Mullender, ed., Addison-Wesley, 1993.
[15] T.D. Chandra and S. Toueg, “Unreliable Failure Detectors for Reliable Distributed Systems,” J. ACM, vol. 43, no. 2, pp. 225–267, 1996.
[16] P.S. Weygant, Clusters for High-Availability: A Primer of HP-UX Solutions. Prentice-Hall, Hewlett-Packard Professional Books, 1996.
[17] W. Vogels, D. Dumitriu, K. Birman, R. Gamache, M. Massa, R. Short, J. Vert, J. Barrera, and J. Gray, “The Design and Architecture of the Microsoft Cluster Service—A Practical Approach to High-Availability and Scalability,” Proc. IEEE Int'l Symp. Fault-Tolerant Computing Systems (FTCS), June 1998.
[18] P.K. Reddy and M. Kitsuregawa, “Reducing the Blocking in Two-Phase Commit Protocol Employing Backup Sites,” IEEE Proc. Third IFCIS Conf. Cooperative Information Systems, 1998.
[19] Orbix 2. 2 Programming Guide, IONA Technologies Ltd., 1997.
[20] Oracle8 Application Developer's Guide, chap. 18, Oracle XA, Release 8.0, A58241-01.Oracle Corp. 1998.
[21] J. Gray and A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kauffman, 1993.
[22] D. Chappell, “The Microsoft Transaction Server,” Distributed Computing Monitor, June 1997.
[23] D. Lomet and G. Weikum, “Efficient Transparent Application Recovery in Client-Server Information Systems,” Proc. ACM Int'l Conf. Management of Data (SIGMOD), 1998.
[24] A. Montresor, R. Davoli, and O. Babaoglu, “Group-Enhanced Remote Method Invocations,” Technical Report UBLCS-99-5, Dept. of Computer Science, Univ. of Bologna, Apr. 1999.
[25] The Common Object Request Broker: Architecture and Specification, revision 2.0 ed. Object Management Group, July 1995.
[26] R. Guerraoui, P. Felber, B. Garbinato, and K. Mazouni, “System Support for Object Groups,” Proc. ACM Conf. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 244-258, Oct. 1998.
[27] M.C. Little and S.K. Shrivastava, “Java Transactions for the Internet,” Distributed Systems Eng., vol. 5, pp. 156-167, Dec. 1998.
[28] C. Fetzer and F. Cristian, “The Timed Asynchronous Model,” Technical Report. CS97-519, Univ. of Calif. at San Diego, Sept. 1997.
[29] L. Sabel and K. Marzullo, “Simulating Fail-Stop in Asynchronous Distributed Systems,” Proc. 13th IEEE Symp. Reliable Distributed Systems (SRDS), pp. 138-147, Oct. 1994.
[30] K. Birman and R. van Renesse, “Software Reliability for Networks,” Scientific Am., vol. 274, May 1996.
[31] L. Lamport, “The Part-Time Parliament,” Technical Report 49, DEC Systems Research Center, 1989.

Index Terms:
end-to-end reliability, exactly-once, transactions, three-tier applications, fault-tolerance
S. Frølund, R. Guerraoui, "e-Transactions: End-to-End Reliability for Three-Tier Architectures," IEEE Transactions on Software Engineering, vol. 28, no. 4, pp. 378-395, April 2002, doi:10.1109/TSE.2002.995430
Usage of this product signifies your acceptance of the Terms of Use.