[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Software Architectural Migration: An Automated Planning Approach

Published: 23 July 2021 Publication History

Abstract

Software architectural designs are usually changed over time to support emerging technologies and to adhere to new principles. Architectural migration is an important activity that helps to transform the architectural styles applied during a system’s design with the result of modernising the system. If not performed correctly, this process could lead to potential system failures. This article presents an automated approach to refactoring architectural design and to planning the evolution process. With our solution, the architectural design can be refactored, ensuring that system functionality is preserved. Furthermore, the architectural migration process allows the system to be safely and incrementally transformed. We have evaluated our approach with five real-world software applications. The results prove the effectiveness of our approach and identify factors that impact the performance of architectural verification and migration planning. An interesting finding is that planning algorithms generate migration plans that differ in term of their relative efficiency.

References

[1]
Sock Shop. [n.d.]. A Microservices Demo Application. Retrieved from https://microservices-demo.github.io/
[2]
Aakash Ahmad and Muhammad Ali Babar. 2014. A framework for architecture-driven migration of legacy systems to cloud-enabled software. ACM International Conference Proceeding Series.
[3]
Grigoris Antoniou, Grigoris Antoniou, Grigoris Antoniou, Frank Van Harmelen, and Frank Van Harmelen. 2003. Web ontology language: OWL. In Handbook on Ontologies in Information Systems. Springer, 67–92.
[4]
Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2016. Migrating to cloud-native architectures using microservices: An experience report. In Advances in Service-Oriented and Cloud Computing. Springer International Publishing, Cham, 201–215.
[5]
Armin Balalaie, Abbas Heydarnoori, Pooyan Jamshidi, Damian Tamburri, and Theodore Lynn. 2018. Microservices migration patterns. Software: Pract. Exper. 48 (07 2018).
[6]
Jeffrey M. Barnes, David Garlan, and Bradley Schmerl. 2014. Evolution styles: Foundations and models for software architecture evolution. Softw. & Syst. Model. 13 (2014), 649–678.
[7]
J. M. Barnes, A. Pandey, and D. Garlan. 2013. Automated planning for software architecture evolution. In Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering (ASE’13). 213–223.
[8]
Antonio Bucchiarone, Kemal Soysal, and Claudio Guidi. 2020. A model-driven approach towards automatic migration to microservices. In Software Engineering Aspects of Continuous Development. Springer International Publishing, Cham, 15–36.
[9]
N. Chondamrongkul, J. Sun, and I. Warren. 2018. Ontology-based software architectural pattern recognition and reasoning. In Proceedings of the 30th International Conference on Software Engineering and Knowledge Engineering (SEKE’18). 25–34.
[10]
N. Chondamrongkul, J. Sun, and I. Warren. 2019. PAT approach to architecture behavioural verification. In Proceedings of the 31st International Conference on Software Engineering and Knowledge Engineering. 187–192.
[11]
N. Chondamrongkul, J. Sun, and I. Warren. 2020. Automated security analysis for microservice architecture. In Proceedings of the IEEE International Conference on Software Architecture Companion (ICSA-C’20). 79–82.
[12]
Nacha Chondamrongkul, Jing Sun, and Ian Warren. 2020. Formal software architectural migration towards emerging architectural styles. In Software Architecture. Springer International Publishing, Cham, 21–38.
[13]
Nacha Chondamrongkul, Jing Sun, Ian Warren, and Scott Uk-Jin Lee. 2020. Integrated formal tools for software architecture smell detection. Int. J. Softw. Eng. Knowl. Eng. 30, 06 (2020), 723–763.
[14]
Selim Ciraci, Hasan Sözer, and Mehmet Aksit. 2011. Guiding architects in selecting architectural evolution alternatives. In Software Architecture, Ivica Crnkovic, Volker Gruhn, and Matthias Book (Eds.). Springer, Berlin, 252–260.
[15]
P. Di Francesco, P. Lago, and I. Malavolta. 2018. Migrating towards microservice architectures: An industrial survey. In Proceedings of the IEEE International Conference on Software Architecture (ICSA’18). 29–2909.
[16]
Nicola Dragoni, Saverio Giallorenzo, Alberto Lluch Lafuente, Manuel Mazzara, Fabrizio Montesi, Ruslan Mustafin, and Larisa Safina. 2017. Microservices: Yesterday, Today, and Tomorrow. Springer International Publishing, Cham, 195–216.
[17]
Chris Richardson of Eventuate. 2019. Introduction to Microservices. Retrieved from https://www.nginx.com/blog/introduction-to-microservices/.
[18]
M. Fowler. 2019. Refactoring: Improving the Design of Existing Code. Addison-Wesley. 2018950015
[19]
Nishant Garg. 2013. Apache Kafka. Packt Publishing.
[20]
David Garlan, Felix Bachmann, James Ivers, Judith Stafford, Len Bass, Paul Clements, and Paulo Merson. 2010. Documenting Software Architectures: Views and Beyond (2nd ed.). Addison-Wesley.
[21]
Alfonso Gerevini and Derek Long. 2005. Plan Constraints and Preferences in PDDL3—The Language of the Fifth International Planning Competition. Technical Report, Department of Electronics for Automation, University of Brescia, Italy.
[22]
J. Gouigoux and D. Tamzalit. 2017. From monolith to microservices: Lessons learned on an industrial migration to a web oriented architecture. In Proceedings of the IEEE International Conference on Software Architecture Workshops (ICSAW’17). 62–65.
[23]
Kelsey Hightower, Brendan Burns, and Joe Beda. 2017. Kubernetes: Up and Running Dive into the Future of Infrastructure (1st ed.). O’Reilly Media.
[24]
C. A. R. Hoare. 1978. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978), 666–677.
[25]
Ta’id Holmes and Uwe Zdun. 2018. Refactoring architecture models for compliance with custom requirements. In Proceedings of the 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (MODELS’18). Association for Computing Machinery, New York, NY, 267–277.
[26]
Malik Jackson, John Rofrano, Jinho Hwang, and Maja Vukovic. 2019. BluePlan: A service for automated migration plan construction using AI. In Proceedings of the Service-Oriented Computing Workshops (ICSOC’18). Springer International, Cham, 430–434.
[27]
Ravi Khadka, Belfrit V. Batlajery, Amir M. Saeidi, Slinger Jansen, and Jurriaan Hage. 2014. How do professionals perceive legacy systems and software modernization? In Proceedings of the 36th International Conference on Software Engineering (ICSE’14). Association for Computing Machinery, New York, NY, 36–47.
[28]
H. Knoche and W. Hasselbring. 2018. Using microservices for legacy software modernization. IEEE Softw. 35, 3 (2018), 44–49.
[29]
J. Koskinen, J. J. Ahonen, H. Sivula, T. Tilus, H. Lintinen, and I. Kankaanpaa. 2005. Software modernization decision criteria: An empirical study. In Proceedings of the 9th European Conference on Software Maintenance and Reengineering. 324–331.
[30]
P. B. Kruchten. 1995. The 4+1 view model of architecture. IEEE Softw. 12, 6 (Nov. 1995), 42–50.
[31]
Yun Lin, Xin Peng, Yuanfang Cai, Danny Dig, Diwen Zheng, and Wenyun Zhao. 2016. Interactive and guided architectural refactoring with search-based recommendation. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE’16). Association for Computing Machinery, New York, NY, 535–546.
[32]
Dirk Merkel. 2014. Docker: Lightweight Linux containers for consistent development and deployment. Linux J.239, Article 2 (Mar. 2014).
[33]
Abderrahman Mokni, Christelle Urtado, Sylvain Vauttier, Marianne Huchard, and Huaxi Yulin Zhang. 2016. A formal approach for managing component-based architecture evolution. Sci. Comput. Program. 127 (2016), 24–49.
[34]
Luís Nunes, Nuno Santos, and António Rito Silva. 2019. From a monolith to a microservices architecture: An approach based on transactional contexts. In Proceedings of European Conference on Software Architecture (ECSA’19), Tomas Bures, Laurence Duchien, and Paola Inverardi (Eds.). Springer International Publishing, Cham, 37–52.
[35]
Konstantinos Plakidas, Daniel Schall, and Uwe Zdun. 2018. Software migration and architecture evolution with industrial platforms: A multi-case study. In Software Architecture, Carlos E. Cuesta, David Garlan, and Jennifer Pérez (Eds.). Springer International Publishing, Cham, 336–343.
[36]
Mark Richards. 2015. Software Architecture Patterns. O’Reilly Media.
[37]
Luca Rizzi, Francesca Arcelli Fontana, and Riccardo Roveda. 2018. Support for architectural smell refactoring. In Proceedings of the 2nd International Workshop on Refactoring (IWoR’18). Association for Computing Machinery, New York, NY, 7–10.
[38]
David Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. 2009. EMF: Eclipse Modeling Framework 2.0 (2nd ed.). Addison-Wesley Professional.
[39]
Jun Sun, Yang Liu, Jin Song Dong, and Chunqing Chen. 2009. Integrating specification and programs for system modeling and verification. In Proceedings of the 3rd IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE’09). IEEE Computer Society, 127–135.
[40]
Mohammad Tanhaei, Jafar Habibi, and Seyed-Hassan Mirian-Hosseinabadi. 2016. A feature model based framework for refactoring software product line architecture. J. Comput. Sci. Technol. 31 (09 2016).
[41]
Van Tran, Jacky Keung, Anna Liu, and Alan Fekete. 2011. Application migration to cloud: A taxonomy of critical factors. In Proceedings of the 2nd International Workshop on Software Engineering for Cloud Computing (SECLOUD’11). Association for Computing Machinery, New York, NY, 22–28.
[42]
William Ulrich. 2010. Introduction to architecture-driven modernization. In Information Systems Transformation, William M. Ulrich and Philip H. Newcomb (Eds.). Morgan Kaufmann, Boston, MA, 3–34.
[43]
M. Vukovic and J. Hwang. 2016. Cloud migration using automated planning. In Proceedings of the IEEE/IFIP Network Operations and Management Symposium (NOMS’16). 96–103.
[44]
Xiwei Xu, Cesare Pautasso, Liming Zhu, Qinghua Lu, and Ingo Weber. 2018. A pattern collection for blockchain-based applications. In Proceedings of the 23rd European Conference on Pattern Languages of Programs (EuroPLoP’18). Association for Computing Machinery, New York, NY, Article Article 3, 20 pages.
[45]
Xiwei Xu, Ingo Weber, and Mark Staples. 2019. Case Study: AgriDigital. Springer International Publishing, Cham, 239–255.
[46]
Xiwei Xu, Ingo Weber, and Mark Staples. 2019. Example Use Cases. Springer International Publishing, Cham, 61–79.
[47]
Olaf Zimmermann. 2017. Architectural refactoring for the cloud: A decision-centric view on cloud migration. Computing (10 2017).

