SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Introduction to Drools

スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない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
経営情報フォーラム2009guest5ad17cf
 
経営情報フォーラム2009発表資料
経営情報フォーラム2009発表資料経営情報フォーラム2009発表資料
経営情報フォーラム2009発表資料Keiichi Hashimoto
 
データ構造とPdcaに沿った操作を学ぶ
データ構造とPdcaに沿った操作を学ぶデータ構造とPdcaに沿った操作を学ぶ
データ構造とPdcaに沿った操作を学ぶe-sales-support
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansaikumamidori
 
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
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントToshiyuki Konparu
 
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Tech Summit 2016
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Toru Makabe
 
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術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.
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームInsight Technology, Inc.
 
S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較真治 米田
 
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~VIOPS Virtualized Infrastructure Operators group ARCHIVES
 

Semelhante a Introduction to Drools (20)

スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
スカイアーチセミナー:自社アプリをクラウド展開する為の『失敗しない3つの法則
 
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
 
Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則Office 365 ネットワーク接続の原則
Office 365 ネットワーク接続の原則
 
経営情報フォーラム2009
経営情報フォーラム2009経営情報フォーラム2009
経営情報フォーラム2009
 
経営情報フォーラム2009発表資料
経営情報フォーラム2009発表資料経営情報フォーラム2009発表資料
経営情報フォーラム2009発表資料
 
データ構造とPdcaに沿った操作を学ぶ
データ構造とPdcaに沿った操作を学ぶデータ構造とPdcaに沿った操作を学ぶ
データ構造とPdcaに沿った操作を学ぶ
 
20150531 phpcon kansai
20150531 phpcon kansai20150531 phpcon kansai
20150531 phpcon kansai
 
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」
 
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
 
TFSUG 20151126
TFSUG 20151126TFSUG 20151126
TFSUG 20151126
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計Dep005 azure ネットワーク設計
Dep005 azure ネットワーク設計
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法
 
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術
流行りのSaaSで本当に365日幸せ?クラウド時代の賢いNotes活用術
 
[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...
 
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較
 
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~
VIOPS09: 本当に必要なのはSoftware- Defined Networking? ~今、改めて考えるデータセンタ・ネットワークの役割~
 

Mais de Yoshimasa Tanabe

Introduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ ArtemisIntroduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ ArtemisYoshimasa 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 AppsYoshimasa Tanabe
 
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugYoshimasa Tanabe
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly SwarmYoshimasa Tanabe
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaYoshimasa Tanabe
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ UndertowについてYoshimasa Tanabe
 

Mais de Yoshimasa Tanabe (8)

Introduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ ArtemisIntroduction to Apache ActiveMQ Artemis
Introduction to Apache ActiveMQ Artemis
 
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
 
WildFly Swarm In Progress
WildFly Swarm In ProgressWildFly Swarm In Progress
WildFly Swarm In Progress
 
Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
 
Introduction to WildFly Swarm
Introduction to WildFly SwarmIntroduction to WildFly Swarm
Introduction to WildFly Swarm
 
Keycloak で SSO #渋谷java
Keycloak で SSO #渋谷javaKeycloak で SSO #渋谷java
Keycloak で SSO #渋谷java
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
 
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
 

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