Skip to main content
QUICK REVIEW

[論文レビュー] Graph Neural Network to Dilute Outliers for Refactoring Monolith Application

Utkarsh Desai, Sambaran Bandyopadhyay|arXiv (Cornell University)|Feb 7, 2021
Software System Performance and Reliability被引用数 4
ひとこと要約

この論文では、ノードクラスタリング、外れ値検出、外れ値希釈を統合することでモノリスアプリケーションをマイクロサービスに再構築する、新しいグラフニューラルネットワークフレームワークCO-GCNを提案する。コードを属性付きグラフとしてモデル化し、マルチオブジェクティブ学習を活用することで、クラスタリングの質を向上させ、人間の評価で平均60%の重複を示す高影響度のリファクタリング候補を特定する。定量的指標と定性的な関連性の両面で、最先端の手法を上回る性能を発揮する。

ABSTRACT

Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when deployed on the cloud since resources can be allocated dynamically to necessary components based on demand. Therefore, enterprises as part of their journey to cloud, are increasingly looking to refactor their monolith application into one or more candidate microservices; wherein each service contains a group of software entities (e.g., classes) that are responsible for a common functionality. Graphs are a natural choice to represent a software system. Each software entity can be represented as nodes and its dependencies with other entities as links. Therefore, this problem of refactoring can be viewed as a graph based clustering task. In this work, we propose a novel method to adapt the recent advancements in graph neural networks in the context of code to better understand the software and apply them in the clustering task. In that process, we also identify the outliers in the graph which can be directly mapped to top refactor candidates in the software. Our solution is able to improve state-of-the-art performance compared to works from both software engineering and existing graph representation based techniques.

研究の動機と目的

  • ソフトウェア構造をグラフとしてモデル化することで、モノリスアプリケーションをマイクロサービスに分解する課題に対処すること。
  • 過剰なクロスファンクショナル依存関係を持つクラス(外れ値クラス)を特定・優先順位付けし、リファクタリングの好ましい候補とすること。
  • クラスタリング、外れ値検出、外れ値希釈を統合した一貫したエンドツーエンドのGNNフレームワークを構築し、マイクロサービス分解の質を向上させること。
  • クラスタリングの質と検出されたリファクタリング候補の関連性において、既存のグラフベースおよびソフトウェア工学的手法を上回ること。

提案手法

  • 静的プログラム解析を用いてモノリスコードを属性付きグラフに変換し、ノードはクラス、エッジは依存関係を表す。
  • 2種類の外れ値を導入:構造的外れ値(機能境界をまたがって高密度に接続されているもの)と属性的外れ値(異常な呼び出しパターンを持つもの)。
  • CO-GCNは、グラフ再構築、クラスタリング、外れ値に配慮した目的関数を組み合わせたマルチオブジェクティブ損失関数を採用し、ノード表現、クラスタ割り当て、外れ値スコアの同時最適化を実現する。
  • フレームワークは、ノード埋め込みを学習するためのグラフ畳み込みネットワーク(GCN)を用い、クラスタリングヘッドによりノードをマイクロサービス候補に割り当てる。
  • 外れ値スコアは、メッセージパッシング中に異常なノードの影響を希釈するために使用され、クラスタ形成への破壊的影響を低減する。
  • 構造的再構築、属性的再構築、クラスタリング、外れ値認識のバランスを取る総合損失関数を用いて、エンドツーエンドでモデルを訓練する。

実験結果

リサーチクエスチョン

  • RQ1グラフニューラルネットワークを、モノリスリファクタリングのための同時クラスタリングと外れ値検出に効果的に適応できるか。
  • RQ2外れ値認識と希釈を組み込むことで、標準的なGNNと比較してマイクロサービスクラスタリングの質がどの程度向上するか。
  • RQ3検出された外れ値が、人間の専門家による高優先度のリファクタリング候補との間でどの程度一致するか。
  • RQ4ノード埋め込みサイズや損失重み付けなどのハイパーパrameterに、提案フレームワークの性能がどの程度感度を示すか。

主な発見

  • CO-GCNは4つの公開モノリスアプリケーションにおいて最先端の性能を達成し、モジュラリティと構造的モジュラリティの両面で、既存のグラフベースおよびソフトウェア工学的手法を上回った。
  • 人間の評価において、専門家が特定した上位5つのリファクタリング候補と60%の平均重複を示し、GCN(45%)やDGI(55%)を著しく上回った。
  • アブレーションスタディの結果、クラスタリング目的関数と外れ値認識学習の両方がクラスタ品質に有意に寄与していることが判明したが、アプリケーションや指標によってその影響は変動した。
  • 感度分析の結果、より高いノード埋め込みサイズ(例:64)は構造的モジュラリティを向上させる傾向にあったが、埋め込みサイズの変更に伴いモジュラリティスコアは比較的安定していた。
  • 外れ値情報の削除により、1つのアプリケーション(PBW)ではモジュラリティが向上したが、これは構造的モジュラリティの低下によって相殺された。これは、クラスタの結束性と構造的整合性の間のトレードオフを示している。
  • 外れ値検出と希釈を訓練目的関数に統合することで、専門家による定性的フィードバックで検証されたように、より一貫性があり機能的に整合性の高いクラスタが得られた。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。