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