ビジネスルール管理システム brms (1).pdf概要...

91
ビジネスルール管理システム BRMS2013年6月11日(火) 青山学院大学 社会情報学部 森田武史 1 2013年度 Webインテリジェンス論

Upload: lyminh

Post on 20-Apr-2018

240 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ビジネスルール管理システム(BRMS)

2013年6月11日(火)

青山学院大学 社会情報学部

森田武史

1 2013年度 Webインテリジェンス論

Page 2: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

2

Page 3: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

3

Page 4: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ビジネスルール管理システム(BRMS)

▪ BRMS: Business Rule Management System

▪ 業務上の規則や条件、判断基準、経験的な対処パターンをビジネスルールとして定義・登録し、その組み合わせから複雑な業務判断を自動的に行うコンピュータ・システムのこと

▪ ビジネスルールをアプリケーションから切り離して管理可能

▪ 参考URL – http://www.itmedia.co.jp/im/articles/0803/

18/news146.html

4

Page 5: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ES(エキスパートシステム)とBRMSの違い

▪ ill-definedなルール(専門家の暗黙知)からwell-definedなルール(業務ルール)に対象を変更

▪ DSL(Domain Specific Language)を用いた自然言語によるルール入力 – システム部門ではなく利用部門がルールを入力可能

になり,開発スピードが向上

▪ 「業務ルール」をプログラム(Java言語など)に自動変換 – Java言語からルールを実行可能

– Eclipseなどの開発環境との連携

5

Page 6: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSの有無による開発期間の比較

6

要件定義/ 基本設計

詳細設計 プログラミング

単体テスト 結合テスト 総合テスト

BRMSを

使わない場合

要件定義/ 基本設計

結合テスト 総合テスト

BRMSを 使う場合 期間短縮

新規開発

要件定義/ 基本設計

影響分析 詳細設計

プログラミング

単体テスト 結合テスト 総合テスト

BRMSを

使わない場合

要件定義/ 基本設計

結合テスト 総合テスト

BRMSを 使う場合 期間短縮

システム保守

Page 7: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMS製品(ビジネスルール特化型)

▪ 韓国イノルールズの「innoRules」 – http://www.earnest-business.com/activity/innorules01.htm

▪ なうデータ研究所の「NaU DSP」 – http://www.nau.co.jp/product/dsp.html

▪ 米フェア・アイザックの「FICO Blaze Advisor」 – http://www.fico.com/jp/Solutions/DMTools/Pages/rules.aspx

▪ 米IBMの「IBM WebSphere Operational Decision Management(旧ILOG JRules) – http://www-06.ibm.com/software/jp/websphere/wodm/

▪ 米スパークリング・ロジックの「Sparkling Logic SMARTS」 – http://my.sparklinglogic.com/index.php/smarts

▪ 米プログレス・ソフトウェアの「Progress Corticon」 – http://www.progress.com/en/corticon/index.html

▪ オープンソースソフトウェアの「JBoss Drools」 – http://www.jboss.org/drools/

▪ など

7

プログラムの自動生成に特化した製品

Page 8: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMS製品(オール・イン・ワン型)

▪ GCT研究所の「iRYSHA(イェライシャ)」 – http://gcti.co.jp/achitecture/irysha.html

▪ NTTデータの「TERASOLUNA ViSC」 – http://www.terasoluna.jp/product/tool/visc.html

▪ アトリスの「PEXA(ペクサ)」 – http://www.atrris.com/tech/10

▪ イスラエルのサピエンス・インターナショナルの「Sapiens(サピエンス)」 – http://www.sapiens.com

▪ ウルグアイのアルテッチの「GeneXus(ジェネクサス)」 – http://www.genexus.com/jp

▪ キャノンソフトウェアの「Web Performer」 – http://www.canon-soft.co.jp/product/web_performer/

▪ ジャスミンソフトの「Wagby(ワグビィ)」 – http://wagby.com

▪ など 8

業務ルールの実行プログラムに加え,画面プログラムや データベースのスキーマも自動生成する

Page 9: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

9

Page 10: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

JBoss BRMS Platformとは

▪ ビジネスルールやビジネスプロセスの管理,格納,作成,変更,デプロイを行うためのビジネスルール管理システム

▪ JBoss Enterprise BRMS Platformはレッドハットが提供している製品版 – ユーザ登録を行うことにより30日間無料で利用可能

• https://access.redhat.com/downloads#eval

