Drools-はじめに
Javaエンタープライズレベルのアプリケーションは、3つの部分に分けることができます-
- UI-ユーザーインターフェイス(フロントエンド)
- データベースに接続されているサービスレイヤー
- ビジネス層
SpringやStrutsなど、UIとサービスレイヤーを一緒に処理するフレームワークがいくつかあります。それでも、Droolsが登場するまで、ビジネスロジックを処理する標準的な方法はありませんでした。
Droolsとは何ですか?
Droolsは Business Logic integration Platform (BLiP)。Javaで書かれています。これは、JBossとRed Hat、Incが支援するオープンソースプロジェクトです。Reteパターンマッチングアルゴリズムを拡張および実装します。
素人の言葉で言えば、Droolsは、ビジネスプロセス内にあるロジックとデータを分離して推論できるようにするツールのコレクションです。注意する必要がある2つの重要なキーワードはLogic そして Data。
Droolsは2つの主要な部分に分かれています。 Authoring そして Runtime。
Authoring −オーサリングプロセスには、ルールファイル(.DRLファイル)の作成が含まれます。
Runtime −作業メモリーの作成とアクティベーションの処理が含まれます。
ルールエンジンとは何ですか?
Droolsは、ルールベースのアプローチを使用してエキスパートシステムを実装するルールエンジンまたはプロダクションルールシステムです。エキスパートシステムは、知識表現を使用して、取得した知識を推論に使用できる知識ベースに処理する知識ベースのシステムです。
プロダクションルールシステムは、命題論理と一階述語論理を簡潔で曖昧さのない宣言的な方法で表現するための知識表現に焦点を当てたチューリング完全です。
プロダクションルールシステムの頭脳は Inference Engineこれは、多数のルールや事実に拡張できます。推論エンジンは、事実とデータをプロダクションルールと照合します-別名Productions あるいは単に Rules –行動につながる結論を推測する。
プロダクションルールは、知識表現を推論するために一階述語論理を使用する2つの部分からなる構造です。ビジネスルールエンジンは、ランタイム実稼働環境で1つ以上のビジネスルールを実行するソフトウェアシステムです。
ルールエンジンを使用すると、「What to Do」ではなく「How to do it。」
ルールとは何ですか?
ルールは、知識の断片は、多くの場合、のように表現されている「場合には、いくつかの条件が発生し、その後、いくつかのタスクを実行します。」
When
<Condition is true>
Then
<Take desired Action>
ルールの最も重要な部分は when部。の場合when 一部が満たされている、 then パーツがトリガーされます。
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
パターンマッチング
新規または既存のファクトをプロダクションルールと照合するプロセスは、パターンマッチングと呼ばれ、推論エンジンによって実行されます。パターンマッチングに使用されるアルゴリズムには、次のようなものがあります。
- Linear
- Rete
- Treat
- Leaps
Droolsは、Reteアルゴリズムを実装および拡張します。Drools Reteの実装はReteOOと呼ばれ、Droolsがオブジェクト指向システム用のReteアルゴリズムの拡張および最適化された実装を持っていることを意味します。
ルールエンジンの利点
宣言型プログラミング
ルールを使用すると、難しい問題の解決策を簡単に表現し、解決策を検証することもできます。コードとは異なり、ルールはそれほど複雑でない言語で書かれています。ビジネスアナリストは、一連のルールを簡単に読み取って検証できます。
ロジックとデータの分離
データはドメインオブジェクトに存在し、ビジネスロジックはルールに存在します。プロジェクトの種類によっては、この種類の分離が非常に有利な場合があります。
速度とスケーラビリティ
Droolsが記述されているReteOOアルゴリズムは、すでに実証済みのアルゴリズムです。Droolsの助けを借りて、アプリケーションは非常にスケーラブルになります。頻繁に変更要求がある場合は、既存のルールを変更せずに新しいルールを追加できます。
知識の一元化
ルールを使用して、実行可能な知識のリポジトリ(知識ベース)を作成します。これは、ビジネスポリシーの信頼できる唯一の情報源です。理想的には、ルールは非常に読みやすいので、ドキュメントとしても使用できます。
ツールの統合
Eclipseなどのツールは、ルールを編集および管理し、フィードバック、検証、およびコンテンツ支援を即座に取得する方法を提供します。監査およびデバッグツールも利用できます。