2009年7月7日火曜日

EMF第2版

2008年の12月にようやく出版されたEMF: Eclipse Modeling Framework (2nd Edition)を読みました。大幅に増補・改訂された第2版
この本の第1版に対しては以下の日本語訳が出版されていて、それを読みました。第1版はEMF1.1をベースに執筆されており、日本語訳版ではEMF2.0で拡張されたXMLスキーマインポータ(XMLスキーマからEcoreへのマッピング)とFeature Mapに関する記述が追加されていました。この第1版に比べると、この第2版はEMF 2.2をベースに執筆されており、以下のように大幅に増補・改訂されています。
  • Extended Metadataを用いたEcoreモデルへのアノテーションの活用法(たとえば、XML直列化のカスタマイズ方法)
  • Feature Mapの詳細な説明
  • デフォルトと比べパフォーマンス・メモリ使用量を改善するモデルコード生成オプション
  • Generator Model(.genmodel)の属性の全記述(!)
  • XML直列化のオプションの全記述(!)
  • EStore、Change Model、Validation Framework
  • EMF 2.3および2.4で導入された新機能(Java 5.0サポート(EnumおよびGenerics)等)
また、第1版と同様、Ecore(M2モデル、すなわちMOFの実装)の詳細な説明や、Ecoreから生成される各種ソースコード(モデルコード、Editコード)の生成パターンの詳細な説明、生成コードのカスタマイズの例などが記述されていて、EMF/Eclipseを使う開発者必須の本と言えると思います。私はこの本が出版されていないころ、EMFのソースコードを読んだり、.genmodelの属性をいじっては生成コードを読んでその属性の意味を理解したり、といった地道な作業を通じてEMFの詳細を理解してきました。もっと早くこの本があったらなあ、と思いました。この本を読むことで、良い復習・再確認ができたような気がします。もちろん、知らなかった新機能・側面もたくさんあり、とても参考になりました。特に、EcoreモデルにおいてComposition参照(EContainment)にも関わらずisProxyをtrueにすることで、親オブジェクトと別のリソースに子供オブジェクトを保存できるようになったのは知りませんでした。

EclipseにおけるEMFの重要性
年々、EclipseにおけるEMFの重要性は増しています。以前より、EclipseのさまざまなプロジェクトがEMFをベースに開発されてきています。何かプラグインをインストールしようとしたとき、そのプラグインがEMFに依存していることに気がつくことも多いのではないでしょうか。
昨年からe4プロジェクトという、Eclipse 4.0へ向けた次世代Eclipse(?)の開発が進められています。RAP(Rich Ajax Platform)に触発されてEclipseをWebブラウザ上で利用可能にしよう、とかプラグイン開発をもっと楽にできるようにしよう、などといった革新的な取り組みがなされているようです。その中で、EclipseのUI開発はEMFモデルをベースにしようという取り組みも行われています。

このように、Eclipse開発に関わっていく上で、今後はEMFについて少なくとも基本的な内容は理解する必要性が高くなるのではないでしょうか。この第2版は700ページ以上もあって、基本を理解するのに全部を読む必要はないかもしれませんが、最初のパートI(1章から4章)はEMFの概要を理解するのにとてもよくまとまっていると思います。

0 件のコメント: