Advertisement

An approach to automatically detect problems in restructured deployment models based on formalizing architecture and design patterns

  • Karoline SaatkampEmail author
  • Uwe Breitenbücher
  • Oliver Kopp
  • Frank Leymann
Special Issue Paper
  • 4 Downloads

Abstract

For the automated deployment of applications, technologies exist which can process topology-based deployment models that describes the application’s structure with its components and their relations. The topology-based deployment model of an application can be adapted for the deployment in different environments. However, the structural changes can lead to problems, which had not existed before and prevent a functional deployment. This includes security issues, communication restrictions, or incompatibilities. For example, a formerly over the internal network established insecure connection leads to security problems when using the public network after the adaptation. In order to solve problems in adapted deployment models, first the problems have to be detected. Unfortunately, detecting such problems is a highly non-trivial challenge that requires deep expertise about the involved technologies and the environment. In this paper, we present (1) an approach for detecting problems in deployment models using architecture and design patterns and (2) the automation of the detection process by formalizing the problem a pattern solves in a certain context. We validate the practical feasibility of our approach by a prototypical implementation for the automated problem detection in TOSCA topologies.

Keywords

Topology-based deployment model Patterns Problem detection TOSCA Logic programming Prolog 

Notes

Acknowledgements

This work was partially funded by the BMWi projects IC4F (01MA17008G) and SmartOrchestra (01 MD16001F) and the German Research Foundation (DFG) Project ADDCompliance (636503).

