あなたの質問の 1 つに基づいて、最初に解決しなければならないことがあります。本質的に:
- エキスパートは、ルール エンジン ランタイムです。
- Guvnor は、後で Expert で実行されるルールを作成および保存するためのツールです。
Guvnor は、テスト ハーネスに必要なものを除いて、ルールのランタイムを提供しません。ランタイム環境には常に Expert が必要です。Guvnor を使用すると、ルールを管理して保存できます。また、ガイド付きエディターや Web デシジョン テーブルなど、いくつかの便利な GUI ツールも提供します。ただし、Eclipse などの IDE でルールを編集し、Guvnor WebDav Eclipse プラグインを使用してそれらを Guvnor にプッシュすることもできます。
通常、Guvnor Web アプリケーションを 1 つのサーバーに配置し、アプリケーションを別のサーバーに配置します。コンパイル済みのルールを Guvnor からアプリケーション ビルドにダウンロードし、アプリケーションと共にデプロイできます。または、コードで URL リソースを定義してナレッジ ベースを作成し、Guvnor パッケージの URL を指定することもできます。その場合、アプリケーションは起動時にナレッジ ベースをロードし、実行時に再ロードできます。
たとえば、次のコードは、"Approved" というパッケージ スナップショットを、ナレッジ ベースを構築するためのリソースとしてダウンロードします。
UrlResource urlResource =
(UrlResource) ResourceFactory.newUrlResource(
"http://my.guvnor.local/.../package/mypackage/Approved");
urlResource.setBasicAuthentication("enabled");
urlResource.setUsername("myusername");
urlResource.setPassword("mypassword");
KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder();
builder.add(urlResource, resource.getType());
編集- Guvnor でルールが変更されたときに実行時にルールをリロードしたい場合は、KnowledgeAgent を見てください。
私が Guvnor を使用する主な理由は、非技術者がデシジョン テーブルと DSL ベースのガイド付きエディターを使用してルールを作成できるようにすることです。
私は Eclipse で技術的なルールを編集するのが好きです。そこでは、それらに関する単体テストを簡単に作成し、期待どおりに動作していることを評価できます。Guvnor のテスト機能よりもずっと簡単だと思います。また、Guvnor はいくつかのバージョン管理を提供していますが、技術的なルールのバージョン管理としては Subversion/Git の方がずっと好きです。
また、Eclipse で DSL を作成し、それを Guvnor にデプロイします。これにより、ガイド付きルールは、技術者以外のユーザーにとって非常に簡単に操作できるようになります。
テスト規則
テストに関しては、いくつかのオプションがあります。Guvnor にはテスト機能があり、さまざまな入力に基づいて期待値を記述できます。ただし、個人的には、その方法は扱いにくく、使用が制限されていると感じています。私は Java/JUnit でテストを書くことをはるかに好みます。
まず、DRL で記述された 1 つまたは 2 つの技術ルールをロードし、必要に応じてアクティブ化されていることを評価し、必要に応じて推論された事実を生成する単純な単体テストを作成できます。
より複雑なテストでは、Guvnor でパッケージを使用してナレッジ ベースを作成し、ファクトを挿入してルールを実行するテストを作成し、ガイド付きエディターで構築されたルールを含め、パッケージ全体が正しく機能していることを評価します。意思決定表。
Guvnorのその他の用途
Guvnor エディターの機能がより豊富になり、単なるルール以上のエディターおよびリポジトリーになりつつあることは注目に値します。たとえば、BPM プロセス用の豊富なツールがあり、これはすぐに Eclipse などの IDE で得られるものよりも優れたものになるはずです。
概要
すべてのルールが自分自身や他の開発者によって DRL で記述されている場合、Guvnor を使用するメリットはほとんどありません。実際、私はそれが邪魔だと思うでしょう。ただし、ガイド付きエディターまたはデシジョン テーブルを利用したい場合、または「ビジネス」ユーザーにいくつかのルールを管理させたい場合は、Guvnor を詳しく調べる必要があります。