Drools Tutorial: Drools Rule Engine Architecture & Examples

よだれとは何ですか?

Drools Java で書かれたオープンソースのビジネス ルール管理ソフトウェア (BRMS) で、ビジネス ルール エンジン、Web オーサリング、ルール管理アプリケーション、意思決定モデルと表記モデルのランタイム サポートなどのさまざまな機能をユーザーに提供します。 それは、rete パターン マッチング アルゴリズムの高度な実装システムを使用します。

Drools は Apache License 2.0 に基づいてリリースされ、あらゆる JVM と互換性があり、Maven Central Repository でも利用できます。

Drools ツールは、ビジネス プロセス内で見つかったロジックとデータを分離して推論するのに役立ちます。 前方および後方の連鎖推論ベースの drools ルール エンジンをサポートします。

よだれは XNUMX つの部分に分かれています。

  • オーサリング – ルール ファイルの開発が含まれます。
  • ランタイム – これには、ワーキングメモリの作成とアクティベーションの処理が含まれます。

ルールとは何ですか?

ルールは、「特定の条件が発生した場合には、いくつかのタスクを実行する」というように表現されることが多い知識の一部です。

ルールの最も重要な部分は、 いつ 一部。 一度 いつ 部分的には満足ですが、 その後 部分がトリガーされます。

構文:

When
<Condition is true>
Then
<Take desired Action>

パターンマッチング手法

パターン マッチング手法は、新しいまたは古い事実を生成ルールと比較するのに役立ちます。 これは推論エンジンによって完成されます。

パターン マッチングに使用されるアルゴリズムは次のとおりです。

  • Reteアルゴリズム
  • リープアルゴリズム
  • 線形アルゴリズム
  • 治療アルゴリズム

ただし、Drools で主に使用されるアルゴリズムは Rete アルゴリズムです。

Reteアルゴリズム

Rete アルゴリズムは、プロダクション ルール システムの実装を可能にする便利なパターン マッチング アルゴリズムです。 速度を上げるためにメモリを犠牲にするのに役立ちます。 また、ノード共有の助けを借りて、特定の種類の冗長性を削減または排除します。 異なるファクトタイプ間で結合を実行する際に、部分一致を保存します。

よだれルールエンジン

よだれルールエンジン は、Drools ソフトウェアに Expert システムを実装するためのルールベースのアプローチです。 ルール エンジンは、何を行うか、どのように行うかなどの決定を支援する知識ベースのシステムであるエキスパート システムを提供します。 知識を推論に使用できる知識ベースに収集します。

Drools ツールスイート

この Drools Rule Engine チュートリアルでは、Drools Tool Suite について学びます。 Drools スイートの一部として提供される XNUMX 種類のツールを次に示します。

  • よだれガブナー: これは、Drools KnowledgeBase の一元的なリポジトリです。
  • よだれが流れる: ワークフローとビジネスプロセスを提供します。
  • よだれフュージョン:comで使用するツールplex イベント処理
  • Drools エキスパートまたはルール エンジン: 推論を実行するための便利なツールです。
  • よだれプランナー: To は、NP の難しい計画問題を含む自動計画を提供します。

Drools の重要なコンポーネント

この Drools チュートリアルでは、Drools の重要なコンポーネントについて学びましょう。

Drools で使用される重要な用語は次のとおりです。

  • 事実 – ファクトは、ルールの入力として機能するデータを表します
  • ワーキングメモリ – ファクトを含むストレージ。パターン マッチングに使用されます。 変更、挿入、削除が可能です。
  • ナレッジセッション – このコンポーネントは、ルールの実行に必要なすべてのリソースを保持します。 ここでは、すべてのファクトが単一のセッションに挿入され、一致するルールが起動されます。
  • ナレッジベース – それはよだれの知識を表します ecosシステム。ルールが見つかったリソースの形成を保存します。
  • モジュール – これは、異なるセッションを保持できる複数のナレッジベースを保存するモジュールです

Architecture of Drools

よだれルールエンジン Archi構造
よだれルールエンジン Archi構造

Here is the working system of Drools archi構造:

ステップ1) ルールはルール ベースにロードされ、いつでも利用できます。

ステップ2) ファクトはワーキングメモリにアサートされ、そこで変更または撤回される場合があります。

ステップ3) 新規または既存のファクトを運用ルールと照合するプロセスはパターン マッチングと呼ばれ、ルール エンジンによって実行されます。

ステップ4) アジェンダを使用すると、競合解決戦略を利用して、競合するルールの実行順序を管理できます。

よだれの特徴

Drool の重要な機能は次のとおりです。

  • アプリケーションを動的ロジックから分離するのに役立ちます
  • 宣言型プログラミング
  • 知識の集中化
  • 速度と拡張性
  • アプリケーションからロジックを分離する
  • わかりやすいルール

Drools プラグインを追加する方法 Eclipse

この Drools チュートリアルでは、Drools プラグインを追加する方法を学びましょう Eclipse.

ステップ1) jBPM統合の「配布ZIP」をクリックします。
  https://www.drools.org/download/download.html jBPM Integration の「Distribution ZIP」をクリックします。 ダウンロードしたら、ハードドライブに抽出します。

