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.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
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.
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
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley. http://www.eaipatterns.com/ (2003)
Gamma, E., Helm, R., Johnson, R.: Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
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)
Krafzig, D., Banke, K., Slama, D.: Enterprise SOA. Prentice Hall, Indianapolis (2005)
Chappel, D.: Enterprise Service Bus. O’Reilly (2004)
Rohnert, H., Sommerlad, P., Stal, M., Buschmann, F., Meunier, R.: Pattern-Oriented Software Architecture. Wiley, Chichester (1996)
Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, (2002)
Yahoo! Design Pattern Library:. http://developer.yahoo.com/ypatterns/
Amazon.com: Elastic Compute Cloud (EC2). http://aws.amazon.com/ec2/
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)
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)
Amazon.com: Amazon Simple Queue Service (Amzon SQS). http://aws.amazon.com/sqs/
Salesforce: Force. http://www.force.com/
Salesforce: CRM software & online CRM system. http://www.salesforce.com/
Microsoft.: Windows Azure. http://www.windowsazure.com/
Amazon.com: Virtual Private Cloud (VPC). http://aws.amazon.com/vpc/
Apache Foundation: ServiceMix. http://servicemix.apache.org/
Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News 33, 51–59 (2002)
Fielding, R.T., Taylor, R.N.: Principled design of the modern web architecture. ACM Trans. Internet Tech. 2(2), 115–150 (2002)
Leymann, F., Roller, D.: Production Work Flow: Concepts and Techniques. Prentice Hall (1999)
Varia, J.: Cloud architectures. Technical report, Amazon Web Services, June 2008
The application/json Media Type for JavaScript Object Notation (JSON). http://www.json.org/ (2006). Accessed June 2006
Apache Foundation: Couchdb. http://couchdb.apache.org/
Silberschatz, A., Korth, H.F., Sudarshan, S.: Database System Concepts. McGraw-Hill Professional (2010)
Elmasri, R., Navathe, S.: Fundamentals of Database Systems. Addison Wesley (2010)
IBM: DB2 database software. http://www.ibm.com/software/data/db2/
Oracle: Database 11g. http://www.oracle.com/products/database/
Oracle: MySQL. http://www.mysql.com/
10gen: Mongodb. http://www.mongodb.org/
Tanenbaum, A.S., van Steen, M.: Distributed Systems Principles and Paradigms, 2nd edn. Prentice Hall (2006)
Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing. Morgan Kaufmann, Burlington (2009)
Vogels, W.: Eventually consistent. Commun. ACM 52, 40–44 (2009)
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
Amazon.com: Amazon Web Services (AWS). http://aws.amazon.com/
Apache Foundation: Apache camel. http://camel.apache.org/
IBM: WebSphere MQ. http://www.ibm.com/software/integration/wmq/
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
Chappell, D.A., Monson-Haefel, R.: Java Message Service. O’Reilly, (2000)
Amazon.com: Amazon Simple Notification Service FAQs: how many times will a subscriber receive each message? http://aws.amazon.com/sns/faqs/#44
Extensible markup language (xml) 1.0. http://www.w3.org/TR/xml/ (2006). Accessed Aug 2006
SOAP version 1.2. http://www.w3.org/TR/soap/ (2007). Accessed Apr 2007
Cheesman, J., Daniels, J.: UML Components: A Simple Process for Specifying Component-Based Software. Addison-Wesley, Boston (2001)
Eeles, P., Cripps, P.: The Process of Software Architecting. Addison-Wesley (2009)
Daigneau, R.: Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley, Upper Saddle River (2011)
Youngs, R., Redmond-Pyle, D., Spaas, P., Kahan, E.: A standard for architecture description. IBM Syst. J. 38, 32–50 (1999)
Varia J.: Architecting for the cloud: best practices. Technical report, Amazon Web Services, May 2010
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)
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)
T-Systems: Process & service platform flexible business processes from the cloud. http://www.t-systems.com/innovations/uti/824042 (2012)
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
Business process model and notation (BPMN) version 2.0. http://www.omg.org/spec/BPMN/2.0/ (2011)
Web services description language (WSDL) version 2.0. http://www.w3.org/TR/wsdl20/ (2007)
Fielding, R.T.: Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California (2000)
Rodriguez, A.: Restful web services: the basics. Technical report, IBM developerWorks. https://www.ibm.com/developerworks/webservices/library/ws-restful/ (2008). Accessed Nov 2008
Tatnall, A. (ed.): Web Portals: The New Gateways to Internet Information and Services. IGI Publishing, Hershey (2005)
Google: Google Web Toolkit. http://developers.google.com/web-toolkit/
Garrett, J.J.: Ajax: a new approach to web applications. http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications (2005). Accessed Feb 2005
Yahoo!: Yahoo pipes. http://pipes.yahoo.com/pipes/
Yahoo!: Yahoo widgets. http://widgets.yahoo.com/
Mahemoff, M.: Ajax Design Patterns. O’Reilly, Sebastopol (2006)
Gross, C.: Ajax Patterns and Best Practices. Apress, Berkeley (2006)
Chappell, D.: The windows azure programming model. http://www.windowsazure.com/en-us/develop/net/other-resources/white-papers/ (2010). Accessed Oct 2010
Amazon.com: Amazon EC2 spot instances. http://aws.amazon.com/ec2/spot-instances/
Henderson, C.: Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications. O’Reilly, Sebastopol (2006)
Fowler, M.: Data access routines. IEEE Software 20, 96–98 (2003)
Chong, F., Carraro, G.: Architecture strategies for catching the long tail. Technical report, Microsoft. http://msdn.microsoft.com/en-us/library/aa479069.aspx (2006)
San Francisco Municipal Transportation Agency (SFMTA): SFpark. http://sfpark.org
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
Perry, M., Balachandran, M., Plata, J., Solano, P., Thomas, P.: MQSeries Programming Patterns. IBM Redbook. http://www.redbooks.ibm.com/redbooks/pdfs/sg246506.pdf
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)
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
National Oceanic and Atmospheric Administration: National digital forecast database (NDFD) simple object access protocol (SOAP) web service. http://graphical.weather.gov/xml/
Jacobs, D., Aulbach, S.: Ruminations on multi-tenant databases. In: Proceedings of the Conference on Business, Technology, and Web (2007)
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)
WSO2: WSO2 Cloud Services Gateway. http://wso2.com/cloud/connectors/services-gateway/
Chappell, D.A.: Introducing OData: Data Access for the Web, the cloud, mobile devices, and more. Microsoft Whitepaper, May 2011
Microsoft: How to use the service bus relay service. http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/
Author information
Authors and Affiliations
Rights 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)