2009-03-01から1ヶ月間の記事一覧

第5回BPMオフ会「いまさら聞けないBPM」やります!

BPM

4月23日(木)17時からOracle OpenWorld Unconferenceを舞台に第5回BPMオフ会開催します。 まるで第1回から第4回をでていなくても、これだけでておけば大丈夫的な内容になっています、太っ腹!!いつもと違うのは第1部の昼の部がOracle OpenWorldのunconfe…

黙ってよみます

成功するセールスの原則 ORDER作者: マハンカルサー,フランクリンコヴィージャパン出版社/メーカー: キングベアー出版発売日: 2005/12メディア: 単行本購入: 2人 クリック: 31回この商品を含むブログ (6件) を見る 届いたのでここからはじめます。 TQ―心の安…

Drools Guvnorにちょこっとコントリビュート

Guvnorというルールを管理するやつがいるんですがちょっとした勢いで日本語対応してMichaelさんに話したらwelcomeということで、あれよこれよでblogでも紹介してもらいました http://blog.athico.com/2009/03/more-translations.html で、jbossianのブログっ…

Drools IDEではじめる

DroolsをやるにはまずはIDEからです。基本的にDroolsを動作させるのにミニマムなセットは以下のところからDrools 5.0.0.CR1 BinariesとDrools 5.0.0.CR1 IDEをダウンロードして、unzipします。 ダウンロードはこちらから. http://www.jboss.org/drools/downl…

RHS (action/then)

then側に何をするか記述するわけですが、drools特有のworkingMemoryに対する操作を書いたりするので書いておく。 method 説明 update(Object obj) workingMemoryに既にinsertしているデータが変わったことを伝える update(Object obj, FactHandle handle) 同…

リファレンス accumulate -1

