Abstract
Service-oriented architectures have become prevalent in enterprise information systems. The underlying infrastructure is typically architected with multiple tiers in order to separate the different concerns such as interface, business logic and data. Modern information systems have strict availability and scalability requirements. The main technique to attain these properties is replication. However, system architects are confronted with a complex environment in which they have to decide which tier(s) to replicate and how. The architectural choice can have great implications for the degree of scalability and availability that can actually be achieved. Furthermore, maintaining consistency is affected by the way the system is replicated. In this chapter, we survey the state of the art in this area and digest it in the form of a system of architectural patterns that will guide system architects and practitioners in evaluating and selecting the appropriate architectural choices to attain a highly available, consistent and scalable service-oriented infrastructure.
This research has been partially funded by Microsoft Research Cambridge under the PhD Award programme (grant MS-2006-06), the Spanish National Science Foundation (MICINN) under grant TIN2007-67353-C02, the Madrid Regional Research Council (CAM) under the AUTONOMIC project (S-0505/TIC/000285), and the European Commission under the NEXOF-RA project (FP7-216446).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adams, M., Coplien, J., Gamoke, R., Hanmer, R., Keeve, F., Nicodemus, K.: Fault-tolerant Telecommunication System Patterns. In: Pattern Languages of Program Design 2, Addison Wesley, Reading (1996)
Amza, C., Cox, A.L., Zwaenepoel, W.: Distributed Versioning: Consistent Replication for Scaling Back End Databases of Dynamic Content Web Sites.. In: Proc. of the ACM/IFIP/USENIX Int. Middleware Conf., pp. 282–304 (2003)
Amir, Y., Tutu, C.: From Total Order to Database Replication. In: Proc. of the IEEE Int. Conf. on Distributed Computing Systems ICDCS (2002)
Bernstein, P.A., Fekete, A., Guo, H., Ramakrishnan, R., Tamma, P.: Relaxed-Currency Serializability for Middle-Tier Caching and Replication. In: Proc. of the ACM Int. Conf. on Management of Data (SIGMOD), pp. 599–610 (2006)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture. A System of Patterns, vol. 1. John Wiley & Sons Inc., Chichester (1996)
Cecchet, E., Marguerite, J., Zwaenepoel, W.: C-JDBC: Flexible Database Clustering Middleware. In: Proc. of the ACM/IFIP/USENIX Int. Middleware Conf., pp. 9–18 (2004)
Frolund, S., Guerraoui, R.: e-Transactions: End-to-End Reliability for Three-Tier Architectures. IEEE Trans. on Software Engineering 28(4), 378–395 (2002)
Gonçalves, T., Rito Silva, A.: Passive Replicator: A Design Pattern for Object Replication. In: Proc. of the European Conf. on Pattern Languages of Programs, EuroPLoP (1997)
Hanmer, R.: Patterns for Fault Tolerant Software. John Wiley & Sons Inc., Chichester (2007)
Jiménez-Peris, R., Patiño-Martínez, M., Kemme, B., Alonso, G.: Improving the Scalability of Fault-Tolerant Database Clusters.. In: Proc. of the IEEE Int. Conf. on Distributed Computing Systems (ICDCS), pp. 477–484 (2002)
Correia Jr., A., Pereira, J., Rodrigues, L., Carvalho, N., Oliveira, R.: Practical Database Replication. In: Charron-Bost, B., Pedone, F., Schiper, A. (eds.) Replication: Theory and Practice, ch.13, Springer, Heidelberg (2009)
Kemme, B., Alonso, G.: Don’t Be Lazy, Be Consistent: Postgres-R, A New Way to Implement Database Replication. In: Proc. of the Int. Conf. on Very Large Data Bases (VLDB), pp. 134–143 (2000)
Kemme, B., Jimenez-Peris, R., Patiño-Martínez, M., Alonso, G.: Database Replication: A Tutorial. In: Charron-Bost, B., Pedone, F., Schiper, A. (eds.) Replication: Theory and Practice, ch. 12. Springer, Heidelberg (2009)
Kemme, B., Jiménez-Peris, R., Patiño-Martínez, M., Salas, J.: Exactly Once Interaction in a Multi-Tier Architecture. In: VLDB Workshop on Design, Implementation, and Deployment of Database Replication (2005)
Kistijantoro, A.I., Morgan, G., Shrivastava, S.K., Little, M.C.: Enhancing an Application Server to Support Available Components. IEEE Trans. on Software Engineering 34(4), 531–545 (2008)
Lin, Y., Kemme, B., Patiño-Martínez, M., Jiménez-Peris, R.: Middleware based Data Replication providing Snapshot Isolation.. In: Proc. of the ACM Int. Conf. on Management of Data (SIGMOD), pp. 419–430 (2005)
Pedone, F., Frolund, S.: Pronto: A Fast Failover Protocol for Off-the-shelf Commercial Databases. In: Proc. of the IEEE Symp. on Reliable Distributed Systems (SRDS), Nuremberg, Germany, October 2000, pp. 176–185 (2000)
Pedone, F., Guerraoui, R., Schiper, A.: The Database State Machine Approach.. Distributed and Parallel Databases 14(1) (2003)
Patiño-Martínez, M., Jiménez-Peris, R., Kemme, B., Alonso, G.: MIDDLE-R: Consistent Database Replication at the Middleware Level. ACM Trans. on Computer Systems 23(4), 375–423 (2005)
Perez-Sorrosal, F., Patiño-Martínez, M., Jiménez-Peris, R., Kemme, B.: Consistent and Scalable Cache Replication for Multi-Tier J2EE Applications. In: Proc. of the ACM/IFIP/USENIX Int. Middleware Conf. (2007)
Perez-Sorrosal, F., Patiño-Martínez, M., Jiménez-Peris, R., Vuckovic, J.: Highly Available Long Running Transactions and Activities for J2EE Applications. In: Proc. of the IEEE Int. Conf. on Distributed Computing Systems, ICDCS (2006)
Rito Silva, A., Assis Rosa, F., Gonçalves, T.: Distributed Proxy: A Design Pattern for Distributed Object Communication. In: Proc. of the Int. Conf. on Pattern Languages of Programs, PLoP (1997)
Saridakis, T.: A System of Reliability Patterns. In: Proc. of the European Conf. on Pattern Languages of Programs, EuroPLoP (2002)
Singh Ahluwalia, K.: Scalability Design Patterns. In: Proc. of the Int. Conf. on Pattern Languages of Programs, PLoP (2007)
Singh Ahluwalia, K., Jain, A.: High Availability Design Patterns. In: Proc. of the Int. Conf. on Pattern Languages of Programs, PLoP (2006)
Wu, H., Kemme, B.: Fault-Tolerance for Stateful Application Servers in the Presence of Advanced Transactions Patterns. In: Proc. of the IEEE Symp. on Reliable Distributed Systems (SRDS), pp. 95–108 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Jimenez-Peris, R., Patiño-Martinez, M., Kemme, B., Perez-Sorrosal, F., Serrano, D. (2009). A System of Architectural Patterns for Scalable, Consistent and Highly Available Multi-Tier Service-Oriented Infrastructures. In: de Lemos, R., Fabre, JC., Gacek, C., Gadducci, F., ter Beek, M. (eds) Architecting Dependable Systems VI. Lecture Notes in Computer Science, vol 5835. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10248-6_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-10248-6_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-10247-9
Online ISBN: 978-3-642-10248-6
eBook Packages: Computer ScienceComputer Science (R0)