Abstract
TOSCA is an OASIS standard for specifying cloud applications and automating their management. The topology of a cloud application can be described as a typed and directed graph. The latter can then be automatically processed by so-called TOSCA engines to automate the deployment and management of the described application on cloud platforms. In this paper we first illustrate the conditions ensuring the validity of a TOSCA application topology. We then introduce Sommelier, an open-source validator of TOSCA application topologies based on such validity conditions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A more detailed, self-contained introduction to TOSCA can be found in [9].
- 2.
- 3.
We first systematically read the TOSCA specification [4], and we excerpted all portions that describe how to specify interconnection constraints. In the following, we shall recall all such portions, and we illustrate how to directly map each of them to a formal condition that must be verified to ensure the validity of a TOSCA application topology.
- 4.
Since the focus of this paper is on validating inter-component dependencies in TOSCA application topologies, and since occurrences is not giving any constraint concerning inter-component dependencies, we shall not formalise the trivial condition to validate occurrences.
- 5.
A node template’s requirement assignment corresponds to a node type’s requirement definitions if they have the same name req_name.
- 6.
Since we focus on design-time, we shall not consider all constraints on how to automatically complete the topology of a TOSCA application (viz., those constraining the types of node and relationship that can be used to automatically fulfill a requirement at run-time). Anyway, our approach can help driving the automatic completion of TOSCA application topologies, as well as to double-check that automatically completed topologies are valid.
- 7.
Given that t and \(t'\) are TOSCA types, \(t'\) extends t if \(t'\) is (directly or indirectly) derived_from t [4].
- 8.
All TOSCA relationship types should be derived (directly or indirectly) from the tosca.relationships.Root relationship type [4].
- 9.
Please recall that a relationship is outgoing from a requirement assignment \( r _ a \). The latter can either indicate the specific capability satisfying \( r _ a \), or a node template offering (at least) a capability satisfying \( r _ a \) (see Fig. 5).
- 10.
All TOSCA capability types should be derived (directly or indirectly) from the tosca.capability.Root capability type [4].
- 11.
The source code of Sommelier is publicly available on GitHub at https://github.com/di-unipi-socc/Sommelier.
- 12.
- 13.
The files are developed and maintained by the community around the OpenStack TOSCA parser. They are publicly available at https://github.com/openstack/tosca-parser/tree/master/toscaparser/tests/data. We hereby consider the version of the files available on November 13th, 2016.
- 14.
To run coverage, the coverage-py Python library must be installed on the host. The latter can be installed by executing sudo pip install coverage.
References
Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I., Zaharia, M.: A view of cloud computing. Commun. ACM 53, 50–58 (2010)
Binz, T., Breitenbücher, U., Kopp, O., Leymann, F.: TOSCA: portable automated deployment and management of cloud applications. In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds.) Advanced Web Services, pp. 527–549. Springer, New York (2014). https://doi.org/10.1007/978-1-4614-7535-4_22
Brogi, A., Carrasco, J., Cubo, J., D’Andria, F., Ibrahim, A., Pimentel, E., Soldani, J.: EU Project SeaClouds - adaptive management of service-based applications across multiple clouds. In: CLOSER 2014 - Proceedings of the 4th International Conference on Cloud Computing and Services Science, pp. 758–763. SciTePress (2014)
OASIS: TOSCA Simple Profile in YAML, Version 1.0 (2016). http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/TOSCA-Simple-Profile-YAML-v1.0.pdf
Binz, T., et al.: OpenTOSCA – a runtime for TOSCA-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 692–695. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45005-1_62
Endres, C., Breitenbücher, U., Falkenthal, M., Kopp, O., Leymann, F., Wettinger, J.: Declarative vs. imperative: two modeling patterns for the automated deployment of applications. In: Proceedings of the 9th International Conference on Pervasive Patterns and Applications, pp. 22–27. Xpert Publishing Services (XPS) (2017)
OASIS: Topology and Orchestration Specification for Cloud Applications (TOSCA) Primer (2013). http://docs.oasis-open.org/tosca/tosca-primer/v1.0/tosca-primer-v1.0.pdf
OpenStack: TOSCA Parser (2016). https://github.com/openstack/tosca-parser
Brogi, A., Soldani, J., Wang, P.: TOSCA in a nutshell: promises and perspectives. In: Villari, M., Zimmermann, W., Lau, K.-K. (eds.) ESOCC 2014. LNCS, vol. 8745, pp. 171–186. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44879-3_13
Brogi, A., Di Tommaso, A., Soldani, J.: Validating TOSCA application topologies. In: Pires, L.F., Hammoudi, S., Selic, B., (eds.) Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2017, Porto, Portugal, 19–21 February 2017, pp. 667–678. SciTePress (2017)
Kopp, O., Binz, T., Breitenbücher, U., Leymann, F.: Winery – a modeling tool for TOSCA-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 700–704. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45005-1_64
Geraci, A.: IEEE Standard Computer Dictionary: Compilation of IEEE Standard Computer Glossaries. IEEE Press, New York (1991)
Marchetti, E.: Foreword of the thematic track: ICT verification and validation. In: Proceedings of the 9th International Conference on the Quality of Information and Communications Technology, QUATIC 2014, pp. 208–209. IEEE (2014)
Brooklyn-tosca (2016). https://github.com/cloudsoft/brooklyn-tosca
Brogi, A., et al.: SeaClouds: an open reference architecture for multi-cloud governance. In: Tekinerdogan, B., Zdun, U., Babar, A. (eds.) ECSA 2016. LNCS, vol. 9839, pp. 334–338. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48992-6_25
Alien4cloud (2016). https://github.com/alien4cloud/alien4cloud
OASIS: Topology and Orchestration Specification for Cloud Applications (2013). http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.pdf
Hirmer, P., Breitenbücher, U., Binz, T., Leymann, F.: Automatic topology completion of TOSCA-based cloud applications. In: INFORMATIK 2014. LNI, vol. 232 , pp. 247–258. Gesellschaft für Informatik (GI) (2014)
Brogi, A., Canciani, A., Soldani, J.: Modelling and analysing cloud application management. In: Dustdar, S., Leymann, F., Villari, M. (eds.) ESOCC 2015. LNCS, vol. 9306, pp. 19–33. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24072-5_2
Brogi, A., Canciani, A., Soldani, J., Wang, P.: A petri net-based approach to model and analyze the management of cloud applications. In: Koutny, M., Desel, J., Kleijn, J. (eds.) Transactions on Petri Nets and Other Models of Concurrency XI. LNCS, vol. 9930, pp. 28–48. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-53401-4_2
Speck, A., Pulvermuller, E., Jerger, M., Franczyk, B.: Component composition validation. Int. J. Appl. Math. Comput. Sci. 12, 581–590 (2002)
Caporuscio, M., Inverardi, P., Pelliccione, P.: Compositional verification of middleware-based software architecture descriptions. In: Proceedings of the 26th International Conference on Software Engineering, ICSE 2004, pp. 221–230. IEEE Computer Society (2004)
Wu, Y., Chen, M.-H., Offutt, J.: UML-based integration testing for component-based software. In: Erdogmus, H., Weng, T. (eds.) ICCBSS 2003. LNCS, vol. 2580, pp. 251–260. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-36465-X_24
Autili, M., Inverardi, P., Navarra, A., Tivoli, M.: SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems. In: Proceedings of the 29th International Conference on Software Engineering, ICSE 2007, pp. 784–787. IEEE Computer Society (2007)
Pelliccione, P., Tivoli, M., Bucchiarone, A., Polini, A.: An architectural approach to the correct and automatic assembly of evolving component-based systems. J. Syst. Softw. 81, 2237–2251 (2008)
Acknowledgements
We would like to thank Luca Rinaldi for his valuable help in preparing the battery of unit tests for Sommelier.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Brogi, A., Di Tommaso, A., Soldani, J. (2018). Sommelier: A Tool for Validating TOSCA Application Topologies. In: Pires, L., Hammoudi, S., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2017. Communications in Computer and Information Science, vol 880. Springer, Cham. https://doi.org/10.1007/978-3-319-94764-8_1
Download citation
DOI: https://doi.org/10.1007/978-3-319-94764-8_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-94763-1
Online ISBN: 978-3-319-94764-8
eBook Packages: Computer ScienceComputer Science (R0)