Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3639478.3639800acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper
Open access

Managing API Evolution in Microservice Architecture

Published: 23 May 2024 Publication History

Abstract

Nowadays, many software systems are split into loosely coupled microservices only communicating via Application Programming Interfaces (APIs) to improve maintainability, scalability, and fault tolerance. However, the loose coupling between microservices provides no immediate feedback on breaking API changes, and consuming services break or exhibit unexpected behavior only after the first actual call to the changed API. Hence, development teams must actively identify and communicate all breaking changes to affected teams to stay compatible. This research addresses this problem with three contributions. First, we identified API evolution strategies and open challenges in practice with an explorative study. Based on the study findings, we formulated two open research directions for evolving publicly accessible APIs, i.e., REpresentational State Transfer (REST) APIs. As the second contribution, we will introduce a REST API change extraction approach to improve the change notification accuracy. We plan experiments on open-source projects to evaluate our approach's accuracy and compare it to openapi-diff for structural changes. Third, we plan to investigate methods for automating communication with affected teams, which will then improve the change notification reliability. Finally, we will evaluate the accuracy and reliability of our notifications with a user study.

References

[1]
Nuha Alshuqayran, Nour Ali, and Roger Evans. 2016. A Systematic Mapping Study in Microservice Architecture. In 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA). 44--51.
[2]
Swarnendu Biswas, Rajib Mall, Manoranjan Satpathy, and Srihari Sukumaran. 2011. Regression Test Selection Techniques: A Survey. Informatica (Slovenia) 35, 3 (2011), 289--321.
[3]
Chris Bogart, Christian Kästner, James Herbsleb, and Ferdian Thung. 2021. When and How to Make Breaking Changes: Policies and Practices in 18 Open Source Software Ecosystems. ACM Trans. Softw. Eng. Methodol. 30, 4, Article 42 (jul 2021), 56 pages.
[4]
Aline Brito, Laerte Xavier, Andre Hora, and Marco Tulio Valente. 2018. APIDiff: Detecting API breaking changes. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). 507--511.
[5]
John L. Campbell, Charles Quincy, Jordan Osserman, and Ove K. Pedersen. 2013. Coding In-depth Semistructured Interviews: Problems of Unitization and Intercoder Reliability and Agreement. Sociological Methods & Research 42, 3 (2013), 294--320.
[6]
Tomas Cerny, Michael J. Donahoo, and Michal Trnka. 2018. Contextual Understanding of Microservice Architecture: Current and Future Directions. SIGAPP Appl. Comput. Rev. 17, 4 (jan 2018), 29--45.
[7]
Animesh Chaturvedi and Dave Binkley. 2021. Web Service Slicing: Intra and Inter-Operational Analysis to Test Changes. IEEE Transactions on Services Computing 14, 3 (2021), 930--943.
[8]
Fangwei Chen, Li Zhang, and Xiaoli Lian. 2021. A systematic gray literature review: The technologies and concerns of microservice application programming interfaces. Software: Practice and Experience 51, 7 (2021), 1483--1508. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/spe.2967
[9]
Juliet M. Corbin and Anselm Strauss. 1990. Grounded theory research: Procedures, canons, and evaluative criteria. Qualitative Sociology 13, 1 (01 Mar 1990), 3--21.
[10]
Hai Dinh-Tuan, Maria Mora-Martinez, Felix Beierle, and Sandro Rodriguez Garzon. 2020. Development Frameworks for Microservice-Based Applications: Evaluation and Comparison. In Proceedings of the 2020 European Symposium on Software Engineering (Rome, Italy) (ESSE '20). Association for Computing Machinery, New York, NY, USA, 12--20.
[11]
Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc, Matias Martinez, and Martin Monperrus. 2014. Fine-Grained and Accurate Source Code Differencing. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering (Vasteras, Sweden) (ASE '14). Association for Computing Machinery, New York, NY, USA, 313--324.
[12]
Roy Thomas Fielding. 2000. REST: architectural styles and the design of network-based software architectures. Doctoral dissertation, University of California (2000).
[13]
Veit Frick, Thomas Grassauer, Fabian Beck, and Martin Pinzger. 2018. Generating Accurate and Compact Edit Scripts Using Tree Differencing. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). 264--274.
[14]
B.G. Glaser and A.L. Strauss. 1967. The Discovery of Grounded Theory: Strategies for Qualitative Research. Aldine.
[15]
Patrice Godefroid, Daniel Lehmann, and Marina Polishchuk. 2020. Differential Regression Testing for REST APIs. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (Virtual Event, USA) (ISSTA 2020). Association for Computing Machinery, New York, NY, USA, 312--323.
[16]
Konrad Gos and Wojciech Zabierowski. 2020. The Comparison of Microservice and Monolithic Architecture. In 2020 IEEE XVIth International Conference on the Perspective Technologies and Methods in MEMS Design (MEMSTECH). 150--153.
[17]
Svetlana Gudkova. 2018. Interviewing in Qualitative Research. Springer International Publishing, Cham, 75--96.
[18]
Quinn Hanam, Ali Mesbah, and Reid Holmes. 2019. Aiding Code Change Understanding with Semantic Change Impact Analysis. In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). 202--212.
[19]
Kaifeng Huang, Bihuan Chen, Xin Peng, Daihong Zhou, Ying Wang, Yang Liu, and Wenyun Zhao. 2018. ClDiff: Generating Concise Linked Code Differences. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering (Montpellier, France) (ASE 2018). Association for Computing Machinery, New York, NY, USA, 679--690.
[20]
Holger Knoche and Wilhelm Hasselbring. 2021. Continuous API Evolution in Heterogenous Enterprise Software Systems. In 2021 IEEE 18th International Conference on Software Architecture (ICSA). 58--68.
[21]
Seonah Lee, Rongxin Wu, Shing-Chi Cheung, and Sungwon Kang. 2021. Automatic Detection and Update Suggestion for Outdated API Names in Documentation. IEEE Transactions on Software Engineering 47, 4 (2021), 653--675.
[22]
Alexander Lercher, Johann Glock, Christian Macho, and Martin Pinzger. 2023. Microservice API Evolution in Practice: A Study on Strategies and Challenges. arXiv:2311.08175 [cs.SE]
[23]
Li Li, Tegawendé F. Bissyandé, Haoyu Wang, and Jacques Klein. 2018. CiD: Automating the Detection of API-Related Compatibility Issues in Android Apps. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (Amsterdam, Netherlands) (ISSTA 2018). Association for Computing Machinery, New York, NY, USA, 153--163.
[24]
Shang-Pin Ma, Chen-Yuan Fan, Yen Chuang, I-Hsiu Liu, and Ci-Wei Lan. 2019. Graph-based and scenario-driven microservice analysis, retrieval, and testing. Future Generation Computer Systems 100 (2019), 724--735.
[25]
Junnosuke Matsumoto, Yoshiki Higo, and Shinji Kusumoto. 2019. Beyond GumTree: A Hybrid Approach to Generate Edit Scripts. In 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR). 550--554.
[26]
S. Newman. 2019. Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith. O'Reilly Media, Incorporated.
[27]
Daniele Romano and Martin Pinzger. 2012. Analyzing the Evolution of Web Services Using Fine-Grained Changes. In 2012 IEEE 19th International Conference on Web Services. 392--399.
[28]
P. Runeson, M. Höst, A. Rainer, and B. Regnell. 2012. Data Analysis and Interpretation. John Wiley & Sons, Ltd, Chapter 5, 61--76.
[29]
Danilo Silva and Marco Tulio Valente. 2017. RefDiff: Detecting Refactorings in Version Histories. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). 269--279.
[30]
S.M. Sohan, Craig Anslow, and Frank Maurer. 2015. A Case Study of Web API Evolution. In 2015 IEEE World Congress on Services. 245--252.
[31]
Klaas-Jan Stol and Brian Fitzgerald. 2020. Guidelines for Conducting Software Engineering Research. Springer International Publishing, Cham, 27--62.
[32]
Mehmet Söylemez, Bedir Tekinerdogan, and Ayça Kolukısa Tarhan. 2022. Challenges and Solution Directions of Microservice Architectures: A Systematic Literature Review. Applied Sciences 12, 11 (2022).
[33]
Frank J. van Rijnsoever. 2017. (I Can't Get No) Saturation: A simulation and guidelines for sample sizes in qualitative research. PLOS ONE 12, 7 (07 2017), 1--17.
[34]
Shaohua Wang, Iman Keivanloo, and Ying Zou. 2014. How Do Developers React to RESTful API Evolution?. In Service-Oriented Computing, Xavier Franch, Aditya K. Ghose, Grace A. Lewis, and Sami Bhiri (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 245--259.
[35]
Menghan Wu, Yang Zhang, Jiakun Liu, Shangwen Wang, Zhang Zhang, Xin Xia, and Xinjun Mao. 2022. On the Way to Microservices: Exploring Problems and Solutions from Online Q&A Community. In 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). 432--443.
[36]
Zhenchang Xing and Eleni Stroulia. 2007. API-Evolution Support with DiffCatchUp. IEEE Transactions on Software Engineering 33, 12 (2007), 818--836.
[37]
Uwe Zdun, Erik Wittern, and Philipp Leitner. 2020. Emerging Trends, Challenges, and Experiences in DevOps and Microservice APIs. IEEE Software 37, 1 (2020), 87--91.
[38]
He Zhang, Shanshan Li, Zijia Jia, Chenxing Zhong, and Cheng Zhang. 2019. Microservice Architecture in Reality: An Industrial Inquiry. In 2019 IEEE International Conference on Software Architecture (ICSA). 51--60.
[39]
Olaf Zimmermann, Mirko Stocker, Daniel Lübke, Cesare Pautasso, and Uwe Zdun. 2019. Introduction to Microservice API Patterns (MAP). In International Conference on Microservices (Microservices 2019).

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-Companion '24: Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings
April 2024
531 pages
ISBN:9798400705021
DOI:10.1145/3639478
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

In-Cooperation

  • Faculty of Engineering of University of Porto

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 May 2024

Check for updates

Author Tags

  1. microservice architecture
  2. API evolution
  3. web API
  4. REST API

Qualifiers

  • Short-paper

Conference

ICSE-Companion '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 215
    Total Downloads
  • Downloads (Last 12 months)215
  • Downloads (Last 6 weeks)63
Reflects downloads up to 22 Nov 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media