フロントシステム・サービスの設計・開発
本連載の第8回で紹介したように、抽出したサービスに対して表1のSOAシステムパターンに応じたサービスの実現形態を決定します。またこれに合わせてビジネスプロセスを呼び出すフロントシステムについても、実現形態を決定します。フロントシステム・サービスの設計・開発では、選択されたSOAシステムパターンに応じて詳細設計・実装を行います。
表1 SOAシステムパターン(第8回の表1と同じ)
# |
分類 |
パターン |
内容 |
1 |
フロントシステム |
対話型アプリケーション |
一人の作業者がアプリケーションを用いて業務を遂行する構成であり、当該アプリケーションは画面インタフェースにより作業者との間で入出力を授受し、サービスとの連携を実施する。 |
2 |
対話ワークフロー |
複数の作業者がそれぞれアプリケーションを用いて一連の業務を遂行する構成であり、複数の対話型アプリケーションを組み合わせた実現形態となる。 |
3 |
イベント駆動 |
時刻やファイル到着といったイベントに応じて、サービスを駆動する形態である。 |
4 |
サービス |
ビジネスプロセス |
ビジネスプロセスにより複数のサービスを組み合わせてサービスを実現する。サービス連携やメッセージ処理の流れは、SOAにおけるビジネスプロセス定義言語の業界標準であるBPEL(Business Process Execution Language)を用いて実現する。 |
5 |
オンライン型アプリケーション |
アプリケーションが問合せ応答処理によりサービスを実現する形態である。呼出元からの要求に応じてプログラム処理を実行して応答を返す(応答がない形態も含む)。たとえば Webサービスで実現するサービスは当パターンである。 |
6 |
対話型アプリケーション |
#1と同様に、一人の作業者がアプリケーションを用いて業務を遂行する構成である。当該アプリケーションは画面インタフェースにより、作業者との間で入出力を授受するとともに、ビジネスプロセスとの連携のためのサービス I/Fを備える。 |
7 |
対話ワークフロー |
#2と同様に、複数の作業者がそれぞれアプリケーションを用いて一連の業務を遂行する構成である。複数の対話型アプリケーションを組み合わせた実現形態となるが、アプリケーションの一部がビジネスプロセスとの連携のためのサービスI/Fを備える。 |
図1は、サービスに対してSOAシステムパターンを選択する様子を示しています。単一の作業者が業務を遂行する形態のサービスには、対話型アプリケーションパターンを選択します。複数の作業者が業務を遂行する形態のサービスには、対話ワークフローパターンを選択します。さらに作業者が介在せずプログラムにより処理を実施する形態のサービスには、オンライン型アプリケーションパターンを選択します。
サービスの実現形態としては、前述したように、対話型アプリケーションパターン、オンライン型アプリケーションパターン、対話ワークフローパターンを選択できますが、これらのアプリケーションでは、ビジネスプロセスと連携するために、サービスI/Fをファンクション層(業務機能)に設けます。
対話型アプリケーションパターンでは、図2に示すWebアプリケーションのように、プレゼンテーション層として画面I/Fを持つ一方で、ファンクション層においてビジネスプロセスとの連携のためのサービスI/Fを設けます。また問い合せ応答処理を実装するオンライン型アプリケーションでは、図2のプレゼンテーション層を持たない構成となります。対話ワークフローパターンでは、図2のサービスコンポーネントを複数個、組み合わせる構成となります。
一方フロントシステムとしては、表1にある対話型アプリケーションパターン、対話ワークフローパターン、イベント駆動パターンを選択できます。図3に示すように、フロントシステムの対話型アプリケーションパターンではファンクション層からビジネスプロセスを呼び出す処理を設けることができます。これはビジネスプロセスもサービスコンポーネントと同様にサービスI/Fを持つことができるため、このサービスI/Fを介したビジネスプロセス呼び出し処理が可能となります。フロントシステムの対話ワークフローパターンでは、図3のコンポーネントを複数個組み合わせる構成となります。
フロントシステム・サービスの開発例
先に述べたように、フロントシステム・サービスは表1の「SOAシステムパターン」に従ったアプリケーションとして開発します。最後に、こうした開発例のうち、日立uCosminexusで実現できる特徴的な例を紹介しましょう。
COBOLによるオンライン型アプリケーション
プログラムによって処理を実行するオンライン型アプリケーションの開発方法としては、Javaを用いた開発以外にもCOBOLを利用して開発することもできます。
Javaによる開発は比較的よく知られているので、ここでは日立Cosminexusを使ったSOAシステム構築で特徴的な、COBOLでの開発例を紹介しましょう。
COBOL2002 Cosminexus連携機能によるアプリケーション開発
COBOL2002の Cosminexus連携機能や TP1/COBOL adapter for Cosminexus Version 2を用いてCOBOLアクセスBeanを開発することにより、COBOLアプリケーションを uCosminexus Application Server上のWebサービスとして実行できます。
COBOLアプリケーションの実行イメージを図4に示します。WebサービスラッパーおよびCOBOLアクセスBeanを介する形でCOBOLアプリケーションの呼び出しを行うことができます。
イベント駆動パターンの開発
もう1つ、ファイル到着といったイベントや日時や時刻といったスケジュールに応じてビジネスプロセスを駆動する処理の開発の例を紹介します。イベント駆動には、ジョブスケジューラ(JP1/AJS3)の利用が有効です。
ここでは、統合システム運用管理「JP1」によるイベント駆動の基本的な開発モデルを図5に示します。
- ① ジョブスケジューラを起動させるイベントまたはスケジュールを定義。ファイル到着や日付、時刻など
- ② ビジネスプロセスの呼び出し方法を定義
ビジネスプロセスを呼び出す場合、JP1のSOA連携オプションを利用し、上記①、②を行うことで、イベントに応じてビジネスプロセスを呼び出すことができます。また、JP1は複数ジョブの呼び出しを制御できます。標準ジョブとしてバッチファイルなどの非常駐プログラムを呼び出すことができるため、それらのジョブとビジネスプロセスを組み合わせることもできます。
駆け足でしたが、SOAシステム開発の流れについて大まかに解説してきました。Cosminexusを使ったSOAシステム開発の全貌については、この記事の元となったホワイトペーパーに詳しく載っています。ぜひご覧になってください。
- 出典:Cosminexusホワイトペーパー「SOAによる情報システム構築方法 プロセス統合編」
- URL:http://www.hitachi.co.jp/Prod/comp/soft1/cosminexus/whitepaper/pdf/wp_soa_sp.pdf