(前項の続き)
1番目は対象分野の違いと書きましたが、その違いによって開発ツールの力点の違いがでてきます。
2.開発ツールの力点の違い
・BRMSは、比較的単純で明確なルールを容易に書け、ビジネスユーザ自身でもルールを記述できることを目指している。
・一方で、エキスパートシステムは、専門家の知識をきちんと表現できるように、複雑なルールも書きやすくしているかわりに、ルールの記述はツールの使い方を習得した専門の担当者でないと難しいようになっている。
(もっとも今のBRMSでも昔のエキスパートシステムシェルでも使っているルールエンジンのコアアルゴリズムはそれほど変わっていないのでルールの記述力としては同じです)
実際、昔のエキスパートシステム開発ツール(シェル)のいくつかは、生のLispやPrologが垣間見えるところがあったりして、さすがにこれを使ってユーザが直接ルールを直すというのはちょっと…という感がありました。しかし、最近のBRMSでは簡単なルールを簡単にわかりやすく記述するというところが徹底されて(もしくは徹底しようとして)いて、さらに、それを前提としたルールのリポジトリや容易なデプロイのしくみなど、まあ言ってみれば至れり尽くせりの方向に進んでいます。
この方向性というのは、結局のところBRMSの概念のもうひとつのルーツである、ビジネスルールアプローチの影響かと思います。
実は、ビジネスルールアプローチについても前に書きかけていたり(^^;)したのですが
これは、そもそもIBMのGUIDEの1993年に始まる Business Rules Project の中から生まれてきたものです。それまで企業をモデリングするというと、データの側面からや機能の側面からのモデリングは試みられてきたものの、企業が日常のオペレーションを行っていく上での制約といった側面は看過されておりモデリングされてきていませんでした。以上の反省から、このプロジェクトでは、企業のオペレーションのコントロール、構造といった部分をビジネスルールを用いてモデリングすることを目指しました。ちなみにこの辺は、Business Rules Groupのサイトにある
Defining Business Rules ~ What Are They Really?
を見ていただくとわかるかと。ちなみにこのプロジェクトのメンバーを見てみると、E.F. Codd とか John Zachman などといった錚々たる顔ぶれが並んでいてちょっとびっくりします。また、のちにビジネスルールアプローチを推進していく中心的な人物 Barbara von Halle や Ronald Ross の名前も見えます。
(ちょっと脱線しますが、このようにビジネスルールの考え方は、関係データベースやEAの祖を含めた人々が集まって作られてきました。データベースの教科書で有名な C.J.Dateもルールに関する本を書いています。)
さて、メンバーであった Barbara von Halle は、その後2001年にビジネスルールアプローチの具体的な開発方法論を次の本にまとめています。
Business Rules Applied: Building Better Systems Using the Business Rules Approach
この中で、Barbara Von Halle は、BRAの原則としてSTEPということを言っています。詳しくはすでに上記にあげた記事の中で書いているのでそちらを参照するとして、原則だけ列挙しておきましょう。
Separate rules(ルールを分離せよ)
Trace rules(ルールがトレースできるようにせよ)
Externalize rules(ルールを外部化せよ)
Position rules for change(変更を前提にルールを配置せよ)
最近のBRMSはまさに上の原則を満たすような形につくられています。
最初にエキスパートシステムの中で実装レベルであらわれた「ルール」の考え方は、ここにいたってビジネスルールアプローチであらわれてきた概念レベルの「ビジネスルール」とドッキングして、BRMSというツールが生まれたわけです。
(この項続く)
(補足)
私が日経コンピュータの例の記事の「ビジネスルール特化型」のBRMSと「オールインワン型」のツールとをしつこく区別しようとしているのは、記事ではBRMSの背景にあるこういった考えをまったく無視しており、自動生成のツールを十把一絡げに「BRMS」という言葉でくくってしまっているからです。たとえば、RDBMSとNoSQLのDBMSを同じDBだからと言って「RDBMS」という言葉でくくってしまっているようなもので、さすがに乱暴すぎるだろうということ…芸人ではないのだから、あまりに ワイルド にすぎるかと。
コメント