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

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

1.1.3 SOAを構成する要素

SOAでは,「サービス」という考え方,およびビジネスプロセス管理を適用していますが,SOAでのサービスとビジネスプロセスとの関係を次の図に示します。

図1-5 SOAでのサービスとビジネスプロセスとの関係

[図データ]

業務の流れに従ったビジネスプロセスを基に,必要なサービスを呼び出して利用します。サービスの利用者,ビジネスプロセス,およびサービスの間の連携をエンタープライズサービスバス(ESB:Enterprise Service Bus)を介して実現します。

エンタープライズサービスバスは,サービスを組み合わせて実行する部分で,SOAの中心となる部分です。

次にSOAのビジネスプロセスとサービスについて説明します。

<この項の構成>
(1) ビジネスプロセス
(2) サービス

(1) ビジネスプロセス

一連の業務処理を実現する作業の流れをビジネスプロセスといいます。ビジネスプロセスを構成する要素を,業務(または業務と一対一であることからサービス)といいます。また,ビジネスプロセスと複数のサービスから構成される場合,複合サービスといいます。ビジネスプロセスは,複数の業務を緩やかに接続し,いつでも取り替えられる状態で連携させています。ビジネスプロセスの概要について,次の図に示します。

図1-6 ビジネスプロセスの概要

[図データ]

(2) サービス

SOAで利用するサービスとは,業務と一対一に対応し,再利用できるソフトウェア部品のことです。業務アプリケーションをサービスとして扱う(サービス化する)ことで,これまで分散していたシステムを,SOAを適用したシステムとして統合できます。SOAの考え方を適用した業務システムのサービス化とシステムの統合について,次の図に示します。

図1-7 業務システムのサービス化とシステムの統合

[図データ]

ネットワーク上に分散する業務アプリケーション,業務パッケージ,データベース操作などは,それぞれインターフェースが異なる場合があります。そのため,システムの統合が困難でした。Cosminexus サービスプラットフォームでは,業務アプリケーション,業務パッケージ,データベース操作などをサービス化して,共通の標準的なインターフェースを使用することで,分散している業務システムを統合できます。

サービスは独立性が高いため,あるサービスで障害が発生したり,業務のプロセスの見直しに伴ってあるサービスを追加・変更したりしても,ほかのサービスに与える影響が少ないという特長があります。また,既存のサービスを再利用することもできます。

(a) サービスとビジネスプロセスとの関係

ビジネスプロセスを構成するサービスは,互いに緩やかに連携しているため,障害が発生したり,システムを変更する必要があってサービスを入れ替えたりする場合にも,影響範囲がより小さいという利点があります。そのため,業務の手順の変更に即応してビジネスプロセスを変更できます。

また,あるビジネスプロセスで利用しているサービスを,ほかのビジネスプロセスで再利用することもできます。ビジネスプロセスを構成するサービスを追加・変更する場合の例を次の図に示します。

図1-8 ビジネスプロセスを構成するサービスの追加・変更例

[図データ]

(b) サービスのインターフェース

サービスには,業務に提供する機能を利用するためのインターフェースがあります。このインターフェースを通じて,ビジネスプロセスと連携します。インターフェースは,サービスの接点であり,サービスが提供できる機能や必要な入出力データを定義します。サービスが提供する機能の実装は,このインターフェースが入口となり,コンポーネントが担います。コンポーネントとは,サービスとして,要求のあった内容を処理する部分をいいます。コンポーネントには,同期処理や非同期処理をするオンライン型アプリケーションや,対話型アプリケーションなどがあり,新規開発や,既存システムの再利用,およびパッケージ導入などの方法が利用できます。サービスの構造を次の図に示します。

図1-9 サービスの構造

[図データ]

図1-9では,各業務は,要求に応じたコンポーネントを,インターフェースを経由して利用することを示しています。

(c) サービスの抽出とサービスの粒度

SOAを適用したシステムでは,開発から運用まですべてサービス単位で考えます。そのため,サービスの切り出し方やサービスの大きさによって,システムの性能や柔軟性が異なってきます。このサービスの切り出し方のことをサービスの抽出といいます。サービスの抽出では,業務内容を調査し,サービスが提供する機能を決めます。また,サービスが提供する機能の範囲(大きさ)を粒度といいます。SOAを適用したシステム開発では,粒度の決め方によって,システムがビジネス環境の変化に対応しやすくなるかどうかが決まります。

サービスの粒度は,業務体系や業務フロー,データの依存関係などから,総合的に決定します。サービスとして適切な粒度は,業務上の変更が発生する単位を基に決定します。業務の変化が発生する単位に近く,各サービスの独立性が高いと,サービスの組み替えによる変更で変化を吸収できます。このような単位がサービスの粒度として適切となります。

業務の変化が発生する単位に対してサービスが大き過ぎると,サービスの組み替えで変化に対応できなくなります。サービスの単位が小さ過ぎると,サービス間の依存関係が複雑になって,変化対応時の変更が一つのサービスで完結できなくなります。サービスの単位とサービスの粒度との関係を次の図に示します。

図1-10 サービスの単位とサービスの粒度との関係

[図データ]

ただし,業務の変化の内容によっては,上位階層のサービスが変化に対応しやすい場合があります。このような場合は,ビジネスプロセスを階層化することで対応できます。ビジネスプロセスと業務の階層化の例を次の図に示します。

図1-11 ビジネスプロセスと業務の階層化の例

[図データ]