Skip to main content

CAP-Oriented Design for Cloud-Native Applications

  • Conference paper

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 367))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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)

    Article  Google 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)

    Article  Google 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)

    Article  Google Scholar 

  14. Brewer, E.: CAP Twelve Years Later: How the “Rules” Have Changed. Computer 45(2), 23–29 (2012)

    Article  Google 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)

    Article  Google 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics