DOI QR코드

DOI QR Code

Microservice Identification by Partitioning Monolithic Web Applications Based on Use-Cases

  • Si-Hyun Kim (School of Computer Science and Information Engineering, The Catholic University of Korea) ;
  • Daeil Jung (School of Computer Science and Information Engineering, The Catholic University of Korea) ;
  • Norhayati Mohd Ali (Faculty of Computer Science and Information Technology, Universiti Putra Malaysia) ;
  • Abu Bakar Md Sultan (Faculty of Computer Science and Information Technology, Universiti Putra Malaysia) ;
  • Jaewon Oh (School of Computer Science and Information Engineering, The Catholic University of Korea)
  • Received : 2023.09.19
  • Accepted : 2023.11.30
  • Published : 2023.12.31

Abstract

Several companies have migrated their existing monolithic web applications to microservice architectures. Consequently, research on the identification of microservices from monolithic web applications has been conducted. Meanwhile, the use-case model plays a crucial role in outlining the system's functionalities at a high level of abstraction, and studies have been conducted to identify microservices by utilizing this model. However, previous studies on microservice identification utilizing use-cases did not consider the components executed in the presentation layer. Unlike existing approaches, this paper proposes a technique that considers all three layers of web applications (presentation, business logic, and data access layers). Initially, the components used in the three layers of a web application are extracted by executing all the scenarios that constitute its use-cases. Thereafter, the usage rate of each component is determined for each use-case and the component is allocated to the use-case with the highest rate. Then, each use-case is realized as a microservice. To verify the proposed approach, microservice identification is performed using open-source web applications.

Keywords

Acknowledgement

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (NRF-2021R1F1A1048842). This study was supported by the Research Fund, 2021 of The Catholic University of Korea. This paper is a revised and expanded version of a Master's thesis [37] written by one of the authors.

