« SI企業が「モデルシステム」を公開しない理由 | トップページ | 「有効期間」を含むテーブルとの参照関係 »

2011.12.04

「自動生成」と「動的制御」

 販売管理システムや生産管理システムの仕様を何らかの形式でまとめ、これにもとづいてプログラムコードの一部または全部を生成する。それは業務システム開発にたずさわる多くの技術者を魅了してきた合理化技術で、「自動生成」と呼ばれている。自動生成にもとづく開発基盤は今でも研究・開発され続けている。

 さて、拙作のXEAD Driverは自動生成方式の開発基盤として紹介されたり理解されがちだ。その度に私は少し残念な気持ちになる。これはちょっと強調したい点なのだが、XEAD Driverは「自動生成」ではなく「動的制御(Dinamic Control)」のしくみだ。

 自動生成方式において、まず仕様書の内容が「生成エンジン」によって読み込まれ、プログラムコードに変換される(必要ならばさらにコンパイルされる)。これを「実行エンジン」がロードすれば、プログラムとして立ち上がる。いっぽうの動的制御方式においては、仕様書の内容は「実行エンジン」によってダイレクトにロードされる(次図)。もう少し正確に言えば、実行エンジンが仕様にもとづいて自らの姿を変形していきなり立ち上がる。

111204

 このしくみは特別なものではなく、多くのソフトウエアに組み込まれている。たとえば何度か取り上げたがDAWツールにおいて、楽曲のアレンジ情報は「そのまま演奏可能な楽譜」である。「イパネマの娘」のアレンジ情報をまとめたファイル(ipanema.cwp)があった場合、それが演奏される過程で「"イパネマの娘"を演奏する専用プログラム」のコードやスクリプトが生成されるわけではない。実行エンジンが、アレンジ情報にもとづいて自らを設定していきなり演奏を開始する。つまり、DAWツールは「自動生成」ではなく「動的制御」のしくみである。

 このように動的制御方式は珍しいものではないのだが、業務システムの開発基盤としては希少である。XEAD Driverはそういう意味では珍しいソフトウエアで、OSSとしては世界初だろう。そして、この開発基盤におけるシステム定義は文字通り「そのまま実行可能な仕様書」である。

 などとドヤ顔で語るのだが、「だから何なんだ」と言われると困る。自動生成されるコードを透過的なものとして扱えば、2つの方式は外見上そっくりに見える。それでも、基本的な発想やアーキテクチャとしては異質であり得るという話でしかない。じっさいここらへんの違いは、業務システム向け開発基盤の使い勝手には大して影響を与えないのかもしれない。しかし、根本的な方式レベルで勘違いされるのはちょっと悲しい。だから「動的制御」の言葉だけでも覚えておいてほしい。

|

« SI企業が「モデルシステム」を公開しない理由 | トップページ | 「有効期間」を含むテーブルとの参照関係 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「自動生成」と「動的制御」:

« SI企業が「モデルシステム」を公開しない理由 | トップページ | 「有効期間」を含むテーブルとの参照関係 »