JavaScriptレスでAjax開発、NTTデータ新フレームワークの実力は

2006/10/7

 「Ajaxやリッチクライアントのフレームワークでデファクトは、ない。そこを狙いたい」。NTTデータは9月20日、Ajaxベースのリッチクライアント開発フレームワーク「マスカット」をオープンソースソフトウェアとして公開した。プロジェクトを主導するNTTデータの技術開発本部 ソフトウェア工学推進センタ シニアエキスパート 木村利幸氏はOSS化の狙いをこう語る。

 マスカットは、JavaScriptを書かずにGUIベースでAjaxアプリケーションを開発できるフレームワーク。「prototype.js」「script.aculo.us」などのAjaxフレームワークが、ライブラリを使ったJavaScript開発支援機能を提供するのに対して、マスカットはXMLデータを活用することで、JavaScriptをコーディングすることなく、Ajaxアプリケーションを開発できる。3階層型Webアーキテクチャに適用可能。「Ajax開発が抱える全課題に対応するフレームワークだ」(木村氏)

コンポーネントを使ってGUIをデザインする「マスカット Webブラウザ版IDE」 イベントを設定する「マスカット Eclipse版IDE」(それぞれクリックで拡大します)

 マスカットによるAjaxアプリケーションの開発は2フェイズに分かれる。最初のフェイズである要件定義では「マスカット Webブラウザ版IDE」を利用。同IDEは「ウィンドウ」「チェックボックス」「表」「ボタン」などのコンポーネントを画面に貼り付けてAjaxアプリケーションのGUIを完成させる仕組み。ドラッグ&ドロップだけでGUIを設計する「レイアウト定義XML」を出力できる。コンポーネントはOSSの「Rialto」(リアルト)を描画ライブラリとして利用。コンポーネントのドラッグ&ドロップで画面を完成させられるため、開発者はエンドユーザーとコミュニケーションをしながらその場で画面の要件を決められる。

NTTデータの技術開発本部 ソフトウェア工学推進センタ シニアエキスパート 木村利幸氏

 GUIに対するイベントの組み込みは、レイアウト定義XMLを読み込んだ「マスカット Eclipse版IDE」で行う。同IDEはEclipseのプラグイン。GUIの要素に対してプロパティを設定し、イベントを規定する。Eclipse版IDEには「画面エディタ」「プロパティエディタ」などがあり、いずれもコードレス。Eclipse版IDEはレイアウト定義XMLとイベント定義XMLを出力し、Webアプリケーションサーバ上のマスカット実行環境に対してデプロイする。

 Ajaxアプリケーションを実際に稼働させるのは、マスカットが用意するJavaScriptライブラリ「マスカットフレームワーク」。WebブラウザはWebアプリケーションサーバにアクセスするとレイアウト定義XML、イベント定義XMLを読み込んで、Ajaxアプリケーションを起動し、GUIを描画する。WebブラウザとWebアプリケーションサーバ間の非同期通信はすべてXMLデータで行う。これらアプリケーションの実処理はマスカットフレームワークが自動で行う。

マスカットで開発した「i-lligra」の画面(クリックで拡大します)

 マスカットはNTTデータがすでに実際の開発で使っている。採用したのは同社が販売しているコンタクトセンターソリューション「i-lligra」。コンタクトセンターのソフトウェアは同一画面上に数値やテキスト、グラフなど複数のデータを表示させることが求められる。これを従来のHTMLで表現しようとするとデータ更新ごとに画面をリロードする必要があり、使い勝手が悪くなる。マスカットで開発したことで、「大量データの中から先読みでデータを持ってくることができ、複雑なインターフェイスを1つの画面で実現できる」(木村氏)。

 マスカットはSourceForge.jpで公開。ライセンスはApache License version 2.0。すでにダウンロード数は2000を超え、木村氏らは手ごたえを感じている。

(@IT 垣内郁栄/富嶋典子)

[関連リンク]
NTTデータ
マスカット

[関連記事]
話題のCometを実装、「Lingr」はリアルタイムWebを目指す (@ITNews)
リッチクライアント言語「Curl」に無償版、「マッシュアップに使って」 (@ITNews)
ネオジャパン、Ajaxを採用したデスクネッツをリリース (@ITNews)
Ajaxのデメリットを克服する「Arax」、バージョン2を公開 (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -