Extracting Overlapping Microservices from Monolithic Code via Deep Semantic Embeddings and Graph Neural Network-Based Soft Clustering

2508.07486v1 cs.SE, cs.AI, cs.CV 2025-08-13
Авторы:

Morteza Ziabakhsh, Kiyan Rezaee, Sadegh Eskandari, Seyed Amir Hossein Tabatabaei, Mohammad M. Ghassemi

Резюме на русском

## Контекст Современные программные системы стремятся перейти с монолитных архитектур на микросервисные, чтобы улучшить масштабируемость, поддерживаемость и гибкость развертывания. Однако существующие методы экстракции микросервисов часто основываются на жестком кластеринге, при котором каждый компонент присваивается одному микросервису. Это приводит к увеличению взаимозависимости между микросервисами и уменьшению внутрисервисной когерентности. Мы предлагаем фреймворк Mo2oM (Monolithic to Overlapping Microservices), который формулирует задачу экстракции микросервисов как задачу мягкого кластеринга. Это позволяет компонентам принадлежать к нескольким микросервисам с вероятностным характером. Метод Mo2oM использует глубокие семантические отображения и структурные зависимости, извлекаемые из графов вызовов методов, для представления функциональных и архитектурных связей. Далее, мягкий кластеринг на основе графов GNN позволяет формировать оптимальные микросервисы. ## Метод Метод Mo2oM применяет глубокие семантические модели для получения векторных представлений компонентов, а также графы вызовов методов для извлечения структурных зависимостей. Эти данные объединяются в сети нод, где каждая нода представляет собой компонент. Затем, используя GNN, мы вычисляем вероятности принадлежности компонентов к микросервисам. Это позволяет микросервисам иметь нечёткие границы и включать несколько компонентов, что является более естественным для реальных систем. Метод также учитывает архитектурные зависимости, чтобы обеспечить баланс между когерентностью и взаимозависимостью. ## Результаты Мы проверили Mo2oM на четырёх открытых бенчмарках, сравнив его со штатными базовыми алгоритмами. Наши результаты показывают, что Mo2oM улучшает **структурную модулярность** (когерентность и взаимозависимость) на 40.97%, **процент вызовов между микросервисами** (связность) на 58%, **количество интерфейсов** (модулярность и декомпозиция) на 26.16%, и **распределение размеров микросервисов** (эquilibrность) на 38.96%. Эти результаты демонстрируют то, что Mo2oM выдаёт более гармоничные и эффективные микросервисные архитектуры по сравнению с другими подходами. ## Значимость Наш подход может применяться в разработке программных систем, где необходимо найти баланс между модулярностью и взаимозависимостью. Он позволяет улучшить модулярность, уменьшить взаимодействие между микросервисами и сделать размеры микросервисов более балансированными. Эти преимущества могут су

Abstract

Modern software systems are increasingly shifting from monolithic architectures to microservices to enhance scalability, maintainability, and deployment flexibility. Existing microservice extraction methods typically rely on hard clustering, assigning each software component to a single microservice. This approach often increases inter-service coupling and reduces intra-service cohesion. We propose Mo2oM (Monolithic to Overlapping Microservices), a framework that formulates microservice extraction as a soft clustering problem, allowing components to belong probabilistically to multiple microservices. This approach is inspired by expert-driven decompositions, where practitioners intentionally replicate certain software components across services to reduce communication overhead. Mo2oM combines deep semantic embeddings with structural dependencies extracted from methodcall graphs to capture both functional and architectural relationships. A graph neural network-based soft clustering algorithm then generates the final set of microservices. We evaluate Mo2oM on four open-source monolithic benchmarks and compare it against eight state-of-the-art baselines. Our results demonstrate that Mo2oM achieves improvements of up to 40.97% in structural modularity (balancing cohesion and coupling), 58% in inter-service call percentage (communication overhead), 26.16% in interface number (modularity and decoupling), and 38.96% in non-extreme distribution (service size balance) across all benchmarks.

Ссылки и действия