Drools チュートリアル: Drools ルール エンジン Archi構造と例
よだれとは何ですか?
Drools オープンソースのビジネスルール管理ソフトウェア(BRMS)で、 Java ビジネス ルール エンジン、Web オーサリング、ルール管理アプリケーション、意思決定モデルと表記モデルのランタイム サポートなど、さまざまな機能をユーザーに提供します。Rete パターン マッチング アルゴリズムの高度な実装システムを使用します。
Drools は Apache License 2.0 に基づいてリリースされ、あらゆる JVM と互換性があり、Maven Central Repository でも利用できます。
Drools ツールは、ビジネス プロセス内で見つかったロジックとデータを分離して推論するのに役立ちます。 前方および後方の連鎖推論ベースの drools ルール エンジンをサポートします。
よだれは XNUMX つの部分に分かれています。
- オーサリング – ルール ファイルの開発が含まれます。
- ランタイム – これには、ワーキングメモリの作成とアクティベーションの処理が含まれます。
ルールとは何ですか?
ルールは、「特定の条件が発生した場合には、いくつかのタスクを実行する」というように表現されることが多い知識の一部です。
ルールの最も重要な部分は、 いつ 一部。 一度 いつ 部分的には満足ですが、 その後 部分がトリガーされます。
構文:
When <Condition is true> Then <Take desired Action>
パターンマッチング手法
パターン マッチング手法は、新しいまたは古い事実を生成ルールと比較するのに役立ちます。 これは推論エンジンによって完成されます。
Algorithms パターン マッチングに使用されるものは次のとおりです。
- Reteアルゴリズム
- リープアルゴリズム
- 線形アルゴリズム
- 治療アルゴリズム
ただし、Drools で主に使用されるアルゴリズムは Rete アルゴリズムです。
Reteアルゴリズム
Rete アルゴリズムは、プロダクション ルール システムの実装を可能にする便利なパターン マッチング アルゴリズムです。 速度を上げるためにメモリを犠牲にするのに役立ちます。 また、ノード共有の助けを借りて、特定の種類の冗長性を削減または排除します。 異なるファクトタイプ間で結合を実行する際に、部分一致を保存します。
よだれルールエンジン
よだれルールエンジン は、Drools ソフトウェアに Expert システムを実装するためのルールベースのアプローチです。 ルール エンジンは、何を行うか、どのように行うかなどの決定を支援する知識ベースのシステムであるエキスパート システムを提供します。 知識を推論に使用できる知識ベースに収集します。
Drools ツールスイート
この Drools Rule Engine チュートリアルでは、Drools Tool Suite について学びます。 Drools スイートの一部として提供される XNUMX 種類のツールを次に示します。
- よだれガブナー: これは、Drools KnowledgeBase の一元的なリポジトリです。
- よだれが流れる: ワークフローとビジネスプロセスを提供します。
- よだれフュージョン: 複雑なイベント処理に使用されるツール
- Drools エキスパートまたはルール エンジン: 推論を実行するための便利なツールです。
- よだれプランナー: To は、NP の難しい計画問題を含む自動計画を提供します。
Drools の重要なコンポーネント
この Drools チュートリアルでは、Drools の重要なコンポーネントについて学びましょう。
Drools で使用される重要な用語は次のとおりです。
- 事実 – ファクトは、ルールの入力として機能するデータを表します
- ワーキングメモリ – ファクトを含むストレージ。パターン マッチングに使用されます。 変更、挿入、削除が可能です。
- ナレッジセッション – このコンポーネントは、ルールの実行に必要なすべてのリソースを保持します。 ここでは、すべてのファクトが単一のセッションに挿入され、一致するルールが起動されます。
- ナレッジベース – Drools エコシステム内の知識を表します。ルールが見つかるリソースの構成を保存します。
- モジュール – これは、異なるセッションを保持できる複数のナレッジベースを保存するモジュールです
Archiよだれの構造
Drools アーキテクチャの動作システムは次のとおりです。
ステップ1) ルールはルール ベースにロードされ、いつでも利用できます。
ステップ2) ファクトはワーキングメモリにアサートされ、そこで変更または撤回される場合があります。
ステップ3) 新規または既存のファクトを運用ルールと照合するプロセスはパターン マッチングと呼ばれ、ルール エンジンによって実行されます。
ステップ4) アジェンダを使用すると、競合解決戦略を利用して、競合するルールの実行順序を管理できます。
よだれの特徴
Drool の重要な機能は次のとおりです。
- アプリケーションを動的ロジックから分離するのに役立ちます
- 宣言型プログラミング
- 知識の集中化
- 速度と拡張性
- アプリケーションからロジックを分離する
- わかりやすいルール
Drools プラグインを追加する方法 Eclipse
この Drools チュートリアルでは、Drools プラグインを追加する方法を学びましょう Eclipse.
ステップ1) jBPM統合の「配布ZIP」をクリックします。
に行く https://www.drools.org/download/download.html jBPM Integration の「Distribution ZIP」をクリックします。 ダウンロードしたら、ハードドライブに抽出します。
ステップ2) 新しいソフトウェアをインストールする
In Eclipseをクリックし、「新しいソフトウェアのインストール」を選択します。
ステップ3) 「追加」ボタンをクリックします
ソフトウェアを追加するには、「追加」ボタンをクリックします。
ステップ4) フォルダを参照
次の画面で、「ローカル」をクリックし、フォルダー「org.drools.updatesite/」を選択し、「OK」をクリックします。
ステップ5) 「次へ」ボタンをクリックします
インストール修復ページで、「次へ」ボタンをクリックします。
ステップ6) 使用許諾契約に同意する
使用許諾契約に同意し、「次へ」をクリックします。
ステップ7) リブート Eclipse
ソフトウェアがダウンロードされ、Eclipse を再起動するように求められます。
ステップ8) インストールプロセスが完了しました
In Windows > [設定] メニューに、インストールされていることを示す Drools オプションが表示されます。
Drools プログラム Hello World の例
以下は、Hello World プログラムの Drools の例です。
package com.sample import 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 ルールの管理、即時応答、認証、コンテンツ サポートの取得に役立ちます。
ルールエンジンの欠点
ルール エンジンを使用する場合の欠点/短所は次のとおりです。
- 開発者がこのプログラミング方法を理解するには多大な学習努力が必要です
- ルール エンジンは、問題をトラブルシューティングするための安全な方法ではありません。
- より多くのメモリを消費するためのルール エンジンの動作を理解する必要がある
- 複雑な分岐には幅広いルールがあります。
ルールは時間の経過とともに変更される可能性があり、コードの変更によって有効になります。
まとめ
- JBoss Drools はビジネス ロジック統合プラットフォーム (BLiP) です。
- Drool ツールのタイプは次のとおりです: 1) Drools Guvnor 2) Drools Flow 3) Drools Fusion 4) Drools Expert 5) Drools、Planner。
- Drool は、アプリケーションを動的ロジックから分離するのに役立ちます。
- ファクトは、ルールの入力として機能するデータを表しています。
- ワーキングメモリはファクトを格納したストレージであり、パターンマッチングに使用されます。 変更、挿入、削除が可能です。
- ナレッジ ベースは、ルールの実行に必要なすべてのリソースを保持するコンポーネントです。
- ナレッジ セッションは、Drools エコシステム内のナレッジを表します。
- ナレッジ ベースは、Drools エコシステム内の知識を表します。
- モジュールには複数のナレッジ ベースが保存され、さまざまなセッションを保持できます。
- ルールは、「特定の条件が発生した場合には、いくつかのタスクを実行する」というように表現されることが多い知識の一部です。
- Drools は、ルールベースのアプローチを使用してエキスパート システムを実装するルール エンジンです。
- フォワードチェーン エンジンは事実を確認し、特定の結論を導き出します。
- 逆方向連鎖エンジンには設定された目標があり、エンジンはそれを満たそうとします。
- Rete アルゴリズムは、プロダクション ルール システムの実装を可能にする便利なパターン マッチング アルゴリズムです。
- ルールは開発者やビジネス アナリストにとって理解しやすいものです。
- Drool のようなルール エンジンを使用する場合の主な欠点は、開発者がこのプログラミング方法を知るために多大な学習努力が必要になることです。