El mundo que soñé
ビジネスルールとそれにまつわるソフトウェア技術の雑記帳
  • Home
  • プロフィール

Drools Category

ルールエンジンのアルゴリズム

BRMS一般, Drools, 未分類 1 Comment »

 久しぶりの更新になってしまいましたが、ここのところルールベースエンジン関連の話題が次々と出てきて・・・Droolsはいつのまにか5.3のFinalが出ていて、5.4のβまで出ているし、CorticonはProgressに買収されるし・・・ちなみに最近またDroolsの新しい本が出たようです。

 それはそうと、おかげさまで最近私もルールエンジンの仕事がだいぶ増えてきてうれしい限り。ただ、まだまだ人口に膾炙するといったところではないようで、ルールエンジンの動き等に関連していろいろ質問されることが多々あります。
たとえば
・ルールエンジンのプログラムって、if-Thenのルールが並んでいるけれども、上から順にやっていくの??
・(上記に関連して) 通常のプログラムの(単体)テストだと全部のパスを通るようにテストするけれども、 ルールの場合のテストでは、全部のパスを通す…ってどのように考えればよい?
・ルールエンジンのメモリ使用量は何に依存してきまるのでしょうか? ルール数?
・同じようにルールエンジンの処理速度は何できまる?
などなど。

 私もこのような質問をされるようになって、あらためてネットなどを調べてもみるのですが、ルールエンジンの動きとかアルゴリズムとか結構情報が少なくて、ルールエンジンの代表的なアルゴリズムであるはずのReteアルゴリズムの日本語の解説などは、ちょっと探してみたところネット上にはほとんど皆無状態でした。
 というわけで、これからぼちぼちルールエンジンの動きやアルゴリズムなど気が付いたときに書いていきたいと思います。
 さて、最初というわけでルールエンジンの動きから。以前、本宅の記事(プロダクションシステム(ルールベースシステム)とは)にルールエンジンの動きを書きましたが、もともとはこのルールエンジン、人工知能や認知心理学の研究をルーツとするもので
人間が長期記憶にあたる「ルール」を使って、認識した外界の状況(短期記憶に保持される)に合わせて判断を行うという行動がモデルとなっています。
 これをルールエンジンの動きとして翻訳してみると、
1.データの集合に対して、たくさんあるルールの条件部分をひとつひとつデータとマッチングさせて、マッチしたルールとデータのカップルを列挙しておく。
2.カップルの中からひとつを選んで実行する。
3.実行によってデータが書き換えられる場合もあるので、再度1.のカップリングを行う。
4.1~3を繰り返してマッチするルールがなくなったところで実行が終了する。
となります。
 この動きをみるとわかるように、ルールエンジンでは、すべてのデータに対して、すべてのルールの条件部のマッチングを試し、そののちにルールを実行します。したがってルールの実行順序は必ずしも上から順などといったことではなくて(実はそれなりの実行順の規則はあるのですが)、実行順に過度に依存するようなルールの書き方はむしろお作法に反するものという見方が強いです。
 特に最近ルールエンジンがよく使われている入力データのチェックなどは、(チェックそのものだけでいえば)別に順番などはどうでもよく、条件に合うか合わないかで正しくエラーが出ればそれでよいのであって、上記のようなルールエンジンの動きはこの「チェック」という作業に対して非常になじむもののように思います。




1月 21st, 2012 |



ルールエンジンとシステム内製

BRA(ビジネスルールアプローチ), BRMS一般, Drools, 本 No Comments »

 先週紹介した日経コンピュータの記事には、クラウドとルールエンジンの組み合わせを使った開発でのメリットとして8つあげられていました。このうちの8番目「内製しやすい」というのが今日のテーマ。
 確かにビジネスロジックをルールエンジンを用いて実装すると、ロジックのシステム的な制御部分を隠蔽し、本質的な部分を浮き彫りにさせる効果があります。今回あがっている保険商品の整合性チェックとか保険料の試算などは、ロジック自身はそれほど複雑でないので、ビジネスロジックをたとえば表形式(デシジョンテーブル)でまとめれば、それがほぼそのまま実際に動きます。DroolsではDSL(ドメイン記述言語)もあるので、DSLをうまく設計すれば「日本語で仕様を書けばそれがそのまま動く」といった世界を実現することも夢ではないかもしれません。たとえば

 保険料は、基本料率 * ○○割増 * 保険金額である。
  ただし
 …の場合は○○割増は1.03
 …の場合は○○割増は1.05