References

  1. 1.
    Alexander C, Ishikawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, OxfordGoogle Scholar
  2. 2.
    Arnold W, Eilam T, Kalantar M, Konstantinou AV, Totok AA (2007) Pattern based SOA deployment. In: Proceedings of the fifth international conference on service-oriented computing. Springer, New York, pp 1–12Google Scholar
  3. 3.
    Bergenti F, Poggi A (2002) Improving UML designs using automatic design pattern detection. World Scientific, Singapore, pp 771–784Google Scholar
  4. 4.
    Bergmayr A, Breitenbücher U, Ferry N, Rossini A, Solberg A, Wimmer M, Kappel G, Leymann F (2018) A systematic review of cloud modeling languages. ACM Comput. Surv. (CSUR) 51(1):22:1–22:38CrossRefGoogle Scholar
  5. 5.
    Breitenbücher U (2016) Eine musterbasierte Methode zur Automatisierung des Anwendungsmanagements. Dissertation, University of Stuttgart, Faculty 5Google Scholar
  6. 6.
    Breitenbücher U, Binz T, Kopp O, Leymann F (2013) Pattern-based runtime management of composite cloud applications. In: Proceedings of the 3rd international conference on cloud computing and services science. SciTePress, pp 475–482Google Scholar
  7. 7.
    Breitenbücher U, Binz T, Kopp O, Leymann F, Wettinger J (2013) Integrated cloud application provisioning: interconnecting service-centric and script-centric management technologies. In: On the move to meaningful internet systems. Springer, New York, pp 130–148Google Scholar
  8. 8.
    Breitenbücher U, Binz T, Kopp O, Leymann F (2014) Automating cloud application management using management idioms. In: Proceedings of the 6th international conferences on pervasive patterns and applications. Xpert Publishing Services, Wilmington, pp 60–69Google Scholar
  9. 9.
    Breitenbücher U, Binz T, Kopp O, Leymann F, Wieland M (2014) Context-aware cloud application management. In: Proceedings of the 4th international conference on cloud computing and services science. SciTePress, pp 499–509Google Scholar
  10. 10.
    Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture, volume 1: a system of patterns. Wiley, New YorkGoogle Scholar
  11. 11.
    Clocksin WF, Mellish CS (2003) Programming in prolog. Springer, New YorkCrossRefzbMATHGoogle Scholar
  12. 12.
    Cortellessa V, Marco AD, Trubiani C (2014) An approach for modeling and detecting software performance antipatterns based on first-order logics. Softw. Syst. Model. 13(1):391–432CrossRefGoogle Scholar
  13. 13.
    Di Martino B, Esposito A (2016) A rule-based procedure for automatic recognition of design patterns in uml diagrams. Softw. Pract. Exp. 46(7):983–1007CrossRefGoogle Scholar
  14. 14.
    Eilam T, Kalantar M, Konstantinou A, Pacifici G, Pershing J, Agrawal A (2006) Managing the configuration complexity of distributed applications in Internet data centers. Commun. Mag. 44(3):166–177CrossRefGoogle Scholar
  15. 15.
    Endres C, Breitenbücher U, Falkenthal M, Kopp O, Leymann F, Wettinger J (2017) Declarative vs. imperative: two modeling patterns for the automated deployment of applications. In: Proceedings of the 9th international conference on pervasive patterns and applications. Xpert Publishing Services, Wilmington, pp 22–27Google Scholar
  16. 16.
    Falkenthal M, Barzen J, Breitenbücher U, Fehling C, Leymann F, Hadjakos A, Hentschel F, Schulze H (2015) Leveraging pattern application via pattern refinement. In: Proceedings of the international conference on pursuit of pattern languages for societal change (epublication) Google Scholar
  17. 17.
    Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, New YorkCrossRefGoogle Scholar
  18. 18.
    Fontana FA, Zanoni M (2011) A tool for design pattern detection and software architecture reconstruction. Inf Sci 181(7):1306–1324CrossRefGoogle Scholar
  19. 19.
    Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, BostonzbMATHGoogle Scholar
  20. 20.
    Guth J, Leymann F (2018) Towards pattern-based rewrite and refinement of application architectures. In: Proceedings of the 12th advanced summer school on service oriented computing, IBM Research DivisionGoogle Scholar
  21. 21.
    Haitzer T, Zdun U (2015) Semi-automatic architectural pattern identification and documentation using architectural primitives. J Syst Softw 102:35–57CrossRefGoogle Scholar
  22. 22.
    Hohpe G, Woolf B (2004) Enterprise integration patterns: designing, building, and deploying messaging solutions. Addison-Wesley Professional, BostonGoogle Scholar
  23. 23.
    Jamshidi P, Pahl C, Chinenyeze S, Liu X (2014) Cloud migration patterns: a multi-cloud service architecture perspective. In: Service-oriented computing—ICSOC 2014 workshops. Springer, Berlin, pp 6–19Google Scholar
  24. 24.
    Kampffmeyer H, Zschaler S (2007) Finding the pattern you need: the design pattern intent ontology. In: International conference on model driven engineering languages and systems. Springer, New York, pp 211–225Google Scholar
  25. 25.
    Kim DK, Khawand CE (2007) An approach to precisely specifying the problem domain of design patterns. J Vis Lang Comput 18(6):560–591CrossRefGoogle Scholar
  26. 26.
    Kopp O, Binz T, Breitenbücher U, Leymann F (2013) Winery—a modeling tool for TOSCA-based cloud applications. In: Proceedings of the 11th international conference on service-oriented computing. Springer, New York, pp 700–704Google Scholar
  27. 27.
    Lim DK, Lu L (2006) Inference of design pattern instances in UML models via logic programming. In: 11th IEEE international conference on engineering of complex computer systems, IEEE, pp 10–29Google Scholar
  28. 28.
    Meszaros G, Doble J (1997) MetaPatterns: a pattern language for pattern writing. In: Proceedings of international conference on pattern languages of program design, pp 164–200Google Scholar
  29. 29.
    OASIS (2013) Topology and orchestration specification for cloud applications (TOSCA) Version 1.0Google Scholar
  30. 30.
    OASIS (2016) TOSCA simple profile in YAML Version 1.0Google Scholar
  31. 31.
    Saatkamp K, Breitenbücher U, Kopp O, Leymann F (2017) Topology splitting and matching for multi-cloud deployments. In: Proceedings of the 7th international conference on cloud computing and services science. SciTePress, pp 247–258Google Scholar
  32. 32.
    Saatkamp K, Breitenbücher U, Kopp O, Leymann F (2018) Application scenarios for automated problem detection in TOSCA topologies by formalized patterns. In: Proceedings of the 12th advanced summer school on service oriented computing, IBM Research DivisionGoogle Scholar
  33. 33.
    Schumacher M, Fernandez-Buglioni E, Hybertson D, Buschmann F, Sommerlad P (2006) Security patterns: integrating security and systems engineering. Wiley, New YorkGoogle Scholar
  34. 34.
    Strauch S, Andrikopoulos V, Breitenbücher U, Sáez SG, Kopp O, Leymann F (2013) Using patterns to move the application data layer to the cloud. In: Proceedings of the 5th international conference on pervasive patterns and applications. Xpert Publishing Services, pp 26–33Google Scholar
  35. 35.
    Taibi T, Ngo DCL (2003) Formal specification of design patterns—a balanced approach. J Object Technol 2(4):127–140CrossRefGoogle Scholar
  36. 36.
    Wellhausen T, Fiesser A (2012) How to write a pattern? A rough guide for first-time pattern authors. In: Proceedings of the 16th European conference on pattern languages of programs. ACMGoogle Scholar
  37. 37.
    Zdun U, Avgeriou P (2005) Modeling architectural patterns using architectural primitives. In: Proceedings of the 20th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications. ACM, pp 133–146Google Scholar

Copyright information

© Springer-Verlag GmbH Germany, part of Springer Nature 2019

Authors and Affiliations

  • Karoline Saatkamp
    • 1
    Email author
  • Uwe Breitenbücher
    • 1
  • Oliver Kopp
    • 1
  • Frank Leymann
    • 1
  1. 1.Institute of Architecture of Application Systems (IAAS)StuttgartGermany

Personalised recommendations