狠狠撸

狠狠撸Share a Scribd company logo
Introduction to Drools
2015-03-07(土) 第十回 #渋谷java
田邊 義真(たなべ よしまさ)
@emaggame
http://morec.at
2015-03-07(土) 第十回 #渋谷java 2
目次
●
BRMS とは
●
Drools とは
●
Drools デモ
●
所感
●
参考
2015-03-07(土) 第十回 #渋谷java 3
BRMS とは
●
Business Rule Management System
●
ビジネスは時々刻々変化する
●
ソースコード中のビジネスロジックをルールとして外に追い出
すことで、保守しやすくする。BRMS はそのためのランタイム
– ビジネス要求の変化に対応しやすくなる
– ビジネスロジックを俯瞰しやすくなる
– DSL を用いることで、通常のプログラミングモデルよりもロジックを
(場合によっては)容易に表現できるようになる
2015-03-07(土) 第十回 #渋谷java 4
Drools とは
●
Red Hat が提供する OSS の BRMS 実装
– ルール管理 UI や CEP、 BPM 連携など機能が豊富
●
公式サイト
– http://drools.org/
●
リポジトリ
– https://github.com/droolsjbpm/drools/
●
2015-03-07 現在、最新の安定版は 6.2.0.Final
2015-03-07(土) 第十回 #渋谷java 5
Drools デモ
●
デモのソースコードは以下にあります
– http://bit.ly/drools-intro
●
いずれも Drools のサンプルから抜き出しました
2015-03-07(土) 第十回 #渋谷java 6
Drools デモ(自動車保険)
●
被保険者の属性(年齢?居住地のリスク?過去の保険請求
回数?保険種別)から保険料を算出する
●
ルールはスプレッドシートを用い、デシジョンテーブルとして
表現する
年齢 居住地 請求回数 保険種別
18 - 24 リスク低 0 車両保険
25 - 30 リスク高 1 代理店
25 - 35 リスク低 0 車両保険
保険料
15,000
20,000
10,000
2015-03-07(土) 第十回 #渋谷java 7
Drools デモ(Twitter CBR)
●
Twitter のサンプルストリームから特定条件に合致するツイートを
抽出する
●
ルールの表現として Drools ネイティブである DRL(Drools Rule
Language)と Complex Event Processing(CEP) を利用する
●
CEP は複数のイベント(データの追加、変更など)間に対して時間
の概念を付加することで、イベント間の関係から有意なデータを導
くために利用する。
– CEP 自体は BRMS に限らずリアルタイム処理でよく使われる用語(e.g.
Apache Spark)
2015-03-07(土) 第十回 #渋谷java 8
所感
●
値の変更や条件の組合せが頻繁に変わるようなルール
において、デシジョンテーブルは直感的に表現できてよい
– 自分でスプレッドシート(グリッド)のような UI を提供しても、条
件判定の実装部分が煩雑になりそう
●
DRL はそれなりに覚えることの多い DSL であるもの
の、CEP なども合わせて使いこなせれば 手続き型プログ
ラミングだと煩雑になるケースが表現しやすくなる(イベ
ント間の関係をオンライン処理しようとする場合など)。
2015-03-07(土) 第十回 #渋谷java 9
参考1(公式)
●
Drools 公式サイト
– http://drools.org/
●
ドキュメント
– http://drools.org/learn/documentation.html
2015-03-07(土) 第十回 #渋谷java 10
参考2(ブログ記事など)
●
ビジネスルールの館
●
http://www.iluminado.jp/
●
tokobayashiの日記
– http://d.hatena.ne.jp/tokobayashi/
– Twitter4JとDroolsでなんかリアルタイムな感じのもの
●
その1 http://d.hatena.ne.jp/tokobayashi/20111109#p1
●
その2 http://d.hatena.ne.jp/tokobayashi/20111110#p1
●
その3 http://d.hatena.ne.jp/tokobayashi/20111113#p1

More Related Content

Similar to Introduction to Drools (20)

スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
株式会社スカイアーチネットワークス
?
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
Shuji Yamada
?
Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則
Takashi Ushigami
?
経営情报フォーラム2009発表资料
経営情报フォーラム2009発表资料経営情报フォーラム2009発表资料
経営情报フォーラム2009発表资料
Keiichi Hashimoto
?
経営情报フォーラム2009
経営情报フォーラム2009経営情报フォーラム2009
経営情报フォーラム2009
guest5ad17cf
?
データ构造と笔诲肠补に沿った操作を学ぶ
データ构造と笔诲肠补に沿った操作を学ぶデータ构造と笔诲肠补に沿った操作を学ぶ
データ构造と笔诲肠补に沿った操作を学ぶ
e-sales-support
?
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
kumamidori
?
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Terui Masashi
?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
Fumiyasu Sumiya
?
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
Toshiyuki Konparu
?
TFSUG 20151126
TFSUG 20151126TFSUG 20151126
TFSUG 20151126
Shinichi Nishihata
?
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
Takuro Sasaki
?
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計
Tech Summit 2016
?
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
株式会社MonotaRO Tech Team
?
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Toru Makabe
?
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
Go Kawakami
?
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
Insight Technology, Inc.
?
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
Microsoft Azure Japan
?
顿叠搁贰から始めるデータベースプラットフォーム
顿叠搁贰から始めるデータベースプラットフォーム顿叠搁贰から始めるデータベースプラットフォーム
顿叠搁贰から始めるデータベースプラットフォーム
Insight Technology, Inc.
?
S3 を単純ストレーシ?として 利用する手段の比較
S3 を単純ストレーシ?として 利用する手段の比較S3 を単純ストレーシ?として 利用する手段の比較
S3 を単純ストレーシ?として 利用する手段の比較
真治 米田
?
スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
スカイアーチセミナー:自社アプリをクラウド展开する為の『失败しない3つの法则
株式会社スカイアーチネットワークス
?
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
Shuji Yamada
?
Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則
Takashi Ushigami
?
経営情报フォーラム2009発表资料
経営情报フォーラム2009発表资料経営情报フォーラム2009発表资料
経営情报フォーラム2009発表资料
Keiichi Hashimoto
?
経営情报フォーラム2009
経営情报フォーラム2009経営情报フォーラム2009
経営情报フォーラム2009
guest5ad17cf
?
データ构造と笔诲肠补に沿った操作を学ぶ
データ构造と笔诲肠补に沿った操作を学ぶデータ构造と笔诲肠补に沿った操作を学ぶ
データ构造と笔诲肠补に沿った操作を学ぶ
e-sales-support
?
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
kumamidori
?
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Terui Masashi
?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
【JJUG CCC 2016 Fall 公開版】ト?メイン駆動設計とscala ?既存フ?ロシ?ェクトへの適用?
Fumiyasu Sumiya
?
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
闯础奥厂-鲍骋叁都物语冲公司での础奥厂导入のエントリーポイント
Toshiyuki Konparu
?
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計
Tech Summit 2016
?
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
20240522 Findy Event ヒ?シ?ネスの構造をアーキテクチャに落とし込みソフトウェアに可変性を注入する.pdf
株式会社MonotaRO Tech Team
?
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Toru Makabe
?
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
流行りの厂补补厂で本当に365日幸せ?クラウド时代の贤い狈辞迟别蝉活用术
Go Kawakami
?
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
[db tech showcase Tokyo 2016] A25: ACIDトランザクションをサポートするエンタープライズ向けNoSQL Databas...
Insight Technology, Inc.
?
顿叠搁贰から始めるデータベースプラットフォーム
顿叠搁贰から始めるデータベースプラットフォーム顿叠搁贰から始めるデータベースプラットフォーム
顿叠搁贰から始めるデータベースプラットフォーム
Insight Technology, Inc.
?
S3 を単純ストレーシ?として 利用する手段の比較
S3 を単純ストレーシ?として 利用する手段の比較S3 を単純ストレーシ?として 利用する手段の比較
S3 を単純ストレーシ?として 利用する手段の比較
真治 米田
?

More from Yoshimasa Tanabe (8)

Introduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ ArtemisIntroduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ Artemis
Yoshimasa Tanabe
?
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE Apps
Yoshimasa Tanabe
?
WildFly Swarm In Progress
WildFly Swarm In ProgressWildFly Swarm In Progress
WildFly Swarm In Progress
Yoshimasa Tanabe
?
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
Yoshimasa Tanabe
?
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly Swarm
Yoshimasa Tanabe
?
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
Yoshimasa Tanabe
?
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
?
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
Yoshimasa Tanabe
?
Introduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ ArtemisIntroduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ Artemis
Yoshimasa Tanabe
?
WildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE AppsWildFly Swarm - Rightsize Your Java EE Apps
WildFly Swarm - Rightsize Your Java EE Apps
Yoshimasa Tanabe
?
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
Yoshimasa Tanabe
?
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly Swarm
Yoshimasa Tanabe
?
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
?

Recently uploaded (6)

