「MDA モデル駆動アーキテクチャ(ISBN:4434038133)」

一連のMDA本がずっと積読になっていたので、そろそろ読んでいきたいと思います。
第1章「プレッシャーと進歩」〜第2章「モデル駆動エンタープライズコンピューティング」を読んで
機械語からアセンブリ言語、そして第3世代言語。ソフトウェア記述言語はその抽象度を高めることにより、開発者が本質的な問題(AOPでいうところのcore concernですね)に集中することを助けてきました。ソケットからRPC、そしてCORBAなどの分散オブジェクトへ。ミドルウェアもまた、その抽象度を高めてきました。MDAは、これらの延長上にあるということのようです。
抽象度が高まるということは、非本質的な差異が捨象されるということ。MDAでの非本質的な差異とは、プログラミング言語やCORBA、J2EE、.NETといったプラットフォームを指すようです。プラットフォームごとの差異を捨象したモデルがPIM(Platform Independent Model)、そしてそこから派生されるプラットフォーム固有のモデルがPSM(Platform Specific Model)。
ここで面白いと思ったのは、実はCORBAが目指したものも同じだったということです。CORBAは、さまざまなOSやネットワーク、そしてプログラミング言語といった「プラットフォーム」に依存しない、分散オブジェクト環境を目指したものでした。「プラットフォーム独立」のCORBA IDLで記述された分散オブジェクト(のインタフェース)は、IDLコンパイラにより「プラットフォーム固有」の分散オブジェクト(のプロキシやスケルトン)に変換されます。それが今は、CORBA自体がひとつの「プラットフォーム」として扱われています。それだけソフトウェアの抽象度が上がっているということなのでしょうね。ですから、CORBAを策定してきたOMGが今、MDAを推し進めるのは必然なのでしょう。
ということはいずれ、MDAもまたプラットフォームのひとつに過ぎない時代が来るのでしょうか。MDAと同じ抽象レベルであっても、UMLとは異なったモデリング言語が登場し、異なった形でPIM/PSMが実現された後。MDAもまた選択可能なプラットフォームのひとつとなり、より上位の抽象概念が登場しても不思議ではありません。進歩に際限は無いのでしょうね。
なぁんて、MDAの本を読み始めたばかりだというのに遠い世界へ逃避してしまいました(苦笑)。