研究課題/領域番号 |
23700039
|
研究機関 | 芝浦工業大学 |
研究代表者 |
福田 浩章 芝浦工業大学, 工学部, 准教授 (30383946)
|
研究期間 (年度) |
2011-04-28 – 2013-03-31
|
キーワード | アスペクト指向プログラミング / リッチインターネットアプリケーション / プログラミング言語 |
研究概要 |
本研究の計画段階では,RIAの実行環境としてFlash(Flex)を想定していたが,スマートフォンの普及,特にiPhoneのブラウザでFlashが動作しないこと,HTML5やWebSocketといったWebの新しい技術の出現を考慮し,HTML+JavascriptでのRIA開発も視野に入れ,研究を進めた.具体的には,Javascriptの文法をコンパイラコンパイラツールの一つであるJavaCCを用いて定義し,Javascriptの文法を解析するパーザの構築を行った.そして,アスペクト指向言語の一つであるAspectJを参考に,既存のJavascriptに対して関数呼び出しや値のセット/ゲットをポイントカットに指定するための拡張,およびbefore/afterアドバイスを織り込むための拡張を行った. 次に,Javascriptを用いたRIAの典型である動的コンテンツ,特にアニメーションの実行に注目し,その実行に必要なコードをアスペクトとして1つにまとめるための実装を行った.具体的には,動的コンテンツの再生に必要なHTML, CSS, Javascriptを1つのアスペクトファイルにまとめて記述できる言語拡張を行い,Javascript, HTML, CSSをそれぞれ解析し,抽象構文木を生成してアスペクトと既存のプログラムを合成するウィーバーを実装した. 本研究の成果によって,従来は1つのアニメーションを実行するために,HTML, CSS, Javascriptの3箇所に別々に記述していたプログラムコードを,1つのアスペクトとして記述できるため,モジュール性が高まり,アニメーションの追加,変更,削除に伴うプログラムの修正コストを抑えることができる.また,織込みにかかる時間も十分実用可能な範囲であることを実験によって確認しる.そして,本研究の成果をワークショップで発表した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
当初予定のRIA実行環境とは異なるJavascript, HTML, CSSを対象に研究を進めてきたが,(1)既存文法の解析,(2)言語拡張と解析,(3)ウィーバの実装,を実現し,プロトタイプシステムを完成させた.研究計画では,23年度中に文法を解析するパーザを実現し,抽象構文木まで実装する予定だったが,Javascriptを対象にしたことによって,数種類のコンパイラコンパイラでの文法ファイルを入手できたこともあり,計画よりも研究を進めることができている. そして,AspectJのアスペクト記述を模倣して実装するだけではなく,RIAの典型的な例であるアニメーションの実行に着目し,従来1つのアニメーションを実装するためにHTML, CSS, Javascriptという3種類のファイルを横断して記述する必要があったプログラムを,1つのアスペクトにまとめて記述する手法を実現した.Javascriptを対象にしたアスペクト指向言語に関する研究は存在するが,動的なアニメーションの実現に特化した研究はこれまでに存在しないため,本研究の新規性と有効性を主張できる点だと考えている.また,既存研究ではアプリケーション実行時にアスペクトの織込みを行なっているが,本研究では実行前に織り込むことによってアプリケーション実行時に与えるオーバヘッドを削減している. さらに,本研究で実現したウィーバーの有効性を確認するため,Javascriptで記述された実用的なライブラリを対象に十分実用的な時間(数十~数百ミリ秒)でアスペクトの織込みができることを確認している.また,有名なウェブサイトで実現されている動的アニメーションのソースコードを解析し,本研究で実現した手法でアニメーションに係わるコードを完全に分離して記述できるか否かの実験行い,これまで試した例ではすべて分離して記述できることを確認している.
|
今後の研究の推進方策 |
23年度は主にプロトタイプシステムの実現を主たる目的として研究を進めてきた.そして,実際にプロトタイプシステムを実現し,RIAの典型であるアニメーションの実行に着目して,アニメーションを実行するプログラムをアスペクトとしてまとめ,アプリケーションの本来の機能を実現するプログラムと分離して記述することを可能にした.しかしながら,現状では,アニメーションの実行に関するソースコードを1つにまとめて記述することはできるものの,ポイントカットの種類や複数の言語(Javascipt, CSS, HTML)に織り込むアドバイスの記述方法に関する検討が不十分である.具体的には,ここまではアニメーションの実行は,「ボタンをクリックする」といったユーザの行動を契機にしたイベントの実行を想定しているが,これ以外にも「ページがロードされた時」を契機にした実行も考えられる.そこで,アニメーションの実行を含むウェブサイトを調査し,必要十分なポイントカットを精査して対応することを考えている. また,アドバイスの記述法に関して,現在はアスペクト内に記述するCSS, HTMLの部分はそれぞれのシンタックスをそのまま利用しているが,その結果1つのアスペクトファイルのLOC(Lines Of Code)が増大し,見にくくなるという問題がある.そこで,アドバイス内に記述するHTML, CSSに関して,簡潔に記述できるシンタックスを考案し,見通しのよいアドバイスの記述ができるように改良していく. なお,本研究は実際にはRIAの実行環境としてAjaxを選択したが,当初予定していたFlashに関しても,言語拡張とアスペクトを織り込むウィーバの開発を考えている.これは,JavascriptとActionScriptが同じECMAScriptであるため,ここまでの成果を再利用することによって対応できる可能性が十分にある.
|
次年度の研究費の使用計画 |
次年度はまず,研究を遂行するために必要な計算機を,デスクトップ型1台,ノート型2台,およびそれぞれに接続して利用するディスプレイを2台と,外付け用キーボードとマウスを1セット購入する予定でいる.ノート型計算機は主に,移動時の開発に1台利用し,その他研究会や国内外の学会発表に携帯するために1台利用する.ディスプレイはデスクトップ型計算機用に1台,ノート型計算機を接続して外付けキーボード,マウスとともに使用する. また,計算機の購入に伴い,論文執筆に利用するMSOfficeやKeynote, ウィルス感染による情報漏洩を防止するためのセキュリティ対策ソフト,およびデータバックアップのためのNASを購入する.そして,24年度はFlashへの対応も考えており,Flashの開発自体はAdobe社から無料で提供されているFlexSDKを利用すれば可能であるが,実際のFlashアプリケーション開発はデザイナが利用するFlashCS5.5と,FlashBuilder4.5で開発することが一般的であるため,それぞれ購入する. また,ウィーバを実装するためにはコンパイラに関する技術を利用するため,コンパイラに関する書籍や,既存の開発ツールを使いこなすため,FlashBuilder, FlashCS5.5に関する書籍を購入する.最後に,本研究のこれまでの成果を発表するため,英語論文を執筆時には専門業者に英語の添削を依頼するための費用や,ASE(Automated Software Engineering)やAOSD(Aspect Oriented Software Development)への参加費や旅費代,国内外の論文誌に投稿した結果再録された場合には別刷り代に利用する.
|