ニュース

富士通研究所、複雑化した業務アプリケーションを機能ごとに分割・可視化する技術を開発

 株式会社富士通研究所は18日、複雑化した業務アプリケーションの変更を容易にする技術として、プログラムの解析により内部構造を分割できる技術を開発したと発表した。

 保守や機能追加を繰り返し行ってきたアプリケーションでは、プログラムの依存関係やデータ依存関係などが複雑になり、設計当初には想定しない部分にも影響がおよび、既存のアプリケーションを依存関係が少ない構造に分割するのが難しいことがある。そのため、影響範囲を局所化するように分割しようとすると、多くの依存関係を調べながら修正していく必要がある。

 富士通研究所ではこうした課題に対して、プログラムソースとデータベースへのアクセスログ情報を入力として、業務アプリケーションの内部構造を機能ごとに分割できる境界を自動的に見つけ出す技術を開発した。

開発技術の全体の流れ

 手順としては、アプリケーションを分割する際に、依存関係が少なくなるようにデータを配置してアプリケーションの構造を分析し、特に互いの書き込み依存関係が少ない境界を抽出する。

 まず、アプリケーションの外部から呼び出されるプログラムや指定されたプログラムを起点に、呼び出し先をすべて持つプログラム群を定義する。次に、同じ業務データに書き込むプログラム群は業務データと関係が深いという性質を基に関係を重み付けして、富士通研究所がアプリケーションの構造を可視化するソフトウェア地図技術で培ったクラスタリング技術を用いて、境界で囲まれた範囲を抽出する。一方、多くのプログラム群から書き込まれるデータは、共通データとして独立させる。

 さらに、アプリケーションを実際に動作させた際のデータベースへのアクセスログを利用できる場合には、一連の処理として実行すべき範囲を見つけ、前述の手順で得られた結果を補正する。実行ログ情報分析では、実行中の業務アプリケーションから動作ログとしてデータベースアクセスの命令を抽出し、業務的に連続して実行すべきデータアクセス命令を推定して、対応するプログラムを特定する。これを用いて、一連の処理として実行すべき範囲を抽出する。

設計当初に決めた分類(左)と、開発技術で境界を可視化した例(右)

 これらの手法により得られた結果を、ソフトウェア地図の技術で可視化。互いの関係が強い範囲を近くに配置し、可視化する。

 依存関係が少ない境界が得られることで、より少ない工数でアプリケーションを分割することが可能になる。例えば、購買業務のアプリケーションを用いた試行の結果、開発技術で得られる境界は、設計当初に決めた分類に基づく境界と比較して、相互の依存関係数が約15%少なくなり、分割時の調査と修正の負担軽減が確認できたという。

 この結果を利用して、業務的な関係や更新頻度も考慮しながら、変更を局所化するような修正・改善をアプリケーションに加えることで、業務の変化への迅速な対応が可能になり、業務アプリケーションのマイクロサービス化や段階的なクラウド移行を行う際の対象範囲の検討を効率的に行えるとしている。

 富士通研究所は、今回開発した技術について2018年度の実用化を目指し、さまざまな業種の業務アプリケーション分析に適用・検証していくとしている。