システム内製とクリストファー・アレグザンダー

先週、ルールエンジンとシステム内製のブログをアップしましたが、「システム内製」 という言葉で私が思い浮かべたのが、建築家のクリストファー・アレグザンダーでした。

 クリストファー・アレグザンダーと言えば、ご存知の方も多いかと思いますが、GoFデザインパターンの発想の源であるパターンランゲージを着想し創りあげた建築家。そのアレグザンダーとシステム内製がどのようにつながるのか訝る方もおられるかと思いますが、実はアレグザンダーは有名な「時を超えた建設の道」「パターン・ランゲージ」以後にも(私が思うに)重要な著作を発表しているのですね。それらの著作「オレゴン大学の実験」「まちづくりの新しい理論」は、実はシステム開発の上でも非常に示唆的な考え方を含んでいるのではないかと思っているわけです。

 特に「オレゴン大学の実験」は、比較的入りやすいかなあと思いますが、残念ながら今のところ手に入りづらいようなので、そのまま本の目次にもなっている6つの原理を序文から引用しておきましょう。
 アレグザンダーらは、コミュニティでの建設と計画の方法を、以下の次の6つの原理にしたがって遂行することで人々が満足する環境を築けるとしています。

 (以下引用)
 一、有機的秩序の原理 The principle of organic order
 二、参加の原理 The principle of participation
 三、漸進的成長の原理 The principle of piecemeal growth
 四、パターンの原理 The principle of patterns
 五、診断の原理 The principle of diagnosis
 六、調整の原理 The principle of coodination
(「オレゴン大学の実験」鹿島出版会 p14 から引用)

これだけですと、少々わかりにくいので、一、二、だけでも、さらに説明付で引用すると、

 (以下引用)

 一、有機的秩序の原理
  計画や施工は、全体を個別的な行為から徐々に生み出してゆくようなプロセスによって導かれること。

 二、参加の原理
  建設内容や建設方法に関するすべての決定は利用者の手に委ねること。

(「オレゴン大学の実験」鹿島出版会 p15 から引用)

となっています。(ちなみにパターンの原理のパターンは、パターンランゲージのパターンです)

 さて、この6つの原理を眺めてみると、なんとなく私が「システム開発の上で示唆的」であると言っていることがわかるような気がしません? 今回、「システム内製」と関連して思い浮かべたのが、二、の「参加の原理」。「システム内製」すなわち「ユーザー主体開発」そのものという気がしませんか? また、一、の有機的秩序の原理などは、EA(エンタープライズアーキテクチャ)を、前もってきちんと定めて個々の開発をその枠内で進めていく…という行き方と真逆のことを言っているようでちょっと面白かったりします。

 もちろん、都市計画や建築の手法がそのままシステム開発に応用できるとは、万事楽観的な私といえども思ってはいませんが、新たな視点を得るという意味ではなかなか示唆に富むものではないでしょうか。

 システム業界では、クリストファー・アレグザンダーと言えばデザインパターンですが、実はデザインパターン以外にも汲み取るべき考え方はまだまだあるのではないかと思っています。

 アレグザンダー恐るべし!









ルールエンジンとシステム内製

 先週紹介した日経コンピュータの記事には、クラウドとルールエンジンの組み合わせを使った開発でのメリットとして8つあげられていました。このうちの8番目「内製しやすい」というのが今日のテーマ。
 確かにビジネスロジックをルールエンジンを用いて実装すると、ロジックのシステム的な制御部分を隠蔽し、本質的な部分を浮き彫りにさせる効果があります。今回あがっている保険商品の整合性チェックとか保険料の試算などは、ロジック自身はそれほど複雑でないので、ビジネスロジックをたとえば表形式(デシジョンテーブル)でまとめれば、それがほぼそのまま実際に動きます。DroolsではDSL(ドメイン記述言語)もあるので、DSLをうまく設計すれば「日本語で仕様を書けばそれがそのまま動く」といった世界を実現することも夢ではないかもしれません。たとえば

 保険料は、基本料率 * ○○割増 * 保険金額である。
  ただし
 …の場合は○○割増は1.03
 …の場合は○○割増は1.05

