10.1.2 SOAを適用したシステム開発手法
SOAを適用したシステム開発では,その利点を生かすために,ビジネスプロセスおよびサービスのインターフェースの設計後に,サービスのコンポーネントを設計します。SOAを適用したシステム開発手法の全体像を次の図に示します。
SOAを適用したシステム開発手法には,大きく分けて,次に示す工程があります。
-
要件定義
ビジネスプロセスの基となる新業務フローを作成します。また,アーキテクチャ設計として機能以外の要件を調査し,システム方式を検討します。
-
基本設計
定義された要件を実現するためのビジネスプロセス,およびサービスのインターフェースを設計します。また,アプリケーション(コンポーネント,画面,データベース,およびアーキテクチャ)の機能も設計します。
-
詳細設計
ビジネスプロセスの各種仕様,およびアプリケーション設計の各種仕様に基づき,実装のための詳細な仕様を設計します。
-
実装・テスト
アプリケーションを実装し,運用に向けてテストします。
各工程で実施する作業について次に説明します。
- 〈この項の構成〉
(1) 新業務フローの作成
業務改革・改善方針,および業務問題分析結果に基づいて,機能要件を調査,新業務フローを作成します。WFA(Work-Flow Architecture)などの記法を使用して作成します。業務フローには,業務にかかわる組織や担当者,業務の流れ,および流れる情報を明示します。
業務フロー作成時には,システム化対象となる業務の機能に対して,サービス候補を決めておきます。また,各サービスの開発方針を決定し,新規開発,既存システムの再利用,パッケージソフトの導入,およびサービス型ソフトウェアの利用などを方針として決定します。これらの利用が決定している場合は,対象とする業務をサービスとして決めておきます。新業務フローの作成例を次の図に示します。
(2) ビジネスプロセスの設計
作成した新業務フローを基に,ビジネスプロセス図(基本フロー)を作成します。また,業務の観点で,ビジネスプロセスを構成する業務を,さらに詳細なビジネスプロセスとして段階的に階層化して,サービスの粒度を見直します。ビジネスプロセス図の作成例を次の図に示します。
(3) サービスのインターフェースの設計
システムの観点でビジネスプロセスを見直し詳細化します。これとともに,サービスの実装に必要なインターフェース(メッセージの構造や例外処理の追記など)を決定します。
対話ワークフローパターン,対話型アプリケーションパターン,およびオンライン型アプリケーションパターンに対応したインターフェースを設計します。また,この段階で,サービスの粒度についても最終的に決定します。
インターフェースには,サービスに対するインターフェースのほかに,ビジネスプロセス自体のインターフェースがあります。ビジネスプロセス自体も,連携先のサービスを組み合わせた複合的なサービスとなるため,インターフェースが必要となります。サービスおよびビジネスプロセスのインターフェースの設計例を次の図に示します。
(4) ビジネスプロセスの詳細設計
ビジネスプロセス,およびインターフェースの各種基本設計仕様を基に,実装に必要なビジネスプロセス定義や,サービスが授受する電文の詳細定義などを設計します。ビジネスプロセスについてはBPELを,インターフェースや電文についてはWSDLまたはXMLの言語を使用して設計や実装をします。
(5) コンポーネント設計
フロントシステムやサービスを実現するアプリケーションを設計します。サービスのコンポーネントは,プレゼンテーション層(画面関係),ファンクション層(業務機能),データ層の3層で構成され,3層ごとに設計します。Struts,JSFなど,業界標準の各種フレームワークを使用することを前提とした設計ができます。
(6) 画面設計
フロントシステムやサービスで,対話で必要な画面や画面遷移を設計します。画面設計は,開発全体にわたって設計を継続します。各工程では,次のように設計します。
-
要件定義:画面の簡易レイアウトによって,エンドユーザの要件を洗い出します。
-
基本設計:作成されたシナリオを基に,対話アプリケーションでの画面や画面遷移を設計します。
-
詳細設計:作成されたシナリオを基に,対話アプリケーションでのHTML,JSPなどを対象とした実装のための設計をします。