Drools

DroolsJava 仮想マシン(JVM) 上で動く ビジネスルール管理システム(BRMS) です。ルールを資産として管理し、アプリケーションから呼び出して実行する設計が一般的で、判断や方針をコードから分離したいエキスパートシステム的な用途に使われます。

オープンソースとしての発端(2001 年頃)

Drools は 2001 年頃Bob McWhirter らによってコミュニティ・プロジェクトとして立ち上がった、という経緯がよく紹介されます。当初は小さなルールエンジンから始まり、Charles Forgy の Rete アルゴリズム系のマッチング効率を Java で実現する方向へ成熟していきました。

Mark Proctor がプロジェクトを牽引し、Codehaus 上での 2.0 系開発などを通じて、実務で使えるエンジンへと拡張された、という説明が一般的です。

JBoss・Red Hat を経た製品化

2005 年JBoss が Drools を取り込み、ミドルウェア製品群の一部として位置づけました。2006 年Red Hat による JBoss 買収以降は、Red Hat のビジネスルール/BRMS 製品の中核として育ち、エンタープライズ向けのドキュメントやサポート体制が厚くなっています。

KIE と現在の位置づけ

コミュニティ名は KIE(Knowledge Is Everything)傘下のプロジェクトとして整理され、Apache Software Foundation に移管されたコンポーネントも含め、ルールだけでなく BPMN や意思決定モデルなどへ幅を広げたエコシステムへ拡張されています。呼び名やパッケージは時代とともに変わりやすいので、採用時は公式ドキュメントの系譜を確認するのが安全です。

ざっくりいうと

業務ルールをコードから分離し、宣言的なルール記述Rete 系のマッチングで、複雑な条件分岐を効率よく扱います。マイクロサービスや Spring などと組み合わせる例が多いです。

他との違い(目安)

  • CLIPS は汎用エキスパートシェルに近く、Droolsエンタープライズ Java 圏での運用・ガバナンスを想定した機能が厚いです。
  • SOAR / ACT-R は認知アーキテクチャであり、Drools の主戦場である 与信・割引・コンプライアンス判定などの業務ルールとは距離があります。
  • PyKE が Python に寄るのに対し、Drools は JVM 前提です。

関連