説明

プログラム生成装置、その方法及びプログラム

【課題】従来のように、ビジネスプロセス(BP)実行エンジンからビジネスルール(BR)実行エンジンを呼び出す必要が無く、BPの処理を効率化させるBP/BR実行システムに実装するプログラムを生成するプログラム生成装置を提供する。
【解決手段】本発明のプログラム生成装置は、BP及びBR実行エンジンを有し、ウェブサービスを実行するBP/BR実行システムに実装するプログラムを生成する装置であり、BP定義体ファイルからプログラムを生成するためのプログラム生成情報を読み出すBP定義体解析部と、プログラム生成情報と予め設定されたフォーマットにより、プロセスを実行する、プロセス識別情報で識別されるサーブレットを生成するサーブレット生成部と、サーブレットに記述されたプロセス識別情報に対応するプロセスの委譲先を、BP、BR実行エンジンいずれかに設定するサービスアダプタを生成するサービスアダプタ生成部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Web(ウェブ)サービスを利用するビジネスプロセス及びビジネスルールの実行環境を提供するビジネスプロセス/ビジネスルール実行システムで用いるプログラムを生成するプログラム生成装置、その方法及びプログラムに関する。
【背景技術】
【0002】
従来より、コンピュータシステムの機能に標準のインターフェースを備えて、他のコンピュータシステムから当該コンピュータシステムを利用可能とするWebサービスが知られている。
また、一定の処理を定義するビジネスプロセス(Business Process)に基づき、複数のWebサービスと連携してビジネスプロセスの処理を実行するビジネスプロセス実行システムが知られている。このビジネスプロセスは、ある特定の問題を解決する相互に関連するタスク(複数のプロセス)が集積されたものである。
【0003】
このビジネスプロセス実行システムは、業務処理の実行順序をビジネスプロセス定義体として定義し、このビジネスプロセス定義体に示された順序に、構成要素のプロセスの示す業務処理を実行していく(例えば、特許文献1参照)。
このビジネスプロセス実行システムは、通常、データベースにおけるデータの検索、読み出し、書き込み及び編集などのビジネスプロセス特有の処理を行い、複雑な演算処理(判定、比較を含む論理演算や、数値計算など)のビジネスルール特有の処理が実行できない構成となっている。
このため、従来のビジネスプロセス実行システムは、複雑な演算処理を行うビジネスルールの処理の実行の際、それぞれ実行するビジネスルールを定義し、ビジネスプロセス実行の処理の中から、ビジネスルール実行システムを呼び出している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−55562号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、従来のビジネス実行システムは、複雑な演算処理を行えない構成であるため、複雑な演算処理をビジネスルール実行システムに代行させて実行させる仕組み、あるいは複雑な演算処理を行う機能を、業務仕様におけるビジネスルール毎に特別に生成して実装させておく必要がある。
このため、従来のビジネス実行システムには、自身の主たる処理であるビジネスプロセスの処理が実行される際、ビジネスルール実行システムの呼出処理などの不必要な負荷がかかり、ビジネスプロセスの処理の動作が寸断されるなどのため非効率になる問題がある。
【0006】
また、業務仕様が入力された際、業務仕様を構成するプロセスの処理の内容により、ビジネスプロセス実行システムあるいはビジネスルール実行システムのいずれかに振り分ける構成を、業務仕様におけるビジネスルールの処理に対応させて個別に、作業者が予め作成しておく必要がある。
この振り分ける構成は、ビジネスルールの処理に対応して、ビジネスルール毎に個別に作成されるために汎用性が低く、ビジネスプロセス実行エンジンあるいはビジネスルールの変更に伴い、振り分ける構成も変更が必要となるため、作業者の開発工数が多くなってしまう欠点がある。
【0007】
本発明は、このような事情に鑑みてなされたもので、従来のように、ビジネスプロセス実行エンジンからビジネスルール実行エンジンを呼び出す必要が無く、かつビジネスプロセス実行エンジンあるいはビジネスルール実行エンジンの変更に伴う作業者の作業の増加を無くすことが可能なビジネスプロセス/ビジネスルール実行システムに用いるプログラムを生成するプログラム生成装置、その方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のプログラム生成装置は、ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置であり、前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析部と、前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成部と、前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成部とを備えることを特徴とする。
【0009】
本発明のプログラム生成装置は、前記サービスアダプタ生成部が、前記サービスアダプタ内部に、前記ビジネスプロセス定義体における前記プロセス識別情報の各々と、ビジネスプロセス実行エンジン及びビジネスルール実行エンジンのいずれかを示す情報とが対応付けられた対応テーブルを生成し、当該サービスアダプタが当該対応テーブルにより、前記サーブレットから前記プロセスの処理を委譲する委譲先を、当該プロセスのプロセス識別情報により、当該対応テーブルを参照して設定することを特徴とする。
【0010】
本発明のプログラム生成装置は、前記サービスアダプタ生成部が、前記ビジネスプロセス定義体における前記プロセス毎に前記サービスアダプタを生成し、当該サービスアダプタが、自身と対応する前記プロセスの前記プロセス識別情報と、当該プロセス識別情報に対応するプロセスを委譲する委譲先であるビジネスプロセス実行エンジン及びビジネスルール実行エンジンのいずれかを示す情報と有し、前記サービスアダプタが、自身のプロセス識別情報と対応する前記プロセスを、前記委譲先に委譲することを特徴とする。
【0011】
本発明のプログラム生成装置は、前記プロセスの委譲先が前記ビジネスプロセス実行エンジンである場合、前記サーブレットが生成する前記ビジネスプロセス実行エンジンとデータの授受を行う第1ビーンのインターフェース及びデータの形式を、当該ビジネスプロセス実行エンジンの処理する形式に変換するビジネスプロセスラッパーを生成するビジネスプロセスラッパー生成部と、前記プロセスの委譲先が前記ビジネスルール実行エンジンである場合、前記サーブレットが生成する前記ビジネスルール実行エンジンとデータの授受を行う第2ビーンのインターフェース及びデータの形式を、当該ビジネスルール実行エンジンの処理する形式に変換するビジネスルールラッパーを生成するビジネスルールラッパー生成部と、をさらに備えることを特徴とする。
【0012】
本発明のプログラム生成装置は、前記ルール識別情報が記述されていないプロセス毎に、当該プロセスの前記プロセス識別情報に対応付けられて生成され、前記ビジネスプロセス定義体ファイルにおける前記プロセスの記述を、前記ビジネスプロセス実行エンジンが解読可能なフォーマットに変換するビジネスプロセス定義体変換部をさらに備えることを特徴とする。
【0013】
本発明のプログラム生成装置は、前記ビジネスプロセス定義体ファイルから抽出される前記ルール識別情報と、当該ルール識別情報に対応する、前記ビジネスルール実行エンジンが実行する処理が記述されたビジネスルール定義体ファイルが存在するか否かにより、前記ビジネスプロセス定義体ファイルと前記ビジネスルール定義体ファイルとの整合性のチェックを行うビジネスルール定義体ファイル解析部をさらに有することを特徴とする。
【0014】
本発明のプログラム生成方法は、ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置を動作させるプログラム生成方法であり、ビジネスプロセス定義体解析モジュールが、前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析過程と、サーブレット生成モジュールが、前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成過程と、サービスアダプタ生成モジュールが、前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成過程とを備える。
【0015】
本発明のプログラムは、ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置であるコンピュータに、前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析手段、前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成手段と、前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成手段、として機能させるためのプログラムである。
【発明の効果】
【0016】
この発明によれば、ルール識別情報の有無により、ビジネスプロセス実行エンジン及びビジネスルール実行エンジンのいずれにプロセスの処理を実行させるかを振り分けるサービスアダプタを生成させることができるため、ビジネスプロセス処理の実行に、従来のシステムのように、ビジネスルール実行エンジンの呼出処理などの不必要な負荷をかけることを無くし、ビジネスプロセス処理の動作が非効率となることを抑制することが可能なビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを容易に生成することができる。
【0017】
また、この発明によれば、ビジネスプロセスの処理に対し、処理の内容によりビジネスプロセス実行システムあるいはビジネスルール実行システムのいずれかに振り分ける構成であるサービスアダプタをプロセス毎に整合をとって自動生成するため ビジネスプロセス実行エンジンが変更されたとしても、ビジネスプロセス/ビジネスルール実行システムに実装されるプログラムの生成における作業者の開発工数を、従来のように増加させることがない。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態によるプログラム生成装置1で作成した各プログラムにより動作するビジネスプロセス/ビジネスルール実行システムの構成例を示す図である。
【図2】サーブレット24とビジネスルール実行エンジン22との間でデータの送受信を行う際に、データを送受信するコンテナのインターフェース及びデータの形式の概念を示す図である。
【図3】サーブレット24とビジネスプロセス実行エンジン21との間でデータの送受信を行う際に、データを送受信するコンテナのインターフェース及びデータの形式の概念を示す図である。
【図4】ビジネスルール定義体ファイル302のプロセスルール処理の記述の構成の一例を示す図である。
【図5】この発明の一実施形態によるプログラム生成装置の構成例を示すブロック図である。
【図6】ビジネスプロセス/ビジネスルール実行システムにおけるプログラムを生成する際に用いるプログラム制御情報が記述された、ビジネスプロセス定義体ファイルとしてのテーブルの一例を示す図である。
【図7】本実施形態のプログラム生成装置1によるビジネスプロセス/ビジネスルール実行システムにおけるプログラムを生成する動作を示すシーケンス図である。
【図8】ビジネスプロセス定義体ファイル301から抽出したプログラム生成情報により、ルール識別情報が付加(添付)されていないプロセスに対応して生成される各種プログラムを示す概念図である。
【図9】ビジネスプロセス定義体ファイル301から抽出したプログラム生成情報により、ルール識別情報が付加されているプロセスに対応して生成される各種プログラムを示す概念図である。
【図10】プロセス識別情報「1」、「2」及び「3」のプロセスから構成される業務処理から生成される各種プログラムを示す概念図である。
【図11】ビジネスプロセス定義体ファイル301のルール識別情報が付加されていないプロセスを処理する場合の、作成ビジネスプロセス/ビジネスルール実行システムの動作を示すシーケンス図である。
【図12】ビジネスプロセス定義体ファイル301のルール識別情報が付加されているプロセスを処理する場合の、作成ビジネスプロセス/ビジネスルール実行システムの動作を示すシーケンス図である。
【図13】複数画面において同一の情報を引き継ぎたい情報がある場合におけるプロセス情報定義体ファイル301のテーブルの記述例を示す図である。
【発明を実施するための形態】
【0019】
<ビジネスプロセス/ビジネスルール実行システムで用いるプログラム生成>
ビジネスプロセス/ビジネスルール実行システムで用いるプログラムを生成するプログラム生成装置について説明する前に、作成するプログラムがどのような機能を有するかを明確とするため、ビジネスプロセス/ビジネスルール実行システムの構成について説明する。
【0020】
以下、図面を参照して、本発明の実施形態によるプログラム生成装置で生成したプログラムが実装されるビジネスプロセス/ビジネスルール実行システムを説明する。図1は、本発明の実施形態によるプログラム生成装置が実装されたビジネスプロセス/ビジネスルール実行システムの構成例を示すブロック図である。
この図1におけるビジネスプロセス/ビジネスルール実行システムは、動作環境として、例えば、JAVA(登録商標)が用いられている。
ビジネスプロセス/ビジネスルール実行システムは、ウェブサーバー2と、サーバー記憶部3とを備えている。
【0021】
ここで、ウェブサーバー2は、ビジネスプロセス(Business Process)実行エンジン21、ビジネスルール(Business Rules)実行エンジン22、JSP(Java(登録商標) Server Pages)モジュール(以下、JSP)23、サーブレット(servlet)モジュール(以下サーブレット)24(24A、24B)、サービスアダプタ(ServiceAdapter)モジュール(以下、サービスアダプタ)25、ビジネスプロセスラッパーモジュール(以下、ビジネスプロセスラッパー)26、ビジネスルールラッパー(Business Rules Wrapper)モジュール(以下、ビジネスルールラッパー)27と、DB(データベース)210及びビジネスルール定義体ファイル記憶部200を備えている。ウェブサーバー2には、インターネットを含む通信網を介してclient(ユーザの端末としてのパーソナルコンピュータなど)が接続されている。
【0022】
サーバー記憶部3には、予めJSP23、サーブレット24、サービスアダプタ25、ビジネスプロセスラッパー26、ビジネスルールラッパー27の各々のプログラムのソースコードと、ビジネスが記述されたファイルが記憶されている。
JSP23のソースコードが記述されたファイルはJSPファイルであり、サーブレット24のソースコードが記述されたファイルはサーブレットファイル102であり、サービスアダプタ25のソースコードが記述されたファイルはサービスアダプタファイル103であり、ビジネスプロセスラッパー26のソースコードが記述されたファイルはビジネスプロセスラッパーファイル104であり、ビジネスルールラッパー27のソースコードが記述されたファイルはビジネスルールラッパーファイル105である。これらのソースコードのファイルの生成については後述する。
また、サーバー記憶部3には、ビジネスプロセス実行エンジン21が行うプロセスの内容が記述されたビジネスプロセス定義体(XML)ファイル101が、予め設定されている(詳細については後述)。
さらに、サーバー記憶部3には、業務処理名とこの業務処理名の業務処理を構成するプロセス識別番号(プロセスID、すなわち以降のプロセス識別情報)の組み合わせの業務処理テーブルが記憶されている。
【0023】
ウェブサーバー2は、clientによりアクセスされることにより、サーバー記憶部3からJSP23のプログラムファイルを読み出し、インスタンス化してJSP23を実行させる。
JSP23は、インスタンス化されて実行された後、clientに実装されているウェブブラウザからの供給される、例えばHTML(HyperText Markup Language)で記述されたJSPファイルを解析し、業務処理を構成するプロセス識別情報を抽出し、抽出したプロセス識別情報に対応するサーブレットの起動を行う。
すなわち、ウェブサーバー2には、データと、いずれのサーブレットを起動するかを示す情報、すなわちプロセス識別情報とを含むJSPファイルがclientから供給される。
例えば、JSP23は、clientから供給されるプロセス識別情報に対応するサーブレットファイル102(クラスが記述されたJAVA(登録商標)ファイル)を、サーバー記憶部3から読み出し、読み出したサーブレットファイル102に記述されている変数にデータを代入してインスタンス化し、オブジェクトとしてサーブレット24(24A、24B)を起動して実行させる。
【0024】
この結果、JSP23は、サーブレット24A及び24Bを、JSPファイル毎(あるいはユーザ毎)に生成して実行する。
ここで、インスタンス化されたサーブレット24A、24Bには、ウェブサーバー2がclientを識別するため、例えば、一般的なセッション管理機能(PHP:Hypertext Preprocessor4.0)を用い、セッション変数としてセッションIDが付与されている。
また、以下の説明において、サーブレット24Aはルール識別情報(ルールID)が付加されている(記述されている)プロセスに対応し、サーブレット24Bはルール識別情報が付加されていないプロセスに対応しているとして説明する。
【0025】
ウェブサーバー2は、サーブレットファイル102がインスタンス化され、オブジェクトとしてサーブレット24A(ルール識別情報が記述されている)が生成されたことにより、このサーブレット24Aのプロセス識別情報に対応するビジネスルールラッパーファイル105(クラスが記述されたJAVA(登録商標)ファイル)を、このプロセス識別情報を検索キーとしてサーバー記憶部3から読み出す。
また、ウェブサーバー2は、読み出したビジネスルールラッパーファイル105に記述された変数に必要なデータを代入してインスタンス化し、オブジェクトとしてビジネスルールラッパー27を起動して実行させる。
【0026】
次に、図2は、サーブレット24(例えば、24A)とビジネスルール実行エンジン22との間でデータの送受信を行う際に、データを送受信するコンテナのインターフェース及びデータの形式の概念を示す図である。
このビジネスルールラッパー27は、サーブレット24Aがビジネスルール実行エンジン22に対してビジネスルール処理を委譲する際、委譲する処理に用いるデータを含んでサーブレット24Aにより起動されるビーン(Bean、例えばPaymentStatusBean)のインターフェース及びデータ(予約販売額合計及び予約入金額合計)の形式を、ビジネスルール実行エンジン22が処理可能となるインターフェース及びデータ(予約販売額合計及び予約入金額合計)の形式に変換する。また、サーブレット24Aは、ルール識別情報が記述されて付加(添付)されたプロセスに対応して生成されるため、起動するPaymentStatusBeanに対し、プロセス識別情報に加え、このプロセスに対応したルール識別情報も記述されて付加(以降付加とする)されている。
【0027】
すなわち、ビジネスルールラッパー27は、サービスアダプタ25が起動したPaymentStatusBeanのインターフェース及びデータの形式を、ビジネスルール実行エンジン22の形式に変換する。
そして、ビジネスルールラッパー27は、変換したPaymentStatusBeanを、処理を委譲するためのインターフェースコンテナ(KSession)に書き込むことで、ビジネスルール実行エンジン22に対してデータの受け渡し、すなわち処理の委譲を行う。ここで、ビジネスルールラッパー27は、自身に対応するプロセス識別信号に対応して予め内部に設定されている変換条件に従って、PaymentStatusBeanのインターフェース及びデータの形式の変換を行う。
【0028】
一方、ビジネスルールラッパー27は、ビジネスルール実行エンジン22からサーブレット24Aに対してビジネスルール処理の結果が供給される際、ビジネスルール実行エンジン22からインターフェースコンテナ(KSession)におけるPaymentStatusBeanに処理結果のデータが書き込まれると、このPaymentStatusBean(サーブレット24Aに対応するプロセスのプロセス識別情報とルール識別情報とが付加されている)のインターフェース及びデータの形式を、サーブレット24Aがデータを入力する形式に変換する。
【0029】
すなわち、ビジネスルールラッパー27は、ビジネスルール実行エンジン22から処理結果のデータがインターフェースコンテナ(KSession)のPaymentStatusBeanに書き込まれると、このPaymentStatusBeanのインターフェース及びデータの形式の変換を行う。
そして、ビジネスルールラッパー27は、変換後のPaymentStatusBeanをサービスアダプタ25に対して出力する。
ここで、ビジネスルールラッパー27は、自身に対応するプロセス識別信号に対応して、インターフェースコンテナのインターフェース及びデータの形式の変換を行う。
【0030】
図1に戻り、ウェブサーバー2は、サーブレットファイル102がインスタンス化され、オブジェクトとしてサーブレット24B(ルール識別情報が付加されていない)が起動されたことにより、このサーブレット24Bのプロセス識別情報に対応するビジネスプロセスラッパーファイル104(クラスが記述されたJAVA(登録商標)ファイル)を、このプロセス識別情報を検索キーとしてサーバー記憶部3から読み出し、ビジネスプロセスラッパーファイル104に記述された変数に必要なデータを代入してインスタンス化し、オブジェクトとしてビジネスプロセスラッパー26を起動して実行させる。
【0031】
次に、図3は、サーブレット24(例えば、24B)とビジネスプロセス実行エンジン21との間でデータの送受信を行う際に、データを送受信するコンテナのインターフェース及びデータの形式の概念を示す図である。
このビジネスプロセスラッパー26は、サーブレット24Bがビジネスプロセス実行エンジン21に対してビジネスプロセス処理を委譲する際、委譲する処理に用いるデータを含んでサーブレット24Bにより起動されるビーン(Bean、例えばReservationBean)のインターフェース及びデータ(予約予約番号及び予約申込者名)の形式を、ビジネスプロセス実行エンジン21が処理可能となるインターフェース及びデータ(予約予約番号及び予約申込者名)の形式に変換する。
【0032】
すなわち、ビジネスプロセスラッパー26は、サービスアダプタ25が起動したReservationBeanのインターフェース及びデータの形式を、ビジネスプロセス実行エンジン21の形式に変換する。
そして、ビジネスプロセスラッパー26は、変換したReservationBeanを、処理を委譲するためのインターフェースコンテナ(ServiceSession)に書き込むことで、ビジネスプロセス実行エンジン21に対してデータの受け渡し、すなち処理の委譲を行う。ここで、ビジネスプロセスラッパー26は、自身に対応するプロセス識別信号に対応して予め内部に設定されている変換条件に従って、ReservationBeanのインターフェース及びデータの形式の変換を行う。
【0033】
一方、ビジネスプロセスラッパー26は、ビジネスプロセス実行エンジン21からサーブレット24Bに対してビジネスプロセス処理の結果が供給される際、ビジネスプロセス実行エンジン21からインターフェースコンテナ(ServiceSession)におけるReservationBeanに処理結果のデータが書き込まれると、このReservationBean(サーブレット24Bに対応するプロセスのプロセス識別情報が付加されている)のインターフェース及びデータの形式を、サーブレット24Bがデータを入力する形式に変換する。
【0034】
すなわち、ビジネスプロセスラッパー26は、ビジネスプロセス実行エンジン21から処理結果のデータがインターフェースコンテナServiceSessionのReservationBeanに書き込まれると、このReservationBeanのインターフェース及びデータの形式の変換を行う。
そして、ビジネスプロセスラッパー26は、変換後のReservationBeanをサービスアダプタ25に対して出力する。
ここで、ビジネスプロセスラッパー26は、自身に対応するプロセス識別信号に対応して、インターフェースコンテナのインターフェース及びデータの形式の変換を行う。
【0035】
図1に戻り、ウェブサーバー2は、サーバー記憶部3に記憶されている複数のサーブレットファイル102から、いずれかのサーブレットファイル102が読み出され、インスタンス化されてオブジェクトとして実行されると、サービスアダプタファイル103(クラスが記述されたJAVA(登録商標)ファイル)をサーバー記憶部3から読み出す。
また、ウェブサーバー2は、読み出したサービスアダプタファイル103に記述された変数に、必要なデータを代入してインスタンス化し、オブジェクトとしてサービスアダプタ25を起動して実行させる。
【0036】
このサービスアダプタ25は、サーブレット24に対応するプロセスのプロセス識別情報と、このプロセスの処理を委譲する実行エンジンのエンジン識別子との対応を示す対応テーブルを有している。ビジネスプロセス定義体(後に詳細に説明)におけるプロセスにルール識別情報が記述されている場合、このプロセスに対応して生成されたサーブレット24Aの処理の委譲先はビジネスルール実行エンジン22である。一方、ビジネスプロセス定義体におけるプロセスにルール識別情報が記述されていない場合、このプロセスに対応して生成されたサーブレット24Bの処理の委譲先はビジネスプロセス実行エンジン21である。
また、サービスアダプタ25は、サーブレット24が起動するビーン(ReservationBeanまたはPaymentStatusBean)に記述されているプロセス識別情報と同一のプロセス識別情報を対応テーブルから検索する。
そして、サービスアダプタ25は、対応テーブルにおいて検索されたプロセス識別情報に対応して記憶されているエンジン識別情報の示す実行エンジン(ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22)を、プロセスの処理の委譲先に設定する。
【0037】
ビジネスプロセス実行エンジン21は、インターフェースコンテナ(ServiceSession)に書き込まれたデータとプロセス識別番号とにより、ビジネスプロセス処理(例えば、DB210(データベース)に対するデータの検索、読み出し、書き込み、編集)を行う。
サーブレット24Bが後述するビジネスプロセス定義体におけるプロセス識別番号「1」のプロセスに対応した処理としてビジネスプロセス処理を実行する場合、このプロセス識別情報「1」のプロセスは、「予約基本を検索する」処理する。すなわち、ビジネスプロセス実行エンジン21は、サーブレット24Bから委譲されたデータである予約予約番号及び予約申込者名を検索キーとして、この検索キーに対応して記憶されているデータを、DB210に記憶されているデータの中から検索する(処理の詳細は後述)。
【0038】
また、ビジネスプロセス実行エンジン21は、インターフェースコンテナ(ServiceSession)に書き込まれたReservationBeanに付加されているデータ及びプロセス識別情報により、サーバー記憶部3に記憶されているビジネスプロセス定義体(XML)ファイル101の中から、同一のプロセス識別情報が付加されたビジネスプロセス定義体(XML)ファイル101を読み出す。
また、ビジネスプロセス実行エンジン21は、読み出したビジネスプロセス定義体(XML)ファイル101に従い、ReservationBeanを介してサーブレット24Bから供給されたデータを用いてビジネスプロセスの処理を行う。
【0039】
一方、ビジネスルール実行エンジン22は、インターフェースコンテナ(KSession)に書き込まれたPaymentStatusBeanに付加されているデータ及びプロセス識別番号により、ビジネスルール処理(例えば、論理演算、数値計算などの演算処理)を行う。
サーブレット24Aが後述するビジネスプロセス定義体におけるプロセス識別番号「2」のプロセスに対応した処理としてビジネスルール処理を実行する場合、このプロセス識別情報「2」のプロセスは、「入金ステータスを検索する」処理を行う。すなわち、ビジネスルール実行エンジン22は、サーブレット24Aから委譲されたデータである予約販売額合計と予約入金額合計とを比較し、この比較結果に応じて設定されている入金ステータスを、内部に設けられたステータステーブルから検索する(処理の詳細は後述)。
【0040】
また、ビジネスルール実行エンジン22は、インターフェースコンテナ(KSession)に書き込まれたルール識別情報により、ビジネスルール定義体ファイル記憶部200に記憶されているビジネスルール定義体ファイル302の中から、同一のプロセス識別情報が付加されたビジネスルール定義体ファイル302を読み出す。
また、ビジネスルール実行エンジン22は、読み出したビジネスルール定義体ファイル302に記述された論理演算あるいは数値演算の式などに従い、PaymentStatusBeanを介してサーブレット24Aから供給されたデータを用いてビジネスプロセスの処理を行う。
【0041】
DB210には、本実施形態においては、例えば、旅行会社の顧客管理のデータベースであり、予約毎に、予約予約番号、予約申込者名、予約出発日、予約従業員名、予約予約日とが対応付けられて記憶されている。
ビジネスルール定義体ファイル記憶部200には、ビジネスルール実行エンジン22が実行するビジネスルール処理の内容が記述されたビジネスルール定義体ファイル302が、このビジネスルール定義体ファイル302を一意に示すルール識別情報とともに記憶されている。
本実施形態によるプログラム生成装置は、上述したサーブレット24、サービスアダプタ25、ビジネスプロセスラッパー26、ビジネスルールラッパー27のプログラムを生成し、それぞれのソースコードが記述された、サーブレットファイル102、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104、ビジネスプロセスルールラッパーファイル105を出力し、サーバー記憶部3へ書き込む処理を行う。
【0042】
図4は、ビジネスルール定義体ファイル302のプロセスルール処理の記述の構成の一例を示す図である。
図4のビジネスルール定義体ファイル302に記述されたプロセスルール処理は、既に説明したサーブレット24Aのプロセスの処理に対応しており、データとして入力された予約販売額合計と予約入金額合計とを比較し、比較結果に応じて設定されている入金ステータスを出力することである。
ビジネスルール定義体ファイル302における入金ステータスとしては、「未入金」、「一部入金」、「入金済」、「入金超過」が設定されている。図4に示すビジネスルール定義体ファイル302におけるこれらステータスとデータの比較処理(プロセスルール処理)の種類とは、以下に示す対応関係にある。
・未入金 :予約入金額合計が「0」である場合
・一部入金:予約入金額合計が「0」でなく、かつ予約販売額合計が予約入金額合計よ り大きい
・入金済み:予約販売額合計と予約入金額合計とが等しい
・入金超過:予約販売額合計が予約入金額合計より小さい
【0043】
次に、図面を参照して、本発明の実施の形態であるビジネスプロセス/ビジネスルール実行システムで用いるプログラムの生成方法について説明する。図5は、この発明の一実施形態による、ビジネスプロセス/ビジネスルール実行システム(例えば、本実施形態においてはJAVA(登録商標)にて実装されている)で使用されるプログラムを生成するプログラム生成装置の構成例を示す概略ブロック図である。
この図5において、プログラム生成装置1は、ビジネスプロセス(Business Process)定義解析部11、ビジネスプロセス定義体ファイル変換部12、サーブレット(servlet)生成部13、サービスアダプタ(ServiceAdapter)生成部14、ビジネスプロセスラッパー(Business Process Wrapper)生成部15、ビジネスルールラッパー(Business Rules Wrapper)生成部16、ビジネスルール定義体ファイル解析部17及びビジネスルール定義体ファイル配備部18、記憶部19を備えている。
【0044】
次に、図6は、ビジネスプロセス/ビジネスルール実行システムで使用されるプログラムを生成する際に用いるプログラム生成情報が記述された、ビジネスプロセス定義体ファイル301におけるテーブルの一例を示す図である。このビジネスプロセス定義体ファイル301は、業務処理毎に、ビジネスプロセス/ビジネスルール実行システムを作成する作業者により記述されて作成される。
この図6は、下記に示す項目を表形式に記述する仕様、例えばエクセル(登録商標)などにより記述されている。
業務処理は、図6に示すように複数個のプロセス、あるいは1個のプロセスから構成されている。
【0045】
図6のテーブルのビジネスプロセス定義としては、
項目A:プロセスを一意に識別するプロセス識別情報
項目B:プロセス識別情報で識別されるプロセスの名称であるプロセス名
項目C:プロセスの処理の種別あるいは項目の操作種別
項目D:プロセスが操作対象とするテーブル名及びテーブル内の項目を示す操作項目情 報
項目E:プロセスの操作対象のテーブルの詳細情報である操作対象
項目F:プロセスがビジネスルールの処理である場合に、このビジネスルールを一意に識別するルール識別情報
の各項目における定義から構成されている。
【0046】
本実施形態において、プログラム生成情報とは、図6に示すビジネスプロセス定義体ファイル301におけるテーブルに記述されているプロセス識別情報、プロセス名、項目種別、操作項目情報(アトリビュート名)、操作対象、ルール識別情報(存在する場合のみ)を有している。
例えば、図6に示すビジネスプロセス定義体ファイル301におけるテーブルにおいて、プロセス識別情報(項目A)は、番号の欄に記述された「1」である。プロセス名(項目B)は、プロセス名の欄に記載された「予約基本を検索する」である。項目種別(項目C)は、項目種別の欄に記載されたプロセスの処理の種別である「SEARCH」、及びプロセスの処理における項目の操作情報である「Search」あるいは「Output」である。操作項目情報(項目D)は、ラベル名(エンティティ名)・ラベル名(アトリビュート名)及びエンティティ名・アトリビュート名の欄に記載されており、ラベル名(エンティティ名)である「予約」、ラベル名(アトリビュート名)である「予約予約番号」、「予約申込者名」、「予約出発日」、「予約従業員名」などであり、エンティティ名である「Reservation」であり、アトリビュート名である「reservationReservationReferenceld」、「reservationReservationApplicantName」などである。
【0047】
また、詳細情報(項目E)は、操作対象パスの欄に記述された「Reservation」などである。ルール識別情報(項目F)は、プロセス識別情報「2」における行における外部ルールの欄に記載された、ルール識別情報である「d_rule_001」などである。
図示はしていないが、プロセスにおける操作情報として、入力(Input)の欄に入力であるか否かを示すマークとして記述され、転記(Cascade)の欄に情報をいずれかに移しかえるか否かを示すマークとして記述され、任意(Optional)の欄に、対応するラベル(アトリビュート名)の情報の入力が任意であることを示すマークとして記述され、複数(Multiple)の欄に、対応するラベル(アトリビュート名)の情報の数が複数か否かを示すマークとして記述され、比較(Operetor)の欄に、対応するラベル(アトリビュート名)を検索する際に、完全一致(=)か部分一致(like)であるかを示す情報が記述されている。
【0048】
図5に戻り、ビジネスプロセス定義解析部11は、図6に示すテーブルとしてのビジネスプロセス定義体ファイル301を、ユーザの操作により、外部機器あるいは外部記憶部から読み込み、記憶部19に書き込んで記憶させる。
また、ビジネスプロセス定義解析部11は、このビジネスプロセス定義体ファイル301を記憶部19から順次読み出し、業務処理を構成するプロセス毎に、プログラム生成情報を構成するプロセス識別情報、プロセス名、項目種別、操作項目情報、操作情報、操作対象、ルール識別情報の各々を抽出して読み出す。
ビジネスプロセス定義解析部11は、読み出したプロセス毎のプログラム生成情報に対し、対応するプロセスのプロセス識別情報を付加し、プロセス毎に記憶部19に一旦書き込んで記憶させる。
また、ビジネスプロセス定義解析部11は、ビジネスプロセス定義体ファイル301のテーブルにおいて、予め入力データが必要と設定されている項目に、ユーザからの入力データが記述がされていない場合、あるいは、プロセス名、項目種別、アトリビュート名などがビジネスプロセス実行エンジン及びビジネスルール実行エンジンで使用されている記述でない場合、ビジネスプロセス定義体ファイル301の記述に不備があることを図示しない、表示部などの出力部を介して作業者に対して通知する。
【0049】
ビジネスプロセス定義体ファイル変換部12は、記憶部19から読み出した業務処理を構成する各プロセスのプログラム生成情報における項目種別、操作項目情報及び操作情報により、予め設定されたフォーマットの形式、すなわちビジネスプロセス実行エンジン21(図1)が解読できる形式のビジネスプロセス定義体(XML)ファイル101を生成する。ここで、ビジネスプロセス定義体ファイル変換部12は、ルール識別情報が付加されているか否かの判定を行い、ルール識別情報が付加されていないプロセスのみに対し、ビジネスプロセス定義体(XML)ファイル101を生成する。
【0050】
例えば、ビジネスプロセス定義体ファイル変換部12は、XML(Extensible Markup Language)形式で、プログラム生成情報の各項目が記述された、プロセス毎のビジネスプロセス定義体(XML)ファイル101を生成する。
このとき、ビジネスプロセス定義体ファイル変換部12は、記憶部19におけるビジネスプロセス定義体ファイルテンプレート記憶領域から、ビジネスプロセス定義体ファイルテンプレートを読み出す。
このビジネスプロセス定義体ファイルテンプレート記憶領域には、プロセス識別情報、項目種別、操作項目情報及び操作情報の組み合わせ毎に、図6に示すビジネスプロセス定義体ファイルにおけるプロセス単位で、ビジネスプロセス実行エンジン21が解読できる形式のビジネスプロセス定義体ファイルテンプレート記憶されている。
そして、ビジネスプロセス定義体ファイル変換部12は、この読み出したビジネスプロセス定義体ファイルテンプレートに対し、記憶部19から読み出したプロセス識別情報、項目種別、操作項目情報及び操作情報を追記して、プロセス毎のビジネスプロセス定義体(XML)ファイル101を生成する。
【0051】
サーブレット生成部13は、記憶部19から読み出した業務処理を構成する各プロセスのプログラム生成情報におけるプロセス識別情報、項目種別、操作項目情報により、予め設定されたフォーマットの形式の記述に対応したサーブレットのプログラムが記述されたサーブレットファイル102を生成する。このサーブレットファイル102は、ウェブサーバー上で実行され、例えばJSPと連携してウェブページを構築するサーブレット24のプログラムのソースコードが記述されたファイルである(後述)。
このとき、サーブレット生成部13は、記憶部19のサーブレットテンプレート記憶領域において、項目種別毎にプロセス単位で記憶されている、サーブレットテンプレートに、記憶部19から読み出したプロセス識別情報、項目種別、操作項目情報を追記して、プロセス毎のプログラムを生成し、このれらのプログラムが記述されたサーブレットファイル102を出力する。
【0052】
サービスアダプタ生成部14は、ビジネスプロセス定義体ファイル301のプロセス毎に、各プロセスの処理の委譲先を、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれにするかを示すプログラムである。
すなわち、サービスアダプタ生成部14は、プロセス識別情報毎に、当該プロセス識別情報が示すプロセスを、ビジネスプロセス実行エンジン21及びビジネスルール実行エンジン22のいずれかに委譲するかを示す対応テーブルを含み、プロセス識別情報が入力された際に、この対応テーブルを参照して、プロセス識別情報の示すプロセスの処理を、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれかに委譲するプログラムを生成し、このプログラムが記述されているサービスアダプタファイル103を出力する。
【0053】
ビジネスプロセスラッパー生成部15は、ルール識別情報が含まれていないプロセスのプログラム生成情報から生成されたサーブレット24(例えば、サーブレット24B)に対応するビジネスプロセスラッパー26のプログラムを生成し、このプログラムのソースコードが記述されたビジネスプロセスラッパーファイル104を出力する。
このビジネスプロセスラッパー26は、既に説明したように、サーブレット24がデータを委譲するために用いるビーン(ReservationBean)のインターフェースの形式及びデータの形式を、ビジネスプロセス実行エンジン21のインターフェース及びデータの形式に対応させる変換を行い、変換したインターフェースコンテナServiceSessionに配置し、逆に、インターフェースコンテナServiceSessionにおけるReservationBeanのインターフェースの形式及びデータの形式を、サーブレット24のインターフェースの形式及びデータの形式に対応する変換を行い、処理をサービスアダプタ25に委譲する処理を行うプログラムである。
【0054】
すなわち、ビジネスプロセスラッパーファイル104には、サーブレット24がプロセスの処理の委譲をビジネスプロセス実行エンジン21に対して行う際、サーブレット24がデータの出力を行うReservationBeanのインターフェース(出力)の形式及びデータの形式を、ビジネスプロセス実行エンジン21のインターフェース(入力)に対応した形式及びデータの形式に変換し、ビジネスプロセス実行エンジン21がプロセスの処理の結果をサーブレットに出力する際、ビジネスプロセス実行エンジンの出力するインターフェース(出力)の形式及びデータの形式を、サーブレット24のインターフェース(入力)の形式及びデータの形式に変換する処理を行うプログラムが記述されている。
また、ビジネスプロセスラッパー生成部15は、プロセス毎に入出力されるデータの種類や数が異なるため、すなわちプロセス毎にインターフェース及びデータが異なるため、ビジネスプロセスラッパー26のプログラムをプロセス毎に生成する。ここで、データの形式とは、byte、short、int、longなどのデータ型(変数)を示している。
【0055】
ビジネスルールラッパー生成部16は、ルール識別情報が含まれているプロセスのプログラム生成情報から生成されたサーブレット24(例えば、サーブレット24A)に対応するビジネスルールラッパー27のプログラムを生成し、このプログラムのソースコードが記述されたビジネスルールラッパーファイル105を出力する。
このビジネスルールラッパー27は、既に説明したように、サーブレット24がデータを委譲するために用いるビーン(PaymentStatusBean)のインターフェースの形式及びデータの形式を、ビジネスルール実行エンジン22のインターフェース及びデータの形式に対応させる変換を行い、変換したインターフェースコンテナKSessionに配置し、逆に、インターフェースコンテナKSessionにおけるPaymentStatusBeanのインターフェースの形式及びデータの形式を、サーブレット24のインターフェースの形式及びデータの形式に対応する変換を行い、処理をサービスアダプタ25に委譲する処理を行うプログラムである。
【0056】
すなわち、ビジネスルールラッパーファイル105には、サーブレット24がプロセスの処理の委譲をビジネスルール実行エンジン22に対して行う際、サーブレット24がデータの出力を行うインターフェース(出力)及びデータの形式を、ビジネスルール実行エンジン22のインターフェース(入力)及びデータの形式に変換し、ビジネスルール実行エンジン22がプロセスの処理の結果をサーブレットに出力する際、ビジネスルール実行エンジン22の出力するインターフェース(出力)及びデータの形式を、サーブレットのインターフェース(入力)及びデータの形式に変換する処理を行うプログラムが記述されている。
また、ビジネスルールラッパー生成部16は、ビジネスプロセスラッパー生成部15と同様に、プロセス毎に入出力されるデータの種類や数が異なるため、すなわちプロセス毎にインターフェースが異なるため、ビジネスルールラッパー27のプログラムをプロセス毎に生成する。
【0057】
上述したサーブレットファイル102、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104及びビジネスルールラッパーファイル105の各々は、プログラムのソースコードが記述されたファイル、例えばJAVA(登録商標)ファイルである。
また、プログラム生成装置1は、作成されたサーブレットファイル102、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104及びビジネスルールラッパーファイル105の各々のファイルを、一旦記憶部19に書き込んで記憶させ、後にウェブサーバーのサーバー記憶部3に書き込んで記憶させることにより、ウェブサーバー2に実装する。
【0058】
ビジネスルール定義体ファイル解析部17は、ユーザの操作により、外部機器あるいは外部記憶部からビジネスルール定義体ファイル302を読み込み、記憶部19に書き込んで記憶させる。
また、ビジネスルール定義体ファイル解析部17は、記憶部19からビジネスルール定義体ファイル302を読み出し、このビジネスルール定義体ファイル302に記述されているルール識別情報を抽出する。
ビジネスルール定義体ファイル解析部17は、ビジネスプロセス定義体ファイル301から抽出したルール識別情報と同一ファイル名のビジネスルール定義体ファイル302が、記憶部19に記憶されているビジネスルール定義体ファイル302の中に存在するか否かの検出を行う(整合性のチェックを行う)。本実施形態においては、ルール識別情報と、この識別情報に対応するビジネスルール定義体ファイルのファイル名とは、同一の文字列を用いている。
ここで、ビジネスルール定義体ファイル解析部17は、ビジネスプロセス定義体ファイル301から抽出したルール識別情報と同一ファイル名のビジネスルール定義体ファイルが、記憶部19に記憶されているビジネスルール定義体ファイル302の中に存在しない場合、整合性が取れないことを示すエラーメッセージを表示装置等の出力部から出力することによりユーザに対して通知する。
【0059】
ビジネスルール定義体ファイル解析部17は、ビジネスプロセス定義体ファイル301から抽出したルール識別情報と同一ファイル名のビジネスルール定義体ファイルが、記憶部19に記憶されているビジネスルール定義体ファイル302に存在した場合、整合性が取れたことを示すメッセージを表示装置等の出力部からユーザに対して通知する。
また、ビジネスルール定義体ファイル配備部18は、ビジネスプロセス定義体ファイル301とビジネスルール定義体ファイル302との整合性が取れると、整合性が取れたビジネスルール定義体ファイル302を記憶部19から読み出し、ビジネスルール実行エンジン22が読み出しを行うビジネスルール定義体ファイル記憶部200へ書き込んで記憶させる(ビジネスルール定義体ファイル302のコピーを行う)。
【0060】
上述した構成により本実施形態によれば、業務処理を構成するプロセスの各々にルール識別情報が付加されているか否かにより、ビジネスプロセス実行エンジン21及びビジネスルール実行エンジン22のいずれにサーブレット24のプロセスの処理を実行させるかを振り分けるサービスアダプタ25のプログラムを、ビジネスプロセス定義体ファイル301の記載に整合させて生成させることができる。
このため、本実施形態によれば、ビジネスプロセス実行エンジン21におけるビジネスプロセス処理の実行において、従来のように、ビジネスルール実行エンジン22における呼出処理などの不必要な負荷をかける処理が無くなり、ビジネスプロセス処理の動作の効率を向上させることが可能なビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを容易に生成することができる。
【0061】
また、本実施形態によれば、ビジネスプロセス処理に対し、処理の内容によりビジネスプロセス実行システムあるいはビジネスルール実行システムのいずれかに振り分ける構成であるサービスアダプタをプロセス毎に整合をとって自動生成するため ビジネスプロセス実行エンジンが変更されたとしても、ビジネスプロセス/ビジネスルール実行システムに実装されるプログラムの生成における作業者の開発工数を、従来のように増加させることがない。
【0062】
また、本実施形態においては、サービスアダプタ生成部14が、ビジネスプロセス/ビジネスルール実行システムで用いるプロセスの全てに対して1つのサービスアダプタを生成している。すなわち、本実施形態においては、サービスアダプタ生成部14が、プロセス識別情報とプロセス識別情報の示すプロセスの処理の委譲先の実行エンジンとの対応を示す対応テーブルを参照し、各プロセスの処理をそれぞれプロセス識別情報に対応した実行エンジンに委譲するサービスアダプタを生成する。
しかしながら、プロセス毎に1つのサービスアダプタ25を生成するように、サービスアダプタ生成部14を構成してもよい。この場合、サービスアダプタ25は、自身に設定されているプロセス識別情報に対応するプロセスの処理を、自身に設定された委譲先(ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれか)に委譲する処理を行う機能を有する。
【0063】
また、本実施形態のプログラム生成装置1は、サーバー、パーソナルコンピュータなどのコンピュータを用い、ビジネスプロセス定義解析部11、ビジネスプロセス定義体ファイル変換部12、サーブレット生成部13、サービスアダプタ生成部14、ビジネスプロセスラッパー生成部15、ビジネスルールラッパー生成部16、ビジネスルール定義体ファイル解析部17及びビジネスルール定義体ファイル配備部18の各々を、プログラム上のモジュールとして動作させるように構成しても良い。
【0064】
次に、図7を用いて、本実施形態のプログラム生成装置1によるビジネスプロセス/ビジネスルール実行システムに用いるプログラムを生成する処理を説明する。図7は、本実施形態のプログラム生成装置1によるビジネスプロセス/ビジネスルール実行システムに用いるプログラムを生成する動作を示すシーケンス図である。
ステップS1:
ビジネスプロセス定義解析部11は、入力されるテーブル形式のビジネスプロセス定義体ファイル301から、プログラム生成情報であるプロセス識別情報、プロセス名、項目種別、操作項目情報、操作情報、操作対象、ルール識別情報の各々を、プログラム生成情報として抽出して読み出し、プロセス毎にプロセス識別情報に対応させて、記憶部19に書き込んで記憶させる。
【0065】
次に、サーブレット生成部13は、記憶部19からプロセス毎に、順次プログラム生成情報を読み出し、このプログラム生成情報におけるサーブレットテンプレート記憶領域から、当該プロセスの項目種別に対応するプログラムのテンプレートを読み出す。
そして、サーブレット生成部13は、読み出したテンプレートに対し、プロセス識別情報を含むプログラム生成情報の各データを追記することにより、サーブレット24のプログラムのソースコードを生成し、このサーブレット24のソースコードが記述されたサーブレットファイル102を生成する。
これにより、サーブレット生成部13は、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22に、ビジネスプロセス定義体ファイル301の各プロセスに記述された処理を実行させるサーブレット24のプログラムを生成し、生成されたサーブレット24のプログラムのソースコードを、サーブレットファイル102としてプロセス識別情報に対応させて記憶部19に書き込んで記憶させる。
【0066】
ステップS2:
ビジネスプロセス定義体ファイル変換部12は、記憶部19に記憶されているプロセス毎に、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスプロセス定義体ファイル変換部12は、ルール識別情報が付加されていないプロセスに対応するプログラム生成情報を順次読み出す。
また、ビジネスプロセス定義体ファイル変換部12は、記憶部19に記憶されているビジネスプロセス定義体ファイルのテンプレートを読み出す。このビジネスプロセス定義体ファイルのテンプレートは、ビジネスプロセス実行エンジン21が解読する形式のビジネスプロセス定義体ファイルを生成する元になる。
プログラム生成情報を読み出すと、ビジネスプロセス定義体ファイル変換部12は、読み出したプログラム生成情報の各データを、ビジネスプロセス定義体ファイルのテンプレートに追記し、ビジネスプロセス実行エンジン21が解読できる形式のビジネスプロセス定義体(XML)ファイル101を生成し、プロセス識別情報に対応させて記憶部19に書き込んで記憶させる。
【0067】
ステップS3:
サービスアダプタ生成部14は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、サービスアダプタ生成部14は、ルール識別情報が付加されていないサーブレット24処理の委譲先をビジネスプロセス実行エンジン21とし、ルール識別情報が付加されているサーブレット24の処理の委譲先をビジネスルール実行エンジン22と判定する。
【0068】
これにより、サービスアダプタ生成部14は、プロセス識別情報と、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれか一方を委譲先とする委譲先情報とが対応付けられた対応テーブルが付加され、プロセス識別情報に対応した委譲先情報に記載された実行エンジンに対し、サーブレット24の処理を委譲するサービスアダプタ25を生成し、このサービスアダプタ25のプログラムのソースコードが記述されたサービスアダプタファイル103を出力する。
また、サービスアダプタ生成部14は、生成したサービスアダプタファイル103を、記憶部19に書き込んで記憶させる。
【0069】
ステップS4:
ビジネスプロセスラッパー生成部15は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスプロセスラッパー生成部15は、判定の結果、ルール識別情報が付加されていない場合、サーブレット24がデータの入出力に用いるビーンと、ビジネスプロセス実行エンジン22がデータの入出力に用いるインターフェースコンテナServiceSession内に配置する際に、インターフェース及びデータの形式を、サーブレット24とビジネスプロセス実行エンジン22とにおける出力側の形式を入力側の形式に合わせるビジネスプロセスラッパー26を生成する。
ビジネスプロセスラッパー生成部15は、生成したビジネスプロセスラッパー26のビジネスプロセスラッパーファイル104を、記憶部19に書き込んで記憶させる。
【0070】
ステップS5:
ビジネスルールラッパー生成部16は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスルールラッパー生成部16は、判定の結果、ルール識別情報が付加されている場合、サーブレット24がデータの入出力に用いるPaymentStatusBeanを、ビジネスルール実行エンジンがデータの入出力に用いるインターフェースコンテナKSession内に配置する際に、インターフェース及びデータの形式を、サーブレット24とビジネスルール実行エンジン22とにおける出力側の形式を入力側の形式に合わせるビジネスルールラッパー27を生成する。
ビジネスルールラッパー生成部16は、生成したビジネスルールラッパー27のビジネスルールラッパーファイル105を、記憶部19に書き込んで記憶させる。
【0071】
ステップS6:
ビジネスルール定義体ファイル解析部17は、記憶部19に記憶されている全てのプロセスのプログラム生成情報からルール識別情報を含むプログラム生成情報を検出し、このプログラム生成情報からルール識別情報を抽出する。
そして、ビジネスルール定義体ファイル解析部17は、抽出したルール識別情報と同一のファイル名を有するビジネスルール定義体ファイル302が、記憶部19に記憶されているビジネスルール定義体ファイル302に存在するか否かの判定により、ビジネスプロセス定義体ファイル301のルール識別情報を有するプロセスと、ビジネスルール定義体ファイル302との整合が取れているか否かの整合性チェックを行う。
【0072】
チェック結果において、ビジネスルール定義体ファイル解析部17は、抽出したルール識別情報の全てが、同一ファイル名のビジネスルール定義体ファイル302と対応付けられた場合、ビジネスルール定義体ファイル302とルール識別情報との整合性が取れたと判定し、ビジネスルール定義体ファイル配備部18に対し、整合性が取れたことを示す制御信号を出力する。
一方、ビジネスルール定義体ファイル解析部17は、プログラム生成情報から抽出したルール識別情報の中において、記憶部19に記憶されているビジネスルール定義体ファイル302のファイル名と対応付けられないルール識別情報が存在する場合、ビジネスルール定義体ファイル302とルール識別情報との整合性が取れないと判定する。
そして、ビジネスルール定義体ファイル解析部17は、この整合性が取れないと判定されたプロセスのプロセス識別情報を示すエラーメッセージを出力部からユーザに通知する。
【0073】
次に、ビジネスルール定義体ファイル配備部18は、ビジネスルール定義体ファイル解析部17から、整合性が取れたことを示す制御信号が供給されると、整合性が取れたビジネスルール定義体ファイル302を、ビジネスルール定義体ファイル記憶部200へ書き込んで記憶させる。
【0074】
次に、図8は、ビジネスプロセス定義体ファイル301から抽出したプログラム生成情報により、ルール識別情報が付加されていないプロセスに対応して生成される各種プログラムを示す概念図である。
この図8に示されているように、ビジネスプロセス定義体ファイル301において、ルール識別情報が付加されていないプロセス識別情報「1」のプロセス(プロセス識別情報「3」のプロセスも同様)に対応するテーブルの記述を、ビジネスプロセス実行エンジン21の解読可能な形式としたビジネスプロセス定義体(XML)ファイル101が生成される。
同様に、ビジネスプロセス定義体(XML)ファイル101と同様に、サーブレットファイル102がサーブレット生成部13により、またビジネスプロセスラッパーファイル104がビジネスプロセスラッパー生成部15により、プロセス毎に生成される。
【0075】
また、図9は、ビジネスプロセス定義体ファイル301から抽出したプログラム生成情報により、ルール識別情報が付加されているプロセスに対応して生成される各種プログラムを示す概念図である。
この図9に示されているように、ビジネスプロセス定義体ファイル301において、ルール識別情報が付加されているプロセス識別情報「2」のプロセスに対応するプログラム生成情報から、サーブレットファイル102がサーブレット生成部13により、またビジネスプロセスラッパーファイル104がビジネスプロセスラッパー生成部15により、プロセス毎に生成される。
また、図8及び図9に記載されているサービスアダプタファイル103は、既に説明したように、ルール識別情報が付加されていない、あるいは付加されているに係わらず、記憶部19に記憶されているビジネスプロセス定義体ファイル302の全てに含まれる全プロセスに対して1つ生成される。
【0076】
次に、図10は、プロセス識別情報「1」、「2」及び「3」のプロセスから構成される業務処理から生成される各種プログラムを示す概念図である。
既に、図8及び図9において説明したように、サーブレットファイル102は、ルール識別情報が付加されているか否かによらず、プロセスに対して1個生成される。このため、図10の業務処理のビジネスプロセス定義体ファイル301のプロセスが3個のため、このビジネスプロセス定義体ファイル301の場合に、サーブレットファイル102はサーブレット生成部13によって3個生成される。
また、ビジネスプロセス定義体(XML)ファイル101は、ルール識別情報が付加されていないプロセスのみに対して生成される。このため、図10のビジネスプロセス定義体ファイル301には、ルール識別情報が付加されていないプロセスは、プロセス識別情報「1」及び「3」の2個であり、ビジネスプロセス定義体(XML)ファイル101は、ビジネスプロセス定義体ファイル変換部12により2個生成される。
【0077】
また、ビジネスプロセスラッパーファイル104は、ルール識別情報が付加されていないプロセスのみに対して生成される。このため、図10のビジネスプロセス定義体ファイル301には、ルール識別情報が付加されていないプロセスは、プロセス識別情報「1」及び「3」の2個であり、ビジネスプロセスラッパーファイル104は、ビジネスプロセスラッパー生成部15により2個生成される。
また、ビジネスルールラッパーファイル105は、ルール識別情報が付加されているプロセスのみに対して生成される。このため、図10のビジネスプロセス定義体ファイル301には、ルール識別情報が付加されているプロセスは、プロセス識別情報「2」の1個であり、ビジネスルールラッパーファイル105は、ビジネスルールラッパー生成部16により1個生成される。
【0078】
上述した各種プログラムは、複数の業務処理において、同一のプロセス識別情報が付加されているプロセスが重複する場合、同一のプロセス識別情報のプロセスについて1個のプログラムのみが生成される。
すなわち、ビジネスプロセス定義体ファイル変換部12、サーブレット生成部13、サービスアダプタ生成部14、ビジネスプロセスラッパー生成部15及びビジネスルールラッパー生成部16の各々は、新たにプログラムを生成する際、既に生成したプログラムのプロセス識別情報と、これから生成しようとするプログラムのプロセス識別情報とを比較し、一致しない場合にプログラムを生成し、一方、一致した場合にプログラムを生成しない。
また、サービスアダプタファイル103は、全てのプロセスに対して1個、すなわち本実施形態のビジネスプロセス/ビジネスルール実行システムに対して入力される全ての業務処理のビジネスプロセス定義体ファイル301のプロセスに対して1個が、サービスアダプタ生成部14により生成される。
【0079】
<ビジネスプロセス/ビジネスルール実行システム>
次に、図1及び図11を用いて、本実施形態によるプログラム生成装置で生成したプログラムを用いた作成ビジネスプロセス/ビジネスルール実行システムの動作を説明する。図11は、ビジネスプロセス定義体ファイルにおけるルール識別情報が付加されていないプロセスを処理する場合における、ビジネスプロセス/ビジネスルール実行システムの動作を示すシーケンス図である。
【0080】
ステップS111:
ユーザがclientを介してウェブサーバー2にアクセスする。これにより、ウェブサーバー2は、JSP23をインスタンス化して実行させる。
JSP23は、業務処理の種類と、この処理とに用いるデータとを入力する画面をclientへ、図示しないインターネットなどからなる通信回線を介して送信する。
ユーザは、clientの表示装置に表示された業務処理の種類と、この業務処理とに用いるデータを入力欄に入力する。例えば、図6に示すように、ユーザが業務処理として「予約基本を検索する」を、データとして「予約番号」及び「予約申込者名」を入力欄にキーボード等により入力すると、clientは入力欄に入力された「予約基本を検索する」と、データとして「予約番号」及び「予約申込者名」とを含むJSPファイルをウェブサーバー2に対して、通信回線を介して送信する。
【0081】
ステップS112:
JSP23は、clientから入力されたJSPファイルから、業務処理の「予約基本を検索する」と、データの「予約番号」及び「予約申込者名」とを抽出し、この「予約基本を検索する」という業務処理(業務処理名)に対応するプロセス識別情報の組み合わせを、この業務処理名を検索キーとして、サーバー記憶部3の業務処理名テーブルから検索する。
そして、JSP23は、検索した業務処理名に対応するプロセス識別情報の組み合わせ、すなわち、プロセス識別情報「1」、「2」及び「3」の組み合わせを業務処理名テーブルから読み出す。
【0082】
また、JSP23は、プロセス識別情報「1」、「2」及び「3」の順番で処理を行うため、プロセス識別情報「1」に対応するサーブレットファイル102をサーバー記憶部3から読み出し、データトして「予約番号」及び「予約申込者名」とを変数に代入し、インスタンス化することでサーブレット24Bを実行させる。
同様に、ウェブサーバー2は、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104の各々をサーバー記憶部3から読み出し、インスタンス化することにより、サービスアダプタ25、ビジネスプロセスラッパー26を実行させる。
【0083】
ステップS113:
サーブレット24Bは、データの入出力を行うプログラムのビーンオブジェクトReservationBeanを起動して、自身のプロセスに対応するプロセス識別情報「1」と、データの「予約番号」及び「予約申込者名」とを、この起動したReservationBeanに代入する。
すなわち、サーブレット24Bは、自身のデータ「予約番号」及び「予約申込者名」を検索キーとしたDB210に検索する処理をビジネスプロセス実行エンジン21に対して委譲するためのReservationBeanを起動して、処理の委譲に必要なデータを起動したReservationBeanに書き込む。
【0084】
ステップS114:
サービスアダプタ25は、ReservationBeanが起動されると、この起動されたReservationBeanからプロセス識別情報「1」を抽出し、この抽出したプロセス識別情報「1」の示すプロセスの処理の委譲先を示す委譲先情報を、自身に設定されている対応テーブルにおいて検出する。
そして、サービスアダプタ25は、自身に設定されている対応テーブルにおけるプロセス識別情報「1」に対する委譲先がビジネスプロセス実行エンジン21であるため、ReservationBeanに対する処理をビジネスプロセスラッパー26へ委譲する。
【0085】
すなわち、サービスアダプタ25は、ビジネスプロセスラッパー26を介して、プロセス識別情報「1」のプロセスの処理を、サーブレット24Bからビジネスプロセス実行エンジン21に対して委譲する制御を行う。
ここで、サービスアダプタ25は、ReservationBeanに付加されているプロセス識別情報と同一のプロセス識別情報を有する、すなわちプロセス識別情報「1」が付加されたビジネスプロセスラッパー26を介して、ビジネスプロセス実行エンジン21に対して委譲する制御を行う。
【0086】
ステップS115:
次に、ビジネスプロセスラッパー26は、ReservationBeanからプロセス識別情報を抽出する。
そして、ビジネスプロセスラッパー26は、抽出したプロセス識別情報が自身に設定されているプロセス識別情報と一致するか否かを判定する。
ここで、ビジネスプロセスラッパー26は、プロセス識別情報が一致している場合、ReservationBeanに記述されている「予約番号」及び「予約申込者名」のデータにおけるインターフェース及びデータの形式を変換する。
また、ビジネスプロセスラッパー26は、変換したReservationBeanを、ビジネスプロセス実行エンジン21のインターフェースコンテナであるServiceSessionに配置する処理を行う。
上述した処理により、ビジネスプロセスラッパー26は、ReservationBeanにおけるサーブレット24Bに対応したインターフェース及びデータの形式を、ビジネスプロセス実行エンジン21のデータ入力におけるインターフェース及びデータの形式に変換する。また、ビジネスプロセスラッパー26は、形式を変換したReservationBeanに対し、識別情報としてサービスIDを付加する。
【0087】
ステップS116:
次に、ビジネスプロセス実行エンジン21は、インターフェースコンテナServiceSessionにおけるReservationBeanから、プロセス識別情報と、「予約番号」及び「予約申込者名」のデータとを読み出す。
また、ビジネスプロセス実行エンジン21は、プロセス識別番号「1」に対応するビジネスプロセス定義体(XML)ファイル101を、サーバー記憶部3から読み出す。
【0088】
そして、ビジネスプロセス実行エンジン21は、この読み出したビジネスプロセス定義体(XML)ファイル101の記述に従って、プロセス識別番号「1」のビジネスプロセスの処理を実行する。
上述したように、プロセス識別番号「1」のプロセスの「予約基本を検索する」処理に用いるデータの「予約番号」及び「予約申込者名」が、ビジネスプロセス実行エンジン21に対し、インターフェースコンテナServiceSessionを介して、サーブレット24Bから供給されている。
【0089】
そして、ビジネスプロセス実行エンジン21は、ビジネスプロセス定義体(XML)ファイル101の記述に従い、サーブレット24Bから供給されたデータ「予約番号」と「予約申込者名」とを検索キーとして用い、この検索キーに対応するデータの検索をDB210から行うビジネスプロセス処理を実行する。
このとき、ビジネスプロセス実行エンジン21は、例えば、検索キーとして供給された「予約番号」と「予約申込者名」との文字列における一部の文字が一致する「予約予約番号」及び「予約申込者名」の予約のデータを、DB210に記憶されている複数の予約のデータから抽出する。
次に、ビジネスプロセス実行エンジン21は、供給された「予約番号」と「予約申込者名」とを検索キーとして検索した結果、抽出された予約のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」とを、インターフェースコンテナServiceSessionに配置されているReservationBeanから、サービスIDにより書き込み先のReservationBeanを識別し、処理に対応するReservationBeanにおける出力として、ReservationBeanの定義された変数に書き込む。ここで、「予約予約番号」は予約番号を示し、「予約予約日」は予約日を示している。
【0090】
ステップS117:
次に、インターフェースコンテナServiceSessionに配置されたReservationBeanに対し、ビジネスプロセス実行エンジン21がビジネスプロセス処理の結果を書き込むと、ビジネスプロセスラッパー26は、このインターフェースコンテナServiceSessionに配置されたReservationBeanに対するインターフェース及びデータの形式の変換の処理を行う。
ここで、ビジネスプロセスラッパー26は、インターフェースコンテナServiceSessionに配置されたReservationBeanに記述されている、検索結果のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」のインターフェース及びデータの形式の変換を行う。
すなわち、ビジネスプロセスラッパー26は、ReservationBeanのインターフェース及びデータの形式を、ビジネスプロセス実行エンジン21において用いられる形式から、サーブレット24Bで用いられる形式に変換する。
【0091】
ステップS118:
サービスアダプタ25は、ビジネスプロセスラッパー26がインターフェース及びデータの形式を変換したReservationBeanから、プロセス識別情報として付加されているプロセス識別情報「1」を読み出す。
そして、サービスアダプタ25は、読み出したプロセス識別情報「1」と一致するプロセス識別情報を有するサーブレット24Bへ、ReservationBeanを介してビジネスプロセス処理を委譲する。
【0092】
ステップS119:
サ−ブレット24Bは、サービスアダプタ25から受けたReservationBeanから検索結果のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」を抽出し、この抽出した「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」をJSP23に出力する。
【0093】
ステップS120:
JSP23は、「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」が供給されると、これらのサーブレット24Bから供給されたデータが表示される画面(ページ)を構成し、構成した画面をclientへ送信する。
そして、clientは、ウェブサーバー2から画面が供給されると、この画面を表示装置に表示し、ユーザに対して表示装置を介して検索結果を通知する。
また、JSP23は、業務処理「予約基本を検索する」における次に処理するプロセス、すなわちプロセス識別情報「2」のプロセス「入金ステータスを検索する」のサーブレット24Aを実行する。
【0094】
次に、図1及び図12を用いて、本実施形態によるプログラム生成装置で生成したプログラムを用いた作成ビジネスプロセス/ビジネスルール実行システムの動作を説明する。図6は、ビジネスプロセス定義体ファイル301のルール識別情報が付加されているプロセスを処理する場合の、作成ビジネスプロセス/ビジネスルール実行システムの動作を示すシーケンス図である。
ステップS211:
例えば、図11に示すビジネスプロセスの処理の後、図12のビジネスルールの処理の実行として、ビジネスプロセス定義体ファイル301の記述において、プロセス識別番号「1」の次にプロセス識別番号「2」の処理が示されている。
このため、JSP23は業務処理の組み合わせの順番において、サーバー記憶部3からプロセス識別番号「2」に対応するサーブレットファイル102を読み出し、インスタンス化してサーブレット24Aを実行させる。
【0095】
そして、サーブレット24Aは、「入金ステータスを検索する」というビジネスルール処理を行うため、データとして「予約販売額合計」と「予約入金額合計」とを入力する画面を生成する指示をJSP23に出力する。
これにより、JSP23は、「予約販売額合計」と「予約入金額合計」とを入力する画面を生成し、clientに対して出力する。
clientは、ウェブサーバー2から供給される画面を、表示装置に表示する。
そして、ユーザが表示された「予約販売額合計」と「予約入金額合計」との入力欄に、予約に対応した金額を入力する。
これにより、clientは、データとして「予約販売額合計」と「予約入金額合計」との数値を含むJSPファイルをウェブサーバー2に対して送信する。
【0096】
ステップS212:
JSP23は、clientから入力されたJSPファイルから、「予約販売額合計」及び「予約入金額合計」とを抽出し、抽出した「予約販売額合計」及び「予約入金額合計」とをプロセス識別情報「2」のサーブレット24Bに対して出力する。
また、ウェブサーバー2は、プロセス識別情報「2」に対応するビジネスルールラッパーファイル105をサーバー記憶部3から読み出し、この読み出したファイルをインスタンス化することにより、ビジネスルールラッパー27を実行させる。サービスアダプタ25については、既にプロセス識別情報「1」のサーブレット24Bが起動された際に起動されている。
【0097】
ステップS213:
サーブレット24Aは、データの入出力を行うプログラムのビーンオブジェクトPaymentStatusBeanを起動して、自身のプロセスに対応するプロセス識別情報「2」と、データの「予約販売額合計」及び「予約入金額合計」と、ルール識別情報とを、この起動したPaymentStatusBeanに代入する。
すなわち、サーブレット24Aは、自身のデータ「予約販売額合計」及び「予約入金額合計」を用いたビジネスルールの処理をビジネスルール実行エンジン22に対して委譲するためのPaymentStatusBeanを起動して、処理を委譲に必要なデータである「予約販売額合計」及び「予約入金額合計」を、PaymentStatusBeanの入力の変数に代入する。
【0098】
ステップS214:
サービスアダプタ25は、PaymentStatusBeanが起動されると、この起動されたPaymentStatusBeanからプロセス識別情報「2」を抽出し、この抽出したプロセス識別情報「2」の示すプロセスの処理の委譲先を示す委譲先情報を、自身に設定されている対応テーブルから検出する。
そして、サービスアダプタ25は、自身に設定されている対応テーブルにおけるプロセス識別情報「2」に対する委譲先がビジネスルール実行エンジン22であるため、PaymentStatusBeanに対する処理をビジネスルールラッパー27へ委譲する。
すなわち、サービスアダプタ25は、ビジネスルールラッパー27を介して、プロセス識別情報「2」のプロセスの処理を、サーブレット24Aからビジネスルール実行エンジン22に対して委譲する制御を行う。
ここで、サービスアダプタ25は、ReservationBeanに付加されているプロセス識別情報と同一のプロセス識別情報を有する、すなわちプロセス識別情報「2」が付加されたビジネスルールラッパー27を介して、ビジネスルール実行エンジン22に対して委譲する制御を行う。
【0099】
ステップS215:
次に、ビジネスルールラッパー27は、PaymentStatusBeanからプロセス識別情報を抽出する。
そして、ビジネスルールラッパー27は、抽出したプロセス識別情報が自身に設定されているプロセス識別情報と一致するか否かを判定する。
ここで、ビジネスルールラッパー27は、プロセス識別情報が一致している場合、PaymentStatusBeanに記述されている「予約販売額合計」及び「予約入金額合計」のデータにおけるインターフェース及びデータの形式を変換する。
また、ビジネスルールラッパー27は、変換したReservationBeanを、ビジネスルール実行エンジン22のインターフェースコンテナであるKSessionに配置する処理を行う。
上述した処理により、ビジネスルールラッパー27は、インターフェースコンテナに配置されたPaymentStatusBeanにおけるサーブレット24Aに対応したインターフェース及びデータの形式を、ビジネスルール実行エンジン22のデータの入出力におけるインターフェース及びデータの形式に変換する。また、ビジネスルールラッパー27は、形式を変換したReservationBeanに対し、識別情報としてルール処理IDを付加する。
【0100】
ステップS216:
次に、ビジネスルール実行エンジン22は、インターフェースコンテナKSessionにおけるPaymentStatusBeanに記述されている、ルール識別情報と、「予約販売額合計」及び「予約入金額合計」のデータとを読み出す。
また、ビジネスルール実行エンジン22は、ルール識別情報に対応するビジネスルール定義体ファイル302を、ビジネスルール定義体ファイル記憶部200から読み出す。
そして、ビジネスルール実行エンジン22は、この読み出したビジネスルール定義体ファイル302の記述にしたがって、プロセス識別番号「2」のビジネスルールの処理を実行する。
上述したように、プロセス識別番号「2」のプロセスの「入金ステータスを検索する」処理に用いるデータの「予約販売額合計」及び「予約入金額合計」とが、ビジネスルール実行エンジン22に対し、インターフェースコンテナKSessionを介して、サーブレット24Aから供給されている。
【0101】
次に、ビジネスルール実行エンジン22は、インターフェースコンテナのKSessionに配置されたPaymentsStatusBeanの記述から、付加されたルール識別情報を抽出する。
そして、ビジネスルール実行エンジン22は、抽出したルール識別情報に対応するビジネスルール定義体ファイル302を、ビジネスルール定義体ファイル記憶部200から検索して読み出す。
次に、ビジネスルール実行エンジン22は、ビジネスルール定義体ファイル記憶部200から読み出したビジネスルール定義体ファイル302の記述に従い、サーブレット24Aから委譲されたデータ「予約販売額合計」及び「予約入金額合計」を用い、ビジネスルール処理を実行する。
【0102】
このとき、ビジネスルール実行エンジン22は、ビジネスルール定義体ファイル302に記述された条件式により、供給された「予約販売額合計」及び「予約入金額合計」の比較判定により、入金ステータスが「未入金」、「一部入金」、「入金済」、「入金超過」のいずれであるかの判定処理を行う。
そして、ビジネスルール実行エンジン22は、判定処理の結果として選択された入金ステータスを、インターフェースコンテナKSessionに配置されている、ビジネスルール処理を行ったビジネスルール定義体ファイル302のファイル名と同一のルール識別情報を有するPaymentsStatusBeanの出力する変数に書き込む。
【0103】
ステップS217:
次に、インターフェースコンテナKSessionに配置されたPaymentsBeanに対し、ビジネスルール実行エンジン22がビジネスルール処理の結果を書き込むと、ビジネスルールラッパー27は、このインターフェースコンテナKSessionに配置されたPaymentsBeanのなかから、ルール処理IDにより選択したPaymentsBeanに対してインターフェース及びデータの形式に変換する処理を行う。
ここで、ビジネスルールラッパー27は、インターフェースコンテナKSessionに配置されたPaymentsBeanに記述されている、「予約入金ステータス」のインターフェース及びデータの形式の変換を行う。
すなわち、ビジネスルールラッパー27は、PaymentsBeanのインターフェース及びデータの形式を、ビジネスルール実行エンジン22において用いられる形式から、サーブレット24Aで用いられる形式に変換する。
【0104】
ステップS218:
サービスアダプタ25は、ビジネスルールラッパー27が予約入金ステータスが書き込まれたPaymentsBeanから、プロセス識別情報として付加されているプロセス識別情報「2」を読み出す。
そして、サービスアダプタ25は、読み出したプロセス識別情報「2」と一致するプロセス識別情報を有するサーブレット24Aへ、PaymentsBeanを介してビジネスプロセス処理を委譲する。
【0105】
ステップS219:
サーブレット24Aは、サービスアダプタ25から処理を委譲されたPaymentsBeanより、判定処理の結果である入金ステータスのデータを抽出し、この抽出した入金ステータスのデータをJSP23に出力する。
【0106】
ステップS220:
JSP23は、入金ステータスのデータが供給されると、このサーブレット24Aから供給された入金ステータスのデータが表示される画面(ページ)を構成し、構成した画面をclientへ送信する。
そして、clientは、ウェブサーバー2から画面が供給されると、この画面を表示装置に表示し、ユーザに入金処理の検索結果を表示する。
また、JSP23は、業務処理「予約基本を検索する」における次に処理するプロセス、すなわちプロセス識別情報「3」のプロセス「予約基本を選択する」のサーブレット24Bを実行する。
【0107】
上述したように、本実施形態のビジネスプロセス/ビジネスルール実行システムは、ルール識別情報の有無に対応して、プロセス識別情報と、プロセスの委譲先を示すエンジン識別情報との対応を示す対応テーブルにより、ビジネスプロセス実行エンジン21とビジネスルール実行エンジン22とのいずれかに、処理を振り分けるサービスアダプタ25を有している。
このため、本実施形態のビジネスプロセス/ビジネスルール実行システムによれば、従来のように、ビジネスプロセス実行エンジンを介してビジネスルール実行エンジンを呼び出し、この呼出処理などの負荷によるビジネスプロセス実行エンジンにおけるプロセス処理の効率を低下させることを防止できる。
【0108】
また、上述した実施形態においては、サービスアダプタ25は、ビジネスプロセス/ビジネスルール実行システムで動作する全てのサーブレット24に対して1個が生成され、対応テーブルに記載されたプロセス識別情報と、プロセスの処理の委譲先を示すエンジン識別情報とにより、サーブレット24の生成するビーンを、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれかに振り分けている。
【0109】
しかしながら、このサービスアダプタ25をプロセス毎に生成する構成としても良い。
すなわち、プログラム生成装置1は、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれかに、プロセスの処理を委譲するかが設定されたサービスアダプタ25のプログラムファイルとして、サービスアダプタファイル103をプロセス毎に生成する。
すなわち、プログラム生成装置1は、ルール識別情報が付加されていないプロセスに対応し、入力されたビーンをビジネスプロセス実行エンジン21へ出力するサービスアダプタ25と、ルール識別情報が付加されているプロセスに対応し、入力されたビーンをビジネスルール実行エンジン22へ出力するサービスアダプタ25との各々のプログムファイルであるサービスアダプタファイル103を、ルール識別情報が付加されているか否かでプロセス毎に生成する。
そして、プログラム生成装置1は、このサービスアダプタファイル103と、このプロセスのプロセス識別情報とを対応づけ、サーバー記憶部3へコピーする。
【0110】
また、ビジネスプロセス/ビジネスルール実行システムを動作させる際、ウェブサーバー2は、サーブレット24が起動されると、このサーブレット24の処理するプロセスを特定するプロセス識別情報に対応し、サービスアダプタファイル103をサーバー記憶部3から読み出し、インスタンス化してサービスアダプタ25を起動させる。
サーブレット24は、プロセス識別情報が同一のサービスアダプタ25に対して、ビーン(ReservationBeanあるいはPaymentsBean)を生成して、処理の委譲を行う。
サービスアダプタ25は、自身のプロセス識別情報と同一のビーンを、予め設定された委譲先の実行エンジンのインターフェースコンテナ(ServiceSessionまたはKSession)に対し、この実行エンジンに対応するラッパー(ビジネスプロセスラッパー26またはビジネスルールラッパー27)を介して配置する。
【0111】
すなわち、サービスアダプタ25は、入力されるビーンがReservationBeanの場合、すなわちルール識別情報が付加されていないプロセスに対応したサーブレット24Bにより生成されたビーンの場合、ビジネスプロセス実行エンジン21に対応するビジネスプロセスラッパー26へ、入力されたReservationBeanに対する処理を委譲する。
一方、サービスアダプタ25は、入力されるビーンがPaymentsBeanの場合、すなわちルール識別情報が付加されているプロセスに対応して生成されたサーブレット24Aから出力されたものであるならば、ビジネスルール実行エンジン22に対応するビジネスルールラッパー27へ、入力されたPaymentsBeanに対する処理を委譲する。
上述した構成により、本実施形態によれば、プロセスの変更により、サービスアダプタ25のプログラムを変更する場合、変更したプロセスに対応するサービスアダプタ25のプログラムを変更するのみで良いため、サービスアダプタ25の管理が簡易化される。
【0112】
また、本実施形態においては、異なるサーブレット24間において、すなわち複数の画面間にわたり、情報を引き継ぎたい場合、セッションスコープに引き継ぎたい情報を格納して、格納した画面と異なる他の画面にてセッションスコープから引き継ぎたい情報を読み出して利用することができる。
図13は、複数画面において同一の情報を引き継ぎたい情報がある場合におけるビジネスプロセス定義体ファイル301のテーブルの記述例を示す図である。
【0113】
例えば、ビジネスプロセス定義体ファイル301に記述された、ビジネスプロセス定義体のテーブルに、補足として[SS]SETと文字列が記述されている場合、サーブレット24は、テーブルにおけるこの行にある操作対象パスの欄に記載されている「Reservation:1」の示すデータ、すなわち「Reservation:1」と設定されているエンティティ名「Reservation:1/reservationReservationStored」と、「Reservation:1/reservationReservationReferenceld」との変数の値をセッションスコープに格納することを示している。
また、補足欄に設定されている「[FW]STA00040_001」の文字列は、現在実行しているプロセスを実行した後に、次に実行するプロセスの識別情報を示している。したがって、図13の上部のテーブルにおいて、番号「2」のプロセス「予約基本を選択する」の処理の次に、「STA00040_001」である下部のテーブルにおけるプロセス「予約基本を検索する」が実行されることになる。このプロセス「予約基本を検索する」において、セッションスコープに格納された変数の値が用いられる。
また、[SS]DELの文字列は、現在のより前の他のサーブレット24にて格納され、現在のセッションスコープに格納されている引き継ぎたい情報を削除することを示している。
【0114】
この補足に、セッションスコープへのデータの格納を示す文字列がセッションスコープへのデータの設定を示す[SS]SETである場合、サーブレット24は、この文字列[SS]SETが設定されている行にある操作対象パスの欄に記載されている操作対象パスに含まれるエンティティ名の名称のデータを、セッションスコープに対して格納する機能を含むように、プログラム生成装置1により生成される。
また、セッションスコープへのデータの格納を示す文字列がセッションスコープに格納されたデータの削除を示す[SS]DELである場合、サーブレット24は、現在より以前の他のサーブレット24にてセッションスコープに格納された操作対象パスに含まれるエンティティ名の名称の情報を削除する機能を含むように、プログラム生成装置1により生成される。
【0115】
上述した構成により、本実施形態によれば、サーブレットが連続しておらず、リクエストスコープに引き継ぎたい情報を格納することができない場合、またクッキーが使えない設定となっている場合などに、既に述べた一般的なセッション管理機能(PHP:Hypertext Preprocessor4.0)を用い、セッション変数としてセッションIDを付加することで、不連続に実行されるサーブレット間のデータの引き継ぎを容易に行うことができる。
【0116】
また、図1におけるウェブサーバー、また図5におけるプログラム生成装置1の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりプログラムの生成処理、ビジネスプロセス及びビジネスルールの処理の管理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0117】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0118】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0119】
1…プログラム生成装置
2…ウェブサーバー
3…サーバー記憶部
11…ビジネスプロセス定義解析部
12…ビジネスプロセス定義体ファイル変換部
13…サーブレット生成部
14…サービスアダプタ生成部
15…ビジネスプロセスラッパー生成部
16…ビジネスルールラッパー生成部
17…ビジネスルール定義体ファイル解析部
18…ビジネスルール定義体ファイル配備部
19…記憶部
21…ビジネスプロセス実行エンジン
22…ビジネスルール実行エンジン
23…JSP
24A,24B…サーブレット
25…サービスアダプタ
26…ビジネスプロセスラッパー
27…ビジネスルールラッパー
101、301…ビジネスプロセス定義体ファイル
102…サーブレットファイル
103…サービスアダプタファイル
104…ビジネスプロセスラッパーファイル
105…ビジネスルールラッパーファイル
200…ビジネスルール定義体ファイル記憶部
302…ビジネスルール定義体ファイル

