<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El mundo que soñé</title>
	<atom:link href="http://blog.iluminado.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.iluminado.jp</link>
	<description>ビジネスルールとそれにまつわるソフトウェア技術の雑記帳</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:05:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ルールエンジンのアルゴリズム(2)</title>
		<link>http://blog.iluminado.jp/2012/02/01/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a02/</link>
		<comments>http://blog.iluminado.jp/2012/02/01/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a02/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 14:48:09 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=190</guid>
		<description><![CDATA[(前回の続き)
もっとも、入力データのチェックなどは、ルールのパターンマッチの側面こそ利用していますが、一方でルールの実行中に入力データが変わっていくわけではないので、先に挙げたルールの実行サイクルを何度も回して結果を出 [...]]]></description>
			<content:encoded><![CDATA[<p>(前回の続き)<br />
もっとも、入力データのチェックなどは、ルールのパターンマッチの側面こそ利用していますが、一方でルールの実行中に入力データが変わっていくわけではないので、先に挙げたルールの実行サイクルを何度も回して結果を出すという特徴的なところはあまり利用していないとも言えます。</p>
<p>では、よりルールエンジンの動きの特徴が表れている例というとどんな例があげられるでしょうか。思うに、たとえば質問に対して答えていき最後に結果を出すといったコンサルティングというか、レコメンドというか&#8230;といったシステムの例はそのひとつではないでしょうか。</p>
<p>この動きをルールエンジンの実行サイクルに合わせて見てみましょう。まずは、</p>
<p>１．システムは利用者に対して最初の質問を投げます。<br />
２．利用者は質問に対する回答を行いその回答はデータとして(短期)記憶領域に書かれます。<br />
３．システムはこの回答に合ったルールを選び出し、次の質問を利用者に投げます。<br />
４．利用者はさらに回答を行い結果は記憶領域に書かれます。<br />
５．システムは今までに出した質問の結果と今回の質問の結果を合わせて条件に合うルールを選び出し、さらに質問を繰り返していきます&#8230;。<br />
６．そして最後に十分に絞り込まれた結果が得られそれ以上尋ねる質問がなくなった(マッチするルールがなくなった)ところで利用者に結果を返します。</p>
<p>これだけではあまりに抽象的なので、もう少しかみくだいた例として、たとえば、料理に合うワインをおすすめするといった場合を考えてみましょう(この具体的な実装は、<a title="CLIPS" href="http://ja.wikipedia.org/wiki/CLIPS" target="_blank">Clips</a>というツールの例としてあげられています)。</p>
<p>まず質問としては、</p>
<p>１．料理は肉、魚、鳥料理のうちのどれですか？<br />
２．料理にはソースがかかっていますか？<br />
３．ソースは、スパイシー、甘口、クリーム、トマトのうちのどれですか？<br />
４．料理の味は、繊細、ふつう、強めのうちのどれですか？<br />
５．ワインとしてお好きなのは赤と白とどちらですか？<br />
&#8230;&#8230;</p>
<p>といった感じ。これら質問をルールとして保持し、ルールの実行部分で質問の回答を記憶領域に書くようにしておきます。<br />
さて、まず最初に１．の質問のルールが動き、質問に対して「肉」という回答をすると、(短期)記憶領域に</p>
<p>・「料理は肉」</p>
<p>と書かれます。次に２．の質問に、「ソースがかかっていない」という回答をすると、記憶領域に</p>
<p>・「料理にはソースがかかっていない」</p>
<p>という事実が追加されます。<br />
次に３．の質問。これは本来、料理にソースがかかっていなければ意味のない質問です。したがって、３．の質問を行うルールの条件部分には「料理にはソースがかかっている」という前提条件を加えておきます。そうすると、現在の記憶領域の状態</p>
<p>・「料理は肉」<br />
・「料理にはソースがかかっていない」</p>
<p>に３．の質問ルールはマッチしないので、ルールは実行されません。一方、２．でソースがかかっていると回答すると自然に３．のルールもマッチしてきます。</p>
<p>このように、質問を行う各ルールの前提条件をきちんと書いておけば、意味のない質問をすることもなく、効率的に結果を求めることができましょう。</p>
<p>さて、実は上の議論では少々ゴマカシがあるのですが、お気づきでしょうか。上の議論では、１．から順に実行することが前提となっているような書き方になっていますが、ルールエンジンの一般的な動きでは上から順に動くという保証はありません。順番に関して何も指定していない(*1)と、上記のルールのうち１．２．４．５．のどのルールが最初に動くかの保証は何もありません。<br />
まあ、論理的には最初に１．２．４．５．のどの質問から聞いても結果は同じなのですが、ワインの好みに対して聞く４．５．の順番はともかく、１．２．は気持ちとしては、１．の次に２．を聞くのがふつうかと。こんなときには、<br />
A.　２．の前提条件に料理の種類が決まっている条件。<br />
具体的には、「料理は○○」という事実があるという条件を加える。<br />
B.　ルールに優先度をつけて、１．が２．よりも先に動くようにする。<br />
というような解決方法があります。まあ、ルールの一般的なお作法としては、A.のほうが推奨ですが、ケースバイケースで一概にどちらがいいというわけでもありません。<br />
さらに質問のかたまり間で順番をつけたいという場合に、たとえば料理に関する質問のルール、ワインの好みに関する質問のルールといったかたまりの間での順番をつけたいというときには、ルールのかたまりとその順番を定義するという仕組みがたいていのルールエンジンに標準的に装備されています(Droolsでは、アジェンダグループとか、ルールフローとか)。</p>
<p>(*1)　実は、ルールが動く順番は全くのランダムというわけではなく、たいていの場合何らかの規則にしたがって、実行されるルールが選ばれます。この規則を競合解消戦略といって、考え方としては、「最新の情報を優先する」、「一般的な条件のルールと、より特殊な条件のルールと両方にマッチした場合は、特殊な条件のルールを優先する」などといった基準があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2012/02/01/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ルールエンジンのアルゴリズム</title>
		<link>http://blog.iluminado.jp/2012/01/21/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0/</link>
		<comments>http://blog.iluminado.jp/2012/01/21/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 16:52:39 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>
		<category><![CDATA[Drools]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=187</guid>
		<description><![CDATA[　久しぶりの更新になってしまいましたが、ここのところルールベースエンジン関連の話題が次々と出てきて・・・Droolsはいつのまにか5.3のFinalが出ていて、5.4のβまで出ているし、CorticonはProgress [...]]]></description>
			<content:encoded><![CDATA[<p>　久しぶりの更新になってしまいましたが、ここのところルールベースエンジン関連の話題が次々と出てきて・・・Droolsはいつのまにか5.3のFinalが出ていて、5.4のβまで出ているし、CorticonはProgressに買収されるし・・・ちなみに最近またDroolsの新しい本が出たようです。</p>
<p>　それはそうと、おかげさまで最近私もルールエンジンの仕事がだいぶ増えてきてうれしい限り。ただ、まだまだ人口に膾炙するといったところではないようで、ルールエンジンの動き等に関連していろいろ質問されることが多々あります。<br />
たとえば<br />
・ルールエンジンのプログラムって、if-Thenのルールが並んでいるけれども、上から順にやっていくの？？<br />
・(上記に関連して)　通常のプログラムの(単体)テストだと全部のパスを通るようにテストするけれども、　ルールの場合のテストでは、全部のパスを通す&#8230;ってどのように考えればよい？<br />
・ルールエンジンのメモリ使用量は何に依存してきまるのでしょうか？　ルール数？<br />
・同じようにルールエンジンの処理速度は何できまる？<br />
などなど。</p>
<p>　私もこのような質問をされるようになって、あらためてネットなどを調べてもみるのですが、ルールエンジンの動きとかアルゴリズムとか結構情報が少なくて、ルールエンジンの代表的なアルゴリズムであるはずのReteアルゴリズムの日本語の解説などは、ちょっと探してみたところネット上にはほとんど皆無状態でした。<br />
　というわけで、これからぼちぼちルールエンジンの動きやアルゴリズムなど気が付いたときに書いていきたいと思います。<br />
　さて、最初というわけでルールエンジンの動きから。以前、本宅の記事(<a title="プロダクションシステムとは" href="http://www.iluminado.jp/businessruleruleengine/rule-base-etc/17-production-system-rule-base.html" target="_blank">プロダクションシステム(ルールベースシステム)とは</a>)にルールエンジンの動きを書きましたが、もともとはこのルールエンジン、人工知能や認知心理学の研究をルーツとするもので<br />
人間が長期記憶にあたる「ルール」を使って、認識した外界の状況(短期記憶に保持される)に合わせて判断を行うという行動がモデルとなっています。<br />
　これをルールエンジンの動きとして翻訳してみると、<br />
１．データの集合に対して、たくさんあるルールの条件部分をひとつひとつデータとマッチングさせて、マッチしたルールとデータのカップルを列挙しておく。<br />
２．カップルの中からひとつを選んで実行する。<br />
３．実行によってデータが書き換えられる場合もあるので、再度１．のカップリングを行う。<br />
４．１～３を繰り返してマッチするルールがなくなったところで実行が終了する。<br />
となります。<br />
　この動きをみるとわかるように、ルールエンジンでは、すべてのデータに対して、すべてのルールの条件部のマッチングを試し、そののちにルールを実行します。したがってルールの実行順序は必ずしも上から順などといったことではなくて(実はそれなりの実行順の規則はあるのですが)、実行順に過度に依存するようなルールの書き方はむしろお作法に反するものという見方が強いです。<br />
　特に最近ルールエンジンがよく使われている入力データのチェックなどは、(チェックそのものだけでいえば)別に順番などはどうでもよく、条件に合うか合わないかで正しくエラーが出ればそれでよいのであって、上記のようなルールエンジンの動きはこの「チェック」という作業に対して非常になじむもののように思います。</p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=1849511969&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2012/01/21/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>システム内製とクリストファー・アレグザンダー</title>
		<link>http://blog.iluminado.jp/2011/10/16/%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd%e3%81%a8%e3%82%af%e3%83%aa%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%83%bc%e3%83%bb%e3%82%a2%e3%83%ac%e3%82%b0%e3%82%b6%e3%83%b3%e3%83%80%e3%83%bc/</link>
		<comments>http://blog.iluminado.jp/2011/10/16/%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd%e3%81%a8%e3%82%af%e3%83%aa%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%83%bc%e3%83%bb%e3%82%a2%e3%83%ac%e3%82%b0%e3%82%b6%e3%83%b3%e3%83%80%e3%83%bc/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 15:12:38 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[クリストファー・アレグザンダー]]></category>
		<category><![CDATA[システム内製]]></category>
		<category><![CDATA[本]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=183</guid>
		<description><![CDATA[先週、ルールエンジンとシステム内製のブログをアップしましたが、「システム内製」 という言葉で私が思い浮かべたのが、建築家のクリストファー・アレグザンダーでした。
　クリストファー・アレグザンダーと言えば、ご存知の方も多い [...]]]></description>
			<content:encoded><![CDATA[<p>先週、<a href="http://blog.iluminado.jp/2011/10/10/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%a8%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd/">ルールエンジンとシステム内製</a>のブログをアップしましたが、「システム内製」 という言葉で私が思い浮かべたのが、建築家のクリストファー・アレグザンダーでした。</p>
<p>　クリストファー・アレグザンダーと言えば、ご存知の方も多いかと思いますが、GoFデザインパターンの発想の源であるパターンランゲージを着想し創りあげた建築家。そのアレグザンダーとシステム内製がどのようにつながるのか訝る方もおられるかと思いますが、実はアレグザンダーは有名な「時を超えた建設の道」「パターン・ランゲージ」以後にも（私が思うに）重要な著作を発表しているのですね。それらの著作「オレゴン大学の実験」「まちづくりの新しい理論」は、実はシステム開発の上でも非常に示唆的な考え方を含んでいるのではないかと思っているわけです。</p>
<p>　特に「オレゴン大学の実験」は、比較的入りやすいかなあと思いますが、残念ながら今のところ手に入りづらいようなので、そのまま本の目次にもなっている６つの原理を序文から引用しておきましょう。<br />
　アレグザンダーらは、コミュニティでの建設と計画の方法を、以下の次の６つの原理にしたがって遂行することで人々が満足する環境を築けるとしています。</p>
<p>　(以下引用)<br />
　一、有機的秩序の原理 The principle of organic order<br />
　二、参加の原理 The principle of participation<br />
　三、漸進的成長の原理 The principle of piecemeal growth<br />
　四、パターンの原理 The principle of patterns<br />
　五、診断の原理 The principle of diagnosis<br />
　六、調整の原理 The principle of coodination<br />
  (「オレゴン大学の実験」鹿島出版会 p14 から引用)</p>
<p>これだけですと、少々わかりにくいので、一、二、だけでも、さらに説明付で引用すると、</p>
<p>　(以下引用)</p>
<p>　一、有機的秩序の原理<br />
　　計画や施工は、全体を個別的な行為から徐々に生み出してゆくようなプロセスによって導かれること。</p>
<p>　二、参加の原理<br />
　　建設内容や建設方法に関するすべての決定は利用者の手に委ねること。</p>
<p>  (「オレゴン大学の実験」鹿島出版会 p15 から引用)</p>
<p>となっています。(ちなみにパターンの原理のパターンは、パターンランゲージのパターンです)</p>
<p>　さて、この６つの原理を眺めてみると、なんとなく私が「システム開発の上で示唆的」であると言っていることがわかるような気がしません？　今回、「システム内製」と関連して思い浮かべたのが、二、の「参加の原理」。「システム内製」すなわち「ユーザー主体開発」そのものという気がしませんか？　また、一、の有機的秩序の原理などは、EA(エンタープライズアーキテクチャ)を、前もってきちんと定めて個々の開発をその枠内で進めていく&#8230;という行き方と真逆のことを言っているようでちょっと面白かったりします。</p>
<p>　もちろん、都市計画や建築の手法がそのままシステム開発に応用できるとは、万事楽観的な私といえども思ってはいませんが、新たな視点を得るという意味ではなかなか示唆に富むものではないでしょうか。</p>
<p>　システム業界では、クリストファー・アレグザンダーと言えばデザインパターンですが、実はデザインパターン以外にも汲み取るべき考え方はまだまだあるのではないかと思っています。</p>
<p>　アレグザンダー恐るべし！</p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4306051285&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4306052109&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4306043061&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4306041719&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2011/10/16/%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd%e3%81%a8%e3%82%af%e3%83%aa%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%83%bc%e3%83%bb%e3%82%a2%e3%83%ac%e3%82%b0%e3%82%b6%e3%83%b3%e3%83%80%e3%83%bc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ルールエンジンとシステム内製</title>
		<link>http://blog.iluminado.jp/2011/10/10/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%a8%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd/</link>
		<comments>http://blog.iluminado.jp/2011/10/10/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%a8%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 15:39:24 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRA(ビジネスルールアプローチ)]]></category>
		<category><![CDATA[BRMS一般]]></category>
		<category><![CDATA[Drools]]></category>
		<category><![CDATA[本]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=179</guid>
		<description><![CDATA[　先週紹介した日経コンピュータの記事には、クラウドとルールエンジンの組み合わせを使った開発でのメリットとして８つあげられていました。このうちの８番目「内製しやすい」というのが今日のテーマ。
　確かにビジネスロジックをルー [...]]]></description>
			<content:encoded><![CDATA[<p>　先週紹介した日経コンピュータの記事には、クラウドとルールエンジンの組み合わせを使った開発でのメリットとして８つあげられていました。このうちの８番目「内製しやすい」というのが今日のテーマ。<br />
　確かにビジネスロジックをルールエンジンを用いて実装すると、ロジックのシステム的な制御部分を隠蔽し、本質的な部分を浮き彫りにさせる効果があります。今回あがっている保険商品の整合性チェックとか保険料の試算などは、ロジック自身はそれほど複雑でないので、ビジネスロジックをたとえば表形式(デシジョンテーブル)でまとめれば、それがほぼそのまま実際に動きます。DroolsではDSL(ドメイン記述言語)もあるので、DSLをうまく設計すれば「日本語で仕様を書けばそれがそのまま動く」といった世界を実現することも夢ではないかもしれません。たとえば</p>
<p>　保険料は、基本料率 * ○○割増 * 保険金額である。<br />
　　ただし<br />
　&#8230;の場合は○○割増は1.03<br />
　&#8230;の場合は○○割増は1.05</p>
<p>とかいったような。こんな感じで書いた仕様がそのまま動くとなると、業務に携わる人が直接プログラムを保守するということも現実解として十分考えられるようになってきそうです。</p>
<p>　今のところ日本ではBRMS(ビジネスルール管理システム)を使って、現場で業務に携わる人が直接ルールを直すという事例はまだ聞いたことはありません。ただ、ごく一般的な日本の事務現場のExcelシート、マクロの開発力(!!)などを考えると、BRMSでの現場での修正開発も案外いけるのかもしれないなあと思っている今日この頃。<br />
　というわけで、最近「システム内製を極める」という本を読みました。基本的に日経コンピュータの記事を集めた内容なので比較的さらっと読めるのですが、最後「おわりに」には、システム開発にたずさわるものとしては考えさせられることが書いてあります。それはまた次の機会に。</p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=482226257X&#038;ref=tf_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2011/10/10/%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%a8%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%86%85%e8%a3%bd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>エンタープライズマッシュアップ</title>
		<link>http://blog.iluminado.jp/2011/10/02/%e3%82%a8%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%97%e3%83%a9%e3%82%a4%e3%82%ba%e3%83%9e%e3%83%83%e3%82%b7%e3%83%a5%e3%82%a2%e3%83%83%e3%83%97/</link>
		<comments>http://blog.iluminado.jp/2011/10/02/%e3%82%a8%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%97%e3%83%a9%e3%82%a4%e3%82%ba%e3%83%9e%e3%83%83%e3%82%b7%e3%83%a5%e3%82%a2%e3%83%83%e3%83%97/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 13:31:34 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BPM、SOA]]></category>
		<category><![CDATA[BRA(ビジネスルールアプローチ)]]></category>
		<category><![CDATA[BRMS一般]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/2011/10/02/%e3%82%a8%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%97%e3%83%a9%e3%82%a4%e3%82%ba%e3%83%9e%e3%83%83%e3%82%b7%e3%83%a5%e3%82%a2%e3%83%83%e3%83%97/</guid>
		<description><![CDATA[　Web2.0やマッシュアップという言葉が流行っていたころ、一部で「エンタープライズマッシュアップ」という言葉が使われた時期がありました。まあ、読んで字のごとく、「企業におけるマッシュアップ」ということで、その心は社内外 [...]]]></description>
			<content:encoded><![CDATA[<p>　Web2.0やマッシュアップという言葉が流行っていたころ、一部で「エンタープライズマッシュアップ」という言葉が使われた時期がありました。まあ、読んで字のごとく、「企業におけるマッシュアップ」ということで、その心は社内外のWeb-APIを組み合わせて企業内のポータルなどを構築する方法論というようなイメージでしょうか。最近はあまり聞かれなくなりましたが、ことさら「マッシュアップ」という言葉を使わなくても、Web上での開発のひとつの方法論としてある程度定着したからなのでしょうか。</p>
<p>　さて、この言葉を思い出したのは、最近ある雑誌の記事を読んだからです。日経コンピュータの最新9月29日号の「システムを「作らず」に作った」という記事。今回作ったシステムは、ユーザインタフェース部分でひとつのクラウド、帳票生成サービス用のクラウド、ルールエンジン用のクラウド、３つのクラウドの間で通信しながら処理を行うというまさに　「クラウド間でSOAを実現しちゃいました」　的なちょっとおもしろいシステムです。そこそこのパフォーマンスも出ているようで一昔前なら夢物語だったような世界が手の届くところまで来たということですね。</p>
<p>　もちろんこのブログの趣旨からして強調したいのは、ルールエンジンでして・・・^^;。最近のルールエンジンのひとつの典型的な使い方として、今回の例のように、保険料の計算や整合性チェックなどのビジネスロジックの処理部分を、ルールエンジンを用いて独立したWebサービスとして提供するというのがあります。そして将来的には、このサービスをさまざまなアプリケーションで使いまわすということ&#8230;もっとも、日本国内で「さまざまなアプリケーションで使いまわす」というところまで行っているところはさすがにまだ聞いたことがないのですが&#8230;。</p>
<p>　今回、ルールエンジンがクラウドにのったということになると、上記のようなことがやりやすくなるだけでなく、(もちろんセキュリティの面など解決しなければならないことは多いですが)ルールエンジンを用いてビジネスロジックの処理をサービスとして提供するような可能性、幅がより拡がってくことになるでしょう。冒頭に述べた「マッシュアップ」は、ウィジェットを組み合わせてユーザインタフェース部分をひとつにまとめる感が強いですが、今回のケースは、もう少しビジネスのロジックに踏み込み、クラウドに散在するWebサービス間で物事を処理していく、いわばインターネットSOA、クラウドtoクラウドSOAが始まりつつあるということではないでしょうか。</p>
<p>　最初はルールエンジンの話を書こうと思っていたのですが、結局最後はSOAの話になってしまいましたね。長くなるのでルールの話はぜひ記事を&#8230;。</p>
<p>(2012年1月12日追記)　この日経コンピュータの記事は、日経の電子版の12月28日つけ記事<a href="http://www.nikkei.com/tech/business/article/g=96958A9C93819499E0E0E2E1858DE0E0E3E0E0E2E3E3E2E2E2E2E2E2;p=9694E2E0E2E1E0E2E3E2E6EAE6E1">「システムを「作らず」に作った…得られた八つの利点」</a>として読めるようになりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2011/10/02/%e3%82%a8%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%97%e3%83%a9%e3%82%a4%e3%82%ba%e3%83%9e%e3%83%83%e3%82%b7%e3%83%a5%e3%82%a2%e3%83%83%e3%83%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Business Rule Development (ABRD)</title>
		<link>http://blog.iluminado.jp/2011/09/12/agile-business-rule-development-abrd/</link>
		<comments>http://blog.iluminado.jp/2011/09/12/agile-business-rule-development-abrd/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 15:40:07 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRA(ビジネスルールアプローチ)]]></category>
		<category><![CDATA[BRMS一般]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=169</guid>
		<description><![CDATA[　ずいぶん久しぶりの投稿になってしまいました。というのも最近、ルール関連の案件が増えてきたおかげで、うれしい悲鳴というのでしょうか。多忙な日々をすごしておりました。
　ブログを書かない間、Droolsは5.2が出ているし [...]]]></description>
			<content:encoded><![CDATA[<p>　ずいぶん久しぶりの投稿になってしまいました。というのも最近、ルール関連の案件が増えてきたおかげで、うれしい悲鳴というのでしょうか。多忙な日々をすごしておりました。</p>
<p>　ブログを書かない間、Droolsは5.2が出ているし・・・、「アイログ」と入れてググってみると、アイドルグループ育成ゲームが出てきたりするようになっていたり・・・。それはともかく、本日は本の話。前に Amazon で予約していた本なのですが超多忙な時期に出版・送付されてきたもので本棚に積み上げ状態になっておりました。その本は</p>
<p><strong>Agile Business Rule Development：</strong>　process, Architecture, and JRules Examples<br />
　　Jerome Boyer、 Hafedh Mili</p>
<p>　IBM(アイログ) の JRules を例にとってはいますが、方法論としてはツールに依存したものではなく、JRules以外でも使えます。その名のとおり一般的な Agile な開発方法論をベースにしており、ドキュメントよりも動くソフトウェアを重視する、利用者との密なコミュニケーションなどといったAgile方法論の原則に則った反復型の開発方法論。<br />
　まだ読み始めたばかりのこの本ですが、久しぶりに出版されたビジネスルールによる実践的なシステム開発の本と言えましょう。ボリュームはありますが、その割りには読みやすいように思えます。JRulesを使わない方も目を通す価値があるのではないでしょうか。</p>
<p><code><br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=aromailuminad-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=3642190405&#038;ref=qf_sp_asin_til&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2011/09/12/agile-business-rule-development-abrd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss Enterprise BRMS 5.1 提供開始</title>
		<link>http://blog.iluminado.jp/2011/01/19/jboss-enterprise-brms-5-1-%e6%8f%90%e4%be%9b%e9%96%8b%e5%a7%8b/</link>
		<comments>http://blog.iluminado.jp/2011/01/19/jboss-enterprise-brms-5-1-%e6%8f%90%e4%be%9b%e9%96%8b%e5%a7%8b/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 00:38:06 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>
		<category><![CDATA[CEP(Complex Event Processing)]]></category>
		<category><![CDATA[Drools]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/?p=167</guid>
		<description><![CDATA[DroolsのEnterprise版「JBoss Enterprise BRMS 5.1」の提供が開始されました。今回は、プレビュー版とは言え、CEP(Drools Fusionにあたる)やルールサーバの機能なども提供さ [...]]]></description>
			<content:encoded><![CDATA[<p>DroolsのEnterprise版「JBoss Enterprise BRMS 5.1」の提供が開始されました。今回は、プレビュー版とは言え、CEP(Drools Fusionにあたる)やルールサーバの機能なども提供されており期待されるところです。</p>
<p><a title="JBoss Enterprise BRMS 5.1" href="http://www.jp.redhat.com/news_releases/2011/01182011.html" target="_blank">レッドハット、ビジネスルール管理システムの新版「JBoss Enterprise BRMS 5.1」を提供開始</a></p>
<p><a title="JBoss Enterprise BRMS" href="http://www.jp.redhat.com/JBoss/products/platforms/brms/" target="_blank">JBoss Enterprise BRMS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2011/01/19/jboss-enterprise-brms-5-1-%e6%8f%90%e4%be%9b%e9%96%8b%e5%a7%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss DroolsのWebiner(続報)</title>
		<link>http://blog.iluminado.jp/2010/11/23/jboss-drools%e3%81%aewebiner%e7%b6%9a%e5%a0%b1/</link>
		<comments>http://blog.iluminado.jp/2010/11/23/jboss-drools%e3%81%aewebiner%e7%b6%9a%e5%a0%b1/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 01:58:12 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>
		<category><![CDATA[Drools]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/2010/11/23/jboss-drools%e3%81%aewebiner%e7%b6%9a%e5%a0%b1/</guid>
		<description><![CDATA[以前お知らせしたDroolsのWebinerがここから見られるようになりました。実は私もここから後になってみました。
]]></description>
			<content:encoded><![CDATA[<p><a title="DroolsのWebinerお知らせ" href="http://blog.iluminado.jp/2010/11/11/jboss-drools%E3%81%AEwebinar/" target="_blank">以前お知らせ</a>したDroolsのWebinerが<a title="DroolsのWebiner" href="https://decisionmanagement.omnovia.com/archives/64461" target="_blank">ここから</a>見られるようになりました。実は私もここから後になってみました。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2010/11/23/jboss-drools%e3%81%aewebiner%e7%b6%9a%e5%a0%b1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBoss DroolsのWebinar</title>
		<link>http://blog.iluminado.jp/2010/11/11/jboss-drools%e3%81%aewebinar/</link>
		<comments>http://blog.iluminado.jp/2010/11/11/jboss-drools%e3%81%aewebinar/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 12:49:47 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>
		<category><![CDATA[Drools]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/2010/11/11/jboss-drools%e3%81%aewebinar/</guid>
		<description><![CDATA[DroolsのWebinarが来週開催されるようです。

ただし、日本時間で11月17日の早朝3時から・・・時間的には結構きついですが。
JBoss Droolsを用いる際のベストプラクティス
Claye Greene  [...]]]></description>
			<content:encoded><![CDATA[<p>DroolsのWebinarが来週開催されるようです。</p>
<div id=":1ot">
<p>ただし、日本時間で11月17日の早朝3時から・・・時間的には結構きついですが。</p>
<p>JBoss Droolsを用いる際のベストプラクティス<br />
Claye Greene and Kristy Sanders</p>
<p><a href="http://decisionmanagement.omnovia.com/register/60991286295899">Best practices for using JBoss Drools</a></p>
<p>November 16, 2010 10:00 am to 11:00 am (Pacific time)</p>
<div>数年前ではオープンソースのデシジョンマネージメントのソリューションなど<br />
歯牙にもかからないもの(?)ととらえられていましたが、現在ではJBoss Drools<br />
などのオープンソースツールを用いた企業向けのソリューションがそれなりの<br />
地歩を占めつつあります。</div>
<p>ここでは、そのJBoss Droolsについて、メリット・デメリットなどを具体的なサンプル<br />
なども含めて議論するとのこと。なかなか参考となる話も聴けるのではないかと<br />
思います。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2010/11/11/jboss-drools%e3%81%aewebinar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>金融事務へのルールエンジンの適用</title>
		<link>http://blog.iluminado.jp/2010/11/08/%e9%87%91%e8%9e%8d%e4%ba%8b%e5%8b%99%e3%81%b8%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e9%81%a9%e7%94%a8/</link>
		<comments>http://blog.iluminado.jp/2010/11/08/%e9%87%91%e8%9e%8d%e4%ba%8b%e5%8b%99%e3%81%b8%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e9%81%a9%e7%94%a8/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 14:14:52 +0000</pubDate>
		<dc:creator>Y.Tsushima</dc:creator>
				<category><![CDATA[BRMS一般]]></category>

		<guid isPermaLink="false">http://blog.iluminado.jp/2010/11/08/%e9%87%91%e8%9e%8d%e4%ba%8b%e5%8b%99%e3%81%b8%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e9%81%a9%e7%94%a8/</guid>
		<description><![CDATA[最近は、日本でも保険関連でルールエンジンが使われ始めているのはうれしい限り。いくつかのプロジェクトは公の雑誌記事やセミナーの事例題材にも取り上げられています。そのうちのひとつが東京海上日動システムズの４０１ｋの事務処理の [...]]]></description>
			<content:encoded><![CDATA[<p>最近は、日本でも保険関連でルールエンジンが使われ始めているのはうれしい限り。いくつかのプロジェクトは公の雑誌記事やセミナーの事例題材にも取り上げられています。そのうちのひとつが東京海上日動システムズの４０１ｋの事務処理のシステム。BRMSとしては<a title="Corticon" href="http://www.blazeconsulting.co.jp/corticon/index.html" target="_blank">Corticon</a>を用いて実現しています。</p>
<p><a title="東京海上日動" href="http://it.impressbm.co.jp/e/2010/10/21/2916" target="_blank">複雑な金融事務を“ルールエンジン”で処理　文書イメージのワークフローで効率化も達成【東京海上日動システムズ】</a></p>
<h1></h1>
]]></content:encoded>
			<wfw:commentRss>http://blog.iluminado.jp/2010/11/08/%e9%87%91%e8%9e%8d%e4%ba%8b%e5%8b%99%e3%81%b8%e3%81%ae%e3%83%ab%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3%e3%81%ae%e9%81%a9%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

