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

第5章「メタオブジェクトファシリティ(MOF)」を読んで
MOF - UMLなどのメタモデル(モデルのモデル)をも記述してしまうメタメタモデル(この「メタメタ」って響きが大好きです).そればかりか,メタメタモデルであるMOF自身もまたMOFによって記述されてしまう.自己記述的ってことですね.
MDAにおいてMOFはとても重要な位置づけにあるようです.しかし,その重要性を実感することはとても難しく感じます.一つ分かったことは,MDAではUMLもまた様々な選択肢の一つにすぎないらしいということ.その一例として,CWM(Common Warehouse Metamodel)があるようです.ですから,MDAに対応した(PIMからPSMを生成する)ツールを開発するベンダーなんかは,単にUMLを扱えるだけでなく,MOFが扱えないと,ということのようです.私のように,せいぜいその手のツールを使うだけの開発者には見えない存在かもしれませんが*1
また,XMI(XML Metadata Interchange)はUMLモデルの交換に使うものだと思っていたのですが,それだけではなかったのですね.これもやはり,UML以外のメタモデルに対応できるらしい,と.よく分からないけどすごいです(苦笑).

5.19 今できること
XML DTDや,XMLスキーマ,および,メタデータを表現し,管理するJava APIを手でコーディングすることをやめよう.
中略
MOFベースのメタデータ管理ツールは,現在利用可能である.メタモデルからXMI DTDやJMIインタフェースを生成するフリーのツールも利用できる.管理しなければならないメタデータを特定したら,そのメタモデルを定義し,DTDAPIを生成しよう.

ちょこちょこDTDを書いてますが,その程度のところでもMOFを活用することができるのでしょうか.それなら挑戦してみたいですね.でも,自分が記述するようなDTDって,メタモデルではなくて単なるモデルでしかないような気がします.MOFのメタレベルでいうと,M2ではなくてM1.そんな程度でも使いようはあるのでしょうか?
なんでも,IBM WebSphereはMOFを活用しているとのこと.たしかに,DD(Deployment Descripter)の一部として作成されるWebSphere固有のファイルなどにXMIが使われている事は気づいていましたが,さすがです.
それにしてもWebSphere AppServerって,今やIBMの顔的存在のミドルウェアだと思うのですが,かなり趣味的要素満載な作りになっているように感じます.新しい物好きな人が好きなようにやっているというか.Ver3.0ではWebSphere自身の構成情報の管理にEntityBeansが使われていたみたいなんですよね.だからとっても重かった.Ver4.0以降で廃止されたようですが.(^^;

*1:使う機会があるのかどうかさえ分かりません