プログラム処理間の依存解析に基づくレガシーソフトウェアからのサービス抽出法

木村 隆洋 (0451048)


サービス指向アーキテクチャ(SOA)は,ネットワーク上に分散するシステムを柔軟に連携・統合するための,新しいシステムアーキテクチャとして注目されている.SOAは,システムのさまざまな機能をサービスという単位で抽出し,これらのサービスの組み合わせでより高度なシステムを組み上げていく.しかしながら,長年保守が繰り返され現在も稼動中のレガシーシステムに対して,SOAを適用することは容易ではない.

レガシーシステムへの効率的なSOA適用を支援するため,本研究では,手続き型言語で書かれたレガシーソフトウェアからサービス(候補)を抽出する手法を提案する.具体的には,まずレガシーソフトウェアのソースコードから,データフローダイアグラム(DFD)を取得する.次に,DFD上に存在するデータフローを3種類に分類し,プロセス間の依存関係を性質付ける.さらにこの依存関係に基づき,依存の強いプロセス群を結合しサービスとして抽出するための6つのルールを提案する. 提案手法によって,自己完結,オープンなインターフェース,任意の粒度という,SOAの要件に合致したサービス候補を体系的に導出することが可能となる.

また,提案手法の有効性を検証するために,既存のアプリケーションからサービスを抽出するケーススタディを行った.その結果,既存アプリケーションのソースコードから様々な粒度のサービスを抽出可能であることを確認した.