Cosminexus サービスプラットフォーム 概説

[目次][用語][索引][前へ][次へ]

1.2 SOAを適用したシステム開発

この節では,SOAを適用したシステム開発の利点や,特徴などについて説明します。

システム開発の点でもSOAを適用すると,次に示す利点があります。

このような利点を生かすために,SOAを適用したシステム開発では,ビジネスプロセス,およびサービスのインターフェースの設計後に,サービスのコンポーネントを設計します。SOAを適用したシステム開発手法の全体像を次の図に示します。

図1-12 SOAを適用したシステム開発手法の全体像

[図データ]

SOAを適用したシステム開発手法には,大きく分けて,次に示す工程があります。

各工程で実施する作業について次に説明します。

<この節の構成>
(1) 新業務フローの作成
(2) ビジネスプロセスの設計
(3) サービスのインターフェースの設計
(4) ビジネスプロセスの詳細設計
(5) コンポーネント設計
(6) 画面設計
(7) データベース設計
(8) アーキテクチャ設計

(1) 新業務フローの作成

業務改革・改善方針,および業務問題分析結果に基づいて,機能要件を調査,新業務フローを作成します。WFA(Work-Flow Architecture)などの記法を使用して作成します。業務フローには,業務にかかわる組織や担当者,業務の流れ,および流れる情報を明示します。

業務フロー作成時には,システム化対象となる業務の機能に対して,サービス候補を決めておきます。また,各サービスの開発方針を決定し,新規開発,既存システムの再利用,パッケージソフトの導入,およびサービス型ソフトウェアの利用などを方針として決定します。これらの利用が決定している場合は,対象とする業務をサービスとして決めておきます。新業務フローの作成例を次の図に示します。

図1-13 新業務フローの作成例

[図データ]

(2) ビジネスプロセスの設計

作成した新業務フローを基に,ビジネスプロセス図(基本フロー)としてBPMN(Business Process Modeling Notation)で作成します。また,業務の観点で,ビジネスプロセスを構成する業務を,さらに詳細なビジネスプロセスとして段階的に階層化して,サービスの粒度を見直します。ビジネスプロセス図の作成例を次の図に示します。

図1-14 ビジネスプロセス図の作成例

[図データ]

(3) サービスのインターフェースの設計

システムの観点でビジネスプロセスを見直し詳細化します。これとともに,サービスの実装に必要なインターフェース(メッセージの構造や例外処理の追記など)を決定します。

対話ワークフローパターン,対話型アプリケーションパターン,およびオンライン型アプリケーションパターンに対応したインターフェースを設計します。また,この段階で,サービスの粒度についても最終的に決定します。

インターフェースには,サービスに対するインターフェースのほかに,ビジネスプロセス自体のインターフェースがあります。ビジネスプロセス自体も,連携先のサービスを組み合わせた複合的なサービスとなるため,インターフェースが必要となります。サービスおよびビジネスプロセスのインターフェースの設計例を次の図に示します。

図1-15 サービスおよびビジネスプロセスのインターフェースの設計例

[図データ]

(4) ビジネスプロセスの詳細設計

ビジネスプロセス,およびインターフェースの各種基本設計仕様を基に,実装に必要なビジネスプロセス定義や,サービスが授受する電文の詳細定義などを設計します。ビジネスプロセスについてはBPELを,インターフェースや電文についてはWSDLまたはXMLの言語を使用して設計や実装をします。

(5) コンポーネント設計

フロントシステムやサービスを実現するアプリケーションを設計します。サービスのコンポーネントは,プレゼンテーション層(画面関係),ファンクション層(業務機能),データ層の3層で構成され,3層ごとに設計します。Struts,JSFなど,業界標準の各種フレームワークを使用することを前提とした設計ができます。

(6) 画面設計

フロントシステムやサービスで,対話で必要な画面や画面遷移を設計します。画面設計は,開発全体にわたって設計を継続します。各工程では,次のように設計します。

(7) データベース設計

フロントシステムやサービスで扱われるデータの分析から,データベースのテーブル設計までをします。データベース設計は,開発全体にわたって設計を継続します。各工程では,次のように設計します。

(8) アーキテクチャ設計

システム化計画に基づき,機能以外の要件を調査し,対象システム全体のアーキテクチャ概要を設計します。その際,新業務フロー作成でサービス候補として挙げたサービスの開発方針を考慮して,既存システムとの連携方式,およびパッケージソフトウェアとの連携方式を検討します。基本設計工程から詳細設計工程にわたって設計を継続し,機能以外の要件に対応するシステムの方式を設計します。