« 見えがくれする都市 | メイン | ITアーキテクトの視点 »

MOPによるエンタープライズ・アプリケーション開発

 SDC(Sun Developer Connection)の連載スクリプティング with JavaEEで、第5回:MOPによるエンタープライズ・アプリケーション開発を公開しました。SDC会員限定コンテンツになります。

今回はMOPと呼ばれる概念を利用してエンタープライズ・アプリケーション開発をする手法について考えてみたいと思います。MOPとは”メタオブジェクト プロトコル”(metaobject protocol)の略で、メタオブジェクトという概念を利用することで、柔軟な拡張を可能にするプログラミング手法のことです。元々はLISPなどで提唱されていた概念ですが、Groovyでも利用することが可能です。 MOPでは従来のJavaの言語実装と異なり、自ら言語仕様を拡張するような興味深い処理を記述することが可能になります。筆者はエンタープライズ・アプリケーション開発のプレゼンテーション層とビジネスロジック層の統合においてMOPが有効になるではないかと考えています。

 なかなかメタオブジェクトの説明に苦しんだのですが、以下のようにしてみました。

メタオブジェクトの「メタ」というのは「何かを表現するための何か」です。例えば、この記事は日本語で書かれています。ただし、これはWebページなので内部的な記述言語はHTMLです。つまり、HTMLは「言語(Web上の日本語)を表現するための言語(HTML)」だといえるのです。同じようにメタオブジェクトも「オブジェクトを表現するオブジェクト」です。オブジェクトというのは属性(プロパティ)や振る舞い(メソッド)を持っています。通常、こうしたオブジェクトの性質は、そのままソースコードによって記述されます。つまり、「表現すべきオブジェクトの属性や振る舞い」は、そのオブジェクト自身が自分で規定しているわけです。

一方、MOPでは、メタオブジェクトが「表現すべきオブジェクトの属性や振る舞い」を表現します。

MyObject(通常のオブジェクト)はソースコードで振る舞いそのものをメソッドとして用意していますが、MyMetaObject(メタオブジェクト)ではオブジェクトの実装によってオブジェクトの振る舞いを規定しています。

 MOPによる実装はAOPによる実装にいたるよい素振りだと思います。続きはSDCで、どうぞ。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1940

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年04月11日 23:51に投稿されたエントリーのページです。

ひとつ前の投稿は「見えがくれする都市」です。

次の投稿は「ITアーキテクトの視点」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type