What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHubWhat is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
K Kinzal
?
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
leesubin14
?
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
FUSIONDRIVER, INC.
?
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
Toru Koido
?
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
ssuserd2c5cd
?
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
Tomoharu ASAMI
?
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHubWhat is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
K Kinzal
?
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
(2025/03/03/10:07)厂补濒别蝉丑耻产用アスエネサービス资料.辫诲蹿
leesubin14
?
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
FUSIONDRIVER, INC.
?
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
Toru Koido
?
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
株式会社厂罢翱搁驰における惭补驳颈肠笔辞诲导入事例。开発?テスト环境で惭补驳颈肠笔辞诲を有効活用する
ssuserd2c5cd
?
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
Tomoharu ASAMI
?

Introduction to Drools

  • 1. Introduction to Drools 2015-03-07(土) 第十回 #渋谷java 田邊 義真(たなべ よしまさ) @emaggame http://morec.at
  • 2. 2015-03-07(土) 第十回 #渋谷java 2 目次 ● BRMS とは ● Drools とは ● Drools デモ ● 所感 ● 参考
  • 3. 2015-03-07(土) 第十回 #渋谷java 3 BRMS とは ● Business Rule Management System ● ビジネスは時々刻々変化する ● ソースコード中のビジネスロジックをルールとして外に追い出 すことで、保守しやすくする。BRMS はそのためのランタイム – ビジネス要求の変化に対応しやすくなる – ビジネスロジックを俯瞰しやすくなる – DSL を用いることで、通常のプログラミングモデルよりもロジックを (場合によっては)容易に表現できるようになる
  • 4. 2015-03-07(土) 第十回 #渋谷java 4 Drools とは ● Red Hat が提供する OSS の BRMS 実装 – ルール管理 UI や CEP、 BPM 連携など機能が豊富 ● 公式サイト – http://drools.org/ ● リポジトリ – https://github.com/droolsjbpm/drools/ ● 2015-03-07 現在、最新の安定版は 6.2.0.Final
  • 5. 2015-03-07(土) 第十回 #渋谷java 5 Drools デモ ● デモのソースコードは以下にあります – http://bit.ly/drools-intro ● いずれも Drools のサンプルから抜き出しました
  • 6. 2015-03-07(土) 第十回 #渋谷java 6 Drools デモ(自動車保険) ● 被保険者の属性(年齢?居住地のリスク?過去の保険請求 回数?保険種別)から保険料を算出する ● ルールはスプレッドシートを用い、デシジョンテーブルとして 表現する 年齢 居住地 請求回数 保険種別 18 - 24 リスク低 0 車両保険 25 - 30 リスク高 1 代理店 25 - 35 リスク低 0 車両保険 保険料 15,000 20,000 10,000
  • 7. 2015-03-07(土) 第十回 #渋谷java 7 Drools デモ(Twitter CBR) ● Twitter のサンプルストリームから特定条件に合致するツイートを 抽出する ● ルールの表現として Drools ネイティブである DRL(Drools Rule Language)と Complex Event Processing(CEP) を利用する ● CEP は複数のイベント(データの追加、変更など)間に対して時間 の概念を付加することで、イベント間の関係から有意なデータを導 くために利用する。 – CEP 自体は BRMS に限らずリアルタイム処理でよく使われる用語(e.g. Apache Spark)
  • 8. 2015-03-07(土) 第十回 #渋谷java 8 所感 ● 値の変更や条件の組合せが頻繁に変わるようなルール において、デシジョンテーブルは直感的に表現できてよい – 自分でスプレッドシート(グリッド)のような UI を提供しても、条 件判定の実装部分が煩雑になりそう ● DRL はそれなりに覚えることの多い DSL であるもの の、CEP なども合わせて使いこなせれば 手続き型プログ ラミングだと煩雑になるケースが表現しやすくなる(イベ ント間の関係をオンライン処理しようとする場合など)。
  • 9. 2015-03-07(土) 第十回 #渋谷java 9 参考1(公式) ● Drools 公式サイト – http://drools.org/ ● ドキュメント – http://drools.org/learn/documentation.html
  • 10. 2015-03-07(土) 第十回 #渋谷java 10 参考2(ブログ記事など) ● ビジネスルールの館 ● http://www.iluminado.jp/ ● tokobayashiの日記 – http://d.hatena.ne.jp/tokobayashi/ – Twitter4JとDroolsでなんかリアルタイムな感じのもの ● その1 http://d.hatena.ne.jp/tokobayashi/20111109#p1 ● その2 http://d.hatena.ne.jp/tokobayashi/20111110#p1 ● その3 http://d.hatena.ne.jp/tokobayashi/20111113#p1