Abstract
Brewer’s conjecture, and its resulting formalization as the CAP theorem, impose serious limitations on the consistency, availability and network partitioning tolerance characteristics of distributed systems. Despite its importance however, few works explicitly consider the implications of the CAP theorem in the design of applications, especially for applications that are designed natively for the Cloud. In order to address this need, in this work we propose a CAP-oriented design methodology for Cloud-native applications. For this purpose we build and extend our previous work on Cloud architectural patterns. Finally, we show how the methodology can be used in practice to design an application solution with desired CAP properties.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Leymann, F., Fritsch, D.: Cloud Computing: The Next Revolution in IT. In: Proceedings of the 52th Photogrammetric Week, pp. 3–12 (2009)
Varia, J.: Architecting for the Cloud: Best Practices. Amazon Web Services (2010), http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
Badger, M.L., Grance, T., Patt-Corner, R., Voas, J.M.: Cloud Computing Synopsis and Recommendations. NIST Special Publication 800-146 (2012), http://www.nist.gov/manuscript-publication-search.cfm?pub_id=911075
Brewer, E.A.: Towards Robust Distributed Systems. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, vol. 19, pp. 7–10 (2000)
Gilbert, S., Lynch, N.: Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. ACM SIGACT News 33(2), 51–59 (2002)
Fehling, C., Leymann, F., Retter, R., Schumm, D., Schupeck, W.: An Architectural Pattern Language of Cloud-Based Applications. In: Proceedings of the Conference on Pattern Languages of Programs, PLoP (2011)
Hewlett-Packard Development: There is no Free Lunch With Distributed Data. HP White Paper (2005), ftp://ftp.compaq.com/pub/products/storageworks/whitepapers/5983-2544EN.pdf
Helland, P.: SOA and Newton’s Universe. MSDN Blogs (2207), http://blogs.msdn.com/b/pathelland/archive/2007/05/20/soa-and-newton-s-universe.aspx
Kossmann, D.: How new is the Cloud? In: IEEE Proceedings of ICDE 2010, p. 3 (2010)
Mietzner, R., Fehling, C., Karastoyanova, D., Leymann, F.: Combining Horizontal and Vertical Composition of Services. In: IEEE Proceedings of SOCA 2010, pp. 1–8 (2010)
Pardon, G.: A CAP Solution (Proving Brewer Wrong). Personal Blog (2008), http://guysblogspot.blogspot.com/2008/09/cap-solution-proving-brewer-wrong.html
Vogels, W.: Eventually Consistent. Communications of the ACM 52(1), 40–44 (2009)
Zimmermann, O., Koehler, J., Leymann, F., Polley, R., Schuster, N.: Managing Architectural Decision Models with Dependency Relations, Integrity Constraints, and Production Rules. Journal of Systems and Software 82(8), 1249–1267 (2009)
Brewer, E.: CAP Twelve Years Later: How the “Rules” Have Changed. Computer 45(2), 23–29 (2012)
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman (1994)
Fehling, C., Leymann, F., Mietzner, R., Schupeck, W.: A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-Based Application Architectures. Technical Report (2011)
Strauch, S., Andrikopoulos, V., Breitenbücher, U., Kopp, O., Frank, L.: Non-Functional Data Layer Patterns for Cloud Applications. In: Proceedings of CloudCom 2012, pp. 601–605. IEEE Computer Society Press (2012)
Leymann, F., Roller, D.: Production Workflow: Concepts and Techniques. Prentice Hall PTR (2000)
Erl, T., Kurtagic, A., Wilhelmsen, H.: Designing Services for Windows Azure. MSDN Magazine (2010), http://msdn.microsoft.com/en-us/magazine/ee335719.aspx
Lau, C., Birsan, V.: Best Practices to Architect Applications in the IBM Cloud. IBM DeveloperWorks (2011), http://www.ibm.com/developerworks/cloud/library/cl-cloudapppractices/index.html
Chee, Y.M., Zhou, N., Meng, F.J., Bagheri, S., Zhong, P.: A Pattern-Based Approach to Cloud Transformation. In: IEEE Proceedings of CLOUD 2011, pp. 388–395 (2011)
Alexander, C., et al.: A Pattern Language. Towns, Buildings, Construction. Oxford University Press (1977)
Iba, T., Miyake, T., Naruse, M., Yotsumoto, N.: Learning Patterns: A Pattern Language for Active Learners. In: Conference on Pattern Languages of Programs, PLoP (2009)
Manns, M.L., Rising, L.: Fearless Change: Patterns for Introducing new Ideas. Addison-Wesley, Boston (2005)
Yahoo! Inc.: Yahoo! Design Pattern Library. Online Resource (2011), http://developer.yahoo.com/ypatterns/
Harrison, N.B., Avgeriou, P., Zdun, U.: Using Patterns to Capture Architectural Decisions. IEEE Software 24(4), 38–45 (2007)
Andrikopoulos, V., Binz, T., Leymann, F., Strauch, S.: How to Adapt Applications for the Cloud Environment. Springer Computing 95(6), 493–535 (2013), http://dx.doi.org/10.1007/s00607-012-0248-2
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer International Publishing Switzerland
About this paper
Cite this paper
Andrikopoulos, V., Strauch, S., Fehling, C., Leymann, F. (2013). CAP-Oriented Design for Cloud-Native Applications. In: Ivanov, I.I., van Sinderen, M., Leymann, F., Shan, T. (eds) Cloud Computing and Services Science. CLOSER 2012. Communications in Computer and Information Science, vol 367. Springer, Cham. https://doi.org/10.1007/978-3-319-04519-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-04519-1_14
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-04518-4
Online ISBN: 978-3-319-04519-1
eBook Packages: Computer ScienceComputer Science (R0)