とかいったような。こんな感じで書いた仕様がそのまま動くとなると、業務に携わる人が直接プログラムを保守するということも現実解として十分考えられるようになってきそうです。

 今のところ日本ではBRMS(ビジネスルール管理システム)を使って、現場で業務に携わる人が直接ルールを直すという事例はまだ聞いたことはありません。ただ、ごく一般的な日本の事務現場のExcelシート、マクロの開発力(!!)などを考えると、BRMSでの現場での修正開発も案外いけるのかもしれないなあと思っている今日この頃。
 というわけで、最近「システム内製を極める」という本を読みました。基本的に日経コンピュータの記事を集めた内容なので比較的さらっと読めるのですが、最後「おわりに」には、システム開発にたずさわるものとしては考えさせられることが書いてあります。それはまた次の機会に。



Decision Model

先日、アマゾンに昨年春くらいに予約したまま、ほとんど忘れかけていた本が届きました。Barbara von Halle と Larry Goldberg の「The Decision Model」 という本。データにデータモデル(リレーショナルモデル)があるように、ビジネスのデシジョン(~ビジネスロジック・ビジネスルール)にもデシジョンモデルがあるべきであるとし、そのデシジョンモデルがどのようなものであるか、どうあるべきか具体的なモデルの記法なども含め説明しています。
データは、リレーショナルモデルという理論的に整備されたモデルがあることによりデータの独立性を確立したとし、そのアナロジーから、ビジネスロジックについても、その理論的な背景を明らかにした技術に依存しないモデルを確立して、ビジネスロジックの独立性を確かにしていこうという趣旨のようです。
まだきちんと読んだというわけではないのですが、このデシジョンモデルは、リレーショナルモデルと同様、正規形があったり、動機だけでなく、その構造や手続きについてもリレーショナルモデルと類似の面がある様子。もっとも、ロジックの冗長性をなくし、原子性(atomic)を求めようとすると必然、正規化のような手続きが出てくるのでしょう。
また、後ろのほうの章では、EAのZachmanや、EDMのJames Taylorなどが書いているところもあったり・・・。

これからぼちぼち読んでいくつもり。



BPM本

ずいぶんと間があいてしまいましたが、今日は、ちょっと前に読んだBPM、SOAに関する概説書が思いのほかおもしろかったのでその紹介。

その書「BPMがビジネスを変える」は、日本語で読めるようなBPMの本はないかと探していたときに(→実は思ったよりも少ない)、BPMNなどの本と一緒に手に入れた本です。まあ軽く読めそうですし、たまには概説書を読むのも悪くはないか・・・と、あまり期待はせず(失礼!)読み始めたところ、これが意外にもおもしろく読めました。

概説書というと、大抵その言葉の解説+背景の説明ちょっとくらいで、ひととおりさっと読んでおしまいというのが多いのですが、この本はBPMの単なる概説書というよりも、(BPMを中心においてはいますが)BPMに限らない企業のIT化に関しての鳥瞰図を与える書と言った方が適切でしょう。企業のIT化というと、SOA、SCM、CRM、ERP・・・といったIT系バズワードが浮かび、この本もご多分にもれずそういった単語がそこかしこに見られます(→ちなみに若干前の出版なので「クラウド」という言葉は出てきません)。が、この本ではそういったバズワードが単なるバズワードではなくIT化の視点から適切に位置づけられて説明されているのでバズワードに食傷気味の方もいちいち納得させられるかもしれません。

普段、実装をメインにやっておられるエンジニアの方も、業務を中心に見るビジネスアナリストの方も、企業のIT化を考えるベースとして本書を読むと結構おもしろく読めるのではないでしょうか。

(ちなみにアマゾンをみてみると、今ユーズドしか手に入らないようです・・・残念)



Drools本

遅ればせながら、先週amazonから「JBoss Drools Business Rules」を取り寄せました。Droolsに関する成書としては、ほとんど最初のものでしょう(実は、2年ほど前に「Pro Drools」という本がでたのですが、手に入れようと思っている間に在庫切れになっていました。実物を見たことがないのでなんとも言えないのですが、そのころですからおそらくDroolsのバージョンも古いバージョンではないかと・・・)

内容はまだパラパラと見たくらいですが、技術的に深く突っ込んだ本というよりも、どちらかというとDroolsの使い方の解説や機能の紹介といった内容のようです。技術的に深い話を求めるのであれば、今であればやはりDroolsのドキュメント類に直接あたるか、近々発行される予定のDeveloper’s Guideなどを参照するのでしょう。

ともあれ、まだまだ数少ないDroolsの成書。傍らにおいてDrools5でも試してみようか。

BRA(ビジネスルールアプローチ)とBRMS