【特許請求の範囲】
【請求項1】
ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置であり、
前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析部と、
前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成部と、
前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成部と
を備えることを特徴とするプログラム生成装置。
【請求項2】
前記サービスアダプタ生成部が、前記サービスアダプタ内部に、前記ビジネスプロセス定義体における前記プロセス識別情報の各々と、ビジネスプロセス実行エンジン及びビジネスルール実行エンジンのいずれかを示す情報とが対応付けられた対応テーブルを生成し、
当該サービスアダプタが当該対応テーブルにより、前記サーブレットから前記プロセスの処理を委譲する委譲先を、当該プロセスのプロセス識別情報により、当該対応テーブルを参照して設定することを特徴とする請求項1に記載のプログラム生成装置。
【請求項3】
前記サービスアダプタ生成部が、前記ビジネスプロセス定義体ファイルにおける前記プロセス毎に前記サービスアダプタを生成し、
当該サービスアダプタが、自身と対応する前記プロセスの前記プロセス識別情報と、当該プロセス識別情報に対応するプロセスを委譲する委譲先であるビジネスプロセス実行エンジン及びビジネスルール実行エンジンのいずれかを示す情報と有し、
前記サービスアダプタが、自身のプロセス識別情報と対応する前記プロセスを、前記委譲先に委譲することを特徴とする請求項1に記載のプログラム生成装置。
【請求項4】
前記プロセスの委譲先が前記ビジネスプロセス実行エンジンである場合、前記サーブレットが生成する前記ビジネスプロセス実行エンジンとデータの授受を行う第1ビーンのインターフェース及びデータの形式を、当該ビジネスプロセス実行エンジンの処理する形式に変換するビジネスプロセスラッパーを生成するビジネスプロセスラッパー生成部と
前記プロセスの委譲先が前記ビジネスルール実行エンジンである場合、前記サーブレットが生成する前記ビジネスルール実行エンジンとデータの授受を行う第2ビーンのインターフェース及びデータの形式を、当該ビジネスルール実行エンジンの処理する形式に変換するビジネスルールラッパーを生成するビジネスルールラッパー生成部と
をさらに備えることを特徴とする請求項1から請求項3のいずれか一項に記載のプログラム生成装置。
【請求項5】
前記ルール識別情報が記述されていないプロセス毎に、当該プロセスの前記プロセス識別情報に対応付けられて生成され、前記ビジネスプロセス定義体ファイルにおける前記プロセスの記述を、前記ビジネスプロセス実行エンジンが解読可能なフォーマットに変換するビジネスプロセス定義体変換部を
さらに備えることを特徴とする請求項1から請求項4のいずれか一項に記載のプログラム生成装置。
【請求項6】
前記ビジネスプロセス定義体ファイルから抽出される前記ルール識別情報に対して、当該ルール識別情報に対応する、前記ビジネスルール実行エンジンが実行する処理が記述されたビジネスルール定義体ファイルが存在するか否かにより、前記ビジネスプロセス定義体ファイルと前記ビジネスルール定義体ファイルとの整合性のチェックを行うビジネスルール定義体ファイル解析部を
さらに有することを特徴とする請求項1から請求項5のいずれか一項に記載のプログラム生成装置。
【請求項7】
ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置を動作させるプログラム生成方法であり、
ビジネスプロセス定義体解析モジュールが、前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析過程と、
サーブレット生成モジュールが、前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成過程と、
サービスアダプタ生成モジュールが、前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成過程と
を備えるプログラム生成方法。
【請求項8】
ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンを有し、1つあるいは複数のビジネスプロセスあるいはビジネスルールのプロセスを定義したビジネスプロセス定義体ファイルに対応するウェブサービス処理を実行するビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを生成するプログラム生成装置であるコンピュータに、
前記ビジネスプロセス定義体ファイルから、前記プロセスを識別するプロセス識別情報、当該プロセスの処理の種類を示す項目種別、当該プロセスで処理する対象の項目情報、及び当該プロセスが前記ビジネスルール実行エンジンが処理することを示すルール識別情報とからなるプログラム生成情報を読み出すビジネスプロセス定義体解析手段、
前記プロセス毎に生成され、前記プログラム生成情報と、予め設定されたフォーマットに従った記述とにより、前記ウェブサービスにおけるプロセスを実行する、前記プロセス識別情報で識別されるサーブレットを生成するサーブレット生成手段、
前記サーブレットに記述された前記プロセス識別情報に対応する前記プロセスの委譲先を、前記ルール識別情報の有無により、前記ビジネスプロセス実行エンジン及び前記ビジネスルール実行エンジンのいずれかに設定するプログラムであるサービスアダプタを生成するサービスアダプタ生成手段、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−33352(P2013−33352A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2011−168540(P2011−168540)
【出願日】平成23年8月1日(2011.8.1)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】