Cited By

View all
  • (2023)Software evolutionary architectureScience of Computer Programming10.1016/j.scico.2023.102978230:COnline publication date: 1-Aug-2023
  • (2022)Architectural Refactoring for Functional Properties in Evolutionary Architecture2022 IEEE 19th International Conference on Software Architecture (ICSA)10.1109/ICSA53651.2022.00022(146-156)Online publication date: Mar-2022
  • (undefined)Automated Evolution Planning for Evolutionary ArchitectureSSRN Electronic Journal10.2139/ssrn.4158205

Index Terms

  1. Software Architectural Migration: An Automated Planning Approach

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Software Engineering and Methodology
    ACM Transactions on Software Engineering and Methodology  Volume 30, Issue 4
    Continuous Special Section: AI and SE
    October 2021
    613 pages
    ISSN:1049-331X
    EISSN:1557-7392
    DOI:10.1145/3461694
    • Editor:
    • Mauro Pezzè
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 July 2021
    Accepted: 01 April 2021
    Revised: 01 April 2021
    Received: 01 September 2020
    Published in TOSEM Volume 30, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Blockchain
    2. Software architecture
    3. architectural migration
    4. microservice
    5. software modernisation

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)83
    • Downloads (Last 6 weeks)13
    Reflects downloads up to 12 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Software evolutionary architectureScience of Computer Programming10.1016/j.scico.2023.102978230:COnline publication date: 1-Aug-2023
    • (2022)Architectural Refactoring for Functional Properties in Evolutionary Architecture2022 IEEE 19th International Conference on Software Architecture (ICSA)10.1109/ICSA53651.2022.00022(146-156)Online publication date: Mar-2022
    • (undefined)Automated Evolution Planning for Evolutionary ArchitectureSSRN Electronic Journal10.2139/ssrn.4158205

    View Options

    Login options

    Full Access

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media