(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-05
(45)【発行日】2023-10-16
(54)【発明の名称】ルールを編集、シミュレート、バージョン制御、及びビジネスプロセス管理する統合システム
(51)【国際特許分類】
G06F 8/71 20180101AFI20231006BHJP
G06F 11/36 20060101ALI20231006BHJP
G06F 8/30 20180101ALI20231006BHJP
【FI】
G06F8/71
G06F11/36 164
G06F8/30
(21)【出願番号】P 2019563395
(86)(22)【出願日】2018-06-06
(86)【国際出願番号】 US2018036354
(87)【国際公開番号】W WO2018226895
(87)【国際公開日】2018-12-13
【審査請求日】2021-06-01
(32)【優先日】2017-06-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-03-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ストゥーダー,スコット
(72)【発明者】
【氏名】ゴウルド,ジョエル
(72)【発明者】
【氏名】ワイスマン,アミット
【審査官】武田 広太郎
(56)【参考文献】
【文献】特表2010-518382(JP,A)
【文献】米国特許出願公開第2014/0351800(US,A1)
【文献】特開2015-162218(JP,A)
【文献】特開2012-079259(JP,A)
【文献】Darren Jefford ほか,プロフェッショナルBizTalk Server 2006,第1版,日本,日経BPソフトプレス,2008年03月10日,pp.344-364,ISBN: 978-4-89100-569-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/71
G06F 11/36
G06F 8/30
(57)【特許請求の範囲】
【請求項1】
データ処理システムにおいて
プロセスアプリケーション及びエディタアプリケーションと併用する1つ又は複数のルールを実施するコンピュータ実施方法であって、
ルールの複数のバージョンをシステムストレージに記憶することであって、前記ルールの各バージョンは、第1の状態及び第2の異なる状態を含む複数の状態に関連付けられるように構成される、記憶することと、
少なくとも、前記プロセスアプリケーションによって記憶し、かつ前記エディタアプリケーションによってアクセスすることにより、又は前記エディタアプリケーションによって記憶し、かつ前記プロセスアプリケーションによってアクセスすることにより、1つ又は複数の記録を記憶し、かつ前記記憶された1つ又は複数の記録にアクセスすることと、
前記1つ又は複数のアクセスされた記録を通して前記プロセスアプリケーション及びエディタアプリケーションを統合するユーザインターフェースを通して命令を受信することであって、前記プロセスアプリケーションは、前記ユーザインターフェースの第1の部分に提示され、前記エディタアプリケーションは、前記ユーザインターフェースの第2の部分に提示される、受信することと、
前記命令を受信することに応答して、前記受信された命令を実行することであって、
前記システムストレージに記憶された前記ルールの前記複数のバージョンから前記ルールの
特定のバージョンを選択することと、
前記ルールの前記特定のバージョンを、
前記エディタアプリケーションを通して変更することと、
前記ルールの前記特定のバージョンが変更されることを指定するデータを用いて、前記記憶された1つ又は複数の記録の少なくとも1つを更新することと、
前記1つ又は複数の記録を前記更新することに基づいて、前記ルールの前記特定のバージョンを前記複数の状態の前記第1の状態から前記複数の状態の前記第2の異なる状態に、
前記プロセスアプリケーションによって遷移させることと、を含む、実行することと、
前記1つ又は複数のアクセスされた記録の一つに、前記エディタアプリケーション及び前記プロセスアプリケーションを統合する前記ユーザインターフェースを通して受信された前記命令を実行することから生じる情報を記憶することと、
を含む、方法。
【請求項2】
前記1つ又は複数のアクセスされた記録は、前記ルールの前記複数のバージョンにリンクされる、請求項1に記載の方法。
【請求項3】
前記ユーザインターフェースの第3の部分は、前記ルールの所与の状態に関連付けられた所与のルールと、前記ルールの所与のバージョンとを表す複数のエントリを表示し、
前記プロセスアプリケーションは、前記所与のルールの状態遷移を指定するデータを提出するためのものであり、バージョン制御アプリケーションは、前記所与のルールの新規バージョンを指定するためのものである、請求項2に記載の方法。
【請求項4】
前記ユーザインターフェースの前記第3の部分に提示される前記エディタアプリケーションを通して前記複数のエントリの所与の1つを変更することと、
前記変更された所与のエントリに基づいて新規ルールを生成することと、
前記新規ルールを、前記所与のルールの新規バージョンとして、前記データ処理システムによって保存することと、
前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することと、
を更に含む、請求項3に記載の方法。
【請求項5】
前記複数のエントリは、前記ユーザインターフェースの前記第3の部分にレンダリングされる複数の行であり、前記複数の行のそれぞれは、複数のセルを含み、前記複数のセルの1つ又は複数のセルは、前記ユーザインターフェースの更なる部分を通して変更され、前記バージョン制御アプリケーションは、前記所与のルールの前記新規バージョンを指定するためのものである、請求項3に記載の方法。
【請求項6】
前記ユーザインターフェースの前記第1の部分、前記第2の部分、及び前記第3の部分の少なくとも2つを通して実行された動作に基づいて、前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することを更に含む、請求項5に記載の方法。
【請求項7】
前記命令は、第1の命令であり、前記方法は、前記ユーザインターフェースを通して第2の命令を受信することと、前記第2の命令を受信することに応答して、前記受信された第2の命令を実行することとを更に含み、前記受信された第2の命令を実行することは、
前記システムストレージに記憶された複数のルールから2つ以上のルールの群を選択することであって、前記群の各ルールは、前記ルールの複数のバージョンの特定のバージョンである、選択することと、
前記選択されたルールの群にリリースタグを関連付けることと、
前記リリースタグを前記複数の状態の前記第1の状態から前記複数の状態の前記第2の異なる状態に遷移させることと、を含む、請求項3に記載の方法。
【請求項8】
データ処理システムにおいて
プロセスアプリケーション及びエディタアプリケーションと併用する1つ又は複数のルールを実施する1つ又は複数の機械可読ハードウェア記憶装置であって、
ルールの複数のバージョンをシステムストレージに記憶することであって、前記ルールの各バージョンは、第1の状態及び第2の異なる状態を含む複数の状態に関連付けられるように構成される、記憶することと、
少なくとも、前記プロセスアプリケーションによって記憶し、かつ前記エディタアプリケーションによってアクセスすることにより、又は前記エディタアプリケーションによって記憶し、かつ前記プロセスアプリケーションによってアクセスすることにより、1つ又は複数の記録を記憶し、かつ前記記憶された1つ又は複数の記録にアクセスすることと、
前記1つ又は複数のアクセスされた記録を通して前記プロセスアプリケーション及びエディタアプリケーションを統合するユーザインターフェースを通して命令を受信することであって、前記プロセスアプリケーションは、前記ユーザインターフェースの第1の部分に提示され、前記エディタアプリケーションは、前記ユーザインターフェースの第2の部分に提示される、受信することと、
前記命令を受信することに応答して、前記受信された命令を実行することであって、
前記システムストレージに記憶された前記ルールの前記複数のバージョンから前記ルールの
特定のバージョンを選択することと、
前記ルールの前記特定のバージョンを、
前記エディタアプリケーションを通して変更することと、
前記ルールの前記特定のバージョンが変更されることを指定するデータを用いて、前記記憶された1つ又は複数の記録の少なくとも1つを更新することと、
前記1つ又は複数の記録を前記更新することに基づいて、前記ルールの前記特定のバージョンを前記複数の状態の前記第1の状態から前記複数の状態の前記第2の異なる状態に、
前記プロセスアプリケーションによって遷移させることと、を含む、実行することと、
前記1つ又は複数のアクセスされた記録の一つに、前記エディタアプリケーション及び前記プロセスアプリケーションを統合する前記ユーザインターフェースを通して受信された前記命令を実行することから生じる情報を記憶することと、
を含む演算を実行するための、1つ又は複数のプロセッサによって実行可能な命令を記憶する、1つ又は複数の機械可読ハードウェア記憶装置。
【請求項9】
前記1つ又は複数のアクセスされた記録は、前記ルールの前記複数のバージョンにリンクされる、請求項8に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項10】
前記ユーザインターフェースの第3の部分は、前記ルールの所与の状態に関連付けられた所与のルールと、前記ルールの所与のバージョンとを表す複数のエントリを表示し、
前記プロセスアプリケーションは、前記所与のルールの状態遷移を指定するデータを提出するためのものであり、バージョン制御アプリケーションは、前記所与のルールの新規バージョンを指定するためのものである、請求項8に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項11】
前記演算は、
前記ユーザインターフェースの前記第3の部分に提示される前記エディタアプリケーションを通して前記複数のエントリの所与の1つを変更することと、
前記変更された所与のエントリに基づいて新規ルールを生成することと、
前記新規ルールを、前記所与のルールの新規バージョンとして、前記データ処理システムによって保存することと、
前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することと、
を更に含む、請求項10に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項12】
前記複数のエントリは、前記ユーザインターフェースの前記第3の部分にレンダリングされる複数の行であり、前記複数の行のそれぞれは、複数のセルを含み、前記複数のセルの1つ又は複数のセルは、前記ユーザインターフェースの更なる部分を通して変更され、前記バージョン制御アプリケーションは、前記所与のルールの前記新規バージョンを指定するためのものである、請求項11に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項13】
前記演算は、
前記ユーザインターフェースの前記第1の部分、前記第2の部分、及び前記第3の部分の少なくとも2つを通して実行された動作に基づいて、前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することを更に含む、請求項11に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項14】
前記命令は、第1の命令であり、前記演算は、前記ユーザインターフェースを通して第2の命令を受信することと、前記第2の命令を受信することに応答して、前記受信された第2の命令を実行することとを更に含み、前記受信された第2の命令を実行することは、
前記システムストレージに記憶された複数のルールから2つ以上のルールの群を選択することであって、前記群の各ルールは、前記ルールの複数のバージョンの特定のバージョンである、選択することと、
前記選択されたルールの群にリリースタグを関連付けることと、
前記リリースタグを前記複数の状態の前記第1の状態から前記複数の状態の前記第2の異なる状態に遷移させることと、を含む、請求項8に記載の1つ又は複数の機械可読ハードウェア記憶装置。
【請求項15】
データ処理システムにおいて
プロセスアプリケーション及びエディタアプリケーションと併用するシステムであって、
1つ又は複数のプロセッサと、
ルールの複数のバージョンをシステムストレージに記憶することであって、前記ルールの各バージョンは、第1の状態及び第2の異なる状態を含む複数の状態に関連付けられるように構成される、記憶することと、
少なくとも、前記プロセスアプリケーションによって記憶し、かつ前記エディタアプリケーションによってアクセスすることにより、又は前記エディタアプリケーションによって記憶し、かつ前記プロセスアプリケーションによってアクセスすることにより、1つ又は複数の記録を記憶し、かつ前記記憶された1つ又は複数の記録にアクセスすることと、
前記1つ又は複数のアクセスされた記録を通して前記プロセスアプリケーション及びエディタアプリケーションを統合するユーザインターフェースを通して命令を受信することであって、前記プロセスアプリケーションは、前記ユーザインターフェースの第1の部分に提示され、前記エディタアプリケーションは、前記ユーザインターフェースの第2の部分に提示される、受信することと、
前記命令を受信することに応答して、前記受信された命令を実行することであって、
前記システムストレージに記憶された前記ルールの前記複数のバージョンから前記ルールの
特定のバージョンを選択することと、
前記ルールの前記特定のバージョンを、
前記エディタアプリケーションを通して変更することと、
前記ルールの前記特定のバージョンが変更されることを指定するデータを用いて、前記記憶された1つ又は複数の記録の少なくとも1つを更新することと、
前記1つ又は複数の記録を前記更新することに基づいて、前記ルールの前記特定のバージョンを前記複数の状態の前記第1の状態から前記複数の状態の前記第2の異なる状態に、
前記プロセスアプリケーションによって遷移させることと、を含む、実行することと、
前記1つ又は複数のアクセスされた記録の一つに、前記エディタアプリケーション及び前記プロセスアプリケーションを統合する前記ユーザインターフェースを通して受信された前記命令を実行することから生じる情報を記憶することと、
を含む演算を実行するための、前記1つ又は複数のプロセッサによって実行可能な命令を記憶する1つ又は複数の機械可読ハードウェア記憶装置と、
を含む、システム。
【請求項16】
前記1つ又は複数のアクセスされた記録は、前記ルールの前記複数のバージョンにリンクされる、請求項15に記載のシステム。
【請求項17】
前記ユーザインターフェースの第3の部分は、前記ルールの所与の状態に関連付けられた所与のルールと、前記ルールの所与のバージョンとを表す複数のエントリを表示し、
前記プロセスアプリケーションは、前記所与のルールの状態遷移を指定するデータを提出するためのものであり、バージョン制御アプリケーションは、前記所与のルールの新規バージョンを指定するためのものである、請求項15に記載のシステム。
【請求項18】
前記演算は、
前記ユーザインターフェースの前記第3の部分に提示される前記エディタアプリケーションを通して前記複数のエントリの所与の1つを変更することと、
前記変更された所与のエントリに基づいて新規ルールを生成することと、
前記新規ルールを、前記所与のルールの新規バージョンとして、前記データ処理システムによって保存することと、
前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することと、
を更に含む、請求項17に記載のシステム。
【請求項19】
前記複数のエントリは、前記ユーザインターフェースの前記第3の部分にレンダリングされる複数の行であり、前記複数の行のそれぞれは、複数のセルを含み、前記複数のセルの1つ又は複数のセルは、前記ユーザインターフェースの更なる部分を通して変更され、前記バージョン制御アプリケーションは、前記所与のルールの前記新規バージョンを指定するためのものである、請求項18に記載のシステム。
【請求項20】
前記演算は、
前記ユーザインターフェースの前記第1の部分、前記第2の部分、及び前記第3の部分の少なくとも2つを通して実行された動作に基づいて、前記生成された所与のルールの前記新規バージョンと、前記所与のルールの前記新規バージョンの初期状態とを指定するデータを用いて、前記1つ又は複数のアクセスされた記録の所与の記録を、前記データ処理システムによって自動的に更新することを更に含む、請求項19に記載のシステム。
【請求項21】
前記プロセスアプリケーション及び前記エディタアプリケーションによってアクセスされる1つ又は複数の記録は、ログ記録を含む、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、2017年6月6日付けで出願された米国特許出願第62/515,845号の優先権を主張するものであり、この出願の内容は全体的に、参照により本明細書に援用される。
【0002】
背景
この説明は、ルールの編集、シミュレーション、バージョン制御、及びビジネスプロセス管理を行う統合システムに関する。
【背景技術】
【0003】
幾つかの例では、従来のルールセットソースコード制御ツールでは、ソフトウェアプログラマのチームが、ルールセットが開発され更新されるにつれて、幾つかのルールセットのソースコードを管理することができる。ソースコード制御ツールは、ルールセットの中央リポジトリを保持する。ソフトウェアプログラマは、ルールセットを借り出し、ルールエディタを使用してルールセットを編集し、ルールセットをプログラマのコンピュータにローカルに記憶する。ルールセットが借り出されるとき、ルールセットはロックされ、別のプログラマにより編集することはできない。プログラマは、ルールセットの編集を終えた後、ルールセットをテストデータに適用することにより、ルールシミュレータを使用してルールセットの実行をシミュレートし得る。プログラマは、ルールセットへの変更に満足する場合、ルールセットを返却する。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
一態様では、一般に、この説明は、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法を特徴とする。本方法は、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールセットの複数のバージョンをリポジトリに記憶することと、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させ、第1のルールセットの特定のバージョンをリポジトリに返却することを含む。本方法は、第1のルールセットの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含む。
【0005】
態様は、以下の特徴の1つ又は複数を含むことができる。第1の状態は、第1のルールセットが、なお編集中のドラフトであることを示すことができ、第2の状態は、第1のルールセットがレビューアによるレビュー可能な状態であることを示すことができる。
【0006】
第1の状態は、第1のルールセットが、第1のルールセットのリリースを承認する権限を有するユーザによるレビューが可能な状態であることを示すことができ、第2の状態は、第1のルールセットが完成し、リリース可能な状態であることを示すことができる。
【0007】
各ルールセットは、入力データを出力データに変換するソフトウェアモジュール又はデータ処理エンティティの少なくとも一方に対応することができる。
【0008】
統合アプリケーション開発システムは、ソースコード制御モジュール及びビジネスプロセス管理モジュールを含み、ソースコード制御モジュールは、第1のルールセットの特定のバージョンの返却及び借り出しを処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を処理することができる。
【0009】
ソースコード制御モジュールは、(i)第1のユーザがリポジトリから第1のルールセットの特定のバージョンを借り出したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができる。ビジネスプロセス管理モジュールは、(i)第1のユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができる。
【0010】
本方法は、リポジトリから第1のルールセットの特定のバージョンを借り出した後、及び第1のルールセットの特定のバージョンをリポジトリに返却する前、リポジトリに記憶された第1のルールセットの特定のバージョンをロックして、他のユーザがリポジトリ内の第1のルールセットの特定のバージョンを変更できないようにすることを含むことができる。
【0011】
本方法は、統合ユーザインターフェースの第2のユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することを含むことができる。本方法は、第2のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出すことと、実行することであって、(i)アプリケーションプログラムに第1のルールセットの特定のバージョンを関連付け、アプリケーションプログラムを実行して、第1のルールセットの特定のバージョンの1つ又は複数のルールに従って入力記録を処理し、出力を生成すること、又は(ii)第1のルールセットの特定のバージョンの1つ又は複数のルールに従って入力記録を処理して、出力を生成するアプリケーションプログラムの前の実行から生成された、記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。本方法は、第1のルールセットの特定のバージョンをリポジトリに返却することを含むことができる。
【0012】
本方法は、第1のルールセットの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第2のユーザ識別子が関連付けられたユーザが、第1のルールセットの特定のバージョンを使用してアプリケーションプログラムを実行して、出力を生成したことを指定する情報、(ii)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第2のユーザ識別子が関連付けられたユーザが、第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力を検索したことを指定する情報、(iii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに、第3のタイムスタンプが関連付けられ、第1のルールセットの特定のバージョンを使用して出力を生成するアプリケーションプログラムの実行に第4のタイムスタンプが関連付けられることを指定する情報、又は(iv)リポジトリからの第1のルールセットの特定のバージョンの借り出しに、第3のタイムスタンプが関連付けられ、第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力の検索に第4のタイムスタンプが関連付けられることを指定する情報の少なくとも1つを記憶することを含むことができる。
【0013】
統合アプリケーション開発システムは、ソースコード制御モジュール及びシミュレーションモジュールを含むことができる。ソースコード制御モジュールは、(i)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができる。シミュレーションモジュールは、(i)第2のユーザ識別子が関連付けられたユーザが、第1のルールセットの特定のバージョンを使用して出力を生成するアプリケーションプログラムを実行したことを指定する情報、(ii)第2のユーザ識別子が関連付けられたユーザが、第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力を検索することを指定する情報、(iii)第1のルールセットの特定のバージョンを使用して出力を生成するアプリケーションプログラムの実行に第2のタイムスタンプが関連付けられることを指定する情報、又は(iv)第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力の検索に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも1つのログデータオブジェクトへの記録を処理することができる。
【0014】
統合アプリケーション開発システムは、ソースコード制御モジュール及びシミュレーションモジュールを含むことができる。ソースコード制御モジュールは、第1のルールセットの特定のバージョンの返却及び借り出しを処理することができ、シミュレーションモジュールは、第1のルールセットの特定のバージョンのルールに従って入力記録を処理し、出力を生成するアプリケーションプログラムの実行を処理することができる。
【0015】
第1のユーザインターフェースは、第1のユーザのコンピュータ端末において提供することができ、第2のユーザインターフェースは、第2のユーザのコンピュータ端末において提供することができる。
【0016】
本方法は、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンを編集することと、第1のルールセットの編集された特定のバージョンをリポジトリに記憶することと、第1のルールセットの特定のバージョンに関連付けられたログデータオブジェクトに、(i)第1のユーザが第1のルールセットの特定のバージョンを編集したことを指定する情報、又は(ii)第1のルールセットの特定のバージョンの変更に第3のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することとを含むことができる。
【0017】
統合アプリケーション開発システムは、ソースコード制御モジュール、ビジネスプロセス管理モジュール、及びルールエディタを含むことができる。ソースコード制御モジュールは、第1のルールセットの特定のバージョンの返却及び借り出しを処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を処理することができ、ルールエディタは、第1のルールセットの特定のバージョンの編集を処理することができる。
【0018】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールセットの複数のバージョンをリポジトリに記憶することと、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出すことと、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールセットの特定のバージョンをリポジトリに返却することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のルールセットの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することとを行わせる命令を含む。
【0019】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する回路であって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する回路と、第1のルールセットの複数のバージョンをリポジトリに記憶する回路と、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する回路と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出す回路と、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる回路と、第1のルールセットの特定のバージョンをリポジトリに返却する回路とを含む。コンピュータシステムは、第1のルールセットの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶する回路を含む。
【0020】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する手段であって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する手段と、第1のルールセットの複数のバージョンをリポジトリに記憶する手段と、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する手段と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する手段と、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出す手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンをリポジトリに返却する手段と、第1のルールセットの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶する手段とを含む。
【0021】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルールセットの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールセットの複数のバージョンをリポジトリに記憶することと、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出すことと、第1のルールセットの特定のバージョンを編集することと、アプリケーションプログラムに第1のルールセットの特定のバージョンを関連付け、第1のルールセットの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールセットの特定のバージョンをリポジトリに返却することとを含む。
【0022】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、第1のルールセットの特定のバージョンに関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出し、第1のルールセットの特定のバージョンを編集し、第1のルールセットの特定のバージョンを使用してアプリケーションプログラムを実行して、出力を生成し、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールセットの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールセットの特定のバージョンの編集には第2のタイムスタンプが関連付けられ、第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの実行には第3のタイムスタンプが関連付けられ、第1の状態から第2の状態への特定のルールセットの遷移には第4のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0023】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ルールエディタは、第1のユーザ識別子が関連付けられたユーザが第1のルールセットの特定のバージョンを編集したことを指定する情報のログデータオブジェクトへの記憶を処理することができ、シミュレーションモジュールは、第1のユーザ識別子が関連付けられたユーザが、第1のルールセットの編集された特定のバージョンを使用したアプリケーションプログラムを実行したことを指定する情報のログデータオブジェクトへの記録を処理することができ、ビジネスプロセス管理モジュールは、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を承認したことを指定する情報のログデータオブジェクトへの記憶を処理することができ、ソースコード制御モジュールは、第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールセットの特定のバージョンを借り出したことを指定する情報のログデータオブジェクトへの記憶を処理することができる。
【0024】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ソースコード制御モジュールは、リポジトリからの第1のルールセットの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、ルールエディタは、第1のルールセットの特定のバージョンの編集に第2のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、シミュレーションモジュールは、第1のルールセットの特定のバージョンを使用したアプリケーションプログラムの実行には第3のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への特定のルールセットの遷移には第4のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができる。
【0025】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ルールエディタは、第1のルールセットの特定のバージョンの編集を処理することができ、シミュレーションモジュールは、第1のルールセットの特定のバージョンの1つ又は複数のルールに従って入力記録を処理し、出力を生成するアプリケーションプログラムの実行を処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールセットの特定のバージョンの遷移を処理することができ、ソースコード制御モジュールは、第1のルールセットの特定のバージョンの返却及び借り出しを処理することができる。
【0026】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールセットの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールセットの複数のバージョンをリポジトリに記憶することと、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを、行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出すことと、第1のルールセットの特定のバージョンを編集することと、アプリケーションプログラムに第1のルールセットの特定のバージョンを関連付け、第1のルールセットの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールセットの特定のバージョンをリポジトリに返却することとを行わせる命令を含む。
【0027】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、ルールセットの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する回路であって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する回路と、第1のルールセットの複数のバージョンをリポジトリに記憶する回路と、第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する回路と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出す回路と、第1のルールセットの特定のバージョンを編集する回路と、アプリケーションプログラムに第1のルールセットの特定のバージョンを関連付け、第1のルールセットの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する回路と、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる回路と、第1のルールセットの特定のバージョンをリポジトリに返却する回路とを含む。
【0028】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールセットの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する手段であって、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する手段と、第1のルールセットの複数のバージョン及び第1のルールセットの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトを記憶するリポジトリと、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する統合ユーザインターフェースの第1のユーザインターフェースと、第1のユーザからの命令に応答して、リポジトリから第1のルールセットの特定のバージョンを借り出す手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンを編集する手段と、第1のユーザからの命令に応答して、アプリケーションプログラムに第1のルールセットの特定のバージョンを関連付ける手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる手段と、第1のユーザからの命令に応答して、第1のルールセットの特定のバージョンをリポジトリに返却する手段とを含む。
【0029】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理する方法が提供される。本方法は、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールコンテナの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを含む。本方法は、第1のルールコンテナの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含む。
【0030】
態様は、以下の特徴の1つ又は複数を含むことができる。第1の状態は、第1のルールコンテナが、なお編集中のドラフトであることを示すことができ、第2の状態は、第1のルールコンテナがレビューアによるレビュー可能な状態であることを示すことができる。
【0031】
第1の状態は、第1のルールコンテナが、第1のルールコンテナのリリースを承認する権限を有するユーザによるレビューが可能な状態であることを示すことができ、第2の状態は、第1のルールコンテナが完成し、リリース可能な状態であることを示すことができる。
【0032】
各ルールセットは、入力データを出力データに変換するソフトウェアモジュール又はデータ処理エンティティの少なくとも一方に対応することができる。
【0033】
第1のルールコンテナの特定のバージョンは、第1のルールコンテナの特定のバージョンにおけるルールセットのそれぞれへのポインタを含むことができる。
【0034】
本方法は、第1のユーザからの命令に応答して、第2のルールコンテナの特定のバージョン内のルールセットを「オープン」状態から「提出済み」状態に遷移させることであって、「オープン」状態は、ルールセットがなお編集中であるドラフトであることを示し、「提出済み」状態は、ルールセットがレビュー可能な状態であることを示す、遷移させることを含むことができる。
【0035】
本方法は、第2のルールコンテナの特定のバージョン内のルールセットの状態の遷移から独立して、第2のルールコンテナの特定のバージョンの状態を遷移させることを含むことができる。
【0036】
本方法は、第2のルールコンテナの特定のバージョンが「オープン」状態であり、第2のルールコンテナの特定のバージョン内のルールセットの全てが「提出済み」状態であると判断することと、第2のルールコンテナの特定のバージョンが「オープン」状態であり、第2のルールコンテナの特定のバージョン内のルールセットの全てが「提出済み」状態であると判断することに応答して、第2のルールコンテナの特定のバージョンを「オープン」状態から「提出済み」状態に自動的に遷移させることとを含むことができる。
【0037】
本方法は、第2のユーザからの命令に応答して、第2のルールコンテナの特定のバージョン内のルールセットの1つを「承認済み」状態から「オープン」状態に遷移させることと、第2のルールコンテナの特定のバージョン内のルールセットの1つを「承認済み」状態から「オープン」状態に遷移することに応答して、第2のルールコンテナの特定のバージョンを「承認済み」状態から「オープン」状態に自動的に遷移させることとを含むことができる。
【0038】
統合アプリケーション開発システムは、ソースコード制御モジュール及びビジネスプロセス管理モジュールを含むことができ、ソースコード制御モジュールは、第1のルールコンテナの特定のバージョンの返却及び借り出しを処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を処理することができる。
【0039】
ソースコード制御モジュールは、(i)第1のユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができ、ビジネスプロセス管理モジュールは、(i)第1のユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移には第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができる。
【0040】
本方法は、統合ユーザインターフェースの第2のユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することを含むことができる。本方法は、第2のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、実行することであって、(i)アプリケーションプログラムに第1のルールコンテナの特定のバージョンを関連付け、第1のルールコンテナの特定のバージョンのルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成すること、又は(ii)第1のルールコンテナの特定のバージョンのルールセットのルールに従って入力記録を処理して、出力を生成するアプリケーションプログラムの前の実行から生成された、記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。本方法は、第1のルールコンテナの特定のバージョンをリポジトリに返却することを含むことができる。
【0041】
本方法は、第1のルールコンテナの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第2のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを使用してアプリケーションプログラムを実行して、出力を生成したことを指定する情報、(ii)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第2のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力を検索したことを指定する情報、(iii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに、第3のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョンを使用して出力を生成するアプリケーションプログラムの実行に第4のタイムスタンプが関連付けられることを指定する情報、又は(iv)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに、第3のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力の検索に第4のタイムスタンプが関連付けられることを指定する情報の少なくとも1つを記憶することを含むことができる。
【0042】
統合アプリケーション開発システムは、ソースコード制御モジュール及びシミュレーションモジュールを含むことができる。ソースコード制御モジュールは、(i)第2のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられることを指定する情報の少なくとも一方のログデータオブジェクトへの記憶を処理することができる。シミュレーションモジュールは、(i)第2のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを使用して出力を生成するアプリケーションプログラムを実行したことを指定する情報、(ii)第2のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力を検索することを指定する情報、(iii)第1のルールコンテナの特定のバージョンを使用して出力を生成するアプリケーションプログラムの実行に第2のタイムスタンプが関連付けられることを指定する情報、又は(iv)第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力の検索に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも1つのログデータオブジェクトへの記録を処理する。
【0043】
統合アプリケーション開発システムは、ソースコード制御モジュール及びシミュレーションモジュールを含むことができ、ソースコード制御モジュールは、第1のルールコンテナの特定のバージョンの返却及び借り出しを処理することができ、シミュレーションモジュールは、第1のルールコンテナの特定のバージョンのルールに従って入力記録を処理し、出力を生成するアプリケーションプログラムの実行を処理することができる。
【0044】
第1のユーザインターフェースは、第1のユーザのコンピュータ端末において提供することができ、第2のユーザインターフェースは、第2のユーザのコンピュータ端末において提供することができる。
【0045】
本方法は、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンを編集することと、第1のルールコンテナの編集された特定のバージョンをリポジトリに記憶することとを含むことができる。本方法は、第1のルールコンテナの特定のバージョンに関連付けられたログデータオブジェクトに、(i)第1のユーザが第1のルールコンテナの特定のバージョンを編集したことを指定する情報、又は(ii)第1のルールコンテナの特定のバージョンの変更に第3のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0046】
統合アプリケーション開発システムは、ソースコード制御モジュール、ビジネスプロセス管理モジュール、及びルールエディタを含むことができる。ソースコード制御モジュールは、第1のルールコンテナの特定のバージョンの借り出しを処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を処理することができ、ルールエディタは、第1のルールコンテナの特定のバージョンの編集を処理することができる。
【0047】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールコンテナの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のルールコンテナの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを行わせる命令を含む。
【0048】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されるコンピュータシステムとを含む。コンピュータシステムは、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する回路であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する回路と、第1のルールコンテナの複数のバージョンをリポジトリに記憶する回路と、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する回路と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出す回路と、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる回路と、第1のルールコンテナの特定のバージョンをリポジトリに返却する回路とを含む。コンピュータシステムは、第1のルールコンテナの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶する回路を含む。
【0049】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する手段であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する手段と、第1のルールコンテナの複数のバージョン及び第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトを記憶するリポジトリと、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する統合ユーザインターフェースの第1のユーザインターフェースと、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出す手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンをリポジトリに返却する手段とを含む。本システムは、第1のルールコンテナの特定のバージョンが関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶する手段を含む。
【0050】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルールコンテナの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールコンテナの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、第1のルールコンテナの特定のバージョンを編集することと、アプリケーションプログラムに第1のルールコンテナの特定のバージョンを関連付け、第1のルールコンテナの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを含む。
【0051】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、第1のルールコンテナの特定のバージョンに関連付けられたログデータオブジェクトに、(i)第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出し、第1のルールコンテナの特定のバージョンを編集し、第1のルールコンテナの特定のバージョンを使用してアプリケーションプログラムを実行して、出力を生成し、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報、又は(ii)リポジトリからの第1のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョンの編集には第2のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの実行には第3のタイムスタンプが関連付けられ、第1の状態から第2の状態への特定のルールコンテナの遷移には第4のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0052】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ルールエディタは、第1のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを編集したことを指定する情報のログデータオブジェクトへの記憶を処理することができ、シミュレーションモジュールは、第1のユーザ識別子が関連付けられたユーザが、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムを実行したことを指定する情報のログデータオブジェクトへの記録を処理することができ、ビジネスプロセス管理モジュールは、第1のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を承認したことを指定する情報のログデータオブジェクトへの記憶を処理することができ、ソースコード制御モジュールは、第1のユーザ識別子が関連付けられたユーザが、リポジトリから第1のルールコンテナの特定のバージョンを借り出したことを指定する情報のログデータオブジェクトへの記憶を処理することができる。
【0053】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ソースコード制御モジュールは、リポジトリからの第1のルールコンテナの特定のバージョンの借り出しに第1のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、ルールエディタは、第1のルールコンテナの特定のバージョンの編集に第2のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、シミュレーションモジュールは、第1のルールコンテナの特定のバージョンを使用したアプリケーションプログラムの実行には第3のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への特定のルールコンテナの遷移には第4のタイムスタンプが関連付けられることを指定する情報のログデータオブジェクトへの記憶を処理することができる。
【0054】
統合アプリケーション開発システムは、ルールエディタ、シミュレーションモジュール、ビジネスプロセス管理モジュール、及びソースコード制御モジュールを含むことができる。ルールエディタは、第1のルールコンテナの特定のバージョンの編集を処理することができ、シミュレーションモジュールは、第1のルールコンテナの特定のバージョンのルールに従って入力記録を処理し、出力を生成するアプリケーションプログラムの実行を処理することができ、ビジネスプロセス管理モジュールは、第1の状態から第2の状態への第1のルールコンテナの特定のバージョンの遷移を処理することができ、ソースコード制御モジュールは、第1のルールコンテナの特定のバージョンの返却及び借り出しを処理することができる。
【0055】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールコンテナの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールコンテナの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、第1のルールコンテナの特定のバージョンを編集することと、アプリケーションプログラムに第1のルールコンテナの特定のバージョンを関連付け、第1のルールコンテナの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させることと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを行わせる命令を含む。
【0056】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されるコンピュータシステムとを含む。コンピュータシステムは、ルールコンテナの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する回路であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する回路と、第1のルールコンテナの複数のバージョンをリポジトリに記憶する回路と、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する回路と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出す回路と、第1のルールコンテナの特定のバージョンを編集する回路と、アプリケーションプログラムに第1のルールコンテナの特定のバージョンを関連付け、第1のルールコンテナの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する回路と、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる回路と、第1のルールコンテナの特定のバージョンをリポジトリに返却する回路とを含む。
【0057】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールコンテナの編集、シミュレーション、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する手段であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する手段と、第1のルールコンテナの複数のバージョン及び第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトを記憶するリポジトリと、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する統合ユーザインターフェースの第1のユーザインターフェースと、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出す手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンを編集する手段と、第1のユーザからの命令に応答して、アプリケーションプログラムに第1のルールコンテナの特定のバージョンを関連付ける手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンを複数の状態の第1の状態から複数の状態の第2の状態に遷移させる手段と、第1のユーザからの命令に応答して、第1のルールコンテナの特定のバージョンをリポジトリに返却する手段とを含む。
【0058】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルールコンテナの編集、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールの特定のバージョンを借り出すことであって、第1のルールの特定のバージョンは、第1のルールコンテナに含まれる、借り出すことと、第1のルールの特定のバージョンを編集することと、第1のルールの特定のバージョンに「承認済み」状態を割り当てることとを含む。本方法は、第1のルールの特定のバージョンに「承認済み」状態が割り当てられた後、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在すると自動的に判断することであって、「オープン」状態は、第1のルールコンテナが、なお編集可能なドラフトモードであることを示す、自動的に判断することとを含む。本方法は、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンがあるとの判断に応答して、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンに第1のルールの特定のバージョンを追加することを含む。
【0059】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、第1のユーザからの命令に応答して、第1のルールの特定のバージョンに「承認済み」状態が割り当てられた後、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在しないと自動的に判断することを含むことができる。本方法は、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在しないとの判断に応答して、自動的に、第1のルールコンテナの新規バージョンを生成し、第1のルールコンテナの新規バージョンに「オープン」状態を割り当て、第1のルールの特定のバージョンを第1のルールコンテナの新規バージョンに追加することとを含むことができる。
【0060】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールコンテナの編集、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供することであって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供することと、第1のルールコンテナの複数のバージョンをリポジトリに記憶することと、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶することと、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することと、第1のユーザからの命令に応答して、リポジトリから第1のルールの特定のバージョンを借り出すことであって、第1のルールの特定のバージョンは、第1のルールコンテナに含まれる、借り出すことと、第1のルールの特定のバージョンを編集することと、第1のルールの特定のバージョンに「承認済み」状態を割り当てることとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のルールの特定のバージョンに「承認済み」状態が割り当てられた後、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在すると自動的に判断することであって、「オープン」状態は、第1のルールコンテナが、なお編集可能なドラフトモードであることを示す、自動的に判断することを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンがあるとの判断に応答して、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンに第1のルールの特定のバージョンを追加することを行わせる命令を含む。
【0061】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されるコンピュータシステムとを含む。コンピュータシステムは、ルールコンテナの編集、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する回路であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する回路と、第1のルールの複数のバージョンをリポジトリに記憶する回路と、第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトをリポジトリに記憶する回路と、統合ユーザインターフェースの第1のユーザインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールの特定のバージョンを借り出す回路であって、第1のルールの特定のバージョンは、第1のルールコンテナに含まれる、借り出す回路と、第1のルールの特定のバージョンを編集する回路と、第1のルールの特定のバージョンに「承認済み」状態を割り当てる回路とを含む。コンピュータシステムは、第1のルールの特定のバージョンに「承認済み」状態が割り当てられた後、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在すると自動的に判断する回路であって、「オープン」状態は、第1のルールコンテナが、なお編集可能なドラフトモードであることを示す、自動的に判断する回路を含む。コンピュータシステムは、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンがあるとの判断に応答して、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンに第1のルールの特定のバージョンを追加する回路を含む。
【0062】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールコンテナの編集、ビジネスプロセス管理、及びバージョン制御を可能にする統合アプリケーション開発システムにユーザがアクセスできるようにする統合ユーザインターフェースを提供する手段であって、各ルールコンテナは2つ以上のルールセットを含み、各ルールセットは1つ又は複数のルールを含み、各ルールは、ルールの入力に応じてルールの出力の値を計算する1つ又は複数のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースが所与の入力記録によりトリガーされる、提供する手段と、第1のルールの複数のバージョン及び第1のルールコンテナの複数のバージョンについての情報を有する少なくとも1つのログデータオブジェクトを記憶するリポジトリと、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する統合ユーザインターフェースの第1のユーザインターフェースと、第1のユーザからの命令に応答して、リポジトリから第1のルールの特定のバージョンを借り出す手段であって、第1のルールの特定のバージョンは、第1のルールコンテナに含まれる、借り出す手段と、第1のユーザからの命令に応答して、第1のルールの特定のバージョンを編集する手段と、第1のユーザからの命令に応答して、第1のルールの特定のバージョンに「承認済み」状態を割り当てる手段と、第1のルールの特定のバージョンに「承認済み」状態が割り当てられた後、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンが存在すると自動的に判断する手段であって、「オープン」状態は、第1のルールコンテナが、なお編集可能なドラフトモードであることを示す、自動的に判断する手段と、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンがあるとの判断に応答して、「オープン」状態又は「オープン」状態と同等の状態である第1のルールコンテナのバージョンに第1のルールの特定のバージョンを追加する手段とを含む。
【0063】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルール仕様の返却及び借り出し、ルールセットの編集、及び状態遷移情報の受信を可能にする、第1の統合ユーザインターフェースを提供することと、第1のユーザインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから第1の命令を受信することと、第1のユーザからの第1の命令に応答して、リポジトリからルール仕様を借り出すことであって、ルール仕様は第1のバージョン番号を有し、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出すことと、第1の統合ユーザインターフェースを通して第1のユーザから編集命令を受信することと、第1のユーザからの編集命令に基づいてルール仕様を改訂することと、ルールセットに複数の状態の第1の状態を関連付けることと、第1の統合ユーザインターフェースを通して第1のユーザから第2の命令を受信することと、第1のユーザからの第2の命令に応答して、第2のバージョン番号をルール仕様に割り当てることと、第2の統合ユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから、ルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の状態に関連付けられた許可された遷移に基づいて、ルールセットに複数の状態の第2の状態を関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、リポジトリに、ルール仕様の第2のバージョンの変更を第1のユーザ識別子に関連付ける第1のデータ及び第1の状態から第2の状態への遷移を第2のユーザ識別子に関連付ける第2のデータを記憶することとを含む。
【0064】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、ログデータオブジェクトに、ルール仕様の第2のバージョンがレポジトリに返却されたときを示す第1のタイムスタンプ及び現在状態がルール仕様に関連付けられたときを示す第2のタイムスタンプを記憶することを含むことができる。
【0065】
本方法は、アプリケーションプログラムにルールセットを関連付けることと、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することとを含むことができる。第1の統合ユーザインターフェース又は第2の統合ユーザインターフェースの少なくとも一方はまた、ルールセットのルールに従ってアプリケーションプログラムを実行して、記録を処理できるようにもする。
【0066】
本方法は、ルール仕様の複数のバージョンをリポジトリに記憶することと、ルール仕様の各バージョンで、ルール仕様の最新の変更に関連付けられたユーザ識別子についての情報を有する第1のデータを記憶し、ルール仕様により指定されたルールセットに関連付けられた現在状態の割り当て又は前の状態から現在状態への遷移に関連付けられたユーザ識別子についての情報を有する第2のデータを記憶することとを含むことができる。
【0067】
本方法は、ルール仕様の各バージョンで、ルール仕様がリポジトリに返却されたときを示す第1のタイムスタンプ及び現在状態がルール仕様に関連付けられたときを示す第2のタイムスタンプを記憶することを含むことができる。
【0068】
本方法は、リポジトリからルール仕様の特定のバージョンを検索することと、ルール仕様の最新の変更に関連付けられたユーザ識別子と、ルール仕様により指定されたルールセットに関連付けられた現在状態の割り当て及び前の状態から現在状態への遷移に関連付けられたユーザ識別子とを表示することとを含むことができる。
【0069】
本方法は、統合ユーザインターフェースに、ユーザがルール仕様の特定のバージョンを選択できるようにする第1の表示入力要素を提供することと、統合ユーザインターフェースに、ユーザが、ルール仕様の選択されたバージョンにより指定されたルールセットをアプリケーションプログラムに関連付け、ルール仕様の選択されたバージョンにより指定されたルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成できるようにする第2の表示入力要素を提供することとを含むことができる。
【0070】
本方法は、リポジトリにルール仕様の複数のバージョンを記憶することと、ルール仕様の各バージョンで、ルール仕様の最新の変更に関連付けられたユーザ識別子についての情報を有する第1のデータを記憶し、ルール仕様により指定されたルールセットに関連付けられた現在状態の割り当て又は前の状態から現在状態への遷移に関連付けられたユーザ識別子についての情報を有する第2のデータを記憶することとを含むことができる。
【0071】
本方法は、ルール仕様の各バージョンで、ルール仕様がリポジトリに返却されたときを示す第1のタイムスタンプ及び現在状態がルール仕様に関連付けられたときを示す第2のタイムスタンプを記憶することを含むことができる。
【0072】
本方法は、ルール仕様の複数のバージョンをリポジトリに記憶することと、ルール仕様の各バージョンで、1人又は複数のユーザが初期状態をルールセットに割り当てるか、又はある状態から別の状態にルールセットを遷移させることを可能にすることと、ルール仕様が借り出されたときと比較して変更された状態でルール仕様がリポジトリに返却される都度、ルールセットへの初期状態の割り当て又はある状態から別の状態へのルールセットの遷移に、ルールセットに関連付けられた状態を変更したユーザのユーザ識別子を関連付けるデータを記憶することと、状態が変更されたときを示すタイムスタンプを記憶することとを含むことができる。
【0073】
本方法は、統合ユーザインターフェースにおいて、ユーザがルール仕様の特定のバージョンを選択できるようにする第1の表示入力要素を提供することと、統合ユーザインターフェースにおいて、ユーザが特定の時間を選択できるようにする第2の表示入力要素を提供することと、統合ユーザインターフェースにおいて、ユーザが、ルール仕様の選択されたバージョンにより指定されたルールセットをアプリケーションプログラムに関連付けられるようにする第3の表示入力要素を提供することと、ルール仕様の選択されたバージョンにより指定されたルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、選択された時間にルールセットの状態を表示することと、選択された時間においてルールセットに状態を関連付けたユーザに関連付けられたユーザ識別子を表示することとを含むことができる。
【0074】
第1のデータ及び第2のデータをリポジトリに記憶することは、ルールセットに関連付けられた1つ又は複数のタグを記憶又は変更することを含むことができ、1つ又は複数のタグは、対応するバージョンのルールセットへのポインタ及びルールセットの状態の情報を含むことができる。
【0075】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルール仕様の返却及び借り出し、ルールセットの編集、及び状態遷移情報の受信を可能にする、第1の統合ユーザインターフェースを提供することと、第1の統合ユーザインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから第1の命令を受信することと、第1のユーザからの第1の命令に応答して、リポジトリからルール仕様を借り出すことであって、ルール仕様は第1のバージョン番号を有し、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出すことと、第1の統合ユーザインターフェースを通して第1のユーザから編集命令を受信することと、第1のユーザからの編集命令に基づいてルール仕様を改訂することと、ルールセットに複数の状態の第1の状態を関連付けることと、第1の統合ユーザインターフェースを通して第1のユーザから第2の命令を受信することと、第1のユーザからの第2の命令に応答して、ルール仕様をリポジトリに返却し、第2のバージョン番号をルール仕様に割り当てることと、第2の統合ユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから、ルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の状態に関連付けられた許可された遷移に基づいて、ルールセットに複数の状態の第2の状態を関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、リポジトリに、ルール仕様の第2のバージョンの変更を第1のユーザ識別子に関連付ける第1のデータ及び第1の状態から第2の状態への遷移を第2のユーザ識別子に関連付ける第2のデータを記憶することとを行わせる命令を含む。
【0076】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、ルール仕様の返却及び借り出し、ルールセットの編集、及び状態遷移情報の受信を可能にする、第1の統合ユーザインターフェースを提供する回路と、第1の統合ユーザインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから第1の命令を受信する回路と、第1のユーザからの第1の命令に応答して、リポジトリからルール仕様を借り出す回路であって、ルール仕様は第1のバージョン番号を有し、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出す回路と、第1の統合ユーザインターフェースを通して第1のユーザから編集命令を受信する回路と、第1のユーザからの編集命令に基づいてルール仕様を改訂する回路と、ルールセットに複数の状態の第1の状態を関連付ける回路と、第1の統合ユーザインターフェースを通して第1のユーザから第2の命令を受信する回路と、第1のユーザからの第2の命令に応答して、ルール仕様をリポジトリに返却し、第2のバージョン番号をルール仕様に割り当てる回路と、第2の統合ユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから、ルールセットに関連付けられた遷移情報を受信する回路と、遷移情報及びルールセット及び第1の状態に関連付けられた許可された遷移に基づいて、ルールセットに複数の状態の第2の状態を関連付ける回路であって、第2の状態は第1の状態と異なる、関連付ける回路と、リポジトリに、ルール仕様の第2のバージョンの変更を第1のユーザ識別子に関連付ける第1のデータ及び第1の状態から第2の状態への遷移を第2のユーザ識別子に関連付ける第2のデータを記憶する回路とを含む。
【0077】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルール仕様の返却及び借り出し、ルールセットの編集、及び状態遷移情報の受信を可能にする、第1の統合ユーザインターフェースを提供する手段と、第1の統合ユーザインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから第1の命令を受信する手段と、第1のユーザからの第1の命令に応答して、リポジトリからルール仕様を借り出す手段であって、ルール仕様は第1のバージョン番号を有し、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出す手段と、第1の統合ユーザインターフェースを通して第1のユーザから編集命令を受信する手段と、第1のユーザからの編集命令に基づいてルール仕様を改訂する手段と、ルールセットに複数の状態の第1の状態を関連付ける手段と、第1の統合ユーザインターフェースを通して第1のユーザから第2の命令を受信する手段と、第1のユーザからの第2の命令に応答して、ルール仕様をリポジトリに返却し、第2のバージョン番号をルール仕様に割り当てる手段と、第2の統合ユーザインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから、ルールセットに関連付けられた遷移情報を受信する手段と、遷移情報及びルールセット及び第1の状態に関連付けられた許可された遷移に基づいて、ルールセットに複数の状態の第2の状態を関連付ける手段であって、第2の状態は第1の状態と異なる、関連付ける手段と、リポジトリに、ルール仕様の第2のバージョンの変更を第1のユーザ識別子に関連付ける第1のデータ及び第1の状態から第2の状態への遷移を第2のユーザ識別子に関連付ける第2のデータを記憶する手段とを含む。
【0078】
別の態様では、一般に、各ルールコンテナは2つ以上のルールセットを含み、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理する方法が提供される。ルールコンテナ及びルールコンテナに含まれるルール仕様の返却及び借り出し、ある状態から別の状態へのルールコンテナの遷移を可能にする統合アプリケーション開発システムを提供することであって、統合アプリケーション開発システムは、ユーザから命令を受信し、情報をユーザに提供するユーザインターフェースを含む統合ユーザインターフェースを含む、提供することと、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの第1の命令に応答して、リポジトリからルールコンテナを借り出すことであって、ルールコンテナは、少なくとも第1のルール仕様及び第2のルール仕様を含み、ルールコンテナは第1のバージョン番号を有し、第1のルール仕様は第2のバージョン番号を有し、第2のルール仕様は第3のバージョン番号を有し、第1のルール仕様及び第2のルール仕様はそれぞれ、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出すことと、第1のルール仕様により指定された第1のルールセットにルールセットの複数の状態の第1の状態を関連付けることと、ルールコンテナにルールコンテナの複数の状態の第1の状態を関連付けることと、ルールコンテナをリポジトリに返却し、第4のバージョン番号をルールコンテナに割り当て、第5のバージョン番号を第1のルール仕様に割り当てることとを含む。
【0079】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、統合ユーザインターフェースの第1のインターフェースを通して、ルールコンテナに関連付けられた第1の遷移情報及び第1のルールセットに関連付けられた第2の遷移情報を受信することであって、第1の遷移情報及び第2の遷移情報は第1のユーザにより提供される、受信することと、第1の遷移情報及びルールコンテナに関連付けられた許可された遷移に基づいて、ルールコンテナにルールコンテナの複数の状態の第2の状態を関連付けることであって、ルールコンテナの第2の状態は、ルールコンテナの第1の状態と異なる、関連付けることと、第2の遷移情報及び第1のルールセットに関連付けられた許可された遷移に基づいて、第1のルールセットにルールセットの複数の状態の第2の状態を関連付けることであって、ルールセットの第2の状態は、ルールセットの第1の状態と異なる、関連付けることと、ログデータオブジェクトに、第1のユーザがルールコンテナを借り出したことを指定する第1のログデータ、第1のユーザが、ルールコンテナの第1の状態から第2の状態に遷移することについてルールコンテナを承認したことを指定する第2のログデータ、及び第1のユーザが、ルールセットの第1の状態から第2の状態に遷移することについて第1のルールセットを承認したことを指定する第3のログデータを記憶することとを含む。
【0080】
ログデータオブジェクトにおける第1のログデータは、第1のユーザが、第1のバージョン番号を有するルールコンテナを借り出したことを指定することができ、第2のログデータは、第1のユーザが、ルールコンテナの第1の状態から第2の状態に遷移することについて、第1のバージョン番号を有するルールコンテナを承認したことを指定することができ、第3のログデータは、第1のユーザが、ルールセットの第1の状態から第2の状態に遷移することについて、第2のバージョン番号を有する第1のルールセットを承認したことを指定することができる。
【0081】
本方法は、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから第2の命令を受信することと、第2のユーザからの第2の命令に応答して、リポジトリからルールコンテナを借り出すことと、統合ユーザインターフェースの第2のインターフェースを通して、ルールコンテナに関連付けられた第3の遷移情報及び第1のルールセットに関連付けられた第4の遷移情報を受信することであって、第3の遷移情報及び第4の遷移情報は第2のユーザにより提供される、受信することと、第3の遷移情報及びルールコンテナに関連付けられた許可された遷移に基づいて、ルールコンテナにルールコンテナの複数の状態の第3の状態を関連付けることであって、ルールコンテナの第3の状態は、ルールコンテナの第2の状態と異なる、関連付けることと、第4の遷移情報及び第1のルールセットに関連付けられた許可された遷移に基づいて、第1のルールセットにルールセットの複数の状態の第3の状態を関連付けることであって、ルールセットの第3の状態は、ルールセットの第2の状態と異なる、関連付けることと、ログデータオブジェクトに、第2のユーザがルールコンテナを借り出したことを指定する第4のログデータ、第2のユーザが、ルールコンテナの第2の状態から第3の状態に遷移することについてルールコンテナを承認したことを指定する第5のログデータ、及び第2のユーザが、ルールセットの第2の状態から第3の状態に遷移することについて第1のルールセットを承認したことを指定する第6のログデータを記憶することとを含むことができる。
【0082】
ログデータオブジェクトにおける第4のログデータは、第2のユーザが、第4のバージョン番号を有するルールコンテナを借り出したことを指定することができ、第5のログデータは、第2のユーザが、ルールコンテナの第2の状態から第3の状態に遷移することについて第4のバージョン番号を有するルールコンテナを承認したことを指定することができ、第6のログデータは、第2のユーザが、ルールセットの第1の状態から第2の状態に遷移することについて第5のバージョン番号を有する第1のルールセットを承認したことを指定することができる。
【0083】
本方法は、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから第2の命令を受信することと、第2のユーザからの第2の命令に応答して、リポジトリからルールコンテナを借り出すことと、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザから第3の命令を受信することと、第2のユーザからの第3の命令に応答して、(i)ルールコンテナをアプリケーションプログラムに関連付け、ルールコンテナ内のルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成すること、又は(ii)ルールコンテナ内のルールセットのルールを使用して入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。
【0084】
本方法は、ログデータオブジェクトに、第1のユーザが第1の時点においてルールコンテナを借り出したことを指定する第1のログデータ、第2のユーザが第2の時点においてルールコンテナを借り出したことを指定する第2のログデータ、及び第2のユーザが、(i)ルールコンテナ内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)ルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行したことを指定する第3のログデータを記憶することを含むことができる。
【0085】
本方法は、統合ユーザインターフェースの第3のインターフェースを通して、第3のユーザ識別子が関連付けられた第3のユーザから第4の命令を受信することと、第3のユーザからの第4の命令に応答して、リポジトリからルールコンテナを借り出すことと、統合ユーザインターフェースの第3のインターフェースを通して、第3のユーザから遷移情報を受信することと、第3のユーザからの遷移情報に応答して、ルールコンテナがリリース可能な状態であることを示すリリース状態にルールコンテナを遷移させることとを含むことができる。
【0086】
本方法は、ログデータオブジェクトに、第1のユーザが第1の時点においてルールコンテナを借り出したことを指定する第1のログデータ、第2のユーザが第2の時点においてルールコンテナを借り出したことを指定する第2のログデータ、第2のユーザが、(i)ルールコンテナ内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)ルールコンテナ内のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの実行の前の結果である、前に記憶された出力を検索することの少なくとも一方を実行したことを指定する第3のログデータ、第3のユーザが第3の時点においてルールコンテナを借り出したことを指定する第4のログデータ、及び第3のユーザがルールコンテナのリリース状態への遷移を承認したことを指定する第5のログデータを記憶することを含むことができる。
【0087】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールコンテナ及びルールコンテナに含まれるルール仕様の返却及び借り出し、及びある状態から別の状態へのルールコンテナの遷移を可能にする統合アプリケーション開発システムを提供することであって、統合アプリケーション開発システムは、ユーザから命令を受信し、情報をユーザに提供するユーザインターフェースを含む統合ユーザインターフェースを含む、提供することと、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの第1の命令に応答して、リポジトリからルールコンテナを借り出すことであって、ルールコンテナは、少なくとも第1のルール仕様及び第2のルール仕様を含み、ルールコンテナは第1のバージョン番号を有し、第1のルール仕様は第2のバージョン番号を有し、第2のルール仕様は第3のバージョン番号を有し、第1のルール仕様及び第2のルール仕様はそれぞれ、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出すことと、第1のルール仕様により指定された第1のルールセットにルールセットの複数の状態の第1の状態を関連付けることと、ルールコンテナにルールコンテナの複数の状態の第1の状態を関連付けることと、ルールコンテナをリポジトリに返却し、第4のバージョン番号をルールコンテナに割り当て、第5のバージョン番号を第1のルール仕様に割り当てることとを行わせる命令を含む。
【0088】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されるコンピュータシステムとを含む。コンピュータシステムは、ルールコンテナ及びルールコンテナに含まれるルール仕様の返却及び借り出し、及びある状態から別の状態へのルールコンテナの遷移を可能にする統合アプリケーション開発システムを提供する回路であって、統合アプリケーション開発システムは、ユーザから命令を受信し、情報をユーザに提供するユーザインターフェースを含む統合ユーザインターフェースを含む、提供する回路と、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの第1の命令に応答して、リポジトリからルールコンテナを借り出す回路であって、ルールコンテナは、少なくとも第1のルール仕様及び第2のルール仕様を含み、ルールコンテナは第1のバージョン番号を有し、第1のルール仕様は第2のバージョン番号を有し、第2のルール仕様は第3のバージョン番号を有し、第1のルール仕様及び第2のルール仕様はそれぞれ、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出す回路と、第1のルール仕様により指定された第1のルールセットにルールセットの複数の状態の第1の状態を関連付ける回路と、ルールコンテナにルールコンテナの複数の状態の第1の状態を関連付ける回路と、ルールコンテナをリポジトリに返却し、第4のバージョン番号をルールコンテナに割り当て、第5のバージョン番号を第1のルール仕様に割り当てる回路とを含む。
【0089】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、ルールコンテナ及びルールコンテナに含まれるルール仕様の返却及び借り出し、及びある状態から別の状態へのルールコンテナの遷移を可能にする統合アプリケーション開発システムを提供する手段であって、統合アプリケーション開発システムは、ユーザから命令を受信し、情報をユーザに提供するユーザインターフェースを含む統合ユーザインターフェースを含む、提供する手段と、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する手段と、第1のユーザからの第1の命令に応答して、リポジトリからルールコンテナを借り出す手段であって、ルールコンテナは、少なくとも第1のルール仕様及び第2のルール仕様を含み、ルールコンテナは第1のバージョン番号を有し、第1のルール仕様は第2のバージョン番号を有し、第2のルール仕様は第3のバージョン番号を有し、第1のルール仕様及び第2のルール仕様はそれぞれ、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、借り出す手段と、第1のユーザからの第1の命令に応答して、第1のルール仕様により指定された第1のルールセットにルールセットの複数の状態の第1の状態を関連付ける手段と、第1のユーザからの第1の命令に応答して、ルールコンテナにルールコンテナの複数の状態の第1の状態を関連付ける手段と、第1のユーザからの第1の命令に応答して、ルールコンテナをリポジトリに返却し、第4のバージョン番号をルールコンテナに割り当て、第5のバージョン番号を第1のルール仕様に割り当てる手段とを含む。
【0090】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供することであって、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することと、第1のユーザからの命令に応答して、リポジトリから第1のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第1の状態から第2の状態に遷移させ、第1のルールセットをリポジトリに返却し、第2のバージョン番号を第1のルールセットに割り当てることと、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することとを含む。本方法は、第2のユーザからの命令に応答して、リポジトリから第2のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第2の状態から第3の状態に遷移させ、第1のルールセットをリポジトリに返却することを含む。本方法は、共通ログに、第1のユーザが第1のバージョン番号を有する第1のルールセットを借り出し、第1のユーザが第1の状態から第2の状態への遷移について第1のルールセットを承認し、第2のユーザが第2のバージョン番号を有する第1のルールセットを借り出し、第2のユーザが、第2の状態から第3の状態への遷移について第1のルールセットを承認したことを指定する情報を記憶することを含む。
【0091】
態様は、以下の特徴の1つ又は複数を含むことができる。統合ユーザインターフェースはまた、ルールセットのシミュレーションを可能にするようにも構成され、本方法は、統合ユーザインターフェースの第3のインターフェースを通して、第3のユーザ識別子が関連付けられた第3のユーザから命令を受信することを含むことができる。本方法は、第3のユーザからの命令に応答して、リポジトリから第2のバージョン番号を有する第1のルールセットを借り出し、(i)第1のルールセットをアプリケーションプログラムに関連付け、第1のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)第1のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することを含むことができる。本方法は、共通ログに、第3のユーザが第2のバージョン番号を有する第1のルールセットを借り出し、第3のユーザが、(i)第1のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)第1のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行したことを指定する情報を記憶することを含むことができる。
【0092】
統合ユーザインターフェースはまた、ルールセットの編集を可能にするようにも構成することができ、本方法は、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザから編集命令を受信することを含むことができる。本方法は、第1のユーザからの編集命令に応答して、第1のルールセットを編集することを含むことができる。本方法は、共通ログに、第1のユーザが第1のルールセットを編集したことを指定する情報を記憶することを含むことができる。
【0093】
第1のインターフェースは第1のユーザのディスプレイに示すことができ、第2のインターフェースは第2のユーザのディスプレイに示すことができる。
【0094】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供することであって、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することと、第1のユーザからの命令に応答して、リポジトリから第1のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第1の状態から第2の状態に遷移させ、第1のルールセットをリポジトリに返却し、第2のバージョン番号を第1のルールセットに割り当てることと、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することと、第2のユーザからの命令に応答して、リポジトリから第2のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第2の状態から第3の状態に遷移させ、第1のルールセットをリポジトリに返却することと、共通ログに、第1のユーザが第1のバージョン番号を有する第1のルールセットを借り出し、第1のユーザが第1の状態から第2の状態への遷移について第1のルールセットを承認し、第2のユーザが第2のバージョン番号を有する第1のルールセットを借り出し、第2のユーザが、第2の状態から第3の状態への遷移について第1のルールセットを承認したことを指定する情報を記憶することとを行わせる命令を含む。
【0095】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する回路であって、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する回路と、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路と、第1のユーザからの命令に応答して、リポジトリから第1のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第1の状態から第2の状態に遷移させ、第1のルールセットをリポジトリに返却し、第2のバージョン番号を第1のルールセットに割り当てる回路と、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信する回路と、第2のユーザからの命令に応答して、リポジトリから第2のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第2の状態から第3の状態に遷移させ、第1のルールセットをリポジトリに返却する回路と、共通ログに、第1のユーザが第1のバージョン番号を有する第1のルールセットを借り出し、第1のユーザが第1の状態から第2の状態への遷移について第1のルールセットを承認し、第2のユーザが第2のバージョン番号を有する第1のルールセットを借り出し、第2のユーザが、第2の状態から第3の状態への遷移について第1のルールセットを承認したことを指定する情報を記憶する回路とを含む。
【0096】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルールセットのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する手段であって、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する手段と、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する手段と、第1のユーザからの命令に応答して、リポジトリから第1のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第1の状態から第2の状態に遷移させ、第1のルールセットをリポジトリに返却し、第2のバージョン番号を第1のルールセットに割り当てる手段と、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信する手段と、第2のユーザからの命令に応答して、リポジトリから第2のバージョン番号を有する第1のルールセットを借り出し、第1のルールセットを第2の状態から第3の状態に遷移させ、第1のルールセットをリポジトリに返却する手段と、共通ログに、第1のユーザが第1のバージョン番号を有する第1のルールセットを借り出し、第1のユーザが第1の状態から第2の状態への遷移について第1のルールセットを承認し、第2のユーザが第2のバージョン番号を有する第1のルールセットを借り出し、第2のユーザが、第2の状態から第3の状態への遷移について第1のルールセットを承認したことを指定する情報を記憶する手段とを含む。
【0097】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供することであって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出すことであって、第1のルールコンテナの第1のバージョンには、第1のルールセットの第1のバージョン及び第2のルールセットの第1のバージョンが関連付けられ、第1のルールコンテナの第1のバージョンは、第1のルールセットの第1のバージョンへのポインタ及び関第2のルールセットの第1のバージョンへのポインタを含み、第2のルールセットの第1のバージョンにはルールセットの第1の状態が関連付けられる、借り出すことと、第1のルールコンテナの第2のバージョンを生成することと、第2のルールセットの第1のバージョンのコピーである第2のルールセットの第2のバージョンを生成することであって、第2のルールセットの第2のバージョンにはルールセットの第1の状態が関連付けられる、生成することと、第2のルールセットの第1のバージョンをルールセットの第1の状態からルールセットの第2の状態に遷移させることと、第1のルールコンテナの第2のバージョンに、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第2のバージョンへのポインタを追加することと、第1のルールコンテナの第1及び第2のバージョンをリポジトリに返却することとを含む。
【0098】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、ログデータオブジェクトに、(i)第1のユーザが第1のルールコンテナの第1のバージョンを借り出し、第1のルールコンテナの第2のバージョンを生成し、第1の状態から第2の状態への第2のルールセットの第1のバージョンの遷移を承認したことを指定する情報、又は(ii)第1のルールコンテナの第1のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1のルールコンテナの第2のバージョンの生成に第2のタイムスタンプが関連付けられ、第1の状態から第2の状態への第2のルールセットの第1のバージョンの遷移に第3のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0099】
第1のルールコンテナの第1のバージョンにはまず、ルールコンテナの第1の状態を関連付けることができ、本方法は、第1のユーザからの命令に応答して、第1のルールコンテナの第1のバージョンをルールコンテナの第1の状態からルールコンテナの第2の状態に遷移させることを含むことができる。
【0100】
本方法は、ログデータオブジェクトに、(i)第1のユーザが第1のルールコンテナの第1のバージョンの第1の状態から第2の状態への遷移を承認したことを指定する情報、又は(ii)第1の状態から第2の状態への第1のルールコンテナの第1のバージョンの遷移に第1のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0101】
本方法は、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することと、第2のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出すことと、(i)第1のルールコンテナの第1のバージョンをアプリケーションプログラムに関連付け、第1のルールコンテナの第1のバージョン内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)第1のルールコンテナの第1のバージョン内のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。
【0102】
本方法は、ログデータオブジェクトに、(i)第2のユーザが第1のルールコンテナの第1のバージョンを借り出し、第1のルールコンテナの第1のバージョンと併せてアプリケーションプログラムを実行したことを指定する情報、(ii)第2のユーザが第1のルールコンテナの第1のバージョンを借り出し、第1のルールコンテナの第1のバージョン内のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することを指定する情報、(iii)第1のルールコンテナの第1のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールコンテナの第1のバージョンと併せたアプリケーションプログラムの実行には第2のタイムスタンプが関連付けられることを指定する情報、又は(iv)第1のルールコンテナの第1のバージョンの借り出しに第1のタイムスタンプが関連付けられ、第1のルールコンテナの第1のバージョン内のルールセットのルールを使用して、入力記録を処理するアプリケーションプログラムの前の実行から生成された、前に記憶された出力の検索に第2のタイムスタンプが関連付けられることを指定する情報の少なくとも1つを記憶することを含むことができる。
【0103】
第1のインターフェースは第1のユーザのディスプレイに提供することができ、第2のインターフェースは第2のユーザのディスプレイに提供することができる。
【0104】
本方法は、統合ユーザインターフェースの第2のインターフェースを通して、第2のユーザ識別子が関連付けられた第2のユーザから命令を受信することを含むことができる。本方法は、第2のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出すことと、第1のルールコンテナ内の第1のルールセットの第1のバージョンを編集することと、第1のルールセットの第1のバージョンをルールセットの第1の状態からルールセットの第2の状態に遷移させることと、第1のルールコンテナの第1のバージョンをリポジトリに返却することとを含むことができる。
【0105】
本方法は、ログデータオブジェクトに、(i)第2のユーザが第1のルールコンテナの第1のバージョンを借り出し、第1のルールセットの第1のバージョンを編集し、第1のルールセットの第1のバージョンの第1の状態から第2の状態への遷移を承認したことを指定する情報、又は(ii)第1のルールコンテナの第1のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールセットの第1のバージョンの編集には第2のタイムスタンプが関連付けられ、第1のルールセットの第1のバージョンの第1の状態から第2の状態への遷移には第3のタイムスタンプが関連付けられることを指定する情報の少なくとも一方を記憶することを含むことができる。
【0106】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供することであって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出すことであって、第1のルールコンテナの第1のバージョンには、第1のルールセットの第1のバージョン及び第2のルールセットの第1のバージョンが関連付けられ、第1のルールコンテナの第1のバージョンは、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第1のバージョンへのポインタを含み、第2のルールセットの第1のバージョンにはルールセットの第1の状態が関連付けられる、借り出すことと、第1のルールコンテナの第2のバージョンを生成することと、第2のルールセットの第1のバージョンのコピーである第2のルールセットの第2のバージョンを生成することであって、第2のルールセットの第2のバージョンにはルールセットの第1の状態が関連付けられる、生成することと、第2のルールセットの第1のバージョンをルールセットの第1の状態からルールセットの第2の状態に遷移させることと、第1のルールコンテナの第2のバージョンに、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第2のバージョンへのポインタを追加することと、第1のルールコンテナの第1及び第2のバージョンをリポジトリに返却することとを行わせる命令を含む。
【0107】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されるコンピュータシステムとを含む。コンピュータシステムは、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する回路であって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する回路と、統合ユーザインターフェースの第1のインターフェースを通して、第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路とを含む。コンピュータシステムは、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出す回路であって、第1のルールコンテナの第1のバージョンには、第1のルールセットの第1のバージョン及び第2のルールセットの第1のバージョンが関連付けられ、第1のルールコンテナの第1のバージョンは、第1のルールセットの第1のバージョンへのポインタ及び関第2のルールセットの第1のバージョンへのポインタを含み、第2のルールセットの第1のバージョンにはルールセットの第1の状態が関連付けられる、借り出す回路と、第1のルールコンテナの第2のバージョンを生成する回路と、第2のルールセットの第1のバージョンのコピーである第2のルールセットの第2のバージョンを生成する回路であって、第2のルールセットの第2のバージョンにはルールセットの第1の状態が関連付けられる、生成する回路と、第2のルールセットの第1のバージョンをルールセットの第1の状態からルールセットの第2の状態に遷移させる回路と、第1のルールコンテナの第2のバージョンに、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第2のバージョンへのポインタを追加する回路と、第1のルールコンテナの第1及び第2のバージョンをリポジトリに返却する回路とを含む。
【0108】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理するシステムが提供される。本システムは、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する手段であって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する手段と、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する手段と、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの第1のバージョンを借り出す手段であって、第1のルールコンテナの第1のバージョンには、第1のルールセットの第1のバージョン及び第2のルールセットの第1のバージョンが関連付けられ、第1のルールコンテナの第1のバージョンは、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第1のバージョンへのポインタを含み、第2のルールセットの第1のバージョンにはルールセットの第1の状態が関連付けられる、借り出す手段と、第1のユーザからの命令に応答して、第1のルールコンテナの第2のバージョンを生成する手段と、第1のユーザからの命令に応答して、第2のルールセットの第1のバージョンのコピーである第2のルールセットの第2のバージョンを生成する手段であって、第2のルールセットの第2のバージョンにはルールセットの第1の状態が関連付けられる、生成する手段と、第1のユーザからの命令に応答して、第2のルールセットの第1のバージョンをルールセットの第1の状態からルールセットの第2の状態に遷移させる手段と、第1のユーザからの命令に応答して、第1のルールコンテナの第2のバージョンに、第1のルールセットの第1のバージョンへのポインタ及び第2のルールセットの第2のバージョンへのポインタを追加する手段と、第1のルールコンテナの第1及び第2のバージョンをリポジトリに返却する手段とを含む。
【0109】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、ユーザが統合アプリケーション開発システムと対話して、ルールコンテナのバージョン制御及びビジネスプロセス管理の実行を可能にする統合ユーザインターフェースを提供することであって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、リポジトリに第1のルールコンテナの複数のバージョンを記憶することであって、第1のルールコンテナの各バージョンは複数のルールセットを含む、記憶することと、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを含む。本方法は、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、(i)第1のルールコンテナの特定のバージョンを第1の状態から第2の状態に遷移させること、又は(ii)第1のルールコンテナの特定のバージョンの特定のルールセットを第1の状態から第2の状態に遷移させることの少なくとも一方を実行することと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを含む。
【0110】
態様は、以下の特徴の1つ又は複数を含むことができる。本方法は、ログデータオブジェクトに、(i)第1のユーザが第1のルールコンテナの特定のバージョンを借り出し、第1のルールコンテナの特定のバージョンの第1の状態から第2の状態への遷移を承認したことを指定する情報、(ii)第1のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョンの第1の状態から第2の状態への遷移には第2のタイムスタンプが関連付けられることを指定する情報、(iii)第1のユーザが第1のルールコンテナの特定のバージョンを借り出し、第1のルールコンテナの特定のバージョン内の特定のルールセットの第1の状態から第2の状態への遷移を承認したことを指定する情報、又は(iv)第1のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第1のルールコンテナの特定のバージョン内の特定のルールセットの第1の状態から第2の状態への遷移には第2のタイムスタンプが関連付けられることを指定する情報の少なくとも1つを記憶することを含むことができる。
【0111】
複数のルールセットを含む各ルールコンテナについて、ルールコンテナはルールセットへのポインタを含むことができ、各ポインタは、対応するルールセットが記憶されたリポジトリ内のロケーションをポイントすることができる。
【0112】
少なくとも2つの異なるルールコンテナは、共通のルールセットをポイントするポインタを含むことができる。
【0113】
本方法は、第1のインターフェースを通して、第1のユーザから第2の組の命令を受信することを含むことができる。本方法は、第1のユーザからの第2の組の命令に応答して、リポジトリから第2のルールコンテナの特定のバージョンを借り出すことと、(i)第2のルールコンテナの特定のバージョンをアプリケーションプログラムに関連付け、第2のルールコンテナの特定のバージョン内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)第2のルールコンテナの特定のバージョンが関連付けられたアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。
【0114】
本方法は、ログデータオブジェクトに、(i)第1のユーザが第2のルールコンテナの特定のバージョンを借り出し、第2のルールコンテナの特定のバージョンと併せてアプリケーションプログラムを実行したことを指定する情報、(ii)第1のユーザが第2のルールコンテナの特定のバージョンを借り出し、第2のルールコンテナの特定のバージョンと併せたアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索したことを指定する情報、(iii)第2のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第2のルールコンテナの特定のバージョンと併せたアプリケーションプログラムの実行には第2のタイムスタンプが関連付けられることを指定する情報、又は(iv)第2のルールコンテナの特定のバージョンの借り出しには第1のタイムスタンプが関連付けられ、第2のルールコンテナの特定のバージョンと併せたアプリケーションプログラムの前の実行から生成された、前に記憶された出力の検索には第2のタイムスタンプが関連付けられることを指定する情報の少なくとも1つを記憶することを含むことができる。
【0115】
本方法は、統合ユーザインターフェースを通して、ルールコンテナの1人又は複数の制作者がルールコンテナを編集し、第1の状態から第2の状態へのルールコンテナの遷移を承認できるようにすることを含むことができ、第1の状態は、ルールコンテナが編集中であることを表し、第2の状態は、ルールコンテナがレビュー可能な状態であることを表す。本方法は、統合ユーザインターフェースを通して、1人又は複数のレビューアがルールコンテナの内容をレビューできるようにすることと、(i)ルールコンテナをアプリケーションプログラムに関連付け、ルールコンテナ内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)ルールコンテナと併せたアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することと、(i)ルールコンテナを拒絶し、ルールコンテナを第2の状態から第1の状態に遷移させること、又は(ii)ルールコンテナを承認し、第2の状態から第3の状態に遷移させることであって、第3の状態は、ルールコンテナがリリース可能な状態であることを表す、遷移させることの少なくとも一方を実行することとを含むことができる。
【0116】
本方法は、統合ユーザインターフェースを通して、1つ又は複数のユーザが第1のルールコンテナの複数のリリースを管理できるようにすることであって、複数のリリースは現在リリース及び初期リリースを含む、管理できるようにすることと、リポジトリから第1のルールコンテナの初期リリースを検索することと、(i)第1のルールコンテナの初期リリースをアプリケーションプログラムに関連付け、第1のルールコンテナの初期リリース内のルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行すること、又は(ii)第1のルールコンテナの初期リリースと併せたアプリケーションプログラムの前の実行から生成された、前に記憶された出力を検索することの少なくとも一方を実行することとを含むことができる。
【0117】
本方法は、統合ユーザインターフェースを通して、1人又は複数のユーザが、第1のルールコンテナの初期リリースに何の変更がなされたか、誰が変更を行ったか、変更がいつなされたか、誰が第1の状態から第2の状態への遷移について第1のルールコンテナの初期リリースを承認したか、及び誰が第2の状態から第3の状態への遷移について第1のルールコンテナの初期リリースを承認したかについての情報を有するログデータオブジェクトをレビューできるようにすることを含むことができる。
【0118】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ユーザが統合アプリケーション開発システムと対話して、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供することであって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供することと、リポジトリに第1のルールコンテナの複数のバージョンを記憶することであって、第1のルールコンテナの各バージョンは複数のルールセットを含む、記憶することと、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信することとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、第1のユーザからの命令に応答して、リポジトリから第1のルールコンテナの特定のバージョンを借り出すことと、(i)第1のルールコンテナの特定のバージョンを第1の状態から第2の状態に遷移させること、又は(ii)第1のルールコンテナの特定のバージョンの特定のルールセットを第1の状態から第2の状態に遷移させることの少なくとも一方を実行することと、第1のルールコンテナの特定のバージョンをリポジトリに返却することとを行わせる命令を含む。
【0119】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルールコンテナを記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、ユーザが統合アプリケーション開発システムと対話して、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する回路であって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する回路と、リポジトリに第1のルールコンテナの複数のバージョンを記憶する回路であって、第1のルールコンテナの各バージョンは複数のルールセットを含む、記憶する回路とを含む。コンピュータシステムは、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する回路と、第1のユーザからの命令に応答して、リポジトリに記憶された第1のルールコンテナの複数のバージョンから第1のルールコンテナの特定のバージョンを借り出す回路と、(i)第1のルールコンテナの特定のバージョンを第1の状態から第2の状態に遷移させること、又は(ii)第1のルールコンテナの特定のバージョンの特定のルールセットを第1の状態から第2の状態に遷移させることの少なくとも一方を実行する回路と、第1のルールコンテナの特定のバージョンをリポジトリに返却する回路とを含む。
【0120】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ユーザが統合アプリケーション開発システムと対話して、ルールコンテナのバージョン制御及びビジネスプロセス管理を可能にする統合ユーザインターフェースを提供する手段であって、各ルールコンテナは複数のルールセットを含み、各ルールセットは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、提供する手段と、リポジトリに第1のルールコンテナの複数のバージョンを記憶する手段であって、第1のルールコンテナの各バージョンは複数のルールセットを含む、記憶する手段と、統合ユーザインターフェースの第1のインターフェースを通して第1のユーザ識別子が関連付けられた第1のユーザから命令を受信する手段と、第1のユーザからの命令に応答して、リポジトリに記憶された第1のルールコンテナの複数のバージョンから第1のルールコンテナの特定のバージョンを借り出す手段と、第1のユーザからの命令に応答して、(i)第1のルールコンテナの特定のバージョンを第1の状態から第2の状態に遷移させること、又は(ii)第1のルールコンテナの特定のバージョンの特定のルールセットを第1の状態から第2の状態に遷移させることの少なくとも一方を実行する手段と、第1のルールコンテナの特定のバージョンをリポジトリに返却する手段とを含む。
【0121】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、遷移情報を受信し、1組のルールを含むルールセットをアプリケーションプログラムに関連付け、アプリケーションプログラムを実行できるようにする統合ユーザインターフェースを提供することと、ルールセットを指定するルール仕様を受信することであって、ルールセットの各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、複数の段階の第1の段階をルールセットに関連付けることと、統合ユーザインターフェースを通してルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の段階に関連付けられた許可された遷移に基づいて、複数の段階の第2の段階をルールセットに関連付けることであって、第2の段階は第1の段階と異なる、関連付けることと、統合ユーザインターフェースを通して、ルールセットをアプリケーションプログラムに関連付ける第1の命令を受信することと、第1の命令に応答して、ルールセットをアプリケーションプログラムに関連付けることと、統合ユーザインターフェースを通して、アプリケーションを実行する第2の命令を受信することと、第2の命令に応答して、ルールセットのルールに従って、入力記録を処理し出力を生成するアプリケーションプログラムを実行することとを含む。
【0122】
態様は、以下の特徴の1つ又は複数を含むことができる。ルール仕様を受信することは、ルールケースに対応する複数の行を有するスプレッドシートを受信することを含むことができる。
【0123】
スプレッドシートは、利用可能なデータ値に対応するトリガー列を含むことができ、ルールケースは、利用可能なデータ値に関連する複数の組のトリガー基準を含むことができる。
【0124】
各ルールケースは、所与の記録の1つ又は複数のデータ値が、ルールケースが1つ又は複数の基準を有する各トリガー列で、1つ又は複数のトリガー基準を満たす場合、ルールケースが所与の記録に適用されるように構成することができる。
【0125】
スプレッドシートは、1つ又は複数の出力列を含むことができ、各出力列は潜在的な出力変数に対応することができ、出力変数の値は、出力列内のセルにより決定することができ、セルは、所与の記録に適用されるルールケースに対応する行にあることができる。
【0126】
セルは、出力変数に割り当てられた出力値又は出力値を生成するために評価される式の少なくとも一方を含むことができる。
【0127】
複数の段階は、開発ライフサイクルの複数の開発段階を含むことができる。
【0128】
複数の開発段階は、開発段階又はテスト段階の少なくとも一方を含むことができる。
【0129】
ルールセットは、あるフォーマットから別のフォーマットへのデータの変換、データについての判断、又は1組の入力データに基づく新しいデータの生成の少なくとも1つを実行するための1組の基準を含むことができる。
【0130】
ルール仕様は、複数の行を有するルール仕様表を含むことができ、各行はルールケースを定義し、1組の1つ又は複数の潜在的な入力のそれぞれの関係を含む。
【0131】
関係の少なくとも1つは、閾値に等しい値を有すること、閾値を超える値を有すること、閾値未満の値を有すること、1組の値に属する値を有すること、パターンに一致する値を有すること、別の入力の値への関係を有すること、別のルール仕様の出力の値への関係を有すること、又はメモリ内の値への関係を有することの1つ又は複数を含むことができる。
【0132】
行の少なくとも1つはまた、入力の値、所定の値、又は入力の値の1つ若しくは複数から計算される値の組合せの1つ又は複数を含む出力を含むこともできる。
【0133】
本方法は、ルール仕様内の複数のルールケースを複数の論理式に変換し、複数の論理式をコンパイルしてコンピュータ実行可能コードにし、コンピュータ実行可能コードをアプリケーションプログラムに組み込むことを含むことができる。
【0134】
本方法は、複数のルールケースを変換式に変換し、変換式を、データフローを表す要素をリンクすることにより接続されたデータ処理構成要素を有するグラフベースの計算における構成要素を関連付けることを含むことができる。
【0135】
許容可能な遷移は、(i)開発ライフサイクル内の最初段階におけるルールセットは、後の段階に昇格することができるが、それ以上降格することはできない、(ii)開発ライフサイクルの最初段階でもなければ最後の段階でもないルールセットは、開発ライフサイクルの後の段階に昇格若しくは初期の段階に降格することができ、又は(iii)開発ライフサイクルの最後の段階にあるルールセットは、初期段階に降格することができるが、それ以上昇格することはできないことの少なくとも1つを含むことができる。
【0136】
本方法は、(i)ルールセットが開発ライフサイクルの最初段階である場合、エディタインターフェースには、ルールセットを昇格させる第1の入力要素は示され、ルールセットを降格させる入力要素は示されず、(ii)ルールセットが最初段階でもなければ最後の開発段階でもない場合、エディタインターフェースには、ルールセットを昇格させる第1の入力要素及びルールセットを降格させる第2の入力要素は示され、又は(iii)ルールセットが最後の開発段階である場合、エディタインターフェースには、ルールセットを昇格させる入力要素は示されないことの少なくとも1つを含め、統合ユーザインターフェースの部分であるエディタインターフェース内の1つ又は複数の表示入力要素を提供することを含むことができる。
【0137】
ルールセットの各バージョンは、複数の開発段階を通して遷移することができる。
【0138】
本方法は、ルールセットの異なるバージョンを指定する複数のルール仕様を受信することを含むことができる。本方法は、ルールセットの異なるバージョンの識別子及びルールセットの異なるバージョンに関連付けられた開発段階を表示することを含むことができる。
【0139】
ルールセットの異なるバージョンの識別子及びルールセットの異なるバージョンに関連付けられた段階を表示することは、ルールセットの複数のメジャー又はマイナーバージョン及びルールセットのメジャー又はマイナーバージョンに関連付けられた段階を表示することを含むことができる。
【0140】
本方法は、ルールセットのコピーを記憶し、ルールセットに関連付けられた更新された段階に基づいてルールセットのコピーに名前を付けることを含むことができる。
【0141】
本方法は、ルールセットに関連付けられたタグの複数の可能な状態、状態のそれぞれに関連付けられた1つ又は複数の入力要素、及び入力要素のそれぞれに関連付けられた標的状態を指定するタグ付け仕様を受信することを含むことができる。
【0142】
表示入力要素とのユーザ対話に応答して、タグに、表示入力要素に関連付けられた標的状態を関連付けることができる。
【0143】
本方法は、ルールセットへのポインタを有するタグを使用して、ルールセットに関連付けられた状態を追跡することを含むことができ、タグは許容可能な遷移に基づいて状態間を遷移する。
【0144】
タグは、ルールセットに関連付けられたレビュー履歴についての情報を記憶することができる。
【0145】
複数の段階は、ルールセットの承認プロセスにおける複数の段階を含むことができる。
【0146】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理する方法が提供される。本方法は、ルール仕様のグループを受信することであって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信することと、第1の複数の状態の1つを各ルールセットに関連付けることと、第2の複数の状態の1つをルールセットのグループに関連付けることと、ルールセットの1つに関連付けられた第1の遷移情報を受信することと、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付けることと、ルールセットのグループに関連付けられた第2の遷移情報を受信することと、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付けることと、ルール仕様のグループをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを含む。
【0147】
態様は、以下の特徴の1つ又は複数を含むことができる。第1の複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス状態の少なくとも一方を含むことができる。
【0148】
第2の複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス状態の少なくとも一方を含むことができる。
【0149】
本方法は、ルールセットに関連付けられた状態についての情報を含む第1のタグを各ルールセットに関連付け、ルールセットに関連付けられた状態が変更された場合、第1のタグを更新することを含むことができる。
【0150】
本方法は、ルールセットのグループに関連付けられた状態についての情報を含む第2のタグをグループに関連付け、ルールセットのグループに関連付けられた状態が変更される場合、第2のタグを更新することを含むことができる。
【0151】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信することと、複数の状態の第1の状態をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証することと、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、ルールセットをアプリケーションに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを含む。
【0152】
態様は、以下の特徴の1つ又は複数を含むことができる。複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス状態の少なくとも一方を含むことができる。
【0153】
本方法は、ルールセットに関連付けられた状態についての情報を含むタグを各ルールセットに関連付け、ルールセットに関連付けられた状態が変更された場合、タグを更新することを含むことができる。
【0154】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、遷移情報を受信し、1組のルールを含むルールセットをアプリケーションプログラムに関連付け、アプリケーションプログラムを実行できるようにする統合ユーザインターフェースを提供することと、ルールセットを指定するルール仕様を受信することであって、ルールセットの各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、複数の段階の第1の段階をルールセットに関連付けることと、統合ユーザインターフェースを通してルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の段階に関連付けられた許可された遷移に基づいて、複数の段階の第2の段階をルールセットに関連付けることであって、第2の段階は第1の段階と異なる、関連付けることと、統合ユーザインターフェースを通して、ルールセットをアプリケーションプログラムに関連付ける第1の命令を受信することと、第1の命令に応答して、ルールセットをアプリケーションプログラムに関連付けることと、統合ユーザインターフェースを通して、アプリケーションを実行する第2の命令を受信することと、第2の命令に応答して、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することとを行わせる命令を含む。
【0155】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び段階間の許可された遷移を定義する1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、遷移情報を受信し、1組のルールを含むルールセットをアプリケーションプログラムに関連付け、アプリケーションプログラムを実行できるようにする統合ユーザインターフェースを提供する回路と、ルールセットを指定するルール仕様を検索する回路であって、ルールセットの各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、検索する回路と、複数の段階の第1の段階をルールセットに関連付ける回路と、統合ユーザインターフェースを通してルールセットに関連付けられた遷移情報を受信する回路と、遷移情報及びルールセット及び第1の段階に関連付けられた許可された遷移に基づいて、複数の段階の第2の段階をルールセットに関連付ける回路であって、第2の段階は第1の段階と異なる、関連付ける回路と、統合ユーザインターフェースを通して、ルールセットをアプリケーションプログラムに関連付ける第1の命令を受信する回路と、第1の命令に応答して、ルールセットをアプリケーションプログラムに関連付ける回路と、統合ユーザインターフェースを通して、アプリケーションを実行する第2の命令を受信する回路と、第2の命令に応答して、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する回路とを含む。
【0156】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、遷移情報を受信し、1組のルールを含むルールセットをアプリケーションプログラムに関連付け、アプリケーションプログラムを実行できるようにする統合ユーザインターフェースを提供する手段と、ルールセットを指定するルール仕様を受信する手段であって、ルールセットの各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、複数の段階の第1の段階をルールセットに関連付ける手段と、統合ユーザインターフェースを通してルールセットに関連付けられた遷移情報を受信する手段と、遷移情報及びルールセット及び第1の段階に関連付けられた許可された遷移に基づいて、複数の段階の第2の段階をルールセットに関連付ける手段であって、第2の段階は第1の段階と異なる、関連付ける手段と、統合ユーザインターフェースを通して、ルールセットをアプリケーションプログラムに関連付ける第1の命令を受信する手段と、第1の命令に応答して、ルールセットをアプリケーションプログラムに関連付ける手段と、統合ユーザインターフェースを通して、アプリケーションを実行する第2の命令を受信する手段と、第2の命令に応答して、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成する手段とを含む。
【0157】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルール仕様のグループを受信することであって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信することと、第1の複数の状態の1つを各ルールセットに関連付けることと、第2の複数の状態の1つをルールセットのグループに関連付けることと、ルールセットの1つに関連付けられた第1の遷移情報を受信することと、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付けることと、ルールセットのグループに関連付けられた第2の遷移情報を受信することと、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付けることと、ルール仕様のグループをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルールセットのグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを行わせる命令を含む。
【0158】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムを含む。コンピュータシステムは、データ記憶システムからルール仕様のグループを受信する回路であって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する回路と、データ記憶システムから、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信する回路と、第1の複数の状態の1つを各ルールセットに関連付ける回路と、第2の複数の状態の1つをルールセットのグループに関連付ける回路と、ルールセットの1つに関連付けられた第1の遷移情報を受信する回路と、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付ける回路と、ルールセットのグループに関連付けられた第2の遷移情報を受信する回路と、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付ける回路と、ルール仕様のグループをアプリケーションプログラムに関連付ける回路であって、アプリケーションプログラムは、ルールセットのグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける回路とを含む。
【0159】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルール仕様のグループを受信する手段であって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信する手段と、第1の複数の状態の1つを各ルールセットに関連付ける手段と、第2の複数の状態の1つをルールセットのグループに関連付ける手段と、ルールセットの1つに関連付けられた第1の遷移情報を受信する手段と、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付ける手段と、ルールセットのグループに関連付けられた第2の遷移情報を受信する手段と、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付ける手段と、ルール仕様のグループをアプリケーションプログラムに関連付ける手段であって、アプリケーションプログラムは、ルールセットのグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける手段とを含む。
【0160】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信することと、複数の状態の第1の状態をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証することと、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、ルールセットをアプリケーションに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを行わせる命令を含む。
【0161】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、データ記憶システムから、1組のルールを含むルールセットを指定するルール仕様を受信する回路であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する回路と、データ記憶システムから、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信する回路と、複数の状態の第1の状態をルールセットに関連付ける回路と、ルールセットに関連付けられた遷移情報を受信する回路と、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証する回路と、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付ける回路であって、第2の状態は第1の状態と異なる、関連付ける回路と、ルールセットをアプリケーションに関連付ける回路であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける回路とを含む。
【0162】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1組のルールを含むルールセットを指定するルール仕様を受信する手段であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信する手段と、複数の状態の第1の状態をルールセットに関連付ける手段と、ルールセットに関連付けられた遷移情報を受信する手段と、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証する手段と、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付ける手段であって、第2の状態は第1の状態と異なる、関連付ける手段と、ルールセットをアプリケーションに関連付ける手段であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける手段とを含む。
【0163】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法であって、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、複数の段階の第1の段階をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の段階に関連付けられた許可される遷移に基づいて、複数の段階の第2の段階をルールセットに関連付けることであって、第2の段階は第1の段階と異なる、関連付けることと、ルールセットをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し、出力を生成するように構成される、関連付けることとを含む本方法。本方法は、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し、出力を生成することと、遷移情報の受信、ルールセットのアプリケーションプログラムへの関連付け、及びアプリケーションプログラムの実行を可能にする統合ユーザインターフェースを提供することとを含む。
【0164】
態様は、以下の特徴の1つ又は複数を含むことができる。
【0165】
ルール仕様を受信することは、ルールケースに対応する複数の行を有するスプレッドシートを受信することを含むことができる。
【0166】
スプレッドシートは、利用可能なデータ値に対応するトリガー列を含むことができ、ルールケースは、利用可能なデータ値に関連する複数の組のトリガー基準を含む。
【0167】
各ルールケースは、所与の記録の1つ又は複数のデータ値が、ルールケースが1つ又は複数の基準を有する各トリガー列で、1つ又は複数のトリガー基準を満たす場合、ルールケースが所与の記録に適用されるように構成することができる。
【0168】
スプレッドシートは、1つ又は複数の出力列を含むことができ、各出力列は潜在的な出力変数に対応することができ、出力変数の値は、出力列内のセルにより決定することができ、セルは、所与の記録に適用されるルールケースに対応する行にあることができる。
【0169】
セルは、出力変数に割り当てられた出力値又は出力値を生成するために評価される式の少なくとも一方を含むことができる。
【0170】
複数の段階は、開発ライフサイクルの複数の開発段階を含むことができる。
【0171】
複数の開発段階は、開発段階又はテスト段階の少なくとも一方を含むことができる。
【0172】
ルールセットは、あるフォーマットから別のフォーマットへのデータの変換、データについての判断、又は1組の入力データに基づく新しいデータの生成の少なくとも1つを実行するための1組の基準を含むことができる。
【0173】
ルール仕様は、複数の行を有するルール仕様表を含むことができ、各行はルールケースを定義し、1組の1つ又は複数の潜在的な入力のそれぞれの関係を含む。
【0174】
関係の少なくとも1つは、閾値に等しい値を有すること、閾値を超える値を有すること、閾値未満の値を有すること、1組の値に属する値を有すること、パターンに一致する値を有すること、別の入力の値への関係を有すること、別のルール仕様の出力の値への関係を有すること、又はメモリ内の値への関係を有することの1つ又は複数を含むことができる。
【0175】
行の少なくとも1つはまた、入力の値、所定の値、又は入力の値の1つ若しくは複数から計算される値の組合せの1つ又は複数を含む出力を含むこともできる。
【0176】
本方法は、ルール仕様内の複数のルールケースを複数の論理式に変換し、複数の論理式をコンパイルしてコンピュータ実行可能コードにし、コンピュータ実行可能コードをアプリケーションプログラムに組み込むことを含むことができる。
【0177】
本方法は、複数のルールケースを変換式に変換し、変換式を、データフローを表す要素をリンクすることにより接続されたデータ処理構成要素を有するグラフベースの計算における構成要素を関連付けることを含むことができる。
【0178】
許容可能な遷移は、(i)開発ライフサイクル内の最初段階におけるルールセットは、後の段階に昇格することができるが、それ以上降格することはできず、(ii)開発ライフサイクルの最初段階でもなければ最後の段階でもないルールセットは、開発ライフサイクルの後の段階に昇格若しくは最初の段階に降格することができ、又は(iii)開発ライフサイクルの最後の段階にあるルールセットは、初期段階に降格することができるが、それ以上昇格することはできないことの少なくとも1つを含むことができる。
【0179】
本方法は、(i)ルールセットが開発ライフサイクルの最初段階である場合、エディタインターフェースには、ルールセットを昇格させる第1の入力要素は示され、ルールセットを降格させる入力要素は示されず、(ii)ルールセットが最初段階でもなければ最後の開発段階でもない場合、エディタインターフェースには、ルールセットを昇格させる第1の入力要素及びルールセットを降格させる第2の入力要素は示され、又は(iii)ルールセットが最後の開発段階である場合、エディタインターフェースには、ルールセットを昇格させる入力要素は示されないことの少なくとも1つを含め、統合ユーザインターフェースの部分であるエディタインターフェース内の1つ又は複数の表示入力要素を提供することを含むことができる。
【0180】
ルールセットの各バージョンは、複数の開発段階を通して遷移することができる。
【0181】
本方法は、ルールセットの異なるバージョンを指定する複数のルール仕様を受信することを含むことができる。本方法は、ルールセットの異なるバージョンの識別子及びルールセットの異なるバージョンに関連付けられた開発段階を表示することを含むことができる。
【0182】
ルールセットの異なるバージョンの識別子及びルールセットの異なるバージョンに関連付けられた段階を表示することは、ルールセットの複数のメジャー又はマイナーバージョン及びルールセットのメジャー又はマイナーバージョンに関連付けられた段階を表示することを含むことができる。
【0183】
本方法は、ルールセットのコピーを記憶し、ルールセットに関連付けられた更新された段階に基づいてルールセットのコピーに名前を付けることを含むことができる。
【0184】
本方法は、ルールセットに関連付けられたタグの複数の可能な状態、状態のそれぞれに関連付けられた1つ又は複数の入力要素、及び入力要素のそれぞれに関連付けられた標的状態を指定するタグ付け仕様を受信することを含むことができる。
【0185】
表示入力要素とのユーザ対話に応答して、タグに、表示入力要素に関連付けられた標的状態を関連付けることができる。
【0186】
本方法は、ルールセットへのポインタを有するタグを使用して、ルールセットに関連付けられた状態を追跡することを含むことができ、タグは許容可能な遷移に基づいて状態間を遷移する。
【0187】
タグは、ルールセットに関連付けられたレビュー履歴についての情報を記憶することができる。
【0188】
複数の段階は、ルールセットの承認プロセスにおける複数の段階を含むことができる。
【0189】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールコンテナを管理する方法が提供される。本方法は、ルール仕様のグループを受信することであって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信することと、第1の複数の状態の1つを各ルールセットに関連付けることと、第2の複数の状態の1つをルールセットのグループに関連付けることと、ルールセットの1つに関連付けられた第1の遷移情報を受信することと、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付けることと、ルールセットのグループに関連付けられた第2の遷移情報を受信することと、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付けることと、ルール仕様のグループをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルールセットのグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを含む。
【0190】
態様は、以下の特徴の1つ又は複数を含むことができる。
【0191】
第1の複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス状態の少なくとも一方を含むことができる。
【0192】
第2の複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス段階の少なくとも一方を含むことができる。
【0193】
本方法は、ルールセットに関連付けられた状態についての情報を含む第1のタグを各ルールセットに関連付け、ルールセットに関連付けられた状態が変更された場合、第1のタグを更新することを含むことができる。
【0194】
本方法は、ルールセットのグループに関連付けられた状態についての情報を含む第2のタグをグループに関連付け、ルールセットのグループに関連付けられた状態が変更される場合、第2のタグを更新することを含むことができる。
【0195】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理する方法が提供される。本方法は、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信することと、複数の状態の第1の状態をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証することと、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、ルールセットをアプリケーションに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを含む。
【0196】
態様は、以下の特徴の1つ又は複数を含むことができる。
【0197】
複数の状態は、(i)複数の開発ライフサイクル状態、又は(ii)複数の承認プロセス状態の少なくとも一方を含むことができる。
【0198】
本方法は、ルールセットに関連付けられた状態についての情報を含むタグを各ルールセットに関連付け、ルールセットに関連付けられた状態が変更された場合、タグを更新することを含むことができる。
【0199】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、複数の段階の第1の段階をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報及びルールセット及び第1の段階に関連付けられた許可される遷移に基づいて、複数の段階の第2の段階をルールセットに関連付けることであって、第2の段階は第1の段階と異なる、関連付けることと、ルールセットをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを行わせる命令を含む。コンピュータプログラムは、コンピュータシステムに、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し出力を生成することと、遷移情報の受信、ルールセットのアプリケーションプログラムへの関連付け、及びアプリケーションプログラムの実行を可能にする統合ユーザインターフェースを提供することとを行わせる命令を含む。
【0200】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、データ記憶システムから、1組のルールを含むルールセットを指定するルール仕様を検索する回路であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、検索する回路と、複数の段階の第1の段階をルールセットに関連付ける回路と、データ記憶システムから、ルールセットに関連付けられた遷移情報を検索する回路と、遷移情報及びルールセット及び第1の段階に関連付けられた許可される遷移に基づいて、複数の段階の第2の段階をルールセットに関連付ける回路であって、第2の段階は第1の段階と異なる、関連付ける回路と、ルールセットをアプリケーションプログラムに関連付ける回路であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける回路とを含む。コンピュータシステムは、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し出力を生成する回路と、遷移情報の受信、ルールセットのアプリケーションプログラムへの関連付け、及びアプリケーションプログラムの実行を可能にする統合ユーザインターフェースを提供する回路とを含む。
【0201】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1組のルールを含むルールセットを指定するルール仕様を受信する手段であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、複数の段階の第1の段階をルールセットに関連付ける手段と、ルールセットに関連付けられた遷移情報を受信する手段と、遷移情報及びルールセット及び第1の段階に関連付けられた許可される遷移に基づいて、複数の段階の第2の段階をルールセットに関連付ける手段であって、第2の段階は第1の段階と異なる、関連付ける手段と、ルールセットをアプリケーションプログラムに関連付ける手段であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける手段とを含む。本システムは、ルールセットのルールに従ってアプリケーションプログラムを実行して、入力記録を処理し出力を生成する手段と、遷移情報の受信、ルールセットのアプリケーションプログラムへの関連付け、及びアプリケーションプログラムの実行を可能にする統合ユーザインターフェースを提供する手段とを含む。
【0202】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、ルール仕様のグループを受信することであって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信することと、第1の複数の状態の1つを各ルールセットに関連付けることと、第2の複数の状態の1つをルールセットのグループに関連付けることと、ルールセットの1つに関連付けられた第1の遷移情報を受信することと、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付けることと、ルールセットのグループに関連付けられた第2の遷移情報を受信することと、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付けることと、ルール仕様のグループをアプリケーションプログラムに関連付けることであって、アプリケーションプログラムは、ルール仕様のグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを行わせる命令を含む。
【0203】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムを含む。コンピュータシステムは、データ記録システムからルール仕様のグループを受信する回路であって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する回路と、データ記録システムから個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信する回路と、第1の複数の状態の1つを各ルールセットに関連付ける回路と、第2の複数の状態の1つをルールセットのグループに関連付ける回路と、ルールセットの1つに関連付けられた第1の遷移情報を受信する回路と、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付ける回路と、ルールセットのグループに関連付けられた第2の遷移情報を受信する回路と、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付ける回路と、ルール仕様のグループをアプリケーションプログラムに関連付ける回路であって、アプリケーションプログラムは、ルール仕様のグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける回路とを含む。
【0204】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、ルール仕様のグループを受信する手段であって、各ルール仕様は、1組のルールを含むルールセットを指定し、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、個々のルールセットに関連付けることができる第1の複数の状態、ルールセットのグループに関連付けることができる第2の複数の状態、個々のルールセットに関連付けられる許容可能な状態遷移、及びルールセットのグループに関連付けられる許容可能な状態遷移を指定する遷移仕様を受信する手段と、第1の複数の状態の1つを各ルールセットに関連付ける手段と、第2の複数の状態の1つをルールセットのグループに関連付ける手段と、ルールセットの1つに関連付けられた第1の遷移情報を受信する手段と、第1の遷移情報、ルールセットに関連付けられる許可される遷移、及びルールセットに現在関連付けられている状態に基づいて、第1の複数の状態の別の1つをルールセットに関連付ける手段と、ルールセットのグループに関連付けられた第2の遷移情報を受信する手段と、第2の遷移情報、グループに関連付けられる許可される遷移、及びグループに現在関連付けられている状態に基づいて、第2の複数の状態の別の1つをルール仕様のグループに関連付ける手段と、ルール仕様のグループをアプリケーションプログラムに関連付ける手段であって、アプリケーションプログラムは、ルール仕様のグループのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける手段とを含む。
【0205】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するコンピュータプログラムを記憶するコンピュータ可読媒体が提供される。コンピュータプログラムは、コンピュータシステムに、1組のルールを含むルールセットを指定するルール仕様を受信することであって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信することと、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信することと、複数の状態の第1の状態をルールセットに関連付けることと、ルールセットに関連付けられた遷移情報を受信することと、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証することと、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付けることであって、第2の状態は第1の状態と異なる、関連付けることと、ルールセットをアプリケーションに関連付けることであって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付けることとを行わせる命令を含む。
【0206】
別の態様では、一般に、データ処理システムにおいてアプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1つ又は複数のルール仕様及び1つ又は複数の遷移仕様を記憶するデータ記憶システムと、グラフィカルユーザインターフェースを提供する少なくとも1つの出力デバイス又はポートと、データ記憶システム及び少なくとも1つの出力デバイス又はポートに結合されたコンピュータシステムとを含む。コンピュータシステムは、データ記憶システムから1組のルールを含むルールセットを指定するルール仕様を受信する回路であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する回路と、データ記憶システムから、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信する回路と、複数の状態の第1の状態をルールセットに関連付ける回路と、ルールセットに関連付けられた遷移情報を受信する回路と、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証する回路と、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付ける回路であって、第2の状態は第1の状態と異なる、関連付ける回路と、ルールセットをアプリケーションに関連付ける回路であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける回路とを含む。
【0207】
別の態様では、一般に、アプリケーションプログラムと併用する1つ又は複数のルールを管理するシステムが提供される。本システムは、1組のルールを含むルールセットを指定するルール仕様を受信する手段であって、各ルールは、ルールの入力に応じてルールの出力の値を計算する1組のルールケースを含み、各ルールケースは1つ又は複数の入力関係を含み、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、ルールケースは所与の入力記録によりトリガーされる、受信する手段と、ルールセットに関連付けられた複数の状態間の許容可能な遷移を指定し、各遷移で、遷移を実施する権限を有する1人又は複数のユーザを指定する遷移仕様を受信する手段と、複数の状態の第1の状態をルールセットに関連付ける手段と、ルールセットに関連付けられた遷移情報を受信する手段と、遷移情報を提供したユーザが、遷移情報を提供する権限を有することを検証する手段と、遷移情報を提供したユーザが遷移情報を提供する権限を有することを検証した後、遷移情報及びルールセット及び第1の状態に関連付けられた許可される遷移に基づいて、複数の状態の第2の状態をルールセットに関連付ける手段であって、第2の状態は第1の状態と異なる、関連付ける手段と、ルールセットをアプリケーションに関連付ける手段であって、アプリケーションプログラムは、ルールセットのルールに従って入力記録を処理し出力を生成するように構成される、関連付ける手段とを含む。
【0208】
態様は以下の利点の1つ又は複数を有することができる。ユーザが統合された様式でルールを編集し、開発ライフサイクル及びルールのバージョニングを管理し、ルールを使用してアプリケーションのシミュレーションを実行できるようにする統合ユーザインターフェースを提供することができる。ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータの2つ以上は、共通ユーザインターフェースを共有することができ、それにより、ユーザは、2つ以上の異なるユーザインターフェースを切り替える必要なく、モジュールの2つ以上に関連付けられた機能を実行することができる。ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータの2つ以上は、メモリを共有することができ、それにより、ルール編集、ビジネスプロセス管理、ソースコード制御、及びシミュレーションのために2つ以上の別個のモジュールを一式含む従来のシステムと比較して、メモリ要件を低減する。ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータの2つ以上を統合することにより、それぞれがそれ自体のオーバーヘッドを有するルール編集、ビジネスプロセス管理、ソースコード制御、及びシミュレーションの2つ以上の別個のモジュールを一式含む従来のシステムと比較して、モジュールのオーバーヘッドを低減することができる。
【0209】
ルールエディタ、ビジネスプロセス管理、ソースコード制御、及びシミュレーションの2つ以上を統合することにより、デッドロック又は異なるモジュールが同じルールセット又はルールコンテナを同時に処理し、矛盾が生じる競合を回避することができる。ルールエディタ、ビジネスプロセス管理、ソースコード制御、及びシミュレーションの2つ以上は、共通ログデータオブジェクトを共有することができ、それにより、ユーザは、共通ログデータオブジェクトをレビューして、モジュールの2つ以上に関連する情報を閲覧することができる。統合システムは、ルールエディタ、ビジネスプロセス管理、ソースコード制御、及びシミュレーションに関連付けられたイベントのタイムスタンプが一貫することを保証する。比較により、ルール編集、ビジネスプロセス管理、ソースコード制御、及びシミュレーションの2つ以上の別個のモジュールを一式含む従来のシステムは、異なるモジュールが完全には同期されない異なるクロックを使用し得るため、一貫しないタイムスタンプを有し得る。例えば、従来のシステムでは、第1のモジュールが関連付けられた第1のイベントは、第2のモジュールが関連付けられた第2のイベントの前に生じ得るが、第1のモジュールのクロックが第2のモジュールのクロックよりも遅いため、第1のイベントが、第2のイベントのタイムスタンプよりも遅いタイムスタンプを有し得る。この問題は、ルールエディタ、ビジネスプロセス管理、ソースコード制御、及びシミュレーションが、共通基準クロックに基づくタイムスタンプを生成する本発明の統合システムを使用することにより回避することができる。
【0210】
幾つかの実施態様では、ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータは、共通クロックを共有する。ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータが同じコンピュータサーバで実行される場合、ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータにより生成されるタイムスタンプは全て、コンピュータサーバの同じシステムクロックに基づく。
【0211】
幾つかの実施態様では、ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータの2つ以上は、それぞれがそれ自体のシステムクロックを有する2つ以上のコンピュータサーバで実行することができる。クロックは互いと同期することができ、それにより、2つのイベントが2つのコンピュータサーバで同時に発生する場合、それらの2つのイベントのタイムスタンプは同じになる。
【0212】
幾つかの実施態様では、ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータの2つ以上は、それぞれがそれ自体のシステムクロックを有する2つ以上のコンピュータサーバで実行することができ、クロックは同期されない。2つ以上のコンピュータサーバのそれぞれは、それ自体のシステムクロックを基準クロックと比較して、差を特定する。各コンピュータサーバは、システムクロックと基準クロックとの差を考慮に入れて、それ自体のシステムクロックに基づいてタイムスタンプを生成し、それにより、タイムスタンプは、基準クロックに基づいて生成される場合と同じになる。例えば、第1のコンピュータサーバのシステムクロックは基準クロックとして使用することができ、その他のコンピュータサーバは、コンピュータサーバにより生成されるタイムスタンプが全て、第1のコンピュータのシステムクロックに基づくように、それ自体のシステムクロックを第1のコンピュータサーバのシステムクロックと比較することができる。このように、ルールエディタ、ビジネスプロセス管理モジュール、ソースコード制御モジュール、及びシミュレータにより生成されるタイムスタンプは全て、同じ基準クロックに基づく。
【0213】
さらに、ルールセットが開発ライフサイクル又はレビュープロセスの様々な段階を経る際、ビジネスタグを使用して、ルールセットを管理することができる。データリポジトリにおいて十分に相互接続されたメタデータを自動的に生成、リンクし、補助データ記憶装置としてデータリポジトリを使用するカスタムワークフローをサポートすることが有利である。メタデータアプリケーションは、データリポジトリ自体の外部に構築することができる。
【0214】
説明の他の特徴及び利点は、以下の説明及び特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0215】
図面の簡単な説明
【
図1】アプリケーション開発システムの一例のブロック図である。
【
図2】統合ユーザインターフェースの一例の図である。
【
図3】エディタインターフェースの一例の図である。
【
図4】アプリケーション開発システムの一例のブロック図である。
【
図6A】作業空間及びエディタインターフェースの例の図である。
【
図6B】作業空間及びエディタインターフェースの例の図である。
【
図6C】作業空間及びエディタインターフェースの例の図である。
【
図6D】作業空間及びエディタインターフェースの例の図である。
【
図7】非統合アプリケーション開発システムの一例のブロック図である。
【
図8】グラフベースの計算を実行するシステムの一例のブロック図である。
【
図11A】グラフベースの計算環境における入力データから出力データへの変換を示す。
【
図12】ビジネスルール環境において記憶されたデータオブジェクトの生成、表示、及びリンクのスクリーンショットを示す。
【
図15】オブジェクトエディタに関連付けられた一連の画面を示す。
【
図16】オブジェクトエディタに関連付けられた一連の画面を示す。
【
図17】データリポジトリに記憶されたデータオブジェクトの生成、表示、及びリンクの動作例のフローチャートである。
【
図19A】リリースタグのユーザがルールセットを管理できるようにするユーザインターフェースの例を示す。
【
図19B】リリースタグのユーザがルールセットを管理できるようにするユーザインターフェースの例を示す。
【
図19C】状態間の許容可能な遷移の一例を示す図である。
【
図21】ルールセット承認プロセスの一例の図である。
【
図22】リリースタグの使用がルールセットのグループを管理できるようにするユーザインターフェースの一例である。
【
図23A】ビジネスタグが関連付けられたアクティビティログの例のスクリーンショットを示す。
【
図23B】ビジネスタグが関連付けられたアクティビティログの例のスクリーンショットを示す。
【
図24】ルールを管理するユーザインターフェースのスクリーンショットの例である。
【
図25】ルールを管理するユーザインターフェースのスクリーンショットの例である。
【
図26】キャンペーンのビジネスルールを生成する例示的なプロセスの流れ図である。
【
図27】データ準備ステップを実施する例示的なプロセスの流れ図である。
【
図28】キャンペーン製品のオーサリング及び検証の例示的なプロセスの流れ図である。
【
図29】重複プロセスを実施する例示的なプロセスの流れ図である。
【
図30】スプレッドシートベースのルールエントリの一例である。
【
図32】ルール及び対応するテスト結果の例を示す。
【発明を実施するための形態】
【0216】
説明
この文書において、ルールを編集し、ルールを組み込んだアプリケーションプログラムの実行をシミュレートし、ルールの複数のバージョン及びルールの様々な組合せのコンテナの複数のバージョンを管理及び制御し、ルールをオーサリング、レビュー、リスクチェック、及び承認するビジネスプロセスを管理する新規の統合アプリケーション開発システムを記載する。統合アプリケーション開発システムは、ユーザが上記機能を好都合且つ効率的に実行できるようにする統合ユーザインターフェースを提供する。幾つかの実施態様では、統合アプリケーション開発システムは、事業者が、ソフトウェアプログラミングについての深い知識を有する必要なく、例えば、数百万人又は数十億人の顧客の記録を処理する複雑なルールを組み込んだ高度なアプリケーションプログラムを開発できるようにする直観的なユーザインターフェースを提供する。統合アプリケーション開発システムは、事業者が効率的にルールをオーサリング、レビュー、テスト、及び最適化できるようにし、それにより、ビジネスは、新しいマーケティング又はビジネスキャンペーンを頻繁に始動させ、顧客の嗜好、市場の状況、及び/又はビジネス環境の変化に素早く反応することができる。
【0217】
図1を参照すると、幾つかの実施態様では、アプリケーション開発システム100は、ビジネスルール、例えば、どの製品又は販売促進オファーを顧客に付与するか及び/又はどの顧客がどのリワードの対象であるかの決定を支援するために航空会社、クレジットカード会社、及び/又はオンライン市場小売業者が使用することができるルールを開発するプロセスを促進する。例えば、クレジットカード会社は、ビジネスルールを使用して、潜在的な不正クレジットカード取引の検出を支援することができる。銀行は、ビジネスルールを使用して、潜在的なマネーロンダリング及び不正な金銭取引の検出を支援することができる。銀行はまた、ビジネスルールを使用して、顧客の信用リスク、借り入れ資格、及び利率の決定を支援することもできる。保険会社は、ビジネスルールを使用して、どの顧客がどのプログラムの対象であるか及びどの保険料率を顧客に適用するかの決定を支援することができる。
【0218】
幾つかの実施態様では、アプリケーション開発システム100は、ドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及びアプリケーションシミュレータ108を含む。システム100は、上記ツール102、104、106、及び108によりアクセスすることができるデータ(例えば、企業メタデータ)のリポジトリ110を含む。システム100は、ツール102、104、106、及び108により提供されるログ情報を記憶する1つ又は複数の共通ログデータオブジェクト116を含む。1人又は複数のユーザ90は、統合ユーザインターフェース112を使用してドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び1つ又は複数の共通ログデータオブジェクト116にアクセスすることができる。例えば、ログデータオブジェクトは、ファイル、メッセージ、リポート、及び/又は記録を含むことができる。ログデータオブジェクトは、ファイル、メッセージ、記録、及び/又はリポート内にフィールドを含むことができる。ログデータオブジェクトは、特定のルールセット又はルールコンテナにリンク又は関連付けることができ、それにより、ユーザ90は、ルールセット又はルールコンテナに関連付けられた全てのログ情報に容易にアクセスすることができる。
【0219】
幾つかの実施態様では、ユーザ90は、1つ又は複数のコンピュータの入力デバイス(例えば、キーボード、マウス、マイクロホン)を使用して、入力を統合ユーザインターフェース112に提供し、統合ユーザインターフェース112は、1つ又は複数のコンピュータの出力デバイス(例えば、1つ又は複数のディスプレイ及びスピーカ)を使用して出力をユーザ90に提供する。統合ユーザインターフェース112は、1つ又は複数のコンピュータで実行されるモジュールにより生成された情報を表示することができる。他の入/出力デバイス及びユーザ90と統合ユーザインターフェース112との間の他の対話モードを使用することもでき、本明細書の後のセクションにおいて説明する。
【0220】
統合ユーザインターフェース112は、ユーザ側構成要素及びサーバ側構成要素を有する。例えば、ユーザ90は、1つ又は複数のウェブブラウザを使用して、ツール102、104、106、及び108にアクセスする。ウェブブラウザは、サーバ側構成要素とデータを交換し、ユーザ90に示された1つ又は複数のウェブページに表示されるインタラクティブグラフィカル要素をレンダリングするウィジェットを含む。複数のユーザはウェブブラウザを使用して、ツール102、104、106、及び108に同時にアクセスすることができる。統合ユーザインターフェース112は、インターフェースをユーザ90のそれぞれに提供して、ユーザ90がツール102、104、106、及び108と対話できるようにする。例えば、第1のユーザ90aはウェブブラウザを使用して、ドキュメントエディタ102にアクセスし、第1のルールセットを編集し、ビジネスプロセス管理ツール104にアクセスして、承認に向けて第1のルールセットを提出することができる。第2のユーザ90bは、ウェブブラウザを使用して、ドキュメントエディタ102にアクセスし、第1のルールセットをレビューし、アプリケーションシミュレータ108にアクセスして、第1のルールセットを組み込んだアプリケーションプログラムの実行のシミュレーションを実行し、ビジネスプロセス管理ツール104にアクセスして、リリースに向けて第1のルールセットを承認することができる。第3のユーザ90c(図示せず)は、ウェブブラウザを使用して、ソースコード制御ツール106にアクセスして、第1のルールセットをルールコンテナに追加することができる。第4のユーザ90d(図示せず)は、ウェブブラウザを使用して、ソースコード制御ツール106にアクセスし、ルールセットの新規バージョンを作成し、ドキュメントエディタ102にアクセスして、ルールセットの新規バージョンを変更する等々である。統合ユーザインターフェース112は、複数のユーザが、異なるツール(例えば、102、104、106、及び108)にアクセスするとき、一貫したルックアンドフィールを有するインターフェースを使用してルールセットの開発で協働できるようにする。
【0221】
図2を参照すると、幾つかの実施態様では、統合ユーザインターフェース112は、エディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728を含む。インターフェース2720、2722、2724、2726、及び2728は、1つ又は複数のウェブページに示されるインタラクティブグラフィカル要素を含むことができる。エディタインターフェース2720は、ユーザがドキュメントエディタ102にアクセスできるようにする。例えば、エディタインターフェース2720は、編集するルール仕様を表示し、ユーザがルール仕様を編集するためのツールを提供することができる。
【0222】
幾つかの実施態様では、第1のユーザは、リポジトリ114に記憶されたルールセットを編集する場合、ソースコード制御ツール106にアクセスして、ルールセットを借り出す。ユーザはドキュメントエディタ102にアクセスして、ルールセットを編集する。ルールセットが「オープン」又は「開発」状態である場合、ドキュメントエディタ102は、第1のユーザ(又は他の権限ユーザ)のみがアクセス可能な「サンドボックス」にルールセットのコピーを記憶する。サンドボックスは、第1のユーザが、制作環境又はリポジトリ114内のソースコードに影響せずに、ルールセットの様々なパラメータを用いて実験できるようにする。第1のユーザは、ルールセットの変更を終えると、ルールセットを提出又は公開し、ルールセットのコピーはリポジトリ110に記憶され、ルールセットの状態は「提出済み」又は「公開済み」に変更される。このとき、他のユーザは、変更されたルールセットの閲覧、編集、シミュレート、承認、及び/又は他の処理の実行を行うことができる。
【0223】
ビジネスプロセス管理インターフェース2722は、ユーザがビジネスプロセス管理ツール104にアクセスできるようにする。例えば、インターフェース2722は、編集中のルールの現在状態及びルールが遷移することができる可能な標的状態をエディタインターフェース2720に示すことができる。ビジネスプロセス管理インターフェース2722はまた、エディタインターフェース2720において編集中のルールに関連する他のルールの現在状態及び標的状態を示すこともできる。ビジネスプロセス管理インターフェース2722は、ルールセットの選択されたバージョンを含む1つ又は複数のコンテナの1つ又は複数の状態を示すことができる。ビジネスプロセス管理インターフェースは、ユーザが、「開発」状態から「テスト中」状態へのルールセットの選択されたバージョンの昇格又は「テスト中」状態から「開発」状態へのルールセットの選択されたバージョンの降格等のある状態から別の状態にルールセットの選択されたバージョンを遷移できるようにする。
【0224】
ソースコードコントローラインターフェース2724は、ユーザがソースコード制御ツール106にアクセスできるようにする。例えば、ソースコードコントローラインターフェース2724は、エディタインターフェース2720において編集中のルールの様々なバージョンのリストを示すことができる。ソースコードコントローラインターフェース2724は、ユーザが、ルールコンテナ及びルールセットの様々なバージョンを管理できるようにする。ユーザは、このインターフェースを使用して特定のルールセットの特定のバージョンを選択することができ、ルールセットの選択されたバージョンは、エディタインターフェース2720において編集することができる。ソースコードコントローラインターフェース2724は、どのユーザがリポジトリ114からルールセットの特定のバージョンを借り出したかに関する情報及びリポジトリ114からルールセットの特定のバージョンが貸し出されたときを示すタイムスタンプを示すことができる。
【0225】
アプリケーションシミュレーションインターフェース2726は、ユーザがアプリケーションシミュレータ108にアクセスして、エディタインターフェース2720において編集中であるルールセットの選択されたバージョンを組み込んだアプリケーションプログラムの実行をシミュレートして、入力データを処理し、出力データを生成できるようにする。アプリケーションシミュレーションインターフェース2726はまた、ユーザが、ルールセットの選択されたバージョンを使用して、アプリケーションプログラムの前にシミュレートされた実行から生成された、記憶された出力データを検索できるようにもする。
【0226】
テストデータを使用してアプリケーションプログラムの実行をシミュレートすることにより、ルールセットの開発者は、ルールセットを組み込んだアプリケーションプログラムが、ルールセットを組み込んだアプリケーションプログラムを制作データ(例えば、実際の顧客データ)に適用して、結果を生成する等のライブ又は制作環境で実際のデータを使用して実行されたときに生じ得る潜在的な問題を識別し補正できるようにする。以下、状況に応じて、「アプリケーションプログラムの実行の結果」という句は、テストデータを使用したアプリケーションプログラムの実行のシミュレーションからの結果又は制作データを使用したアプリケーションプログラムの実行からの結果を意味することができる。
【0227】
共通ログインターフェース2728は、ユーザが、共通ログデータオブジェクト116にアクセスできるようにする。例えば、共通ログインターフェース2728は、特定の時間期間内のタイムスタンプを有するログ情報を示すことができる。
【0228】
アプリケーション開発システム100のどの機能がユーザによりアクセスされているかに応じて、エディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728、又はそれらの部分の1つ又は複数は、ユーザに表示画面で示すことができる。例えば、ユーザは、ツール102、104、106、及び108の2つ以上の機能に同時にアクセスすることができる。統合ユーザインターフェース112は、ユーザに同時に提示されたインターフェース2720、2722、2724、2726、及び2728、又はそれらの部分の2つ以上の組合せを含み得る。
【0229】
図2は、エディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728を別個の構成要素として示す。しかしながら、インターフェース2720、2022、2724、2726、及び2828の2つ以上は、1つのモジュールとして組み合わせることができる。インターフェース2720、2022、2724、2726、及び2828の2つ以上の部分は、1つのモジュールとして組み合わせることができる。インターフェース2720、2022、2724、2726、及び2828のそれぞれは、2つ以上のサブモジュールを有することができる。
【0230】
例えば、2人のユーザ90a、90bがアプリケーション開発システム100を同時に使用する場合、統合ユーザインターフェース112は、第1のユーザ90aのコンピュータディスプレイに示される第1のグラフィカルユーザインターフェースと、第2のユーザ90bのコンピュータディスプレイに示される第2のグラフィカルユーザインターフェースとを含むことができる。第1及び第2のグラフィカルユーザインターフェースのそれぞれは、エディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728、又はそれらの部分の1つ又は複数を含むことができる。同様に、アプリケーション開発システム100に同時にアクセスする追加のユーザがいる場合、統合ユーザインターフェース112は、追加のユーザのコンピュータディスプレイに示される追加のインターフェースを含むことができる。
【0231】
図3を参照すると、幾つかの実施態様では、エディタインターフェース2500は、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116にアクセスするための構成要素(例えば、ボタン、メニュー、リンク、及び入力ボックス等のインタラクティブアイテム)を含むことができる。例えば、ユーザ90がドキュメントエディタ102を実行して、特定のルールセット(例えば、ルールセット「abc」)の特定のバージョン(例えば、バージョン「xyz」)を編集する場合、アプリケーション開発システム100はエディタインターフェース2500を提供し、特定のルールセットの特定のバージョンのルール仕様を示す。
図3はエディタインターフェース2500の構成要素の例を示す。エディタインターフェース2500は、図に示されるよりも少数又は多数の構成要素を有することができる。
【0232】
例えば、エディタインターフェース2500は、ルールセットを閲覧又は編集しているユーザの識別子2508を示すことができる。エディタインターフェース2500は、例えば、ファイル管理用のメニュー、編集ツール用のメニュー、及びヘルプメニュー等の一般メニューを有する一般メニューバー2510を含むことができる。エディタインターフェース2500は、例えば、コピーツール、ペーストツール、及び削除ツール等の様々な編集ツールを含む編集ツールバー2512を有することができる。エディタインターフェース2500は、編集中のルールセットのルール(例えば、2504a、2504b、2504c)を示すことができる。各ルール(例えば、2504a)は、ルールの入力に応じてルールの出力2508の値を計算する1つ又は複数のルールケース(例えば、2506a、2506b、2506c、2506d)を含むことができ、各ルールケースは1つ又は複数の入力関係又は基準(例えば、2514a、2514b、2514c)を含むことができ、ルールケースは、所与の入力記録の1つ又は複数のデータ値が1つ又は複数の入力関係を満たす場合、所与の入力記録によりトリガーされる。
【0233】
エディタインターフェース2500は、ルールセットの現在状態2526と、ユーザがルールセットの状態を変更できるようにするツール2528とを示すことができる。例えば、ツール2528は、ルールセットが遷移することができる標的状態のリストを有するメニューであることができる。ツール2528は、ルールセットが遷移することができる標的状態を表す1つ又は複数のボタンを含むことができる。エディタインターフェース2500は、ルールセットを含むルールコンテナを示すセクション2516を有することができる。この例では、コンテナAAAのバージョンx.x、コンテナBBBのバージョンy.y、及びコンテナCCCのバージョンz.zは、ルールセットabcのバージョンxyzを含む。エディタインターフェース2500は、ビジネスプロセス管理ツール104に関連するツール及び情報を示すセクション2518を有することができる。例えば、セクション2518は、状態間でのタグの許容可能な遷移を指定するタグ付け仕様を編集するのに使用することができるツールを含むことができる。タグ付け仕様は、本明細書の後のセクションにおいてより詳細に説明する。
【0234】
エディタインターフェース2500は、ソースコード制御ツール106に関連するツール及び情報を示すセクション2520を有することができる。例えば、セクション2520は、ルールのバージョンを変更し、ルールの新規バージョンを生成し、又はルールの旧バージョンを削除するのに使用することができるツールを含むことができる。エディタインターフェース2500は、アプリケーションシミュレータ108に関連するツール及び情報を示すセクション2522を含むことができる。例えば、セクション2522は、入力記録を処理する、ルールを組み込むアプリケーションプログラムの実行をシミュレートした結果を示すことができる。エディタインターフェース2500は、共通ログデータオブジェクト116に関連するツール及び情報を示すセクション2524を含むことができる。例えば、セクション2522は、ルールセットabcのバージョンxyzに関連するログ情報を示すことができ、ここで、ログ情報はツール102、104、106、及び/又は108により書き込むことができる。
【0235】
幾つかの実施態様では、ビジネスプロセス管理インターフェース2722は、ユーザ90が、ドキュメントエディタ102、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116等のその他のモジュールの1つ又は複数にアクセスできるようにするインタラクティブアイテム(例えば、ボタン、メニュー、リンク、入力ボックス)を含むことができる。ソースコード制御インターフェース2724は、ユーザ90がドキュメントエディタ102、ビジネスプロセス管理ツール104、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116等のその他のモジュールの1つ又は複数にアクセスできるようにするインタラクティブアイテム(例えば、ボタン、メニュー、リンク、入力ボックス)を含むことができる。アプリケーションシミュレーションインターフェース2726は、ユーザ90がドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及び共通ログデータオブジェクト116等のその他のモジュールの1つ又は複数にアクセスできるようにするインタラクティブアイテム(例えば、ボタン、メニュー、リンク、入力ボックス)を含むことができる。共通ログインターフェース2728は、ユーザ90がドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及びアプリケーションシミュレータ108等のその他のモジュールの1つ又は複数にアクセスできるようにするインタラクティブアイテム(例えば、ボタン、メニュー、リンク、入力ボックス)を含むことができる。
【0236】
本明細書では、「統合」ユーザインターフェースは、ユーザが、(i)ドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108の2つ以上、又は(ii)上記ツール102、104、106、及び108が1つ又は複数の共通ログデータオブジェクト116を共有する上記ツール102、104、106、及び108の2つ以上に関連付けられた機能にアクセスできるようにするユーザインターフェースを指す。統合ユーザインターフェースは、1つ又は複数のコンピュータにより制御される1つ又は複数のディスプレイに示されるグラフィカルユーザインターフェースを指すことができる。統合ユーザインターフェースは、1つ又は複数のコンピュータで実行中のモジュールにより生成された情報を示すことができる。
【0237】
再び
図1を参照すると、ドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108のそれぞれは、情報を共通ログデータオブジェクト116に書き込むことができる。例えば、ソースコード制御ツール106は、共通ログデータオブジェクト116に、特定のユーザ識別子が関連付けられたユーザがリポジトリ110から特定のルールセットの特定のバージョンを借り出したことを指定する情報と、ルールセットが借り出されたタイミングを指定するタイムスタンプとを書き込むことができる。ドキュメントエディタ102は、共通ログデータオブジェクト116に、ルールセットを編集したユーザに関連付けられたユーザ識別子についての情報と、編集が実行されたタイミングを指定するタイムスタンプとを書き込むことができる。
【0238】
ビジネスプロセス管理ツール104は、共通ログデータオブジェクト116に、特定のユーザ識別子が関連付けられたユーザが、第1の状態から第2の状態へのルールセットの遷移を承認したことを指定する情報と、状態の遷移のタイミングを指定するタイムスタンプとを書き込むことができる。アプリケーションシミュレータ108は、共通ログデータオブジェクト116に、特定のユーザ識別子が関連付けられたユーザが、ルールセットを使用してアプリケーションプログラムを実行して、出力を生成したことを指定する情報と、ルールセットを組み込んだアプリケーションプログラムの実行のタイミングとを書き込むことができる。アプリケーションシミュレータ108は、共通ログデータオブジェクト116に、特定のユーザ識別子が関連付けられたユーザが、特定のルールセットの特定のバージョンを使用したアプリケーションプログラムの前の実行から生成された、記憶された出力を検索したことを指定する情報と、記憶された出力の検索のタイミングを指定するタイムスタンプとを書き込むことができる。上記は、ツール102、104、106、及び108が共通ログデータオブジェクト116に書き込むことができる情報の種類の単なる例である。ツール102、104、106、及び108は、他のタイプの情報を共通ログデータオブジェクト116に書き込むこともできる。例えば、誰がどのルールにアクセスしたか、誰がどのルールを編集したか、誰がどのルールを承認したか、及び上記イベントがいつ発生したかに関するログ情報は、例えば、法的要件に準拠し、又は潜在的なエラーの原因を特定するために、企業が後に監査を実行するのに役立つことができる。
【0239】
図4を参照すると、幾つかの実施態様では、アプリケーション開発システム2700は、例えば、通信ネットワーク、例えば、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、又はマルチプロセッサシステム内若しくはチップ上のネットワークを通して接続されたコンピュータサーバ又はプロセッサのグループを含む分散計算環境において実行される。異なるツールが異なるコンピュータ又はプロセッサで実行される。この例では、ドキュメントエディタ102は第1のコンピュータ2702で実行され、ビジネスプロセス管理ツール104は第2のコンピュータ2704で実行され、ソースコード制御ツール106は第3のコンピュータ2706で実行され、アプリケーションシミュレータ108は第4のコンピュータ2708で実行される。1人又は複数のユーザ90は、統合ユーザインターフェース112を通してドキュメントエディタ102、ビジネスプロセス管理ツール104、及びソースコード制御ツール106、及びアプリケーションシミュレータ108と対話する。ツール102、104、106、及び108が同じサーバコンピュータで実行されるか、それとも異なるサーバコンピュータで実行されるかに関係なく、統合ユーザインターフェース112は、バックエンドプロセスの複雑さを隠すユーザフレンドリなインターフェースを提供する。
【0240】
再び
図1を参照すると、幾つかの実施態様では、ドキュメントエディタ102は、例えば、後述するタグを使用してルールの状態を管理するビジネスプロセス管理ツール104にリンク又は統合することができる。ドキュメントエディタ102がルールを変更する場合、その変更はビジネスプロセス管理ツール104に伝搬し、ツール104の出力に影響を及ぼすことができる。幾つかの例では、ビジネスプロセス管理ツール104の出力は、ドキュメントエディタ102により行われた変更に応答して自動的に更新される。幾つかの例では、ユーザは、ドキュメントエディタ102により行われた変更をビジネスプロセス管理ツール104に伝搬されることを手動で要求する必要がある。
【0241】
同様に、ドキュメントエディタ102はソースコード制御ツール106にリンク又は統合することができ、それにより、例えば、ルールのバージョンがリリースに向けて承認された場合、ルールのそのバージョンはソースコード制御ツール106により記憶され、ソースコード制御ツール106は、ルールの様々なバージョンのマスタリポジトリ114を保持する。ドキュメントエディタ102は、ビジネスルールを組み込んだアプリケーションプログラムの実行のシミュレーションを可能にするアプリケーションシミュレータ108にリンク又は統合することができる。ドキュメントエディタ102がルールを変更する場合、その変更はアプリケーションシミュレータ108に伝搬され、シミュレータ108の出力に影響を及ぼすことができる。幾つかの例では、ルールの変更はアプリケーションシミュレータ108の実行をトリガーし、シミュレータ108の出力は自動的に更新される。幾つかの例では、ユーザは、シミュレータ108からの更新された出力を得るために、ルールがドキュメントエディタ102により変更された後、アプリケーションシミュレータ108の実行を手動で要求する必要がある。
【0242】
ビジネスプロセス管理ツール104は、ユーザが、統合ユーザインターフェース112を使用してルールの任意のバージョンを検索し、ルールの状態を決定し、ルールの状態を変更できるようにするソースコード制御ツール106にリンク又は統合することができる。ビジネスプロセス管理ツール104は、ユーザが統合ユーザインターフェース112を使用して、ルールを組み込んだアプリケーションプログラムの実行のシミュレーションを実行した後、ルールの状態を変更できるようにするアプリケーションシミュレータ108にリンク又は統合することができる。ソースコード制御ツール106は、ユーザが統合ユーザインターフェース112を使用して、ルールの任意のバージョンをアプリケーションプログラムに組み込み、ルールを組み込んだアプリケーションプログラムの実行のシミュレーションを実行できるようにするアプリケーションシミュレータ108にリンク又は統合することができる。
【0243】
統合ユーザインターフェース112は、ユーザ90が、一貫したルックアンドフィールを有する、例えば、同様の全体デザイン、配色、メニュー構造、及びフォント特徴を有するインターフェースを使用してドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116にアクセスできるようにする。
【0244】
統合ユーザインターフェース112は、ビジネスルールを処理する作業を簡易化することができる。例えば、
図5を参照すると、アプリケーション開発システム100は、ユーザにより処理する必要がある作業アイテムを示す、各ユーザの「作業空間」2540を実施することができる。作業空間2540は、ルールがなお編集中であるドラフトドキュメントであることを意味する「オープン」状態であるルールの第1のリスト2542を含む第1の作業キューを示すことができる。作業空間2540は、ルールがレビュー可能な状態であることを示す「提出済み」状態であるルールの第2のリスト2544を含む第2の作業キューを示すことができる。第2のリストは、ユーザによるレビュー可能な状態のルールを含む。作業空間2540は、ルールがユーザにより編集されており、他者によるレビュー可能な状態である「提出済み」状態であるルールの第3のリスト2546を示すことができる。作業空間2540は、ルールがユーザにより編集され、承認された「承認済み」状態であるルールの第4のリスト2548を示すことができる。
【0245】
以下、第1のユーザ90aが「reward_rule_1」という名称のルールを編集し、第2のユーザ90bがルールをレビューする一例について説明する。
図6Aを参照すると、例えば、第1のユーザ90aは、第1のユーザ90aが関連付けられた作業空間2550にログインすると、「オープン」状態であるルールの第1のリスト2542内にルール「reward_rule_1」を見る。
図6Bを参照すると、第1のユーザ90aはルール「reward_rule_1」をダブルクリックし、ドキュメントエディタ102を呼び出すことができ、エディタインターフェース2720を第1のユーザ90aに提示させ、第1のユーザ90aが選択されたルール「reward_rule_1」を編集できるようにする。エディタインターフェース2720は、編集中のルールの隣に現在状態「オープン」2552及び「提出済み」ボタン2554を示すことができる。第1のユーザが90aは、ルール「reward_rule_1」の編集を終えた後、「提出済み」ボタン2554をクリックして、ルール「reward_rule_1」の状態を「オープン」から「提出済み」に変更することができる。
【0246】
図6Cを参照すると、第1のユーザ90aがルール「reward_rule_1」の状態を「オープン」から「提出済み」に変更した後、ルール「reward_rule_1」は第1のユーザ90bの作業空間2550内のルールの第3のリスト2546に表示され、ルールが他者によるレビューを待っていることを示す。同時に、ルール「reward_rule_1」は、第1のユーザ90aにより提出されたルールのレビューを担当する第2のユーザ90bの作業空間2560内のルールの第2のリスト2544に表示される。
【0247】
例えば、第2のユーザ90bは、第2のユーザ90bが関連付けられた作業空間2560にログインし、ルール「reward_rule_1」がルールの第2のリスト2544内に表示され、レビューを待っていることを見る。
図6Dを参照すると、第2のユーザ90bは、ルールをレビューするために、ルール「reward_rule_1」をダブルクリックして、ドキュメントエディタ102を呼び出すことができる。エディタインターフェース2720は、ルールの隣に「シミュレート」ボタン2556、テスト入力ファイルを選択できるようにするテストファイル選択ツール2558、及びシミュレートするアプリケーションプログラムを選択できるようにするアプリケーションプログラム選択ツール2560を示すことができる。第2のユーザ90bは、テスト入力ファイル「test_input_1」及びアプリケーション「application_1」を選択し、「シミュレート」ボタンをクリックして、システム100にアプリケーションシミュレータ108を呼び出させることができる。アプリケーションシミュレータ108は、ルール「reward_rule_1」内のルールケースを複数の論理式に変換し、複数の論理式をコンピュータ実行可能コードにコンパイルし、コンピュータ実行可能コードをアプリケーションプログラム「application_1」に組み込み、アプリケーションプログラム「application_1」を実行し、「reward_rule_1」を使用して「test_input_1」ファイル内のテスト入力記録を処理し、出力データを生成する。
【0248】
エディタインターフェース2720は、ルール「reward_rule_1」の隣に「承認」ボタン2562及び「拒絶」ボタン2564を示すことができる。第2のユーザ90bは、シミュレーションからの出力データが正確であることに満足した場合、「承認」ボタン2562をクリックして、ルール「reward_rule_1」を承認し、ルールの状態を「提出済み」から「承認済み」に変更することができる。第2のユーザ90bは、ルールに問題があると思う場合、「拒絶」ボタン2564をクリックして、ルール「reward_rule_1」を拒絶し、ルールの状態を「提出済み」から「オープン」に変更することができる。
【0249】
第2のユーザ90bがルールを拒絶したと仮定する。エディタインターフェースは、ルール「reward_rule_1」の隣にテキスト入力ボックスを示し、第2のユーザ90bがコメントを書けるようすることができ、コメントは共通ログデータオブジェクト116に記憶される。この例では、第2のユーザ90bは、ルール「reward_rule_1」の拒絶理由が、リワードが高すぎるためであることを示すコメント「リワードが高すぎる」を書く。ルール「reward_rule_1」の状態が「オープン」に変更された後、ルール「reward_rule_1」は第1のユーザ90aの第1の作業キューに表示される。
【0250】
第1のユーザ90aは、ルール「reward_rule_1」が拒絶され、「オープン」状態に戻ったことを見る。システム100は、ルール「reward_rule_1」に関連するコメントを共通ログデータオブジェクト116から検索し、コメントをルール「reward_rule_1」の隣に表示する。第1のユーザ90aは、コメント「リワードが高すぎる」を見て、ドキュメントエディタ102を呼び出し、リワード額を下げるようにルールケースを改訂し、アプリケーションシミュレータ108を呼び出して、ルールの実行をシミュレートする。第1のユーザ90aは、アプリケーションプログラム「application_1」及びテストファイル「test_input_1」をシミュレーションに選択する。アプリケーションシミュレータ108は、ルール「reward_rule_1」内の改訂されたルールケースを複数の論理式に変換し、複数の論理式をコンピュータ実行可能コードにコンパイルし、コンピュータ実行可能コードをアプリケーションプログラム「application_1」に組み込み、アプリケーションプログラム「application_1」を実行し、改訂された「reward_rule_1」を使用して「test_input_1」ファイル内のテスト入力記録を処理し、出力データを生成する。アプリケーションシミュレータ118は出力データを保存する。第1のユーザ90aは、出力データをレビューし、リワードが正しく下げられたことを確認し、ルール「reward_rule_1」の状態を「オープン」から「提出済み」に再び変更する。
【0251】
第2のユーザ90bは、第1のユーザ90aがルール「reward_rule_1」を再提出したことを見て、アプリケーションシミュレータ108を呼び出し、リワードが正しく下げられたか否かをチェックする。第2のユーザ90bは、アプリケーションプログラム「application_1」及びテストファイル「test_input_1」をシミュレーションに選択する。アプリケーションシミュレータ108は、ルール「reward_rule_1」がアプリケーションプログラム「application_1」に組み込まれ、「test_input_1」ファイルがテスト入力に使用された前のシミュレーションが実行されたと判断する。アプリケーションシミュレータ108は、前に生成された出力データをロードし、その出力データを第2のユーザ90bに提示する。
【0252】
第2のユーザ90bは、前に生成された出力データをレビューし、リワードが正しく下げられたことを確認し、ルール「reward_rule_1」に伴う他の問題がないと判断し、ルールの隣にある「承認済み」ボタンをクリックする。ルール「reward_rule_1」の状態が「提出済み」から「承認済み」に変更された後、第1のユーザ90aは、作業空間2550において、ルール「reward_rule_1」が、承認済みであるルールの第4のリスト2548内に表示されているのを見る。
【0253】
第1及び第2のユーザによりルール「reward_rule_1」を処理する上記例では、ドキュメントエディタ102、ビジネスプロセス管理ツール104、及びアプリケーションシミュレータ108がユーザによりわずか少数のクリックで呼び出された。統合ユーザインターフェース112は、ルールを処理する際、ユーザがドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び/又は共通ログデータオブジェクト116に都合良くアクセスできるようにする、適切なインタラクティブ要素(例えば、ボタン、メニュー、リンク、テキスト入力ボックス)が提供されるように構成される。
【0254】
より詳細に後述するように、アプリケーション開発システム100は、
図7に示されるシステム2600等の非統合アプリケーション開発システムよりも優れた幾つかの改善を有する。例えば、非統合アプリケーション開発システム2600は、別個のツールが共通の組のユーザインターフェースを共有せず、共通ログデータオブジェクトを共有しないアプリケーションスイートとして別個のツールを一緒にバンドリングすることにより構築し得る。例えば、システム2600は、エディタインターフェース2602を通してアクセスされるドキュメントエディタ2610、ビジネスプロセス管理インターフェース2604を通してアクセスされるビジネスプロセス管理ツール2612、アプリケーションシミュレーションインターフェース2606を通してアクセスされるアプリケーションシミュレータ2614、及びソースコード制御インターフェース2608を通してアクセスされるソースコード制御ツール2616を含むことができる。非統合アプリケーション開発システム2600内の各ツール2610、2612、2614、及び2616は、それ自体のユーザインターフェース(それぞれ2602、2604、2606、及び2608)を有し、システム2600内の異なるツールの異なるインターフェースのルックアンドフィールは異なり得る。
【0255】
例えば、システム2600内の異なるツール(例えば、2610、2612、2614、2616)がファイルを不揮発性記憶装置に記憶する場合、異なるツールは、ツールに関連付けられた異なるローカルファイルディレクトリにファイルを記憶することができる。したがって、例えば、システム2600において、ドキュメントエディタ2610が第1のコンピュータ「Comp_1」で実行される場合、ドキュメントエディタ2610は、作業ドキュメントを「Comp_1\usr\doc_editor\working file\」等のローカルファイルディレクトリに保存することができる。システム2600では、ビジネスプロセス管理ツール2612が第2のピュータ「Comp_2」で実行される場合、ビジネスプロセス管理ツール2612は、作業ドキュメントを「Comp_2\usr\bpm\working_file\」等のローカルファイルディレクトリに保存することができる。システム2600では、ソースコード制御ツール2616が第3のコンピュータ「Comp_3」で実行される場合、ソースコード制御ツール2616は、作業ドキュメントを「Comp_3\usr\source_code_control\working_file\」等のローカルファイルディレクトリに保存することができる。システム2600では、アプリケーションシミュレータ2618が第4のコンピュータ「Comp_4」で実行される場合、アプリケーションシミュレータ2618は、作業ドキュメントを「Comp_4\usr\app_sim\working_file\」等のローカルファイルディレクトリに保存することができる。
【0256】
システム2600では、ドキュメントエディタ2610は、ビジネスプロセス管理ツール2612、ソースコード制御ツール2616、及びアプリケーションシミュレータ2614の作業ファイルがどこに記憶されているかを知らないことがある。同様に、システム2600では、アプリケーションシミュレータ2614は、ドキュメントエディタ2600、ビジネスプロセス管理ツール2612、及びソースコード制御ツール2616の作業ファイルがどこに記憶されているかを知らないことがある。したがって、システム2600では、ユーザは、必要なファイルにアクセスするために、異なる作業ファイルディレクトリ間をナビゲートするのに時間を費やす必要がある。システム2600では、ユーザは、異なるツールがその他のツールの作業ファイルディレクトリのロケーションを知るために、正しいファイルパスを設定する労力を費やす必要があり得る。
【0257】
比較により、システム100は、ユーザが、ルールを処理する際、様々なツール102、104、106、108、及び116の作業ファイルディレクトリの詳細を覚えている必要なく、様々なツールの作業ファイルに都合良くアクセスできるようにする統合ユーザインターフェース112を有する。
【0258】
例えば、アプリケーション開発システム100は、非統合システム2600と比較して他の利点を有することができる。例えば、アプリケーション開発システム100ではメモリ要件が下がり(システム2600と比較して)、その理由は、ツール102、104、106、及び108がメモリに記憶された同じデータにアクセスし、システム2600では必要であり得るデータ複製の必要性が低減するためである。
図7に示されるように、ドキュメントエディタ、ビジネスプロセス管理ツール、アプリケーションシミュレータ、及びソースコード制御ツールはそれぞれ、ファイル及びデータのコピーをローカルに記憶する。システム100は、ツール102、104、106、及び108がアクセス可能な共通ログデータオブジェクト116を有し、それにより、ツール102、104、106、及び108の1つにより共通ログデータオブジェクト116に入力された情報は、ツール102、104、106、及び108の別のツールによりアクセスすることができる。共通ログデータオブジェクト116をレビューすることにより、ユーザは、例えば、特定のルールコンテナ又はルールセットの特定のバージョンにアクセス、編集、承認、及び/又はシミュレートを行ったのが誰であるか及びそれらのイベントがいつ発生したかを特定することができる。これは、各ツールがそれ自体のログファイルに書き込むシステム2600よりも好都合である。システム2600では、ユーザは、特定のルールコンテナ又はルールセットの特定のバージョンにアクセス、編集、承認、及び/又はシミュレートを行ったのが誰であるか及びそれらのイベントがいつ発生したかについての情報を得るために、複数のログファイルにアクセスする必要がある。
【0259】
システム100は、統合ユーザインターフェース112により、ユーザがツール102、104、106、108、及び116の2つ以上の機能にアクセスすることができ、ツール102、104、106、108、及び116の2つ以上の出力は、例えば、並べて示されてユーザに提供することができる。ツール102、104、106、及び108の1つにより処理されたデータに行われた変更は、ツール102、104、106、及び108の別の1つにより生成される出力の更新を自動的にトリガーすることができる。
【0260】
例えば、
図2では、ユーザは、アプリケーションシミュレーションインターフェース2726を使用してテスト入力ファイル及びアプリケーションプログラムを選択することができる。ユーザは、エディタインターフェース2720を使用してルールを編集することができる。幾つかの実施態様では、ユーザがルールを変更する際、アプリケーション開発システム100は、アプリケーションシミュレータ108を自動的に呼び出して、ルールのルールケースを複数の論理式に変換し、複数の論理式をコンピュータ実行可能コードにコンパイルし、コンピュータ実行可能コードを選択されたアプリケーションプログラムに組み込み、選択されたアプリケーションプログラムを実行してルールを使用し、テスト入力記録を処理し、出力データを生成する。アプリケーションシミュレーションインターフェース2726は出力データをユーザに示す。これは、高速フィードバックをユーザに提供し、ユーザがルールケースに幾つかのパラメータ値を試して、最適な値を発見できるようにする。幾つかの実施態様では、アプリケーションシミュレータ108は、アプリケーションプログラムを実行する前、ユーザからの明示的な命令を待つように構成される。
【0261】
図1では、ドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及びアプリケーションシミュレータ108は、別個のモジュールとして表され、これは単なる一例である。幾つかの例では、ツール102、104、106、及び108の2つ以上は、1つのユニット又はモジュールとして構成することができる。幾つかの例では、ツール102、104、106、及び108は全て、1つの統合モジュールとして実施することができる。幾つかの例では、ツール102、104、106、及び108のそれぞれは、2つ以上のモジュールにより実施することができる。幾つかの例では、幾つかのモジュールを使用し得、各モジュールはツール102、104、106、及び/又は108の機能の一部を実施する。ツール102、104、106、及び108のそれぞれ、全て、又は幾つかの部分は、ソフトウェア、ハードウェア、又はソフトウェアとハードウェアとの組合せで実施し得る。
【0262】
以下、まず、ビジネスルールを組み込むことができるグラフベースの計算を実行するシステム(
図8)、ビジネスルールを処理するユーザインターフェースにおいてオブジェクトの生成に使用することができるモジュール、及びこれらのモジュールの使用例(
図9及び
図10)、ビジネスルールの例(
図11A)、ビジネスルールを組み込むことができる計算グラフの例(
図11B)、ビジネスルールを処理するユーザインターフェースの例(
図12~
図16)、ビジネスルールを処理する際にオブジェクトをリンクするプロセスの例(
図17)、ビジネスルールについての情報を有する仕様をタグ付けする例(
図18及び
図20)、タグを使用して、ビジネスルールを管理する例(
図19A、
図19B、
図19C)、ビジネスルールを開発するライフサイクルの例(
図21)、ビジネスルールについての情報を有するリリースタグの例(
図22)、及びアクティビティログの例(
図23A及び
図23B)について説明する。
【0263】
次に、アプリケーション開発システム100のモジュールについて更に詳細に説明し、アプリケーション開発システム100をいかに使用して、ビジネスルールを開発することができるかを説明し、ドキュメントエディタ102及びソースコード制御ツール106がいかに、ユーザがルールの異なるバージョンに容易にアクセスし編集し、ルールの異なるバージョンを比較できるようにする統合ユーザインターフェースを提供することができるかを説明する(
図24及び
図25)。また、マーケティング又はビジネスキャンペーンで使用されるビジネスルールの開発に当たり、アプリケーション開発システム100をいかに使用することができるかの例(
図26~
図29)も説明する。
【0264】
グラフベースの計算
図8は、グラフベースの計算を開発、実行、及び管理する計算システム120の部分の相互関係を示す概略ブロック図である。グラフベースの計算は、有向グラフにより表される「データフローグラフ」を使用して実施され、グラフ中の頂点は構成要素(例えば、データファイル、プロセス等)を表し、グラフ中の有向リンク又は「エッジ」は、構成要素間のデータのフローを表す。幾つかの例では、グラフィック開発環境(GDE)122は、実行可能グラフを指定し、グラフ構成要素のパラメータを定義するユーザインターフェースを提供する。GDE122は、リポジトリ124及び並列動作環境126と通信する。リポジトリ124及び並列動作環境126には、ユーザインターフェースモジュール128及び外部データ記憶装置130も結合される。
【0265】
リポジトリ124は好ましくは、グラフベースのアプリケーションの開発及び実行並びにグラフベースのアプリケーションと他のシステム(例えば、他のオペレーティングシステム)との間のメタデータの交換をサポートするように設計されたスケーラブルなオブジェクト指向データベースシステムである。この構成では、リポジトリ124は、企業メタ環境(EME:Enterprise Meta Environment)と呼ばれ、文書化、記録フォーマット(例えば、表中の記録のフィールド及びデータ型)、変換関数、グラフ、ジョブ、モニタリング情報等を含め、1つ又は複数のタイプのメタデータを記憶可能である。特に、EME124は、グラフベースの計算に関連付けられたメタデータを記憶し得る。この状況では、各コンピュータプログラムは、データフローグラフ又は単にグラフとも呼ばれる計算グラフを使用して実施されるものとして見なすことができる。グラフは、通信して(例えば、フロー又はエッジにより)データフローを可能にし得る1つ又は複数の構成要素(又は頂点)を含む。幾つかの構成では、グラフは並列処理環境126において実行することができる。
【0266】
データ記憶装置として実施されるため、EME124は、グラフの開発における変更を追跡し、統計解析及び依存解析を実行し、グラフの開発に関するメタデータを管理し、他の同様の機能を提供することができる。一般に、グラフ関連のメタデータの記憶により、データインパクト解析が可能になり、それにより、グラフにおいてデータがいかに変更されているか及びそれらの変更が1つ又は複数の他のグラフに与えるインパクトの視覚的な意味をユーザに提供する。さらに、EME124は、グラフの複数のバージョンを記憶できるようにし得、それにより、例えば、開発中、コードの変更及び調整を追跡し得る。EME124はまた、外部データ記憶装置130に記憶されたデータを含め、計算システム120により処理すべき実際のデータを表すデータオブジェクトを記憶する。
【0267】
並列動作環境126は、GDE122において生成されたデータフローグラフの仕様を受け入れ、グラフにより定義された処理論理及びリソースに対応する実行可能命令(例えば、コンピュータ命令)を生成する。次に、並列動作環境126は通常、複数のプロセッサ(同種である必要はない)でこれらの命令を実行する。
【0268】
ユーザインターフェースモジュール128は、EME124のコンテンツのブラウザベースのビューを提供する。ユーザインターフェースモジュール128を使用して、ユーザは、オブジェクトを閲覧し、新規オブジェクトを生成し、既存のオブジェクトを変更する等し得る。例えば、ユーザインターフェースモジュール128は、ユーザがオブジェクト及びEME124に記憶されたオブジェクトについての情報をサーチし閲覧するブラウザ画面を生成し得る。
【0269】
EME124に記憶されるメタデータは、グラフ構成要素及び計算グラフを構築するための他の機能オブジェクトを含め、グラフベースのアプリケーションのデータオブジェクトを含み得る。1つ又は複数のタイプのメタデータをEME124に記憶することもでき、例えば、「技術的」メタデータ(例えば、アプリケーション関連ビジネスルール、記録フォーマット、及び実行統計)並びに「企業」又は「ビジネス」メタデータ(例えば、ジョブの機能、役割、及び関係のユーザ定義の文書化)及び他の同様のタイプを記憶し得る。
【0270】
データオブジェクトの形態でEME124に記憶された情報により、アプリケーション及びそれらのアプリケーションにより生成されたデータに関する様々な種類の解析が可能になる。例えば、ユーザは、所与の値の由来、出力値がいかに計算されたか、及びどのアプリケーションがデータを生成し、どのアプリケーションがデータに依存するか等のデータ系統についての問いへの答えを得ることができる。開発者は、提案された変更の結果を理解することができる(例えば、この構成要素が変更された場合、他の何が影響を受けるか。このソースフォーマットが変更された場合、どのアプリケーションが影響を受けるか)。ユーザ又は開発者はまた、どのユーザ又は開発者グループが特定のデータセットの制作及び使用を担当するか又は特定のアプリケーションへの最新の更新が何であるか等の技術的メタデータ及びビジネスメタデータの両方に関わる問いへの答えを得ることもできる。
【0271】
EME124はまた、記憶されたデータのステータスを追跡することが可能でもある。例えば、1つ又は複数のデータオブジェクトの複数のバージョンを追跡し記憶し得、それにより、時間の経過に伴って(例えば、1週間、1ヶ月、又は1年にわたり)オブジェクトの状態を調査し、それをオブジェクトの現在状態と比較できるようにする。例えば、EME124は、トレンド解析(例えば、データの成長速度)及び容量計画(例えば、そのアプリケーションが実行にかかる時間、そのアプリケーションが生成するデータ量、及びデータ生成速度、アプリケーションが消費するリソースが何であるか。別のサーバを追加する必要があるときはいつか。)を可能にするジョブ追跡又は実行情報を収集し得る。
【0272】
ユーザは、ユーザインターフェースモジュール108を通して、記憶されたデータオブジェクトに含まれ、記憶されたデータオブジェクトに関連付けられた情報を閲覧(及び任意選択で編集)することができる。一実施態様では、ユーザは、1つ又は複数の「ビュー」を定義することができ、これは、ブラウザページにおいてデータオブジェクトの関連サブセットについての情報を提供する。「ビュー」は、オブジェクト間の関係に基づいて1つ又は複数のデータオブジェクトを選択するシンタックスを使用して定義される。
【0273】
図9に示されるように、EMEブラウザインターフェース202は、EME124内のユーザインターフェースモジュール128により生成し得る。EME124において特定のオブジェクトについての詳細を表示するために、EMEブラウザインターフェース202は、オブジェクト(例えば、オブジェクトA)に含まれる情報を使用してブラウザページ206(例えば、ハイパーテキストマークアップ言語(HTML)形式を含む)の少なくとも一部を生成し得る。例えば、
図10に示されるスクリーンショットでは、「example1」という名称のドキュメントオブジェクトについての詳細が表示される。
図9に戻ると、このブラウザページ206生成の一環として、オブジェクト(例えば、オブジェクトA)からの情報を使用し、レンダリングされるページ又はページの一部を返す要素レンダラー204が呼び出される。ページは、オブジェクトAに関連付けられた情報を表示し、ユーザ対話を受信するための入力要素を含む表示要素を含め、様々なブラウザ形式要素を含み得る。この特定の構成では、ボタン208は、ユーザ対話を受信可能な要素として提供されるが、様々なユーザ対話のいずれかを受信するために、他の入力要素を使用することもできる。例えば、メニュー(例えば、ドロップダウンメニュー)、チェックボックス、及び他の同様のタイプの要素を利用し得る。一般に、要素レンダラー204は、特定のタイプの任意のオブジェクトに対して実行し得る特定のアクティビティに通常提議される1つ又は複数のソフトウェアプログラム又はルーチンにより実施される再使用可能な論理を指す。したがって、要素レンダラー204は、オブジェクトに対してどの動作が実行されるかを決定し得、続けて、どの入力要素(例えば、ボタン208)をブラウザページ206(ブラウザインターフェース202に表示される)にレンダリングすべきかを決定し得る。ユーザ動作と対応する要素(例えば、ボタン)との関係は一般に、要素レンダラー204内で指定される論理により提供される。要素レンダラーが、複数の動作又は異なる選択肢をサポートするように構成されていた場合、ユーザは、「閲覧」への包含を指定する際、パラメータをレンダラーに渡し得る。
【0274】
一構成では、要素レンダラー(「file_upload.py」と呼ばれる)は、新規ドキュメントをEME124に追加するか、又は既存のドキュメントを置換することができる。
図10に示されるスクリーンショットを参照すると、テキスト「ドキュメント取り替え」の右側にある要素は、要素レンダラー204により生成されている。しかしながら、どの動作をとるかは、「閲覧」の一環として要素レンダラー204を構成するときに指定し得る。一例では、関数呼び出し要素レンダラー(例えば、「file_upload.py」)は、デフォルトにより、新規ドキュメントをEME124に追加し得る。関数呼び出し要素レンダラー(例えば、「action=replace」であるfile_upload.py)はまた、現在のドキュメントを置換し得る。別の例では、複数のパラメータをそのような関数呼び出し(例えば、「action=add&rule_name=my_doc_oid」であるfile_upload.py)に指定し得る。特定の要素を要素レンダラーにより表示すべきである(例えば、ボタン208)と判断するために、レンダラーに関連付けられた論理は、提供された(及び「閲覧」の一部に関連付けられた)パラメータを使用し得る。要素レンダラー204及びそれに関連付けられたプログラムはまた、通常、EME104に記憶される。プログラムは1つのオブジェクト専用ではないため、そのようなプログラムは、EME124に提示された複数のオブジェクトに適用し得る。
【0275】
ブラウザに表示されるHTML形式の可視部分(例えば、ファイル「閲覧」制御ボタン302及び「提出」ボタン304)に加えて、ファイルの提出(又は別の同様の動作)中、HTML形式内に隠された情報を使用することもできる。一般に、ボタン208が押下される(ユーザ対話を介して)と、状況又は関連付けられた機能(例えば、
図10における「提出」ボタン304)に関係なく、スクリプト210が呼び出される。スクリプト210は、様々なタイプのユーザ要求(例えば、HTTP固有サービス)に応答し得、そして、EME124においてサーバ側処理を提供し得る。EME124におけるオブジェクトのブラウザページ(例えば、ブラウザページ206)は、特定のオブジェクト又は1組のオブジェクトに基づいて描き得る。例えば、ユーザがEME124に記憶された1つ又は複数のオブジェクトを選択したことに応答して表示されたブラウザページは、選択されたオブジェクトに関連付けられた情報又は様々な特徴のレンダリングであり得る。スクリプト(例えば、スクリプト210)は、コンテンツ及び/又はレイアウトがオブジェクトに依存するページ又はページの要素のカスタムレンダリングを生成可能であり得る。幾つかの構成では、要素レンダラー204は、特定のオブジェクトに基づいてブラウザページの1つ又は複数の要素をレンダリングし得、ブラウザページの他の部分は、異なるオブジェクトに基づく要素の1つ又は複数のレンダリングを含み得る。スクリプト210により様々なタイプの入力、例えば、オブジェクト(例えば、オブジェクトA)に関連付けられた情報、ユーザ提供情報(例えば、ブラウザページ206を通して入力される)、及び他のタイプの情報を使用することができる。実行中、スクリプト210は、EME124内で1つ又は複数の他のオブジェクトを生成し得る。例えば、第2のオブジェクトB 212をEME124内に生成し得るが、複数のオブジェクトを生成してもよい。1つ又は複数のオブジェクトの生成と併せて、スクリプト210は、オブジェクト間にリンク(関係と呼ばれる)を確立することもできる。例えば、リンク214は、オブジェクトB 212とオブジェクトAとの間に確立し得る。そのようなリンクを確立するために、1つ又は複数の技法を使用し得、例えば、コマンドを呼び出し得る(例えば、EME124に関連付けられたコマンドラインインターフェースを使用して)。その制作に関連付けられたオブジェクト(例えば、オブジェクトA)にリンクされることと併せて、オブジェクトB 212は、オブジェクトAのレンダリングされた1つ又は複数の要素(例えば、ボタン304)に関連付けられたスクリプト210により決まる他のオブジェクトにリンクすることもできる。
【0276】
この構成では、EME124は、オブジェクト指向リポジトリであり、オブジェクト及び関連付けられた関係を含む。幾つかの例では、新たに生成されたオブジェクトは、表示中のブラウザページに対応するオブジェクト(又は複数のオブジェクト)にリンクし得る。他の場合、オブジェクト(例えば、既存のオブジェクト)へのリンクは、HTML形式に提供される情報から決定し得る。幾つかの例では、オブジェクトA及びBはEME124においてリンクし得(例えば、リンク214)、リンクは、ナビゲーションのためにブラウザページ206にリンクとして表示し得る。そのような技法は1つ又は複数の利点を提供し、例えば、EME124においてどのオブジェクトにリンクするかについての知識は、自動的に決定されるものとして見なすことができる。EME124内の各オブジェクトは「ドメイン」に記憶し得、ドメインは、オブジェクトがEME124内の他のオブジェクトに関連付けられる関係についての情報を含む。リンク(例えば、リンク214)の1つを生成する場合、オブジェクトを関連付ける(例えば、オブジェクトがポイントする)ドメインを示す情報をドメインに追加し得る。スクリプト210はまた、例えば、逆関係(例えば、別のオブジェクトがそれをポイントすること)を記録するように標的オブジェクトのドメインを更新することもできる。リンク214等のリンクは、特定のオブジェクト(例えば、オブジェクトA又はB)に関連するEME124に記憶されたドキュメントの幾つか又は全てで示すことができる。幾つかの例では、スクリプト210は、ユーザの入力に関連付けられた許可をチェックして、新規オブジェクトの生成が許可されているか否かを判断し得、許可されていない場合、ユーザに通知することができる。
【0277】
幾つかの構成では、ユーザはまた、新規ブラウザページ又は現在のページ(例えば、ページ206)をリフレッシュしたものに向けられ得、それにより、実行された動作の結果(例えば、スクリプト210により実行された動作効果)を示すこともできる。幾つかの例では、複数のユーザは、EME124に概ね同時に変更を行い得、それにより、リフレッシュにより変更を表示させる。別の例では、スクリプト210の実行に起因して、新規オブジェクト(又は複数の新規オブジェクト)が生成され得、幾つかの属性が設定されており(例えば、直接ユーザ編集を介して)、新規オブジェクト(又は複数のオブジェクト)は、幾つかの既存のオブジェクトにリンクされていることがある。リフレッシュに基づいて、新たに生成されたオブジェクトの詳細ビューを表示し得る。このビューは、属性を編集する際、ユーザにより供給された情報をユーザに提示し得る。例えば、オブジェクトのビューは、オブジェクト間のリンクを利用して、EME124内の他のオブジェクトにナビゲートし、追加の情報を集めることができる。ナビゲーションは、開始オブジェクトから開始オブジェクトにリンクされた別のオブジェクト(例えば、リンクの方向に基づいて「上流」又は「下流」)への「ウォーク」動作を実行することを含み得る。複数のウォーク動作を連続リンクを介して実行して、1つ又は複数の関連するオブジェクトにナビゲートし得る。このウォークの結果として、リフレッシュ後、追加の情報をユーザに提示することができる。
【0278】
ユーザはまた、新規ブラウザページ又は現在のページ206をリフレッシュしたものに向けられて、EME124に記憶すべき追加の情報を促すこともできる。例えば、新たに生成されたオブジェクト(例えば、オブジェクトB)又は関係リンクを経由してナビゲートされることにより関連する異なる1つ若しくは複数のオブジェクトに関連付けられた情報を供給するようにユーザに促し得る。新たに生成されたオブジェクトの自動リンクの利点は、オブジェクトのコンテキストが、ユーザとの続く対話の改善及び強化に役立つことができることである。例えば、ユーザは、組織の複数の部門の1つ(例えば、部門のデータオブジェクトに基づく)に関連付けられたブラウザページに、従業員を表すデータオブジェクトを生成する入力を提供し得る。ページをリフレッシュすると、例えば、追加された従業員の監督者を表すデータオブジェクトを選択するための選択肢メニュー(例えば、ドロップダウンメニュー)を提供することができる。スクリプト210が、従業員データオブジェクトを部門データオブジェクトに自動的にリンクする場合、メニュー内の選択肢のリストは、データオブジェクトがその部門のメンバとして部門データオブジェクトにリンクされている既存の従業員に制限することができる。
【0279】
要素レンダラー204は、例えば、EME124に記憶されるpythonスクリプト又はKornシェルスクリプト等の高水準コンピュータプログラミング言語を使用して実施し得る。実行の結果は、閲覧設計に依存するブラウザページ206の断片であり、EMEブラウザインターフェース202により生成されたコンテンツの残りの部分に挿入することができる。要素レンダラー204は、「ビュー」の一要素のHTMLを生成し得る。幾つかの例では、ビュー要素は、コマンドラインインターフェース(図示せず)を使用して順次構成される。要素レンダラー204により返されたブラウザページ断片は、幾つかの場合では、1つのボタン208のように単純に表示され得るが、他の場合、ページ部分はデータ入力のための他の形態の要素を含み得る。
図10に示される例は、ファイル「閲覧」入力要素302を有する。
【0280】
上述したように、ユーザがクリックしてファイルを提出すると、通常、スクリプト210が呼び出される。スクリプト210は、pythonスクリプトとして又は別の同様の形式で実施し得る。幾つかの例では、スクリプト210により実行される動作は、以下のステップを通して実行し得る。スクリプト210はまず、EME124へのコマンドラインインターフェースを使用して、EME124内で新規オブジェクト(例えば、オブジェクトB 212)を生成し得る。
図10に示される例を参照すると、アップロードに関連付けられて、新規オブジェクトは、ユーザがデスクトップコンピュータからアップロードしたファイルであり得る。他の場合、新規オブジェクトはまず、全体的に空であり得るが、他のメタデータ又は属性を添付することができるプレースホルダとして生成し得る。次に、スクリプト210は、新規オブジェクトをEME124内の既存のオブジェクト(例えば、オブジェクトA)にリンクし得る。最後に、スクリプト210は、ユーザを新規ページに向け、又はユーザのために元のページをリフレッシュし得る。ユーザが新規ページに向けられる場合、そのページは通常、新たにリンクされ生成されたオブジェクトのウェブベースのエディタである。
【0281】
オブジェクトをリンクする例
実施例1:ユーザフィードバック
一実施態様では、EME124内の任意のオブジェクトのボタン(例えば、ボタン208)をブラウザページ(例えば、ブラウザページ206)に表示することができる。ユーザがボタンをクリックすると、スクリプト(例えば、スクリプト210)は、実行されて新規備考オブジェクトを生成するように構成し得る。スクリプトは、新規備考オブジェクトをポイントする元のオブジェクト(例えば、オブジェクトA)のリンクを生成することもできる。生成された新規備考オブジェクトは、元のオブジェクトについてのものであると仮定し得る。幾つかの例では、新規備考は元のオブジェクトの一環として記憶されないことがある。したがって、この備考を後に見つけ表示するために、元のオブジェクトと新規備考オブジェクトとの間にリンク又は関係を生成し得る。それにより、オブジェクトに関連する全ての備考又はオブジェクトの幾らかより大きな集まりを表示するブラウザページ又はリポートを設計し得る。例えば、この実施態様は、ユーザがプロジェクト内のオブジェクトを開始したことのフィードバックを提供することが可能であり得る。さらに、ユーザは、新規備考オブジェクトのテキストコンテンツを入力するように、エディタにリダイレクトされ得る。
【0282】
幾つかの実施態様では、上述した特徴を使用して、ビジネスルール又はビジネスルールのパッケージの備考を生成することができる。ルールが何故、承認又は拒絶されたのかについての備考を生成することができる。備考が生成されると、備考は関連するルール又はルールのパッケージに自動的にリンクされる。
【0283】
実施例2:ファイルアップロード
この例では、要素レンダー204は、ファイル閲覧制御(例えば、サーバにアップロードするためのコンピュータシステム上のユーザ選択可能ファイル)を含むフォーム及びボタン(例えば、ボタン208)をEMEオブジェクトのブラウザページに表示するのに使用される。幾つかの例では、要素レンダラー204は、一意の識別子が関連付けられたブラウザページ要素を生成し、複数のファイルアップロードフォームを同じブラウザページに表示できるようにする。ユーザが閲覧して、EME124に存在するプロジェクトの一部であるオブジェクトに関連するファイル(例えば、Excelスプレッドシート)を選択した(及びボタンをクリックした)後、スクリプト210が呼び出されて、ファイルを新規ドキュメントオブジェクトとしてEME124にロードする。スクリプト210に関連付けられた演算は、元のブラウザページに対応するオブジェクトから新規ドキュメントオブジェクトへのリンクを生成し得る。続けて、ナビゲーション及び報告のために、オブジェクトがリンクされたドキュメントのリストを示す、元のオブジェクトのブラウザページにユーザをリダイレクトし得る。
【0284】
実施例3:ビジネスルール環境(BRE)でのルールセットの水平バージョニング
一実施態様において、ビジネスルール(例えば、メタデータのサブセットの形態)はEME124に記憶し得る。様々なタイプ及び態様のビジネスルールを実施し得、例えば、ルールは、「Editing and Compiling Business Rules」と題する米国特許第8,069,129号、「Editing and Compiling Business Rules」と題する米国特許第8,386,408号、「Editing and Compiling Business Rules」と題する米国特許第8,380,651号、「Editing and Compiling Business Rules」と題する米国特許第9,002,770号、及び「Editing and Compiling Business Rules」と題する米国特許第9,589,232号に記載されるものと同様であり得る。上記特許(米国特許第8,069,129号、米国特許第8,386,408号、米国特許第8,380,651号、米国特許第9,002,770号、及び米国特許第9,589,232号を含む)の全体内容は参照により本明細書に援用される。各ビジネスルールは、別個のEMEオブジェクトに格納することができる。ビジネスルールは、あるフォーマットから別のフォーマットへのデータの変換、データについての決定、又は1組の入力データに基づく新規データの生成の1組の基準として表現することができる。例えば、
図11Aにおいて、フライト予約システムにおける記録402は、乗客の名前404、乗客の今年度の飛行マイル数406、乗客のチケットのクラス408、及び乗客の座席の行410を示すフィールドの値を含む。ビジネスルールは、そのような乗客が特定の搭乗グループ(例えば、搭乗グループ1)に割当てられるべきことを示し得る。ビジネスルールは一般にユーザに理解され易い(例えば、「ファーストクラスの乗客はグループ1である」)が、そのような情報は計算デバイス(例えば、コンピュータシステム)により認識され処理される1つ又は複数の他の形式に変換する必要があり得る。
【0285】
特定の一構成では、グラフベースの計算環境においてビジネスルールを実施するために、1つ又は複数のデータソース(例えば、入力データセット400)から記録402等の入力記録を受信する変換式412を生成し得る。「変換式」という用語は、入力データを出力データに変換する、ソフトウェアモジュール又はデータ処理エンティティ等のメカニズムを指し、ここで、データの変換は、例えば、データのフィルタリング、ソート、クレンジング、統合、及び抽出を含み得る。データの変換は、データ処理エンティティによる任意のタイプのデータ操作であることができる。変換式は、この情報を、乗客の名前404及び乗客がどのグループに割当てられているか(例えば、グループ418)を示す出力記録、例えば記録414に挿入し得る。これに対応して、記録414を出力データセット420に挿入し得る。この例では、例示的な記録を示すデータセット(例えば、データセット420)が示されているが、一般に、データセットは任意の数及びタイプの記録を含み得る。幾つかの構成では、例えば、(データセットからの)データはグラフに流入又はグラフから流出し得るため、入力データセット及び出力データセットはデータストリームとも呼ばれ得る。
【0286】
変換式は、データ処理構成要素を有し、データフローを表すリンク要素により接続し得るグラフベースの計算に組み込み得る。例えば、
図11Bに示す計算グラフ430は、1つ又は複数の計算の入力を提供する2つのデータセット432、434(例えば、高利用頻度乗客データ及びフライト予約データ)を含む。フォーマット構成要素436、438は、例えば、結合されて(例えば、結合構成要素440により)出力データセット442(追加の処理演算と使用し得る)となる共通にフォーマットされたデータセットを生成するように、同様又は異なるタイプの調整を使用して入力データをフォーマットする。変換式はそれ自体、グラフ430内にある等のグラフベースの計算であってもよく、又はグラフ430を構成する個々の構成要素436、438、及び440等のグラフの構成要素内で実施されてもよい。
【0287】
幾つかの構成では、1つ又は複数の技法を使用して、変換式の生成を簡易化し得る(例えば、非技術系のユーザの場合)。例えば、実行すべき1つ又は複数の変換式をコンピュータシステムに提供する、ユーザが1組のビジネスルール(ルールセットと呼ばれる)を馴染みやすいフォーマットで入力するためのツールを提供し得る。例えば、ルールセットは、1つの変換式を生成する1組のルールと見なし得る。ルールは、入力に応じてルールの異なる出力に異なる値を計算する1つ又は複数のルールケースで構成し得る。ルールはまた、追加の出力又は代替の出力を生成し得る複数のルールを含んでもよい。ルールセットはまた、「被包含」ルールセットとも呼ばれ得る他のルールセットを含んでもよい。
【0288】
例えば、ルールセットは、取引、例えば、クレジットカート取引の記録を入力として受信し得、出力としてアラートメッセージ、例えば、不正取引を示すメッセージ又は残高超過をユーザに警告するメッセージを生成し得る。ルールセットは、入力記録の1つ又は複数のフィールドが公式のパラメータである1つ又は複数の数式を含み得る。
【0289】
EME124内のプロジェクトについて、ブラウザページはプロジェクトに含まれる幾つか又は全てのルールセットを列挙し得る。この場合、ブラウザページは、特定のオブジェクト、例えば、特定のプロジェクトに関連する詳細を表示し得る。EME124におけるプロジェクトは通常、様々な技術的メタデータを含む。この例では、ブラウザページは、プロジェクトに含まれる全てのルールセットを列挙し得る。このリストにおける各ルールセットに対して、例えば、同じ要素レンダラー204を介して、幾つかのボタン又は他のタイプの要素を表示し得る。
【0290】
図12を参照すると、一連の行が例示的なリストに含まれ、リストの各行は4つのボタン(例えば、ボタン502、504、506、及び508)を含む。表示された各ボタンは、異なる選択肢を有する要素レンダラー(例えば、要素レンダラー204)を呼び出すことにより提供される。特に、ボタン502、504、506、及び508はそれぞれ、ルールセット「ルールセットを昇格」、「ルールセットを降格」、「新マイナーバージョン」、及び「新メジャーバージョン」に基づいて実行することができる異なる動作を示す。ルールセットの昇格には、特定のルールセットを開発フェーズからテストフェーズへ遷移させること及び最終的に生産フェーズ(例えば、データ処理のためにユーザがルールセットを実行し得る)へ遷移させることが広く関連付けられ得る。これらの4つの動作は、開発ライフサイクル中にルールを昇格又は降格するため、場合によってはルールの異なるバージョン(例えば、新メジャーバージョン、マイナーバージョン等)を生成するのに使用し得る。そのような機能は、ある時間期間にわたりルールセットを進化させながら、ルールセットの前のバージョン(比較的古いことがある)へのアクセス(及び使用)を可能にする。例えば、既存のルール又はルーセットを変更するのではなく、ルール又はルールセットの新規コピーを生成し、調整し、新しいバージョン番号を割り当て得る。
【0291】
幾つかの構成では、要素レンダラー(例えば、要素レンダラー204)は、ルールセットに関連付けられた1つ又は複数の許可に基づいて、特定のボタンを表示すべきか否かを判断するように構成し得る。例えば、許可には、ルールセットの変更及びその現在の開発ライフサイクルを関連付け得る。一例として開発ライフサイクルを参照すると、そのライフサイクルにおける異なるフェーズは開発(「Dev」)、テスト(「Test」)及び生産(「Prod」)であり得る。したがって、要素レンダラー(例えば、要素レンダラー204)の論理は、これら3つのフェーズを順次(その特定の順序で)経験し得る。「Prod」フェーズに到達すると、ルールセットはそれ以上昇格されない。同様に、「Dev」フェーズでは、ユーザはルールをそれ以上降格させない。要素レンダラー204は、ユーザがボタンをクリックする場合に表示することができる確認テキストを予め計算することもできる。すなわち、ユーザがボタンの1つをクリックすると、テキストを含むポップアップグラフィックを表示し、動作を確認し得る。例えば、1行目のボタン502をクリックすると、「あなたは本当にルールセット-1-DevをTestに昇格させたいですか?」を示すテキストを有するダイアログボックスをポップアップし得る。そのような表示を提供することにより、ユーザは動作を確認し得、それにより、意図しない変更がなされる(意図しないクリックからの)確率が下がる。
【0292】
加えて、ユーザがボタンの1つをクリックすると、スクリプト210が呼び出されて、対応するルールセットがコピーされる。既に内容が含まれていれば、ルールセットはコピーされ、続く変更の開始点として使用し得る。代替的には、元のルールセットに変更を行い得るように、コピーはバックアップとして機能し得る。ルールセットの新規コピーの名称は、ルールの元の名称及び動作に基づいて決定し得る。ユーザが後に区別することができるように、異なる名称を使用することもできる。例えば、ルール名が元々「Dev」で終わり、ルールが昇格される場合、新規ルール名は「Test」で終わり得る。述べたように、異なる段階で異なるアクティビティがルールに対して実行中である。「Dev」段階にある場合、開発者による変更中であると見なすことができる。「Test」段階にある場合、ルール又はルールセットは一般に、適切な挙動についてチェック中であり、通常、変更されないままである。「Prod」段階では、ルールセットは、例えば、その意図される目的で使用中であり、通常、変更されない。ルールセットが「Dev」から「Test」に昇格するとすぐに、開発者は新しい変更を開始し得るため、異なる段階及びバージョンが必要であり得る。新規名称に基づいて、スクリプト210は、ルールセット内に記憶されたいくらかの情報を更新する必要があり得る。幾つかの例では、ルールセットは、コードファイルの名称についての情報(例えば、
図11Aにおけるグラフの変換式412)を含む。幾つかの例では、このコードファイルはルールセット後に名付けられる。したがって、ルールセットが新しい名称で生成される場合、生成されたファイルの名称も更新される。続けて、新規ルールを含む(及び実行された動作の結果を見ることが可能である)ように更新されたプロジェクト内のルールセットのリストにユーザをリダイレクトし得る。例えば、これらの任意の動作がルールセットに対して実行される場合、ユーザは新規ルール又は変更されたルールのブラウザページに運ばれる。
【0293】
実施例4:オブジェクト作成ウィザード
図13を参照すると、例えば、ユーザ対話に基づいて1つ又は複数のオブジェクトを生成する追加の演算を実施し得る。一構成では、1つ又は複数のオブジェクトを生成するために、一連のステップを介してユーザから情報を集め得る。例えば、ユーザ対話(例えば、ユーザがボタンのグラフィカル表現をクリックする)は、一連のステップを通してユーザをガイドするウィザード(例えば、一連のダイアログ)又は別のタイプのUI画面シーケンスを開始し得る。シーケンスを通して進みながら、例えば、1つ又は複数のオブジェクトの生成に使用される情報が、例えば、ユーザから収集される。収集された情報は、他の演算に使用することもでき、例えば、収集された情報は、1つ又は複数のオブジェクトに関連付けられた属性を表し得、1つ又は複数のオブジェクトの変更に使用し得る。
【0294】
図に示されるように、画面600の一部は、例示を目的として、データセット(例えば、表)内にフィールド(例えば、列)を含む。この例では、データマスキングルール(例えば、難読化、非特定化等)が定義され、フィールドに関連付けられたデータに対して動作し得る。プロセスを開始するために、ボタン602のグラフィカル表現(「マスキングルールを追加」と記される)はユーザにより選択される(マウス等のポインティングデイトの相互作用を通して)。選択されると、一連の画面を含むウィザードが実行される。例えば、第1のウィザード画面604の一部をまず提示して、ユーザ提供情報を収集し得る。この特定の例では、ウィザード画面604は2つのラジオボタンを提示し、生成するマスキングルールのタイプを選択するようにユーザに促し得る。選択がなされると、ユーザはボタン606(「次へ」と記される)を選択して、次のウィザード画面に移行し得る。ウィザードを終了するには、ユーザは別のボタン608(「キャンセル」と記される)を選択し得る。次に、この状況では、別のウィザード画面が提示される(画面610の一部により提供されるように)。この特定の画面610では、新規ルールを作成するか、それとも既存のルールに追加するかをユーザが選択するために、2つのラジオボタンが提示される。ユーザにより提供された選択に基づいて、ウィザードは、どの特定のパス(例えば、一連の画面)を辿るか判断し得る。したがって、ウィザードは、様々なユーザ指示状況での複数の分岐パス(例えば、ツリー構造)を含み得る。画面604と同様に、ユーザは、ボタン612(「次へ」と記される)を選択することによりウィザードを先に進むことを選択し、ボタン614(「戻る」と記される)を選択することにより1画面戻り、又はボタン616(「キャンセル」と記される)を選択することによりウィザードを中止し得る。選択がなされると、ウィザードは適切な動作を実行する。
【0295】
図14を参照すると、ウィザードにより提供される画面700の別の部分は、オブジェクトのリストから選択して、マスキングルールを定義するようにユーザに促す。選択のために、この例では、関数のリストがメニュー(例えば、ドロップダウンメニュー)で提供される。選択された関数のそれぞれは、格納し得る(例えば、リポジトリ124に)1つ又は複数のオブジェクトに関連付け得る。この例では、1つ又は複数のマスキング関数(例えば、Hash Census 1)が、記憶されたオブジェクトに関連付けられている。マスキング選択にメニューを使用するのと併せて、ユーザは、ボタン(ボタン612、614、及び616と同様)を使用してウィザードを経て進む指示を制御することができる。この例では、ボタン702(「次へ」と記される)が選択され、ユーザ選択のまとめを提供する画面704に進む。この例では、「preferred」という名称のフィールド(画面600に示されるように)には、関数「Hash Census 1」が割り当てられる。この情報をレビューし、ボタン706(「終わり」と記される)を選択すると、新規オブジェクト(又は新規の複数のオブジェクト)が生成され、例えば、オブジェクト(又は複数のオブジェクト)にナビゲートするための1つ又は複数のグラフィカル表現を生成し得る。例えば、
図14の画面600に少し戻ると、新たに生成されたオブジェクトへのリンクは、グラフィカルボタン602で置換し得、選択されると、リンクはユーザを新規オブジェクトに導き得る。一構成では、画面708をユーザに提示して、生成されたオブジェクトに関連付けられた情報及びパラメータを見ることができる。このウィザード例はオブジェクト(又は複数のオブジェクト)の生成を実証したが、同様のウィザードにより他の演算を提供することもできる。例えば、オブジェクト調整(例えば、関数割り当て等)、オブジェクト削除、及び他の同様の演算を実行し得る。
【0296】
実施例5:編集レンダラー
図15を参照すると、1つ又は複数のオブジェクトが作成されると、データ交換に関連付けられた演算等の他の演算を実行し得る。一構成では、レンダリングされた要素の機能は、編集機能を含むように拡張し得る。例えば、スクリプト、プログラム、又は他のタイプの命令の集まりを実行して、別のプログラム(例えば、専用エディタ)に関連付け得るオブジェクトを生成し得る。オブジェクトに関連付けられたエディタを導入することにより、編集機能を拡張することができる(例えば、制約付きのメタデータ編集、外部編集制御機構の始動等)。編集機能の強化と共に、オブジェクトに関連付けられたエディタは編集の柔軟性を上げ得る。
【0297】
図に示されるように、画面800は編集画面の一部を含む。画面に含まれるフィールド802(「キー」と記される)は、編集レンダラーである制御機構を有する。この例では、値(例えば、数値、テキスト、関数等)は、直接には入力又は編集することができない。それに代えて、ユーザは、グラフィカルボタン804を選択して、キーフィールドのオブジェクトに関連付けられたエディタを始動し得る。この構成では、画面806は、キーフィールドに関連付けられ、ユーザ選択情報をフィールドに関連付けられるようにする例示的なエディタ808を提示する。この特定の構成では、エディタ808は、Flex(Adobe Systems,San Jose,California)等の複数のプラットフォームにリッチインターネットアプリケーション(例えば、ユーザインターフェース)を生成するソフトウェア開発製品を用いて実施される。この特定の例では、エディタ808は、1組の選択可能な記録810と、キーフィールド802のデータを識別するための選択ツール812とをユーザに提供する。選択されると、グラフィカルボタン814を選択して、前の画面800に戻り得る(そして、選択されたデータを前の画面800に提供し得る)。
【0298】
図16を参照すると、画面900は、キーフィールドにエディタ808からの情報(画面806に示される)が含まれた、画面800の更新版を表す。特に、更新されたキーフィールド902は、エディタ808から選択された2つのフィールドを含む。したがって、2つのデータセットが画面900に関連付けられるが、幾つかの例では、追加のデータセットが存在し得る。データセットの1つは、画面900に関連付けられたオブジェクトから提供し得、例えば、プルダウンメニュー904を用いて選択され、画面900にレンダリングされるダイアログ906に入力されたデータであり得る。第2のデータセットは、画面806に含まれる(及びキーフィールド802に関連付けられる)エディタ808により提供される。このデータは、例えば、1つ又は複数の技法を使用することにより別の画面に渡し得る。例えば、データセットは同様の形式に配置し得る。一構成では、データは、所定の形式又はフォーマットで一緒にバンドリングして、クエリ文字列(例えば、HTTPクエリ文字列)で提出し得る。例えば、ユーザは、クエリ文字列へのデータのバンドリングを開始するグラフィカルボタン908(「変更を保存」と記される)を選択し得る。クエリ文字列にバンドリングされると、文字列は、追加の処理及び提示のために、1つ又は複数の画面、オブジェクト、又は他のロケーションに提供し得る。様々なタイプのエディタを実施することもでき、例えば、日時に関連付けられたエディタ、グラフィカルエディタ(例えば、三次元オブジェクトの様々な側面を見るため)、及び他のタイプのエディタが使用可能である。
【0299】
要素レンダラーの演算
図17を参照すると、フローチャート1000は、データリポジトリ(すなわち、EME124)に記憶されたデータオブジェクトを管理し、データオブジェクトに関連付けられた要素をグラフィカルユーザインターフェース(すなわち、ユーザインターフェースモジュール108)に表示するために、要素レンダラー(例えば、要素レンダラー204)及びスクリプト(例えば、スクリプト210)により実施される幾つかの演算を表す。
【0300】
上述したように、EME124において十分に相互接続されたメタデータオブジェクトは、関係リンクにより参照し得る。複数のデータオブジェクト間の論理関係を実施し維持することに加えて、EME124はまた、ウェブブラウザベースのグラフィカルユーザインターフェース(例えば、インターフェース202)を使用して、特定のデータオブジェクトの詳細を表示する。特に、オブジェクト内の情報を自動的に使用して、1つ又は複数のデータオブジェクトへの対応する演算を呼び出し得る形式(例えば、ウェブ形式)を生成する(1002)。これは通常、要素レンダラーにより実施され、EME124に存在する略全てのデータオブジェクトに適用可能である。データオブジェクトに関する様々なユーザインターフェース対話により表されるユーザ入力を受信すると(604)、スクリプト210は、ウェブ形式のユーザ入力データを翻訳して、データリポジトリ内に新規のデータオブジェクトを生成し得る(1006)。単に入力データをコピーするのではなく、又は中間計算中に得られる一時変数を表すのではなく、この新規データオブジェクトは、EME124において存続し得るコンテンツを含む。続けて、新しいデータオブジェクトにEME124における1つ又は複数の関連データオブジェクトをリンクすること(1008)は、ユーザ演算が呼び出されたロケーションに基づいて自動的に実施し得る。上述したオブジェクトの生成及びリンクの結果として、ブラウザインターフェース202は、グラフィカルユーザインターフェースに表示するためにコンテンツを管理し、ユーザがインターフェースを通してEME124における変更を見られるようにする。
【0301】
ビジネスタグ付け
幾つかの実施態様では、ルールセットは、タグを使用することにより管理することができ、タグは、対応するルールセットについての情報を含むデータオブジェクトである。ルールセットの管理に使用されるタグは、例えば、拡張可能マークアップ言語(XML)タグであることができるが、他のタイプのデータオブジェクトであることもできる。以下、タグを使用して、ビジネスルールを管理することについて説明するが、同じ原理は、タグを使用して、他のタイプのルールを管理することに適用することもできる。
【0302】
ルール仕様又はルールセットは、開発ライフサイクル又は承認プロセスの幾つかの段階を経得る。例えば、一例として開発ライフサイクルを参照すると、そのライフサイクルにおける異なるフェーズ又は段階は、開発、テスト、及び生産であり得る。例えば、一例として承認プロセスを参照すると、そのプロセスにおける異なるフェーズ又は段階は、オープン、提出済み(又はレビュー)、及び承認済み(又はリリース済み)であり得る。開発ライフサイクル又は承認プロセスの各段階は、「状態」とも呼ばれる。
【0303】
図12に示されるように、ユーザインターフェースは、ルールセットの昇格若しくは降格又はルールセットの新しいメジャー若しくはマイナーバージョンの生成等のルールセットに基づいて実行することができる異なる動作を表すボタンを提供し得る。特定のボタンを表示すべきか否かは、ルールセットに関連付けられた1つ又は複数の許可に基づいて決定することができる。幾つかの実施態様では、許容可能な遷移は、本明細書では「タグ付け仕様」と呼ばれる遷移仕様により指定し得る。
【0304】
図18を参照すると、一例として、タグ付け仕様1150は、ルールセットに関連付けられた状態「開発」、「テスト」、及び「生産」の許容可能な遷移を指定する。許容可能な遷移は、「開発」から「テスト」への遷移、「テスト」から「生産」への遷移、「テスト」から「開発」への遷移、及び「生産」から「テスト」への遷移を含む。タグを使用して、ルールセットに関連付けられた状態を記録する。例えば、ルールセットが「開発」状態から「テスト」状態に遷移すると言う場合、ルールセット自体は変わらず、むしろ、ルールセットに関連付けられた(又はルールセットをポイントする)タグが、「開発」状態から「テスト」状態に変わる。タグ付け仕様1150は、ルールセットに関連付けられたタグが「開発」状態である場合、ラベル「昇格」を有するボタンをユーザインターフェースに示すべきであることを示すコード1152を含む。ユーザが「昇格」ボタンと対話すると、ルールセットに関連付けられたタグは、「テスト」状態に遷移する。タグ付け仕様1150は、ルールセットが関連付けられたタグが「テスト」状態である場合、ラベル「昇格」を有する第1のボタン及びラベル「降格」を有する第2のボタンをユーザインターフェースに示すべきであることを指定するコード1154を含む。ユーザが「昇格」ボタンと対話すると、ルールセットに関連付けられたタグは、「昇格」状態に遷移し、ユーザが「降格」ボタンと対話すると、ルールセットに関連付けられたタグは、「開発」状態に遷移する。タグ付け仕様1150は、ルールセットに「昇格」状態が関連付けられている場合、それ以上の変更が許可されないことを指定するコード1156を含む。
【0305】
ルールセットに関連付けられたタグは、様々な可能な状態間で遷移するため、ルールセットに関連付けられた状態を追跡する情報を含む。したがって、ルールセットが異なる状態に関連付けられるように昇格又は降格される場合、タグの内容は、ルールセットに関連付けられた現在状態を反映するように更新される。
【0306】
幾つかの実施態様では、2つ以上のタイプのタグを使用して、ルールセットを管理することができる。例えば、1つのタイプのビジネスタグは、ビジネスユーザにより生成されたアプリケーション構成及びルールセットに使用される「オブジェクトタグ」であることができる。ビジネスユーザは、アプリケーション構成又はルールセットを公開する場合、オブジェクトタグを生成することができる。1つのタイプのビジネスタグは、開発者により生成された一般的なグラフ、アプリケーションテンプレート、記録フォーマットファイル、及びパッケージに使用される「技術タグ」であることができる。技術タグは、リリースに使用すべき一般的なグラフ、アプリケーションテンプレート、及び他のオブジェクトとのバージョンの識別に使用することができる。1つのタイプのビジネスタグは、ルールセット又は1つ若しくは複数のルールセットを使用するアプリケーションのリリースの内容を定義する技術タグ及びオブジェクトタグの識別に使用される「リリースタグ」であることができる。
【0307】
以下、ルールセットの様々なバージョン又はリリースを管理するリリースタグの使用について説明する。例えば、
図19Aを参照すると、ユーザインターフェース1100は、ビジネスルールセットの3つのバージョン又はリリース:「CEP_release_V1.0」1102、「CEP_release_V1.1」1104、及び「CEP_release_V1.2」1106をポイントする3つのリリースタグの名称を表示する。各リリースタグ(ビジネスルールセットの特定のバージョンをポイントする)は、「承認済み」、「オープン」、又は「提出済み」等の関連付けられた状態1108を有する。この例では、リリースタグ「CEP_release_V1.0」、「CEP_release_V1.1」、及び「CEP_release_V1.2」にはそれぞれ、状態「承認済み」、「オープン」、及び「オープン」が関連付けられている。ユーザがリリースタグの1つを選択すると、ユーザがリリースタグの状態を変更できるようにするボタンがユーザインターフェース1100に表示される。例えば、ユーザが、「オープン」1110の状態を有するリリースタグ「CEP_release_V1.2」を選択すると、ボタン「提出」1112が示される。
【0308】
この例では、ルールセットの各バージョン又はリリースには、ルールセットに関連付けられた状態についての情報を含むリリースタグが関連付けられる。タグ付け仕様は、レビュープロセスの様々な状態(又は段階)を定義する。タグオブジェクトは、ルールセットの特定のバージョンへのリンク及び任意選択でレビュー履歴を含む。例えば、レビュー履歴は、月曜日に特定の開発者がルールセットのタグを生成し、火曜日にマネージャがタグを拒絶し、水曜日に開発者がタグを再提出したことを示し得る。各ルールセットは様々な状態間を遷移する際、ルールセットに関連付けられたタグは、ルールセットに関連付けられた状態を追跡するように更新される。したがって、ルールセットが、異なる状態が関連付けられるように昇格又は降格する場合、そのルールセットをポイントするタグの内容は、現在状態及び任意選択でレビュー履歴を反映するように更新される。
【0309】
図19Bを参照すると、ユーザがボタン「提出」1112(
図19Aに示される)をクリックする場合、ユーザインターフェース1110はタグ「CEP_release_V1.2」の状態を「提出済み」1114に更新し、「承認」ボタン1116及び「拒絶」ボタン1118を表示する。ユーザが「承認」ボタン1116をクリックする場合、タグ「CEP_release_V1.2」は「承認済み」状態に遷移し、一方、ユーザが「拒絶」ボタン1118をクリックする場合、タグは「オープン」状態に遷移する。
【0310】
図19Cを参照すると、
図19A及び
図19Bに示される例では、状態間の許容可能な遷移は、「オープン」1200から「提出済み」1202への遷移、「提出済み」1202から「オープン」1200への遷移、及び「提出済み」1202から「承認済み」1204への遷移を含む。どのボタン(例えば、「提出」1112、「承認」1116、及び/又は「拒絶」1118)が表示されるかは、ルールセットに関連付けられた現在状態及びタグ付け仕様により指定された許容可能な遷移に依存する。
【0311】
例えば、
図20を参照すると、タグ付け仕様1120は、
図19A及び
図19Bに示される等の状態間のタグの許容可能な遷移を指定する。タグ付け仕様1120は、タグが「オープン」状態1124である場合、ラベル「提出」を有するボタン1126をユーザインターフェースに表示すべきであることを指定するコード1122を含む。ユーザが「提出」ボタン1126と対話すると、タグは標的状態「提出済み」1128に遷移する。タグ付け仕様1120は、タグが「提出済み」状態1132である場合、ラベル「承認」1134を有する第1のボタン及びラベル「拒絶」1136を有する第2のボタンをユーザインターフェースに表示すべきであることを指定するコード1130を含む。ユーザが「承認」ボタンと対話すると、タグは標的状態「承認済み」1138に遷移し、ユーザが「拒絶」ボタンと対話すると、タグは標的状態「オープン」1140に遷移する。タグ付け仕様1120は、状態「承認済み」1144の場合、ボタンは表示されないことを指定するコード1142を含み、タグが、タグに関連付けられたルールセットが完成し承認されたことを示す「承認済み」状態になると、それ以上の遷移が実行されないことを示す。
【0312】
幾つかの実施態様では、タグ付け仕様は任意選択で、動作(例えば、ルールセットに承認済み状態が関連付けられるようにタグを承認する動作)の前又は後に呼び出されるスクリプトを含む。例えば、「状態前遷移スクリプト」は、スクリプトが、動作をキャンセルすることができる状況を含まない、動作前に呼び出されるスクリプトを指す。例えば、事前状態遷移スクリプトは、検証エラーがある場合、タグの承認を失敗させようとすることができる。
【0313】
幾つかの実施態様では、ルールセットの開発、テスト、及びリリースを管理する企業は、ルールセットは開発ライフサイクル又は承認プロセスにおいて様々な段階を遷移するため、各段階で権限を有する特定のスタッフによりルールセットを扱う必要があることを要求し得る。この例では、各段階は企業の従業員の特定の役割に対応し得る。状態が、遷移を可能にする権限を有するスタッフメンバを指定することもできることを定義するタグ付け仕様。
図18に示される例では、タグ付け仕様1150は、どのスタッフメンバが段階間の様々な遷移を可能にする権限を有するかを指定するコード1158a、1158b、及び1158cを含む。例えば、コード1158aは、「開発」から「テスト」への遷移を可能にする権限を有するスタッフメンバが「rolename_list1」に列挙されることを指定する。コード1158bは、「テスト」から「生産」への遷移を可能にする権限を有するスタッフメンバが「rolename_list2」に列挙されることを指定する。コード1158cは、「テスト」から「開発」への遷移を可能にする権限を有するスタッフメンバが「rolename_list3」に列挙されることを指定する。
【0314】
例えば、
図21を参照すると、ルールセット承認プロセス1160は、開発フェーズ1162、レビューフェーズ1164、及びリリース済みフェーズ1166を含む。開発フェーズ1162では、ルールセットには第1の状態1168が関連付けられている。レビューフェーズ1104では、ルールセットには2つの状態:第2の状態1170及び第3の状態1172の1つを関連付けることができる。リリース済みフェーズ1166では、ルールセットには最後の状態1174が関連付けられている。例えば、第1の状態は「オープン」状態であることができ、第2の状態は「レビュー1」段階であることができ、第3の状態は「レビュー2」状態であることができ、最後の状態は「リリース済み」状態であることができる。ルールセットに関連付けられたタグは、ルールセットに関連付けられた状態を追跡する。タグは様々な段階を遷移し、承認プロセスにおいて様々な段階を経るルールセットを表す。
【0315】
ルールセットに関連付けられたタグが第1の状態1168である場合、開発者1176は、ルールセットを生成、変更し、タグが第2の状態1170に遷移する(1178)するようにルールセットを昇格(又は提出)することができる。タグが第2の状態1170である場合、ルールセットはマネージャ1180によりレビューされ、開発者1176はルールセット又はタグの状態を変更することができない。ルールセットに関連付けられたタグは、ルールセットのレビュー履歴についての情報を含み得る。マネージャ1180は、タグが第3の状態1172に遷移する(1182)ようにルールセットを昇格(若しくは承認)するか、又はタグが元の第1の状態1168に遷移する(1184)ようにルールセットを降格(又は拒絶)することができる。タグが元の第1の状態1168に遷移する(1184)場合、開発者1176は、ルールセットを更に変更し、ルールセットを将来のレビューに向けて昇格させることができる。
【0316】
ルールセットに関連付けられたタグが第3の状態1172である場合、ルールセットはシニアマネージャ1186によりレビューされ、開発者1176及びマネージャ1180はルールセット又はタグの状態を変更することができない。シニアマネージャ1186は、タグが最後の状態1174に遷移する(1188)ようにルールセットを昇格(若しくは承認)するか、又はタグが元の第1の状態1168に遷移する(1190)ようにルールセットを降格(若しくは拒絶)することができる。タグが元の第1の状態1168に遷移する(1190)場合、開発者1176はルールセットを変更し、将来のレビューに向けてルールセットを昇格させることができる。タグが最後の状態1174である場合、タグの状態はもはや変更することができない。例えば、シニアマネージャ1186がルールセットを昇格させ、タグが最後の状態1174に遷移する場合、これは、ルールセットが顧客にリリース可能な状態であり、ルールセットに対してそれ以上の変更を行えないことを示し得る。
【0317】
幾つかの実施態様では、2つ以上のビジネスルールセットを一緒にパッケージして、「コンテナ」、「コレクション」、又は「リリース」にし、グループとして管理することができる。コンテナには、幾つかの状態の1つを関連付けることができ、コンテナ内の各ビジネスルールセットにも、コンテナの状態に関連するか、又はコンテナの状態から独立することができる状態を関連付けることができる。コンテナには、コンテナに関連付けられた状態についての情報を有するタグを関連付けることができる。
【0318】
例えば、ソフトウェア製品は幾つかのリリース又はバージョンを経ることができ、ソフトウェア製品の各リリースは複数のビジネスルールセットを含み得る。異なるリリースにはビジネスルールセットの異なる組合せを関連付け得る。「リリースタグ」又は「グループタグ」を使用して、ソフトウェア製品のリリースに関連するルールセットのグループについての情報を記憶し得る。ソフトウェア製品の異なるリリースには異なるリリースタグを関連付け得る。
【0319】
例えば、
図22を参照すると、ユーザインターフェース1190は、ルールセットのグループに関連付けられたリリースタグ「CEP_release_V1.1」1192を示し、リリースタグ「CEP_release_V1.1」1192は、「Investigate_Customer_Activity_V1.1」、「Transaction_Classification_V1.1」、「Review_Phone_Activity_V1.1」、「Review_Posted_Monetary_Activity_V1.1」、「Review_Web_Activity_V1.0」、及び「Review_Non_Monetary_Activity_V1.0」等のオブジェクトタグのグループ1194についての情報を含む。オブジェクトタグ1194のそれぞれは、対応するルールセットをポイントする。リリースタグ「CEP_release_V1.1」1192には状態「オープン」1196が関連付けられている。リリースタグ「CEP_release_V1.1」1192は、ルールセットのグループに関連付けられた現在状態についての情報を含む。「Investigate_Customer_Activity_V1.1」、「Transaction_Classification_V1.1」、「Review_Phone_activity_V1.1」、「Review_Posted_Monetary_Activity_V1.1」、「Review_Web_Activity_V1.0」、及び「Review_Non_Monetary_Activity_V1.0」等のルールセットに関連付けられたオブジェクトタグ1194にはそれぞれ、状態1198「提出済み」、「提出済み」、「提出済み」、「提出済み」、「承認済み」、及び「承認済み」が関連付けられている。オブジェクトタグ「Investigate_Customer_Activity_V1.1」、「Transaction_Classification_V1.1」、「Review_Phone_activity_V1.1」、「Review_Posted_Monetary_Activity_V1.1」、「Review_Web_Activity_V1.0」、及び「Review_Non_Monetary_Activity_V1.0」のそれぞれは、対応するルールセットに関連付けられた現在状態を追跡する。
【0320】
この例では、グループリリースタグ「CEP_release_V1.1」1192に関連付けられた状態は、グループ内のルールセットに関連付けられた状態1198と異なる。幾つかの実施態様では、グループ内の個々のルールセットに関連付けられた状態は、グループに関連付けられた状態から独立している。したがって、リリースタグが様々な状態間で遷移する場合、個々のルールセットに関連付けられた状態は変わらない(ユーザがルールセットに関連付けられたオブジェクトタグの状態を特に変更しない限り)。例えば、グループリリースタグ「CEP_release_V1.1」1192が「オープン」状態から「提出済み」状態に、「提出済み」状態から「承認済み」状態に、又は「提出済み」状態から「オープン」状態に遷移する場合、ルールセット1194に関連付けられた状態は同じままである。同様に、ルールセット1194の1つ又は複数に関連付けられた1つ又は複数のオブジェクトタグが状態を変更する場合、グループリリースタグ1192の状態は変わらない(ユーザがグループリリースタグ1192の状態を特に変更しない限り)。
【0321】
幾つかの実施態様では、グループ内のルールセットに関連付けられた状態は、グループに関連付けられた状態により影響される。例えば、タグ付け仕様は、グループにN個の状態(Nは2以上の正の整数)を関連付けることができ、グループ内の各ルールセットにN個の状態の1つを関連付けることができることを指定することができる。タグ付け仕様は、グループリリースタグが(iマイナス1)番目の状態からi番目の状態に昇格する場合、i番目よりも後の状態を有するオブジェクトタグ(ルールセットに関連付けられた)はi番目の状態に降格され、一方、i番目の状態よりも前の状態を有するオブジェクトタグは変わらないままであることを更に指定することができる。
【0322】
例えば、タグ付け仕様は、グループリリースタグが(i-1)番目の状態からi番目の状態に昇格する場合、i番目の状態よりも前の状態を有するオブジェクトタグ(ルールセットに関連付けられた)もi番目の状態に昇格され、一方、i番目よりも後の状態を有するオブジェクトタグは変わらないままであることを指定することができる。
【0323】
例えば、タグ付け仕様は、グループリリースタグが(i+1)番目の状態からi番目の状態に降格する場合、i番目の状態よりも後の状態を有するオブジェクトタグ(ルールセットに関連付けられた)もi番目の状態に降格され、一方、i番目よりも前の状態を有するオブジェクトタグは変わらないままであることを指定することができる。
【0324】
例えば、タグ付け仕様は、グループリリースタグが(i+1)番目の状態からi番目の状態に降格する場合、i番目の状態よりも前の状態を有するオブジェクトタグ(ルールセットに関連付けられた)もi番目の状態に昇格され、一方、i番目よりも後の状態を有するオブジェクトタグは変わらないままであることを指定することができる。
【0325】
グループリリースタグ1192に関連付けることが可能な状態は、オブジェクトタグ1194(ルールセットに関連付けられた)に関連付けることが可能な状態と異なることができる。例えば、タグ付け仕様は、グループリリースタグ1192に「オープン」、「レビュー1」、「レビュー2」、又は「リリース済み」状態の1つを関連付けることができ、一方、各オブジェクトタグ1194には、「オープン」、「提出済み」、又は「承認済み」状態の1つを関連付けることができることを指定し得る。
【0326】
タグは、データオブジェクトであり、ルールセットの開発又は承認に関連付けられた様々なタイプの情報を含むことができる。タグは、
図1における共通ログデータオブジェクト116の機能を提供することができる。様々なタイプの情報は、例えば、どの動作(例えば、昇格、降格、提出、承認、又は拒絶)がルールセットに対して実行されたか、誰が動作を実行したか、及び動作がいつ実行されたかを含むことができる。タグは、ルールセットを開発、テスト、レビュー、及び/又は承認した人々によるコメント又は備考を含むこともできる。このように、ルールセットの開発ライフサイクル又は承認プロセスの各段階において、ルールセットに従事する人は、ルールセットに対して前に行われた作業についての有用な情報を有することができ、対処する必要がある問題に素早くフォーカスできるようにする。何かが上手くいかない場合、ユーザはレビュー履歴を見て、何が間違ったか、どこで誤りが発生したかを特定しようとし、是正動作をとり、将来、そのタイプの問題を回避することができる。
【0327】
図23A及び
図23Bは、ログが、実行された演算、演算を実行したユーザ、ユーザによるコメント、及び演算が実行された日時についての情報を含む、ビジネスタグに関連付けられたアクティビティログの例のスクリーンショット1210及び1220を示す。
【0328】
統合アプリケーション開発システム
以下、統合アプリケーション開発システム100をより詳細に説明する。
図1を再び参照すると、アプリケーション開発システム100は、ドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、データのリポジトリ110、及び統合ユーザインターフェース112を含む。ドキュメントディタ102は、ユーザがビジネスルールを見て編集できるようにし、限定ではなく、
図12~
図16、
図19A、
図19B、
図22、
図23A、及び
図23Bに示される機能を含む機能を提供し得る。
【0329】
ユーザは、ドキュメントエディタ102を使用して、ルールケースに対応する行を有するスプレッドシートのエントリを変更し得る。ドキュメントエディタ102は、ルールのトリガー基準の編集に使用することができる。ドキュメントエディタ102は、ルールの状態を管理するビジネスプロセス管理ツール104にリンクされる。例えば、ドキュメントエディタ102は統合ユーザインターフェース112と組み合わせて、ルールの開発ライフサイクル中、ユーザがルールを昇格又は降格し、リリースに向けてルールを承認できるようにする。ユーザがルールを昇格、降格、又は承認することに応答して、ビジネスプロセス管理ツール104は、上述したタグを使用してルールの状態を追跡する。ルールに関連付けられたルール仕様に基づいて、ビジネスプロセス管理ツール104は、状態のどの遷移が可能であるかを判断し、ドキュメントエディタ102と通信し、それにより、エディタ102は統合ユーザインターフェースを制御して、ユーザがルールの状態を変更できるようにする適切なアイテム(例えば、「提出」、「承認」、「拒絶」、「昇格」、及び/又は「降格」ボタン)をユーザインターフェースに表示することができる。
【0330】
ユーザは幾つかのルールを開発し得、各ルールは幾つかのバージョンを有し得る。例えば、ルールの異なるバージョンは異なるトリガー基準を有し得る。
図24は、ユーザが開発中の幾つかのルールを示す、ドキュメントエディタ102により提供された例示的なユーザインターフェースを示す。この例では、ユーザは、「Cash_Back_Notifications」ルール、「Review_Non_Monetary_Actions」ルール、「Review_Phone_Activity」ルール、「Review_Posted_Monetary_Activity」ルール、「Review_Web_Activity」ルール、及び「Transaction_Classification」ルール等のルールに取り組んでいる。ユーザは「Review_Posted_Monetary_Activity」ルール1242を選択し、ドキュメントエディタ102は、ルール1242の様々なバージョンについての情報1244を示す。この例では、ルールのバージョン1.0及び1.2は承認されており、ルールのバージョン1.1及び1.3は提出されており、ルールのバージョン1.4はオープンである。ルールのバージョン1.0はCEP(作業空間の名称)リリースバージョン1.0で使用され、ルールのバージョン1.1はCEPリリースバージョン1.1で使用され、ルールのバージョン1.3はCEPリリースバージョン1.2で使用される。
【0331】
ドキュメントエディタ102はソースコード制御ツール106にリンクされ、それにより、ルールのバージョンがリリースに向けて承認された場合、ルールのバージョンはソースコード制御ツール106により記憶され、ソースコード制御ツール106は、ルールの様々なバージョンのマスタリポジトリを保持する。続けて、ユーザは、ルールの特定のバージョンの編集を意図する場合、ルールを変更する許可を要求することができ、ソースコード制御ツール106は、ユーザがルールを借り出し、ルールを編集できるようにし、ルールが返却されるまで、他者によるルールの編集を阻止する。ソースコード制御ツール106はまた、ルールに変更を行ったユーザ及びルールに行われた変更が何であるかの記録も保持する。
【0332】
図25を参照すると、幾つかの実施態様では、ドキュメントエディタ102は、ルールの異なるバージョンを比較するルールセット相違リポート1250を生成し、バージョン間の相違についての情報を提供することができる。この例では、ユーザは、「Review_Posted_Monetary_Activity」ルールのバージョン61と128とを比較し、ドキュメントエディタ102はバージョン間の相違のリスト1252を提供する。
【0333】
ビジネスタグ付け手法の特徴は、ユーザが様々なルールの異なるバージョンを選別して、アプリケーションと併用するルールセットコンテナ又はパッケージを組み立て、組み立てられたルールセットコンテナを使用してアプリケーションの実行をシミュレートし得ることである。例えば、クレジットカード企業の開発者は、アプリケーション開発システム100を使用して、クレジットカード処理アプリケーションのルールを開発し得る。アプリケーションは、クレジットカード申し込みを承認すべきか否かを判断する「クレジットカード承認」ルール、クレジットカード顧客に与えるリワードを決める「クレジットカードリワード」ルール、及び特定のクレジットカード取引が不正である確率を評価する「不正検出」ルールを使用し得る。例えば、開発者は、「クレジットカード承認」ルールのバージョン1.0、1.1、1.2、及び1.3、「クレジットカードリワード」ルールのバージョン1.0、1.1、1.2、1.3、1.4、2.0、及び2.1、並びに「不正検出」ルールのバージョン1.0、1.1、2.0、2.1、3.0、及び3.1を開発した。
【0334】
例えば、開発者は、「クレジットカード承認」ルールのバージョン1.1、「クレジットカードリワード」ルールのバージョン2.1、及び「不正検出」ルールのバージョン3.0を使用してクレジットカード処理アプリケーションの実行をシミュレートすると決定し得る。ドキュメントエディタ102は、ユーザが特定のルールを選択し、選択された各ルールの特定のバージョンを一緒にパッケージしてコンテナとし、ルールのコンテナをクレジットカード処理アプリケーションに関連付けられるようにするインターフェースを提供し得る。
【0335】
図1を再び参照すると、ドキュメントエディタ102はアプリケーションシミュレータ108にリンクされる。上記例を使用すると、ユーザがルルのコンテナをクレジットカード処理アプリケーションに関連付けた後、ドキュメントエディタ102は、ユーザがアプリケーションシミュレータ108を呼び出して、クレジットカード処理アプリケーションの実行をシミュレートするという選択肢を提供する。幾つかの実施態様では、アプリケーションは、データフローを表す要素をリンクすることにより接続されたデータ処理構成要素を有するグラフベースの計算である。アプリケーションシミュレータ108は、コンテナ内のルールを変換式に変換し、変換式をグラフベースの計算内の構成要素に関連付け、グラフベースの計算を実行し、実行の出力結果を表示する。
【0336】
ユーザは、シミュレーションの出力を調べて、ルールの更なる変更が必要であるか否かを判断し得る。例えば、アプリケーションがテストデータセットにおいて多くの不正取引の検出に失敗したとユーザが判断する場合、ユーザはドキュメントエディタ102を使用して、現在、アプリケーションに関連付けられている「不正検出」ルールのバージョン3.0の状態を変更し、及び/又はバージョン3.0を編集し得る。「不正検出」ルールのバージョン3.0が現在、「テスト」状態であると考える。ユーザは、ルールのバージョン3.0を「開発」状態に降格し得、ルールに更なる改訂が必要なことを示す。ユーザは、「不正検出」ルールのバージョン2.1をクレジットカード処理アプリケーションに関連付けられたルールのコンテナに包含するものとして選択し、シミュレーションを再び実行し得る。ユーザは、「クレジットカード承認」ルールのバージョン1.1、「クレジットカードリワード」ルールのバージョン2.1、及び「不正検出」ルールのバージョン2.1が一緒に適宜機能することに満足した場合、例えば、リリースバージョン1.0としてリリースに向けてコンテナを承認し得る。
【0337】
ユーザは、「不正検出」ルールのバージョン3.0の編集を終えた後、ルールの状態を「テスト」に昇格し、ルールのこのバージョンをコンテナに包含し、アプリケーションのシミュレーションを実行し得る。ユーザは、「クレジットカード承認」ルールのバージョン1.1、「クレジットカードリワード」ルールのバージョン2.1、及び「不正検出」ルールのバージョン3.0が一緒に適宜機能すると判断する場合、例えば、リリースバージョン1.1としてリリースに向けてコンテナを承認し得る。
【0338】
アプリケーション開発システム100の利点は、ユーザが統一された様式でルールを編集し、開発ライフサイクル及びルールのバージョニングを管理し、ルールを使用してアプリケーションのシミュレーションを実行できるようにする統合ユーザインターフェースを提供することである。ルールに関連付けられたタグ及び他の情報には、システム100内の様々なツールからアクセス可能である。例えば、ユーザがドキュメントエディタ102を使用して、特定のルール及びルールの特定のバージョンをコンテナ用に選択する場合、選択されたルールについての情報はアプリケーションシミュレータ108に提供することができ、アプリケーションシミュレータ108は、ルールの選択されたバージョンをロードし、それらのルールに基づいて変換式を生成する。
【0339】
例えば、アプリケーションシミュレータ108により生成されたシミュレーション出力データセットは、ドキュメントエディタ102に提供することができ、ドキュメントエディタ102は、出力データセットと一緒にルールを表示することができる。ドキュメントエディタ102は、ユーザが出力データセット内の1つ又は複数の値を選択できるようにするインターフェースを提供し得、インターフェースは、選択された出力値の生成をトリガーしたルールのポインタを強調表示し得る。出力値が意図されるものと異なる場合、ユーザはルールの強調表示された部分をレビューして、更なる改訂が必要か否かを判断することができる。ユーザは、ルールを変更し、シミュレーションを再び実行し、更新された出力値が意図されるものと同じであるか否かを調べ、必要に応じてルールを更に改訂することができる。
【0340】
アプリケーション開発システム100は、コンピュータプログラミングに専門知識を有さないことがある事業者がルールを編集し、ルールを使用してアプリケーションプログラムを実行し、出力が意図されるものと同じであるか否かを判断し、必要に応じてルールを更に編集できるようにする。例えば、クレジットカード会社で働いている金融アナリストは、金融の知識は有し得るが、クレジットカード申し込みを処理するルール、クレジットカードリワードを決定ルール、及び不正クレジットカード取引を検出するルールを実施するコンピュータコードの書き方を知らないことがある。アプリケーション開発システム100を使用して、金融アナリストは、スプレッドシート中の値及び公式を改訂することができ(多くの金融アナリストが精通している)、それらの値及び公式に基づいて指定されたルールは、実行に向けてアプリケーションシミュレート108によりアプリケーションプログラムに挿入されるコードに変換することができる。
【0341】
幾つかの実施態様では、アプリケーション開発システム100は、以下の
図26~
図29におけるプロセス1260、1350、1360、及び1370等のマーケティング又はビジネスキャンペーンで使用されるビジネスルールを開発するステップを促進する。プロセス1260、1350、1360、及び1370は単なる例である。異なる企業は、ビジネスルールを開発するために、異なるプロセス及び一緒に働く異なる数のチームメンバを有し得る。例えば、ある企業は1つのマーカ及び1つのチェッカーを使用して、ビジネスルールを書いてレビューし、リスクを評価し得る。例えば、別の企業は、3つ以上のチェッカーを有して、追加のレベルのレビューを提供し得る。
【0342】
幾つかの実施態様では、アプリケーション開発システム100は、ユーザが、様々なアプリケーションを促進するビジネスルールを好都合に開発できるようにする。例えば、金融機関(例えば、銀行、クレジットカード企業、又は投資ファーム)は、新しい製品又はプロモーションを顧客又は見込み客にオファーするキャンペーンを有し得る。第1の製品オファーでは、金融機関は、要件を満たした顧客に新しい住宅担保ローンをオファーし得る。第2の製品オファーでは、金融機関は、様々なリワードプログラムを有する新しいクレジットカードをオファーし得る。これらのキャンペーン製品のオファーは、ATM機に示される広告、電子メール若しくはテキストメッセージで送信される広告、ウェブサイトに提示される広告、又は郵便により送られる広告に現れ得る。異なる顧客には、オファーの詳細は異なり得る。
【0343】
例えば、顧客は、ウェブブラウザを使用して金融機関のオンライン口座にアクセスする場合、金融機関がオファーする様々なサービスを示すウェルカムウェブページで迎えられ得る。ウェブページはまた、顧客に合わせられた1つ又は複数のプロモーションオファーを表示することもある。ウェブページは、金融機関のコンピュータサーバにより生成され得る。顧客がオンライン口座にログインすると、金融機関におけるコンピュータサーバは、例えば、顧客に関連付けられた金融情報及び他の情報に基づいて顧客にオファーするプロモーションを決定する。
【0344】
例えば、顧客が住宅モーゲージを有する場合、コンピュータサーバは、顧客が住宅担保ローンに興味があり得ると判断し得る。コンピュータサーバが顧客に示されるウェブページを生成する際、第1のキャンペーン製品からのプロモーションオファーをウェブページに挿入し得る。例えば、オファーは、金利の低い新しい住宅担保ローンを提供し得る。例えば、顧客がクレジットカードを有さないか、又は高信用スコアを有する場合、コンピュータサーバは、顧客が新しいクレジットカードに興味を有し得ると判断し得る。コンピュータサーバが顧客に示すウェブページを生成する際、第2のキャンペーン製品からのプロモーションオファーをウェブページに挿入し得、ウェブページにおいて、オファーは、多めのキャッシュバックリワードをオファーする新しいクレジットカードプログラムについての情報を提供し得る。
【0345】
所与のキャンペーンで、異なるオファーを異なる顧客に提供し得る。例えば、第1のキャンペーン製品では、高信用スコアを有するとともに、普通預金口座と当座預金口座とを合わせた残高が高い第1の顧客に金利3.5%の新しい住宅担保ローンをオファーし得、高信用スコアを有するとともに、普通預金口座と当座預金口座とを合わせた残高が低い第2の顧客に金利4%の新しい住宅担保ローンをオファーし得、中程度の信用スコアを有する第3の顧客に金利4.5%の新しい住宅担保ローンをオファーし得る。
【0346】
第2のキャンペーン製品では、所得水準が高い第4の顧客に、年会費及びわずかに高いリワードを有する第1のタイプのクレジットカードをオファーし得、所得水準が中程度である第5の顧客に、年会費がなく、リワードがわずかに低い第2のタイプのクレジットカードをオファーし得、リワードポイントが低い旅行用クレジットカードを既に有する第6の顧客に、食事及び旅行でのリワードポイントが高い第3のタイプのクレジットカードをオファーし得る。第1及び第2のキャンペーン製品は、信用スコアが非常に低い顧客又はクレジットカードの支払いが数ヶ月遅れている顧客にはいかなるプロモーションオファーも与えない。
【0347】
金融機関は数百人、数千人、又は数百万人の顧客を有し得、したがって、どのプロモーションをどの顧客にオファーするかの判断プロセスを部分的に自動化することは有用である。幾つかの実施態様では、米国特許第8.069,129号、米国特許第8,386,408号、米国特許第8,380,651号、米国特許第9,002,770号、及び米国特許出願第14/677,063号に記載されているものと同様のビジネスルールを使用して、顧客の金融データ及び他のデータを評価し、どのプロモーションオファーをどの顧客に提供すべきかを判断するプロセスを部分的に自動化することができる。例えば、1組のビジネスルールは、金融データを含む顧客の記録にルールを適用して、どのプロモーションオファーがどの顧客に提示されるかについての情報を含む出力を生成することができるようにオーサリングし得る。ビジネスルールは、グラフィック開発環境102においてグラフベースのアプリケーションに組み込まれ得、並列動作環境106は、ビジネスルールを組み込むグラフにより定義される論理及びリソースに対応する実行可能命令(例えば、コンピュータ命令)を生成し得る。
【0348】
各キャンペーンは、数日、数週間、又は数ヶ月にわたり実行し得る。金融機関は、2日ごと、2週間ごと、又は2ヶ月ごとに新しいキャンペーンを始動し得る。新しい各キャンペーンが始動する前、金融機関のスタッフメンバは、キャンペーンにより設定された新しい基準に従ってビジネスルールを変更し得る。幾つかの例では、キャンペーンの品質を保証するために、3つのグループのスタッフメンバがビジネスルールの変更及び検証に従事し得る。例えば、第1のグループのスタッフメンバは、「メーカー」と呼ばれ、データの結合、データセットの生成、解析の実行、ビジネスルールのオーサリング、シミュレーションの実行、及びデータのプロファイリング等のアクティビティを担当する。
【0349】
例えば、第2のグループのスタッフメンバは、「チェッカー」と呼ばれ、メーカーにより実行されたアクティビティがプロセス要件及び企業ポリシーと一貫することの検証等のアクティビティを担当する。例えば、チェッカーは、キャンペーン又はリスク目的が明確に識別され文書化されていることを検証し、ビジネスルールが個々に及びまとめてシミュレーションを実行することを検証し、シミュレーションのログをレビューして、結果が目的及びポリシーと一貫することを確認し、チェックポイントを完了し、ビジネスルールを承認する。
【0350】
例えば、第3のグループのスタッフメンバは、「マネージャ」と呼ばれ、チェッカーのコメント及び推奨のレビューを担当し、メーカーによるビジネスルールの生成及びチェッカーによるビジネスルールの検証についての監査証跡をレビューし、コントロール及び検証の適切性を査定し、全体プロセスにおける次のステップへの進行を承認又は拒絶する。
【0351】
任意の所与のキャンペーンにおいて、2つ以上のメーカー、2つ以上のチェッカー、及び2つ以上のマネージャがビジネスルールのオーサリング、チェック、及びレビューに関わり得る。ビジネスルールに誰が何の変更をいつ行ったかを追跡し、時間の経過に伴ってルールが変更される際、ビジネスルールの異なるバージョンの記録(例えば、ソースコード及び備考を含む)を保持することが有用である。良好な記録の保持は、デバッグ及びエラー原因の発見に役立つのみならず、特定の規制要件を満たすことにも役立ち得る。
【0352】
以下、キャンペーンのビジネスルールを生成する例示的なプロセスについて説明する。
図26を参照すると、流れ
図1260は、キャンペーンのビジネスルールを生成するプロセスの高レベル全体像を表す。ステップ1262において、ビジネスルールの定義に必要なデータが準備される。例えば、どのデータソースを使用するか及びデータセットを結合、マージ、フィルタリング、集計、又は更に処理する必要があるか否かを判断し得る。ステップ1264において、各製品のキャンペーンが定義される。ルールは、金融機関のビジネス目的に関連する潜在的なオファーを定義するように書かれる。例えば、いつ何のプロモーションオファーをどの顧客に与えるべきかを判断する基準が、キャンペーンの各製品で定義される。ステップ1266において、キャンペーンの様々な製品のビジネスルールは重ねられ組み合わせられて、統合パッケージとなる。ステップ1268において、様々な製品を含むキャンペーン全体のビジネスルールが検証されシミュレートされる。ステップ1268において、異なる製品のビジネスルールが互いと矛盾しないことを保証する。キャンペーン全体のビジネスルールがシミュレートされ検証された後、ステップ1270において、キャンペーンは始動可能な状態になる。
【0353】
図27を参照すると、幾つかの実施態様では、データ準備ステップ1262を実施するプロセス1350が提供される。プロセス1350は、例えば、マーケティングチームメーカー1280、マーケティングチームチェッカー1282、リスクチームメーカー1284、及びリスクチームチェッカー1286により実行される幾つかのステップを含み得る。この例では、ステップ1288において、マーケティングチームメーカー1280は、キャンペーンの実行に必要なデータのリストを構築し、ビジネスルールにより使用し得るマーケティングデータフィールド1290を選択する。ステップ1316において、リスクチームメーカー1284は、リスクモデルの実行に必要なデータのリストを構築し、ビジネスルール使用し得るリスクデータフィールド1318を選択する。ステップ1292において、システムは、マーケティングデータフィールド1290及びリスクデータフィールド1318のデータを結合に選択する。ステップ1294において、システムは、結合されたデータへのフィルタリング、集計、及び他の処理を実行する。ステップ1296において、システムは、個々のデータユニットに対してテストを実行する。データが許容可能ではない場合、プロセスはステップ1292にループバックして、結合に適切なデータを選択する。データが許容可能である場合、ステップ1298において、テストデータのプロファイルが生成され、データは承認に向けて提出される。ステップ1304において、準備されたデータ1300及び準備されたデータプロファイル1302を含むデータセットは、ステップ1304において、承認に向けて提出される。ステップ1306において、マーケティングチームメーカー1280により承認に向けて提出されたデータセットにビジネスタグを関連付け得る。例えば、ビジネスタグは、データセットの状態、誰がデータセットを承認したか(例えば、マーケティングチームメーカー1280)、及びデータセットが提出についていつ承認されたかについての情報を含み得る。
【0354】
ステップ1308において、マーケティングチームチェッカー1282は、マーケティングチームメーカー1280により提出されたデータセットをレビューし、データセットが必要且つ十分なキャンペーンデータを含むか否かを判断する。データセットが必要且つ十分なキャンペーンデータを含まない場合、マーケティングチェッカー1282はデータをマーケティングチームメーカー1280に送り戻し、マーケティングチームメーカー1280はステップ1292を再び実行して、結合するデータを選択する。データセットが必要且つ十分なキャンペーンデータを含む場合、マーケティングチームチェッカー1282はデータセットを承認する。ステップ1310において、マーケティングチームチェッカー1282により承認に向けて提出されたデータセットにビジネスタグを関連付け得る。例えば、ビジネスタグは、データセットの状態、誰がデータセットを承認したか(例えば、マーケティングチームチェッカー1282)、及びデータセットがリスクチームチェッカー1286によるレビューに向けていつ承認されたかについての情報を含み得る。
【0355】
ステップ1314において、リスクチームチェッカー1286はデータセットをレビューして、必要且つ十分なリスクデータを含むか否かを判断する。データセットが必要且つ十分なリスクデータを含んでいない場合、リスクチームチェッカー1286は、データセットをマーケティングチームメーカー1280に送り戻し、マーケティングチームメーカー1280はステップ1292を再び実行して、結合するデータを選択する。データセットが必要且つ十分なリスクデータを含む場合、リスクチームチェッカー1286は、キャンペーンによる使用についてデータセットを承認する。ステップ1312において、リスクチームチェッカー1286により承認されたデータセットにビジネスタグを関連付け得る。例えば、ビジネスタグは、データセットの状態、誰がデータセットを承認したか(例えば、リスクチームチェッカー1286)、及びデータセットがキャンペーンによる使用にいつ承認されたかについての情報を含み得る。
【0356】
図28を参照すると、幾つかの実施態様では、各キャンペーン製品1264をオーサリングし検証するステップを実施するプロセス1360が提供される。プロセス1360は、例えば、マーケティングチームメーカー1280、マーケティングチームチェッカー1282、リスクチームメーカー1284、及びリスクチームチェッカー1286により実行される幾つかのステップを含み得る。ステップ1320において、マーケティングチームメーカー1280は、キャンペーンの候補母集団を識別する。例えば、候補母集団は、特定の年齢範囲内であり、特定の範囲内の年収を有し、特定の地理的地域内で生活している顧客であり得る。ステップ1322において、マーケティングチームメーカー1280は、包含ルールをビジネスルールエンジン(BRE)に書き込む。例えば、包含ルールは、ルールを含み得、どの顧客がプロモーションオファーに適格であるかを判断する。
【0357】
ステップ1338において、リスクチームメーカー1284は、製品オファーに関連付けられた閾値(例えば、ボリューム、エンティティ、及び最大)を定義する。例えば、ある閾値は、任意の日又は週で全ての適格顧客に与えられるリワードの総額が特定の金額を超えないことを指定し得る。別の閾値は、製品に適格な顧客の総数が特定の値を超えないことを指定し得る。ステップ1340において、リスクチームメーカー1284は、広範囲の記録に基づいて除外するリスクルールを書く。例えば、リスクルールは、特定の値未満の信用スコア又は特定の値を超えるクレジットカード負債を有する顧客が、プロモーションオファーに適格ではないことを指定し得る。
【0358】
ステップ1342において、リスクチームチェッカー1286はリスクルールを評価する。リスクルールが適切ではない場合、リスクルールはステップ1340に戻り、それにより、リスクチームメーカー1284はリスクルールを書き換えることができる。リスクルールが適切である場合、リスクチームチェッカー1286はリスクルールを承認する。
【0359】
ステップ1324において、包含ルールをリスクルールとマージして、完全なキャンペーンスコアを生成する。このステップにおいて、どの顧客がキャンペーン製品オファーに適格であるか及びどの顧客が高リスクであり、オファーに適格ではないかを判断するルールは一緒にマージされてルールセットとなる。ステップ1326において、シミュレーションを実行して、完全なルールセットをテストデータに適用して、シミュレーション結果1330を生成する。シミュレーション結果1330は、ビジネスルールからの出力と、ビジネスルールからの出力の処理に基づいて生成し得る検証についてのデータ(アーチファクトとも呼ばれる)とを含む。
【0360】
検証データは以下を含み得る。シミュレーションが実行される場合、ルールカバレッジリポートが生成される。リポートは、どのルールが何度発射したかを文書化する。これは、シミュレーションカバレッジが十分であることを保証するために、各ルールが少なくとも最小回数、実行されたことを保証する。十分に(又は全く)発射しないルールは、不十分なシミュレーションカバレッジ(不良な検証データ)又は不良なルール設計を示す。キャンペーンデータのデータプロファイルが生成される。これは、各製品キャンペーンデータセットについてのデータの統計学的分布についての情報を提供する。「何人の顧客が資格を満たしたか」、「何人の顧客が資格を満たさなかったか」、又は「無効な記録があったか」等の問いに答え、見込まれた結果と比較することができる。統計学的計算を実行して、統計データを生成する。このデータは、キャンペーンの資格を満たした母集団及び満たさなかった母集団に関する追加の情報を提供する。資格を満たす顧客の収入、資格を満たす顧客の信用スコア、資格を満たさない収入、資格を満たさない信用スコア等の項目の平均、メジアン、ランク、標準偏差、及び外れ値等の統計を見込まれた値と比較することができる。実際のデータ記録の無作為標本が手動レビューに選択される。標本データは、出力データで見られた値がマーケティング基準又はリスク基準に背かない「サニティチェック」を提供する。キャンペーンコスト及び全体インパクト推定を生成し得る。これは、見込まれるキャンペーン価値(上げられる収益)対即時コスト(例えば、クレジットステートメント等のプロモーション)対償却(異なる信用リスク遮断仮定を有する)及び全体純現在価値を包含する値を計算するために、設定された数のオファー応諾率(例えば、1%、3%、5%、10%、及び25%、…)に対して実行された一連のシミュレートされた費用対効果モデルを含み得る。これらは入力モデル仮定と比較される。
【0361】
ステップ1328において、シミュレーション結果にビジネスタグを関連付け得る。例えば、ビジネスタグは、誰がシミュレーションを実行したか、シミュレーションがいつ実行されたか、及びどのデータセットがシミュレーションの実行に使用されたかについての情報を提供し得る。
【0362】
シミュレーション結果1330は、ステップ1332におけるレビューのためにマーケティングチームチェッカー1282に提供される。ステップ1334において、シミュレーション結果が適切ではなく、見込まれる結果と一貫しないとマーケティングチームチェッカー1282が判断する場合、プロセス1360はステップ1320にループバックし、それにより、マーケティングチームメーカー1280は包含ルールを改訂することができる。ステップ1336において、マーケティングチームチェッカーは、シミュレーション結果が何故、キャンペーン目標を満たさないのか等の備考を書き得、備考は、ルールセットに関連付けられたビジネスタグの一部として記憶される。シミュレーション結果が適切であり、見込まれた結果と一貫する場合、マーケティングチームチェッカー1282は、リスクチームチェッカー1286によるレビューに向けてルールを承認する。ステップ1344において、リスクチームチェッカー1286は、マーケティングチームメーカー1280によりオーサリングされた包含ルールと、リスクチームメーカー1284によりオーサリングされたリスクルールとを含むルールセットをレビューする。リスクが高すぎるとリスクチームチェッカー1286が判断する場合、プロセスはステップ1320にループバックし、それにより、マーケティングチームメーカー1280は包含ルールを改訂することができる。ステップ1346において、リスクチームチェッカーは、シミュレーション結果が何故、高すぎるリスクを示すか等の備考を書き得、備考は、ルールセットに関連付けられたビジネスタグの一部として記憶される。リスクが許容可能であるとリスクチームチェッカー1286が判断する場合、ルールセットは承認され、プロセスは次のステップに移る。
【0363】
図29を参照すると、幾つかの実施態様では、重複プロセス1266を実施するプロセス1370が提供される。プロセス1370は、マーケティングチームメーカー1280、マーケティングチームチェッカー1282、リスクチームチェッカー1286、及び抱き合わせ販売責任エグゼクティブ又はマネージャ1372により実行される幾つかのステップを含み得る。先に、
図28に示されるプロセス1360において、各製品のルールセットは評価され承認されている。プロセス1370の目標は、個々の製品のルールが、一緒に組み合わせられた場合、適宜機能し、いかなる矛盾も生み出さないことを検証することである。ステップ1372において、マーケティングチームメーカー1280は、重複ルールをビジネスルールエンジンに書き込む。例えば、ルールは、どの2つ以上の製品を同時にオファーし得るかの条件を指定し得る。ステップ1374において、全てのキャンペーン製品の完全なルールセットをテストデータに適用することによりシミュレーションが実行され、シミュレーション結果1376が生成される。シミュレーション結果1376は、ビジネスルールからの結果と、ビジネスルールからの結果の処理から生成し得る検証のためのデータ(アーチファクトとも呼ばれる)とを含み得る。
【0364】
シミュレーション結果1376内の検証データ(様々なキャンペーン製品にわたるビジネスルールのパッケージ全体の)は、シミュレーション結果1330内の検証データ(個々のキャンペーン製品のビジネスルールの)と同様であり、相違は、重複後、情報が集計ベース(各製品の分布を含む)及び製品毎ベース(製品毎ベースで生成されたものと同様で提供されることである。これにより、重複プロセスが実行される前及び後で価値が各製品から又は各製品にいかにシフトしたかの比較が可能になる。
【0365】
ステップ1382において、ビジネスタグをシミュレーション結果に関連付け得る。例えば、ビジネスタグは、誰がシミュレーションを実行したか、シミュレーションがいつ実行されたか、どのデータセットがシミュレーションの実行に使用されたかについての情報、及びシミュレーションに関してマーケティングチームメーカー1280により提供された他の備考を提供し得る。
【0366】
シミュレーション結果1376は、ステップ1378におけるレビューのためにマーケティングチームチェッカー1282に提供される。ステップ1380において、シミュレーション結果が適切ではなく、見込まれた結果と一貫しないとマーケティングチームチェッカー1282が判断する場合、プロセス1370はステップ1372にループバックし、それにより、マーケティングチームメーカー1280は重複ルールを改訂することができる。恐らく、特定の製品は、特定の期間中、特定の他の製品と重複せず、したがって、重複ルールを調整する必要はない。ステップ1384においてマーケティングチームチェッカーは、シミュレーション結果が何故、キャンペーン目標を満たさないのか等の備考を書き得、備考は、全体ルールセットに関連付けられたビジネスタグの一部として記憶される。シミュレーション結果が適切であり、見込まれた結果と一貫する場合、マーケティングチームチェッカー1282は、リスクチームチェッカー1286によりレビューに向けてルールを承認する。ステップ1386において、リスクチームチェッカー1286は、マーケティングチームメーカー1280によりオーサリングされた重複ルールを含むルールセット全体をレビューする。ステップ1388において、リスクが高すぎるとリスクチームチェッカー1286が判断する場合、プロセスはステップ1372にループバックする。シミュレーション結果が適切であり、リスクが許容可能である場合リスクチームチェッカー1286は、マネージャ1372によるレビューに向けてルールを承認する。
【0367】
ステップ1390において、マネージャ1372は、マーケティングチームメーカー1280によりオーサリングされた重複ルールを含むルールセット全体をレビューする。マネージャ1372がルールのパッケージ全体を承認しない場合、プロセスはステップ1372にループバックし、それにより、マーケティングチームメーカー1280は重複ルールを改訂することができる。ステップ1394において、マネージャ1372は、パッケージ全体が何故、キャンペーン目標を満たさないのか又は何故リスクが高すぎるのか等の備考を書き得、備考は、ルールセットのパッケージに関連付けられたビジネスタグの一部として記憶される。マネージャ1372がルールセットのパッケージ全体を承認する場合、キャンペーンはステップ1394において稼働し始める。
【0368】
プロセス1350、1360、及び1370は、キャンペーンのビジネスルールのオーサリング、チェック、及び承認が、金融機関の複数のスタッフメンバが関わる複雑なプロセスであることを示す。ルールは、マーケティングチームメーカー1280、マーケティングチームチェッカー1282、リスクチームメーカー1284、リスクチームチェッカー1286、及びマネージャ1372の間で前後に数回、やりとりされ得る。各反復において、各スタッフメンバは、ルールがマーケティングチームメーカー1280により提出されたのか、それともリスクチームメーカー1284により提出されたのか、ルールがマーケティングチームチェッカー1282により承認されたのか、それともリスクチームチェッカー1286により承認されたのか、及びルールがマネージャ1372により承認されたか否か等の各ルールの厳密なステータスを知る必要がある。各反復中、ルールに関する備考を書き、ビジネスタグに記憶し得る。
【0369】
ビジネスルールの幾つかのバージョンを記憶することができる。例えば、第1のキャンペーン製品のビジネスルールの第1のバージョンは、第2のキャンペーン製品のルールと矛盾し得、したがって、マーケティングチームメーカー1280は、ビジネスルールの第1のバージョンを記憶し、第2のキャンペーン製品のルールと矛盾しない第1のキャンペーン製品のビジネスルールの第2のバージョンを書くと決定し得る。ビジネスルールの第1のバージョンは、後のキャンペーンに有用であることができる特定のパラメータ値を有し得る。キャンペーン全体のルールセットのパッケージがマネージャ1372により承認されるときまでに、各キャンペーン製品にはビジネスルールの幾つかのバージョンを関連付け得、ルールの異なるバージョンは、異なる状況下で有用であり得るわずかに異なるパラメータ値を有し得る。
【0370】
従来のシステムよりも優れたアプリケーション開発システム100の改善の1つは、ユーザが、異なるユーザインターフェースを切り替える必要なく且つあるアプリケーションから別のアプリケーションに情報を手動でコピーする必要なく、統合ユーザインターフェース112を通してドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及びアプリケーションシミュレータ108により提供された機能にアクセスすることができることである。例えば、
図7のシステム2600は、ソフトウェアスイートで一緒に「バンドリング」されたビジネスプロセス管理ツール2612及びソースコード制御ツール2616を有するが、ビジネスプロセス管理ツール2612及びソースコード制御ツール2616は異なるユーザインターフェースを有することができ、メタデータを共有しない。したがって、例えば、システム2600を使用すると、ユーザは、ソースコード制御ツール2616を使用してビジネスルールの幾つかのバージョンのソースコードを保存し、ビジネスプロセス管理ツール2612を使用して、異なる状態間のルールの遷移を管理することができる。ソースコード制御ツール2616は、時間の経過に伴いどのユーザが特定のコードに何の変更をおこなったかを追跡する。しかしながら、ビジネスプロセス管理ツール2612により生成された状態についての情報は、ソースコード制御ツール2616に自動的にキャリーオーバーされない。したがって、ビジネスルールの様々なバージョンのソースコードが保存される場合、ビジネスプロセス管理ツール2612により生成された状態についての情報は、ソースコード制御ツール2616によりソースコードと共に保存されない。したがって、システム2600を使用して、ユーザがビジネスルールの初期バージョンを検索し、ルールが「提出済み」であったのか、それとも「承認済み」であったのか等のルールの状態を判断すること又はある状態から別の状態へのルールの遷移を誰が許可したかを特定することが難しいことがある。システム2600を使用して、ユーザは、ソースコード制御ツール2616のログと、ビジネスプロセス管理ツール2612のログとを比較して、ビジネスプロセス管理ツール2612内の特定のルールの特定のバージョンの備考をソースコード制御ツール2616内の特定のルールの同じ特定のバージョンの備考とを照合し、備考に基づいて必要とされる情報を手動で推測する必要があり得る。
【0371】
非統合アプリケーション開発システム2600よりも優れたアプリケーション開発システム100の改善の1つは、アプリケーション開発システム100が、システム2600を使用しては達成することができないか、又は達成が非常に困難である機能を提供することができることである。例えば、アプリケーションは、アプリケーションの一連のリリースが時間の経過に伴って発行されるように、時間の経過に伴い進化し得る。アプリケーションの各リリースは、特定のルールセットの特定のバージョンのパッケージを使用し得、ルールセットの特定の各バージョンは特定の状態を有し、特定の状態への遷移は特定のユーザにより承認された。アプリケーションの異なるリリースは、ルールの異なるバージョンを含む異なるパッケージを使用し得る。アプリケーションの幾つかのリリースが発行された後、アプリケーションの初期リリースが適宜機能しなかったと判断されると考える。問題の原因を突き止めるために、問題を生じたアプリケーションの特定のリリースにより使用された特定のルールセットの特定のバージョンを検索し、特定のルールセットの特定のバージョンのログをレビューし、問題が発生する前にルールセットに何の変更が行われたか、誰かそれらの変更を行ったか、誰がそれらの変更を承認したか、及びそれらの変更が何故行われたかを特定することが有用であり得る。ルールセットのパッケージ全体のログをレビューし、問題が発生する前にパッケージに何の変更が行われたか、誰かそれらの変更を行ったか、誰がそれらの変更を承認したか、及びそれらの変更が何故行われたかを特定することが有用であり得る。アプリケーションの初期リリースにより使用された特定のルールセットの特定のバージョンを使用したアプリケーションの初期リリースの第1のシミュレーションを実行し、特定のルールセットの異なるバージョンを使用したアプリケーションの第2のシミュレーションを実行し、及び/又はルールセットの幾つかのパラメータを変更することによりアプリケーションの第3のシミュレーションを実行することも有用であり得る。非統合アプリケーション開発システム2600を使用する場合、ソースコード制御ツール2616は、上述した機能の実施に必要なルールのソースコードと共にビジネスプロセス管理ツール2612により生成されたメタデータを記憶しないため、上記機能の全てを実行することは困難であり得る。非統合アプリケーション開発システム2600を使用する場合、ユーザは、ビジネスプロセス管理ツール2612からの何らかの情報をソースコード制御ツール2616の備考セクションに手動でコピーすることができるが、多くの異なるユーザがルールを書き、編集し、レビューし、承認し得、異なる人々が異なる方法で備考を書き得るため、ビジネスプロセス管理ツール2612からソースコード制御ツール2616に手動でキャリーオーバーされた情報は、異なるユーザにわたり一貫しないことがあり、情報のレビューを難しくする。これとは対照的に、アプリケーション開発システム100では、リポジトリ110に記憶されたメタデータは標準フォーマットを有し、ツール102、104、106、及び108の全てによりアクセスすることができ、非統合アプリケーション開発システム2600を使用しては達成することができない新しい機能を可能にする。
【0372】
非統合アプリケーション開発システム2600よりも優れたアプリケーション開発システム100の改善の1つは、ビジネスルールがドキュメントエディタ102により編集された後、ビジネスルールを入力記録に適用した出力を自動的に更新し、表示することができることである。例えば、ルールは、
図30に示されるように、スプレッドシートフォーマットで入力することができる。スプレッドシート2200におけるトリガー列2202、2204、2206、2208は利用可能なデータ値に対応し、行2210a~hはルールケース、すなわち、利用可能なデータ値に関連する複数の組の基準に対応する。ルールケース2210nは、所与の記録のデータ値が、ルールケースが基準を有する各トリガー列で、トリガー基準を満たす場合、その所与の記録(例えば、
図11Aにおける402)に適用される。ルールケース2210nが適用される場合、1つ又は複数の出力列2212に基づいて出力が生成される。全ての入力関係が満たされるルールケースは、「トリガー済み」と呼び得る。各出力列2212は潜在的な出力変数に対応し、適切な行2210nの対応するセル内の値が、その変数の出力がある場合、その変数の出力を決める。セルは、変数に割り当てられた値を含むことができ、又は後述するように、出力値を生成するために評価しなければならない式を含むことができる。2つ以上の出力列があり得るが、
図30には1つのみが示されている。
【0373】
図31は、入力テスト表2414、出力テスト表2416、及び幾つかのテストケースの出力を示す結果表2410の一例を示す。表2410では、各テストケースの出力は別個の行2412iに表示され、列2413a~dは、テストケース及び各ケースで計算された出力を示す。ある行が選択されると(この例では、2番目のケース又は行2412bが選択され、破線で示されている)、対応するテストケースからの入力値2414a~2414gが入力表2414に示される。そのテストケースの出力2416a~2416cは出力表2416に示される。表2416に示される出力2416i(i=a,b,c)は、テストケースからの予期される出力、計算された実際の出力、又は両方であることができる。様々なインターフェースキューを使用して、テストのステータスについてユーザに通知することができる。例えば、アイコン2419は、テストケース2及び4の行2412b及び2412dにおける出力が、ルールセットが最後にテストされたときから変更されていることを示す。いかなる他のルールとも一致しない入力値の組合せをキャッチする「デフォルト」ルールがない場合、そのような入力を有するテストケースはヌル出力2418を生成する。入力記録が、ゼロによる除算等の処理エラーで拒絶される場合、エラーを同じように示し得る。2つ以上のルールケースがテストケースによりトリガーされる場合、トリガーされたルールケースの数を示し得る(2422)。例えば、クリックすることにより、表示された出力の1つと対話することにより、ユーザに、その出力がいかに特定されたかを詳述する画面を表示することができる。
【0374】
幾つかの実施態様では、アプリケーション開発システム100は、ドキュメントエディタ102及びアプリケーションシミュレータ108を統合するため、
図32に示されるように、ルールセットがテスト入力及びテスト出力の側に示されるユーザインターフェースを提供することができる。例えば、ユーザがスプレッドシート2200においてトリガー列2202、2204、2206、2208を変更する場合、システム100は、出力テスト表2416に示されるテスト出力値2416i(i=a,b,c)を自動的に更新することができる。これにより、ユーザは、異なるルールを用いて実験し、フィードバックを素早く受信することができ、それにより、ユーザはルールを効率的に最適化することができる。上記例では、ユーザはドキュメントエディタ102を使用してスプレッドシート2200においてルールセットに変更を行う場合、システム100はアプリケーションシミュレータ108を自動的に呼び出して、ルールセットを変換式に変換し、変換式にグラフベースの計算の構成要素を関連付け、グラフベースの計算を実行し、実行の出力結果を使用して、出力テスト表2416を更新する。システム100は、シミュレータ108をオン又はオフにする選択肢をユーザに与えることができる。システム100はまた、変更がルールに行われた場合、出力を自動的に更新する選択肢又はユーザがそのような要求を行う場合のみ、出力を更新する選択肢をユーザに与えることもできる。
【0375】
統合ユーザインターフェース112(
図1)は、ユーザがドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116の機能にアクセスできるようにし、例えば、1つ又は複数のコンピュータサーバにより制御される1つ又は複数のディスプレイに示される1つ又は複数のグラフィカルユーザインターフェースであることができる。統合ユーザインターフェース112は、1つ又は複数のコンピュータサーバで実行中のモジュールにより生成された情報を示すことができる。
【0376】
図2の例では、統合ユーザインターフェース112は、コンピュータディスプレイに示されるエディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728を含む。インターフェース2720、2722、2724、2726、2728の2つ以上は、ユーザに同時に示すことができる。インターフェース2720、2722、2724、2726、2728は、ユーザに一度に1つずつ示すこともできる。
【0377】
統合ユーザインターフェース112は、ユーザがツールの1つを都合良く使用し、ツールの別の1つにアクセスできるようにするよう構成される。例えば、ソースコード制御インターフェース2724はルールのリストを示すことができ、ルールの幾つかはそれぞれ複数のバージョンを有する。ユーザは、特定のルールの特定のバージョン、例えば、「ルールABC」のバージョン1.0を右クリックすることができ、ユーザが、例えば、選択されたルールを編集し、選択されたルールの実行をシミュレートし、選択されたルールの状態を変更し、又は選択されたルールに関連するログ情報を表示できるようにするメニューが表示される。
【0378】
ユーザがメニューにおいて「ルール編集」を選択する場合、ドキュメントエディタ102が呼び出され、エディタインターフェース2720がディスプレイに示されて、ユーザが、この例では「ルールABC」のバージョン1.0である選択されたルールを編集できるようにする。エディタインターフェース2720がディスプレイに示される場合、エディタインターフェース2720は、ユーザがビジネスプロセス管理ツール104、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116にアクセスできるようにするユーザ選択可能な要素(例えば、ボタン、メニュー、リンク)を含む。
【0379】
例えば、エディタインターフェース2720がディスプレイに示されている間、ユーザは、ビジネスプロセス管理ツール104を呼び出すことにより、ルールの状態を変更すると決定し得、ビジネスプロセス管理インターフェース2722がディスプレイに示される。ビジネスプロセス管理インターフェース2722は、ユーザがドキュメントエディタ102、ソースコード制御ツール106、アプリケーションシミュレータ108、及び共通ログデータオブジェクト116にアクセスできるようにするユーザ選択可能な要素(例えば、ボタン、メニュー、リンク)を含む。
【0380】
例えば、ビジネスプロセス管理インターフェース2722がディスプレイに示されている間、ユーザは、アプリケーションシミュレータ108を呼び出すことによりルールの実行をシミュレートすると決定し得、アプリケーションシミュレーションインターフェース2726がディスプレイに示される。アプリケーションシミュレーションインターフェース2726は、ユーザがドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及び共通ログデータオブジェクト116にアクセスできるようにするユーザ選択可能な要素(例えば、ボタン、メニュー、リンク)を含む。
【0381】
例えば、アプリケーションシミュレーションインターフェース2726がディスプレイに示されている間、ユーザは、共通ログデータオブジェクト116にアクセスすることによりルールに関連するログ情報を見ると決定し得、共通ログインターフェース2728がディスプレイに示される。共通ログインターフェース2728は、ユーザがドキュメントエディタ102、ビジネスプロセス管理ツール104、ソースコード制御ツール106、及びシミュレータ108にアクセスできるようにするユーザ選択可能な要素(例えば、ボタン、メニュー、リンク)を含む。
【0382】
幾つかの実施態様では、エディタインターフェース2720、ビジネスプロセス管理インターフェース2722、ソースコード制御インターフェース2724、アプリケーションシミュレーションインターフェース2726、及び共通ログインターフェース2728の任意の組合せをユーザに同時に示すことができる。
【0383】
上述したオブジェクトの生成、リンク、ビジネスタグ付け、ルール編集、ルールシミュレーション、ビジネスルールプロセス管理、及びルールソースコード管理手法は、コンピュータで実行されるソフトウェアを使用して実施することができる。例えば、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性メモリ及び不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つの入力デバイス又はポート、及び少なくとも1つの出力デバイス又はポートを含む1つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム(分散、クライアント/サーバ、又はグリッド等の様々なアーキテクチャであり得る)で実行される1つ又は複数のコンピュータプログラムにおいてプロシージャを形成する。ソフトウェアは、例えば、計算グラフの設計及び構成に関連する他のサービスを提供するより大きなプログラムの1つ又は複数のモジュールを形成し得る。グラフのノード及び要素は、コンピュータ可読媒体に記憶されるデータ構造又はデータリポジトリに記憶されたデータモデルに準拠する他の編成データとして実施することができる。
【0384】
ソフトウェアは、汎用又は専用プログラマブルコンピュータにより可読である、CD-ROM等の媒体で提供されてもよく、又は実行されるコンピュータにネットワークを介して送られてもよい(伝搬信号に符号化される)。機能の全ては、専用コンピュータで実行されてもよく、又はコプロセッサ等の専用ハードウェアを使用して実行されてもよい。ソフトウェアは分散様式で実施し得、分散様式では、ソフトウェアにより指定された計算の異なる部分は異なるコンピュータにより実行される。そのような各コンピュータプログラムは好ましくは、記憶媒体又は装置がコンピュータシステムにより読み取られて、本明細書に記載の手順を実行する場合、コンピュータを構成し動作させるために、汎用又は専用プログラマブルコンピュータにより可読の記憶媒体又は装置(例えば、固体状態メモリ若しくは媒体又は磁気若しくは光学媒体)に記憶又はダウンロードされる。本発明によるシステムは、コンピュータプログラムが構成された記憶媒体が、コンピュータシステムに特定の予め定義された様式で動作させて、本明細書に記載された機能を実行させる場合、コンピュータプログラムが構成されたコンピュータ可読記憶媒体として実施するものと見なすこともできる。
【0385】
幾つかの本発明の実施態様が記載された。それにも関わらず、本発明の趣旨及び範囲から逸脱せずに様々な変更をなし得ることが理解されよう。例えば、上述したステップの幾つかは、順序から独立し得、したがって、記載の順序と異なる順序で実行することができる。上記説明は説明を意図したものであり、説明の範囲の限定を意図せず、説明の範囲は添付の特許請求の範囲により規定されることを理解されたい。
【0386】
幾つかの実施態様では、統合ユーザインターフェース112は、例えば、表示デバイス、オーディオ出力デバイス、及び/又は触覚デバイスを使用して1つ又は複数のフォーマットの情報、例えば、テキスト、グラフィックス、画像、オーディオ、ビデオ、及び/又は触覚フィードバックをユーザ90に提供することができる。情報は、拡張現実システム又は仮想現実システムを使用してユーザ90に提示することができる。統合ユーザインターフェース112は、キーボード、マウス、トラックボール、ジョイスティック、タッチパッド、タッチスクリーン、マイクロホン、カメラ、眼球追跡デバイス、ジェスチャ検出デバイス、及び/又は運動センサ等の1つ又は複数の入力デバイスからユーザ入力を受け入れることができる。
【0387】
例えば、ユーザ90は、コンピュータ表示画面に示されたルールセットを編集することができる。ユーザ90は、拡張現実メガネを装着することができ、ルールセットを使用して入力記録を処理するアプリケーションの実行のシミュレーションから導出された出力データは、コンピュータ表示画面の上に見えるように投影することができる。ソースコード制御に関連する情報は、コンピュータ表示画面の左側に見えるように投影することができ、ビジネスプロセス管理に関連する情報は、コンピュータディスプレイの右側に見えるように投影することができる。ユーザ90がルールセットを編集すると、改訂された出力データがコンピュータ表示画面の上に投影される。ユーザ90が、コンピュータ表示画面の左側に投影されたソースコード制御に関連する要素と対話することによりルールセットを借り出すと、選択されたルールセットはコンピュータ表示画面に示され、関連する状態情報はコンピュータ表示画面の右側に投影され、シミュレーション結果はコンピュータ表示画面の上に投影される。
【0388】
他の実施形態も以下の特許請求の範囲内にある。