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.
Similar content being viewed by others
Notes
References
Alexander C, Ishikawa S, Silverstein M (1977) A pattern language: towns, buildings, construction. Oxford University Press, Oxford
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–12
Bergenti F, Poggi A (2002) Improving UML designs using automatic design pattern detection. World Scientific, Singapore, pp 771–784
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:38
Breitenbücher U (2016) Eine musterbasierte Methode zur Automatisierung des Anwendungsmanagements. Dissertation, University of Stuttgart, Faculty 5
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–482
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–148
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–69
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–509
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture, volume 1: a system of patterns. Wiley, New York
Clocksin WF, Mellish CS (2003) Programming in prolog. Springer, New York
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–432
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–1007
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–177
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–27
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)
Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, New York
Fontana FA, Zanoni M (2011) A tool for design pattern detection and software architecture reconstruction. Inf Sci 181(7):1306–1324
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Boston
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 Division
Haitzer T, Zdun U (2015) Semi-automatic architectural pattern identification and documentation using architectural primitives. J Syst Softw 102:35–57
Hohpe G, Woolf B (2004) Enterprise integration patterns: designing, building, and deploying messaging solutions. Addison-Wesley Professional, Boston
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–19
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–225
Kim DK, Khawand CE (2007) An approach to precisely specifying the problem domain of design patterns. J Vis Lang Comput 18(6):560–591
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–704
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–29
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–200
OASIS (2013) Topology and orchestration specification for cloud applications (TOSCA) Version 1.0
OASIS (2016) TOSCA simple profile in YAML Version 1.0
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–258
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 Division
Schumacher M, Fernandez-Buglioni E, Hybertson D, Buschmann F, Sommerlad P (2006) Security patterns: integrating security and systems engineering. Wiley, New York
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–33
Taibi T, Ngo DCL (2003) Formal specification of design patterns—a balanced approach. J Object Technol 2(4):127–140
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. ACM
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–146
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).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Saatkamp, K., Breitenbücher, U., Kopp, O. et al. An approach to automatically detect problems in restructured deployment models based on formalizing architecture and design patterns. SICS Softw.-Inensiv. Cyber-Phys. Syst. 34, 85–97 (2019). https://doi.org/10.1007/s00450-019-00397-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00450-019-00397-7