JP5715905B2 - ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム - Google Patents
ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム Download PDFInfo
- Publication number
- JP5715905B2 JP5715905B2 JP2011168315A JP2011168315A JP5715905B2 JP 5715905 B2 JP5715905 B2 JP 5715905B2 JP 2011168315 A JP2011168315 A JP 2011168315A JP 2011168315 A JP2011168315 A JP 2011168315A JP 5715905 B2 JP5715905 B2 JP 5715905B2
- Authority
- JP
- Japan
- Prior art keywords
- business
- servlet
- rule
- identification information
- business rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 781
- 230000008569 process Effects 0.000 title claims description 760
- 238000012545 processing Methods 0.000 claims description 122
- 238000003860 storage Methods 0.000 claims description 79
- 238000012546 transfer Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 description 22
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 21
- 244000046052 Phaseolus vulgaris Species 0.000 description 21
- 238000004458 analytical method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 20
- 239000000284 extract Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013404 process transfer Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
Images
Description
また、一定の処理を定義するビジネスプロセス(Business Process;業務仕様に応じた処理)に基づき、複数のWebサービスと連携してビジネスプロセスの処理を実行するビジネスプロセス実行システムが知られている。このビジネスプロセスは、ある特定の問題を解決する相互に関連するタスク(複数のプロセス)が集積されたものである。
このビジネスプロセス実行システムは、通常、データベースにおけるデータの検索、読み出し、書き込み及び編集などのビジネスプロセス特有の処理を行い、複雑な演算処理(判定、比較を含む論理演算や、数値演算などを含む処理)のビジネスルール特有の処理が実行できない構成となっている。
このため、従来のビジネスプロセス実行システムは、複雑な演算処理を行うビジネスルールの処理の実行の際、それぞれ実行するビジネスルールを定義し、ビジネスプロセス実行の処理の中から、ビジネスルール実行システムを呼び出している。
このため、従来のビジネス実行システムには、自身の主たる処理であるビジネスプロセスの処理が実行される際、ビジネスルール実行システムの呼出処理などの不必要な負荷がかかり、ビジネスプロセスの処理の動作が寸断されるなどのため非効率になる問題がある。
この振り分ける構成は、ビジネスルールの処理に対応して、ビジネスルール毎に個別に作成されるために汎用性が低く、ビジネスプロセス実行エンジンあるいはビジネスルールの変更に伴い、振り分ける構成も変更が必要となるため、作業者の開発工数が多くなってしまう欠点がある。
以下、図面を参照して、本発明の実施形態によるビジネスプロセス/ビジネスルール実行システムを説明する。図1は、本発明の実施形態によるビジネスプロセス/ビジネスルール実行システムの構成例を示すブロック図である。
この発明の一実施形態によるビジネスプロセス/ビジネスルール実行システムは、動作環境として、例えば、JAVA(登録商標)が用いられている。
ビジネスプロセス/ビジネスルール実行システムは、ウェブサーバー2と、サーバー記憶部3とを備えている。
JSP23のソースコードが記述されたファイルはJSPファイルであり、サーブレット24のソースコードが記述されたファイルはサーブレットファイル102であり、サービスアダプタ25のソースコードが記述されたファイルはサービスアダプタファイル103であり、ビジネスプロセスラッパー26のソースコードが記述されたファイルはビジネスプロセスラッパーファイル104であり、ビジネスルールラッパー27のソースコードが記述されたファイルはビジネスルールラッパーファイル105である。これらのソースコードのファイルの生成については後述する。
また、サーバー記憶部3には、ビジネスプロセス実行エンジン21が行うプロセスの内容が記述されたビジネスプロセス定義体(XML)ファイル101が、予め設定されている(詳細については後述)。
さらに、サーバー記憶部3には、業務処理名とこの業務処理名の業務処理を構成するプロセス識別番号(プロセスID、すなわち以降のプロセス識別情報)の組み合わせの業務処理テーブルが記憶されている。
JSP23は、インスタンス化されて実行された後、clientに実装されているウェブブラウザからの供給される、例えばHTML(HyperText Markup Language)で記述されたJSPファイルを解析し、業務処理を構成するプロセス識別情報を抽出し、抽出したプロセス識別情報に対応するサーブレットの起動を行う。
すなわち、ウェブサーバー2には、データと、いずれのサーブレットを起動するかを示す情報、すなわちプロセス識別情報とを含むJSPファイルがclientから供給される。
例えば、JSP23は、clientから供給されるプロセス識別情報に対応するサーブレットファイル102(クラスが記述されたJAVA(登録商標)ファイル)を、サーバー記憶部3から読み出し、読み出したサーブレットファイル102に記述されている変数にデータを代入してインスタンス化し、オブジェクトとしてサーブレット24(24A、24B)を起動して実行させる。
ここで、インスタンス化されたサーブレット24A、24Bには、ウェブサーバー2がclientを識別するため、例えば、一般的なセッション管理機能(PHP:Hypertext Preprocessor4.0)を用い、セッション変数としてセッションIDが付与されている。
また、以下の説明において、サーブレット24Aはルール識別情報(ルールID)が付加されている(記述されている)プロセスに対応し、サーブレット24Bはルール識別情報が付加されていないプロセスに対応しているとして説明する。
また、ウェブサーバー2は、読み出したビジネスルールラッパーファイル105に記述された変数に必要なデータを代入してインスタンス化し、オブジェクトとしてビジネスルールラッパー27を起動して実行させる。
このビジネスルールラッパー27は、サーブレット24Aがビジネスルール実行エンジン22に対してビジネスルール処理を委譲する際、委譲する処理に用いるデータを含んでサーブレット24Aにより起動されるビーン(Bean、例えばPaymentStatusBean)のインターフェース及びデータ(予約販売額合計及び予約入金額合計)の形式を、ビジネスルール実行エンジン22が処理可能となるインターフェース及びデータ(予約販売額合計及び予約入金額合計)の形式に変換する。また、サーブレット24Aは、ルール識別情報が記述されて付加(添付)されたプロセスに対応して生成されるため、起動するPaymentStatusBeanに対し、プロセス識別情報に加え、このプロセスに対応したルール識別情報も記述されて付加(以降付加とする)されている。
そして、ビジネスルールラッパー27は、変換したPaymentStatusBeanを、処理を委譲するためのインターフェースコンテナ(KSession)に書き込むことで、ビジネスルール実行エンジン22に対してデータの受け渡し、すなわち処理の委譲を行う。ここで、ビジネスルールラッパー27は、自身に対応するプロセス識別信号に対応して予め内部に設定されている変換条件に従って、PaymentStatusBeanのインターフェース及びデータの形式の変換を行う。
そして、ビジネスルールラッパー27は、変換後のPaymentStatusBeanをサービスアダプタ25に対して出力する。
ここで、ビジネスルールラッパー27は、自身に対応するプロセス識別信号に対応して、インターフェースコンテナのインターフェース及びデータの形式の変換を行う。
このビジネスプロセスラッパー26は、サーブレット24Bがビジネスプロセス実行エンジン21に対してビジネスプロセス処理を委譲する際、委譲する処理に用いるデータを含んでサーブレット24Bにより起動されるビーン(Bean、例えばReservationBean)のインターフェース及びデータ(予約予約番号及び予約申込者名)の形式を、ビジネスプロセス実行エンジン21が処理可能となるインターフェース及びデータ(予約予約番号及び予約申込者名)の形式に変換する。
そして、ビジネスプロセスラッパー26は、変換したReservationBeanを、処理を委譲するためのインターフェースコンテナ(ServiceSession)に書き込むことで、ビジネスプロセス実行エンジン21に対してデータの受け渡し、すなち処理の委譲を行う。ここで、ビジネスプロセスラッパー26は、自身に対応するプロセス識別信号に対応して予め内部に設定されている変換条件に従って、ReservationBeanのインターフェース及びデータの形式の変換を行う。
そして、ビジネスプロセスラッパー26は、変換後のReservationBeanをサービスアダプタ25に対して出力する。
ここで、ビジネスプロセスラッパー26は、自身に対応するプロセス識別信号に対応して、インターフェースコンテナのインターフェース及びデータの形式の変換を行う。
また、ウェブサーバー2は、読み出したサービスアダプタファイル103に記述された変数に、必要なデータを代入してインスタンス化し、オブジェクトとしてサービスアダプタ25を起動して実行させる。
また、サービスアダプタ25は、サーブレット24が起動するビーン(ReservationBeanまたはPaymentStatusBean)に記述されているプロセス識別情報と同一のプロセス識別情報を対応テーブルから検索する。
そして、サービスアダプタ25は、対応テーブルにおいて検索されたプロセス識別情報に対応して記憶されているエンジン識別情報の示す実行エンジン(ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22)を、プロセスの処理の委譲先に設定する。
サーブレット24Bが後述するビジネスプロセス定義体におけるプロセス識別番号「1」のプロセスに対応した処理としてビジネスプロセス処理を実行する場合、このプロセス識別情報「1」のプロセスは、「予約基本を検索する」処理する。すなわち、ビジネスプロセス実行エンジン21は、サーブレット24Bから委譲されたデータである予約予約番号及び予約申込者名を検索キーとして、この検索キーに対応して記憶されているデータを、DB210に記憶されているデータの中から検索する(処理の詳細は後述)。
また、ビジネスプロセス実行エンジン21は、読み出したビジネスプロセス定義体(XML)ファイル101に従い、ReservationBeanを介してサーブレット24Bから供給されたデータを用いてビジネスプロセスの処理を行う。
サーブレット24Aが後述するビジネスプロセス定義体におけるプロセス識別番号「2」のプロセスに対応した処理としてビジネスルール処理を実行する場合、このプロセス識別情報「2」のプロセスは、「入金ステータスを検索する」処理を行う。すなわち、ビジネスルール実行エンジン22は、サーブレット24Aから委譲されたデータである予約販売額合計と予約入金額合計とを比較し、この比較結果に応じて設定されている入金ステータスを、内部に設けられたステータステーブルから検索する(処理の詳細は後述)。
また、ビジネスルール実行エンジン22は、読み出したビジネスルール定義体ファイル302に記述された論理演算あるいは数値演算の式などに従い、PaymentStatusBeanを介してサーブレット24Aから供給されたデータを用いてビジネスプロセスの処理を行う。
ビジネスルール定義体ファイル記憶部200には、ビジネスルール実行エンジン22が実行するビジネスルール処理の内容が記述されたビジネスルール定義体ファイル302が、このビジネスルール定義体ファイル302を一意に示すルール識別情報とともに記憶されている。
図4のビジネスルール定義体ファイル302に記述されたプロセスルール処理は、既に説明したサーブレット24Aのプロセスの処理に対応しており、データとして入力された予約販売額合計と予約入金額合計とを比較し、比較結果に応じて設定されている入金ステータスを出力することである。
ビジネスルール定義体ファイル302における入金ステータスとしては、「未入金」、「一部入金」、「入金済」、「入金超過」が設定されている。図4に示すビジネスルール定義体ファイル302におけるこれらステータスとデータの比較処理(プロセスルール処理)の種類とは、以下に示す対応関係にある。
・未入金 :予約入金額合計が「0」である場合
・一部入金:予約入金額合計が「0」でなく、かつ予約販売額合計が予約入金額合計よ り大きい
・入金済み:予約販売額合計と予約入金額合計とが等しい
・入金超過:予約販売額合計が予約入金額合計より小さい
ユーザがclientを介してウェブサーバー2にアクセスする。これにより、ウェブサーバー2は、JSP23をインスタンス化して実行させる。
JSP23は、業務処理の種類と、この処理とに用いるデータとを入力する画面をclientへ、図示しないインターネットなどからなる通信回線を介して送信する。
ユーザは、clientの表示装置に表示された業務処理の種類と、この業務処理とに用いるデータを入力欄に入力する。例えば、図9に示すように、ユーザが業務処理として「予約基本を検索する」を、データとして「予約番号」及び「予約申込者名」を入力欄にキーボード等により入力すると、clientは入力欄に入力された「予約基本を検索する」と、データとして「予約番号」及び「予約申込者名」とを含むJSPファイルをウェブサーバー2に対して、通信回線を介して送信する。
JSP23は、clientから入力されたJSPファイルから、業務処理の「予約基本を検索する」と、データの「予約番号」及び「予約申込者名」とを抽出し、この「予約基本を検索する」という業務処理(業務処理名)に対応するプロセス識別情報の組み合わせを、この業務処理名を検索キーとして、サーバー記憶部3の業務処理名テーブルから検索する。
そして、JSP23は、検索した業務処理名に対応するプロセス識別情報の組み合わせ、すなわち、プロセス識別情報「1」、「2」及び「3」の組み合わせを業務処理名テーブルから読み出す。
同様に、ウェブサーバー2は、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104の各々をサーバー記憶部3から読み出し、インスタンス化することにより、サービスアダプタ25、ビジネスプロセスラッパー26を実行させる。
サーブレット24Bは、データの入出力を行うプログラムのビーンオブジェクトReservationBeanを起動して、自身のプロセスに対応するプロセス識別情報「1」と、データの「予約番号」及び「予約申込者名」とを、この起動したReservationBeanに代入する。
すなわち、サーブレット24Bは、自身のデータ「予約番号」及び「予約申込者名」を検索キーとしたDB210に検索する処理をビジネスプロセス実行エンジン21に対して委譲するためのReservationBeanを起動して、処理の委譲に必要なデータを起動したReservationBeanに書き込む。
サービスアダプタ25は、ReservationBeanが起動されると、この起動されたReservationBeanからプロセス識別情報「1」を抽出し、この抽出したプロセス識別情報「1」の示すプロセスの処理の委譲先を示す委譲先情報を、自身に設定されている対応テーブルにおいて検出する。
そして、サービスアダプタ25は、自身に設定されている対応テーブルにおけるプロセス識別情報「1」に対する委譲先がビジネスプロセス実行エンジン21であるため、ReservationBeanに対する処理をビジネスプロセスラッパー26へ委譲する。
ここで、サービスアダプタ25は、ReservationBeanに付加されているプロセス識別情報と同一のプロセス識別情報を有する、すなわちプロセス識別情報「1」が付加されたビジネスプロセスラッパー26を介して、ビジネスプロセス実行エンジン21に対して委譲する制御を行う。
次に、ビジネスプロセスラッパー26は、ReservationBeanからプロセス識別情報を抽出する。
そして、ビジネスプロセスラッパー26は、抽出したプロセス識別情報が自身に設定されているプロセス識別情報と一致するか否かを判定する。
ここで、ビジネスプロセスラッパー26は、プロセス識別情報が一致している場合、ReservationBeanに記述されている「予約番号」及び「予約申込者名」のデータにおけるインターフェース及びデータの形式を変換する。
また、ビジネスプロセスラッパー26は、変換したReservationBeanを、ビジネスプロセス実行エンジン21のインターフェースコンテナであるServiceSessionに配置する処理を行う。
上述した処理により、ビジネスプロセスラッパー26は、ReservationBeanにおけるサーブレット24Bに対応したインターフェース及びデータの形式を、ビジネスプロセス実行エンジン21のデータ入力におけるインターフェース及びデータの形式に変換する。また、ビジネスプロセスラッパー26は、ReservationBeanの形式を変換したReservationBeanに対し、識別情報としてサービスIDを付加する。
次に、ビジネスプロセス実行エンジン21は、インターフェースコンテナServiceSessionにおけるReservationBeanから、プロセス識別情報と、「予約番号」及び「予約申込者名」のデータとを読み出す。
また、ビジネスプロセス実行エンジン21は、プロセス識別番号「1」に対応するビジネスプロセス定義体(XML)ファイル101を、サーバー記憶部3から読み出す。
上述したように、プロセス識別番号「1」のプロセスの「予約基本を検索する」処理に用いるデータの「予約番号」及び「予約申込者名」が、ビジネスプロセス実行エンジン21に対し、インターフェースコンテナServiceSessionを介して、サーブレット24Bから供給されている。
このとき、ビジネスプロセス実行エンジン21は、例えば、検索キーとして供給された「予約番号」と「予約申込者名」との文字列における一部の文字が一致する「予約予約番号」及び「予約申込者名」の予約のデータを、DB210に記憶されている複数の予約のデータから抽出する。
次に、ビジネスプロセス実行エンジン21は、供給された「予約番号」と「予約申込者名」とを検索キーとして検索した結果、抽出された予約のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」とを、インターフェースコンテナServiceSessionに配置されているReservationBeanから、サービスIDにより書き込み先のReservationBeanを識別し、処理に対応するReservationBeanにおける出力として、ReservationBeanの定義された変数に書き込む。ここで、「予約予約番号」は予約番号を示し、「予約予約日」は予約日を示している。
次に、インターフェースコンテナServiceSessionに配置されたReservationBeanに対し、ビジネスプロセス実行エンジン21がビジネスプロセス処理の結果を書き込むと、ビジネスプロセスラッパー26は、このインターフェースコンテナServiceSessionに配置されたReservationBeanに対するインターフェース及びデータの形式の変換の処理を行う。
ここで、ビジネスプロセスラッパー26は、インターフェースコンテナServiceSessionに配置されたReservationBeanに記述されている、検索結果のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」のインターフェース及びデータの形式の変換を行う。
すなわち、ビジネスプロセスラッパー26は、ReservationBeanのインターフェース及びデータの形式を、ビジネスプロセス実行エンジン21において用いられる形式から、サーブレット24Bで用いられる形式に変換する。
サービスアダプタ25は、ビジネスプロセスラッパー26がインターフェース及びデータの形式を変換したReservationBeanから、プロセス識別情報として付加されているプロセス識別情報「1」を読み出す。
そして、サービスアダプタ25は、読み出したプロセス識別情報「1」と一致するプロセス識別情報を有するサーブレット24Bへ、ReservationBeanを介してビジネスプロセス処理を委譲する。
サ−ブレット24Bは、サービスアダプタ25から受けたReservationBeanから検索結果のデータである「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」を抽出し、この抽出した「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」をJSP23に出力する。
JSP23は、「予約予約番号」、「予約申込者名」、「予約従業員名」、「予約予約日」及び「予約出発日」が供給されると、これらのサーブレット24Bから供給されたデータが表示される画面(ページ)を構成し、構成した画面をclientへ送信する。
そして、clientは、ウェブサーバー2から画面が供給されると、この画面を表示装置に表示し、ユーザに対して表示装置を介して検索結果を通知する。
また、JSP23は、業務処理「予約基本を検索する」における次に処理するプロセス、すなわちプロセス識別情報「2」のプロセス「入金ステータスを検索する」のサーブレット24Aを実行する。
ステップS211:
例えば、図5に示すビジネスプロセスの処理の後、図6のビジネスルールの処理の実行として、ビジネスプロセス定義体ファイル301の記述において、プロセス識別番号「1」の次にプロセス識別番号「2」の処理が示されている。
このため、JSP23は業務処理の組み合わせの順番において、サーバー記憶部3からプロセス識別番号「2」に対応するサーブレットファイル102を読み出し、インスタンス化してサーブレット24Aを実行させる。
これにより、JSP23は、「予約販売額合計」と「予約入金額合計」とを入力する画面を生成し、clientに対して出力する。
clientは、ウェブサーバー2から供給される画面を、表示装置に表示する。
そして、ユーザが表示された「予約販売額合計」と「予約入金額合計」との入力欄に、予約に対応した金額を入力する。
これにより、clientは、データとして「予約販売額合計」と「予約入金額合計」との数値を含むJSPファイルをウェブサーバー2に対して送信する。
JSP23は、clientから入力されたJSPファイルから、「予約販売額合計」及び「予約入金額合計」とを抽出し、抽出した「予約販売額合計」及び「予約入金額合計」とをプロセス識別情報「2」のサーブレット24Bに対して出力する。
また、ウェブサーバー2は、プロセス識別情報「2」に対応するビジネスルールラッパーファイル105をサーバー記憶部3から読み出し、この読み出したファイルをインスタンス化することにより、ビジネスルールラッパー27を実行させる。サービスアダプタ25については、既にプロセス識別情報「1」のサーブレット24Bが起動された際に起動されている。
サーブレット24Aは、データの入出力を行うプログラムのビーンオブジェクトPaymentStatusBeanを起動して、自身のプロセスに対応するプロセス識別情報「2」と、データの「予約販売額合計」及び「予約入金額合計」と、ルール識別情報とを、この起動したPaymentStatusBeanに代入する。
すなわち、サーブレット24Aは、自身のデータ「予約販売額合計」及び「予約入金額合計」を用いたビジネスルールの処理をビジネスルール実行エンジン22に対して委譲するためのPaymentStatusBeanを起動して、処理を委譲に必要なデータである「予約販売額合計」及び「予約入金額合計」を、PaymentStatusBeanの入力の変数に代入する。
サービスアダプタ25は、PaymentStatusBeanが起動されると、この起動されたPaymentStatusBeanからプロセス識別情報「2」を抽出し、この抽出したプロセス識別情報「2」の示すプロセスの処理の委譲先を示す委譲先情報を、自身に設定されている対応テーブルから検出する。
そして、サービスアダプタ25は、自身に設定されている対応テーブルにおけるプロセス識別情報「2」に対する委譲先がビジネスルール実行エンジン22であるため、PaymentStatusBeanに対する処理をビジネスルールラッパー27へ委譲する。
すなわち、サービスアダプタ25は、ビジネスルールラッパー27を介して、プロセス識別情報「2」のプロセスの処理を、サーブレット24Aからビジネスルール実行エンジン22に対して委譲する制御を行う。
ここで、サービスアダプタ25は、ReservationBeanに付加されているプロセス識別情報と同一のプロセス識別情報を有する、すなわちプロセス識別情報「2」が付加されたビジネスルールラッパー27を介して、ビジネスルール実行エンジン22に対して委譲する制御を行う。
次に、ビジネスルールラッパー27は、PaymentStatusBeanからプロセス識別情報を抽出する。
そして、ビジネスルールラッパー27は、抽出したプロセス識別情報が自身に設定されているプロセス識別情報と一致するか否かを判定する。
ここで、ビジネスルールラッパー27は、プロセス識別情報が一致している場合、PaymentStatusBeanに記述されている「予約販売額合計」及び「予約入金額合計」のデータにおけるインターフェース及びデータの形式を変換する。
また、ビジネスルールラッパー27は、変換したReservationBeanを、ビジネスルール実行エンジン22のインターフェースコンテナであるKSessionに配置する処理を行う。
上述した処理により、ビジネスルールラッパー27は、インターフェースコンテナに配置されたPaymentStatusBeanにおけるサーブレット24Aに対応したインターフェース及びデータの形式を、ビジネスルール実行エンジン22のデータの入出力におけるインターフェース及びデータの形式に変換する。また、ビジネスルールラッパー27は、形式を変換したReservationBeanに対し、識別情報としてルール処理IDを付加する。
次に、ビジネスルール実行エンジン22は、インターフェースコンテナKSessionにおけるPaymentStatusBeanに記述されている、ルール識別情報と、「予約販売額合計」及び「予約入金額合計」のデータとを読み出す。
また、ビジネスルール実行エンジン22は、ルール識別情報に対応するビジネスルール定義体ファイル302を、ビジネスルール定義体ファイル記憶部200から読み出す。
そして、ビジネスルール実行エンジン22は、この読み出したビジネスルール定義体ファイル302の記述にしたがって、プロセス識別番号「2」のビジネスルールの処理を実行する。
上述したように、プロセス識別番号「2」のプロセスの「入金ステータスを検索する」処理に用いるデータの「予約販売額合計」及び「予約入金額合計」とが、ビジネスルール実行エンジン22に対し、インターフェースコンテナKSessionを介して、サーブレット24Aから供給されている。
そして、ビジネスルール実行エンジン22は、抽出したルール識別情報に対応するビジネスルール定義体ファイル302を、ビジネスルール定義体ファイル記憶部200から検索して読み出す。
次に、ビジネスルール実行エンジン22は、ビジネスルール定義体ファイル記憶部200から読み出したビジネスルール定義体ファイル302の記述に従い、サーブレット24Aから委譲されたデータ「予約販売額合計」及び「予約入金額合計」を用い、ビジネスルール処理を実行する。
そして、ビジネスルール実行エンジン22は、判定処理の結果として選択された入金ステータスを、インターフェースコンテナKSessionに配置されている、ビジネスルール処理を行ったビジネスルール定義体ファイル302のファイル名と同一のルール識別情報を有するPaymentsStatusBeanの出力する変数に書き込む。
次に、インターフェースコンテナKSessionに配置されたPaymentsBeanに対し、ビジネスルール実行エンジン22がビジネスルール処理の結果を書き込むと、ビジネスルールラッパー27は、このインターフェースコンテナKSessionに配置されたPaymentsBeanのなかから、ルール処理IDにより選択したPaymentsBeanに対してインターフェース及びデータの形式に変換する処理を行う。
ここで、ビジネスルールラッパー27は、インターフェースコンテナKSessionに配置されたPaymentsBeanに記述されている、「予約入金ステータス」のインターフェース及びデータの形式の変換を行う。
すなわち、ビジネスルールラッパー27は、PaymentsBeanのインターフェース及びデータの形式を、ビジネスルール実行エンジン22において用いられる形式から、サーブレット24Aで用いられる形式に変換する。
サービスアダプタ25は、ビジネスルールラッパー27が予約入金ステータスが書き込まれたPaymentsBeanから、プロセス識別情報として付加されているプロセス識別情報「2」を読み出す。
そして、サービスアダプタ25は、読み出したプロセス識別情報「2」と一致するプロセス識別情報を有するサーブレット24Aへ、PaymentsBeanを介してビジネスプロセス処理を委譲する。
サーブレット24Aは、サービスアダプタ25から処理を委譲されたPaymentsBeanより、判定処理の結果である入金ステータスのデータを抽出し、この抽出した入金ステータスのデータをJSP23に出力する。
JSP23は、入金ステータスのデータが供給されると、このサーブレット24Aから供給された入金ステータスのデータが表示される画面(ページ)を構成し、構成した画面をclientへ送信する。
そして、clientは、ウェブサーバー2から画面が供給されると、この画面を表示装置に表示し、ユーザに入金処理の検索結果を表示する。
また、JSP23は、業務処理「予約基本を検索する」における次に処理するプロセス、すなわちプロセス識別情報「3」のプロセス「予約基本を選択する」のサーブレット24Bを実行する。
このため、本実施形態のビジネスプロセス/ビジネスルール実行システムによれば、従来のように、ビジネスプロセス実行エンジンを介してビジネスルール実行エンジンを呼び出し、この呼出処理などの負荷によるビジネスプロセス実行エンジンにおけるプロセス処理の効率を低下させることを防止できる。
すなわち、プログラム生成装置1は、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれかに、プロセスの処理を委譲するかが設定されたサービスアダプタ25のプログラムファイルとして、サービスアダプタファイル103をプロセス毎に生成する。
すなわち、プログラム生成装置1は、ルール識別情報が付加されていないプロセスに対応し、入力されたビーンをビジネスプロセス実行エンジン21へ出力するサービスアダプタ25と、ルール識別情報が付加されているプロセスに対応し、入力されたビーンをビジネスルール実行エンジン22へ出力するサービスアダプタ25との各々のプログムファイルであるサービスアダプタファイル103を、ルール識別情報が付加されているか否かでプロセス毎に生成する。
そして、プログラム生成装置1は、このサービスアダプタファイル103と、このプロセスのプロセス識別情報とを対応づけ、サーバー記憶部3へコピーする。
サーブレット24は、プロセス識別情報が同一のサービスアダプタ25に対して、ビーン(ReservationBeanあるいはPaymentsBean)を生成して、処理の委譲を行う。
サービスアダプタ25は、自身のプロセス識別情報と同一のビーンを、予め設定された委譲先の実行エンジンのインターフェースコンテナ(ServiceSessionまたはKSession)に対し、この実行エンジンに対応するラッパー(ビジネスプロセスラッパー26またはビジネスルールラッパー27)を介して配置する。
一方、サービスアダプタ25は、入力されるビーンがPaymentsBeanの場合、すなわちルール識別情報が付加されているプロセスに対応して生成されたサーブレット24Aから出力されたものであるならば、ビジネスルール実行エンジン22に対応するビジネスルールラッパー27へ、入力されたPaymentsBeanに対する処理を委譲する。
上述した構成により、本実施形態によれば、プロセスの変更により、サービスアダプタ25のプログラムを変更する場合、変更したプロセスに対応するサービスアダプタ25のプログラムを変更するのみで良いため、サービスアダプタ25の管理が簡易化される。
図7は、複数画面において同一の情報を引き継ぎたい情報がある場合におけるビジネスプロセス定義体ファイル301のテーブルの記述例を示す図である。
また、補足欄に設定されている「[FW]STA00040_001」の文字列は、現在実行しているプロセスを実行した後に、次に実行するプロセスの識別情報を示している。したがって、図7の上部のテーブルにおいて、番号「2」のプロセス「予約基本を選択する」の処理の次に、「STA00040_001」である下部のテーブルにおけるプロセス「予約基本を検索する」が実行されることになる。このプロセス「予約基本を検索する」において、セッションスコープに格納された変数の値が用いられる。
また、[SS]DELの文字列は、現在のより前の他のサーブレット24にて格納され、現在のセッションスコープに格納されている引き継ぎたい情報を削除することを示している。
また、セッションスコープへのデータの格納を示す文字列がセッションスコープに格納されたデータの削除を示す[SS]DELである場合、サーブレット24は、現在より以前の他のサーブレット24にてセッションスコープに格納された操作対象パスに含まれるエンティティ名の名称の情報を削除する機能を含むように、プログラム生成装置1により生成される(後述)。
以下、図面を参照して、本発明の実施の形態であるビジネスプロセス/ビジネスルール実行システムで用いるプログラムの生成方法について説明する。図8は、この発明の一実施形態による、ビジネスプロセス/ビジネスルール実行システム(例えば、本実施形態においてはJAVA(登録商標)にて実装されている)で使用されるプログラムを生成するプログラム生成装置の構成例を示す概略ブロック図である。
この図8において、プログラム生成装置1は、ビジネスプロセス(Business Process)定義解析部11、ビジネスプロセス定義体ファイル変換部12、サーブレット(servlet)生成部13、サービスアダプタ(ServiceAdapter)生成部14、ビジネスプロセスラッパー(Business Process Wrapper)生成部15、ビジネスルールラッパー(Business Rules Wrapper)生成部16、ビジネスルール定義体ファイル解析部17及びビジネスルール定義体ファイル配備部18、記憶部19を備えている。
この図9は、下記に示す項目を表形式に記述する仕様、例えばエクセル(登録商標)などにより記述されている。
業務処理は、図9に示すように複数個のプロセス、あるいは1個のプロセスから構成されている。
項目A:プロセスを一意に識別するプロセス識別情報
項目B:プロセス識別情報で識別されるプロセスの名称であるプロセス名
項目C:プロセスの処理の種別あるいは項目の操作種別
項目D:プロセスが操作対象とするテーブル名及びテーブル内の項目を示す操作項目情 報
項目E:プロセスの操作対象のテーブルの詳細情報である操作対象
項目F:プロセスがビジネスルールの処理である場合に、このビジネスルールを一意に識別するルール識別情報
の各項目における定義から構成されている。
例えば、図9に示すビジネスプロセス定義体ファイル301におけるテーブルにおいて、プロセス識別情報(項目A)は、番号の欄に記述された「1」である。プロセス名(項目B)は、プロセス名の欄に記載された「予約基本を検索する」である。項目種別(項目C)は、項目種別の欄に記載されたプロセスの処理の種別である「SEARCH」、及びプロセスの処理における項目の操作情報である「Search」あるいは「Output」である。操作項目情報(項目D)は、ラベル名(エンティティ名)・ラベル名(アトリビュート名)及びエンティティ名・アトリビュート名の欄に記載されており、ラベル名(エンティティ名)である「予約」、ラベル名(アトリビュート名)である「予約予約番号」、「予約申込者名」、「予約出発日」、「予約従業員名」などであり、エンティティ名である「Reservation」であり、アトリビュート名である「reservationReservationReferenceld」、「reservationReservationApplicantName」などである。
図示はしていないが、プロセスにおける操作情報として、入力(Input)の欄に入力であるか否かを示すマークとして記述され、転記(Cascade)の欄に情報をいずれかに移しかえるか否かを示すマークとして記述され、任意(Optional)の欄に、対応するラベル(アトリビュート名)の情報の入力が任意であることを示すマークとして記述され、複数(Multiple)の欄に、対応するラベル(アトリビュート名)の情報の数が複数か否かを示すマークとして記述され、比較(Operetor)の欄に、対応するラベル(アトリビュート名)を検索する際に、完全一致(=)か部分一致(like)であるかを示す情報が記述されている。
また、ビジネスプロセス定義解析部11は、このビジネスプロセス定義体ファイル301を記憶部19から順次読み出し、業務処理を構成するプロセス毎に、プログラム生成情報を構成するプロセス識別情報、プロセス名、項目種別、操作項目情報、操作情報、操作対象、ルール識別情報の各々を抽出して読み出す。
ビジネスプロセス定義解析部11は、読み出したプロセス毎のプログラム生成情報に対し、対応するプロセスのプロセス識別情報を付加し、プロセス毎に記憶部19に一旦書き込んで記憶させる。
また、ビジネスプロセス定義解析部11は、ビジネスプロセス定義体ファイル301のテーブルにおいて、予め入力データが必要と設定されている項目に、ユーザからの入力データが記述がされていない場合、あるいは、プロセス名、項目種別、アトリビュート名などがビジネスプロセス実行エンジン及びビジネスルール実行エンジンで使用されている記述でない場合、ビジネスプロセス定義体ファイル301の記述に不備があることを図示しない、表示部などの出力部を介して作業者に対して通知する。
このとき、ビジネスプロセス定義体ファイル変換部12は、記憶部19におけるビジネスプロセス定義体ファイルテンプレート記憶領域から、ビジネスプロセス定義体ファイルテンプレートを読み出す。
このビジネスプロセス定義体ファイルテンプレート記憶領域には、プロセス識別情報、項目種別、操作項目情報及び操作情報の組み合わせ毎に、図9に示すビジネスプロセス定義体ファイルにおけるプロセス単位で、ビジネスプロセス実行エンジン21が解読できる形式のビジネスプロセス定義体ファイルテンプレート記憶されている。
そして、ビジネスプロセス定義体ファイル変換部12は、この読み出したビジネスプロセス定義体ファイルテンプレートに対し、記憶部19から読み出したプロセス識別情報、項目種別、操作項目情報及び操作情報を追記して、プロセス毎のビジネスプロセス定義体(XML)ファイル101を生成する。
このとき、サーブレット生成部13は、記憶部19のサーブレットテンプレート記憶領域において、項目種別毎にプロセス単位で記憶されている、サーブレットテンプレートに、記憶部19から読み出したプロセス識別情報、項目種別、操作項目情報を追記して、プロセス毎のプログラムを生成し、このれらのプログラムが記述されたサーブレットファイル102を出力する。
すなわち、サービスアダプタ生成部14は、プロセス識別情報毎に、当該プロセス識別情報が示すプロセスを、ビジネスプロセス実行エンジン21及びビジネスルール実行エンジン22のいずれかに委譲するかを示す対応テーブルを含み、プロセス識別情報が入力された際に、この対応テーブルを参照して、プロセス識別情報の示すプロセスの処理を、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれかに委譲するプログラムを生成し、このプログラムが記述されているサービスアダプタファイル103を出力する。
このビジネスプロセスラッパー26は、既に説明したように、サーブレット24がデータを委譲するために用いるビーン(ReservationBean)のインターフェースの形式及びデータの形式を、ビジネスプロセス実行エンジン21のインターフェース及びデータの形式に対応させる変換を行い、変換したインターフェースコンテナServiceSessionに配置し、逆に、インターフェースコンテナServiceSessionにおけるReservationBeanのインターフェースの形式及びデータの形式を、サーブレット24のインターフェースの形式及びデータの形式に対応する変換を行い、処理をサービスアダプタ25に委譲する処理を行うプログラムである。
また、ビジネスプロセスラッパー生成部15は、プロセス毎に入出力されるデータの種類や数が異なるため、すなわちプロセス毎にインターフェース及びデータが異なるため、ビジネスプロセスラッパー26のプログラムをプロセス毎に生成する。ここで、データの形式とは、byte、short、int、longなどのデータ型(変数)を示している。
このビジネスルールラッパー27は、既に説明したように、サーブレット24がデータを委譲するために用いるビーン(PaymentStatusBean)のインターフェースの形式及びデータの形式を、ビジネスルール実行エンジン22のインターフェース及びデータの形式に対応させる変換を行い、変換したインターフェースコンテナKSessionに配置し、逆に、インターフェースコンテナKSessionにおけるPaymentStatusBeanのインターフェースの形式及びデータの形式を、サーブレット24のインターフェースの形式及びデータの形式に対応する変換を行い、処理をサービスアダプタ25に委譲する処理を行うプログラムである。
また、ビジネスルールラッパー生成部16は、ビジネスプロセスラッパー生成部15と同様に、プロセス毎に入出力されるデータの種類や数が異なるため、すなわちプロセス毎にインターフェースが異なるため、ビジネスルールラッパー27のプログラムをプロセス毎に生成する。
また、プログラム生成装置1は、作成されたサーブレットファイル102、サービスアダプタファイル103、ビジネスプロセスラッパーファイル104及びビジネスルールラッパーファイル105の各々のファイルを、一旦記憶部19に書き込んで記憶させ、後にウェブサーバー2のサーバー記憶部3に書き込んで記憶させることにより、ウェブサーバー2に実装する。
また、ビジネスルール定義体ファイル解析部17は、記憶部19からビジネスルール定義体ファイル302を読み出し、このビジネスルール定義体ファイル302に記述されているルール識別情報を抽出する。
ビジネスルール定義体ファイル解析部17は、ビジネスプロセス定義体ファイル301から抽出したルール識別情報と同一ファイル名のビジネスルール定義体ファイル302が、記憶部19に記憶されているビジネスルール定義体ファイル302の中に存在するか否かの検出を行う(整合性のチェックを行う)。本実施形態においては、ルール識別情報と、この識別情報に対応するビジネスルール定義体ファイルのファイル名とは、同一の文字列を用いている。
ここで、ビジネスルール定義体ファイル解析部17は、ビジネスプロセス定義体ファイル301から抽出したルール識別情報と同一ファイル名のビジネスルール定義体ファイルが、記憶部19に記憶されているビジネスルール定義体ファイル302の中に存在しない場合、整合性が取れないことを示すエラーメッセージを表示装置等の出力部から出力することによりユーザに対して通知する。
また、ビジネスルール定義体ファイル配備部18は、ビジネスプロセス定義体ファイル301とビジネスルール定義体ファイル302との整合性が取れると、整合性が取れたビジネスルール定義体ファイル302を記憶部19から読み出し、ビジネスルール実行エンジン22が読み出しを行うビジネスルール定義体ファイル記憶部200へ書き込んで記憶させる(ビジネスルール定義体ファイル302のコピーを行う)。
このため、本実施形態によれば、ビジネスプロセス実行エンジン21におけるビジネスプロセス処理の実行において、従来のように、ビジネスルール実行エンジン22における呼出処理などの不必要な負荷をかける処理が無くなり、ビジネスプロセス処理の動作の効率を向上させることが可能なビジネスプロセス/ビジネスルール実行システムに実装されるプログラムを容易に生成することができる。
しかしながら、プロセス毎に1つのサービスアダプタ25を生成するように、サービスアダプタ生成部14を構成してもよい。この場合、サービスアダプタ25は、自身に設定されているプロセス識別情報に対応するプロセスの処理を、自身に設定された委譲先(ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22のいずれか)に委譲する処理を行う機能を有する。
ステップS1:
ビジネスプロセス定義解析部11は、入力されるテーブル形式のビジネスプロセス定義体ファイル301から、プログラム生成情報であるプロセス識別情報、プロセス名、項目種別、操作項目情報、操作情報、操作対象、ルール識別情報の各々を、プログラム生成情報として抽出して読み出し、プロセス毎にプロセス識別情報に対応させて、記憶部19に書き込んで記憶させる。
そして、サーブレット生成部13は、読み出したテンプレートに対し、プロセス識別情報を含むプログラム生成情報の各データを追記することにより、サーブレット24のプログラムのソースコードを生成し、このサーブレット24のソースコードが記述されたサーブレットファイル102を生成する。
これにより、サーブレット生成部13は、ビジネスプロセス実行エンジン21またはビジネスルール実行エンジン22に、ビジネスプロセス定義体ファイル301の各プロセスに記述された処理を実行させるサーブレット24のプログラムを生成し、生成されたサーブレット24のプログラムのソースコードを、サーブレットファイル102としてプロセス識別情報に対応させて記憶部19に書き込んで記憶させる。
ビジネスプロセス定義体ファイル変換部12は、記憶部19に記憶されているプロセス毎に、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスプロセス定義体ファイル変換部12は、ルール識別情報が付加されていないプロセスに対応するプログラム生成情報を順次読み出す。
また、ビジネスプロセス定義体ファイル変換部12は、記憶部19に記憶されているビジネスプロセス定義体ファイルのテンプレートを読み出す。このビジネスプロセス定義体ファイルのテンプレートは、ビジネスプロセス実行エンジン21が解読する形式のビジネスプロセス定義体ファイルを生成する元になる。
プログラム生成情報を読み出すと、ビジネスプロセス定義体ファイル変換部12は、読み出したプログラム生成情報の各データを、ビジネスプロセス定義体ファイルのテンプレートに追記し、ビジネスプロセス実行エンジン21が解読できる形式のビジネスプロセス定義体(XML)ファイル101を生成し、プロセス識別情報に対応させて記憶部19に書き込んで記憶させる。
サービスアダプタ生成部14は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、サービスアダプタ生成部14は、ルール識別情報が付加されていないサーブレット24処理の委譲先をビジネスプロセス実行エンジン21とし、ルール識別情報が付加されているサーブレット24の処理の委譲先をビジネスルール実行エンジン22と判定する。
また、サービスアダプタ生成部14は、生成したサービスアダプタファイル103を、記憶部19に書き込んで記憶させる。
ビジネスプロセスラッパー生成部15は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスプロセスラッパー生成部15は、判定の結果、ルール識別情報が付加されていない場合、サーブレット24がデータの入出力に用いるビーンと、ビジネスプロセス実行エンジン22がデータの入出力に用いるインターフェースコンテナServiceSession内に配置する際に、インターフェース及びデータの形式を、サーブレット24とビジネスプロセス実行エンジン22とにおける出力側の形式を入力側の形式に合わせるビジネスプロセスラッパー26を生成する。
ビジネスプロセスラッパー生成部15は、生成したビジネスプロセスラッパー26のビジネスプロセスラッパーファイル104を、記憶部19に書き込んで記憶させる。
ビジネスルールラッパー生成部16は、記憶部19に記憶されているプログラム生成情報をプロセス毎に逐次読み出し、ルール識別情報が付加されているか否かの判定を行う。
そして、ビジネスルールラッパー生成部16は、判定の結果、ルール識別情報が付加されている場合、サーブレット24がデータの入出力に用いるPaymentStatusBeanを、ビジネスルール実行エンジンがデータの入出力に用いるインターフェースコンテナKSession内に配置する際に、インターフェース及びデータの形式を、サーブレット24とビジネスルール実行エンジン22とにおける出力側の形式を入力側の形式に合わせるビジネスルールラッパー27を生成する。
ビジネスルールラッパー生成部16は、生成したビジネスルールラッパー27のビジネスルールラッパーファイル105を、記憶部19に書き込んで記憶させる。
ビジネスルール定義体ファイル解析部17は、記憶部19に記憶されている全てのプロセスのプログラム生成情報からルール識別情報を含むプログラム生成情報を検出し、このプログラム生成情報からルール識別情報を抽出する。
そして、ビジネスルール定義体ファイル解析部17は、抽出したルール識別情報と同一のファイル名を有するビジネスルール定義体ファイル302が、記憶部19に記憶されているビジネスルール定義体ファイル302に存在するか否かの判定により、ビジネスプロセス定義体ファイル301のルール識別情報を有するプロセスと、ビジネスルール定義体ファイル302との整合が取れているか否かの整合性チェックを行う。
一方、ビジネスルール定義体ファイル解析部17は、プログラム生成情報から抽出したルール識別情報の中において、記憶部19に記憶されているビジネスルール定義体ファイル302のファイル名と対応付けられないルール識別情報が存在する場合、ビジネスルール定義体ファイル302とルール識別情報との整合性が取れないと判定する。
そして、ビジネスルール定義体ファイル解析部17は、この整合性が取れないと判定されたプロセスのプロセス識別情報を示すエラーメッセージを出力部から出力してユーザに通知する。
この図11に示されているように、ビジネスプロセス定義体ファイル301において、ルール識別情報が付加されていないプロセス識別情報「1」のプロセス(プロセス識別情報「3」のプロセスも同様)に対応するテーブルの記述を、ビジネスプロセス実行エンジン21の解読可能な形式としたビジネスプロセス定義体(XML)ファイル101が生成される。
同様に、ビジネスプロセス定義体(XML)ファイル101と同様に、サーブレットファイル102がサーブレット生成部13により、またビジネスプロセスラッパーファイル104がビジネスプロセスラッパー生成部15により、プロセス毎に生成される。
この図12に示されているように、ビジネスプロセス定義体ファイル301において、ルール識別情報が付加されているプロセス識別情報「2」のプロセスに対応するプログラム生成情報から、サーブレットファイル102がサーブレット生成部13により、またビジネスプロセスラッパーファイル104がビジネスプロセスラッパー生成部15により、プロセス毎に生成される。
また、図11及び図12に記載されているサービスアダプタファイル103は、既に説明したように、ルール識別情報が付加されていない、あるいは付加されているに係わらず、記憶部19に記憶されているビジネスプロセス定義体ファイル302の全てに含まれる全プロセスに対して1つ生成される。
既に、図11及び図12において説明したように、サーブレットファイル102は、ルール識別情報が付加されているか否かによらず、プロセスに対して1個生成される。このため、図13の業務処理のビジネスプロセス定義体ファイル301のプロセスが3個のため、このビジネスプロセス定義体ファイル301の場合に、サーブレットファイル102はサーブレット生成部13によって3個生成される。
また、ビジネスプロセス定義体(XML)ファイル101は、ルール識別情報が付加されていないプロセスのみに対して生成される。このため、図13のビジネスプロセス定義体ファイル301には、ルール識別情報が付加されていないプロセスは、プロセス識別情報「1」及び「3」の2個であり、ビジネスプロセス定義体(XML)ファイル101は、ビジネスプロセス定義体ファイル変換部12により2個生成される。
また、ビジネスルールラッパーファイル105は、ルール識別情報が付加されているプロセスのみに対して生成される。このため、図13のビジネスプロセス定義体ファイル301には、ルール識別情報が付加されているプロセスは、プロセス識別情報「2」の1個であり、ビジネスルールラッパーファイル105は、ビジネスルールラッパー生成部16により1個生成される。
すなわち、ビジネスプロセス定義体ファイル変換部12、サーブレット生成部13、サービスアダプタ生成部14、ビジネスプロセスラッパー生成部15及びビジネスルールラッパー生成部16の各々は、新たにプログラムを生成する際、既に生成したプログラムのプロセス識別情報と、これから生成しようとするプログラムのプロセス識別情報とを比較し、一致しない場合にプログラムを生成し、一方、一致した場合にプログラムを生成しない。
また、サービスアダプタファイル103は、全てのプロセスに対して1個、すなわち本実施形態のビジネスプロセス/ビジネスルール実行システムに対して入力される全ての業務処理のビジネスプロセス定義体ファイル301のプロセスに対して1個が、サービスアダプタ生成部14により生成される。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
2…ウェブサーバー
3…サーバー記憶部
11…ビジネスプロセス定義解析部
12…ビジネスプロセス定義体ファイル変換部
13…サーブレット生成部
14…サービスアダプタ生成部
15…ビジネスプロセスラッパー生成部
16…ビジネスルールラッパー生成部
17…ビジネスルール定義体ファイル解析部
18…ビジネスルール定義体ファイル配備部
19…記憶部
21…ビジネスプロセス実行エンジン
22…ビジネスルール実行エンジン
23…JSP
24,24A,24B…サーブレット
25…サービスアダプタ
26…ビジネスプロセスラッパー
27…ビジネスルールラッパー
101…ビジネスプロセス定義体(XML)ファイル
102…サーブレットファイル
103…サービスアダプタファイル
104…ビジネスプロセスラッパーファイル
105…ビジネスルールラッパーファイル
200…ビジネスルール定義体ファイル記憶部
301…ビジネスプロセス定義体ファイル
302…ビジネスルール定義体ファイル
Claims (8)
- ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンに、ウェブサービス処理を実行させるビジネスプロセス/ビジネスルール実行システムであり、
前記ビジネスプロセス処理あるいは前記ビジネスルール処理に対応したプロセス毎に設けられ、当該プロセスの処理を実行するサーブレットと、
前記サーブレットに前記ビジネスルールを識別するルール識別情報が記述されている場合、当該サーブレットのプロセス単位で処理の委譲先をビジネスルール実行エンジンとし、一方、前記サーブレットに前記ルール識別情報が記述されていない場合、当該サーブレットの処理の委譲先をビジネスプロセス実行エンジンとするサービスアダプタと
を備えることを特徴とするビジネスプロセス/ビジネスルール実行システム。 - 前記サービスアダプタが、全ての前記プロセスに対して1つ設けられており、予め設定された前記サーブレットの処理するプロセスを識別するプロセス識別情報と、当該サーブレットのプロセスの処理の委譲先との対応を示す対応テーブルを有し、前記サーブレットに記述されたプロセス識別情報に従い、当該サーブレットの処理の委譲先を判定することを特徴とする請求項1に記載のビジネスプロセス/ビジネスルール実行システム。
- 前記サービスアダプタが、前記プロセス各々に設けられており、自身に記述された前記プロセスを識別するプロセス識別情報と一致するサーブレットの処理を、前記記述されている委譲先に委譲することを特徴とする請求項1に記載のビジネスプロセス/ビジネスルール実行システム。
- 前記サーブレットと前記ビジネスルール実行エンジンとの間において、相互に処理を委譲する際、委譲元のインターフェースの形式及びデータの形式を、委譲先のインターフェースの形式及びデータの形式に変換するビジネスルールラッパーと、
前記サーブレットと前記ビジネスプロセス実行エンジンとの間において、相互に処理を委譲する際、委譲元のインターフェースの形式及びデータの形式を、委譲先のインターフェースの形式及びデータの形式に変換するビジネスプロセスラッパーと
をさらに有することを特徴とする請求項1に記載のビジネスプロセス/ビジネスルール実行システム。 - 前記ビジネスルール記述情報と当該ビジネスルール記述情報を示す前記ルール識別情報とが対応して記憶されているビジネスルール定義体ファイル記憶部をさらに有し、
前記ビジネスルール実行エンジンが、前記サーブレットから処理を委譲される際、サーブレットに記述された前記ルール識別情報を検索キーとし、前記ビジネスルール定義体ファイル記憶部を検索し、前記検索キーと同一のルール識別情報と対応して記憶されている前記ビジネスルール記述情報を読み出し、当該ビジネスルール記述情報の手順に従ってビジネスルール処理を実行することを特徴とする請求項1から請求項4のいずれか一項に記載のビジネスプロセス/ビジネスルール実行システム。 - 前記サーブレット間において、自身のデータを委譲データとして他のサーブレットに委譲する場合、当該サーブレットに前記データを委譲する相手を示す相手情報が記述されており、当該相手情報のサーブレットに対して当該データを、一時記憶部を介して委譲することを特徴とする請求項1から請求項5のいずれか一項に記載のビジネスプロセス/ビジネスルール実行システム。
- ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンに、ウェブサービス処理を実行させるビジネスプロセス/ビジネスルール実行方法であり、
前記ビジネスプロセス処理あるいは前記ビジネスルール処理に対応したプロセス毎に設けられたサーブレットの各々が当該プロセスの処理を実行する過程と、
サービスアダプタが、前記サーブレットに前記ビジネスルールを識別するルール識別情報が記述されている場合、当該サーブレットのプロセス単位で処理の委譲先をビジネスルール実行エンジンとし、一方、前記サーブレットに前記ルール識別情報が記述されていない場合、当該サーブレットの処理の委譲先をビジネスプロセス実行エンジンとする過程と
を有することを特徴とするビジネスプロセス/ビジネスルール実行方法。 - ビジネスプロセス処理の手順が示されるビジネスプロセス記述情報に従って処理を行うビジネスプロセス実行エンジン、及びビジネスルール処理の手順が示されるビジネスルール記述情報に従って処理を行うビジネスルール実行エンジンにウェブサービス処理を実行させるコンピュータを、
前記ビジネスプロセス処理あるいは前記ビジネスルール処理に対応したプロセス毎に設けられ当該プロセスの処理を実行するサーブレットを実行させる手段、
前記サーブレットに前記ビジネスルールを識別するルール識別情報が記述されている場合、当該サーブレットのプロセス単位で処理の委譲先をビジネスルール実行エンジンとし、一方、前記サーブレットに前記ルール識別情報が記述されていない場合、当該サーブレットの処理の委譲先をビジネスプロセス実行エンジンとするサービスアダプタ手段、
として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011168315A JP5715905B2 (ja) | 2011-08-01 | 2011-08-01 | ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011168315A JP5715905B2 (ja) | 2011-08-01 | 2011-08-01 | ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013033333A JP2013033333A (ja) | 2013-02-14 |
JP5715905B2 true JP5715905B2 (ja) | 2015-05-13 |
Family
ID=47789182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011168315A Active JP5715905B2 (ja) | 2011-08-01 | 2011-08-01 | ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5715905B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015137641A2 (ko) * | 2014-03-11 | 2015-09-17 | (주)이노룰스 | 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법 |
WO2021172953A1 (ko) * | 2020-02-27 | 2021-09-02 | 주식회사 이노룰스 | 비즈니스 룰 관리 시스템 |
KR102217937B1 (ko) * | 2020-02-27 | 2021-02-23 | 주식회사 이노룰스 | 비즈니스 룰 관리 시스템 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1506478B1 (en) * | 2002-03-28 | 2008-07-23 | Sap Ag | Exchange infrastructure system and method |
US7937354B2 (en) * | 2007-10-15 | 2011-05-03 | Sap Ag | Providing results from external rule engines based on rule engine vocabularies |
-
2011
- 2011-08-01 JP JP2011168315A patent/JP5715905B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013033333A (ja) | 2013-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540636B2 (en) | Method and apparatus for providing process guidance | |
US7313552B2 (en) | Boolean network rule engine | |
JP6659544B2 (ja) | 自動化された実験プラットホーム | |
CN102576364B (zh) | 用于智能的基于事件的数据挖掘的方法和装置 | |
EP3069268A1 (en) | Transforming natural language requirement descriptions into analysis models | |
US20070027738A1 (en) | Element organization support apparatus, element organization support method and storage medium | |
JP2011204228A (ja) | 学習メカニズムを用いたマッシュアップインフラストラクチャ | |
JP2003330948A (ja) | ウェブページを評価する装置および方法 | |
CN104679642A (zh) | 日志分析系统中的日志的与语言无关的处理方法和系统 | |
Hasić et al. | Decision model change patterns for dynamic system evolution | |
JP5715905B2 (ja) | ビジネスプロセス/ビジネスルール実行システム、ビジネスプロセス/ビジネスルール実行方法及びプログラム | |
Garanina et al. | A multi-agent text analysis based on ontology of subject domain | |
JP5703165B2 (ja) | プログラム生成装置、その方法及びプログラム | |
CN117256001A (zh) | 为用户导航推荐撰写人类可读解释 | |
JP2010282241A (ja) | ファイル管理装置、ファイル管理システム、ファイル管理方法、および、プログラム | |
JP2003345697A (ja) | 統合インタフェース提供方法、装置及び記憶媒体 | |
US20140089886A1 (en) | Using multiple technical writers to produce a specified software documentation package | |
JP7188461B2 (ja) | セキュリティ情報分析装置、システム、方法およびプログラム | |
JP2001100999A (ja) | ルールベースシステム | |
Mitzig et al. | SciELO suggester: An intelligent support tool for cataloging library resources | |
US20160321280A2 (en) | System for automatically generating wrapper for entire websites | |
US20210124871A1 (en) | Authoring management method based on relation of electronic documents and authoring management system | |
JP7256562B1 (ja) | 知能生成システム、方法およびプログラム | |
Spositto et al. | Application Programming Interface Technology to Optimize the Exchange of Information Between Legal Systems | |
JP7482335B1 (ja) | 検索支援システム、検索支援方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20130516 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130816 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140219 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20141028 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150316 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5715905 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |