Skip to main content

Sommelier: A Tool for Validating TOSCA Application Topologies

  • Conference paper
  • First Online:
Model-Driven Engineering and Software Development (MODELSWARD 2017)

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.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and 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

Institutional subscriptions

Notes

  1. 1.

    A more detailed, self-contained introduction to TOSCA can be found in [9].

  2. 2.

    https://mariadb.com/.

  3. 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. 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. 5.

    A node template’s requirement assignment corresponds to a node type’s requirement definitions if they have the same name req_name.

  6. 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. 7.

    Given that t and \(t'\) are TOSCA types, \(t'\) extends t if \(t'\) is (directly or indirectly) derived_from t [4].

  8. 8.

    All TOSCA relationship types should be derived (directly or indirectly) from the tosca.relationships.Root relationship type [4].

  9. 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. 10.

    All TOSCA capability types should be derived (directly or indirectly) from the tosca.capability.Root capability type [4].

  11. 11.

    The source code of Sommelier is publicly available on GitHub at https://github.com/di-unipi-socc/Sommelier.

  12. 12.

    https://docs.python.org/3/tutorial/datastructures.html.

  13. 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. 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

  1. 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)

    Article  Google Scholar 

  2. 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

    Chapter  Google Scholar 

  3. 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)

    Google Scholar 

  4. 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

  5. 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

    Chapter  Google Scholar 

  6. 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)

    Google Scholar 

  7. 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

  8. OpenStack: TOSCA Parser (2016). https://github.com/openstack/tosca-parser

  9. 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

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. Geraci, A.: IEEE Standard Computer Dictionary: Compilation of IEEE Standard Computer Glossaries. IEEE Press, New York (1991)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Brooklyn-tosca (2016). https://github.com/cloudsoft/brooklyn-tosca

  15. 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

    Chapter  Google Scholar 

  16. Alien4cloud (2016). https://github.com/alien4cloud/alien4cloud

  17. OASIS: Topology and Orchestration Specification for Cloud Applications (2013). http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.pdf

  18. 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)

    Google Scholar 

  19. 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

    Chapter  Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. Speck, A., Pulvermuller, E., Jerger, M., Franczyk, B.: Component composition validation. Int. J. Appl. Math. Comput. Sci. 12, 581–590 (2002)

    MATH  Google Scholar 

  22. 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)

    Google Scholar 

  23. 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

    Chapter  MATH  Google Scholar 

  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)

    Google Scholar 

  25. 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)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Jacopo Soldani .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics