Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3457913.3457939acmotherconferencesArticle/Chapter ViewAbstractPublication PagesinternetwareConference Proceedingsconference-collections
research-article

A Feature Table approach to decomposing monolithic applications into microservices

Published: 21 July 2021 Publication History
  • Get Citation Alerts
  • Abstract

    Microservice architecture refers to the use of numerous small-scale and independently deployed services, instead of encapsulating all functions into one monolith. It has been a challenge in software engineering to decompose a monolithic system into smaller parts. In this paper, we propose the Feature Table approach, a structured approach to service decomposition based on the correlation between functional features and microservices: (1) we defined the concept of Feature Cards and 12 instances of such cards; (2) we formulated Decomposition Rules to decompose monolithic applications; (3) we designed the Feature Table Analysis Tool to provide semi-automatic analysis for identification of microservices; and (4) we formulated Mapping Rules to help developers implement microservice candidates. We performed a case study on Cargo Tracking System to validate our microservice-oriented decomposition approach. Cargo Tracking System is a typical case that has been decomposed by other related methods (dataflow-driven approach, Service Cutter, and API Analysis). Through comparison with the related methods in terms of specific coupling and cohesion metrics, the results show that the proposed Feature Table approach can deliver more reasonable microservice candidates, which are feasible in implementation with semi-automatic support.

    References

    [1]
    Martin L Abbott and Michael T Fisher. 2015. The art of scalability: Scalable web architecture, processes, and organizations for the modern enterprise. Addison-Wesley Professional.
    [2]
    Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2016. Microservices architecture enables devops: Migration to a cloud-native architecture. Ieee Software 33, 3 (2016), 42–52.
    [3]
    Luciano Baresi, Martin Garriga, and Alan De Renzis. 2017. Microservices identification through interface analysis. In European Conference on Service-Oriented and Cloud Computing. Springer, 19–33.
    [4]
    Rui Chen, Shanshan Li, and Zheng Li. 2017. From monolith to microservices: a dataflow-driven approach. In 2017 24th Asia-Pacific Software Engineering Conference (APSEC). IEEE, 466–475.
    [5]
    Iuliana Cosmina. 2017. Spring microservices with spring cloud. In Pivotal Certified Professional Spring Developer Exam. Springer, 435–459.
    [6]
    Eric J Evans and Eric Evans. 2004. Domain-driven design: tackling complexity in the heart of software. Addison-Wesley Professional.
    [7]
    M Fowler. 2017. Monolith first (2015).
    [8]
    Martin Fowler and James Lewis. 2014. Microservices a definition of this new architectural term. URL: http://martinfowler. com/articles/microservices. html (2014), 22.
    [9]
    Jonas Fritzsch, Justus Bogner, Alfred Zimmermann, and Stefan Wagner. 2018. From monolith to microservices: a classification of refactoring approaches. In International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment. Springer, 128–141.
    [10]
    Martin Garriga. 2017. Towards a taxonomy of microservices architectures. In International Conference on Software Engineering and Formal Methods. Springer, 203–218.
    [11]
    Michael Gysel, Lukas Kölbener, Wolfgang Giersche, and Olaf Zimmermann. 2016. Service cutter: A systematic approach to service decomposition. In European Conference on Service-Oriented and Cloud Computing. Springer, 185–200.
    [12]
    Sara Hassan and Rami Bahsoon. 2016. Microservices and their design trade-offs: A self-adaptive roadmap. In 2016 IEEE International Conference on Services Computing (SCC). IEEE, 813–818.
    [13]
    Jim Highsmith and Alistair Cockburn. 2001. Agile software development: The business of innovation. Computer 34, 9 (2001), 120–127.
    [14]
    Pooyan Jamshidi, Claus Pahl, Nabor C Mendonça, James Lewis, and Stefan Tilkov. 2018. Microservices: The journey so far and challenges ahead. IEEE Software 35, 3 (2018), 24–35.
    [15]
    David Jaramillo, Duy V Nguyen, and Robert Smart. 2016. Leveraging microservices architecture by using Docker technology. In SoutheastCon 2016. IEEE, 1–5.
    [16]
    Gabor Kecskemeti, Attila Csaba Marosi, and Attila Kertesz. 2016. The ENTICE approach to decompose monolithic services into microservices. In 2016 International Conference on High Performance Computing & Simulation (HPCS). IEEE, 591–596.
    [17]
    Craig Larman. 2012. Applying UML and patterns: an introduction to object oriented analysis and design and interative development. Pearson Education India.
    [18]
    Shanshan Li, He Zhang, Zijia Jia, Zheng Li, and Qiuya Gao. 2019. A Dataflow-Driven Approach to Identifying Microservices from Monolithic Applications. Journal of Systems and Software 157 (2019).
    [19]
    David S Linthicum. 2016. Practical use of microservices in moving workloads to the cloud. IEEE Cloud Computing 3, 5 (2016), 6–9.
    [20]
    Robert C Martin. 2002. Agile software development: principles, patterns, and practices. Prentice Hall.
    [21]
    Sam Newman. 2015. Building microservices: designing fine-grained systems. ” O’Reilly Media, Inc.”.
    [22]
    Qian Qu, Ronghua Xu, Seyed Yahya Nikouei, and Yu Chen. 2020. An Experimental Study on Microservices based Edge Computing Platforms. arXiv preprint arXiv:2004.02372(2020).
    [23]
    Chris Richardson. 2014. Pattern: monolithic architecture. Posjećeno 15(2014), 2016.
    [24]
    Chris Richardson. 2017. Pattern: microservice architecture. URL: http://microservices. io/patterns/microservices. html (2017).
    [25]
    Xiao Aihua Wang Shilin. 2005. A COMMON WAY IMPLEMENTS DATA ACCESS OBJECT PATTERN FOR J2EE APPLICATION [J]. Computer Applications and Software 9 (2005), 051.
    [26]
    Jacopo Soldani, Damian Andrew Tamburri, and Willem-Jan Van Den Heuvel. 2018. The pains and gains of microservices: A systematic grey literature review. Journal of Systems and Software 146 (2018), 215–232.
    [27]
    Tomislav Vresk and Igor Čavrak. 2016. Architecture of an interoperable IoT platform based on microservices. In 2016 39th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). IEEE, 1196–1201.
    [28]
    Zhongxiang Xiao, Inji Wijegunaratne, and Xinjian Qiang. 2016. Reflections on SOA and Microservices. In 2016 4th International Conference on Enterprise Systems (ES). IEEE, 60–67.
    [29]
    Edward Yourdon and Larry L Constantine. 1979. Structured design. Fundamentals of a discipline of computer program and systems design. Englewood Cliffs: Yourdon Press(1979).

    Cited By

    View all
    • (2024)Microservice Extraction Based on a Comprehensive Evaluation of Logical Independence and PerformanceIEEE Transactions on Software Engineering10.1109/TSE.2024.338019450:5(1244-1263)Online publication date: May-2024
    • (2023)Visually-Assisted Decomposition of Monoliths to Microservices2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00057(293-295)Online publication date: 3-Oct-2023

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    Internetware '20: Proceedings of the 12th Asia-Pacific Symposium on Internetware
    November 2020
    264 pages
    ISBN:9781450388191
    DOI:10.1145/3457913
    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 ACM 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: 21 July 2021

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Microservices
    2. microservice architecture
    3. monolith decomposition

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    Internetware'20
    Internetware'20: 12th Asia-Pacific Symposium on Internetware
    November 1 - 3, 2020
    Singapore, Singapore

    Acceptance Rates

    Overall Acceptance Rate 55 of 111 submissions, 50%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)49
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Microservice Extraction Based on a Comprehensive Evaluation of Logical Independence and PerformanceIEEE Transactions on Software Engineering10.1109/TSE.2024.338019450:5(1244-1263)Online publication date: May-2024
    • (2023)Visually-Assisted Decomposition of Monoliths to Microservices2023 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL-HCC57772.2023.00057(293-295)Online publication date: 3-Oct-2023

    View Options

    Get Access

    Login options

    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