▪ JBoss Drools(ドゥルールズ)はコミュニティ版で無料で利用可能 – http://www.jboss.org/drools

10

Page 11: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSを利用するタイミング

▪ ルールのデプロイや変更の仕組みを管理する必要がある

▪ 様々なスキルレベルを持つ複数のユーザーがルールにアクセスし編集する必要がある

▪ ルール管理に関する既存のインフラストラクチャーがない

▪ アプリケーションの一部となっている技術的なルールではなく、「ビジネス」ルールを多数管理する必要がある

11

Page 12: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSの利用者

▪ ビジネスアナリスト

▪ ルールのエキスパート

▪ 開発者

▪ ルール管理者

12

Page 13: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSの機能概要

▪ BRMS の Web ユーザーインターフェースは、現時点で米英語、日本語、簡体中国語など、複数の言語に対応

▪ ルールエディターの種類が豊富 (グラフィックおよびテキストベースの両方)

▪ バージョン管理 (過去のアセット)

▪ カテゴリー化

▪ 構築およびデプロイ

▪ 複数のルール「アセット」を 1 つのパッケージに格納

13

Page 14: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSのアーキテクチャー

14 http://en.wikipedia.org/wiki/Apache_Jackrabbit

Page 15: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

15

Page 16: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ESの構造

16

KB

KA WS

DI

EF

(Domain Expert)

User

IE

Page 17: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ESの構造

17

KB

KA

IE

WS

DI

EF

(Domain Expert)

User

骨格部

Knowledge Base

Inference Engine

Working Space

周辺部

Knowledge Acquisition

Explanation Facility

Dialog Interface

Page 18: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

略語の説明

▪ KB:Knowledge Base:知識ベース

▪ IE:Inference Engine:推論エンジン

▪ EF:Explanation Facility:説明機能

▪ DI:Dialog Interface:対話インタフェース

▪ KA:Knowledge Acquisition:知識獲得

▪ WS:Working Space:作業領域

18

Page 19: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

認知-実行サイクル

第1サイクル:照合(Matching) WM matching All LHS

照合したルール集合→競合ルール集合(Conflict Set)

第2サイクル:競合解消(Conflict Resolution)

競合解消戦略に従って,一つのルールを選出

第3サイクル: 実行(Execution)

選択されたルールのRHSを実行

19

Page 20: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

競合解消戦略

1.できるだけ新しいWM要素照合ルールを優先

2.1で競合解消されない場合,条件節数が多い(複雑な)ルールを優先

3.2で競合解消されない場合,ルールの定義順

業務ルールの場合には,担当者が個々のルールに対して,優先順位を指定することが多い

20

Page 21: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

簡単なルールベースシステムの構成

21

ルールベース

推論エンジン

ワーキング メモリ

インタフェース

ユーザ

Page 22: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

用語の説明

▪ ワーキングメモリ – 複数のアサーション(本実験システムでは,変数=値)が保持されて

いる

▪ ルールベース – 複数のルールを保持

– ルールは,条件部(IF部)と結論部(THEN部)から構成される

– ルールの条件部にはいくつかのパターン(1つ以上のアサーションにマッチングさせることのできる文字列)が記述され,結論部は新たにワーキングメモリに加えるアサーションが記述される

▪ 推論エンジン – ワーキングメモリの状態により起動可能なルールをルールベースか

ら選択し,解釈実行する

– ルールは,条件部におけるすべてのパターンがワーキングメモリにおける要素との照合が成功した場合に起動可能となる

22

Page 23: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

例:下記の条件で前向き推論を実行

23

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース Z=true G=true A=true

ワーキングメモリ

推論エンジン(IE) 競合解消戦略(戦略1→戦略2→戦略3)

但し,同じルールを2度適用しない

Page 24: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行1

24

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース Z=true G=true A=true

ワーキングメモリ

照合: sample_rule1 解消: なし

C=true B=true Z=true G=true A=true

ワーキングメモリ

追加

更新

Page 25: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行2

25

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース C=true B=true Z=true G=true A=true

ワーキングメモリ

照合: sample_rule2,3,4,5 解消: sample_rule5 (戦略1+戦略2)

F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

追加

更新

Page 26: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行3

26

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

照合: sample_rule2,3,4 解消: sample_rule4 (戦略1)

E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

追加

更新

Page 27: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行4

27

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

照合: sample_rule2,3 解消: sample_rule2 (戦略3)

