アットマーク・アイティ @IT@IT自分戦略研究所QA@ITイベントカレンダー+ログ
 @IT > XAAフレームワークの拡張
 
@IT[FYI] 企画:アットマーク・アイティ 営業企画局
制作:アットマーク・アイティ 編集局

掲載内容有効期限:2005年9月30日

 
XAAフレームワークの拡張
2年連続の採択となった大崎氏が目指すのはXMLベースの開発環境アーキテクチャ。GUIを採用し、MVCパターンにおけるModel部分のコーディングを簡単にする


 「XMLベースで開発しようというのは最近流行ですが、実用的な製品開発にはなかなかこぎ着けられないケースが多いようです。そんな中このXAAフレームワークは、アプリケーションの構築をなるべく容易にする環境を作ろうというもので、大変分かりやすく、実用性も高いプロジェクトとなっていると思います」(酒井裕司PM

  リッチクライアント開発から発想

 「XAAフレームワークの拡張」は、2003年度に未踏ソフトウェア創造事業に採択された「XAAフレームワークの開発」に引き続き、2年連続で採択されたプロジェクトである。XAAは「XML Based Application Architecture」を意味しており、MVCパターンにおけるModel部分をGUIを使ったRADツールで開発することを可能にしたアーキテクチャという。開発者である株式会社ロジックデザインつくば開発センター主任の大崎洋平氏は、「Model部分のコーディングの単純作業を減らし、GUIで簡単に編集作業を行えることを目指した」と話す。

 Visual BasicやDelphiなどのRADツールは、GUIの画面をビジュアルツールを使って視覚的に編集・作成でき、開発効率を高めることができる。だがこれらのRADツールがビジュアル化しているのは、MVCにおけるViewであるユーザーインターフェイスの部分だけで、作成したGUI画面のイベントをイベントハンドラに結びつければ、そこから先の処理はコーディングで行わなければならない。Viewの部分に関しては見た目で部品を配置しながら構築していくというビジュアルツールを使った方法が採られ、ModelやControllerなどで処理を記述する際は、プログラミング言語を使うというのが一般的な手法となっているのである。

XAAフレームワーク開発者の大崎洋平氏

 だが、大崎氏は話す。「プログラミング言語で記述している部分もかなりの単調作業がある。そうした部分も手抜きできれば、開発作業はかなり楽になるのではないかと考えた」。例えばデータ構造を構造体やクラスで定義し、ボタンが押されるとGUIのフォームに入力されたデータを取ってきて、データ構造に値をセットする、といったロジックの記述は何度も繰り返して行わなければならないことが多い。これらを視覚表示して簡単に作成できるようにならないかと大崎氏は考えたのである。

 きっかけは、以前勤めていたソフト開発会社で、リッチクライアントフレームワークの開発を手掛けたことだった。大崎氏は、クライアントソフトの画面を作成するビジュアルツールの開発を担当していたのだという。その時に行ったのは、次のような作業だった。

 ――画面をXMLで定義し、そのModel部分については独自の構造をクラス定義で作成した。この際、コマンドパターンを使い、Modelを操作するときには必ずこのコマンドパターンを介して行うように定義した。そしてこのコマンドに逆の操作を定義したり、あるいはいくつかのコマンドを束ねるなどの方法で、コピー&ペーストやアンドゥ・リドゥなどの機能を実装したのである。そしてこうした作業を行っているときに、「この方法論はほかの場所にでも使えるのでは?」と考えたというのだ。アンドゥやコピー&ペーストだけでなく、画面で何かの作業を行うという行為すべてにXML(あるいはDOM)をデータモデルに適用するこの方法が利用できるのではないかと考えたのである。

 「その時はデータ構造をクラス定義で自分で作成したのですが、そうしたアプリケーションのデータ構造部分にXMLを使えば、内部のデータモデルとしてDOMを用いることもできる。さらにXMLのデータ構造定義を行うRELAX NGなどのスキーマ言語をうまく組み込めば、何か面白いフレームワークが作れるんじゃないかと思ったのです」と大崎氏は振り返る。

 本業の開発が終わった後の夜中など、仕事の合間を見て構想を深め、比較的自由にさまざまな開発を許してくれる現在の会社に転職してから、本格的に企画を進めるようになったという。

  上位互換性とWebサービス対応を目指す

 XAAでは、XMLのデータモデルに対する操作があらかじめいくつかのコマンドとして用意されており、これらのコマンドを発行するだけでデータモデルを簡単に操作できる。またコマンドの内部には逆の操作も定義されており、開発者が面倒な実装作業を行わなくても、アンドゥ・リドゥ機能をフレームワーク側で処理することができるようになっている。コマンドを介してデータモデルを操作しているため、データモデルに一貫性が保たれるというメリットもある。

 XAAフレームワークは、DOMを操作するDMCフレームワークと、XMLで記述されたGUI定義を読み込んでGUIを表示するエンジン、それにこの2つを連携させるフレームワークであるModel-Viewマッパーという3つの実行環境から構成されている。そしてこの環境で稼働するRADツールとして、(1)データ構造をグラフィカルに編集し、RELAX NGの定義を出力してくれるデータモデル構築ツール、(2)GUIをグラフィカルに構築するGUIエディタ、(3)Model-Viewマップを編集するModel-Viewマップエディタ、という3種類が用意されている。

XAAフレームワークが備えるデータモデル構築ツール。データ構造をグラフィカルに編集し、RELAX NGの定義を出力する(クリックで拡大します)

XAAフレームワークのGUIエディタ。グラフィカルな開発環境を可能にする(クリックで拡大します)

 ここまでの部分は、XAAフレームワークが昨年度に未踏ソフトウェア創造事業に採択されるに当たって、開発が行われた内容である。そしてこれらに加え、2004年度の採択では、新たに2つの拡張が目標とされた。1つはデータ構造との上位互換性を維持したままでアプリケーションのバージョンアップを行うための支援機能であり、もう1つはWebサービスへの対応である。

 前者の機能拡張について、大崎氏は「モデルの部分にXMLを持ってきて、そのモデルがきちんと構築できるということを提案したのが昨年度のプロジェクト。今年はさらに、データ構造を変更したらプログラムを書き換えなければならなかったり、バージョンアップしたら古いデータが使えなくなったりするという問題を、何とか解消しようということを考えました」と話す。具体的には、上位互換性が可能になるようなデータ構造の変更だけを許すモードを作るなどの方法を考えているという。

 また後者に関しては、「今後は徐々にWebサービスでシステムを構築するケースが増えていくのではないかと思います。現状はWebサービスクライアントのニーズはほとんどないと思いますが、先行投資の意味もあり、将来的なビジネス展開も視野に入れてWebサービスへの対応を考えました」(大崎氏)という。具体的にはWebサービスを利用するクライアントソフトを容易に構築できる枠組みを提供し、サンプルとしてAmazon Webサービス (AWS) 用クライアントの提供を計画している。

  Webサービス連携でビジネス利用を狙う

 XAAはどのような分野での活用が期待されるのだろうか。1つは、例えばUMLモデリングツールなど、GUIを使ってグラフィカルに作成するための編集ツールを開発する用途。そしてもう1つは、大量の画面を作成しなければならないビジネスアプリケーションの開発だ。XAAはデータ構造とユーザーインターフェイスの連携に特徴があり、この部分を強化していけば、非常に強力なアプリケーション開発環境を構築できる。さらに、先に挙げたようにWebサービスとの連携もある。

 「現在のXAAはデータをXMLに落とすことができるだけです。将来的にはデータベースとの接続を考えていますが、今のところはまだ接続できていません。このためすぐにはビジネスアプリケーションをリプレースするところにまでは行かないのですが、今後成長が期待されているWebサービスにデータを渡すことができるようになれば、将来的にビジネスにもつながるのではないかと期待しています」と話す。現在はまだビジネスを考える段階にまでは至っていないというが、中長期的には勤務先とも連携して、ビジネス化への道を探っていきたいという。

[関連リンク]
XML Based Application Architecture (XAA)

「オープンソースによる開発実験プロジェクト」トップページに戻る

 


期間限定!特設掲示板
「オープンソースによる開発実験プロジェクト」に関連したご意見、ご質問などを自由に投稿・閲覧できます。
各プロジェクト担当者との意見交換も可能です。ぜひご活用ください。<2005年8月末まで>
[an error occurred while processing this directive]

各プロジェクトの技術詳細
確率モデルに基づくCDN を応用した障害耐性サーバーの開発
逆PROXY型Webサーバ拡張システム
共用著作物を利用したコンテンツ作成システムのためのフレームワークの開発
Webアプリケーション統合開発環境の開発
XAAフレームワークの拡張
効率的な情報アクセスを可能にするブラウザの開発

開発の進捗情報
2005年8月更新 New!
 開発者まとめアンケートと酒井PMの「総評」


2005年6月更新
 開発者中間アンケート「こんなはずじゃなかった」


2005年5月更新
 奥一穂氏が未踏「スーパークリエータ」に
認定

2005年4月更新
  開発者に素朴な質問

2005年3月更新
  プロジェクト終了を迎えた開発者に聞く

2005年2月更新
  開発者アンケート「開発のロードマップは?」

2005年1月更新
  開発者アンケート「オープンソースの思い」

2004年12月更新
  第2回採択プロジェクトの技術紹介

2004年11月更新
  ラストスパートをかける各開発プロジェクト

2004年10月更新
  開発者アンケート「醍醐味、辛いときは?」

2004年9月更新
  開発者「本音」アンケート

未踏プロジェクト関連リンク
未踏ソフトウェア創造事業

情報処理推進機構(IPA)


2004年第2回公募の最新情報

2004年第2回公募の結果

2004年第2回公募の概要

2004年第1回公募の最新情報

2004年第1回公募の結果

未踏ソフトFAQ

@ITの未踏/IPA関連記事
IPA調査で判明、「外部委託で組み込みソフトの品質低下」

組み込み版スキル標準で開発者の仕事はどうなる?

IPAがスーパークリエータを認定、「末恐ろしさを秘めている」

ITSS Ver.2はユーザー本位? IPAが2006年3月に公表へ

オープンソースを評価する「共通言語」、IPAが新手法を公開

IPAの脆弱性届け出制度、初年度の成果は

IPAの合意でマレーシア人技術者が急増する?

「組み込み版ITSS」策定でエンジニアが大移動?

IPAの新組織「SEC」で“日の丸ソフト”の夜は明けるか

IPAが新センター設立、組み込みソフトの品質向上を目指す

「井の中の蛙」、新日鉄ソリューションズ会長が国内SIerに喝!

脆弱性情報はIPAに届け出、ベンダ調整の新ルール策定へ

世界を相手に戦う技術、IPAが発掘・育成

ITコーディネータからスーパークリエータが一堂に


</comment> <tr> <td bgcolor="#EEEEEE"><font size="2"><a href="javascript:KeepIt();"> <img src="/club/keepoint/images/ico_kpt.gif" alt="kee&lt;p&gt;oint保存" border="0" align="absmiddle" width="24" height="18">kee&lt;p&gt;ointで保存</a></font></td> </tr> <comment>

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