Aug 18, 2005
JSR 94 Java Rule Engine API ダイジェスト
Java Rule Engine API をざっと眺めたときのメモ。
JSR 94 Java Rule Engine API
オリジナルの入手はこちら → JSR 94
6. Definitions
- Rule Engine
- 高機能な if/then statement インタプリタの様なもの。ビジネスロジックをシステムの外部に出すことで宣言的プログラミング(declarative programming)を促進する。
- Rule
- Rule は condition と action とから成る。この JSR では Rule の構造は規定されない。
- Rule Execution Set
- Rule の集合。この JSR では Rule Execution Set の構造は規定されない。
- Rule Session
- Rule Engine とクライアント間の実行時コネクション。Rule Session は単一の Rule Execution Set と関連付けられる。
- Stateful Rule Session
- Stateful な Rule Session。
- Stateless Rule Session
- Stateless な Rule Session。Stateful Rule Session よりシンプルでパフォーマンスが良い。
10. Architecture
- javax.rules, javax.rules.admin とい 2 つのパッケージで構成される。
- javax.rules は、Rule Engine のランタイムクライアントを表す。既に用意された Rule Execution Set 用の Rule Session の生成や Rule Session を用いた各種処理を提供する。
- javax.rules.admin は、管理用 API を表す。外部リソース (URI, InputStream, XML, Binary tree, Reader) から Rule Execution Set を読み込む機能を提供する。
10.1. Runtime API
- RuleServieProviderManager
- RuleServiceProvider を提供する。ベンダー毎の RuleServiceProvider を返す。
- RuleServiceProvider
- RuleRuntime, RuleAdministrator を提供する。
- RuleRuntime
- RuleSession, 登録済みの RuleExecutionSet の URI リストを提供する。
- RuleExecutionSetMetadata
- RuleExecutionSet に関するメタデータを提供する。
- RuleSession
- StatefulRuleSession, StatelessRuleSession の共通インターフェース。
- StatelessRuleSession
- クライアントは StatelessRuleSession に Objet のリストを渡して RuleExecutionSet の実行を指示する。その後、処理の結果生成された Object を受け取ることができる。処理結果の Object は ObjectFilter を利用することで必要なもののみ受け取るようにフィルタリングすることができる。
- StatefulRuleSession
- RuleExecutionSet に渡される Object の受け渡しなどを行うインターフェース(addObject, getObject, removeObject, updateObject, containsObject)を提供する。
- ObjectFilter Interface
- RuleSession 実行結果 Object リストから必要なもの/不必要なものを選別するフィルタ。
- Handle Interface
- StatefulRuleSession 内で独自の方法で Object を識別する。異なる ClassLoader でロードされた Object 同士でも正確に一致/不一致を判断するために利用される。
10.2. Administrator API
- RuleAdministrator
- RuleExecutionSetProvider を提供する。
- RuleExecutionSetProvider
- RuleExecutionSet を生成する。
- LocalRuleExecutionSetProvider
- RuleExecutionSet を生成する。LocalRuleExecutionSetProvider はシリアライズされていないデータ (InputStream, Reader) から RuleExecutionSet を生成する。
- Rule
- Rule の名称や説明情報などを提供するインターフェースを持つ。
- RuleExecutionSet
- RuleExecutionSet の名称や説明情報などを提供するインターフェースを持つ。
クラス図
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/JSR/20050818_01.trackback
writeback message: Ready to post a comment.

![[JSR 94 クラス図]](/blog/entries/JSR/20050818_01/jsr94.png)