機能と技術からわかる!システム基盤の実力

第9回 SOAによる情報システム構築のポイント②サービスの抽出と階層化

この記事を読むのに必要な時間:およそ 2 分

ビジネスプロセスの階層化とサービスI/Fの設計

前節で述べたサービス抽出の考え方を踏まえ,要件定義工程からビジネスプロセス設計,サービスI/F設計に至る流れを説明します。

要件定義工程では,システム化計画に基づき,機能要件の洗い出しと新業務フローを設計します。業務フローでは業務に関わる組織・担当者ごとに,業務の流れと授受される情報を定義していきます。業務フローの記法としては,一般に経済産業省がEA(エンタープライズアーキテクチャ)策定向けに提案しているWFA(Work-Flow Architecture)があります。

基本設計工程におけるビジネスプロセス設計では,新業務フローをBPMN(Business Process Modeling Notation)記法に変換後,BPMN図による階層化を行います。新業務フローと同等のBPMN図を基本フローとし,アクティビティごとにその業務の流れをさらにBPMN図で記載します。階層化にあたっては,業務の実施方法のバリエーションを考慮して,下位のビジネスプロセスにおけるアクティビティを設計します。

たとえば図4で示すビジネスプロセスでは,発注アクティビティを一段階階層化する様子を示しています。発注業務に内在するバリエーションである計画発注処理と,計画外の発注処理についてのフローを設計し,ビジネスプロセスを階層化します。 このようなビジネスプロセスの階層化において,前節で述べたようなサービス抽出を実施することにより,適切な粒度のサービスを決定します。

図4 ビジネスプロセス設計の成果物からサービス粒度を見直した例

図4 ビジネスプロセス設計の成果物からサービス粒度を見直した例

図4の下部は,図4の上半分で階層化したビジネスプロセスに対応したサービスの例を示しています。要件定義工程では,⁠発注」という業務全体をサービス候補としていましたが,この段階でサービスの粒度を見直し,階層化された下位のビジネスプロセスを構成する業務の「計画外発注処理」⁠計画発注処理」等をサービス候補として定めています。

さらにビジネスプロセス設計では,最下層のビジネスプロセスに記載しているアクティビティについてユースケースシナリオを作成します。ユースケースシナリオは,アクティビティごとの業務処理詳細を処理の順序に沿って文章で記載した成果物です。ユースケースシナリオでは,人が行う作業とそれに関連したシステム側の機能を明確にします。このユースケースシナリオは,アクティビティを実現するサービスの実現形態の決定やサービスを実現するアプリケーションの設計を行う際に活用します。

基本設計工程のサービスI/F設計では,階層化されたビジネスプロセスを元に,メッセージの構造や例外などを明確化し,サービスI/Fの仕様を設計します。なお,分岐条件の詳細仕様等のBPMN 図で表現できない仕様については,BPMN図とは別に作成します。またビジネスプロセス設計で仮決定していたサービスを決定し,サービスI/Fが所属するサービスを確定します。


次回は,これまで説明してきたことをふまえ,今度はフロントシステムの設計の方法と,実際のバックシステムとの連携が効果的な例を紹介します。