D=true E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ 追加

更新

Page 28: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行5

28

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース D=true E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

照合: sample_rule3 解消: なし

追加

更新

H=true D=true E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

Page 29: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

前向き推論実行6

29

sample_rule1: IF A==true THEN B=true THEN C=true sample_rule2: IF A==true AND B==true AND G==true THEN D=true sample_rule3: IF A==true AND B==true AND Z==true THEN H=true sample_rule4: IF A==true AND C==true THEN E=true sample_rule5: IF A==true AND B==true AND C==true THEN F=true

ルールベース H=true D=true E=true F=true C=true B=true Z=true G=true A=true

ワーキングメモリ

照合: なし 解消: なし

終了

Page 30: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

30

Page 31: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMSのインストール方法

▪ Webインテリジェンス講義Webページの「BRMS_install.docx」を参照

▪ TomcatまたはJBoss AS ▪ GuvnorまたはJBoss Enterprise BRMS

▪ Eclipseと連携する場合

– Eclipse – drools-distribution

• ライブラリ

– droolsjbpm-tools • Eclipseプラグイン

31

Page 32: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ログイン方法(JBoss Enterprise BRMSの場合)

32

BRMS Consoleを選択

Page 33: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ログイン方法(JBoss Enterprise BRMSの場合)

33

brms-users.propertiesで 有効にしたIDとパスワードを入力

Page 34: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

初期画面

34

Page 35: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

用語の説明

▪ アセット – リポジトリにバージョンとして格納できるものすべて – ルール,決定表,モデル,テスト,DSL

▪ カテゴリ – ルール(アセット)を分類するためにユーザが付与可能なラベル – 1つのルールに複数のカテゴリを設定可能

▪ アセットエディター(Guided Editor) – ルールを編集可能なエディタ

– 条件,制約,アクション,フィールド,オプションの追加・削除などが可能

– ルールの検証と確認,ルールソースの参照などが可能 – Business Rules Language (BRL) 形式でルールを編集

35

Page 36: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

カテゴリの作成

36

初期状態ではHome Mortgageと Commercial Mortgageなどのカテゴリ が作成されている

Page 37: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Knowledge Bases

37

Page 38: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Knowledge Bases

▪ Business rule assets – ビジネルルールを定義 – Guided Editorを利用して作成するルールと決定表

▪ Technical rule assets ▪ DSL configurations

– DSL(Domain Specific Language)の設定

▪ Model – データ構造を定義

▪ Enumerations – データ列挙(ドロップダウンリストの設定)

▪ Test Scenarios – ルールが正しく動作するかどうかのテストシナリオの作成と実行

▪ Other assets, documentation

38

Page 39: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Model

39

クラスとそのフィールド データベースのテーブルとカラム のようなもの

Page 40: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Business rule assets

40 スプレッドシート形式 BRL(Business Rule Language)形式

Page 41: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ルールの構成

▪ When

– ルールの満たすべき条件を入れる

– 例:申請者が21歳未満の場合

▪ Then

– ルールの条件部分が満たされた場合に実行すべきアクションが入る

– 例:申請者は年齢制限に達していないため、ローンは却下

41

Page 42: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

CreditApprovalルール

42

ソースコード Model: Applicant

mvel: http://mvel.codehaus.org/

Page 43: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

DSL configurations

43

ルールを作成する際に,WhenとThenで選択可能なテンプレートを作成.

Enumerationsで定義

Page 44: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Enumerations

44

DSL configurations

Business rules assets

Page 45: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptcyHistoryルール

45

Model

ルールの優先順位を示す数値

Page 46: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptchyHistoryルールの 作成手順

46

Page 47: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptchyHistoryルールの 作成手順

47

Page 48: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptchyHistoryルールの 作成手順

48

変数名の設定が必要

Page 49: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptchyHistoryルールの 作成手順

49

デモで説明

Page 50: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BankruptchyHistoryルールの 作成手順

50

Page 51: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Pricing loans決定表

51

条件

結論

1行に1つのルールが定義可能

Page 52: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Pricing loans決定表の 作成手順

52

Page 53: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Pricing loans決定表の 作成手順

53

Page 54: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Test Scenarios

54

21歳よりも若い場合にはローンできないルールがある. ある志願者が17歳の場合にローンできないことを

期待するテストシナリオを作成して,実行が正しくできていることが確認できる.

Page 55: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Package snapshots

55

パッケージのスナップショットを 保存できる.

Page 56: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

56

Page 57: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Eclipse Guvnor Tools (EGT)

▪ JBoss BRMS(Guvnor)からアセットの参照や実行を可能にするEclipseプラグイン

▪ Eclipse Guvnor Tools (EGT) – https://github.com/droolsjbpm/droolsjb

pm-tools/tree/master/drools-eclipse

– http://www.jboss.org/drools/downloads • droolsjbpm-tools-distribution-5.5.0.Final.zip

▪ インストール方法は「BRMS_install.docx」を参照

57

Page 58: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

EGTの設定

▪ EclipseのWindow->Open Perspective->Otherから「Guvnor Repository Exploring」を選択

▪ 画面左側の「Guvnor Repositories」の「Add a guvnor repository connection」を選択し,以下を入力し,「Finish」ボタンを押す

58

/guvnor-5.5.0.Final-tomcat-6.0/org.drools.guvnor.Guvnor/webdav/

Tomcatの場合: Repository

Page 59: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

EGTの設定

59

Page 60: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

REST API ▪ パッケージの取得

– http://localhost:8080/jboss-brms/rest/packages/ – http://localhost:8080/guvnor-5.5.0.Final-tomcat-6.0/rest/packages/ – http://localhost:8080/guvnor-5.5.0.Final-jboss-as-7.0/rest/packages/

▪ アセットの取得 – http://localhost:8080/jboss-brms/rest/packages/mortgages/assets/ – http://localhost:8080/guvnor-5.5.0.Final-tomcat-

6.0/rest/packages/mortgages/assets/ – http://localhost:8080/guvnor-5.5.0.Final-jboss-as-

7.0/rest/packages/mortgages/assets/

▪ BankruptchyHistoryルールのソースの取得 – http://localhost:8080/jboss-

brms/rest/packages/mortgages/assets/No%20bankruptcies/source – http://localhost:8080/guvnor-5.5.0.Final-tomcat-

6.0/rest/packages/mortgages/assets/No%20bankruptcies/source – http://localhost:8080/guvnor-5.5.0.Final-jboss-as-

7.0/rest/packages/mortgages/assets/No%20bankruptcies/source

▪ ドキュメント – http://docs.jboss.org/drools/release/5.5.0.Final/drools-guvnor-

docs/html_single/index.html#d0e3485

60

Page 61: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

61

Page 63: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

旅費規程

▪ 旅費規程 – 1日の出張時間が4時間未満のとき 日当なし – 4時間以上,8時間未満のとき日当Cで1000円 – 8時間以上,12時間未満のとき日当Bで2000円 – 12時間以上のとき日当Aで3000円

▪ if-thenルール – if 1日の出張時間 < 4.0時間 then 日当なし – if 4.0時間 <= 1日の出張時間 < 8.0時間

then 日当C:1000円 – if 8.0時間 <= 1日の出張時間 < 12.0時間

then 日当B:2000円 – 12.0時間 <= 1日の出張時間 then 日当A:

3000円

63

Page 64: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

パッケージの作成

▪ Knowledge BasesのCreate New->New Packageから「businessTrip」パッケージを作成

64

Page 65: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

モデルの作成

▪ Knowledge BasesのCreate New->New Declarative Modelから「BusinessTrip」モデルを作成

65

Page 66: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

モデルの作成 ▪ Add new fact typeから「BusinessTrip」を追加 ▪ フィールドに,name(Text),hour(Decimal number),dailyAllowance

(Decimal number)を追加

66

Page 67: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

モデルの作成 ▪ File -> save changesを選択し保存する

– 保存をしないとルールの作成時にモデルが参照できないので注意

67

Page 68: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ルールの作成 rule "日当なし" when BusinessTrip ( h:hour < 4.0B , n:name) then System.out.println(n+"さんの出張時間は、"+h+"時間なので、日当はありません。 (ルール:日当なし)"); bt.setDailyAllowance( 0B );

retract( bt );

endrule "日当C" when BusinessTrip ( h:hour >= 4.0B , hour < 8.0B ,n:name) then System.out.println(n+"さんの出張時間は、"+h+"時間なので、日当は1000円です。 (ルール:日当C)"); bt.setDailyAllowance( 1000B );

retract( bt );