とかいったような。こんな感じで書いた仕様がそのまま動くとなると、業務に携わる人が直接プログラムを保守するということも現実解として十分考えられるようになってきそうです。

 今のところ日本ではBRMS(ビジネスルール管理システム)を使って、現場で業務に携わる人が直接ルールを直すという事例はまだ聞いたことはありません。ただ、ごく一般的な日本の事務現場のExcelシート、マクロの開発力(!!)などを考えると、BRMSでの現場での修正開発も案外いけるのかもしれないなあと思っている今日この頃。
 というわけで、最近「システム内製を極める」という本を読みました。基本的に日経コンピュータの記事を集めた内容なので比較的さらっと読めるのですが、最後「おわりに」には、システム開発にたずさわるものとしては考えさせられることが書いてあります。それはまた次の機会に。




10月 10th, 2011 |



JBoss Enterprise BRMS 5.1 提供開始

BRMS一般, CEP(Complex Event Processing), Drools No Comments »

DroolsのEnterprise版「JBoss Enterprise BRMS 5.1」の提供が開始されました。今回は、プレビュー版とは言え、CEP(Drools Fusionにあたる)やルールサーバの機能なども提供されており期待されるところです。

レッドハット、ビジネスルール管理システムの新版「JBoss Enterprise BRMS 5.1」を提供開始

JBoss Enterprise BRMS


1月 19th, 2011 |



JBoss DroolsのWebiner(続報)

BRMS一般, Drools No Comments »

以前お知らせしたDroolsのWebinerがここから見られるようになりました。実は私もここから後になってみました。


11月 23rd, 2010 |



JBoss DroolsのWebinar

BRMS一般, Drools 1 Comment »

DroolsのWebinarが来週開催されるようです。

ただし、日本時間で11月17日の早朝3時から・・・時間的には結構きついですが。

JBoss Droolsを用いる際のベストプラクティス
Claye Greene and Kristy Sanders

Best practices for using JBoss Drools

November 16, 2010 10:00 am to 11:00 am (Pacific time)

数年前ではオープンソースのデシジョンマネージメントのソリューションなど
歯牙にもかからないもの(?)ととらえられていましたが、現在ではJBoss Drools
などのオープンソースツールを用いた企業向けのソリューションがそれなりの
地歩を占めつつあります。

ここでは、そのJBoss Droolsについて、メリット・デメリットなどを具体的なサンプル
なども含めて議論するとのこと。なかなか参考となる話も聴けるのではないかと
思います。


11月 11th, 2010 |



Previous Entries
Next Entries
  • You are currently browsing the archives for the Drools category.

  • Categories

    • BPM、SOA (5)
    • BRA(ビジネスルールアプローチ) (8)
    • BRMS一般 (29)
    • CEP(Complex Event Processing) (3)
    • CLIPS/JESS (5)
    • Drools (25)
    • M&A (2)
    • Prolog (1)
    • むかしばなし (5)
    • エキスパートシステム (1)
    • オントロジー (3)
    • クリストファー・アレグザンダー (1)
    • システム内製 (1)
    • システム開発方法論 (2)
    • ブログについて (1)
    • 最適化 (1)
    • 未分類 (1)
    • 本 (7)
    • 第5世代コンピュータ (1)
  • Archives

    • 2012年5月
    • 2012年4月
    • 2012年3月
    • 2012年2月
    • 2012年1月
    • 2011年10月
    • 2011年9月
    • 2011年1月
    • 2010年11月
    • 2010年8月
    • 2010年4月
    • 2010年3月
    • 2010年2月
    • 2010年1月
    • 2009年9月
    • 2009年8月
    • 2009年7月
    • 2009年6月
    • 2009年5月
    • 2008年12月
    • 2008年11月
    • 2008年10月
  • Recent Posts

    • ビジネスルール管理システムとエキスパートシステム(1)
    • Drools5.4.0.Final リリース
    • 通信業界のBRMS
    • 続々 日経コンピュータの「超高速開発」特集
    • 続 日経コンピュータの「超高速開発」特集
    • ビジネスルール管理システム (BRMS) の動向 US 2011-2012
    • 日経コンピュータの「超高速開発」特集
    • Reteアルゴリズム(3)
    • Reteアルゴリズム(2)
    • Reteアルゴリズム(1)

Copyright © 2012 El mundo que soñé All Rights Reserved
RSS XHTML CSS ログイン
Wp Theme by n Graphic Design
Powered by Wordpress