Drools プラグインを追加する Eclipse

ステップ2) 新しいソフトウェアをインストールする
In Eclipseをクリックし、「新しいソフトウェアのインストール」を選択します。

Drools プラグインを追加する Eclipse

ステップ3) 「追加」ボタンをクリックします
ソフトウェアを追加するには、「追加」ボタンをクリックします。

Drools プラグインを追加する Eclipse

ステップ4) フォルダを参照
次の画面で、「ローカル」をクリックし、フォルダー「org.drools.updatesite/」を選択し、「OK」をクリックします。

Drools プラグインを追加する Eclipse

ステップ5) 「次へ」ボタンをクリックします
インストール修復ページで、「次へ」ボタンをクリックします。

Drools プラグインを追加する Eclipse

ステップ6) 使用許諾契約に同意する
使用許諾契約に同意し、「次へ」をクリックします。

Drools プラグインを追加する Eclipse

ステップ7) リブート Eclipse
ソフトウェアがダウンロードされ、再起動するよう求められます eclipse.

ステップ8) インストールプロセスが完了しました
In Windows > Preferences menu, you will see the Drools option indicating it’s installed.

Drools プラグインを追加する Eclipse

Drools プログラム Hello World の例

以下は、Hello World プログラムの Drools の例です。

package com.sample
inport com.sample.DroolsTest.Message;
rule "Hello World"
 when
	m : Message( status ** Message.Hello, myMessage : message )
  then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE ); 
update( m );
end
 rule "GoodBye"

when
	Message( status ** Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end

バックワードチェーンとフォワードチェーンとは何ですか?

フォワードチェーン エンジンは事実を確認し、特定の結論を導き出します。

医療診断システムのシナリオを考えてみましょう。 患者の症状が事実として作業記憶に組み込まれれば、その患者を病気と診断するのは簡単です。

後方連鎖と前方連鎖

フォワードチェーンエンジン

逆方向連鎖エンジンには設定された目標があり、エンジンはそれを満たそうとします。

医療診断の同じシナリオを考えてみましょう。 ある病気が流行したとします。 この AI は、特定の個人がこの病気に罹患していると推定し、入手可能な情報に基づいてその診断が正しいかどうかを判断しようとすることができます。

後方連鎖と前方連鎖

バックチェーンエンジン

Drools ルール エンジンを使用する理由

Drools ルール エンジンを使用する主な理由は次のとおりです。

  • ルールは開発者にとって理解しやすく、 ビジネスアナリスト.
  • ルールは簡単に維持できます。
  • ルール エンジンは、エンジンのパフォーマンスがルールの数に依存しないという Rete アルゴリズムを使用します。
  • ルールは、アプリケーションを停止せずに変更および展開できます。
  • 比較的静的なコードベースからビジネス ロジックを外部化します。
  • ルールはそれほど複雑ではない形式で作成されているため、ビジネス アナリストはルールのグループを簡単に読んで検証できます。
  • ルールを使用すると、形式で実行可能な知識の倉庫を作成できます。
  • のようなツール Eclipse ルールの管理、即時応答、認証、コンテンツ サポートの取得に役立ちます。

ルールエンジンの欠点

ルール エンジンを使用する場合の欠点/短所は次のとおりです。

  • 開発者がこのプログラミング方法を理解するには多大な学習努力が必要です
  • ルール エンジンは、問題をトラブルシューティングするための安全な方法ではありません。
  • より多くのメモリを消費するためのルール エンジンの動作を理解する必要がある
  • com には幅広いルールがありますplex 分岐。

ルールは時間の経過とともに変更される可能性があり、コードの変更によって有効になります。

まとめ

  • JBoss Drools はビジネス ロジック統合プラットフォーム (BLiP) です。
  • Drool ツールのタイプは次のとおりです: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools、Planner。
  • Drool は、アプリケーションを動的ロジックから分離するのに役立ちます。
  • ファクトは、ルールの入力として機能するデータを表しています。
  • ワーキングメモリはファクトを格納したストレージであり、パターンマッチングに使用されます。 変更、挿入、削除が可能です。
  • ナレッジ ベースは、ルールの実行に必要なすべてのリソースを保持するコンポーネントです。
  • ナレッジ セッションは Drools 内のナレッジを表します ecosシステム。
  • ナレッジベースはDrools内の知識を表します ecosシステム。
  • モジュールには複数のナレッジ ベースが保存され、さまざまなセッションを保持できます。
  • ルールは、「特定の条件が発生した場合には、いくつかのタスクを実行する」というように表現されることが多い知識の一部です。
  • Drools は、ルールベースのアプローチを使用してエキスパート システムを実装するルール エンジンです。
  • フォワードチェーン エンジンは事実を確認し、特定の結論を導き出します。
  • 逆方向連鎖エンジンには設定された目標があり、エンジンはそれを満たそうとします。
  • Rete アルゴリズムは、プロダクション ルール システムの実装を可能にする便利なパターン マッチング アルゴリズムです。
  • ルールは開発者やビジネス アナリストにとって理解しやすいものです。
  • Drool のようなルール エンジンを使用する場合の主な欠点は、開発者がこのプログラミング方法を知るために多大な学習努力が必要になることです。