BRMS

Contents

BRMSとは

BRMSはBusiness Rule Management Systemの略で、業務上の規則や条件、判断基準、経験的な対処パターンをビジネスルールとして定義・登録し、その組み合わせから複雑な業務判断を自動的に行うコンピュータ・システムのこと。

エキスパートシステム、ルールベースAI、ルールエンジン、ルールシステムなどとも呼ばれる。

通常は何らかの事前処理された集計データなどを使用してビジネスルール処理を行うと思われるが、事前処理に関してはBRMSと別の手段(ELTツールなど)で行っておく必要がある。そのため、ノンプログラミングでBRMSを使用できたとしても、それ以外の部分でプログラミングが必要になることがままある。

ビジネスルールの定義方法として、一般的に次のものがある。

 

BRMSの製品の種類

無償で利用できるもの

Drools

読み方は”ドルール”。

ルール言語はプログラミング言語に近いDRLに加え、自然言語に近いDSLも使用できる。ただし、DSLは内部でDRLへと変換されるが、そのマッピングは自分であらかじめ定義しておく必要がある。

Droolsには以下のソフトウェアが含まれる。

デシジョンテーブルについては、Business Centralを使用せずにエクセルなどのスプレッドシートを使用して作成することもできる。使用方法はこちらが参考になる。
なお、ディシジョンテーブルを作成しても内部でルール言語に変換されるだけで、実行時には同じ扱いである。また、ディシジョンテーブルのセルには直接関数を記述できないが、ルール言語で定義した関数を指定することで動的な処理を埋め込むことができる。

有償版のJBoss BRMS向けであるが、こちらの資料がわかりやすい。

 

OpenRules

エクセルなどのスプレッドシートに、ルール言語とディシジョンテーブルを混在させて、スプレッドシートのみでビジネスルールを作成できる。

旧来のモデルである”Classic OpenRules BRDMS”と、大規模環境やクラウド環境にも対応した”OpenRules Decision Manager”がある。新しく使い始めるなら”OpenRules Decision Manager”のほうが良い。

有償版もあり、無償版はGPLライセンスであるので、OpenRulesを呼び出すプログラムを提供する場合はその相手に公開しなければならない。Webサービスや組織内部でしか使用しないのであれば、公開義務はない。

開発の際はこちらのドキュメントを最初に読むとよい。

外部サイトであるが、こちらもサンプルとして参考になる。

 

OpenL Tablets

フレームワークに近く、ルールに沿ったオブジェクトのクラスを作成して対応付ける必要がある。

 

jBilling

請求書作成専用のソフトウェア。請求書作成後はPDFへのエクスポートやメール送信なども可能。

jBilling自体は有償であり、無償で使用できるのは、jBilling Communityである。両者の機能の差異は以下参照
http://www.jbilling.com/community

Community版の場合、APIを使用できないので、原則単独で使用する。つまり、用意されたUIから請求書の要素を入力し、定型的な計算方法を使用して請求書を作成するだけで、複雑なルールに基づく計算はできない。ただし、Droolsと連携可能であるので、Droolsを使用して独自ルールに基づく計算をすることができる。
参考:http://www.jbilling.com/documentation/users/getting-started/brms

 

Easy Rules

フレームワーク

 

RuleBook

フレームワーク

 

JESS

開発は停止されている模様

 

有償で使用できるもの

Progress Corticon

プログラムのコードを書かずに、開発可能。自作のプログラムと連携することもできる。

 

Red Hat Decision Manager

オープンソースであるDroolsに対し、Red Hatが追加テストを行い、サポートを付けて販売しているもの。旧Red Hat JBoss BPMS。

 

Pega Platform

 

Sparkling Logic

 

お薦めの製品

無償で利用できるもの

ビジネスルールをプログラムから分離するということが、BRMSの第一の目的あるため、ビジネスルールとプログラム上のオブジェクトとの対応付けに独自コードが必要になる、フレームワーク型より、ライブラリ型のほうが良い。

また、ルールの作成に独自のUIが用意されているか、Excelなどのスプレッドシートがあり、それらのみで完結する製品のほうが、ビジネスルールをメンテナンスする、非エンジニアにとっては扱いやすい。

更に、現在もアップデートが続いている製品のほうが良い。

異常を満たす製品はDroolsとOpenRulesのみである。

どちらが良いかは基本的には使用するルール言語やディシジョンテーブルの作成方法について、気に入ったほうを選択すれば良いだろう。


Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876