これも同様にfromとあわせて使います、accumulate(蓄積)してその結果を使って何かをするときに便利です。標準のaccumulate用のfunctionも用意されているので簡単なsum functionを使ったサンプルをば.エレベータの体重制限のルール例です(デブネタばかりです…

リファレンス collect

昨日のfromとあわせて利用します、文字通り集める(抽出)という宣言になります。例を見た方がわかりやすいので以下に例をば。 when ArrayList( $total : size > 0 ) from collect( Person( weight > 99 ) ) then results.add($total); とルールを書いてJava…

リファレンス from

リファレンスの参照を指定する場合に利用します。例えば、あるクラスのフィールドがListをもち、「その」Listの中である条件を満たしていたら、といったルールがあった場合に「その」をfromで実現します。以下の例ではHealthList(健康リスト)というクラスの…

JBossナイトセミナーにいってきました

最近の状況や各プロダクトの詳細情報を入門者にもわかりやすくcatchできる場ではありますが、これはこれとしてよいと思いますが、ぼちぼちdeepな人向けの場がでてきてもよいんじゃないかなぁと思います。その方がJBossらしいような気がする。 さて、内容とし…

反省の弁

年中の次男坊がインフルエンザについにかかってしまった。明日から休まないとダメなようだ。実は年小から今まで皆勤でした。親であるうちらも意識したのは年中に入ってからなわけですが、ちょっとやそっとの熱でも皆勤目的で幼稚園に行かせてました。(ま、…

国営武蔵丘陵森林公園

http://www.shinrin-koen.go.jp/ 今日は久しぶりに家族で森林公園に行きました。もう十何回かはいっていますが、まだ2,3年は子供たちも楽しめそう。広いから歩くだけでもいい運動になります。 中でもアスレチックで、長〜いすべり台は魅力的なのですが、年々…

リファレンス forall

forallはworkingMemory上に存在するすべてのものが条件にマッチする場合、という願いをこめるときに使います。たとえば rule "vote" when forall( Vote( result == 'OK' ) ) $s : State(); then System.out.println("満場一致"); $s.moveTo('end'); end ファ…

小飼弾の「仕組み」進化論

小飼弾の 「仕組み」進化論作者: 小飼弾出版社/メーカー: 日本実業出版社発売日: 2009/03/19メディア: 単行本(ソフトカバー)購入: 12人 クリック: 122回この商品を含むブログ (95件) を見る 先行発売されている店で買って読みました。進化論といってるだけ…

2011年JBLとbj統合

キタコレ。何もいうことなしです、ブラボー

リファレンス exists

これはワーキングメモリに存在しているか、ということなんだけど正確には「ひとつでもあるか」となります。まずは豚もおだてりゃ木に登るのシンプルな例。 rule "climbtree" when $person : Person(action == 'おだてる') exists Tree() $pig : Pig() then $…

jBPM in JBossCluster

といった記事がでてますが、jBPMだけじゃなく、Hibernate+JBossCacheのことが肝なわけでそっちに関心がある人でも一応目を通してみていいんじゃないかな〜。あくまで、jBPMはクラスタ上のhibernateを使うアプリケーションの例というだけであって。ともあれ、…

Drools5.0.0.CR1リリース

http://blog.athico.com/2009/03/drools-50-cr1-new-and-noteworthy.html に細かいこと載ってます。目標は3/19にGA目標らしい、でドキュメントまとめにフォーカスするといってるけど、結構ボリュームあるし大丈夫なんかなぁ。。CRなのでそうここからズレはな…

リファレンス restriction

ルール用語でrestrictionとよく用いられていますが、単純に条件のことね、whenのTypeの()の中で記述する部分。指定の仕方として今までのようなもの以外にも細かく分類するとこういう書き方もできるよ、というのが以下の3つ。 1.return Value Restriction …

リファレンス dateとboolean

また小物を確認。Date型のフィールドを記述する例はこちら。 rule "you are born now!!" when $p : Person(birthDay >= "20090310") then System.out.println("うまれたー"); end で、実はこの書式でリテラルで記述するにはおまじないが必要です。 System.se…

リファレンス memberOf/contains/soundslike

確定申告 is over!!わあい\(^▽^\)(/^▽^)/わあいっ.やっと奥さんのピリピリがとれてホッと一息。というわけで小物を確認していく。まずは日本人としては使いどころがわからない、soundslike!です。英語でよく聞く言葉なんだけど、Soundexにもとづく条件チェ…

リファレンス matches

Java 正規表現のように条件判定も可能です。たとえばJumperクラスにnameフィールドを持たせて"Waki7"だとマッチするルールの記述例です。 when jumper : Jumper(name matches "[Ww]aki[0-9]" ) 逆にnot matchesというのもありやんす。

リファレンス conjuction

今までのno-loop, agenda-groupなどはルール属性といわれる宣言でした。他にもdurationなどあるけど、必要に応じて書く。ここからはLHSの中(Whenの中)での記述についてまとめてく。既に今までのサンプルで $p : Jumper(step == 1) といったものがあり、コロ…

リファレンス global

globalの宣言でJavaからdroolsに変数を渡すことができます。globalでわたすとworkingMemoryにはinsertされないです。staticな変数やルールのthenの中のアクションで必要な変数をわたす、何かルールでの処理結果の戻しとかが主な目的です。よく見かけるのはhi…

リファレンス activation-group

各ルールにactivation-groupというグループ名を宣言できます。同名が宣言されたルールの間で実行時に何が行われるかというと、ほとんどXORです。2つのルールで同名のグループ名を宣言して実行し、まず片方がマッチングして処理されるとします。次にもう片方…

リファレンス agenda-groupとauto-focus

agendaというのはルールのマッチングなど実行制御をおこなう中心人物で、agenda-groupはその実行のパーティション的なものになります。今までのサンプルでは特に記述してませんでしたがその場合は"Main"というagenda-groupの上で実行されていたのです。Main…

リファレンス salience

ルールを複数定義上記すると同じ条件でマッチするときがあります。デフォルトはLIFO方式なのでルール定義を下に宣言したものからマッチングされます。たとえば rule "rule-1" when Person() then System.out.println("rule-1"); end rule "rule-2" when Pers…

snapflow - Workflow as a Service(ワ、ワース?)

近未来的なワークフローサービスらしい感じ。SilverLight2ですって。カッコエエなぁ。nba.comのサイトみたときからSilverLight2ほれぼれしてましたが本当にかっこいい。Yahoo!Pipesに似ている、と思った。本家サイト:http://www.snapflow.com/ 紹介記事:ht…

リファレンス no-loop

no-loopは、そのルール自身を回帰的に連続して処理されないようにするときに宣言します。たとえば package org.drools.test; import com.sample.Jumper; rule "ループ" when jumper : Jumper( ) #エンジンにassertされたファクトの型がJumperの場合、という…

記述したルールの確認

前に書いたルールを1個抜き出したのが以下のものになります。 で、ルールエンジン、ルールエンジンといわれていますが、中身の中枢にあるのはreteエンジンで基本的にはパターンマッチングエンジンです。reteエンジンで如何に効率よいアルゴリズムでマッチン…

whenとthen

まずはシンプルに動かしてみます。Jumperというクラスにstepというintのフィールドを持たせます。意味合いとしては0:start,1:hop,2:step,3:jumpにします。0で始めたらhopしなさい、hopしたらstepにしなさい、stepしたらjumpやろー!というのを簡単にJavaで書…