Drools-introduction

提供:Dev Guides
移動先:案内検索

よだれ-はじめに

Javaエンタープライズレベルのアプリケーションは、3つの部分に分割できます-

  • UI-ユーザーインターフェイス(フロントエンド)
  • データベースに接続されているサービス層
  • ビジネス層

たとえば、SpringやStrutsなど、UIとサービスレイヤーを一緒に処理する多くのフレームワークがあります。 しかし、Droolsが登場するまで、ビジネスロジックを処理する標準的な方法はありませんでした。

Droolsとは何ですか?

Droolsは*ビジネスロジック統合プラットフォーム(BLiP)*です。 それはJavaで書かれています。 これは、JBossおよびRed Hat、Inc.が支援するオープンソースプロジェクトです。 Reteパターンマッチングアルゴリズムを拡張および実装します。

素人の言葉で言えば、Droolsは、ビジネスプロセス内で見つかったロジックとデータを分離し、推論することができるツールのコレクションです。 注意が必要な2つの重要なキーワードは、 LogicData です。

Droolsは、 AuthoringRuntime の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などのツールは、ルールを編集および管理し、すぐにフィードバック、検証、およびコンテンツ支援を取得する方法を提供します。 監査およびデバッグツールも利用できます。