Skip to main content
Log in

Architectural refactoring for the cloud: a decision-centric view on cloud migration

  • Published:
Computing Aims and scope Submit manuscript

Abstract

Unlike code refactoring of programs, architectural refactoring of systems is not commonly practiced yet. However, legacy systems typically have to be refactored when migrating them to the cloud; otherwise, these systems may run in the cloud, but cannot fully benefit from cloud properties such as elasticity. One reason for the lack of adoption of architectural refactoring is that many of the involved artefacts are intangible—architectural refactoring therefore is harder to grasp than code refactoring. To overcome this inhibitor, we take a task-centric view on the subject and introduce an architectural refactoring template that highlights the architectural decisions to be revisited when refactoring application architectures for the cloud; in this approach, architectural smells are derived from quality stories. We also present a number of common architectural refactorings and evaluate existing patterns regarding their cloud affinity. The final contribution of this paper is the identification of an initial catalog of architectural refactorings for cloud application design. This refactoring catalog was compiled from the cloud patterns literature as well as project experiences. Cloud knowledge and supporting templates have been validated via action research and implementation in cooperation with practitioners.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

References

  1. Ali Babar, M., Dingsøyr, T., Lago, P., van Vliet, H. (eds.) Software architecture knowledge management: theory and practice. Springer-Verlag (2009)

  2. Bass, L., Clements, P., Kazman, R.: Software architecture in practice, 2nd edn. Addison Wesley (2003)

  3. Bisig, C.: Ein werkzeugunterstütztes Knowledge Repository für Architectural Refactoring. Masters thesis, HSR Hochschule für Technik Rapperswil (2016). https://github.com/bisigc/art

  4. Booch. G.: On design. https://www.ibm.com/developerworks/community/blogs/gradybooch/entry/on_design

  5. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-oriented software architecture—a system of patterns. Wiley (1996)

  6. Cohn, M.: User stories applied. Addison Wesley (2004)

  7. Doodle Blog.: Doodle’s technology landscape. http://en.blog.doodle.com/2011/04/14/doodles-technology-landscape/ and http://en.blog.doodle.com/2013/11/18/doodles-technology-landscape-2

  8. Fairbanks, G.: What agilists should know about software architecture. http://georgefairbanks.com/blog/hangout-what-agilists-should-know-about-software-architecture/

  9. Fehling, C., Leymann, F., Retter R., Schupeck, W., Arbitter, P.: Cloud computing patterns. Springer (2014)

  10. Fowler M.: http://martinfowler.com/bliki/DefinitionOfRefactoring.html

  11. Fowler, M.: Patterns of enterprise application architecture. Addison Wesley (2003)

  12. Furda, A., Fidge C., Barros A., Zimmermann, O.: Re-engineering data-centric information systems for the cloud—a method and architectural patterns promoting multi-tenancy, book chapter accepted for Mistrik, I., et al, SABDC, Elsevier (2017) (to appear)

  13. Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: why reuse is still so hard. IEEE Softw 26(4) (2009)

  14. Gessert F., et al.: NoSQL database systems: a survey and decision guidance. In: Proc. Of SummerSoC 2016, Computer Science—Research and Development, Springer (to appear)

  15. Haberle, T., Charissis, L., Fehling, C., Nahm, J., Leymann, F.: The connected car in the cloud: a platform for prototyping telematics services. IEEE Softw 32(6) (2015)

  16. Höllwarth, T. (ed) Migrating to the cloud. http://www.cloud-migration.eu/en.html

  17. Hohpe, G., Woolf B.: Enterprise integration patterns. Addison Wesley (2004)

  18. ISO/IEC/IEEE, Systems and software engineering—architecture description, ISO/IEC/IEEE 42010:2011(E) (2011)

  19. Jamshidi, P.: Cloud migration patterns: a multi-cloud architectural perspective. http://de.slideshare.net/pooyanjamshidi/cloud-migrationpatterns

  20. Josuttis, N.: SOA in practice. O’Reilly Media (2007)

  21. Julisch, K., Suter, C., Woitalla T., Zimmermann, O.: Compliance by design—bridging the chasm between auditors and IT architects. In: Computers and Security, vol. 30, Issue 6–7. Elsevier (2011)

  22. Kelly, F.: AWS migration patterns. http://java.dzone.com/articles/aws-migration-patterns

  23. Kerievsky, J.: Refactoring to patterns. Addison Wesley (2014)

  24. Kruchten, P.: The 4 + 1 view model of architecture. IEEE Software, vol. 12, number 6 (1995)

  25. Kruchten, P.: Contextualizing Agile Software Development. J. Softw. Maintenance Evol: Res. Pract 25(4):351–361 (2011)

  26. Rozanski, N., Woods, E.: Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison Wesley (2005)

  27. Stal, M.: Software Architecture Refactoring, OOP and OOPSLA tutorials and blog post, via; http://www.sigs.de/download/oop_08/Stal%20Mi3-4.pdf

  28. Stal, M.: Refactoring Software architectures. In: Babar, A., Brown, A.W., Mistrik, I. (eds.) Agile Software Architecture. Morgan Kaufman (2014)

  29. Strauch, S., Andrikopoulos, V., Karastoyanova, D., Leymann, F., Nachev, N., Staebler, A.: Migrating enterprise applications to the cloud: methodology and evaluation. In: International Journal of Big Data Intelligence, vol. 1(3). Perpetual Innovation Media Pvt. Ltd. (2014)

  30. Widmer, T.: Unleashing the power of refactoring. Eclipse Magazine, July 2006 (2006)

  31. Wilkes, L.: Application migration patterns for the service oriented cloud, CBDI. http://everware-cbdi.com/ampsoc

  32. Zimmermann O., Architectural refactoring—a task-centric view on software evolution. IEEE Softw 32(2) (2015)

  33. Zimmermann, O.: Architectural refactoring and cloud computing aus der Sicht des Anwendungsarchitekten, OOP Presentations, 2014. English presentation material available from http://www.ifs.hsr.ch/Architectural-Refactoring-for.12044.0.html?&L=4

  34. Zimmermann O, Miksovic C, Küster J.: Reference architecture, metamodel and modeling principles for architectural knowledge management in information technology services. J. Syst. Softw., Elsevier. 85(9):2014–2033 (2012)

  35. Zimmermann, O. Wegmann, L., Koziolek, H., Goldschmidt, T.: Architectural decision guidance across projects. In: Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 85–92 (2015). IEEE Computer Society

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Olaf Zimmermann.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zimmermann, O. Architectural refactoring for the cloud: a decision-centric view on cloud migration. Computing 99, 129–145 (2017). https://doi.org/10.1007/s00607-016-0520-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-016-0520-y

Keywords

Mathematics Subject Classification

Navigation