Enhancing an Application Server to Support Available Components

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. One of the benefits 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 multitier system poses challenging system design problems of integrating open, nonproprietary solutions to transparent failover, exactly once execution of client requests, nonblocking 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. This paper develops an approach that requires enhancements to the middle tier only for supporting replication of both the middleware back-end tiers. The design, implementation, and performance evaluation of such a middle-tier-based replication scheme for multidatabase transactions on a widely deployed open source application server (JBoss) are presented.

[1]  Matti A. Hiltunen,et al.  Customizable Service State Durability for Service Oriented Architectures , 2006, 2006 Sixth European Dependable Computing Conference.

[2]  Alan L. Cox,et al.  Distributed Versioning: Consistent Replication for Scaling Back-End Databases of Dynamic Content Web Sites , 2003, Middleware.

[3]  Masaru Kitsuregawa,et al.  Reducing the blocking in two-phase commit protocol employing backup sites , 1998, Proceedings. 3rd IFCIS International Conference on Cooperative Information Systems (Cat. No.98EX122).

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

[5]  Santosh K. Shrivastava,et al.  Implementing high availability CORBA applications with Java , 1999, Proceedings 1999 IEEE Workshop on Internet Applications (Cat. No.PR00197).

[6]  Gustavo Alonso,et al.  Database replication techniques: a three parameter classification , 2000, Proceedings 19th IEEE Symposium on Reliable Distributed Systems SRDS-2000.

[7]  Marta Patiño-Martínez Consistent Database Replication at the Middleware Level , 2005 .

[8]  Ricardo Jiménez-Peris,et al.  WS-replication: a framework for highly available web services , 2006, WWW '06.

[9]  Gustavo Alonso,et al.  A new approach to developing and implementing eager database replication protocols , 2000, TODS.

[10]  Philip A. Bernstein,et al.  Implementing recoverable requests using queues , 1990, SIGMOD '90.

[11]  Gustavo Alonso,et al.  A Low-Latency Non-blocking Commit Service , 2001, DISC.

[12]  Michael Hammer,et al.  Reliability mechanisms for SDD-1: a system for distributed databases , 1980, TODS.

[13]  Roger S. Barga,et al.  Persistent Client-Server Database Sessions , 2000, EDBT.

[14]  Santosh K. Shrivastava,et al.  Component replication in distributed systems: a case study using Enterprise Java Beans , 2003, 22nd International Symposium on Reliable Distributed Systems, 2003. Proceedings..

[15]  Bettina Kemme,et al.  Eager Replication for Stateful J2EE Servers , 2004, CoopIS/DOA/ODBASE.

[16]  Willy Zwaenepoel,et al.  C-JDBC: Flexible Database Clustering Middleware , 2004, USENIX Annual Technical Conference, FREENIX Track.

[17]  Ricardo Jiménez-Peris,et al.  Exactly Once Interaction in a Multi-tier Architecture , 2005 .

[18]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[19]  Roberto Baldoni,et al.  Three‐tier replication for FT‐CORBA infrastructures , 2003, Softw. Pract. Exp..

[20]  Rachid Guerraoui,et al.  e-Transactions: End-to-End Reliability for Three-Tier Architectures , 2002, IEEE Trans. Software Eng..

[21]  Gerhard Weikum,et al.  Recovery guarantees for Internet applications , 2004, TOIT.

[22]  Santosh K. Shrivastava,et al.  Java transactions for the Internet , 1998, Distributed Syst. Eng..

[23]  Louise E. Moser,et al.  Unification of transactions and replication in three-tier architectures based on CORBA , 2005, IEEE Transactions on Dependable and Secure Computing.

[24]  Kenneth P. Birman,et al.  The process group approach to reliable distributed computing , 1992, CACM.

[25]  Ricardo Jiménez-Peris,et al.  Highly Available Long Running Transactions and Activities for J2EE Applications , 2006, 26th IEEE International Conference on Distributed Computing Systems (ICDCS'06).

[26]  Rachid Guerraoui,et al.  The Implementation of a CORBA Object Group Service , 1998, Theory Pract. Object Syst..

[27]  Kenneth P. Birman The Process Group Approach to Reliable , 2000 .

[28]  Priya Narasimhan,et al.  A fault tolerance framework for CORBA , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[29]  Santosh K. Shrivastava,et al.  Integrating the Object Transaction Service with the Web , 1998, Proceedings Second International Enterprise Distributed Object Computing (Cat. No.98EX244).

[30]  Santosh K. Shrivastava,et al.  Transaction Manager Failover: A Case Study Using JBOSS Application Server , 2006, OTM Workshops.

[31]  Priya Narasimhan,et al.  Consistent Object Replication in the external System , 1998, Theory Pract. Object Syst..

[32]  Santosh K. Shrivastava,et al.  Maintaining information about persistent replicated objects in a distributed system , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.