「ビジネスルールアプローチ(以下BRA)」・・・最近、時々聞かれるようになった言葉ですが、結局いったい何なのかよくわからない方も多いのではないでしょうか。実際、人によって、状況によってその意味するところが若干違う(ように思える)ところもそれに拍車をかけています。実は、姉妹サイトでの「ビジネスルール2つの視点」という記事にも似たようなことを書いているのですが、BRAという言葉を使う場合、ビジネスルールを利用した開発のうち
①BRMSツールでの実装を強調した場合に使う
こともあれば、より上流の
②ルールによる仕様の記述というところを強調した方法論に対して使う
こともあります。

ところでBRAの中の「ビジネスルール」という言葉・概念。この言葉そのものは、一般の要求定義の中でも使われれるように特にツールとしてのBRMSとは関係はありません。たとえば要求定義やユースケースの解説書などでもビジネスルールに1章が割かれていたりします(たとえば「ソフトウェア要求」・・・末尾参照)。②の意味でのBRAはこの意味での「ビジネスルール」に焦点をあて、データ分析やプロセス分析と同じレベルでルール分析を取りあげていこうとする方法論であり、そのルール分析では、ルールを仕様のコア部分として認め、他の要素(データやプロセス)とは意識的に区分して厳密に扱っていこうとするものです。Ross やVon Halleの提唱しているBRAは、この範疇に入ります。

この②の意味でのBRAの歴史を紐解いてみる(A Brief History of the Business Rule Approach-BRCommunity)と、「BRA」といった言葉がなかった90年前後に、すでにその源流が始まっています。そこでは概念データモデルのモデリングで制約などをルールの形でまとめようとしていました。その後、ルールの記述範囲がモデルの制約だけでなく、推論の規則や計算規則などにも拡げられるとともに、記述方法も洗練され、述語論理を基盤とした、項(ターム)、ファクトを要素とした記述となっていきます。実は上に上げた要求定義の解説書に表れている「ビジネスルール」という言葉は、逆にこのBRAを作っていく中から生まれたといってもよいでしょう(ちなみに余談ですが、世界的に有名なデータベースの教科書『データベースシステム概論』を著したC.Dateもビジネスルールアプローチに関する本(What Not How)を書いています・・・末尾参照)。

このようにもともとのBRAは、ソフトウェアツールとしてのBRMSとは全く独立してビジネスを分析していく中から誕生しました(このことは、上に上げたBRAの歴史にも強調されています)。その一方で、ツールとしてのBRMSは、エキスパートシステムの作成などを通じてだんだんと洗練されてきています。そして今、BRMSで用いられているルールベース言語の宣言性、述語論理との親和性からBRAで書かれた実装系としてBRMSが使われるようになったということでしょうか。

(もっともRossVon Halleなどの本で扱われているBRAは、ほとんど「ルール原理主義(?)」的な、かなりがちがちのルールアプローチです。したがってBRAの方法論としてはともかく、現実のBRA適用としては今のところもう少し緩和した上記で言う①寄りの形が主流でしょう)

JESSルールエンジン

JESSと言えばJavaによるルールエンジンの草分けであり、もっとも有名なうちの一つでしょう。今でもバリバリの現役・・・???
と思って先日ネットを調べていたらこんなニュースリリースがありました。

JESSがUSA海軍の次期ミサイル駆逐艦に採用される。

どうも、次期ミサイル駆逐艦の制御や警報装置などに組み込まれるようです。

JESSは、CLIPS(CLIPS超入門も参照)のシンタックスを受け継いだLispライクな言語を持つルールベースエンジン。Javaが生まれて間もないころすでに最初の版が存在していた歴史ある言語です。個人的には、Lispライクなシンタックス(→実はJava風のシンタックスよりも好き)を持っており、Javaともうまくインターフェースがとれているので結構好きなのですが、ライセンスがCLIPSやDroolsと比べるとオープンでなくなかなかちょっと試す以上のことまではできていません。

ところで、JESSは歴史のあるルールエンジンだけあって、JESS IN ACTIONというちゃんとした成書があります。この本にはJESSの入門から比較的まとまったJESSアプリケーションプログラムのことまでが記載されており、(JESSによる)ルールベースを本できちんと学びたいという方にはこの本はなかなかよいのではないかとおもいます。(その点Droolsは、若くて発展途上なのできちんとした本がありません。実はアマゾンで1冊だけ”Pro Drools・・・”という洋書を見つけたのですが、発売後すぐ品切れになってしまいました。)

JESS IN ACTIONは今、ちょっとamazonで調べたところ品切れになっているようですね。