レガシーシステムのSOA化技術

背景

今日,ビジネス環境はますます急激に変化するようになり,企業の業務システムもその変化に対して,迅速かつ柔軟に対応することが求められています.しかし,既存のシステムの多くは,業務毎に高度に専門化されたモノリシック(一枚岩)なシステムが多く,任意のシステムとの相互運用性やデータの共有などが考慮されていません.このようなシステムでは,業務手順(ビジネスプロセス)が変わる度にシステムの大幅な修正が必要となり,保守コストが膨大になることが大きな問題とされています.

SOAへの注目

このような背景の下で,サービス指向アーキテクチャ(SOA)[3]というアーキテクチャパラダイムが注目されています.SOAでは,システムの機能を「サービス」という単位でくくりだし,ビジネスプロセスの基本構成要素(要素プロセスと呼ぶ)とします.これらの「サービス」は,システムのプラットフォームや内部実装に非依存なインターフェースを通じて疎結合されます.ビジネスプロセスは既存サービスの緩い結合により構成され,個々のサービスの組み換えや更新は容易であるとされています.結果的に,ビジネス環境の変化に迅速・柔軟に対応できます.このような利点から,最近では特に,長年に渡り保守されてきた現役の「レガシーシステム」にSOAを適用する(SOA化する)話題に大きな関心が集まっています.

レガシーシステムのSOA化

SOAに基づくシステム開発では,まずビジネス環境を分析して要素プロセスを決定した後,これらの要素プロセスに合わせて,システム機能をサービスとしてマッピングする,トップダウンなアプローチが知られています.しかしながら,レガシーシステムには,長年の保守による保守性の低下や,変更による業務への影響が認められない,などの問題があります.したがって,ビジネス環境に合わせた大幅な修正を行うことが困難になっています. 従って,レガシーシステムをSOA化する際には,既存システムの機能を最大限再利用することを考慮して,ビジネスの要素プロセスを決定する,ボトムアップなアプローチも考慮に入れる必要があります.

legacytosoa2.jpg

データ依存解析に基づくサービス抽出

レガシーシステムからのボトムアップなSOA化を支援するため,本研究では,システムのソースコードを分析し,システム内の潜在的なサービス(候補)を抽出する手法を提案しています.具体的には,まずソースコードに対してリバースエンジニアリングを適用し,データフローダイアグラム(DFD)を取得します.次に,DFD上のデータを3つのカテゴリ(外部データ,システムデータ,モジュールデータ)に分類し,プロセス間の依存関係を性質付けます.最後に強い依存関係にあるプロセス群を,サービスとして抽出します. このサービス抽出の効率的な実施のため,以下の6つのルールを提案しています.

適用実験

提案手法をある酒在庫管理システムの実装に適用し,サービス抽出実験を行いました. その結果,ソースコードから妥当なサービス候補を抽出できることを確認しました.

sakaya001.gif

発表文献

[< 戻る]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS