Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Drools 入門

Drools 入門

2019 日本 JBoss ユーザ・グループ勉強会のスライドです

https://ossbyredhat.connpass.com/event/153523/

#jjbug #drools

Toshiya Kobayashi

December 11, 2019
Tweet

More Decks by Toshiya Kobayashi

Other Decks in Technology

Transcript

  1. どういうときに使う? どういうときに使う? Input(POJO) をルールで処理し、Output を出力する 普通の Java でロジックを記述するのとどう違う? 宣言的(Declarative)にルールを記述する ->

    実行、最適化はエンジンに任せる -> ルールのみ書けばよいのでメンテナンス性が向上 -> プログラマとビジネスアナリストの分業が容易 ルールの量が多い場合は Drools がはまる
  2. やってみよう やってみよう rule "高額商品" when $p : Person( age >=

    12 ) $o : Order( consumer == $p, itemPrice > 100000 ) then System.out.println( $p.getName() + "さん、 " + $o + " の注文をご確認 end rule "高額商品 子ども" when $p : Person( age < 12 ) $o : Order( consumer == $p, itemPrice > 5000 ) then System.out.println( $p.getName() + "さん、、 " + $o + " の注文を保護 end
  3. 推論 推論 rule "春のキャンペーン" when $o : Order(consumer.memberCreatedAt >= "2019-04-01"

    && consumer. then System.out.println("実行 : " + kcontext.getRule().getName()); $o.setExtraPoint($o.getExtraPoint() + 2000); update($o); end rule "高額商品キャンペーン" when $o : Order(itemPrice > 100000) then System.out.println("実行 : " + kcontext.getRule().getName()); $o.setExtraPoint($o.getExtraPoint() + 4000); update($o); end
  4. ほかにもいろいろ ほかにもいろいろ DMN (Decision Model and Notation) ルール記述、図表現の標準 PMML (Predictive

    Model Markup Language) Machine Learning によって訓練されたモデルを実行 CEP (Complex Event Processing) リアルタイムに投入されるイベントを処理