Computing

, Volume 99, Issue 2, pp 129–145 | Cite as

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

Article

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.

Keywords

Architectural decisions Architectural patterns Cloud computing Knowledge management Reengineering Refactoring Software evolution and Maintenance 

Mathematics Subject Classification

68N99 

References

  1. 1.
    Ali Babar, M., Dingsøyr, T., Lago, P., van Vliet, H. (eds.) Software architecture knowledge management: theory and practice. Springer-Verlag (2009)Google Scholar
  2. 2.
    Bass, L., Clements, P., Kazman, R.: Software architecture in practice, 2nd edn. Addison Wesley (2003)Google Scholar
  3. 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. 4.
  5. 5.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-oriented software architecture—a system of patterns. Wiley (1996)Google Scholar
  6. 6.
    Cohn, M.: User stories applied. Addison Wesley (2004)Google Scholar
  7. 7.
  8. 8.
    Fairbanks, G.: What agilists should know about software architecture. http://georgefairbanks.com/blog/hangout-what-agilists-should-know-about-software-architecture/
  9. 9.
    Fehling, C., Leymann, F., Retter R., Schupeck, W., Arbitter, P.: Cloud computing patterns. Springer (2014)Google Scholar
  10. 10.
  11. 11.
    Fowler, M.: Patterns of enterprise application architecture. Addison Wesley (2003)Google Scholar
  12. 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)Google Scholar
  13. 13.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural mismatch: why reuse is still so hard. IEEE Softw 26(4) (2009)Google Scholar
  14. 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)Google Scholar
  15. 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)Google Scholar
  16. 16.
    Höllwarth, T. (ed) Migrating to the cloud. http://www.cloud-migration.eu/en.html
  17. 17.
    Hohpe, G., Woolf B.: Enterprise integration patterns. Addison Wesley (2004)Google Scholar
  18. 18.
    ISO/IEC/IEEE, Systems and software engineering—architecture description, ISO/IEC/IEEE 42010:2011(E) (2011)Google Scholar
  19. 19.
    Jamshidi, P.: Cloud migration patterns: a multi-cloud architectural perspective. http://de.slideshare.net/pooyanjamshidi/cloud-migrationpatterns
  20. 20.
    Josuttis, N.: SOA in practice. O’Reilly Media (2007)Google Scholar
  21. 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)Google Scholar
  22. 22.
    Kelly, F.: AWS migration patterns. http://java.dzone.com/articles/aws-migration-patterns
  23. 23.
    Kerievsky, J.: Refactoring to patterns. Addison Wesley (2014)Google Scholar
  24. 24.
    Kruchten, P.: The 4 + 1 view model of architecture. IEEE Software, vol. 12, number 6 (1995)Google Scholar
  25. 25.
    Kruchten, P.: Contextualizing Agile Software Development. J. Softw. Maintenance Evol: Res. Pract 25(4):351–361 (2011)Google Scholar
  26. 26.
    Rozanski, N., Woods, E.: Software systems architecture: working with stakeholders using viewpoints and perspectives. Addison Wesley (2005)Google Scholar
  27. 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. 28.
    Stal, M.: Refactoring Software architectures. In: Babar, A., Brown, A.W., Mistrik, I. (eds.) Agile Software Architecture. Morgan Kaufman (2014)Google Scholar
  29. 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)Google Scholar
  30. 30.
    Widmer, T.: Unleashing the power of refactoring. Eclipse Magazine, July 2006 (2006)Google Scholar
  31. 31.
    Wilkes, L.: Application migration patterns for the service oriented cloud, CBDI. http://everware-cbdi.com/ampsoc
  32. 32.
    Zimmermann O., Architectural refactoring—a task-centric view on software evolution. IEEE Softw 32(2) (2015)Google Scholar
  33. 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. 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)Google Scholar
  35. 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 SocietyGoogle Scholar

Copyright information

© Springer-Verlag Wien 2016

Authors and Affiliations

  1. 1.University of Applied Sciences of Eastern Switzerland (HSR FHO)RapperswilSwitzerland

Personalised recommendations