富士通研究所は5月18日、複雑化した業務アプリケーションを機能ごとに分割するためにプログラム・データの関係を分析し、互いの依存関係が少なくなるように分割する境界の候補を見つける技術と、その境界の中からアプリケーションを実際に動作させた際のデータベースへのアクセスログを利用して、一連の処理として実行すべき範囲を見つけ、より関連性の高い業務の範囲を抽出する技術を開発したと発表した。

従来、保守や機能追加により修正を繰り返している業務アプリケーションは、内部が複雑化し変更の影響が広範囲に及ぶ構造になっていることが多く、業務の変更に合わせたアプリケーションの変更が負担となっている。そこで、新技術で得られた機能ごとに分割する境界を可視化することにより、従来は難しかったアプリケーションの分割が可能できるという。これにより、境界をもとに変更を局所化するような修正・改善を加えていくことで、顧客業務・ビジネスの変化への迅速な対応を可能としている。

新技術の手順は「アプリケーションの構造分析」「実行ログ情報分析」「境界の可視化」となる。アプリケーションの構造分析ではアプリケーションを分割する際に、依存関係が少なくなるようにデータを配置してアプリケーションの構造を分析し、特に互いの書き込み依存関係が少ない境界を抽出する。

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

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

境界の可視化では、先の2つの手順で得られた結果をソフトウェア地図の技術で互いの関係が強い範囲を近くに配置し、可視化する。

開発技術の全体の流れ

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

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

この結果を利用し、業務的な関係や更新頻度も考慮しながら、変更を局所化するような修正・改善をアプリケーションに加えることで、顧客業務の変化に迅速な対応が可能なほか、顧客の業務アプリケーションのマイクロサービス化や段階的なクラウド移行を行う際の対象範囲の検討を効率的に行うことが可能になるという。今後、同社では2018年度の実用化を目指し、さまざまな業種の業務アプリケーション分析に適用・検証していく方針だ。