endrule "日当B" when BusinessTrip ( h:hour >= 8.0B , hour < 12.0B, n:name ) then System.out.println(n+"さんの出張時間は、"+h+"時間なので、日当は2000円です。 (ルール:日当B)"); bt.setDailyAllowance( 2000B );

retract( bt );

endrule "日当A" when BusinessTrip ( h:hour >= 12.0B ,n:name) then System.out.println(n+"さんの出張時間は、"+h+"時間なので、日当は3000円です。 (ルール:日当A)"); bt.setDailyAllowance( 3000B );

retract( bt );

end

68

Page 69: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ルールの作成

69

▪ Knowledge BasesのCreate New->New Ruleから「日当なし」,「日当A」,「日当B」,「日当C」の4つのルールを作成

日当A,B,Cについても 同様

Page 70: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

▪ ルール ▪ 1日の出張時間が4時間未満のとき 日当なし

70

Page 71: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

▪ ルール ▪ 1日の出張時間が4時間未満のとき 日当なし

71

Page 72: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

72

Page 73: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

73

System.out.println(n+"さんの出張時間は、"+h+"時間なので、日当はありません。 (ルール:日当なし)");

Page 74: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

74

Page 75: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

75

Page 76: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

76

Page 77: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

「日当なし」ルールの作成

77

Page 78: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ルールの作成

▪ 日当A,B,Cについてもほぼ同様の手順で作成していく

78

日当A

日当B

日当C

Page 79: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

テストシナリオの作成

▪ Knowledge BasesのCreate New->New Test Scenarioから「BusinessTripTest」テストシナリオを作成

79

名前(name)

出張時間(hour)

野中 3.5h

大前 5.0h

米倉 8.0h

嶋口 10.0h

伊丹 13.0h

Page 80: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

テストシナリオの作成と実行

80

実行結果

GIVENボタンを押して以下を追加 Add a fieldからnameとhourを追加

Run scenarioボタンを押す

EXPECTボタンを押して,Fact valueの Addボタンを押す

More...ボタンを押して,繰り返し入力

Page 81: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

テストシナリオの実行(失敗例)

81

0とすべきところを 1000に変更すると テストが通らない

Page 82: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Package snapshotの作成

82

Page 83: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Package snapshotの作成

83

http://localhost:8080/guvnor-5.5.0.Final-jboss-as-7.0/org.drools.guvnor.Guvnor/package/businessTrip/TEST

リンクのURLをコピー

Page 84: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

84

Page 85: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

BRMS(Guvnor)のパッケージを Eclipse上で実行する方法

85

Guvnorを利用している場合には,drools-distributionを 解凍したフォルダの中のbinariesフォルダを指定. JBoss Enterprise BRMSを利用している場合には, brms-standalone-5.3.1/jboss-as/client/droolsを指定.

Page 86: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Droolsプロジェクトの作成

86

Page 87: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

演習問題で作成したBRMS上のルールをJavaアプリケーションから呼び出して実行するサンプルプログラム

87

Package snapshots で保存したURLを指定

ビジネスルール名を 取得して表示

Page 88: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

ワーキングメモリに データ(インスタンス)を追加

88

ルール実行時に 保存されたdailyAllowance 変数の値を表示

ルールを実行

Page 89: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

Eclipse上でのBusinessTripルール実行結果

89

Page 90: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

概要

▪ ビジネルルール管理システム(BRMS)

▪ JBoss BRMS(Drools,Guvnor)

▪ ES・ルールベースシステム

▪ BRMSの利用方法

▪ EclipseとBRMSの連携方法

▪ 演習問題

▪ JavaアプリケーションからのBRMSルール実行方法

▪ 参考文献

90

Page 91: ビジネスルール管理システム BRMS (1).pdf概要 ビジネルルール管理システム(BRMS) JBoss BRMS(Drools,Guvnor) ES・ルールベースシステム BRMSの利用方法

参考文献

▪ 日経コンピュータ 2012年3月15日号 – 特集 「超高速開発」 が日本を救う – http://ec.nikkeibp.co.jp/item/backno/NC0804.

html

▪ JBoss Enterprise BRMS Platformドキュメント – https://access.redhat.com/site/documentation

/JBoss_Enterprise_BRMS_Platform/?locale=ja-JP

▪ Guvnor User Guide – http://docs.jboss.org/drools/release/5.5.0.Fina

l/drools-guvnor-docs/html_single/index.html

▪ ビジネスルールの館 – http://www.iluminado.jp/home-mainmenu-

1.html

91