CAP-Oriented Design for Cloud-Native Applications
- 1 Citations
- 758 Downloads
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.
Keywords
Cloud Computing Cloud Service Cloud Environment Public Cloud Cloud ApplicationPreview
Unable to display preview. Download preview PDF.
References
- 1.Leymann, F., Fritsch, D.: Cloud Computing: The Next Revolution in IT. In: Proceedings of the 52th Photogrammetric Week, pp. 3–12 (2009)Google Scholar
- 2.Varia, J.: Architecting for the Cloud: Best Practices. Amazon Web Services (2010), http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
- 3.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
- 4.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)Google Scholar
- 5.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)CrossRefGoogle Scholar
- 6.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)Google Scholar
- 7.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
- 8.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
- 9.Kossmann, D.: How new is the Cloud? In: IEEE Proceedings of ICDE 2010, p. 3 (2010)Google Scholar
- 10.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)Google Scholar
- 11.Pardon, G.: A CAP Solution (Proving Brewer Wrong). Personal Blog (2008), http://guysblogspot.blogspot.com/2008/09/cap-solution-proving-brewer-wrong.html
- 12.Vogels, W.: Eventually Consistent. Communications of the ACM 52(1), 40–44 (2009)CrossRefGoogle Scholar
- 13.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)CrossRefGoogle Scholar
- 14.Brewer, E.: CAP Twelve Years Later: How the “Rules” Have Changed. Computer 45(2), 23–29 (2012)CrossRefGoogle Scholar
- 15.Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)Google Scholar
- 16.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman (1994)Google Scholar
- 17.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)Google Scholar
- 18.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)Google Scholar
- 19.Leymann, F., Roller, D.: Production Workflow: Concepts and Techniques. Prentice Hall PTR (2000)Google Scholar
- 20.Erl, T., Kurtagic, A., Wilhelmsen, H.: Designing Services for Windows Azure. MSDN Magazine (2010), http://msdn.microsoft.com/en-us/magazine/ee335719.aspx
- 21.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
- 22.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)Google Scholar
- 23.Alexander, C., et al.: A Pattern Language. Towns, Buildings, Construction. Oxford University Press (1977)Google Scholar
- 24.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)Google Scholar
- 25.Manns, M.L., Rising, L.: Fearless Change: Patterns for Introducing new Ideas. Addison-Wesley, Boston (2005)Google Scholar
- 26.Yahoo! Inc.: Yahoo! Design Pattern Library. Online Resource (2011), http://developer.yahoo.com/ypatterns/
- 27.Harrison, N.B., Avgeriou, P., Zdun, U.: Using Patterns to Capture Architectural Decisions. IEEE Software 24(4), 38–45 (2007)CrossRefGoogle Scholar
- 28.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 Google Scholar