昨年度の成果をもとに,本年度はJavaScriptの開発で利用されるjQueryに対してアスペクトを織り込む機構を実現した.jQueryを用いた開発ではメソッドチェーンを多用し,それらのメソッドは順番に実行される.開発者はこの特徴を利用し,動的なコンテンツを容易に作成できるが,振る舞いを変更するには呼び出すメソッドや順序を変更する 必要がある.既存のJavaScript用AOPフレームワークでは,メソッドの呼び出し順序をポイントカットに指定する手段が提供されていないため,アニメーションの一部の振る舞いをアスペクトとして分離することが難しかった. そこで,jQueryを対象としたフレームワーク,Aspect-jQueryを提案し,betweenポイントカットを導入して メソッドチェーンに容易にアスペクトを織り込む機構を実現した. 一方,もう一つのRIA実行環境であるFlash/Flexに関しても,ActionScript3の言語拡張と,ウィーバの開発を行った.Flash/FlexではJavaScriptと異なり,GUIコンポーネントが予め用意されている.そのため,画面(GUI)のコードとロジックを実現するコードを分離して記述する事ができるが,RIAはイベントドリブンで動作するため,イベントを捉えるコードをGUIのコードに追加する必要があり,完全に分離する事は難しい.様々なフレームワークがこの問題の解決を試みているが,これらは全て実行時の情報を利用してDI(Dependency Injection)を行う.そのため,遅延生成されるオブジェクトにはDIすることができなかったり,他のフレームワークと干渉するなどの問題が発生する.そこで本研究では,静的な情報を利用し,コンパイル時にGUIとロジックを関連付ける機構を実現した.そして,この機構が有効に機能することを確認した.
|