Технологія декомпозиції фронтенд-монолітних вебзастосунків на мікрофронтенди методом кластеризації їх гетерогенних графів
Анотація
Здійснено дослідження та аналіз закономірностей декомпозиції фронтенд-монолітних вебзастосунків на мікрофронтенди методом кластеризації їх гетерогенних графів із використанням графових нейронних мереж GNN (англ. Graph Neural Networks). Досліджено вплив поєднання різних типів зв'язку між компонентами (структурних, функціональних і тестових) на якість виділення функціонально цілісних груп елементів інтерфейсу. З'ясовано, що врахування не тільки статичних залежностей, а й динамічних сценаріїв взаємодії у тестах дає змогу ідентифікувати приховані контекстні зв'язки, недоступні для стандартних методів аналізу коду. Доведено, що застосування моделі GraphSAGE (англ. Sample and AggregatE) для побудови векторного подання вузлів гетерогенного графа поєднано з кластеризацією методом k-середніх (k-means) забезпечує обґрунтованіший поділ моноліту на групи компонентів, які відповідають основним доменам функціоналу вебзастосунку. Виконано порівняльний аналіз із результатами кластеризації базовим алгоритмом алгоритму Louvain (виявлення спільнот), що дало можливість визначити переваги та обмеження запропонованого підходу. З'ясовано, що підхід на підставі графових нейронних мереж дає змогу уникнути надмірної фрагментації та об'єднати компоненти з подібними сценаріями використання, визначаючи потенційні межі майбутніх мікрофронтендів. Досліджено вплив різних підходів до формування графа на кінцевий результат декомпозиції. Виявлено, що оптимальний вибір кількості кластерів забезпечує баланс між деталізацією та узагальненням, а врахування різноманітних типів зв'язку сприяє виділенню найбільш логічних підсистем. Результати дослідження підтверджують ефективність використання кластеризації гетерогенних графів для завдань архітектурного рефакторингу та модернізації складних інформаційних систем, а також доводять, що запропонований підхід можна рекомендувати для автоматизованої підтримки процесів міграції від фронтенд-монолітів до мікрофронтендів у практиці корпоративного розроблення промислових вебзастосунків та слугувати основою для подальших досліджень у сфері вдосконалення структурних трансформацій програмних систем.
Завантаження
Посилання
Abgaz, Y., Montalvão, J. M., de Pádua, C. I. P. S., Santos, E. C. F., Sampaio, L. S., & Barreto, A. A. (2023). Decomposition of Monolith Applications Into Microservices Architectures: A Systematic Review. IEEE Transactions on Software Engineering. https://doi.org/10.1109/TSE.2023.3287297
Amorim, T. S., & Canedo, E. D. (2025). Micro-Frontend Architecture in Software Development: A Systematic Mapping Study. Proceedings of the 21st International Conference on Web Information Systems and Technologies – WEBIST. https://doi.org/10.5220/0013195800003929
Blondel, V. D., Guillaume, J.-L., Lambiotte, R., & Lefebvre, E. (2008). Fast unfolding of communities in large networks. Journal of Statistical Mechanics: Theory and Experiment, 2008(10), article P10008. https://doi.org/10.1088/1742-5468/2008/10/p10008
Cheripurathu, K. G., & Kulkarni, S. (2024). Integrating Microservices and Microfrontends: A Comprehensive Literature Review on Architecture, Design Patterns, and Implementation Challenges. Journal of Scientific Research and Technology, 2(7), 1–12. https://doi.org/10.61808/jsrt115
Dragoni, N., Lanese, I., Larsen, S. T., Mazzara, M., Mustafin, R., & Safina, L. (2017). Microservices: Yesterday, Today, and Tomorrow. In: Present and Ulterior Software Engineering, 195–216. Springer. https://doi.org/10.1007/978-3-319-67425-4_12
Fritzsch, J., Bogner, J., Zimmermann, A., & Wagner, S. (2019). From monolith to microservices: A classification of refactoring approaches. Software Evolution and Process, 31(11), article ID e2068. https://doi.org/10.1007/978-3-030-06019-0_10
Gysel, M., Giersche, W., Müller, O., & Hölzle, K. (2016). Service Cutter: A Systematic Approach to Service Decomposition. Service-Oriented Computing. ICSOC 2016. Lecture Notes in Computer Science, 9936, 185–200. Springer. https://doi.org/10.1007/978-3-319-44482-6_12
Hamilton, W. L., Ying, R., & Leskovec, J. (2017). Inductive representation learning on large graphs. Advances in Neural Information Processing Systems (NeurIPS), 30, 1024–1034. https://doi.org/10.48550/arXiv.1706.02216
Jackson, C. (2019). Micro Frontends. MartinFowler.com. URL: https://martinfowler.com/articles/micro-frontends.html (Accessed: 12 May 2025)
Jamshidi, P., Pahl, C., Mendonça, N. C., Lewis, J., & Tilkov, S. (2018). Microservices: The Journey So Far and Challenges Ahead. IEEE Software, 35(3), 24–35. https://doi.org/10.1109/MS.2018.2141039
Leighton, T., Meyer, A. R., & Lehman, E. (2010). Chapter 5: Graph theory. In Mathematics for computer science (MIT OpenCourseWare). Massachusetts Institute of Technology. URL: https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/resources/mit6_042jf10_chap05/
MacQueen, J. (1967). Some methods for classification and analysis of multivariate observations. V Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability, 1, pp. 281–297. University of California Press. URL: https://projecteuclid.org/euclid.bsmsp/1200512992
Mathai, A., R G, N., Krishna, S., M, B., & Vinod, P. (2022). Monolith to Microservices: Representing Application Software through Heterogeneous Graph Neural Network. In Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence (IJCAI), 123 p. https://doi.org/10.48550/arXiv.2112.01317
Nguyen, Q.-V., Nguyen, T.-H., Le, V.-K., Le, D.-K., & Vo, D.-N. (2022). A Survey on Graph Neural Networks for Microservice-Based Cloud Applications. Sensors (Basel, Switzerland), 22(23), article ID 9492. https://doi.org/10.3390/s22239492
Oumoussa, M., & Saidi, R. (2024). Evolution of Microservices Identification in Monolith Decomposition: A Systematic Review. IEEE Access, 12, 26868–26892. https://doi.org/10.1109/ACCESS.2024.3365079
Peltonen, S., Mezzalira, L., & Taibi, D. (2021). Motivations, Benefits, and Issues for Adopting Micro-Frontends: A Multivocal Literature Review. Information and Software Technology, 136, article ID 106571. https://doi.org/10.48550/arXiv.2007.00293
Qian, Y., Yang, M., Jiang, W., & Zhang, P. (2023). Microservice extraction using graph deep clustering based on dual view fusion. Information and Software Technology, 159, article ID 107171. https://doi.org/10.1016/j.infsof.2023.107171
Rousseeuw, P. J. (1987). Silhouettes: A graphical aid to the interpretation and validation of cluster analysis. Journal of Computational and Applied Mathematics, 20, 53–65. https://doi.org/10.1016/0377-0427(87)90125-7
Santos, L., Silva, M., Santos, S., Rocha, F., & Barbosa da Silva, E. (2024). Microfront-End: Systematic Mapping. In Proceedings of the 20th International Conference on Web Information Systems and Technologies – WEBIST, SciTePress, pp. 119–130. https://doi.org/10.5220/0013015400003825
Sellami, M., Bouguerra, S., Ghorbel, A., & Ben-Abdallah, H. (2022). Combining Static and Dynamic Analysis to Decompose Monolithic Application into Microservices. In Proceedings of the 19th International Conference on Service-Oriented Computing (ICSOC 2021), Lecture Notes in Computer Science, Vol. 13121 (pp. 220–235). Springer. https://doi.org/10.1007/978-3-031-20984-0_14
Trabelsi, N. Moha, Guéhéneuc, Y. -G., & Geffard, L. (2024). Magnet: Method-based Approach using Graph Neural Network for Microservices Identification. IEEE 21st International Conference on Software Architecture (ICSA), Hyderabad, India, 2024, pp. 1–11. https://doi.org/10.1109/ICSA59870.2024.00009

Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.



