SOAとは
企業の情報システムは,ビジネス活動の変化や迅速化を支えることが期待されています。しかし実際にビジネスニーズに応じてシステムの変更や拡張を行おうとすると,影響範囲の特定が難しく改修が広範囲になったり,複数のシステムを人手で連携させている場合が多く,非効率で活用が属人的ノウハウに依存しているといった問題があります。
このような情報システムの課題を解決する手段として有効なのが SOA(Service-Oriented Architecture)です。SOAは情報システムを構築する手法とアーキテクチャの考え方です。その特徴は「サービス」というソフトウェアコンポーネントの考え方を導入し,情報システムを「サービス」の組み合わせによって構築することです。
SOAによる情報システム構築の考え方
SOAによる情報システム構築の基本的な考え方を図1に示します。
サービスとは,「発注」や「受入検収」,「返品」といった業務とソフトウェアの境界を一致させたもので,ビジネス活動を構成する業務を実現するために必要な機能とインタフェース(サービスI/F)を持つソフトウェアコンポーネントのことを指します。サービスは,サービスI/Fを介してメッセージにより入出力データの受け渡しを行います。
またビジネスプロセスとは,複数のサービスを組み合わせて連携させた一連の処理の流れを定めたものです。ビジネスプロセスはサービスI/Fを介してメッセージ授受を行うことにより,サービスと連携するとともに,サービス間のメッセージの流れを定義します。またビジネスプロセス自身もサービスを組み合わせた複合的なサービスとなり,サービスI/Fを持ちます。
これらのビジネスプロセスやサービスは,システムの設計段階において,業務の流れからビジネスプロセスを段階的に階層化していき,その中で抽出したサービスをソフトウェアコンポーネントに対応させたものになります。
また,サービスを利用するソフトウェアコンポーネントのことをフロントシステムと呼び,ビジネスプロセスを駆動する役割を持ちます。
SOAシステムパターン
SOAを用いたシステム構築において,フロントシステムとサービスの実現方法のバリエーションを分類したものをSOAシステムパターンと呼びます。システムの要件に応じて,フロントシステムとサービスの最適なパターンを組み合わせてシステムを実現することがポイントとなります。フロントシステムとサービスの主なバリエーションを表1に示します。
表1 SOAシステムパターン
| # | 分類 | パターン | 内容 |
|---|---|---|---|
| 1 | フロントシステム | 対話型アプリケーション | 一人の作業者がアプリケーションを用いて業務を遂行する構成であり,当該アプリケーションは画面インタフェースにより作業者との間で入出力を授受し,サービスとの連携を実施する。 |
| 2 | 対話ワークフロー | 複数の作業者がそれぞれアプリケーションを用いて一連の業務を遂行する構成であり,複数の対話型アプリケーションを組み合わせた実現形態となる。 | |
| 3 | イベント駆動 | 時刻やファイル到着といったイベントに応じて,サービスを駆動する形態である。 | |
| 4 | サービス | ビジネスプロセス | ビジネスプロセスにより複数のサービスを組み合わせてサービスを実現する。サービス連携やメッセージ処理の流れは,SOAにおけるビジネスプロセス定義言語の業界標準であるBPEL(Business Process ExecutionLanguage)を用いて実現する。 |
| 5 | オンライン型アプリケーション | アプリケーションが問合せ応答処理によりサービスを実現する形態である。呼出元からの要求に応じてプログラム処理を実行して応答を返す(応答がない形態も含む)。たとえば Webサービスで実現するサービスは当パターンである。 | |
| 6 | 対話型アプリケーション | #1と同様に,一人の作業者がアプリケーションを用いて業務を遂行する構成である。当該アプリケーションは画面インタフェースにより,作業者との間で入出力を授受するとともに,ビジネスプロセスとの連携のためのサービス I/Fを備える。 | |
| 7 | 対話ワークフロー | #2と同様に,複数の作業者がそれぞれアプリケーションを用いて一連の業務を遂行する構成である。複数の対話型アプリケーションを組み合わせた実現形態となるが,アプリケーションの一部がビジネスプロセスとの連携のためのサービスI/Fを備える。 |
フロントシステムやサービスは,アプリケーションプログラムにより実現されます。サービスにはその実現形態として表1の#4~7のようなバリエーションがあります。またビジネスプロセスにより複数のサービスを組み合わせるパターンがあります。同様にフロントシステムにも実現形態としていくつかのバリエーション(パターン)があります。
SOAシステムパターンを組み合わせたシステム構築の例を以下に挙げます。
サービスオーダ管理業務への適用例
通信業でのサービスオーダ管理業務にSOAを適用した例を図2に示します。
これは,フロントシステムに対話型アプリケーションパターン,サービスにオンライン型アプリケーションパターンを適用した例です。顧客管理サービスや工事管理サービスなど複数のオンライン型アプリケーションをビジネスプロセスを用いて組み合わせることにより,ワンストップサービスを提供できます。顧客が申し込みWeb画面から必要な情報を入力することにより,顧客システムの設定から料金の設定まで一連の流れを自動化することができます。