References

  1. H. M. Kienle and D. Distante, "Evolution of web systems," in Evolving Software Systems, Berlin, Germany: Springer, ch. 7, pp. 201-228, 2014. DOI: 10.1007/978-3-642-45398-4_7.
  2. M. d' Aquin, M. Sabou, and E. Motta, "Modularization: a key for the dynamic selection of relevant knowledge components," in Proceeding of the Workshop on Modular Ontologies, Athens: GA, pp. 1-14, 2006.
  3. S. Comella-Dorda, K. Wallnau, R. C. Seacord, and J. Robert, "A survey of black-box modernization approaches for information systems," in Proceeding of the. International Conference on Software Maintenance, San Jose: CA, pp. 173-183, 2000. DOI: 10.1109/ICSM.2000.883039.
  4. N. Dragoni, S. Giallorenzo, A. L. Lafuente, M. Mazzara, F. Montesi, R. Mustafin, and L. Safina, "Microservices: yesterday, today, and tomorrow," in Present and Ulterior Software Engineering, Cham, Switzerland: Springer, ch. 12, pp. 195-216, 2017. DOI: 10.1007/978-3-319-67425-4_12.
  5. J. Fritzsch, J. Bogner, S. Wagner, and A. Zimmermann, "Microservices migration in industry: intentions, strategies, and challenges," in Proceeding of the International Conference on Software Maintenance and Evolution, Cleveland: OH, pp. 481-490, 2019. DOI: 10.1109/ICSME.2019.00081.
  6. J. Thones, "Microservices," IEEE Software, vol. 32, no. 1, pp. 116-116, 2015. DOI: 10.1109/MS.2015.11.
  7. M. Abdellatif, A. Shatnawi, H. Mili, N. Moha, G. E. Boussaidi, G. Hecht, J. Privat, and Y. Gueheneuc, "A taxonomy of service identification approaches for legacy software systems modernization," Journal of Systems and Software, vol. 173, no. 1 pp. 11086, 2021. DOI: 10.1016/j.jss.2020.110868.
  8. H. Knoche and W. Hasselbring, "Using microservices for legacy software modernization," IEEE Software, vol. 35, no. 3, pp. 44-49, 2018. DOI: 10.1109/MS.2018.2141035.
  9. A. Levcovitz, R. Terra, and M. T. Valente, "Towards a technique for extracting microservices from monolithic enterprise systems," arXiv:1605.03175, 2016. DOI: 10.48550/arXiv.1605.03175.
  10. M. Kamimura, K. Yano, T. Hatano, and A. Matsuo, "Extracting candidates of microservices from monolithic application code," in Proceeding of the Asia Pacific Software Engineering Conference, Nara, Japan, pp. 571-580, 2018. DOI: 10.1109/APSEC.2018.00072.
  11. G. Mazlami, J. Cito, and P. Leitner, "Extraction of microservices from monolithic software architectures," in Proceeding of the International Conference on Web Service, Honolulu: HI, pp. 524-531, 2017. DOI: 10.1109/ICWS.2017.61.
  12. N. Dmitry and S.S. Manfred, "On micro-services architecture," International Journal of Open Information Technologies, vol. 2, no. 9, pp. 24-27, 2014.
  13. D. Bajaj, A. Goel, and S. C. Gupta, "GreenMicro: identifying microservices from use cases in greenfield development," IEEE Access, vol. 10, pp. 67008-67018, 2022. DOI: 10.1109/ACCESS.2022.3182495.
  14. W. Jin, T. Liu, Q. Zheng, D. Cui, and Y. Cai, "Functionality-oriented microservice extraction based on execution trace clustering," in Proceeding of the International Conference on Web Services, San Francisco: CA, pp. 211-218, 2018. DOI: 10.1109/ICWS.2018.00034.
  15. S. Tyszberowicz, R. Heinrich, B. Liu, and Z. Liu, "Identifying microservices using functional decomposition," in Proceeding of the International Symposium on Dependable Software Engineering. Theories, Tools, and Applications, Beijing, China, pp. 50-65, 2018. DOI: 10.1007/978-3-319-99933-3_4.
  16. Y. Zhang, B. Liu, L. Dai, K. Chen, and X. Cao, "Automated microservice identification in legacy systems with functional and non-functional metrics," in Proceeding of the International Conference on Software Architecture, Salvador, Brazil, pp. 135-145, 2020. DOI: 10.1109/ICSA47634.2020.00021.
  17. L. Bao, C. Yin, W. He, J. Ge, and P. Chen, "Extracting reusable services from legacy object-oriented systems," in Proceeding of the International Conference on Software Maintenance, Timisoara, Romania, pp. 1-5, 2010. DOI: 10.1109/ICSM.2010.5609744.
  18. A. K. Kalia, J. Xiao, R. Krishna, S. Sinha, M. Vukovic, and D. Banerjee, "Mono2Micro: a practical and effective tool for decomposing monolithic Java applications to microservices," in Proceeding of the ACM Joint Meeting of European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Athens, Greece, pp. 1214-1224, 2021. DOI: 10.1145/3468264.3473915.
  19. D. Taibi and K. Systa, "From monolithic systems to microservices: a decomposition framework based on process mining," in Proceeding of the International Conference on Cloud Computing and Services Science, Heraklion, Greece, pp. 153-164, 2019. DOI: 10.5220/0007755901530164.
  20. B. Kurniawan, Java for the web with servlets, JSP, and EJB: A Developer's Guide to J2EE Solutions, Carmel, IN: Sams, 2002.
  21. C. D. Grosso, M. D. Penta, and I. G. R. de Guzman, "An approach for mining services in database oriented applications," in Proceeding of the European Conference on Software Maintenance and Reengineering, Amsterdam, Netherlands, pp. 287-296, 2007. DOI: 10.1109/CSMR.2007.11.
  22. S. H. Kim and J. Oh, "An effective reuse-based approach to automatic identification of microservices," Journal of the Korea Institute of Information and Communication Engineering, vol. 27, no. 6, pp. 673-687, 2023. DOI: 10.6109/jkiice.2023.27.6.673.
  23. S. H. Kim, J. H. Shin, and J. Oh, "Utilizing web component structure for automatic microservices identification," Journal of the Korea Institute of Information and Communication Engineering, vol. 27, no. 7, pp. 892-895, 2023. DOI: 10.6109/jkiice.2023.27.7.892.
  24. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold, "An overview of aspectJ," in Proceeding of the European Conference on Object-Oriented Programming, Budapest, Hungary, pp. 327-354, 2001. DOI: 10.1007/3-540-45337-7_18.
  25. B. Andrade, S. Santos, and A. R. Silva, "From monolith to microservices: static and dynamic analysis comparison," arXiv:2204.11844, 2022. DOI: 10.48550/arXiv.2204.11844.
  26. L. Meurice, C. Nagy, and A. Cleve, "Static analysis of dynamic database usage in java systems," in Proceeding of the International Conference on Advanced Information System Engineering, Ljubljana, Slovenia, pp. 491-506, 2016. DOI: 10.1007/978-3-319-39696-530.
  27. A. Cleve and J.-L. Hainaut, "Dynamic analysis of SQL statements for data-intensive applications reverse engineering," in Proceeding of the Working Conference on Reverse Engineering, Antwerp, Belgium, pp. 192-196, 2008. DOI: 10.1109/WCRE.2008.38.
  28. J. Oh, W. H. Ahn, and T. Kim, "Automatic extraction of dependencies between web components and database resources in java web applications," Journal of Information and Communication Convergence Engineering, vol. 17, no. 2, pp. 149-160, 2019. https://doi.org/10.6109/JICCE.2019.17.2.149
  29. M. Stal, "Using architectural patterns and blueprints for service-oriented architecture," IEEE Software, vol. 23, no. 2, pp. 54-61, 2006. DOI: 10.1109/MS.2006.60.
  30. J. Oh, H. Ahn, and T. Kim, "Automatic extraction of component collaboration in java web applications by using servlet filters and wrappers," KIPS Transactions on Software and Data Engineering, vol. 6, no. 7, pp. 329-336, 2017. https://doi.org/10.3745/KTSDE.2017.6.7.329
  31. J. B. Kruskal, "On the shortest spanning subtree of a graph and the traveling salesman problem," Proceedings of the American Mathematical Society, vol. 7, no. 1, pp. 48-50, 1956. DOI: 10.2307/2033241.
  32. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to algorithms. Cambridge, MA: MIT Press, 2009.
  33. B. S. Mitchell and S. Mancoridis, "On the automatic modularization of software systems using the Bunch tool," IEEE Transactions on Software Engineering, vol. 32, no. 3, pp. 193-208, 2006. DOI: 10.1109/TSE.2006.31.
  34. M, Melanie. An introduction to genetic algorithms. Cambridge, MA: MIT press, 1998.
  35. R. Sibson, "SLINK: An optimally efficient algorithm for the single-link cluster method," The Computer Journal, vol. 16, no. 1, pp. 30-34, 1973. DOI: 10.1093/comjnl/16.1.30.
  36. M. Grandiniconsider, E. Bagli, and G. Visani, "Metrics for multi-class classification: an overview," arXiv:2008.05756, 2020. DOI: 10.48550/arXiv.2008.05756.
  37. D. Jung, "A use-case-based approach to transforming legacy web applications into microservices," M.S. dissertation, The Catholic University of Korea, Bucheon, Republic of Korea, 2023.