Abstract
Despite the research and standardization efforts carried out both by academia and commercial enterprises, the composition of existing cloud services which fully satisfy customers’ requirements is still a complex and tricky task. This situation is due to the high number of cloud services currently available on the market, which either expose non-standard interfaces or implement different standards, according to their specific objective. As in the past design patterns have been applied to software design to bring order and help developers in better building, composing and reusing their application, nowadays cloud patterns offer the opportunity to leverage best practices in services composition to ease the design and deployment of cloud-oriented applications. However, due to differences in semantics which affect services’, operations’ and parameters’ descriptions, cloud patterns alone cannot solve the cloud service composition problem. In this paper a methodology for the discovery and composition of cloud services, guided by cloud patterns, is presented. Such a methodology is supported by semantic Web technologies, such as OWL, OWL-S and SPARQL, to solve incongruence between interfaces’ and parameters’ descriptions, and to automatize the whole composition process.
Similar content being viewed by others
References
AWS Cloud Design Patterns (2015). http://en.clouddesignpattern.org. Accessed 03 Feb 2016
Betts D, Homer A, Jezierski A (2013) Moving applications to the cloud on Windows Azure. Patterns & Practices. Microsoft Developer Guidance, Microsoft, Redmond, Washington. https://books.google.it/books?id=Z1IYmgEACAAJ
Bohn RB et al (2011) NIST cloud computing reference architecture. In: 2011 IEEE world congress on services (SERVICES). IEEE, pp 594–596
Choy E, Hwang J (2006) Service-oriented design patterns. In: Proceedings of workshop on introducing service-oriented computing WISOA 2006 Tempe, September 2006, Citeseer, p 23
Cloud Computing Patterns (2015). http://www.cloudcomputingpatterns.org/. Accessed 03 Feb 2016
Cloud Patterns (2015). http://cloudpatterns.org. Accessed 03 Feb 2016
Committee OTT (2013) Topology and orchestration specification for cloud applications (TOSCA)—committee specification 01. http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.html
Council CSC (2013) Migrating applications to public cloud services: roadmap for success. http://www.cloudstandardscustomercouncil.org/Migrating-Apps-to-the-Cloud-Final.pdf. Document retrieved on 03 Feb 2016
Cretella G, Di Martino B (2014) A semantic engine for porting applications to the cloud and among clouds. doi:10.1002/spe.2304
Di Martino B et al (2013) Semantic and agnostic representation of cloud patterns for cloud interoperability and portability. In: IEEE 5th international conference on cloud computing technology and science (CloudCom), 2013, vol 2. IEEE, pp 182–187
Di Martino B, Esposito A, Cretella G (2015) Semantic representation of cloud patterns and services with automated reasoning to support cloud application portability. doi:10.1109/TCC.2015.2433259
Dietrich J, Elgar C (2007) An ontology based representation of software design patterns. In: Design Patterns Formalization Techniques, Igi Global, pp 258–579
Dm B, G C (2013) Semantic technology for supporting software portability and interoperability in the cloud-contributions from the mOSAIC Project. In: Cloud computing and big data, vol 23, pp 66–78. doi:10.3233/978-1-61499-322-3-66. http://dx.medra.org/10.3233/978-1-61499-322-3-66
Erich G, Richard H, Ralph J, John V (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. ISBN 0-201-63361-2
Erl T (2009) SOA design patterns, 1st edn. Prentice Hall PTR, Upper Saddle River
Erl T, Cope R, Naserpour A (2015) Cloud computing design patterns. Prentice Hall Press, Englewood Cliffs
Gangemi A, Presutti V (2009) Ontology design patterns. In: Staab S, Studer R (eds) Handbook on ontologies. Springer, Berlin, pp 221–243
Getting Started with AWS: Hosting a Web App (2015). http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/web-app-hosting-intro.html
Gutierrez-Garcia J, Sim K (2013) Agent-based cloud service composition. Appl Intell 38(3):436–464. doi:10.1007/s10489-012-0380-x
Homer A, Sharp J, Brader L, Narumoto M, Swanson T (2014) Cloud design patterns: prescriptive architecture guidance for cloud applications. Patterns & Practices. Microsoft Developer Guidance, Microsoft, Redmond, Washington. https://books.google.it/books?id=98_PoAEACAAJ
Leymann CFF, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns, vol 1. Springer, Wien. doi:10.1007/978-3-7091-1568-8. http://www.springer.com/it/book/9783709115671
Martin D et al (2004) OWL-S: semantic markup for web services
McGuinness DL, Van Harmelen F (2004) OWL web ontology language overview. W3C Recomm 10(10):2004
Microsoft Azure Patterns (2015). http://msdn.microsoft.com/en-us/library/dn568099.aspx. Accessed 03 Feb 2016
Openstack Services (2015). http://www.openstack.org/software. Accessed 03 Feb 2016
Stateless Component Pattern (2015). http://www.cloudcomputingpatterns.org/Stateless_Component. Accessed 03 Feb 2016 and available in [Leymann et al. (2014) Leymann, Retter, Schupeck, and Arbitter]
The Data Access Component Pattern (2015). http://www.cloudcomputingpatterns.org/Data_Access_Component. Accessed 03 Feb 2016 and available in [Leymann et al. (2014) Leymann, Retter, Schupeck, and Arbitter]
The Processing Component Pattern (2015). http://www.cloudcomputingpatterns.org/Processing_Component. Accessed 03 Feb 2016 and available in [Leymann et al. (2014) Leymann, Retter, Schupeck, and Arbitter]
The Scale Out Pattern (2015). http://en.clouddesignpattern.org/index.php/CDP:Scale_Out_Pattern. Accessed 03 Feb 2016
The Scale Up Pattern (2015). http://en.clouddesignpattern.org/index.php/CDP:Scale_Up_Pattern. Accessed 03 Feb 2016
The State Sharing Pattern (2015). http://en.clouddesignpattern.org/index.php/CDP:State_Sharing_Pattern. Accessed 03 Feb 2016
The User Interface Component Pattern (2015). http://www.cloudcomputingpatterns.org/User_Interface_Component
Three-Tier Cloud Application Pattern (2015). http://www.cloudcomputingpatterns.org/Three-Tier_Cloud_Application. Accessed 03 Feb 2016 and available in [Leymann et al. (2014) Leymann, Retter, Schupeck, and Arbitter]
Venticinque S, Aversa R, Tasquier L, B Di Martino (2013) Agent based application tools for cloud provisioning and management. In: Proceedings of third international conference on cloud computing, vol 112, pp 32–42. doi:10.1007/978-3-319-03874-2_4. http://dx.medra.org/10.1007/978-3-319-03874-2_4
Windows Azure Application Patterns (2015). http://blogs.msdn.com/b/jmeier/archive/2010/09/11/windows-azure-application-patterns.aspx
Zeng C, Guo X, Ou W, Han D (2009) Cloud computing service composition and search based on semantic. In: Jaatun MG, Zhao G, Rong C (eds) IEEE international conference on cloud computing. Springer, Berlin, pp 290–300
Zou G, Chen Y, Yang Y, Huang R, Xu Y (2010) Ai planning and combinatorial optimization for web service composition in cloud computing. In: Proceedings of the international conference on cloud computing and virtualization, pp 1–8
Acknowledgments
This study was funded by European Community’s Seventh Framework Programme (FP7/2007-2013) under Grant Agreement No 256910 (mOSAIC Project) and the ARTEMIS Joint Undertaking under Grant Agreement NÂ 332830.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
Beniamino Di Martino is a member of the CINI (Consorzio Interuniversitario Nazionale per l’Informatica) and Cineca (Consorzio Interuniversitario per il Calcolo Automatico dell’Italia Nord Orientale) Administration Boards.
Ethical approval
This article does not contain any studies with human participants or animals performed by any of the authors.
Additional information
Communicated by F. Pop, C. Dobre, A. Costan.
Rights and permissions
About this article
Cite this article
Di Martino, B., Cretella, G. & Esposito, A. Cloud services composition through cloud patterns: a semantic-based approach. Soft Comput 21, 4557–4570 (2017). https://doi.org/10.1007/s00500-016-2264-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00500-016-2264-1