2012-04-27 9 views
1

私はスタンドアロンJavaアプリケーションを持っています。そのため、ルールエンジンを統合する必要があります。プロパティファイルまたはXMLファイルを使用してルールを定義する必要があります。私はルールエンジンを持って、プロパティやXMLファイルで定義されたこれらのルールを読んで、アプリケーションにコードを実装する必要があります。スタンドアロンJavaアプリケーション用のルールエンジン

このようなルールエンジンのいずれか(オープンソース)私は自分のアプリケーションに使用できます。私は、Application ServerまたはWeb Serverにデプロイする必要があるルールエンジンは必要ありません。私は何らかの種類のjarファイルを用意する必要があります。ここで私は自分のアプリケーションにこれを直接使用できます。

私が利用できるルールエンジンがある場合は、私に案内してください。

+1

既にソフトウェアを試しましたか?もしそうなら、これも言及してください:あなたはすでにあなたが試した(そして拒否した)提案を得るかもしれません。また、これらのルールについてもう少し詳しく説明できますか(例が役に立ちます)。 –

答えて

-1
+0

私はあなたの回答が下痢を使用することをお勧めする理由を説明していないので、あなたの答えをマークしています。ユーザーが基本的なGoogle検索を既に行っていることは、質問から明らかです。 – snegi

1

プラグアラートをお勧めします!

自分のプロジェクトでは偏っていますが、非常に高速で軽量なルールエンジンが必要な場合は、Roolieをチェックしてください。

プロジェクトの背後にある考え方は、JSR-94が過剰であることを私の個人的な経験に基づいており、ほとんどのルールエンジンは、あまりにも多くの依存関係や急な学習曲線と、あまりにも重いです。

Roolieは、アプリケーションの状態を変更する「機能的な」ルールには対応していません(これらはJavaのいずれかのIMHOである必要があります)。

代わりに、開発者は単一の "passes"メソッドを使用して簡単なルールを実装し、短絡ブールロジックをXMLファイルに組み込むことができます。実行時の依存関係はまったくなく、非常に高速です。

それは(彼らは、「管理者」または「パワーユーザー」の「ログイン」、および「十分なポストを持っている」である場合にのみ?つまり、ユーザーがファイルを見ることができます)簡単な問題にシンプルなソリューションです。

複合ルールは "UserCanSeeFile"で、 "IsLoggedIn"、 "IsAdmin"、 "IsPowerUser"、および "HasEnoughPosts"で構成されます。

後のあなたは、彼らは、彼らがファイルを見てみましょうする必要がどのように多くの記事気にしない場合は

はちょうどそのXML行をヤンクし、設定は完了です。

1

私はjavaでいくつかの評価ライブラリを試しました。私はMVELが最高だと分かった。私の場合、私はデータベースから "ルール"を読んでいました。だから私のルールは

player.platformのように見えた== 'iOSの' & &(player.ltv> 100 || player.status> = GOLD)すべての式の上に解析するためにあったものを私がした今

変数。私の場合、変数はドット(object.method)を持つ任意のトークンでした。それは私のために働いた。それがあなたを動かすかどうかわからない。

しかし、いったんすべての変数が値で置き換えられたら。私はちょうどMVEL.evaluate()を呼び出しました。

さらに私の場合、私が評価する必要があるすべての式は、ブール値で与えられます。しかし、MVELは異なる結果の型を持つ任意の式を評価できます。

関連する問題