記述したルールの確認

前に書いたルールを1個抜き出したのが以下のものになります。
f:id:wkzk:20090305000133p:image
で、ルールエンジン、ルールエンジンといわれていますが、中身の中枢にあるのはreteエンジンで基本的にはパターンマッチングエンジンです。reteエンジンで如何に効率よいアルゴリズムでマッチングできるか、そして速く、というのが基本にあります。Javaで普通に制御ロジックを頭にかいてIF文をイメージしてたら大間違いです。しかもルールエンジンで余計なオブジェクトをいっぱい作って無駄に時間がかかってるだけで複雑度ましてるだけやんけー、というのも、そんな毛嫌いするほどひどくはないです。今度改めてAST周りのコンパイラでどうしているのか見てみたいと思います。このルール達がエンジン上でバチ、バチっとマッチングされてaction(then)してくれます。Droolsは使いどころによっては十分かわいくなると思ってます。
よく言われてるのがゲーム(対戦コンピュータ側、ゲーム自体のコントロール)やシミュレーション系(リスク管理、予測管理、証券など)、アルゴリズムhoge hogeとかつくのも利用候補。自動ヒーリングなんとかもそうかも。JBossの中ではESBのルーティングルールとしても使われています。複雑なロジックをルールで書くことによりスッキリさせられます。もっとでかくいってしまうともともとAIから端を発しているので、自分達の英知をルール化してIT化、というのもありっちゃーありですね(みんなもう一人自分がいたらなぁ〜って思ったことはあるはず)。いろいろな可能性があるのではないですかね、使いどころって。
今度JavaOne2009にDroolsチームでるそうです、お題はCEP(Complex Event Processing)ですが,こういうのもDroolsのテリトリーになってきやんす。