Skip to main content

Cloud Application Architecture Patterns

  • Chapter
  • First Online:
Cloud Computing Patterns

Abstract

This chapter covers architectural patterns that describe how applications have to be designed to benefit from a cloud environment. Additionally, it is described how applications themselves can be offered as configurable cloud services. Having introduced cloud service models (see Sect. 2.3 on Page 39 in Chap. 2) and cloud deployment types (see Sect. 2.4 on Page 54 in Chap. 2), this chapter describes patterns that architects and developers can use to build cloud-native applications, i.e., applications that display the cloud application properties introduced in Sect. 1.2 on Page 5 in Chap. 1. Following the overview, fundamental application architectural patterns cover the architectural principles found in most cloud-native applications to enable the cloud application properties. Application component patterns then specify patterns on how to design and build individual components of a cloud-native application, so that the overall application can be built on top of an elastic infrastructure (78) or elastic platform (81). Multi-tenancy patterns describe how cloud applications and individual components can be shared by multiple customers, so called tenants, on different levels of the application stack. Cloud integration patterns finally describe mechanisms on how to integrate multiple cloud environments or cloud environments and on-premise datacenters as well as applications both in and outside the cloud.

All figures published with kind permission of © The Authors 2014. See list of figures.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 189.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 249.99
Price excludes VAT (USA)
  • Durable hardcover 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley. http://www.eaipatterns.com/ (2003)

  2. Gamma, E., Helm, R., Johnson, R.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  3. Weerawarana, S., Curbera, F., Leymann, F., Storey, T., Ferguson, D.F.: Web Services Platform Architecture: SOAP, WSDL, WS-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging, and More. Prentice Hall, Upper Saddle River (2005)

    Google Scholar 

  4. Krafzig, D., Banke, K., Slama, D.: Enterprise SOA. Prentice Hall, Indianapolis (2005)

    Google Scholar 

  5. Chappel, D.: Enterprise Service Bus. O’Reilly (2004)

    Google Scholar 

  6. Rohnert, H., Sommerlad, P., Stal, M., Buschmann, F., Meunier, R.: Pattern-Oriented Software Architecture. Wiley, Chichester (1996)

    Google Scholar 

  7. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, (2002)

    Google Scholar 

  8. Yahoo! Design Pattern Library:. http://developer.yahoo.com/ypatterns/

  9. Amazon.com: Elastic Compute Cloud (EC2). http://aws.amazon.com/ec2/

  10. Fehling, C., Leymann, F., Retter, R., Schumm, D., Schupeck, W.: An architectural pattern language of cloud-based applications. In: Proceedings of the 18th Conference on Pattern Languages of Programs (PLoP) (2011)

    Google Scholar 

  11. Fehling, C., Ewald, T., Leymann, F., Pauly, M., Rütschlin, J., Schumm, D.: Capturing cloud computing knowledge and experience in patterns. In: Proceedings of the 5th IEEE International Conference on Cloud Computing (CLOUD) (2012)

    Google Scholar 

  12. Amazon.com: Amazon Simple Queue Service (Amzon SQS). http://aws.amazon.com/sqs/

  13. Salesforce: Force. http://www.force.com/

  14. Salesforce: CRM software & online CRM system. http://www.salesforce.com/

  15. Microsoft.: Windows Azure. http://www.windowsazure.com/

  16. Amazon.com: Virtual Private Cloud (VPC). http://aws.amazon.com/vpc/

  17. Apache Foundation: ServiceMix. http://servicemix.apache.org/

  18. Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News 33, 51–59 (2002)

    Article  Google Scholar 

  19. Fielding, R.T., Taylor, R.N.: Principled design of the modern web architecture. ACM Trans. Internet Tech. 2(2), 115–150 (2002)

    Google Scholar 

  20. Leymann, F., Roller, D.: Production Work Flow: Concepts and Techniques. Prentice Hall (1999)

    Google Scholar 

  21. Varia, J.: Cloud architectures. Technical report, Amazon Web Services, June 2008

    Google Scholar 

  22. The application/json Media Type for JavaScript Object Notation (JSON). http://www.json.org/ (2006). Accessed June 2006

  23. Apache Foundation: Couchdb. http://couchdb.apache.org/

  24. Silberschatz, A., Korth, H.F., Sudarshan, S.: Database System Concepts. McGraw-Hill Professional (2010)

    Google Scholar 

  25. Elmasri, R., Navathe, S.: Fundamentals of Database Systems. Addison Wesley (2010)

    Google Scholar 

  26. IBM: DB2 database software. http://www.ibm.com/software/data/db2/

  27. Oracle: Database 11g. http://www.oracle.com/products/database/

  28. Oracle: MySQL. http://www.mysql.com/

  29. 10gen: Mongodb. http://www.mongodb.org/

  30. Tanenbaum, A.S., van Steen, M.: Distributed Systems Principles and Paradigms, 2nd edn. Prentice Hall (2006)

    Google Scholar 

  31. Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing. Morgan Kaufmann, Burlington (2009)

    Google Scholar 

  32. Vogels, W.: Eventually consistent. Commun. ACM 52, 40–44 (2009)

    Article  Google Scholar 

  33. Amazon.com: Amazon Simple Storage Service FAQs: what data consistency model does Amazon S3 employ? http://aws.amazon.com/s3/faqs/#What_data_consistency_model_does_Amazon_S3_employ

  34. Amazon.com: Amazon Web Services (AWS). http://aws.amazon.com/

  35. Apache Foundation: Apache camel. http://camel.apache.org/

  36. IBM: WebSphere MQ. http://www.ibm.com/software/integration/wmq/

  37. Hapner, M., Burridge, R., Sharma, R., Fialli, J., Stout, K.: Java Message Service. Sun Microsystems, 901 San Antonio Road Palo Alto, CA 94303 U.S.A., 1.1 edition. http://download.oracle.com/otn-pub/jcp/7195-jms-1.1-fr-spec-oth-JSpec/jms-1_1-fr-spec.pdf (2002). Accessed Apr 2002

  38. Chappell, D.A., Monson-Haefel, R.: Java Message Service. O’Reilly, (2000)

    Google Scholar 

  39. Amazon.com: Amazon Simple Notification Service FAQs: how many times will a subscriber receive each message? http://aws.amazon.com/sns/faqs/#44

  40. Extensible markup language (xml) 1.0. http://www.w3.org/TR/xml/ (2006). Accessed Aug 2006

  41. SOAP version 1.2. http://www.w3.org/TR/soap/ (2007). Accessed Apr 2007

  42. Cheesman, J., Daniels, J.: UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Boston (2001)

    Google Scholar 

  43. Eeles, P., Cripps, P.: The Process of Software Architecting. Addison-Wesley (2009)

    Google Scholar 

  44. Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley, Upper Saddle River (2011)

    Google Scholar 

  45. Youngs, R., Redmond-Pyle, D., Spaas, P., Kahan, E.: A standard for architecture description. IBM Syst. J. 38, 32–50 (1999)

    Article  Google Scholar 

  46. Varia J.: Architecting for the cloud: best practices. Technical report, Amazon Web Services, May 2010

    Google Scholar 

  47. Zimmermann, O., Milinski, S., Craes, M., Oellermann, F.: Second generation web services-oriented architecture in production in the finance industry. In: Companion to the 19th annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications (OOPSLA) (2004)

    Google Scholar 

  48. Zimmermann, O., Doubrovski, V., Grundler, J., Hogg, K.: Service-oriented architecture and business process choreography in an order management scenario: rationale, concepts, lessons learned. In: Companion to the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA) (2005)

    Google Scholar 

  49. T-Systems: Process & service platform flexible business processes from the cloud. http://www.t-systems.com/innovations/uti/824042 (2012)

  50. Web services business process execution language version 2.0. http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html (2007). Accessed Apr 2007

  51. Business process model and notation (BPMN) version 2.0. http://www.omg.org/spec/BPMN/2.0/ (2011)

  52. Web services description language (WSDL) version 2.0. http://www.w3.org/TR/wsdl20/ (2007)

  53. Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California (2000)

    Google Scholar 

  54. Rodriguez, A.: Restful web services: the basics. Technical report, IBM developerWorks. https://www.ibm.com/developerworks/webservices/library/ws-restful/ (2008). Accessed Nov 2008

  55. Tatnall, A. (ed.): Web Portals: The New Gateways to Internet Information and Services. IGI Publishing, Hershey (2005)

    Google Scholar 

  56. Google: Google Web Toolkit. http://developers.google.com/web-toolkit/

  57. Garrett, J.J.: Ajax: a new approach to web applications. http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications (2005). Accessed Feb 2005

  58. Yahoo!: Yahoo pipes. http://pipes.yahoo.com/pipes/

  59. Yahoo!: Yahoo widgets. http://widgets.yahoo.com/

  60. Mahemoff, M.: Ajax Design Patterns. O’Reilly, Sebastopol (2006)

    Google Scholar 

  61. Gross, C.: Ajax Patterns and Best Practices. Apress, Berkeley (2006)

    Google Scholar 

  62. Chappell, D.: The windows azure programming model. http://www.windowsazure.com/en-us/develop/net/other-resources/white-papers/ (2010). Accessed Oct 2010

  63. Amazon.com: Amazon EC2 spot instances. http://aws.amazon.com/ec2/spot-instances/

  64. Henderson, C.: Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications. O’Reilly, Sebastopol (2006)

    Google Scholar 

  65. Fowler, M.: Data access routines. IEEE Software 20, 96–98 (2003)

    Article  Google Scholar 

  66. Chong, F., Carraro, G.: Architecture strategies for catching the long tail. Technical report, Microsoft. http://msdn.microsoft.com/en-us/library/aa479069.aspx (2006)

  67. San Francisco Municipal Transportation Agency (SFMTA): SFpark. http://sfpark.org

  68. Mizonov, V., Manheim, S.: Windows azure queues and windows azure service bus queues – compared and contrasted. http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx

  69. Perry, M., Balachandran, M., Plata, J., Solano, P., Thomas, P.: MQSeries Programming Patterns. IBM Redbook. http://www.redbooks.ibm.com/redbooks/pdfs/sg246506.pdf

  70. Abbott, M.L., Fisher, M.T.: The Art of Scalability: Scalable Web Architecture, Processes and Organizations for the Modern Enterprise. Addison-Wesley, Upper Saddle River (2009)

    Google Scholar 

  71. Leymann, F., Fehling, C., Mietzner, R., Nowak, A., Dustdar, S.: Moving applications to the cloud: An approach based on application model enrichment. Int. J. Cooperative Info. Syst. 20(3), 307–356 (2011). doi:10.1142/S0218843011002250

    Article  Google Scholar 

  72. National Oceanic and Atmospheric Administration: National digital forecast database (NDFD) simple object access protocol (SOAP) web service. http://graphical.weather.gov/xml/

  73. Jacobs, D., Aulbach, S.: Ruminations on multi-tenant databases. In: Proceedings of the Conference on Business, Technology, and Web (2007)

    Google Scholar 

  74. Guo, C.J., Sun, W., Huang, Y., Wang, Z.H., Gao, B.: A framework for native multi-tenancy application development and management. In: The 9th IEEE International Conference on E-Commerce Technology and the 4th IEEE International Conference on Enterprise Computing, E-Commerce, and E-Services (2007)

    Google Scholar 

  75. WSO2: WSO2 Cloud Services Gateway. http://wso2.com/cloud/connectors/services-gateway/

  76. Chappell, D.A.: Introducing OData: Data Access for the Web, the cloud, mobile devices, and more. Microsoft Whitepaper, May 2011

    Google Scholar 

  77. Microsoft: How to use the service bus relay service. http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Wien

About this chapter

Cite this chapter

Fehling, C., Leymann, F., Retter, R., Schupeck, W., Arbitter, P. (2014). Cloud Application Architecture Patterns. In: Cloud Computing Patterns. Springer, Vienna. https://doi.org/10.1007/978-3-7091-1568-8_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-7091-1568-8_4

  • Published:

  • Publisher Name: Springer, Vienna

  • Print ISBN: 978-3-7091-1567-1

  • Online ISBN: 978-3-7091-1568-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics