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.
Ссылки и действия
Дополнительные ресурсы: