The Community for Technology Leaders
RSS Icon
Issue No.04 - July/August (2008 vol.34)
pp: 531-545
Achmad I. Kistijantoro , Bandung Institute of Technology, Bandung
Graham Morgan , University of Newcastle, Newcastle
Santosh K. Shrivastava , University of Newcastle, Newcastle
Mark C. Little , University of Newcastle, Newcastle
Three-tier middleware architecture is commonly used for hosting enterprise distributed applications. Typically the application is decomposed into three layers: front-end, middle tier and back-end. Front-end ('Web server') is responsible for handling user interactions and acts as a client of the middle tier, while back-end provides storage facilities for applications. Middle tier ('Application server') is usually the place where all computations are performed. The benefit of this architecture is that it allows flexible management of a cluster of computers for performance and scalability; further, availability measures, such as replication, can be introduced in each tier in an application specific manner. However, incorporation of availability measures in a multi-tier system poses challenging system design problems of integrating open, non proprietary solutions to transparent failover, exactly once execution of client requests, non-blocking transaction processing and an ability to work with clusters. This paper describes how replication for availability can be incorporated within the middle and back-end tiers meeting all these challenges. The paper develops an approach that requires enhancements to the middle tier only for supporting replication of both the middleware backend tiers. The design, implementation and performance evaluation of such a middle are presented.
Software engineering for Internet projects, Distributed objects
Achmad I. Kistijantoro, Graham Morgan, Santosh K. Shrivastava, Mark C. Little, "Enhancing an Application Server to Support Available Components", IEEE Transactions on Software Engineering, vol.34, no. 4, pp. 531-545, July/August 2008, doi:10.1109/TSE.2008.38
[1] S. Frolund and R. Guerraoui, “e-Transactions: End-to-End Reliability for Three-Tier Architectures,” IEEE Trans. Software Eng., vol. 28, no. 4, pp. 378-395, Apr. 2002.
[2], 2008.
[3] A.I. Kistijantoro, G. Morgan, S.K. Shrivastava, and M.C. Little, “Component Replication in Distributed Systems: A Case Study Using Enterprise Java Beans,” Proc. 22nd IEEE Symp. Reliable Distributed Systems (SRDS '03), pp. 89-98, Oct. 2003.
[4] A.I. Kistijantoro, G. Morgan, and S.K. Shrivastava, “Transaction Manager Failover: A Case Study Using JBOSS Application Server,” Proc. Int'l Workshop Reliability in Decentralized Distributed Systems (RDDS '06), pp. 1555-1564, Oct. 2006.
[5] K. Birman, “The Process Group Approach to Reliable Computing,” Comm. ACM, vol. 36, no. 12, pp. 37-53, Dec. 1993.
[6] P.A. Bernstein, V. Hadzilacos, and N. Goodman, Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.
[7] M.C. Little, D. McCue, and S.K. Shrivastava, “Maintaining Information About Persistent Replicated Objects in a Distributed System,” Proc. Int'l Conf. Distributed Computing Systems (ICDCS '93), pp. 491-498, May 1993.
[8] M.C. Little and S.K. Shrivastava, “Implementing High Availability CORBA Applications with Java,” Proc. IEEE Workshop Internet Applications (WIAPP '99), pp. 112-119, July 1999.
[9] P. Felber, R. Guerraoui, and A. Schiper, “The Implementation of a CORBA Object Group Service,” Theory and Practice of Object Systems, vol. 4, no. 2, pp. 93-105, Apr. 1998.
[10] L.E. Moser, P.M. Melliar-Smith, and P. Narasimhan, “Consistent Object Replication in the Eternal System,” Theory and Practice of Object Systems, vol. 4, no. 2, pp. 81-92, Apr. 1998.
[11] R. Baldoni and C. Marchetti, “Three-Tier Replication for FT-CORBA Infrastructures,” Software—Practice and Experience, vol. 33, no. 18, pp. 767-797, May 2003.
[12] L.E. Moser, P.M. Melliar-Smith, and P. Narasimhan, “A Fault Tolerance Framework for CORBA,” Proc. IEEE Int'l Symp. Fault-Tolerant Computing (FTCS '99), pp. 150-157, June 1999.
[13] X. Zhang, M. Hiltunen, K. Marzullo, and R. Schlichting, “Customizable Service State Durability for Service Oriented Architectures,” Proc. Sixth European Dependable Computing Conf. (EDCC '06), pp. 119-128, Oct. 2006.
[14] J. Salas, F. Perez-Sorrosal, M. Patiño-Martínez, and R. Jiménez-Peris, “WS-Replication: A Framework for Highly Available Web Services,” Proc. 15th Int'l Conf. World Wide Web (WWW '06), pp.357-366, May 2006.
[15] B. Roehm, WebSphere Application Server V6 Scalability and Performance Handbook. IBM Red Books, ibm.comredbooks, 2008.
[16] S. Barghouthi and D. Banerjee, “Building a High Availability Database Environment Using WebSphere Middleware: Part 3: Handling Two-Phase Commit in WebSphere Application Server Using Oracle RAC,” techjournal/0710_barghouthi0710_barghouthi.html , 2008.
[17] A. Wilson, “Distributed Transactions and Two-Phase Commit,” SAP White Paper SAP NetWeaver, prtroot/docs/library/uuid3732d690-0201-0010-a993-b92aab79701f , 2008.
[18] S. Labourey and B. Burke, JBoss Clustering, second ed. www.jboss. org, 2002.
[19] M. Wiesmann, F. Pedone, A. Schiper, B. Kemme, and G. Alonso, “Database Replication Techniques: A Three Parameter Classification,” Proc. 19th IEEE Symp. Reliable Distributed Systems (SRDS '00), pp. 206-215, Oct. 2000.
[20] B. Kemme and G. Alonso, “A New Approach to Developing and Implementing Eager Database Replication Protocols,” ACM Trans. Database Systems, vol. 25, no. 3, pp. 333-379, Sept. 2000.
[21] M. Patiño-Martínez, R. Jiménez-Peris, B. Kemme, and G. Alonso, “Consistent Database Replication at the Middleware Level,” ACM Trans. Computer Systems, vol. 23, no. 4, pp. 1-49, Nov. 2005.
[22] C. Amza, A.L. Cox, and W. Zwaenepoel, “Distributed Versioning: Consistent Replication for Scaling Back-End Databases of Dynamic Content Web Sites,” Proc. Fourth ACM/IFIP/USENIX Int'l Middleware Conf. (Middleware '03), pp. 998-1008, June 2003.
[23] E. Cecchet, M. Julie, and W. Zwaenepoel, “C-JDBC: Flexible Database Clustering Middleware,” Proc. USENIX Ann. Technical Conf. (ATC '04), pp. 89-102, June 2004.
[24] R.S. Barga, D.B. Lomet, T. Baby, and S. Agrawal, “Persistent Client-Server Database Sessions,” Proc. Seventh Int'l Conf. Extending Database Technology (EDBT '00), pp. 462-477, Mar. 2000.
[25] B. Kemme et al., “Exactly Once Interaction in a Multi-Tier Architecture,” Proc. 31st Int'l Conf. Very Large Data Bases (VLDB '05), workshop design, implementation, and deployment of database replication, Aug. 2005.
[26] W. Zhao, L.M. Moser, and P.M. Melliar-Smith, “Unification of Transactions and Replication in Three-Tier Architectures Based on CORBA,” IEEE Trans. Dependable and Secure Computing, vol. 2, no. 1, pp. 20-33, Jan-Mar. 2005.
[27] M. Hammer and D. Shipman, “Reliability Mechanisms for SDD-1: A System for Distributed Databases,” ACM Trans. Database Systems (TODS), vol. 5, no. 4, pp. 431-466, 1980.
[28] P.K. Reddy and M. Kitsuregawa, “Reducing the Blocking in Two-Phase Commit Protocol Employing Backup Sites,” Proc. Third IFCIS Conf. Cooperative Information Systems (CoopIS '98), pp. 406-415, Aug. 1998.
[29] R. Jiménez-Peris, M. Patiño-Martínez, G. Alonso, and S. Arévalo, “A Low-Latency Non-Blocking Commit Service,” Proc. 15th Int'l Conf. Distributed Computing (DISC '01), pp. 93-107, Oct. 2001.
[30] Ö. Babaoglu, A. Bartoli, V. Maverick, S. Patarin, J. Vuckovic, and H. Wu, “A Framework for Prototyping J2EE Replication Algorithms,” Proc. Int'l Symp. Distributed Objects and Applications (DOA '04), pp. 1413-1426, Oct. 2004.
[31] H. Wu, B. Kemme, and V. Maverick, “Eager Replication for Stateful J2EE Servers,” Proc. Int'l Symp. Distributed Objects and Applications (DOA '04), pp. 1376-1394, Oct. 2004.
[32] F. Perez-Sorrosal, J. Vuckovic, M. Patiño-Martínez, and R. Jiménez-Peris, “Highly Available Long Running Transactions and Activities for J2EE Applications,” Proc. 26th IEEE Int'l Conf. Distributed Computing Systems (ICDCS '06), July 2006.
[33] M.C. Little and S.K. Shrivastava, “Integrating the Object Transaction Service with the Web,” Proc. IEEE/OMG Second Enterprise Distributed Object Computing Workshop (EDOC '98), pp. 194-205, Nov. 1998.
[34] M.C. Little and S.K. Shrivastava, “Java Transactions for the Internet,” Distributed Systems Eng., vol. 5, no. 4, pp. 156-167, Dec. 1998.
[35] P.A. Bernstein, M. Hsu, and B. Mann, “Implementing Recoverable Requests Using Queues,” Proc. ACM SIGMOD '90, pp. 112-122, 1990.
[36] R. Barga, D. Lomet, G. Shegalov, and G. Weikum, “Recovery Guarantees for Internet Applications,” ACM Trans. Internet Technology, vol. 4, no. 3, pp. 289-328, Aug. 2004.
[37] j2ee/ecperfdown load.html, 2008.
[38] http:/, 2008.
19 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool